mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
Compare commits
267 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 38e409f881 | |||
| 75445e604e | |||
| 7d39848233 | |||
| 33c4ea3940 | |||
| d095672f00 | |||
| 181b753d74 | |||
| 0596278e50 | |||
| 7a77775a42 | |||
| dc8d08ec04 | |||
| 4ad0e0f65e | |||
| d01515e755 | |||
| 3fa70ba217 | |||
| 6ae4cddc2e | |||
| ac8ee971f5 | |||
| 11d4872186 | |||
| 370e2e87ad | |||
| ef30fcf5e2 | |||
| 6ad1423f29 | |||
| c52e5349db | |||
| 3c98c6acc0 | |||
| c251f5e2bd | |||
| b165603136 | |||
| 184a24b70e | |||
| d46bae6498 | |||
| 5ac521f6d8 | |||
| 7b5b747b19 | |||
| 037655e30f | |||
| 54088c6d5a | |||
| 78f7fcc89f | |||
| b402caeb89 | |||
| ff8a8de3c8 | |||
| d22c0c2614 | |||
| 73c8d3c2e3 | |||
| 0110385e65 | |||
| ad0a678c5f | |||
| 0495a4cd78 | |||
| 02267c5263 | |||
| cad3bc048f | |||
| 1b04423745 | |||
| 2143eb2d7a | |||
| 3d395b0e45 | |||
| d79b4dfb5a | |||
| 0ae9f5ebba | |||
| 57c80786dc | |||
| da1cad96fc | |||
| b58ccedf23 | |||
| 01cadefde7 | |||
| c70e7223d9 | |||
| a1d4f52185 | |||
| 373070f388 | |||
| a03ccd0ba6 | |||
| a7982cccf9 | |||
| dccd6631af | |||
| b0516b6440 | |||
| bf91666f07 | |||
| ab47a5a27e | |||
| 23581f59ae | |||
| 291df6e9d0 | |||
| dae0b63c22 | |||
| 0964982782 | |||
| 9eb6034e1a | |||
| c59eb06b8a | |||
| 423fc96638 | |||
| ba203faad4 | |||
| ec7b35adb9 | |||
| d2d450d1d7 | |||
| b4caefb17c | |||
| fd791f3fb8 | |||
| 0720292ebf | |||
| a0d6ae15ab | |||
| 3e76a2d49c | |||
| ed3365bb6d | |||
| b2a8797ed4 | |||
| d3e522e169 | |||
| 49e09ca449 | |||
| d1dde3d0c8 | |||
| ef75eceb40 | |||
| 96ce59f330 | |||
| 98a67fa2e4 | |||
| 4b13512950 | |||
| 4c0d47bbd4 | |||
| 3129602a78 | |||
| a0c257962e | |||
| 93ae1145bc | |||
| d02668386f | |||
| bd8c8b5a8c | |||
| e359ec02f5 | |||
| a1948d549b | |||
| 396b73b480 | |||
| 331b4633fc | |||
| 29db2b4e9b | |||
| f091384aa7 | |||
| f40ba6f04d | |||
| 06d61ea73e | |||
| 84d7a77a9f | |||
| 878eea774d | |||
| 4575dc6e30 | |||
| 554ef4eefc | |||
| 567e9981be | |||
| 1183fe427f | |||
| c49a1f42e7 | |||
| 4f173215c6 | |||
| 41597e563e | |||
| aa127f0cea | |||
| f9c64ba39c | |||
| 1025fa94a1 | |||
| a59769b91d | |||
| 76248b4878 | |||
| 93a7ddb128 | |||
| bc5af35a3e | |||
| e38d5bd885 | |||
| 10f41aa1c9 | |||
| 1b081197d4 | |||
| 9615e525c0 | |||
| db136116d3 | |||
| 98f5e5d22b | |||
| 9f33e5d35e | |||
| b8e8124faf | |||
| 156e41950a | |||
| 26c5ed4caf | |||
| d832afa7e8 | |||
| 2e18b97077 | |||
| b6e57c0fa2 | |||
| 15a226cfd1 | |||
| c4cbf751b9 | |||
| 535ff1d836 | |||
| fb0718adac | |||
| 5f501f1cb9 | |||
| 7cc86574fe | |||
| 19fc44efae | |||
| 37e03a838c | |||
| aeb28400e9 | |||
| d5a0c5e56a | |||
| a28d965a65 | |||
| 9148425eba | |||
| 406c35958e | |||
| be9ae61a32 | |||
| 9db65a1775 | |||
| 1033f55597 | |||
| 7f2462c936 | |||
| e675efe6f3 | |||
| b3f8068446 | |||
| 957eda8a78 | |||
| 0fe949e225 | |||
| 5325b0a543 | |||
| f712eb0d1f | |||
| fc6fa5315b | |||
| 3eb88ab896 | |||
| 20fa366231 | |||
| db05436e50 | |||
| a1093b0671 | |||
| 6a8a8f242a | |||
| 1163fe7b56 | |||
| 063a6dbc92 | |||
| 9e2a3fe848 | |||
| 2b7f3099a6 | |||
| cfa7e0bb28 | |||
| 1967ac0880 | |||
| 68966a1551 | |||
| 5ba7b58d7d | |||
| 9979983742 | |||
| ab76e93df7 | |||
| f30287c4df | |||
| 2807e53d4c | |||
| 642e6d677e | |||
| 944a0b3aad | |||
| e5ac472da3 | |||
| 2f79bfb075 | |||
| ae9e63d1be | |||
| d864603d01 | |||
| 06ac15b282 | |||
| 4c1dfc76d4 | |||
| bea19f76e9 | |||
| f80ac6dc50 | |||
| 2b6764fc36 | |||
| 7c74f02d01 | |||
| d53aa69691 | |||
| 9e3f528d44 | |||
| 22fd2d7189 | |||
| 7567791866 | |||
| 529ba7a0e7 | |||
| 3b3a68da15 | |||
| e0e94d78b0 | |||
| d68369b32a | |||
| d29886dbd2 | |||
| 50d3a29715 | |||
| 8e3a713a49 | |||
| 7cec79e79b | |||
| e9db7e8e58 | |||
| f53882049f | |||
| 8f4c9a673a | |||
| 02f980e968 | |||
| 412f75219a | |||
| c8c81a840b | |||
| 925cb39397 | |||
| f6ceb89c4b | |||
| a35d392f76 | |||
| 1306c84938 | |||
| 6484e36b82 | |||
| 918be31f2c | |||
| 648884044f | |||
| 505c6cb062 | |||
| 065c8f8861 | |||
| 6c509027f7 | |||
| 4eafdc3723 | |||
| 77f5c678d5 | |||
| 5e71d00ace | |||
| c2169f7813 | |||
| 7ff4b05c90 | |||
| d7f8bff957 | |||
| bda0917787 | |||
| 0eae7f56f3 | |||
| 24e3806b25 | |||
| f606e5742c | |||
| c6af2c285a | |||
| 35b7f2cb1c | |||
| 76a33a3743 | |||
| b6fd5e61b6 | |||
| fe639eed48 | |||
| 638fd3756a | |||
| de81434b36 | |||
| 433b3652fb | |||
| 86fe2212c3 | |||
| 182225a5b1 | |||
| e10c63dc64 | |||
| 29941729d2 | |||
| ee53377070 | |||
| 0deb6a4eb1 | |||
| b84ef0ce35 | |||
| 34dee32def | |||
| 94851f177b | |||
| e560b49d14 | |||
| d8b52ee0d3 | |||
| a9c0f356b4 | |||
| 8a3710482b | |||
| b3a4ea8e57 | |||
| 4be6c69633 | |||
| 005d99ad50 | |||
| 36f86beafd | |||
| 1fa79a2654 | |||
| 72611084d3 | |||
| a5db36469d | |||
| f8e6a78a3b | |||
| 5b0c8e0f76 | |||
| 2968cd0460 | |||
| 8ffb4e500e | |||
| 6133993cfe | |||
| 0d7a32877f | |||
| 18efc28d16 | |||
| 069395c2a0 | |||
| a725d2efac | |||
| 5f9710e4bb | |||
| ea6c5bfb0b | |||
| 14c279d1e0 | |||
| d2de81100d | |||
| 9b28ae6d9e | |||
| ea862a8f34 | |||
| 2bd1a82b7d | |||
| 97a37634ef | |||
| 28fbc1cd84 | |||
| b8ee2af5b7 | |||
| c234809894 | |||
| e1a997877a | |||
| 69218952c3 | |||
| dc2591b0bf | |||
| 2272b77b53 | |||
| d90e2f4436 |
@@ -65,6 +65,11 @@ jobs:
|
|||||||
asset_name: simplex-chat-ubuntu-22_04-x86-64
|
asset_name: simplex-chat-ubuntu-22_04-x86-64
|
||||||
desktop_asset_name: simplex-desktop-ubuntu-22_04-x86_64.deb
|
desktop_asset_name: simplex-desktop-ubuntu-22_04-x86_64.deb
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
|
ghc: "9.6.3"
|
||||||
|
cache_path: ~/.cabal/store
|
||||||
|
asset_name: simplex-chat-macos-aarch64
|
||||||
|
desktop_asset_name: simplex-desktop-macos-aarch64.dmg
|
||||||
|
- os: macos-13
|
||||||
ghc: "9.6.3"
|
ghc: "9.6.3"
|
||||||
cache_path: ~/.cabal/store
|
cache_path: ~/.cabal/store
|
||||||
asset_name: simplex-chat-macos-x86-64
|
asset_name: simplex-chat-macos-x86-64
|
||||||
@@ -107,18 +112,36 @@ jobs:
|
|||||||
if: matrix.os == 'macos-latest'
|
if: matrix.os == 'macos-latest'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
echo "ignore-project: False" >> cabal.project.local
|
echo "ignore-project: False" >> cabal.project.local
|
||||||
echo "package direct-sqlcipher" >> cabal.project.local
|
echo "package simplexmq" >> cabal.project.local
|
||||||
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local
|
echo " extra-include-dirs: /opt/homebrew/opt/openssl@1.1/include" >> cabal.project.local
|
||||||
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
|
echo " extra-lib-dirs: /opt/homebrew/opt/openssl@1.1/lib" >> cabal.project.local
|
||||||
echo " flags: +openssl" >> cabal.project.local
|
echo "" >> cabal.project.local
|
||||||
|
echo "package direct-sqlcipher" >> cabal.project.local
|
||||||
|
echo " extra-include-dirs: /opt/homebrew/opt/openssl@1.1/include" >> cabal.project.local
|
||||||
|
echo " extra-lib-dirs: /opt/homebrew/opt/openssl@1.1/lib" >> cabal.project.local
|
||||||
|
echo " flags: +openssl" >> cabal.project.local
|
||||||
|
|
||||||
|
- name: Unix prepare cabal.project.local for Mac
|
||||||
|
if: matrix.os == 'macos-13'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "ignore-project: False" >> cabal.project.local
|
||||||
|
echo "package simplexmq" >> cabal.project.local
|
||||||
|
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local
|
||||||
|
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
|
||||||
|
echo "" >> cabal.project.local
|
||||||
|
echo "package direct-sqlcipher" >> cabal.project.local
|
||||||
|
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local
|
||||||
|
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
|
||||||
|
echo " flags: +openssl" >> cabal.project.local
|
||||||
|
|
||||||
- name: Install AppImage dependencies
|
- name: Install AppImage dependencies
|
||||||
if: startsWith(github.ref, 'refs/tags/v') && matrix.asset_name && matrix.os == 'ubuntu-20.04'
|
if: startsWith(github.ref, 'refs/tags/v') && matrix.asset_name && matrix.os == 'ubuntu-20.04'
|
||||||
run: sudo apt install -y desktop-file-utils
|
run: sudo apt install -y desktop-file-utils
|
||||||
|
|
||||||
- name: Install pkg-config for Mac
|
- name: Install pkg-config for Mac
|
||||||
if: matrix.os == 'macos-latest'
|
if: matrix.os == 'macos-latest' || matrix.os == 'macos-13'
|
||||||
run: brew install pkg-config
|
run: brew install pkg-config
|
||||||
|
|
||||||
- name: Unix prepare cabal.project.local for Ubuntu
|
- name: Unix prepare cabal.project.local for Ubuntu
|
||||||
@@ -190,7 +213,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Mac build desktop
|
- name: Mac build desktop
|
||||||
id: mac_desktop_build
|
id: mac_desktop_build
|
||||||
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'macos-latest'
|
if: startsWith(github.ref, 'refs/tags/v') && (matrix.os == 'macos-latest' || matrix.os == 'macos-13')
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
APPLE_SIMPLEX_SIGNING_KEYCHAIN: ${{ secrets.APPLE_SIMPLEX_SIGNING_KEYCHAIN }}
|
APPLE_SIMPLEX_SIGNING_KEYCHAIN: ${{ secrets.APPLE_SIMPLEX_SIGNING_KEYCHAIN }}
|
||||||
@@ -241,7 +264,7 @@ jobs:
|
|||||||
${{ steps.linux_appimage_build.outputs.appimage_hash }}
|
${{ steps.linux_appimage_build.outputs.appimage_hash }}
|
||||||
|
|
||||||
- name: Mac upload desktop package to release
|
- name: Mac upload desktop package to release
|
||||||
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'macos-latest'
|
if: startsWith(github.ref, 'refs/tags/v') && (matrix.os == 'macos-latest' || matrix.os == 'macos-13')
|
||||||
uses: svenstaro/upload-release-action@v2
|
uses: svenstaro/upload-release-action@v2
|
||||||
with:
|
with:
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -250,7 +273,7 @@ jobs:
|
|||||||
tag: ${{ github.ref }}
|
tag: ${{ github.ref }}
|
||||||
|
|
||||||
- name: Mac update desktop package hash
|
- name: Mac update desktop package hash
|
||||||
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'macos-latest'
|
if: startsWith(github.ref, 'refs/tags/v') && (matrix.os == 'macos-latest' || matrix.os == 'macos-13')
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -5,14 +5,20 @@ on:
|
|||||||
pull_request_target:
|
pull_request_target:
|
||||||
types: [opened, closed, synchronize]
|
types: [opened, closed, synchronize]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
statuses: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
CLAssistant:
|
CLAssistant:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: "CLA Assistant"
|
- name: "CLA Assistant"
|
||||||
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request'
|
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
|
||||||
# Beta Release
|
# Beta Release
|
||||||
uses: cla-assistant/github-action@v2.1.3-beta
|
uses: cla-assistant/github-action@v2.3.0
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
# the below token should have repo scope and must be manually added by you in the repository's secret
|
# the below token should have repo scope and must be manually added by you in the repository's secret
|
||||||
@@ -33,4 +39,4 @@ jobs:
|
|||||||
#custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA'
|
#custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA'
|
||||||
#custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.'
|
#custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.'
|
||||||
#lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true)
|
#lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true)
|
||||||
#use-dco-flag: true - If you are using DCO instead of CLA
|
#use-dco-flag: true - If you are using DCO instead of CLA
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- stable
|
|
||||||
paths:
|
paths:
|
||||||
- website/**
|
- website/**
|
||||||
- images/**
|
- images/**
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ website/translations.json
|
|||||||
website/src/img/images/
|
website/src/img/images/
|
||||||
website/src/images/
|
website/src/images/
|
||||||
website/src/js/lottie.min.js
|
website/src/js/lottie.min.js
|
||||||
|
website/src/privacy.md
|
||||||
# Generated files
|
# Generated files
|
||||||
website/package/generated*
|
website/package/generated*
|
||||||
|
|
||||||
|
|||||||
+17
-10
@@ -1,16 +1,21 @@
|
|||||||
|
---
|
||||||
|
layout: layouts/privacy.html
|
||||||
|
permalink: /privacy/index.html
|
||||||
|
---
|
||||||
|
|
||||||
# SimpleX Chat Privacy Policy and Conditions of Use
|
# SimpleX Chat Privacy Policy and Conditions of Use
|
||||||
|
|
||||||
SimpleX Chat is the first communication network based on a new protocol stack that builds on the same ideas of complete openness and decentralization as email and web, with the focus on providing security and privacy of communications, and without compromising on usability.
|
SimpleX Chat is the first communication network based on a new protocol stack that builds on the same ideas of complete openness and decentralization as email and web, with the focus on providing security and privacy of communications, and without compromising on usability.
|
||||||
|
|
||||||
SimpleX Chat communication protocol is the first protocol that has no user profile IDs of any kind, not even random numbers, cryptographic keys or hashes that identify the users. SimpleX Chat apps allow their users to send messages and files via relay server infrastructure. Relay server owners and providers do not have any access to your messages, thanks to double-ratchet end-to-end encryption algorithm (also known as Signal algorithm - do not confuse with Signal protocols or platform) and additional encryption layers, and they also have no access to your profile and contacts - as they do not provide any user accounts.
|
SimpleX Chat communication protocol is the first protocol that has no user profile IDs of any kind, not even random numbers, cryptographic keys or hashes that identify the users. SimpleX Chat apps allow their users to send messages and files via relay server infrastructure. Relay server owners and providers do not have any access to your messages, thanks to double-ratchet end-to-end encryption algorithm (also known as Signal algorithm - do not confuse with Signal protocols or platform) and additional encryption layers, and they also have no access to your profile and contacts - as they do not provide any user accounts.
|
||||||
|
|
||||||
Double ratchet algorithm has such important properties as [forward secrecy](./docs/GLOSSARY.md#forward-secrecy), sender [repudiation](./docs/GLOSSARY.md#) and break-in recovery (also known as [post-compromise security](./docs/GLOSSARY.md#post-compromise-security)).
|
Double ratchet algorithm has such important properties as [forward secrecy](/docs/GLOSSARY.md#forward-secrecy), sender [repudiation](/docs/GLOSSARY.md#) and break-in recovery (also known as [post-compromise security](/docs/GLOSSARY.md#post-compromise-security)).
|
||||||
|
|
||||||
If you believe that any part of this document is not aligned with our mission or values, please raise it with us via [email](chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion).
|
If you believe that any part of this document is not aligned with our mission or values, please raise it with us via [email](mailto:chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion).
|
||||||
|
|
||||||
## Privacy Policy
|
## Privacy Policy
|
||||||
|
|
||||||
SimpleX Chat Ltd uses the best industry practices for security and encryption to provide client and server software for secure [end-to-end encrypted](./docs/GLOSSARY.md#end-to-end-encryption) messaging via private connections. This encryption cannot be compromised by the relays servers, even if they are modified or compromised, via [man-in-the-middle attack](./docs/GLOSSARY.md#man-in-the-middle-attack), unlike most other communication platforms, services and networks.
|
SimpleX Chat Ltd uses the best industry practices for security and encryption to provide client and server software for secure [end-to-end encrypted](/docs/GLOSSARY.md#end-to-end-encryption) messaging via private connections. This encryption cannot be compromised by the relays servers, even if they are modified or compromised, via [man-in-the-middle attack](/docs/GLOSSARY.md#man-in-the-middle-attack), unlike most other communication platforms, services and networks.
|
||||||
|
|
||||||
SimpleX Chat software is built on top of SimpleX messaging and application protocols, based on a new message routing protocol allowing to establish private connections without having any kind of addresses or other identifiers assigned to its users - it does not use emails, phone numbers, usernames, identity keys or any other user profile identifiers to pass messages between the user applications.
|
SimpleX Chat software is built on top of SimpleX messaging and application protocols, based on a new message routing protocol allowing to establish private connections without having any kind of addresses or other identifiers assigned to its users - it does not use emails, phone numbers, usernames, identity keys or any other user profile identifiers to pass messages between the user applications.
|
||||||
|
|
||||||
@@ -20,7 +25,7 @@ While SimpleX Chat Ltd is not a communication service provider, and provide publ
|
|||||||
|
|
||||||
We see users and data sovereignty, and device and provider portability as critically important properties for any communication system.
|
We see users and data sovereignty, and device and provider portability as critically important properties for any communication system.
|
||||||
|
|
||||||
SimpleX Chat security assessment was done in October 2022 by [Trail of Bits](https://www.trailofbits.com/about), and most fixes were released in v4.2 – see [the announcement](./blog/20221108-simplex-chat-v4.2-security-audit-new-website.md).
|
SimpleX Chat security assessment was done in October 2022 by [Trail of Bits](https://www.trailofbits.com/about), and most fixes were released in v4.2 – see [the announcement](/blog/20221108-simplex-chat-v4.2-security-audit-new-website.md).
|
||||||
|
|
||||||
### Your information
|
### Your information
|
||||||
|
|
||||||
@@ -34,7 +39,7 @@ You can transfer the profile to another device by creating a backup of the app d
|
|||||||
|
|
||||||
#### Messages and Files
|
#### Messages and Files
|
||||||
|
|
||||||
SimpleX relay servers cannot decrypt or otherwise access the content or even the size of your messages and files you send or receive. Each message is padded to a fixed size of 16kb. Each file is sent in chunks of 64kb, 256kb, 1mb or 8mb via all or some of the configured file relay servers. Both messages and files are sent end-to-end encrypted, and the servers do not have technical means to compromise this encryption, because part of the [key exchange](./docs/GLOSSARY.md#key-exchange) happens out-of-band.
|
SimpleX relay servers cannot decrypt or otherwise access the content or even the size of your messages and files you send or receive. Each message is padded to a fixed size of 16kb. Each file is sent in chunks of 64kb, 256kb, 1mb or 8mb via all or some of the configured file relay servers. Both messages and files are sent end-to-end encrypted, and the servers do not have technical means to compromise this encryption, because part of the [key exchange](/docs/GLOSSARY.md#key-exchange) happens out-of-band.
|
||||||
|
|
||||||
Your message history is stored only on your own device and the devices of your contacts. While the recipients' devices are offline, messaging relay servers temporarily store end-to-end encrypted messages – you can configure which relay servers are used to receive the messages from the new contacts, and you can manually change them for the existing contacts too.
|
Your message history is stored only on your own device and the devices of your contacts. While the recipients' devices are offline, messaging relay servers temporarily store end-to-end encrypted messages – you can configure which relay servers are used to receive the messages from the new contacts, and you can manually change them for the existing contacts too.
|
||||||
|
|
||||||
@@ -74,7 +79,7 @@ When you choose to use instant push notifications in SimpleX iOS app, because th
|
|||||||
|
|
||||||
Preset notification server cannot observe the actual addresses of these queues, as a separate address is used to subscribe to the notifications. It also cannot observe who sends messages to you. Apple push notifications servers can only observe how many notifications are sent to you, but not from how many contacts, or from which messaging relays, as notifications are delivered to your device end-to-end encrypted by one of the preset notification servers - these notifications only contain end-to-end encrypted metadata, not even encrypted message content, and they look completely random to Apple push notification servers.
|
Preset notification server cannot observe the actual addresses of these queues, as a separate address is used to subscribe to the notifications. It also cannot observe who sends messages to you. Apple push notifications servers can only observe how many notifications are sent to you, but not from how many contacts, or from which messaging relays, as notifications are delivered to your device end-to-end encrypted by one of the preset notification servers - these notifications only contain end-to-end encrypted metadata, not even encrypted message content, and they look completely random to Apple push notification servers.
|
||||||
|
|
||||||
You can read more about the design of iOS push notifications [here](https://simplex.chat/blog/20220404-simplex-chat-instant-notifications.html#our-ios-approach-has-one-trade-off).
|
You can read more about the design of iOS push notifications [here](./blog/20220404-simplex-chat-instant-notifications.md#our-ios-approach-has-one-trade-off).
|
||||||
|
|
||||||
#### Another information stored on the servers
|
#### Another information stored on the servers
|
||||||
|
|
||||||
@@ -82,7 +87,7 @@ Additional technical information can be stored on our servers, including randoml
|
|||||||
|
|
||||||
#### SimpleX Directory
|
#### SimpleX Directory
|
||||||
|
|
||||||
[SimpleX Directory](./docs/DIRECTORY.md) stores: your search requests, the messages and the members profiles in the registered groups. You can connect to SimpleX Directory via [this address](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).
|
[SimpleX Directory](/docs/DIRECTORY.md) stores: your search requests, the messages and the members profiles in the registered groups. You can connect to SimpleX Directory via [this address](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).
|
||||||
|
|
||||||
#### User Support
|
#### User Support
|
||||||
|
|
||||||
@@ -103,13 +108,15 @@ The cases when SimpleX Chat Ltd may share the data temporarily stored on the ser
|
|||||||
|
|
||||||
At the time of updating this document, we have never provided or have been requested the access to the preset relay servers or any information from the servers by any third parties. If we are ever requested to provide such access or information, we will follow the due legal process to limit any information shared with the third parties to the minimally required by law.
|
At the time of updating this document, we have never provided or have been requested the access to the preset relay servers or any information from the servers by any third parties. If we are ever requested to provide such access or information, we will follow the due legal process to limit any information shared with the third parties to the minimally required by law.
|
||||||
|
|
||||||
|
We will publish information we are legally allowed to share about such requests in the [Transparency reports](./docs/TRANSPARENCY.md).
|
||||||
|
|
||||||
### Updates
|
### Updates
|
||||||
|
|
||||||
We will update this Privacy Policy as needed so that it is current, accurate, and as clear as possible. Your continued use of our software applications and preset relays infrastructure confirms your acceptance of our updated Privacy Policy.
|
We will update this Privacy Policy as needed so that it is current, accurate, and as clear as possible. Your continued use of our software applications and preset relays infrastructure confirms your acceptance of our updated Privacy Policy.
|
||||||
|
|
||||||
Please also read our Conditions of Use of Software and Infrastructure below.
|
Please also read our Conditions of Use of Software and Infrastructure below.
|
||||||
|
|
||||||
If you have questions about our Privacy Policy please contact us via [email](chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion).
|
If you have questions about our Privacy Policy please contact us via [email](mailto:chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion).
|
||||||
|
|
||||||
## Conditions of Use of Software and Infrastructure
|
## Conditions of Use of Software and Infrastructure
|
||||||
|
|
||||||
@@ -131,7 +138,7 @@ You accept the Conditions of Use of Software and Infrastructure ("Conditions") b
|
|||||||
|
|
||||||
**Traffic and device costs**. You are solely responsible for the traffic and device costs that you incur while using our Applications, and any associated taxes.
|
**Traffic and device costs**. You are solely responsible for the traffic and device costs that you incur while using our Applications, and any associated taxes.
|
||||||
|
|
||||||
**Legal and acceptable usage**. You agree to use our Applications only for legal and acceptable purposes. You will not use (or assist others in using) our Applications in ways that: 1) violate or infringe the rights of Software users, SimpleX Chat Ltd, or others, including privacy, publicity, intellectual property, or other proprietary rights; 2) involve sending illegal or impermissible communications, e.g. spam. While we cannot access content or identify messages or groups, in some cases the links to the illegal or impermissible communications available via our Applications can be shared publicly on social media or websites. We reserve the right to remove such links from the preset servers and disrupt the conversations that send illegal content via our servers, whether they were reported by the users or discovered by our team.
|
**Legal usage**. You agree to use our Applications only for legal purposes. You will not use (or assist others in using) our Applications in ways that: 1) violate or infringe the rights of Software users, SimpleX Chat Ltd, or others, including privacy, publicity, intellectual property, or other proprietary rights; 2) involve sending illegal communications, e.g. spam. While we cannot access content or identify messages or groups, in some cases the links to the illegal communications available via our Applications can be shared publicly on social media or websites. We reserve the right to remove such links from the preset servers and disrupt the conversations that send illegal content via our servers, whether they were reported by the users or discovered by our team.
|
||||||
|
|
||||||
**Damage to SimpleX Chat Ltd**. You must not (or assist others to) access, use, modify, distribute, transfer, or exploit our Applications in unauthorized manners, or in ways that harm Software users, SimpleX Chat Ltd, our Infrastructure, or any other systems. For example, you must not 1) access our Infrastructure or systems without authorization, in any way other than by using the Software; 2) disrupt the integrity or performance of our Infrastructure; 3) collect information about our users in any manner; or 4) sell, rent, or charge for our Infrastructure. This does not prohibit you from providing your own Infrastructure to others, whether free or for a fee, as long as you do not violate these Conditions and AGPLv3 license, including the requirement to publish any modifications of the relay server software.
|
**Damage to SimpleX Chat Ltd**. You must not (or assist others to) access, use, modify, distribute, transfer, or exploit our Applications in unauthorized manners, or in ways that harm Software users, SimpleX Chat Ltd, our Infrastructure, or any other systems. For example, you must not 1) access our Infrastructure or systems without authorization, in any way other than by using the Software; 2) disrupt the integrity or performance of our Infrastructure; 3) collect information about our users in any manner; or 4) sell, rent, or charge for our Infrastructure. This does not prohibit you from providing your own Infrastructure to others, whether free or for a fee, as long as you do not violate these Conditions and AGPLv3 license, including the requirement to publish any modifications of the relay server software.
|
||||||
|
|
||||||
@@ -165,4 +172,4 @@ You accept the Conditions of Use of Software and Infrastructure ("Conditions") b
|
|||||||
|
|
||||||
**Ending these conditions**. You may end these Conditions with SimpleX Chat Ltd at any time by deleting our Applications from your devices and discontinuing use of our Infrastructure. The provisions related to Licenses, Disclaimers, Limitation of Liability, Resolving dispute, Availability, Changes to the conditions, Enforcing the conditions, and Ending these conditions will survive termination of your relationship with SimpleX Chat Ltd.
|
**Ending these conditions**. You may end these Conditions with SimpleX Chat Ltd at any time by deleting our Applications from your devices and discontinuing use of our Infrastructure. The provisions related to Licenses, Disclaimers, Limitation of Liability, Resolving dispute, Availability, Changes to the conditions, Enforcing the conditions, and Ending these conditions will survive termination of your relationship with SimpleX Chat Ltd.
|
||||||
|
|
||||||
Updated February 24, 2024
|
Updated April 24, 2024
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
[](https://www.reddit.com/r/SimpleXChat)
|
[](https://www.reddit.com/r/SimpleXChat)
|
||||||
<a rel="me" href="https://mastodon.social/@simplex"></a>
|
<a rel="me" href="https://mastodon.social/@simplex"></a>
|
||||||
|
|
||||||
| 30/03/2023 | EN, [FR](/docs/lang/fr/README.md), [CZ](/docs/lang/cs/README.md) |
|
| 30/03/2023 | EN, [FR](/docs/lang/fr/README.md), [CZ](/docs/lang/cs/README.md), [PL](/docs/lang/pl/README.md) |
|
||||||
|
|
||||||
<img src="images/simplex-chat-logo.svg" alt="SimpleX logo" width="100%">
|
<img src="images/simplex-chat-logo.svg" alt="SimpleX logo" width="100%">
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ Messages not following these rules will be deleted, the right to send messages m
|
|||||||
|
|
||||||
You can join an English-speaking users group if you want to ask any questions: [#SimpleX users group](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2Fos8FftfoV8zjb2T89fUEjJtF7y64p5av%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAQqMgh0fw2lPhjn3PDIEfAKA_E0-gf8Hr8zzhYnDivRs%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22lBPiveK2mjfUH43SN77R0w%3D%3D%22%7D)
|
You can join an English-speaking users group if you want to ask any questions: [#SimpleX users group](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2Fos8FftfoV8zjb2T89fUEjJtF7y64p5av%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAQqMgh0fw2lPhjn3PDIEfAKA_E0-gf8Hr8zzhYnDivRs%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22lBPiveK2mjfUH43SN77R0w%3D%3D%22%7D)
|
||||||
|
|
||||||
There is also a group [#simplex-devs](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2F6eHqy7uAbZPOcA6qBtrQgQquVlt4Ll91%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAqV_pg3FF00L98aCXp4D3bOs4Sxv_UmSd-gb0juVoQVs%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22XonlixcHBIb2ijCehbZoiw%3D%3D%22%7D) for developers who build on SimpleX platform:
|
There is also a group [#simplex-devs](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FvYCRjIflKNMGYlfTkuHe4B40qSlQ0439%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAHNdcqNbzXZhyMoSBjT2R0-Eb1EPaLyUg3KZjn-kmM1w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22PD20tcXjw7IpkkMCfR6HLA%3D%3D%22%7D) for developers who build on SimpleX platform:
|
||||||
|
|
||||||
- chat bots and automations
|
- chat bots and automations
|
||||||
- integrations with other apps
|
- integrations with other apps
|
||||||
@@ -234,6 +234,8 @@ You can use SimpleX with your own servers and still communicate with people usin
|
|||||||
|
|
||||||
Recent and important updates:
|
Recent and important updates:
|
||||||
|
|
||||||
|
[Apr 26, 2024. SimpleX network: legally binding transparency, v5.7 released with better calls and messages.](./blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.md)
|
||||||
|
|
||||||
[Mar 23, 2024. SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration.](./blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md)
|
[Mar 23, 2024. SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration.](./blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md)
|
||||||
|
|
||||||
[Mar 14, 2024. SimpleX Chat v5.6 beta: adding quantum resistance to Signal double ratchet algorithm.](./blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md)
|
[Mar 14, 2024. SimpleX Chat v5.6 beta: adding quantum resistance to Signal double ratchet algorithm.](./blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md)
|
||||||
@@ -412,13 +414,13 @@ We have never provided or have been requested access to our servers or any infor
|
|||||||
|
|
||||||
We do not log IP addresses of the users and we do not perform any traffic correlation on our servers. If transport level security is critical you must use Tor or some other similar network to access messaging servers. We will be improving the client applications to reduce the opportunities for traffic correlation.
|
We do not log IP addresses of the users and we do not perform any traffic correlation on our servers. If transport level security is critical you must use Tor or some other similar network to access messaging servers. We will be improving the client applications to reduce the opportunities for traffic correlation.
|
||||||
|
|
||||||
Please read more in [Terms & privacy policy](./PRIVACY.md).
|
Please read more in [Privacy Policy](./PRIVACY.md).
|
||||||
|
|
||||||
## Security contact
|
## Security contact
|
||||||
|
|
||||||
To report a security vulnerability, please send us email to chat@simplex.chat. We will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.
|
Please see our [Security Policy](./docs/SECURITY.md) on how to report security vulnerabilities to us. We will coordinate the fix and disclosure.
|
||||||
|
|
||||||
Please treat any findings of possible traffic correlation attacks allowing to correlate two different conversations to the same user, other than covered in [the threat model](https://github.com/simplex-chat/simplexmq/blob/stable/protocol/overview-tjr.md#threat-model), as security vulnerabilities, and follow this disclosure process.
|
Please do NOT report security vulnerabilities via GitHub issues.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ class AudioPlayer: NSObject, AVAudioPlayerDelegate {
|
|||||||
if playback {
|
if playback {
|
||||||
if AVAudioSession.sharedInstance().category != .playback {
|
if AVAudioSession.sharedInstance().category != .playback {
|
||||||
logger.log("AudioSession: playback")
|
logger.log("AudioSession: playback")
|
||||||
try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: .duckOthers)
|
try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: [.duckOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if AVAudioSession.sharedInstance().category != .soloAmbient {
|
if AVAudioSession.sharedInstance().category != .soloAmbient {
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ final class ChatModel: ObservableObject {
|
|||||||
// tracks keyboard height via subscription in AppDelegate
|
// tracks keyboard height via subscription in AppDelegate
|
||||||
@Published var keyboardHeight: CGFloat = 0
|
@Published var keyboardHeight: CGFloat = 0
|
||||||
@Published var pasteboardHasStrings: Bool = UIPasteboard.general.hasStrings
|
@Published var pasteboardHasStrings: Bool = UIPasteboard.general.hasStrings
|
||||||
|
@Published var networkInfo = UserNetworkInfo(networkType: .other, online: true)
|
||||||
|
|
||||||
var messageDelivery: Dictionary<Int64, () -> Void> = [:]
|
var messageDelivery: Dictionary<Int64, () -> Void> = [:]
|
||||||
|
|
||||||
@@ -778,6 +779,24 @@ final class Chat: ObservableObject, Identifiable {
|
|||||||
|
|
||||||
var viewId: String { get { "\(chatInfo.id) \(created.timeIntervalSince1970)" } }
|
var viewId: String { get { "\(chatInfo.id) \(created.timeIntervalSince1970)" } }
|
||||||
|
|
||||||
|
func groupFeatureEnabled(_ feature: GroupFeature) -> Bool {
|
||||||
|
if case let .group(groupInfo) = self.chatInfo {
|
||||||
|
let p = groupInfo.fullGroupPreferences
|
||||||
|
return switch feature {
|
||||||
|
case .timedMessages: p.timedMessages.on
|
||||||
|
case .directMessages: p.directMessages.on(for: groupInfo.membership)
|
||||||
|
case .fullDelete: p.fullDelete.on
|
||||||
|
case .reactions: p.reactions.on
|
||||||
|
case .voice: p.voice.on(for: groupInfo.membership)
|
||||||
|
case .files: p.files.on(for: groupInfo.membership)
|
||||||
|
case .simplexLinks: p.simplexLinks.on(for: groupInfo.membership)
|
||||||
|
case .history: p.history.on
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static var sampleData: Chat = Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: [])
|
public static var sampleData: Chat = Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: [])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
//
|
||||||
|
// NetworkObserver.swift
|
||||||
|
// SimpleX (iOS)
|
||||||
|
//
|
||||||
|
// Created by Avently on 05.04.2024.
|
||||||
|
// Copyright © 2024 SimpleX Chat. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import Network
|
||||||
|
import SimpleXChat
|
||||||
|
|
||||||
|
class NetworkObserver {
|
||||||
|
static let shared = NetworkObserver()
|
||||||
|
private let queue: DispatchQueue = DispatchQueue(label: "chat.simplex.app.NetworkObserver")
|
||||||
|
private var prevInfo: UserNetworkInfo? = nil
|
||||||
|
private var monitor: NWPathMonitor?
|
||||||
|
private let monitorLock: DispatchQueue = DispatchQueue(label: "chat.simplex.app.monitorLock")
|
||||||
|
|
||||||
|
func restartMonitor() {
|
||||||
|
monitorLock.sync {
|
||||||
|
monitor?.cancel()
|
||||||
|
let mon = NWPathMonitor()
|
||||||
|
mon.pathUpdateHandler = { [weak self] path in
|
||||||
|
self?.networkPathChanged(path: path)
|
||||||
|
}
|
||||||
|
mon.start(queue: queue)
|
||||||
|
monitor = mon
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func networkPathChanged(path: NWPath) {
|
||||||
|
let info = UserNetworkInfo(
|
||||||
|
networkType: networkTypeFromPath(path),
|
||||||
|
online: path.status == .satisfied
|
||||||
|
)
|
||||||
|
if (prevInfo != info) {
|
||||||
|
prevInfo = info
|
||||||
|
setNetworkInfo(info)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func networkTypeFromPath(_ path: NWPath) -> UserNetworkType {
|
||||||
|
if path.usesInterfaceType(.wiredEthernet) {
|
||||||
|
.ethernet
|
||||||
|
} else if path.usesInterfaceType(.wifi) {
|
||||||
|
.wifi
|
||||||
|
} else if path.usesInterfaceType(.cellular) {
|
||||||
|
.cellular
|
||||||
|
} else if path.usesInterfaceType(.other) {
|
||||||
|
.other
|
||||||
|
} else {
|
||||||
|
.none
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static var networkObserver: NetworkObserver? = nil
|
||||||
|
|
||||||
|
private func setNetworkInfo(_ info: UserNetworkInfo) {
|
||||||
|
logger.debug("setNetworkInfo Network changed: \(String(describing: info))")
|
||||||
|
DispatchQueue.main.sync {
|
||||||
|
ChatModel.shared.networkInfo = info
|
||||||
|
}
|
||||||
|
if !hasChatCtrl() { return }
|
||||||
|
self.monitorLock.sync {
|
||||||
|
do {
|
||||||
|
try apiSetNetworkInfo(info)
|
||||||
|
} catch let err {
|
||||||
|
logger.error("setNetworkInfo error: \(responseError(err))")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -272,18 +272,6 @@ func apiGetAppSettings(settings: AppSettings) throws -> AppSettings {
|
|||||||
throw r
|
throw r
|
||||||
}
|
}
|
||||||
|
|
||||||
func apiSetPQEncryption(_ enable: Bool) throws {
|
|
||||||
let r = chatSendCmdSync(.apiSetPQEncryption(enable: enable))
|
|
||||||
if case .cmdOk = r { return }
|
|
||||||
throw r
|
|
||||||
}
|
|
||||||
|
|
||||||
func apiSetContactPQ(_ contactId: Int64, _ enable: Bool) async throws -> Contact {
|
|
||||||
let r = await chatSendCmd(.apiSetContactPQ(contactId: contactId, enable: enable))
|
|
||||||
if case let .contactPQAllowed(_, contact, _) = r { return contact }
|
|
||||||
throw r
|
|
||||||
}
|
|
||||||
|
|
||||||
func apiExportArchive(config: ArchiveConfig) async throws {
|
func apiExportArchive(config: ArchiveConfig) async throws {
|
||||||
try await sendCommandOkResp(.apiExportArchive(config: config))
|
try await sendCommandOkResp(.apiExportArchive(config: config))
|
||||||
}
|
}
|
||||||
@@ -353,11 +341,20 @@ func apiGetChatItemInfo(type: ChatType, id: Int64, itemId: Int64) async throws -
|
|||||||
throw r
|
throw r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func apiForwardChatItem(toChatType: ChatType, toChatId: Int64, fromChatType: ChatType, fromChatId: Int64, itemId: Int64, ttl: Int?) async -> ChatItem? {
|
||||||
|
let cmd: ChatCommand = .apiForwardChatItem(toChatType: toChatType, toChatId: toChatId, fromChatType: fromChatType, fromChatId: fromChatId, itemId: itemId, ttl: ttl)
|
||||||
|
return await processSendMessageCmd(toChatType: toChatType, cmd: cmd)
|
||||||
|
}
|
||||||
|
|
||||||
func apiSendMessage(type: ChatType, id: Int64, file: CryptoFile?, quotedItemId: Int64?, msg: MsgContent, live: Bool = false, ttl: Int? = nil) async -> ChatItem? {
|
func apiSendMessage(type: ChatType, id: Int64, file: CryptoFile?, quotedItemId: Int64?, msg: MsgContent, live: Bool = false, ttl: Int? = nil) async -> ChatItem? {
|
||||||
let chatModel = ChatModel.shared
|
|
||||||
let cmd: ChatCommand = .apiSendMessage(type: type, id: id, file: file, quotedItemId: quotedItemId, msg: msg, live: live, ttl: ttl)
|
let cmd: ChatCommand = .apiSendMessage(type: type, id: id, file: file, quotedItemId: quotedItemId, msg: msg, live: live, ttl: ttl)
|
||||||
|
return await processSendMessageCmd(toChatType: type, cmd: cmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
private func processSendMessageCmd(toChatType: ChatType, cmd: ChatCommand) async -> ChatItem? {
|
||||||
|
let chatModel = ChatModel.shared
|
||||||
let r: ChatResponse
|
let r: ChatResponse
|
||||||
if type == .direct {
|
if toChatType == .direct {
|
||||||
var cItem: ChatItem? = nil
|
var cItem: ChatItem? = nil
|
||||||
let endTask = beginBGTask({
|
let endTask = beginBGTask({
|
||||||
if let cItem = cItem {
|
if let cItem = cItem {
|
||||||
@@ -397,7 +394,7 @@ func apiCreateChatItem(noteFolderId: Int64, file: CryptoFile?, msg: MsgContent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func sendMessageErrorAlert(_ r: ChatResponse) {
|
private func sendMessageErrorAlert(_ r: ChatResponse) {
|
||||||
logger.error("apiSendMessage error: \(String(describing: r))")
|
logger.error("send message error: \(String(describing: r))")
|
||||||
AlertManager.shared.showAlertMsg(
|
AlertManager.shared.showAlertMsg(
|
||||||
title: "Error sending message",
|
title: "Error sending message",
|
||||||
message: "Error: \(String(describing: r))"
|
message: "Error: \(String(describing: r))"
|
||||||
@@ -534,6 +531,12 @@ func setNetworkConfig(_ cfg: NetCfg, ctrl: chat_ctrl? = nil) throws {
|
|||||||
throw r
|
throw r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func apiSetNetworkInfo(_ networkInfo: UserNetworkInfo) throws {
|
||||||
|
let r = chatSendCmdSync(.apiSetNetworkInfo(networkInfo: networkInfo))
|
||||||
|
if case .cmdOk = r { return }
|
||||||
|
throw r
|
||||||
|
}
|
||||||
|
|
||||||
func reconnectAllServers() async throws {
|
func reconnectAllServers() async throws {
|
||||||
try await sendCommandOkResp(.reconnectAllServers)
|
try await sendCommandOkResp(.reconnectAllServers)
|
||||||
}
|
}
|
||||||
@@ -558,6 +561,18 @@ func apiGroupMemberInfo(_ groupId: Int64, _ groupMemberId: Int64) throws -> (Gro
|
|||||||
throw r
|
throw r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func apiContactQueueInfo(_ contactId: Int64) async throws -> (RcvMsgInfo?, QueueInfo) {
|
||||||
|
let r = await chatSendCmd(.apiContactQueueInfo(contactId: contactId))
|
||||||
|
if case let .queueInfo(_, rcvMsgInfo, queueInfo) = r { return (rcvMsgInfo, queueInfo) }
|
||||||
|
throw r
|
||||||
|
}
|
||||||
|
|
||||||
|
func apiGroupMemberQueueInfo(_ groupId: Int64, _ groupMemberId: Int64) async throws -> (RcvMsgInfo?, QueueInfo) {
|
||||||
|
let r = await chatSendCmd(.apiGroupMemberQueueInfo(groupId: groupId, groupMemberId: groupMemberId))
|
||||||
|
if case let .queueInfo(_, rcvMsgInfo, queueInfo) = r { return (rcvMsgInfo, queueInfo) }
|
||||||
|
throw r
|
||||||
|
}
|
||||||
|
|
||||||
func apiSwitchContact(contactId: Int64) throws -> ConnectionStats {
|
func apiSwitchContact(contactId: Int64) throws -> ConnectionStats {
|
||||||
let r = chatSendCmdSync(.apiSwitchContact(contactId: contactId))
|
let r = chatSendCmdSync(.apiSwitchContact(contactId: contactId))
|
||||||
if case let .contactSwitchStarted(_, _, connectionStats) = r { return connectionStats }
|
if case let .contactSwitchStarted(_, _, connectionStats) = r { return connectionStats }
|
||||||
@@ -924,14 +939,19 @@ func standaloneFileInfo(url: String, ctrl: chat_ctrl? = nil) async -> MigrationF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func receiveFile(user: any UserLike, fileId: Int64, auto: Bool = false) async {
|
func receiveFile(user: any UserLike, fileId: Int64, userApprovedRelays: Bool = false, auto: Bool = false) async {
|
||||||
if let chatItem = await apiReceiveFile(fileId: fileId, encrypted: privacyEncryptLocalFilesGroupDefault.get(), auto: auto) {
|
if let chatItem = await apiReceiveFile(
|
||||||
|
fileId: fileId,
|
||||||
|
userApprovedRelays: userApprovedRelays || !privacyAskToApproveRelaysGroupDefault.get(),
|
||||||
|
encrypted: privacyEncryptLocalFilesGroupDefault.get(),
|
||||||
|
auto: auto
|
||||||
|
) {
|
||||||
await chatItemSimpleUpdate(user, chatItem)
|
await chatItemSimpleUpdate(user, chatItem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil, auto: Bool = false) async -> AChatItem? {
|
func apiReceiveFile(fileId: Int64, userApprovedRelays: Bool, encrypted: Bool, inline: Bool? = nil, auto: Bool = false) async -> AChatItem? {
|
||||||
let r = await chatSendCmd(.receiveFile(fileId: fileId, encrypted: encrypted, inline: inline))
|
let r = await chatSendCmd(.receiveFile(fileId: fileId, userApprovedRelays: userApprovedRelays, encrypted: encrypted, inline: inline))
|
||||||
let am = AlertManager.shared
|
let am = AlertManager.shared
|
||||||
if case let .rcvFileAccepted(_, chatItem) = r { return chatItem }
|
if case let .rcvFileAccepted(_, chatItem) = r { return chatItem }
|
||||||
if case .rcvFileAcceptedSndCancelled = r {
|
if case .rcvFileAcceptedSndCancelled = r {
|
||||||
@@ -944,19 +964,50 @@ func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil, auto: B
|
|||||||
}
|
}
|
||||||
} else if let networkErrorAlert = networkErrorAlert(r) {
|
} else if let networkErrorAlert = networkErrorAlert(r) {
|
||||||
logger.error("apiReceiveFile network error: \(String(describing: r))")
|
logger.error("apiReceiveFile network error: \(String(describing: r))")
|
||||||
am.showAlert(networkErrorAlert)
|
if !auto {
|
||||||
|
am.showAlert(networkErrorAlert)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
switch chatError(r) {
|
switch chatError(r) {
|
||||||
case .fileCancelled:
|
case .fileCancelled:
|
||||||
logger.debug("apiReceiveFile ignoring fileCancelled error")
|
logger.debug("apiReceiveFile ignoring fileCancelled error")
|
||||||
case .fileAlreadyReceiving:
|
case .fileAlreadyReceiving:
|
||||||
logger.debug("apiReceiveFile ignoring fileAlreadyReceiving error")
|
logger.debug("apiReceiveFile ignoring fileAlreadyReceiving error")
|
||||||
|
case let .fileNotApproved(fileId, unknownServers):
|
||||||
|
logger.debug("apiReceiveFile fileNotApproved error")
|
||||||
|
if !auto {
|
||||||
|
let srvs = unknownServers.map { s in
|
||||||
|
if let srv = parseServerAddress(s), !srv.hostnames.isEmpty {
|
||||||
|
srv.hostnames[0]
|
||||||
|
} else {
|
||||||
|
serverHost(s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
am.showAlert(Alert(
|
||||||
|
title: Text("Unknown servers!"),
|
||||||
|
message: Text("Without Tor or VPN, your IP address will be visible to these XFTP relays: \(srvs.sorted().joined(separator: ", "))."),
|
||||||
|
primaryButton: .default(
|
||||||
|
Text("Download"),
|
||||||
|
action: {
|
||||||
|
Task {
|
||||||
|
logger.debug("apiReceiveFile fileNotApproved alert - in Task")
|
||||||
|
if let user = ChatModel.shared.currentUser {
|
||||||
|
await receiveFile(user: user, fileId: fileId, userApprovedRelays: true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
secondaryButton: .cancel()
|
||||||
|
))
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
logger.error("apiReceiveFile error: \(String(describing: r))")
|
logger.error("apiReceiveFile error: \(String(describing: r))")
|
||||||
am.showAlertMsg(
|
if !auto {
|
||||||
title: "Error receiving file",
|
am.showAlertMsg(
|
||||||
message: "Error: \(String(describing: r))"
|
title: "Error receiving file",
|
||||||
)
|
message: "Error: \(String(describing: r))"
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@@ -1226,7 +1277,7 @@ func filterMembersToAdd(_ ms: [GMember]) -> [Contact] {
|
|||||||
let memberContactIds = ms.compactMap{ m in m.wrapped.memberCurrent ? m.wrapped.memberContactId : nil }
|
let memberContactIds = ms.compactMap{ m in m.wrapped.memberCurrent ? m.wrapped.memberContactId : nil }
|
||||||
return ChatModel.shared.chats
|
return ChatModel.shared.chats
|
||||||
.compactMap{ $0.chatInfo.contact }
|
.compactMap{ $0.chatInfo.contact }
|
||||||
.filter{ c in c.ready && c.active && !memberContactIds.contains(c.apiId) }
|
.filter{ c in c.sendMsgEnabled && !c.nextSendGrpInv && !memberContactIds.contains(c.apiId) }
|
||||||
.sorted{ $0.displayName.lowercased() < $1.displayName.lowercased() }
|
.sorted{ $0.displayName.lowercased() < $1.displayName.lowercased() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1297,6 +1348,7 @@ func initializeChat(start: Bool, confirmStart: Bool = false, dbKey: String? = ni
|
|||||||
defer { m.ctrlInitInProgress = false }
|
defer { m.ctrlInitInProgress = false }
|
||||||
(m.chatDbEncrypted, m.chatDbStatus) = chatMigrateInit(dbKey, confirmMigrations: confirmMigrations)
|
(m.chatDbEncrypted, m.chatDbStatus) = chatMigrateInit(dbKey, confirmMigrations: confirmMigrations)
|
||||||
if m.chatDbStatus != .ok { return }
|
if m.chatDbStatus != .ok { return }
|
||||||
|
NetworkObserver.shared.restartMonitor()
|
||||||
// If we migrated successfully means previous re-encryption process on database level finished successfully too
|
// If we migrated successfully means previous re-encryption process on database level finished successfully too
|
||||||
if encryptionStartedDefault.get() {
|
if encryptionStartedDefault.get() {
|
||||||
encryptionStartedDefault.set(false)
|
encryptionStartedDefault.set(false)
|
||||||
@@ -1304,7 +1356,6 @@ func initializeChat(start: Bool, confirmStart: Bool = false, dbKey: String? = ni
|
|||||||
try apiSetTempFolder(tempFolder: getTempFilesDirectory().path)
|
try apiSetTempFolder(tempFolder: getTempFilesDirectory().path)
|
||||||
try apiSetFilesFolder(filesFolder: getAppFilesDirectory().path)
|
try apiSetFilesFolder(filesFolder: getAppFilesDirectory().path)
|
||||||
try apiSetEncryptLocalFiles(privacyEncryptLocalFilesGroupDefault.get())
|
try apiSetEncryptLocalFiles(privacyEncryptLocalFilesGroupDefault.get())
|
||||||
try apiSetPQEncryption(pqExperimentalEnabledDefault.get())
|
|
||||||
m.chatInitialized = true
|
m.chatInitialized = true
|
||||||
m.currentUser = try apiGetActiveUser()
|
m.currentUser = try apiGetActiveUser()
|
||||||
if m.currentUser == nil {
|
if m.currentUser == nil {
|
||||||
@@ -1462,6 +1513,8 @@ class ChatReceiver {
|
|||||||
private var receiveMessages = true
|
private var receiveMessages = true
|
||||||
private var _lastMsgTime = Date.now
|
private var _lastMsgTime = Date.now
|
||||||
|
|
||||||
|
var messagesChannel: ((ChatResponse) -> Void)? = nil
|
||||||
|
|
||||||
static let shared = ChatReceiver()
|
static let shared = ChatReceiver()
|
||||||
|
|
||||||
var lastMsgTime: Date { get { _lastMsgTime } }
|
var lastMsgTime: Date { get { _lastMsgTime } }
|
||||||
@@ -1479,6 +1532,9 @@ class ChatReceiver {
|
|||||||
if let msg = await chatRecvMsg() {
|
if let msg = await chatRecvMsg() {
|
||||||
self._lastMsgTime = .now
|
self._lastMsgTime = .now
|
||||||
await processReceivedMsg(msg)
|
await processReceivedMsg(msg)
|
||||||
|
if let messagesChannel {
|
||||||
|
messagesChannel(msg)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_ = try? await Task.sleep(nanoseconds: 7_500_000)
|
_ = try? await Task.sleep(nanoseconds: 7_500_000)
|
||||||
}
|
}
|
||||||
@@ -1791,8 +1847,7 @@ func processReceivedMsg(_ res: ChatResponse) async {
|
|||||||
}
|
}
|
||||||
case let .sndFileCompleteXFTP(user, aChatItem, _):
|
case let .sndFileCompleteXFTP(user, aChatItem, _):
|
||||||
await chatItemSimpleUpdate(user, aChatItem)
|
await chatItemSimpleUpdate(user, aChatItem)
|
||||||
Task { cleanupFile(aChatItem) }
|
case let .sndFileError(user, aChatItem, _, _):
|
||||||
case let .sndFileError(user, aChatItem, _):
|
|
||||||
if let aChatItem = aChatItem {
|
if let aChatItem = aChatItem {
|
||||||
await chatItemSimpleUpdate(user, aChatItem)
|
await chatItemSimpleUpdate(user, aChatItem)
|
||||||
Task { cleanupFile(aChatItem) }
|
Task { cleanupFile(aChatItem) }
|
||||||
@@ -1842,21 +1897,35 @@ func processReceivedMsg(_ res: ChatResponse) async {
|
|||||||
}
|
}
|
||||||
case .chatSuspended:
|
case .chatSuspended:
|
||||||
chatSuspended()
|
chatSuspended()
|
||||||
case let .contactSwitch(_, contact, switchProgress):
|
case let .contactSwitch(user, contact, switchProgress):
|
||||||
await MainActor.run {
|
if active(user) {
|
||||||
m.updateContactConnectionStats(contact, switchProgress.connectionStats)
|
await MainActor.run {
|
||||||
|
m.updateContactConnectionStats(contact, switchProgress.connectionStats)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case let .groupMemberSwitch(_, groupInfo, member, switchProgress):
|
case let .groupMemberSwitch(user, groupInfo, member, switchProgress):
|
||||||
await MainActor.run {
|
if active(user) {
|
||||||
m.updateGroupMemberConnectionStats(groupInfo, member, switchProgress.connectionStats)
|
await MainActor.run {
|
||||||
|
m.updateGroupMemberConnectionStats(groupInfo, member, switchProgress.connectionStats)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case let .contactRatchetSync(_, contact, ratchetSyncProgress):
|
case let .contactRatchetSync(user, contact, ratchetSyncProgress):
|
||||||
await MainActor.run {
|
if active(user) {
|
||||||
m.updateContactConnectionStats(contact, ratchetSyncProgress.connectionStats)
|
await MainActor.run {
|
||||||
|
m.updateContactConnectionStats(contact, ratchetSyncProgress.connectionStats)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case let .groupMemberRatchetSync(_, groupInfo, member, ratchetSyncProgress):
|
case let .groupMemberRatchetSync(user, groupInfo, member, ratchetSyncProgress):
|
||||||
await MainActor.run {
|
if active(user) {
|
||||||
m.updateGroupMemberConnectionStats(groupInfo, member, ratchetSyncProgress.connectionStats)
|
await MainActor.run {
|
||||||
|
m.updateGroupMemberConnectionStats(groupInfo, member, ratchetSyncProgress.connectionStats)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case let .contactDisabled(user, contact):
|
||||||
|
if active(user) {
|
||||||
|
await MainActor.run {
|
||||||
|
m.updateContact(contact)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible):
|
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible):
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
import WebKit
|
import WebKit
|
||||||
import SimpleXChat
|
import SimpleXChat
|
||||||
|
import AVFoundation
|
||||||
|
|
||||||
struct ActiveCallView: View {
|
struct ActiveCallView: View {
|
||||||
@EnvironmentObject var m: ChatModel
|
@EnvironmentObject var m: ChatModel
|
||||||
@@ -21,6 +22,7 @@ struct ActiveCallView: View {
|
|||||||
@Binding var canConnectCall: Bool
|
@Binding var canConnectCall: Bool
|
||||||
@State var prevColorScheme: ColorScheme = .dark
|
@State var prevColorScheme: ColorScheme = .dark
|
||||||
@State var pipShown = false
|
@State var pipShown = false
|
||||||
|
@State var wasConnected = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ZStack(alignment: .topLeading) {
|
ZStack(alignment: .topLeading) {
|
||||||
@@ -69,6 +71,11 @@ struct ActiveCallView: View {
|
|||||||
Task { await m.callCommand.setClient(nil) }
|
Task { await m.callCommand.setClient(nil) }
|
||||||
AppDelegate.keepScreenOn(false)
|
AppDelegate.keepScreenOn(false)
|
||||||
client?.endCall()
|
client?.endCall()
|
||||||
|
CallSoundsPlayer.shared.stop()
|
||||||
|
try? AVAudioSession.sharedInstance().setCategory(.soloAmbient)
|
||||||
|
if (wasConnected) {
|
||||||
|
CallSoundsPlayer.shared.vibrate(long: true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.background(m.activeCallViewIsCollapsed ? .clear : .black)
|
.background(m.activeCallViewIsCollapsed ? .clear : .black)
|
||||||
// Quite a big delay when opening/closing the view when a scheme changes (globally) this way. It's not needed when CallKit is used since status bar is green with white text on it
|
// Quite a big delay when opening/closing the view when a scheme changes (globally) this way. It's not needed when CallKit is used since status bar is green with white text on it
|
||||||
@@ -103,6 +110,11 @@ struct ActiveCallView: View {
|
|||||||
call.callState = .invitationSent
|
call.callState = .invitationSent
|
||||||
call.localCapabilities = capabilities
|
call.localCapabilities = capabilities
|
||||||
}
|
}
|
||||||
|
if call.supportsVideo && !AVAudioSession.sharedInstance().hasExternalAudioDevice() {
|
||||||
|
try? AVAudioSession.sharedInstance().setCategory(.playback, options: [.allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
|
||||||
|
}
|
||||||
|
CallSoundsPlayer.shared.startConnectingCallSound()
|
||||||
|
activeCallWaitDeliveryReceipt()
|
||||||
}
|
}
|
||||||
case let .offer(offer, iceCandidates, capabilities):
|
case let .offer(offer, iceCandidates, capabilities):
|
||||||
Task {
|
Task {
|
||||||
@@ -126,6 +138,7 @@ struct ActiveCallView: View {
|
|||||||
}
|
}
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
call.callState = .negotiated
|
call.callState = .negotiated
|
||||||
|
CallSoundsPlayer.shared.stop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case let .ice(iceCandidates):
|
case let .ice(iceCandidates):
|
||||||
@@ -144,6 +157,10 @@ struct ActiveCallView: View {
|
|||||||
: CallController.shared.reportIncomingCall(call: call, connectedAt: nil)
|
: CallController.shared.reportIncomingCall(call: call, connectedAt: nil)
|
||||||
call.callState = .connected
|
call.callState = .connected
|
||||||
call.connectedAt = .now
|
call.connectedAt = .now
|
||||||
|
if !wasConnected {
|
||||||
|
CallSoundsPlayer.shared.vibrate(long: false)
|
||||||
|
wasConnected = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if state.connectionState == "closed" {
|
if state.connectionState == "closed" {
|
||||||
closeCallView(client)
|
closeCallView(client)
|
||||||
@@ -161,6 +178,10 @@ struct ActiveCallView: View {
|
|||||||
call.callState = .connected
|
call.callState = .connected
|
||||||
call.connectionInfo = connectionInfo
|
call.connectionInfo = connectionInfo
|
||||||
call.connectedAt = .now
|
call.connectedAt = .now
|
||||||
|
if !wasConnected {
|
||||||
|
CallSoundsPlayer.shared.vibrate(long: false)
|
||||||
|
wasConnected = true
|
||||||
|
}
|
||||||
case .ended:
|
case .ended:
|
||||||
closeCallView(client)
|
closeCallView(client)
|
||||||
call.callState = .ended
|
call.callState = .ended
|
||||||
@@ -187,6 +208,22 @@ struct ActiveCallView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func activeCallWaitDeliveryReceipt() {
|
||||||
|
ChatReceiver.shared.messagesChannel = { msg in
|
||||||
|
guard let call = ChatModel.shared.activeCall, call.callState == .invitationSent else {
|
||||||
|
ChatReceiver.shared.messagesChannel = nil
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if case let .chatItemStatusUpdated(_, msg) = msg,
|
||||||
|
msg.chatInfo.id == call.contact.id,
|
||||||
|
case .sndCall = msg.chatItem.content,
|
||||||
|
case .sndRcvd = msg.chatItem.meta.itemStatus {
|
||||||
|
CallSoundsPlayer.shared.startInCallSound()
|
||||||
|
ChatReceiver.shared.messagesChannel = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private func closeCallView(_ client: WebRTCClient) {
|
private func closeCallView(_ client: WebRTCClient) {
|
||||||
if m.activeCall != nil {
|
if m.activeCall != nil {
|
||||||
m.showCallView = false
|
m.showCallView = false
|
||||||
@@ -198,6 +235,7 @@ struct ActiveCallOverlay: View {
|
|||||||
@EnvironmentObject var chatModel: ChatModel
|
@EnvironmentObject var chatModel: ChatModel
|
||||||
@ObservedObject var call: Call
|
@ObservedObject var call: Call
|
||||||
var client: WebRTCClient
|
var client: WebRTCClient
|
||||||
|
@ObservedObject private var deviceManager = CallAudioDeviceManager.shared
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack {
|
VStack {
|
||||||
@@ -213,7 +251,16 @@ struct ActiveCallOverlay: View {
|
|||||||
HStack {
|
HStack {
|
||||||
toggleAudioButton()
|
toggleAudioButton()
|
||||||
Spacer()
|
Spacer()
|
||||||
Color.clear.frame(width: 40, height: 40)
|
if deviceManager.availableInputs.allSatisfy({ $0.portType == .builtInMic }) {
|
||||||
|
toggleSpeakerButton()
|
||||||
|
.frame(width: 40, height: 40)
|
||||||
|
} else if call.hasMedia {
|
||||||
|
AudioDevicePicker()
|
||||||
|
.scaleEffect(2)
|
||||||
|
.frame(maxWidth: 40, maxHeight: 40)
|
||||||
|
} else {
|
||||||
|
Color.clear.frame(width: 40, height: 40)
|
||||||
|
}
|
||||||
Spacer()
|
Spacer()
|
||||||
endCallButton()
|
endCallButton()
|
||||||
Spacer()
|
Spacer()
|
||||||
@@ -239,9 +286,7 @@ struct ActiveCallOverlay: View {
|
|||||||
.foregroundColor(.white.opacity(0.8))
|
.foregroundColor(.white.opacity(0.8))
|
||||||
}
|
}
|
||||||
VStack {
|
VStack {
|
||||||
ProfileImage(imageStr: call.contact.profile.image)
|
ProfileImage(imageStr: call.contact.profile.image, size: 192)
|
||||||
.scaledToFit()
|
|
||||||
.frame(width: 192, height: 192)
|
|
||||||
audioCallInfoView(call)
|
audioCallInfoView(call)
|
||||||
}
|
}
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
@@ -256,14 +301,33 @@ struct ActiveCallOverlay: View {
|
|||||||
toggleAudioButton()
|
toggleAudioButton()
|
||||||
.frame(maxWidth: .infinity, alignment: .leading)
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
endCallButton()
|
endCallButton()
|
||||||
toggleSpeakerButton()
|
// Check if the only input is microphone. And in this case show toggle button,
|
||||||
.frame(maxWidth: .infinity, alignment: .trailing)
|
// If there are more inputs, it probably means something like bluetooth headphones are available
|
||||||
|
// and in this case show iOS button for choosing different output.
|
||||||
|
// There is no way to get available outputs, only inputs
|
||||||
|
if deviceManager.availableInputs.allSatisfy({ $0.portType == .builtInMic }) {
|
||||||
|
toggleSpeakerButton()
|
||||||
|
.frame(maxWidth: .infinity, alignment: .trailing)
|
||||||
|
} else if call.hasMedia {
|
||||||
|
AudioDevicePicker()
|
||||||
|
.scaleEffect(2)
|
||||||
|
.frame(maxWidth: 50, maxHeight: 40)
|
||||||
|
.frame(maxWidth: .infinity, alignment: .trailing)
|
||||||
|
} else {
|
||||||
|
Color.clear.frame(width: 50, height: 40)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.padding(.bottom, 60)
|
.padding(.bottom, 60)
|
||||||
.padding(.horizontal, 48)
|
.padding(.horizontal, 48)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.frame(maxWidth: .infinity)
|
.frame(maxWidth: .infinity)
|
||||||
|
.onAppear {
|
||||||
|
deviceManager.start()
|
||||||
|
}
|
||||||
|
.onDisappear {
|
||||||
|
deviceManager.stop()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func audioCallInfoView(_ call: Call) -> some View {
|
private func audioCallInfoView(_ call: Call) -> some View {
|
||||||
@@ -341,12 +405,17 @@ struct ActiveCallOverlay: View {
|
|||||||
private func toggleSpeakerButton() -> some View {
|
private func toggleSpeakerButton() -> some View {
|
||||||
controlButton(call, call.speakerEnabled ? "speaker.wave.2.fill" : "speaker.wave.1.fill") {
|
controlButton(call, call.speakerEnabled ? "speaker.wave.2.fill" : "speaker.wave.1.fill") {
|
||||||
Task {
|
Task {
|
||||||
client.setSpeakerEnabledAndConfigureSession(!call.speakerEnabled)
|
let speakerEnabled = AVAudioSession.sharedInstance().currentRoute.outputs.first?.portType == .builtInSpeaker
|
||||||
|
client.setSpeakerEnabledAndConfigureSession(!speakerEnabled)
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
call.speakerEnabled = !call.speakerEnabled
|
call.speakerEnabled = !speakerEnabled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.onAppear {
|
||||||
|
deviceManager.call = call
|
||||||
|
//call.speakerEnabled = AVAudioSession.sharedInstance().currentRoute.outputs.first?.portType == .builtInSpeaker
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func toggleVideoButton() -> some View {
|
private func toggleVideoButton() -> some View {
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
//
|
||||||
|
// MPVolumeView.swift
|
||||||
|
// SimpleX (iOS)
|
||||||
|
//
|
||||||
|
// Created by Stanislav on 24.04.2024.
|
||||||
|
// Copyright © 2024 SimpleX Chat. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import SwiftUI
|
||||||
|
import UIKit
|
||||||
|
import AVKit
|
||||||
|
|
||||||
|
struct AudioDevicePicker: UIViewRepresentable {
|
||||||
|
func makeUIView(context: Context) -> some UIView {
|
||||||
|
let v = AVRoutePickerView(frame: .zero)
|
||||||
|
v.activeTintColor = .white
|
||||||
|
v.tintColor = .white
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
func updateUIView(_ uiView: UIViewType, context: Context) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
//
|
||||||
|
// CallAudioDeviceManager.swift
|
||||||
|
// SimpleX (iOS)
|
||||||
|
//
|
||||||
|
// Created by Avently on 23.04.2024.
|
||||||
|
// Copyright © 2024 SimpleX Chat. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import SwiftUI
|
||||||
|
import SimpleXChat
|
||||||
|
import AVKit
|
||||||
|
import WebRTC
|
||||||
|
|
||||||
|
class CallAudioDeviceManager: ObservableObject {
|
||||||
|
static let shared = CallAudioDeviceManager()
|
||||||
|
let audioSession: AVAudioSession
|
||||||
|
let nc = NotificationCenter.default
|
||||||
|
|
||||||
|
var call: Call?
|
||||||
|
var timer: Timer? = nil
|
||||||
|
|
||||||
|
// Actually, only one output
|
||||||
|
@Published var outputs: [AVAudioSessionPortDescription]
|
||||||
|
@Published var currentDevice: AVAudioSessionPortDescription? = nil
|
||||||
|
// All devices that can record audio (the ones that can play audio are not included)
|
||||||
|
@Published var availableInputs: [AVAudioSessionPortDescription] = []
|
||||||
|
|
||||||
|
|
||||||
|
init(_ audioSession: AVAudioSession? = nil) {
|
||||||
|
self.audioSession = audioSession ?? RTCAudioSession.sharedInstance().session
|
||||||
|
self.outputs = self.audioSession.currentRoute.outputs
|
||||||
|
self.availableInputs = self.audioSession.availableInputs ?? []
|
||||||
|
}
|
||||||
|
|
||||||
|
func reloadDevices() {
|
||||||
|
outputs = audioSession.currentRoute.outputs
|
||||||
|
currentDevice = audioSession.currentRoute.outputs.first
|
||||||
|
availableInputs = audioSession.availableInputs ?? []
|
||||||
|
call?.speakerEnabled = currentDevice?.portType == .builtInSpeaker
|
||||||
|
|
||||||
|
|
||||||
|
// Workaround situation:
|
||||||
|
// have bluetooth device connected, choosing speaker, disconnecting bluetooth device. In this case iOS will not post notification, so do it manually
|
||||||
|
timer?.invalidate()
|
||||||
|
if availableInputs.contains(where: { $0.portType != .builtInReceiver && $0.portType != .builtInSpeaker }) {
|
||||||
|
timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: false) { t in
|
||||||
|
self.reloadDevices()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func audioCallback(notification: Notification) {
|
||||||
|
reloadDevices()
|
||||||
|
|
||||||
|
logger.debug("Changes in devices, current audio devices: \(String(describing: self.availableInputs.map({ $0.portType.rawValue }))), output: \(String(describing: self.currentDevice?.portType.rawValue))")
|
||||||
|
}
|
||||||
|
|
||||||
|
func start() {
|
||||||
|
nc.addObserver(self, selector: #selector(audioCallback), name: AVAudioSession.routeChangeNotification, object: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func stop() {
|
||||||
|
nc.removeObserver(self, name: AVAudioSession.routeChangeNotification, object: nil)
|
||||||
|
timer?.invalidate()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -103,7 +103,23 @@ class CallController: NSObject, CXProviderDelegate, PKPushRegistryDelegate, Obse
|
|||||||
RTCAudioSession.sharedInstance().audioSessionDidActivate(audioSession)
|
RTCAudioSession.sharedInstance().audioSessionDidActivate(audioSession)
|
||||||
RTCAudioSession.sharedInstance().isAudioEnabled = true
|
RTCAudioSession.sharedInstance().isAudioEnabled = true
|
||||||
do {
|
do {
|
||||||
try audioSession.setCategory(.playAndRecord, mode: .voiceChat, options: .mixWithOthers)
|
let supportsVideo = ChatModel.shared.activeCall?.supportsVideo == true
|
||||||
|
if supportsVideo {
|
||||||
|
try audioSession.setCategory(.playAndRecord, mode: .videoChat, options: [.defaultToSpeaker, .mixWithOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
|
||||||
|
} else {
|
||||||
|
try audioSession.setCategory(.playAndRecord, mode: .voiceChat, options: [.mixWithOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
|
||||||
|
}
|
||||||
|
// Without any delay sound is not playing from speaker or external device in incoming call
|
||||||
|
Task {
|
||||||
|
for i in 0 ... 3 {
|
||||||
|
try? await Task.sleep(nanoseconds: UInt64(i) * 300_000000)
|
||||||
|
if let preferred = audioSession.preferredInputDevice() {
|
||||||
|
await MainActor.run { try? audioSession.setPreferredInput(preferred) }
|
||||||
|
} else if supportsVideo {
|
||||||
|
await MainActor.run { try? audioSession.overrideOutputAudioPort(.speaker) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
logger.debug("audioSession category set")
|
logger.debug("audioSession category set")
|
||||||
try audioSession.setActive(true)
|
try audioSession.setActive(true)
|
||||||
logger.debug("audioSession activated")
|
logger.debug("audioSession activated")
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ struct IncomingCallView: View {
|
|||||||
VStack(alignment: .leading, spacing: 6) {
|
VStack(alignment: .leading, spacing: 6) {
|
||||||
HStack {
|
HStack {
|
||||||
if m.users.count > 1 {
|
if m.users.count > 1 {
|
||||||
ProfileImage(imageStr: invitation.user.image, color: .white)
|
ProfileImage(imageStr: invitation.user.image, size: 24, color: .white)
|
||||||
.frame(width: 24, height: 24)
|
|
||||||
}
|
}
|
||||||
Image(systemName: invitation.callType.media == .video ? "video.fill" : "phone.fill").foregroundColor(.green)
|
Image(systemName: invitation.callType.media == .video ? "video.fill" : "phone.fill").foregroundColor(.green)
|
||||||
Text(invitation.callTypeText)
|
Text(invitation.callTypeText)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import AVFoundation
|
import AVFoundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
class SoundPlayer {
|
class SoundPlayer {
|
||||||
static let shared = SoundPlayer()
|
static let shared = SoundPlayer()
|
||||||
@@ -43,3 +44,63 @@ class SoundPlayer {
|
|||||||
audioPlayer = nil
|
audioPlayer = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class CallSoundsPlayer {
|
||||||
|
static let shared = CallSoundsPlayer()
|
||||||
|
private var audioPlayer: AVAudioPlayer?
|
||||||
|
private var playerTask: Task = Task {}
|
||||||
|
|
||||||
|
private func start(_ soundName: String, delayMs: Double) {
|
||||||
|
audioPlayer?.stop()
|
||||||
|
playerTask.cancel()
|
||||||
|
logger.debug("start \(soundName)")
|
||||||
|
guard let path = Bundle.main.path(forResource: soundName, ofType: "mp3", inDirectory: "sounds") else {
|
||||||
|
logger.debug("start: file not found")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
do {
|
||||||
|
let player = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
|
||||||
|
if player.prepareToPlay() {
|
||||||
|
audioPlayer = player
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
logger.debug("start: AVAudioPlayer error \(error.localizedDescription)")
|
||||||
|
}
|
||||||
|
|
||||||
|
playerTask = Task {
|
||||||
|
while let player = audioPlayer {
|
||||||
|
player.play()
|
||||||
|
do {
|
||||||
|
try await Task.sleep(nanoseconds: UInt64((player.duration * 1_000_000_000) + delayMs * 1_000_000))
|
||||||
|
} catch {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func startConnectingCallSound() {
|
||||||
|
start("connecting_call", delayMs: 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func startInCallSound() {
|
||||||
|
// Taken from https://github.com/TelegramOrg/Telegram-Android
|
||||||
|
// https://github.com/TelegramOrg/Telegram-Android/blob/master/LICENSE
|
||||||
|
start("in_call", delayMs: 1000)
|
||||||
|
}
|
||||||
|
|
||||||
|
func stop() {
|
||||||
|
playerTask.cancel()
|
||||||
|
audioPlayer?.stop()
|
||||||
|
audioPlayer = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func vibrate(long: Bool) {
|
||||||
|
// iOS just don't want to vibrate more than once after a short period of time, and all 'styles' feel the same
|
||||||
|
if long {
|
||||||
|
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate)
|
||||||
|
} else {
|
||||||
|
UIImpactFeedbackGenerator(style: .heavy).impactOccurred()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -431,17 +431,18 @@ struct RTCIceServer: Codable, Equatable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// the servers are expected in this format:
|
// the servers are expected in this format:
|
||||||
// stun:stun.simplex.im:443?transport=tcp
|
// stuns:stun.simplex.im:443?transport=tcp
|
||||||
// turn:private:yleob6AVkiNI87hpR94Z@turn.simplex.im:443?transport=tcp
|
// turns:private2:Hxuq2QxUjnhj96Zq2r4HjqHRj@turn.simplex.im:443?transport=tcp
|
||||||
func parseRTCIceServer(_ str: String) -> RTCIceServer? {
|
func parseRTCIceServer(_ str: String) -> RTCIceServer? {
|
||||||
var s = replaceScheme(str, "stun:")
|
var s = replaceScheme(str, "stun:")
|
||||||
|
s = replaceScheme(s, "stuns:")
|
||||||
s = replaceScheme(s, "turn:")
|
s = replaceScheme(s, "turn:")
|
||||||
s = replaceScheme(s, "turns:")
|
s = replaceScheme(s, "turns:")
|
||||||
if let u: URL = URL(string: s),
|
if let u: URL = URL(string: s),
|
||||||
let scheme = u.scheme,
|
let scheme = u.scheme,
|
||||||
let host = u.host,
|
let host = u.host,
|
||||||
let port = u.port,
|
let port = u.port,
|
||||||
u.path == "" && (scheme == "stun" || scheme == "turn" || scheme == "turns") {
|
u.path == "" && (scheme == "stun" || scheme == "stuns" || scheme == "turn" || scheme == "turns") {
|
||||||
let query = u.query == nil || u.query == "" ? "" : "?" + (u.query ?? "")
|
let query = u.query == nil || u.query == "" ? "" : "?" + (u.query ?? "")
|
||||||
return RTCIceServer(
|
return RTCIceServer(
|
||||||
urls: ["\(scheme):\(host):\(port)\(query)"],
|
urls: ["\(scheme):\(host):\(port)\(query)"],
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ final class WebRTCClient: NSObject, RTCVideoViewDelegate, RTCFrameEncryptorDeleg
|
|||||||
}
|
}
|
||||||
|
|
||||||
private let rtcAudioSession = RTCAudioSession.sharedInstance()
|
private let rtcAudioSession = RTCAudioSession.sharedInstance()
|
||||||
private let audioQueue = DispatchQueue(label: "audio")
|
private let audioQueue = DispatchQueue(label: "chat.simplex.app.audio")
|
||||||
private var sendCallResponse: (WVAPIMessage) async -> Void
|
private var sendCallResponse: (WVAPIMessage) async -> Void
|
||||||
var activeCall: Binding<Call?>
|
var activeCall: Binding<Call?>
|
||||||
private var localRendererAspectRatio: Binding<CGFloat?>
|
private var localRendererAspectRatio: Binding<CGFloat?>
|
||||||
@@ -65,14 +65,14 @@ final class WebRTCClient: NSObject, RTCVideoViewDelegate, RTCFrameEncryptorDeleg
|
|||||||
self.localRendererAspectRatio = localRendererAspectRatio
|
self.localRendererAspectRatio = localRendererAspectRatio
|
||||||
rtcAudioSession.useManualAudio = CallController.useCallKit()
|
rtcAudioSession.useManualAudio = CallController.useCallKit()
|
||||||
rtcAudioSession.isAudioEnabled = !CallController.useCallKit()
|
rtcAudioSession.isAudioEnabled = !CallController.useCallKit()
|
||||||
logger.debug("WebRTCClient: rtcAudioSession has manual audio \(self.rtcAudioSession.useManualAudio) and audio enabled \(self.rtcAudioSession.isAudioEnabled)}")
|
logger.debug("WebRTCClient: rtcAudioSession has manual audio \(self.rtcAudioSession.useManualAudio) and audio enabled \(self.rtcAudioSession.isAudioEnabled)")
|
||||||
super.init()
|
super.init()
|
||||||
}
|
}
|
||||||
|
|
||||||
let defaultIceServers: [WebRTC.RTCIceServer] = [
|
let defaultIceServers: [WebRTC.RTCIceServer] = [
|
||||||
WebRTC.RTCIceServer(urlStrings: ["stun:stun.simplex.im:443"]),
|
WebRTC.RTCIceServer(urlStrings: ["stuns:stun.simplex.im:443"]),
|
||||||
WebRTC.RTCIceServer(urlStrings: ["turn:turn.simplex.im:443?transport=udp"], username: "private", credential: "yleob6AVkiNI87hpR94Z"),
|
//WebRTC.RTCIceServer(urlStrings: ["turns:turn.simplex.im:443?transport=udp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj"),
|
||||||
WebRTC.RTCIceServer(urlStrings: ["turn:turn.simplex.im:443?transport=tcp"], username: "private", credential: "yleob6AVkiNI87hpR94Z"),
|
WebRTC.RTCIceServer(urlStrings: ["turns:turn.simplex.im:443?transport=tcp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj"),
|
||||||
]
|
]
|
||||||
|
|
||||||
func initializeCall(_ iceServers: [WebRTC.RTCIceServer]?, _ mediaType: CallMediaType, _ aesKey: String?, _ relay: Bool?) -> Call {
|
func initializeCall(_ iceServers: [WebRTC.RTCIceServer]?, _ mediaType: CallMediaType, _ aesKey: String?, _ relay: Bool?) -> Call {
|
||||||
@@ -605,9 +605,23 @@ extension WebRTCClient {
|
|||||||
self.rtcAudioSession.unlockForConfiguration()
|
self.rtcAudioSession.unlockForConfiguration()
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue)
|
let hasExternalAudioDevice = self.rtcAudioSession.session.hasExternalAudioDevice()
|
||||||
try self.rtcAudioSession.setMode(AVAudioSession.Mode.voiceChat.rawValue)
|
if enabled {
|
||||||
try self.rtcAudioSession.overrideOutputAudioPort(enabled ? .speaker : .none)
|
try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue, with: [.defaultToSpeaker, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
|
||||||
|
try self.rtcAudioSession.setMode(AVAudioSession.Mode.videoChat.rawValue)
|
||||||
|
if hasExternalAudioDevice, let preferred = self.rtcAudioSession.session.preferredInputDevice() {
|
||||||
|
try self.rtcAudioSession.setPreferredInput(preferred)
|
||||||
|
} else {
|
||||||
|
try self.rtcAudioSession.overrideOutputAudioPort(.speaker)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue, with: [.allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
|
||||||
|
try self.rtcAudioSession.setMode(AVAudioSession.Mode.voiceChat.rawValue)
|
||||||
|
try self.rtcAudioSession.overrideOutputAudioPort(.none)
|
||||||
|
}
|
||||||
|
if hasExternalAudioDevice {
|
||||||
|
logger.debug("WebRTCClient: configuring session with external device available, skip configuring speaker")
|
||||||
|
}
|
||||||
try self.rtcAudioSession.setActive(true)
|
try self.rtcAudioSession.setActive(true)
|
||||||
logger.debug("WebRTCClient: configuring session with speaker enabled \(enabled) success")
|
logger.debug("WebRTCClient: configuring session with speaker enabled \(enabled) success")
|
||||||
} catch let error {
|
} catch let error {
|
||||||
@@ -658,6 +672,17 @@ extension WebRTCClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension AVAudioSession {
|
||||||
|
func hasExternalAudioDevice() -> Bool {
|
||||||
|
availableInputs?.allSatisfy({ $0.portType == .builtInMic }) != true
|
||||||
|
}
|
||||||
|
|
||||||
|
func preferredInputDevice() -> AVAudioSessionPortDescription? {
|
||||||
|
// logger.debug("Preferred input device: \(String(describing: self.availableInputs?.filter({ $0.portType != .builtInMic })))")
|
||||||
|
return availableInputs?.filter({ $0.portType != .builtInMic }).last
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct CustomRTCSessionDescription: Codable {
|
struct CustomRTCSessionDescription: Codable {
|
||||||
public var type: RTCSdpType?
|
public var type: RTCSdpType?
|
||||||
public var sdp: String?
|
public var sdp: String?
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ struct ChatInfoToolbar: View {
|
|||||||
}
|
}
|
||||||
ChatInfoImage(
|
ChatInfoImage(
|
||||||
chat: chat,
|
chat: chat,
|
||||||
|
size: imageSize,
|
||||||
color: colorScheme == .dark
|
color: colorScheme == .dark
|
||||||
? chatImageColorDark
|
? chatImageColorDark
|
||||||
: chatImageColorLight
|
: chatImageColorLight
|
||||||
)
|
)
|
||||||
.frame(width: imageSize, height: imageSize)
|
|
||||||
.padding(.trailing, 4)
|
.padding(.trailing, 4)
|
||||||
VStack {
|
VStack {
|
||||||
let t = Text(cInfo.displayName).font(.headline)
|
let t = Text(cInfo.displayName).font(.headline)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ func localizedInfoRow(_ title: LocalizedStringKey, _ value: LocalizedStringKey)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func serverHost(_ s: String) -> String {
|
func serverHost(_ s: String) -> String {
|
||||||
if let i = s.range(of: "@")?.lowerBound {
|
if let i = s.range(of: "@")?.lowerBound {
|
||||||
return String(s[i...].dropFirst())
|
return String(s[i...].dropFirst())
|
||||||
} else {
|
} else {
|
||||||
@@ -103,7 +103,6 @@ struct ChatInfoView: View {
|
|||||||
@State private var sendReceipts = SendReceipts.userDefault(true)
|
@State private var sendReceipts = SendReceipts.userDefault(true)
|
||||||
@State private var sendReceiptsUserDefault = true
|
@State private var sendReceiptsUserDefault = true
|
||||||
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
|
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
|
||||||
@AppStorage(GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED, store: groupDefaults) private var pqExperimentalEnabled = false
|
|
||||||
|
|
||||||
enum ChatInfoViewAlert: Identifiable {
|
enum ChatInfoViewAlert: Identifiable {
|
||||||
case clearChatAlert
|
case clearChatAlert
|
||||||
@@ -111,7 +110,7 @@ struct ChatInfoView: View {
|
|||||||
case switchAddressAlert
|
case switchAddressAlert
|
||||||
case abortSwitchAddressAlert
|
case abortSwitchAddressAlert
|
||||||
case syncConnectionForceAlert
|
case syncConnectionForceAlert
|
||||||
case allowContactPQEncryptionAlert
|
case queueInfo(info: String)
|
||||||
case error(title: LocalizedStringKey, error: LocalizedStringKey = "")
|
case error(title: LocalizedStringKey, error: LocalizedStringKey = "")
|
||||||
|
|
||||||
var id: String {
|
var id: String {
|
||||||
@@ -121,7 +120,7 @@ struct ChatInfoView: View {
|
|||||||
case .switchAddressAlert: return "switchAddressAlert"
|
case .switchAddressAlert: return "switchAddressAlert"
|
||||||
case .abortSwitchAddressAlert: return "abortSwitchAddressAlert"
|
case .abortSwitchAddressAlert: return "abortSwitchAddressAlert"
|
||||||
case .syncConnectionForceAlert: return "syncConnectionForceAlert"
|
case .syncConnectionForceAlert: return "syncConnectionForceAlert"
|
||||||
case .allowContactPQEncryptionAlert: return "allowContactPQEncryptionAlert"
|
case let .queueInfo(info): return "queueInfo \(info)"
|
||||||
case let .error(title, _): return "error \(title)"
|
case let .error(title, _): return "error \(title)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -168,19 +167,9 @@ struct ChatInfoView: View {
|
|||||||
}
|
}
|
||||||
.disabled(!contact.ready || !contact.active)
|
.disabled(!contact.ready || !contact.active)
|
||||||
|
|
||||||
if pqExperimentalEnabled,
|
if let conn = contact.activeConn {
|
||||||
let conn = contact.activeConn {
|
|
||||||
Section {
|
Section {
|
||||||
infoRow(Text(String("E2E encryption")), conn.connPQEnabled ? "Quantum resistant" : "Standard")
|
infoRow(Text(String("E2E encryption")), conn.connPQEnabled ? "Quantum resistant" : "Standard")
|
||||||
if !conn.pqEncryption {
|
|
||||||
allowPQButton()
|
|
||||||
}
|
|
||||||
} header: {
|
|
||||||
Text(String("Quantum resistant E2E encryption"))
|
|
||||||
} footer: {
|
|
||||||
if !conn.pqEncryption {
|
|
||||||
Text(String("After allowing quantum resistant encryption, it will be enabled after several messages if your contact also allows it."))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,6 +226,18 @@ struct ChatInfoView: View {
|
|||||||
Section(header: Text("For console")) {
|
Section(header: Text("For console")) {
|
||||||
infoRow("Local name", chat.chatInfo.localDisplayName)
|
infoRow("Local name", chat.chatInfo.localDisplayName)
|
||||||
infoRow("Database ID", "\(chat.chatInfo.apiId)")
|
infoRow("Database ID", "\(chat.chatInfo.apiId)")
|
||||||
|
Button ("Debug delivery") {
|
||||||
|
Task {
|
||||||
|
do {
|
||||||
|
let info = queueInfoText(try await apiContactQueueInfo(chat.chatInfo.apiId))
|
||||||
|
await MainActor.run { alert = .queueInfo(info: info) }
|
||||||
|
} catch let e {
|
||||||
|
logger.error("apiContactQueueInfo error: \(responseError(e))")
|
||||||
|
let a = getErrorAlert(e, "Error")
|
||||||
|
await MainActor.run { alert = .error(title: a.title, error: a.message) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -256,7 +257,7 @@ struct ChatInfoView: View {
|
|||||||
case .switchAddressAlert: return switchAddressAlert(switchContactAddress)
|
case .switchAddressAlert: return switchAddressAlert(switchContactAddress)
|
||||||
case .abortSwitchAddressAlert: return abortSwitchAddressAlert(abortSwitchContactAddress)
|
case .abortSwitchAddressAlert: return abortSwitchAddressAlert(abortSwitchContactAddress)
|
||||||
case .syncConnectionForceAlert: return syncConnectionForceAlert({ syncContactConnection(force: true) })
|
case .syncConnectionForceAlert: return syncConnectionForceAlert({ syncContactConnection(force: true) })
|
||||||
case .allowContactPQEncryptionAlert: return allowContactPQEncryptionAlert()
|
case let .queueInfo(info): return queueInfoAlert(info)
|
||||||
case let .error(title, error): return mkAlert(title: title, message: error)
|
case let .error(title, error): return mkAlert(title: title, message: error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -285,8 +286,7 @@ struct ChatInfoView: View {
|
|||||||
private func contactInfoHeader() -> some View {
|
private func contactInfoHeader() -> some View {
|
||||||
VStack {
|
VStack {
|
||||||
let cInfo = chat.chatInfo
|
let cInfo = chat.chatInfo
|
||||||
ChatInfoImage(chat: chat, color: Color(uiColor: .tertiarySystemFill))
|
ChatInfoImage(chat: chat, size: 192, color: Color(uiColor: .tertiarySystemFill))
|
||||||
.frame(width: 192, height: 192)
|
|
||||||
.padding(.top, 12)
|
.padding(.top, 12)
|
||||||
.padding()
|
.padding()
|
||||||
if contact.verified {
|
if contact.verified {
|
||||||
@@ -430,15 +430,6 @@ struct ChatInfoView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func allowPQButton() -> some View {
|
|
||||||
Button {
|
|
||||||
alert = .allowContactPQEncryptionAlert
|
|
||||||
} label: {
|
|
||||||
Label(String("Allow PQ encryption"), systemImage: "exclamationmark.triangle")
|
|
||||||
.foregroundColor(.orange)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private func networkStatusRow() -> some View {
|
private func networkStatusRow() -> some View {
|
||||||
HStack {
|
HStack {
|
||||||
Text("Network status")
|
Text("Network status")
|
||||||
@@ -572,34 +563,6 @@ struct ChatInfoView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func allowContactPQEncryption() {
|
|
||||||
Task {
|
|
||||||
do {
|
|
||||||
let ct = try await apiSetContactPQ(contact.apiId, true)
|
|
||||||
contact = ct
|
|
||||||
await MainActor.run {
|
|
||||||
chatModel.updateContact(ct)
|
|
||||||
dismiss()
|
|
||||||
}
|
|
||||||
} catch let error {
|
|
||||||
logger.error("allowContactPQEncryption apiSetContactPQ error: \(responseError(error))")
|
|
||||||
let a = getErrorAlert(error, "Error allowing contact PQ encryption")
|
|
||||||
await MainActor.run {
|
|
||||||
alert = .error(title: a.title, error: a.message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func allowContactPQEncryptionAlert() -> Alert {
|
|
||||||
Alert(
|
|
||||||
title: Text(String("Allow quantum resistant encryption?")),
|
|
||||||
message: Text(String("This is an experimental feature, it is not recommended to enable it for important chats.")),
|
|
||||||
primaryButton: .destructive(Text(String("Allow")), action: allowContactPQEncryption),
|
|
||||||
secondaryButton: .cancel()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func switchAddressAlert(_ switchAddress: @escaping () -> Void) -> Alert {
|
func switchAddressAlert(_ switchAddress: @escaping () -> Void) -> Alert {
|
||||||
@@ -629,6 +592,22 @@ func syncConnectionForceAlert(_ syncConnectionForce: @escaping () -> Void) -> Al
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func queueInfoText(_ info: (RcvMsgInfo?, QueueInfo)) -> String {
|
||||||
|
let (rcvMsgInfo, qInfo) = info
|
||||||
|
var msgInfo: String
|
||||||
|
if let rcvMsgInfo { msgInfo = encodeJSON(rcvMsgInfo) } else { msgInfo = "none" }
|
||||||
|
return String.localizedStringWithFormat(NSLocalizedString("server queue info: %@\n\nlast received msg: %@", comment: "queue info"), encodeJSON(qInfo), msgInfo)
|
||||||
|
}
|
||||||
|
|
||||||
|
func queueInfoAlert(_ info: String) -> Alert {
|
||||||
|
Alert(
|
||||||
|
title: Text("Message queue info"),
|
||||||
|
message: Text(info),
|
||||||
|
primaryButton: .default(Text("Ok")),
|
||||||
|
secondaryButton: .default(Text("Copy")) { UIPasteboard.general.string = info }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
struct ChatInfoView_Previews: PreviewProvider {
|
struct ChatInfoView_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
ChatInfoView(
|
ChatInfoView(
|
||||||
|
|||||||
@@ -35,9 +35,7 @@ struct CICallItemView: View {
|
|||||||
case .error: missedCallIcon(sent).foregroundColor(.orange)
|
case .error: missedCallIcon(sent).foregroundColor(.orange)
|
||||||
}
|
}
|
||||||
|
|
||||||
chatItem.timestampText
|
CIMetaView(chat: chat, chatItem: chatItem, showStatus: false, showEdited: false)
|
||||||
.font(.caption)
|
|
||||||
.foregroundColor(.secondary)
|
|
||||||
.padding(.bottom, 8)
|
.padding(.bottom, 8)
|
||||||
.padding(.horizontal, 12)
|
.padding(.horizontal, 12)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import SimpleXChat
|
|||||||
|
|
||||||
struct CIChatFeatureView: View {
|
struct CIChatFeatureView: View {
|
||||||
@EnvironmentObject var m: ChatModel
|
@EnvironmentObject var m: ChatModel
|
||||||
|
@ObservedObject var chat: Chat
|
||||||
var chatItem: ChatItem
|
var chatItem: ChatItem
|
||||||
@Binding var revealed: Bool
|
@Binding var revealed: Bool
|
||||||
var feature: Feature
|
var feature: Feature
|
||||||
@@ -18,7 +19,7 @@ struct CIChatFeatureView: View {
|
|||||||
var iconColor: Color
|
var iconColor: Color
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
if !revealed, let fs = mergedFeautures() {
|
if !revealed, let fs = mergedFeatures() {
|
||||||
HStack {
|
HStack {
|
||||||
ForEach(fs, content: featureIconView)
|
ForEach(fs, content: featureIconView)
|
||||||
}
|
}
|
||||||
@@ -47,7 +48,7 @@ struct CIChatFeatureView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func mergedFeautures() -> [FeatureInfo]? {
|
private func mergedFeatures() -> [FeatureInfo]? {
|
||||||
var fs: [FeatureInfo] = []
|
var fs: [FeatureInfo] = []
|
||||||
var icons: Set<String> = []
|
var icons: Set<String> = []
|
||||||
if var i = m.getChatItemIndex(chatItem) {
|
if var i = m.getChatItemIndex(chatItem) {
|
||||||
@@ -67,8 +68,8 @@ struct CIChatFeatureView: View {
|
|||||||
switch ci.content {
|
switch ci.content {
|
||||||
case let .rcvChatFeature(feature, enabled, param): FeatureInfo(feature, enabled.iconColor, param)
|
case let .rcvChatFeature(feature, enabled, param): FeatureInfo(feature, enabled.iconColor, param)
|
||||||
case let .sndChatFeature(feature, enabled, param): FeatureInfo(feature, enabled.iconColor, param)
|
case let .sndChatFeature(feature, enabled, param): FeatureInfo(feature, enabled.iconColor, param)
|
||||||
case let .rcvGroupFeature(feature, preference, param): FeatureInfo(feature, preference.enable.iconColor, param)
|
case let .rcvGroupFeature(feature, preference, param, role): FeatureInfo(feature, preference.enabled(role, for: chat.chatInfo.groupInfo?.membership).iconColor, param)
|
||||||
case let .sndGroupFeature(feature, preference, param): FeatureInfo(feature, preference.enable.iconColor, param)
|
case let .sndGroupFeature(feature, preference, param, role): FeatureInfo(feature, preference.enabled(role, for: chat.chatInfo.groupInfo?.membership).iconColor, param)
|
||||||
default: nil
|
default: nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,6 +104,6 @@ struct CIChatFeatureView: View {
|
|||||||
struct CIChatFeatureView_Previews: PreviewProvider {
|
struct CIChatFeatureView_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
let enabled = FeatureEnabled(forUser: false, forContact: false)
|
let enabled = FeatureEnabled(forUser: false, forContact: false)
|
||||||
CIChatFeatureView(chatItem: ChatItem.getChatFeatureSample(.fullDelete, enabled), revealed: Binding.constant(true), feature: ChatFeature.fullDelete, iconColor: enabled.iconColor)
|
CIChatFeatureView(chat: Chat.sampleData, chatItem: ChatItem.getChatFeatureSample(.fullDelete, enabled), revealed: Binding.constant(true), feature: ChatFeature.fullDelete, iconColor: enabled.iconColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ struct CIEventView: View {
|
|||||||
.padding(.horizontal, 6)
|
.padding(.horizontal, 6)
|
||||||
.padding(.vertical, 4)
|
.padding(.vertical, 4)
|
||||||
.textSelection(.disabled)
|
.textSelection(.disabled)
|
||||||
|
.lineLimit(4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,12 +54,13 @@ struct CIFileView: View {
|
|||||||
switch (file.fileStatus) {
|
switch (file.fileStatus) {
|
||||||
case .sndStored: return file.fileProtocol == .local
|
case .sndStored: return file.fileProtocol == .local
|
||||||
case .sndTransfer: return false
|
case .sndTransfer: return false
|
||||||
case .sndComplete: return false
|
case .sndComplete: return true
|
||||||
case .sndCancelled: return false
|
case .sndCancelled: return false
|
||||||
case .sndError: return false
|
case .sndError: return false
|
||||||
case .rcvInvitation: return true
|
case .rcvInvitation: return true
|
||||||
case .rcvAccepted: return true
|
case .rcvAccepted: return true
|
||||||
case .rcvTransfer: return false
|
case .rcvTransfer: return false
|
||||||
|
case .rcvAborted: return true
|
||||||
case .rcvComplete: return true
|
case .rcvComplete: return true
|
||||||
case .rcvCancelled: return false
|
case .rcvCancelled: return false
|
||||||
case .rcvError: return false
|
case .rcvError: return false
|
||||||
@@ -69,21 +70,14 @@ struct CIFileView: View {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private func fileSizeValid() -> Bool {
|
|
||||||
if let file = file {
|
|
||||||
return file.fileSize <= getMaxFileSize(file.fileProtocol)
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
private func fileAction() {
|
private func fileAction() {
|
||||||
logger.debug("CIFileView fileAction")
|
logger.debug("CIFileView fileAction")
|
||||||
if let file = file {
|
if let file = file {
|
||||||
switch (file.fileStatus) {
|
switch (file.fileStatus) {
|
||||||
case .rcvInvitation:
|
case .rcvInvitation, .rcvAborted:
|
||||||
if fileSizeValid() {
|
if fileSizeValid(file) {
|
||||||
Task {
|
Task {
|
||||||
logger.debug("CIFileView fileAction - in .rcvInvitation, in Task")
|
logger.debug("CIFileView fileAction - in .rcvInvitation, .rcvAborted, in Task")
|
||||||
if let user = m.currentUser {
|
if let user = m.currentUser {
|
||||||
await receiveFile(user: user, fileId: file.fileId)
|
await receiveFile(user: user, fileId: file.fileId)
|
||||||
}
|
}
|
||||||
@@ -119,6 +113,11 @@ struct CIFileView: View {
|
|||||||
if file.fileProtocol == .local, let fileSource = getLoadedFileSource(file) {
|
if file.fileProtocol == .local, let fileSource = getLoadedFileSource(file) {
|
||||||
saveCryptoFile(fileSource)
|
saveCryptoFile(fileSource)
|
||||||
}
|
}
|
||||||
|
case .sndComplete:
|
||||||
|
logger.debug("CIFileView fileAction - in .sndComplete")
|
||||||
|
if let fileSource = getLoadedFileSource(file) {
|
||||||
|
saveCryptoFile(fileSource)
|
||||||
|
}
|
||||||
default: break
|
default: break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,7 +142,7 @@ struct CIFileView: View {
|
|||||||
case .sndCancelled: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
case .sndCancelled: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
||||||
case .sndError: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
case .sndError: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
||||||
case .rcvInvitation:
|
case .rcvInvitation:
|
||||||
if fileSizeValid() {
|
if fileSizeValid(file) {
|
||||||
fileIcon("arrow.down.doc.fill", color: .accentColor)
|
fileIcon("arrow.down.doc.fill", color: .accentColor)
|
||||||
} else {
|
} else {
|
||||||
fileIcon("doc.fill", color: .orange, innerIcon: "exclamationmark", innerIconSize: 12)
|
fileIcon("doc.fill", color: .orange, innerIcon: "exclamationmark", innerIconSize: 12)
|
||||||
@@ -155,6 +154,8 @@ struct CIFileView: View {
|
|||||||
} else {
|
} else {
|
||||||
progressView()
|
progressView()
|
||||||
}
|
}
|
||||||
|
case .rcvAborted:
|
||||||
|
fileIcon("doc.fill", color: .accentColor, innerIcon: "exclamationmark.arrow.circlepath", innerIconSize: 12)
|
||||||
case .rcvComplete: fileIcon("doc.fill")
|
case .rcvComplete: fileIcon("doc.fill")
|
||||||
case .rcvCancelled: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
case .rcvCancelled: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
||||||
case .rcvError: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
case .rcvError: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
|
||||||
@@ -201,6 +202,13 @@ struct CIFileView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func fileSizeValid(_ file: CIFile?) -> Bool {
|
||||||
|
if let file = file {
|
||||||
|
return file.fileSize <= getMaxFileSize(file.fileProtocol)
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func saveCryptoFile(_ fileSource: CryptoFile) {
|
func saveCryptoFile(_ fileSource: CryptoFile) {
|
||||||
if let cfArgs = fileSource.cryptoArgs {
|
if let cfArgs = fileSource.cryptoArgs {
|
||||||
let url = getAppFilePath(fileSource.filePath)
|
let url = getAppFilePath(fileSource.filePath)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import SimpleXChat
|
|||||||
struct CIGroupInvitationView: View {
|
struct CIGroupInvitationView: View {
|
||||||
@EnvironmentObject var chatModel: ChatModel
|
@EnvironmentObject var chatModel: ChatModel
|
||||||
@Environment(\.colorScheme) var colorScheme
|
@Environment(\.colorScheme) var colorScheme
|
||||||
|
@ObservedObject var chat: Chat
|
||||||
var chatItem: ChatItem
|
var chatItem: ChatItem
|
||||||
var groupInvitation: CIGroupInvitation
|
var groupInvitation: CIGroupInvitation
|
||||||
var memberRole: GroupMemberRole
|
var memberRole: GroupMemberRole
|
||||||
@@ -20,6 +21,8 @@ struct CIGroupInvitationView: View {
|
|||||||
@State private var inProgress = false
|
@State private var inProgress = false
|
||||||
@State private var progressByTimeout = false
|
@State private var progressByTimeout = false
|
||||||
|
|
||||||
|
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
let action = !chatItem.chatDir.sent && groupInvitation.status == .pending
|
let action = !chatItem.chatDir.sent && groupInvitation.status == .pending
|
||||||
let v = ZStack(alignment: .bottomTrailing) {
|
let v = ZStack(alignment: .bottomTrailing) {
|
||||||
@@ -37,16 +40,22 @@ struct CIGroupInvitationView: View {
|
|||||||
VStack(alignment: .leading, spacing: 2) {
|
VStack(alignment: .leading, spacing: 2) {
|
||||||
groupInvitationText()
|
groupInvitationText()
|
||||||
.overlay(DetermineWidth())
|
.overlay(DetermineWidth())
|
||||||
Text(chatIncognito ? "Tap to join incognito" : "Tap to join")
|
(
|
||||||
.foregroundColor(inProgress ? .secondary : chatIncognito ? .indigo : .accentColor)
|
Text(chatIncognito ? "Tap to join incognito" : "Tap to join")
|
||||||
.font(.callout)
|
.foregroundColor(inProgress ? .secondary : chatIncognito ? .indigo : .accentColor)
|
||||||
.padding(.trailing, 60)
|
.font(.callout)
|
||||||
.overlay(DetermineWidth())
|
+ Text(" ")
|
||||||
|
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showStatus: false, showEdited: false, showViaProxy: showSentViaProxy)
|
||||||
|
)
|
||||||
|
.overlay(DetermineWidth())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
groupInvitationText()
|
(
|
||||||
.padding(.trailing, 60)
|
groupInvitationText()
|
||||||
.overlay(DetermineWidth())
|
+ Text(" ")
|
||||||
|
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showStatus: false, showEdited: false, showViaProxy: showSentViaProxy)
|
||||||
|
)
|
||||||
|
.overlay(DetermineWidth())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.padding(.bottom, 2)
|
.padding(.bottom, 2)
|
||||||
@@ -56,9 +65,7 @@ struct CIGroupInvitationView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
chatItem.timestampText
|
CIMetaView(chat: chat, chatItem: chatItem, showStatus: false, showEdited: false)
|
||||||
.font(.caption)
|
|
||||||
.foregroundColor(.secondary)
|
|
||||||
}
|
}
|
||||||
.padding(.horizontal, 12)
|
.padding(.horizontal, 12)
|
||||||
.padding(.vertical, 6)
|
.padding(.vertical, 6)
|
||||||
@@ -100,9 +107,9 @@ struct CIGroupInvitationView: View {
|
|||||||
ProfileImage(
|
ProfileImage(
|
||||||
imageStr: groupInvitation.groupProfile.image,
|
imageStr: groupInvitation.groupProfile.image,
|
||||||
iconName: "person.2.circle.fill",
|
iconName: "person.2.circle.fill",
|
||||||
|
size: 44,
|
||||||
color: color
|
color: color
|
||||||
)
|
)
|
||||||
.frame(width: 44, height: 44)
|
|
||||||
.padding(.trailing, 4)
|
.padding(.trailing, 4)
|
||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
let p = groupInvitation.groupProfile
|
let p = groupInvitation.groupProfile
|
||||||
@@ -115,7 +122,7 @@ struct CIGroupInvitationView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func groupInvitationText() -> some View {
|
private func groupInvitationText() -> Text {
|
||||||
Text(groupInvitationStr())
|
Text(groupInvitationStr())
|
||||||
.font(.callout)
|
.font(.callout)
|
||||||
}
|
}
|
||||||
@@ -137,8 +144,8 @@ struct CIGroupInvitationView: View {
|
|||||||
struct CIGroupInvitationView_Previews: PreviewProvider {
|
struct CIGroupInvitationView_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
Group {
|
Group {
|
||||||
CIGroupInvitationView(chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(groupProfile: GroupProfile(displayName: "team", fullName: "team")), memberRole: .admin)
|
CIGroupInvitationView(chat: Chat.sampleData, chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(groupProfile: GroupProfile(displayName: "team", fullName: "team")), memberRole: .admin)
|
||||||
CIGroupInvitationView(chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(status: .accepted), memberRole: .admin)
|
CIGroupInvitationView(chat: Chat.sampleData, chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(status: .accepted), memberRole: .admin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ struct CIImageView: View {
|
|||||||
let maxWidth: CGFloat
|
let maxWidth: CGFloat
|
||||||
@Binding var imgWidth: CGFloat?
|
@Binding var imgWidth: CGFloat?
|
||||||
@State var scrollProxy: ScrollViewProxy?
|
@State var scrollProxy: ScrollViewProxy?
|
||||||
@State var metaColor: Color
|
|
||||||
@State private var showFullScreenImage = false
|
@State private var showFullScreenImage = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -38,7 +37,7 @@ struct CIImageView: View {
|
|||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
if let file = file {
|
if let file = file {
|
||||||
switch file.fileStatus {
|
switch file.fileStatus {
|
||||||
case .rcvInvitation:
|
case .rcvInvitation, .rcvAborted:
|
||||||
Task {
|
Task {
|
||||||
if let user = m.currentUser {
|
if let user = m.currentUser {
|
||||||
await receiveFile(user: user, fileId: file.fileId)
|
await receiveFile(user: user, fileId: file.fileId)
|
||||||
@@ -70,14 +69,14 @@ struct CIImageView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func imageView(_ img: UIImage) -> some View {
|
private func imageView(_ img: UIImage) -> some View {
|
||||||
let w = img.size.width <= img.size.height ? maxWidth * 0.75 : img.imageData == nil ? .infinity : maxWidth
|
let w = img.size.width <= img.size.height ? maxWidth * 0.75 : maxWidth
|
||||||
DispatchQueue.main.async { imgWidth = w }
|
DispatchQueue.main.async { imgWidth = w }
|
||||||
return ZStack(alignment: .topTrailing) {
|
return ZStack(alignment: .topTrailing) {
|
||||||
if img.imageData == nil {
|
if img.imageData == nil {
|
||||||
Image(uiImage: img)
|
Image(uiImage: img)
|
||||||
.resizable()
|
.resizable()
|
||||||
.scaledToFit()
|
.scaledToFit()
|
||||||
.frame(maxWidth: w)
|
.frame(width: w)
|
||||||
} else {
|
} else {
|
||||||
SwiftyGif(image: img)
|
SwiftyGif(image: img)
|
||||||
.frame(width: w, height: w * img.size.height / img.size.width)
|
.frame(width: w, height: w * img.size.height / img.size.width)
|
||||||
@@ -103,6 +102,7 @@ struct CIImageView: View {
|
|||||||
case .rcvInvitation: fileIcon("arrow.down", 10, 13)
|
case .rcvInvitation: fileIcon("arrow.down", 10, 13)
|
||||||
case .rcvAccepted: fileIcon("ellipsis", 14, 11)
|
case .rcvAccepted: fileIcon("ellipsis", 14, 11)
|
||||||
case .rcvTransfer: progressView()
|
case .rcvTransfer: progressView()
|
||||||
|
case .rcvAborted: fileIcon("exclamationmark.arrow.circlepath", 14, 11)
|
||||||
case .rcvCancelled: fileIcon("xmark", 10, 13)
|
case .rcvCancelled: fileIcon("xmark", 10, 13)
|
||||||
case .rcvError: fileIcon("xmark", 10, 13)
|
case .rcvError: fileIcon("xmark", 10, 13)
|
||||||
case .invalid: fileIcon("questionmark", 10, 13)
|
case .invalid: fileIcon("questionmark", 10, 13)
|
||||||
@@ -116,7 +116,7 @@ struct CIImageView: View {
|
|||||||
.resizable()
|
.resizable()
|
||||||
.aspectRatio(contentMode: .fit)
|
.aspectRatio(contentMode: .fit)
|
||||||
.frame(width: size, height: size)
|
.frame(width: size, height: size)
|
||||||
.foregroundColor(metaColor)
|
.foregroundColor(.white)
|
||||||
.padding(padding)
|
.padding(padding)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ struct CIInvalidJSONView: View {
|
|||||||
.cornerRadius(18)
|
.cornerRadius(18)
|
||||||
.textSelection(.disabled)
|
.textSelection(.disabled)
|
||||||
.onTapGesture { showJSON = true }
|
.onTapGesture { showJSON = true }
|
||||||
.sheet(isPresented: $showJSON) {
|
.appSheet(isPresented: $showJSON) {
|
||||||
invalidJSONView(json)
|
invalidJSONView(json)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,10 @@ struct CIMetaView: View {
|
|||||||
var chatItem: ChatItem
|
var chatItem: ChatItem
|
||||||
var metaColor = Color.secondary
|
var metaColor = Color.secondary
|
||||||
var paleMetaColor = Color(UIColor.tertiaryLabel)
|
var paleMetaColor = Color(UIColor.tertiaryLabel)
|
||||||
|
var showStatus = true
|
||||||
|
var showEdited = true
|
||||||
|
|
||||||
|
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
if chatItem.isDeletedContent {
|
if chatItem.isDeletedContent {
|
||||||
@@ -25,24 +29,24 @@ struct CIMetaView: View {
|
|||||||
switch meta.itemStatus {
|
switch meta.itemStatus {
|
||||||
case let .sndSent(sndProgress):
|
case let .sndSent(sndProgress):
|
||||||
switch sndProgress {
|
switch sndProgress {
|
||||||
case .complete: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .sent)
|
case .complete: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .sent, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
|
||||||
case .partial: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .sent)
|
case .partial: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .sent, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
|
||||||
}
|
}
|
||||||
case let .sndRcvd(_, sndProgress):
|
case let .sndRcvd(_, sndProgress):
|
||||||
switch sndProgress {
|
switch sndProgress {
|
||||||
case .complete:
|
case .complete:
|
||||||
ZStack {
|
ZStack {
|
||||||
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd1)
|
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd1, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
|
||||||
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd2)
|
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd2, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
|
||||||
}
|
}
|
||||||
case .partial:
|
case .partial:
|
||||||
ZStack {
|
ZStack {
|
||||||
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd1)
|
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd1, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
|
||||||
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd2)
|
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd2, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor)
|
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -54,9 +58,19 @@ enum SentCheckmark {
|
|||||||
case rcvd2
|
case rcvd2
|
||||||
}
|
}
|
||||||
|
|
||||||
func ciMetaText(_ meta: CIMeta, chatTTL: Int?, encrypted: Bool?, color: Color = .clear, transparent: Bool = false, sent: SentCheckmark? = nil) -> Text {
|
func ciMetaText(
|
||||||
|
_ meta: CIMeta,
|
||||||
|
chatTTL: Int?,
|
||||||
|
encrypted: Bool?,
|
||||||
|
color: Color = .clear,
|
||||||
|
transparent: Bool = false,
|
||||||
|
sent: SentCheckmark? = nil,
|
||||||
|
showStatus: Bool = true,
|
||||||
|
showEdited: Bool = true,
|
||||||
|
showViaProxy: Bool
|
||||||
|
) -> Text {
|
||||||
var r = Text("")
|
var r = Text("")
|
||||||
if meta.itemEdited {
|
if showEdited, meta.itemEdited {
|
||||||
r = r + statusIconText("pencil", color)
|
r = r + statusIconText("pencil", color)
|
||||||
}
|
}
|
||||||
if meta.disappearing {
|
if meta.disappearing {
|
||||||
@@ -67,19 +81,24 @@ func ciMetaText(_ meta: CIMeta, chatTTL: Int?, encrypted: Bool?, color: Color =
|
|||||||
}
|
}
|
||||||
r = r + Text(" ")
|
r = r + Text(" ")
|
||||||
}
|
}
|
||||||
if let (icon, statusColor) = meta.statusIcon(color) {
|
if showViaProxy, meta.sentViaProxy == true {
|
||||||
let t = Text(Image(systemName: icon)).font(.caption2)
|
r = r + statusIconText("arrow.forward", color.opacity(0.67)).font(.caption2)
|
||||||
let gap = Text(" ").kerning(-1.25)
|
}
|
||||||
let t1 = t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67))
|
if showStatus {
|
||||||
switch sent {
|
if let (icon, statusColor) = meta.statusIcon(color) {
|
||||||
case nil: r = r + t1
|
let t = Text(Image(systemName: icon)).font(.caption2)
|
||||||
case .sent: r = r + t1 + gap
|
let gap = Text(" ").kerning(-1.25)
|
||||||
case .rcvd1: r = r + t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67)) + gap
|
let t1 = t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67))
|
||||||
case .rcvd2: r = r + gap + t1
|
switch sent {
|
||||||
|
case nil: r = r + t1
|
||||||
|
case .sent: r = r + t1 + gap
|
||||||
|
case .rcvd1: r = r + t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67)) + gap
|
||||||
|
case .rcvd2: r = r + gap + t1
|
||||||
|
}
|
||||||
|
r = r + Text(" ")
|
||||||
|
} else if !meta.disappearing {
|
||||||
|
r = r + statusIconText("circlebadge.fill", .clear) + Text(" ")
|
||||||
}
|
}
|
||||||
r = r + Text(" ")
|
|
||||||
} else if !meta.disappearing {
|
|
||||||
r = r + statusIconText("circlebadge.fill", .clear) + Text(" ")
|
|
||||||
}
|
}
|
||||||
if let enc = encrypted {
|
if let enc = encrypted {
|
||||||
r = r + statusIconText(enc ? "lock" : "lock.open", color) + Text(" ")
|
r = r + statusIconText(enc ? "lock" : "lock.open", color) + Text(" ")
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ struct CIRcvDecryptionError: View {
|
|||||||
var chatItem: ChatItem
|
var chatItem: ChatItem
|
||||||
@State private var alert: CIRcvDecryptionErrorAlert?
|
@State private var alert: CIRcvDecryptionErrorAlert?
|
||||||
|
|
||||||
|
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
|
||||||
|
|
||||||
enum CIRcvDecryptionErrorAlert: Identifiable {
|
enum CIRcvDecryptionErrorAlert: Identifiable {
|
||||||
case syncAllowedAlert(_ syncConnection: () -> Void)
|
case syncAllowedAlert(_ syncConnection: () -> Void)
|
||||||
case syncNotSupportedContactAlert
|
case syncNotSupportedContactAlert
|
||||||
@@ -119,7 +121,7 @@ struct CIRcvDecryptionError: View {
|
|||||||
.foregroundColor(syncSupported ? .accentColor : .secondary)
|
.foregroundColor(syncSupported ? .accentColor : .secondary)
|
||||||
.font(.callout)
|
.font(.callout)
|
||||||
+ Text(" ")
|
+ Text(" ")
|
||||||
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true)
|
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showViaProxy: showSentViaProxy)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
.padding(.horizontal, 12)
|
.padding(.horizontal, 12)
|
||||||
@@ -140,7 +142,7 @@ struct CIRcvDecryptionError: View {
|
|||||||
.foregroundColor(.red)
|
.foregroundColor(.red)
|
||||||
.italic()
|
.italic()
|
||||||
+ Text(" ")
|
+ Text(" ")
|
||||||
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true)
|
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showViaProxy: showSentViaProxy)
|
||||||
}
|
}
|
||||||
.padding(.horizontal, 12)
|
.padding(.horizontal, 12)
|
||||||
CIMetaView(chat: chat, chatItem: chatItem)
|
CIMetaView(chat: chat, chatItem: chatItem)
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ struct CIVideoView: View {
|
|||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
if let file = file {
|
if let file = file {
|
||||||
switch file.fileStatus {
|
switch file.fileStatus {
|
||||||
case .rcvInvitation:
|
case .rcvInvitation, .rcvAborted:
|
||||||
receiveFileIfValidSize(file: file, receiveFile: receiveFile)
|
receiveFileIfValidSize(file: file, receiveFile: receiveFile)
|
||||||
case .rcvAccepted:
|
case .rcvAccepted:
|
||||||
switch file.fileProtocol {
|
switch file.fileProtocol {
|
||||||
@@ -95,7 +95,7 @@ struct CIVideoView: View {
|
|||||||
}
|
}
|
||||||
durationProgress()
|
durationProgress()
|
||||||
}
|
}
|
||||||
if let file = file, case .rcvInvitation = file.fileStatus {
|
if let file = file, showDownloadButton(file.fileStatus) {
|
||||||
Button {
|
Button {
|
||||||
receiveFileIfValidSize(file: file, receiveFile: receiveFile)
|
receiveFileIfValidSize(file: file, receiveFile: receiveFile)
|
||||||
} label: {
|
} label: {
|
||||||
@@ -105,6 +105,14 @@ struct CIVideoView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func showDownloadButton(_ fileStatus: CIFileStatus) -> Bool {
|
||||||
|
switch fileStatus {
|
||||||
|
case .rcvInvitation: true
|
||||||
|
case .rcvAborted: true
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private func videoViewEncrypted(_ file: CIFile, _ defaultPreview: UIImage, _ duration: Int) -> some View {
|
private func videoViewEncrypted(_ file: CIFile, _ defaultPreview: UIImage, _ duration: Int) -> some View {
|
||||||
return ZStack(alignment: .topTrailing) {
|
return ZStack(alignment: .topTrailing) {
|
||||||
ZStack(alignment: .center) {
|
ZStack(alignment: .center) {
|
||||||
@@ -126,7 +134,7 @@ struct CIVideoView: View {
|
|||||||
if !decryptionInProgress {
|
if !decryptionInProgress {
|
||||||
Button {
|
Button {
|
||||||
decrypt(file: file) {
|
decrypt(file: file) {
|
||||||
if let decrypted = urlDecrypted {
|
if urlDecrypted != nil {
|
||||||
videoPlaying = true
|
videoPlaying = true
|
||||||
player?.play()
|
player?.play()
|
||||||
}
|
}
|
||||||
@@ -243,13 +251,13 @@ struct CIVideoView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func imageView(_ img: UIImage) -> some View {
|
private func imageView(_ img: UIImage) -> some View {
|
||||||
let w = img.size.width <= img.size.height ? maxWidth * 0.75 : .infinity
|
let w = img.size.width <= img.size.height ? maxWidth * 0.75 : maxWidth
|
||||||
DispatchQueue.main.async { videoWidth = w }
|
DispatchQueue.main.async { videoWidth = w }
|
||||||
return ZStack(alignment: .topTrailing) {
|
return ZStack(alignment: .topTrailing) {
|
||||||
Image(uiImage: img)
|
Image(uiImage: img)
|
||||||
.resizable()
|
.resizable()
|
||||||
.scaledToFit()
|
.scaledToFit()
|
||||||
.frame(maxWidth: w)
|
.frame(width: w)
|
||||||
loadingIndicator()
|
loadingIndicator()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -280,6 +288,7 @@ struct CIVideoView: View {
|
|||||||
} else {
|
} else {
|
||||||
progressView()
|
progressView()
|
||||||
}
|
}
|
||||||
|
case .rcvAborted: fileIcon("exclamationmark.arrow.circlepath", 14, 11)
|
||||||
case .rcvCancelled: fileIcon("xmark", 10, 13)
|
case .rcvCancelled: fileIcon("xmark", 10, 13)
|
||||||
case .rcvError: fileIcon("xmark", 10, 13)
|
case .rcvError: fileIcon("xmark", 10, 13)
|
||||||
case .invalid: fileIcon("questionmark", 10, 13)
|
case .invalid: fileIcon("questionmark", 10, 13)
|
||||||
@@ -318,10 +327,10 @@ struct CIVideoView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO encrypt: where file size is checked?
|
// TODO encrypt: where file size is checked?
|
||||||
private func receiveFileIfValidSize(file: CIFile, receiveFile: @escaping (User, Int64, Bool) async -> Void) {
|
private func receiveFileIfValidSize(file: CIFile, receiveFile: @escaping (User, Int64, Bool, Bool) async -> Void) {
|
||||||
Task {
|
Task {
|
||||||
if let user = m.currentUser {
|
if let user = m.currentUser {
|
||||||
await receiveFile(user, file.fileId, false)
|
await receiveFile(user, file.fileId, false, false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,9 +139,10 @@ struct VoiceMessagePlayer: View {
|
|||||||
case .sndComplete: playbackButton()
|
case .sndComplete: playbackButton()
|
||||||
case .sndCancelled: playbackButton()
|
case .sndCancelled: playbackButton()
|
||||||
case .sndError: playbackButton()
|
case .sndError: playbackButton()
|
||||||
case .rcvInvitation: downloadButton(recordingFile)
|
case .rcvInvitation: downloadButton(recordingFile, "play.fill")
|
||||||
case .rcvAccepted: loadingIcon()
|
case .rcvAccepted: loadingIcon()
|
||||||
case .rcvTransfer: loadingIcon()
|
case .rcvTransfer: loadingIcon()
|
||||||
|
case .rcvAborted: downloadButton(recordingFile, "exclamationmark.arrow.circlepath")
|
||||||
case .rcvComplete: playbackButton()
|
case .rcvComplete: playbackButton()
|
||||||
case .rcvCancelled: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel))
|
case .rcvCancelled: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel))
|
||||||
case .rcvError: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel))
|
case .rcvError: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel))
|
||||||
@@ -217,7 +218,7 @@ struct VoiceMessagePlayer: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func downloadButton(_ recordingFile: CIFile) -> some View {
|
private func downloadButton(_ recordingFile: CIFile, _ icon: String) -> some View {
|
||||||
Button {
|
Button {
|
||||||
Task {
|
Task {
|
||||||
if let user = chatModel.currentUser {
|
if let user = chatModel.currentUser {
|
||||||
@@ -225,7 +226,7 @@ struct VoiceMessagePlayer: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
playPauseIcon("play.fill")
|
playPauseIcon(icon)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ struct FramedItemView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if let itemForwarded = chatItem.meta.itemForwarded {
|
||||||
|
framedItemHeader(icon: "arrowshape.turn.up.forward", caption: Text(itemForwarded.text(chat.chatInfo.chatType)).italic(), pad: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatItemContentView(chat: chat, chatItem: chatItem, revealed: $revealed, msgContentView: framedMsgContentView)
|
ChatItemContentView(chat: chat, chatItem: chatItem, revealed: $revealed, msgContentView: framedMsgContentView)
|
||||||
@@ -85,12 +87,17 @@ struct FramedItemView: View {
|
|||||||
.cornerRadius(18)
|
.cornerRadius(18)
|
||||||
.onPreferenceChange(DetermineWidth.Key.self) { msgWidth = $0 }
|
.onPreferenceChange(DetermineWidth.Key.self) { msgWidth = $0 }
|
||||||
|
|
||||||
switch chatItem.meta.itemStatus {
|
if let (title, text) = chatItem.meta.itemStatus.statusInfo {
|
||||||
case .sndErrorAuth:
|
v.onTapGesture {
|
||||||
v.onTapGesture { msgDeliveryError("Most likely this contact has deleted the connection with you.") }
|
AlertManager.shared.showAlert(
|
||||||
case let .sndError(agentError):
|
Alert(
|
||||||
v.onTapGesture { msgDeliveryError("Unexpected error: \(agentError)") }
|
title: Text(title),
|
||||||
default: v
|
message: Text(text)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +115,7 @@ struct FramedItemView: View {
|
|||||||
} else {
|
} else {
|
||||||
switch (chatItem.content.msgContent) {
|
switch (chatItem.content.msgContent) {
|
||||||
case let .image(text, image):
|
case let .image(text, image):
|
||||||
CIImageView(chatItem: chatItem, image: image, maxWidth: maxWidth, imgWidth: $imgWidth, scrollProxy: scrollProxy, metaColor: metaColor)
|
CIImageView(chatItem: chatItem, image: image, maxWidth: maxWidth, imgWidth: $imgWidth, scrollProxy: scrollProxy)
|
||||||
.overlay(DetermineWidth())
|
.overlay(DetermineWidth())
|
||||||
if text == "" && !chatItem.meta.isLive {
|
if text == "" && !chatItem.meta.isLive {
|
||||||
Color.clear
|
Color.clear
|
||||||
@@ -155,15 +162,8 @@ struct FramedItemView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func msgDeliveryError(_ err: LocalizedStringKey) {
|
|
||||||
AlertManager.shared.showAlertMsg(
|
|
||||||
title: "Message delivery error",
|
|
||||||
message: err
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@ViewBuilder func framedItemHeader(icon: String? = nil, caption: Text) -> some View {
|
@ViewBuilder func framedItemHeader(icon: String? = nil, caption: Text, pad: Bool = false) -> some View {
|
||||||
let v = HStack(spacing: 6) {
|
let v = HStack(spacing: 6) {
|
||||||
if let icon = icon {
|
if let icon = icon {
|
||||||
Image(systemName: icon)
|
Image(systemName: icon)
|
||||||
@@ -178,7 +178,7 @@ struct FramedItemView: View {
|
|||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
.padding(.horizontal, 12)
|
.padding(.horizontal, 12)
|
||||||
.padding(.top, 6)
|
.padding(.top, 6)
|
||||||
.padding(.bottom, chatItem.quotedItem == nil ? 6 : 0) // TODO think how to regroup
|
.padding(.bottom, pad || (chatItem.quotedItem == nil && chatItem.meta.itemForwarded == nil) ? 6 : 0)
|
||||||
.overlay(DetermineWidth())
|
.overlay(DetermineWidth())
|
||||||
.frame(minWidth: msgWidth, alignment: .leading)
|
.frame(minWidth: msgWidth, alignment: .leading)
|
||||||
.background(chatItemFrameContextColor(chatItem, colorScheme))
|
.background(chatItemFrameContextColor(chatItem, colorScheme))
|
||||||
@@ -246,7 +246,10 @@ struct FramedItemView: View {
|
|||||||
Group {
|
Group {
|
||||||
if let sender = qi.getSender(membership()) {
|
if let sender = qi.getSender(membership()) {
|
||||||
VStack(alignment: .leading, spacing: 2) {
|
VStack(alignment: .leading, spacing: 2) {
|
||||||
Text(sender).font(.caption).foregroundColor(.secondary)
|
Text(sender)
|
||||||
|
.font(.caption)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.lineLimit(1)
|
||||||
ciQuotedMsgTextView(qi, lines: 2)
|
ciQuotedMsgTextView(qi, lines: 2)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -353,9 +356,9 @@ private struct MetaColorPreferenceKey: PreferenceKey {
|
|||||||
|
|
||||||
func onlyImageOrVideo(_ ci: ChatItem) -> Bool {
|
func onlyImageOrVideo(_ ci: ChatItem) -> Bool {
|
||||||
if case let .image(text, _) = ci.content.msgContent {
|
if case let .image(text, _) = ci.content.msgContent {
|
||||||
return ci.meta.itemDeleted == nil && !ci.meta.isLive && ci.quotedItem == nil && text == ""
|
return ci.meta.itemDeleted == nil && !ci.meta.isLive && ci.quotedItem == nil && ci.meta.itemForwarded == nil && text == ""
|
||||||
} else if case let .video(text, _, _) = ci.content.msgContent {
|
} else if case let .video(text, _, _) = ci.content.msgContent {
|
||||||
return ci.meta.itemDeleted == nil && !ci.meta.isLive && ci.quotedItem == nil && text == ""
|
return ci.meta.itemDeleted == nil && !ci.meta.isLive && ci.quotedItem == nil && ci.meta.itemForwarded == nil && text == ""
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ struct MsgContentView: View {
|
|||||||
@State private var typingIdx = 0
|
@State private var typingIdx = 0
|
||||||
@State private var timer: Timer?
|
@State private var timer: Timer?
|
||||||
|
|
||||||
|
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
if meta?.isLive == true {
|
if meta?.isLive == true {
|
||||||
msgContentView()
|
msgContentView()
|
||||||
@@ -81,7 +83,7 @@ struct MsgContentView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func reserveSpaceForMeta(_ mt: CIMeta) -> Text {
|
private func reserveSpaceForMeta(_ mt: CIMeta) -> Text {
|
||||||
(rightToLeft ? Text("\n") : Text(" ")) + ciMetaText(mt, chatTTL: chat.chatInfo.timedMessagesTTL, encrypted: nil, transparent: true)
|
(rightToLeft ? Text("\n") : Text(" ")) + ciMetaText(mt, chatTTL: chat.chatInfo.timedMessagesTTL, encrypted: nil, transparent: true, showViaProxy: showSentViaProxy)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,151 @@
|
|||||||
|
//
|
||||||
|
// ChatItemForwardingView.swift
|
||||||
|
// SimpleX (iOS)
|
||||||
|
//
|
||||||
|
// Created by spaced4ndy on 12.04.2024.
|
||||||
|
// Copyright © 2024 SimpleX Chat. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import SimpleXChat
|
||||||
|
|
||||||
|
struct ChatItemForwardingView: View {
|
||||||
|
@EnvironmentObject var chatModel: ChatModel
|
||||||
|
@Environment(\.dismiss) var dismiss
|
||||||
|
|
||||||
|
var ci: ChatItem
|
||||||
|
var fromChatInfo: ChatInfo
|
||||||
|
@Binding var composeState: ComposeState
|
||||||
|
|
||||||
|
@State private var searchText: String = ""
|
||||||
|
@FocusState private var searchFocused
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
NavigationView {
|
||||||
|
forwardListView()
|
||||||
|
.toolbar {
|
||||||
|
ToolbarItem(placement: .navigationBarLeading) {
|
||||||
|
Button("Cancel") {
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ToolbarItem(placement: .principal) {
|
||||||
|
Text("Forward")
|
||||||
|
.bold()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewBuilder private func forwardListView() -> some View {
|
||||||
|
VStack(alignment: .leading) {
|
||||||
|
let chatsToForwardTo = filterChatsToForwardTo()
|
||||||
|
if !chatsToForwardTo.isEmpty {
|
||||||
|
ScrollView {
|
||||||
|
LazyVStack(alignment: .leading, spacing: 8) {
|
||||||
|
searchFieldView(text: $searchText, focussed: $searchFocused)
|
||||||
|
.padding(.leading, 2)
|
||||||
|
let s = searchText.trimmingCharacters(in: .whitespaces).localizedLowercase
|
||||||
|
let chats = s == "" ? chatsToForwardTo : chatsToForwardTo.filter { filterChatSearched($0, s) }
|
||||||
|
ForEach(chats) { chat in
|
||||||
|
Divider()
|
||||||
|
forwardListNavLinkView(chat)
|
||||||
|
.disabled(chatModel.deletedChats.contains(chat.chatInfo.id))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.padding(.horizontal)
|
||||||
|
.padding(.vertical, 8)
|
||||||
|
.background(Color(uiColor: .systemBackground))
|
||||||
|
.cornerRadius(12)
|
||||||
|
.padding(.horizontal)
|
||||||
|
}
|
||||||
|
.background(Color(.systemGroupedBackground))
|
||||||
|
} else {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func filterChatsToForwardTo() -> [Chat] {
|
||||||
|
var filteredChats = chatModel.chats.filter({ canForwardToChat($0) })
|
||||||
|
if let index = filteredChats.firstIndex(where: { $0.chatInfo.chatType == .local }) {
|
||||||
|
let privateNotes = filteredChats.remove(at: index)
|
||||||
|
filteredChats.insert(privateNotes, at: 0)
|
||||||
|
}
|
||||||
|
return filteredChats
|
||||||
|
}
|
||||||
|
|
||||||
|
private func filterChatSearched(_ chat: Chat, _ searchStr: String) -> Bool {
|
||||||
|
let cInfo = chat.chatInfo
|
||||||
|
return switch cInfo {
|
||||||
|
case let .direct(contact):
|
||||||
|
viewNameContains(cInfo, searchStr) ||
|
||||||
|
contact.profile.displayName.localizedLowercase.contains(searchStr) ||
|
||||||
|
contact.fullName.localizedLowercase.contains(searchStr)
|
||||||
|
default:
|
||||||
|
viewNameContains(cInfo, searchStr)
|
||||||
|
}
|
||||||
|
|
||||||
|
func viewNameContains(_ cInfo: ChatInfo, _ s: String) -> Bool {
|
||||||
|
cInfo.chatViewName.localizedLowercase.contains(s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func canForwardToChat(_ chat: Chat) -> Bool {
|
||||||
|
switch chat.chatInfo {
|
||||||
|
case let .direct(contact): contact.sendMsgEnabled && !contact.nextSendGrpInv
|
||||||
|
case let .group(groupInfo): groupInfo.sendMsgEnabled
|
||||||
|
case let .local(noteFolder): noteFolder.sendMsgEnabled
|
||||||
|
case .contactRequest: false
|
||||||
|
case .contactConnection: false
|
||||||
|
case .invalidJSON: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func emptyList() -> some View {
|
||||||
|
Text("No filtered chats")
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.frame(maxWidth: .infinity)
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewBuilder private func forwardListNavLinkView(_ chat: Chat) -> some View {
|
||||||
|
Button {
|
||||||
|
dismiss()
|
||||||
|
if chat.id == fromChatInfo.id {
|
||||||
|
composeState = ComposeState(
|
||||||
|
message: composeState.message,
|
||||||
|
preview: composeState.linkPreview != nil ? composeState.preview : .noPreview,
|
||||||
|
contextItem: .forwardingItem(chatItem: ci, fromChatInfo: fromChatInfo)
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
composeState = ComposeState.init(forwardingItem: ci, fromChatInfo: fromChatInfo)
|
||||||
|
chatModel.chatId = chat.id
|
||||||
|
}
|
||||||
|
} label: {
|
||||||
|
HStack {
|
||||||
|
ChatInfoImage(chat: chat, size: 30)
|
||||||
|
.padding(.trailing, 2)
|
||||||
|
Text(chat.chatInfo.chatViewName)
|
||||||
|
.foregroundColor(.primary)
|
||||||
|
.lineLimit(1)
|
||||||
|
if chat.chatInfo.incognito {
|
||||||
|
Spacer()
|
||||||
|
Image(systemName: "theatermasks")
|
||||||
|
.resizable()
|
||||||
|
.scaledToFit()
|
||||||
|
.frame(width: 22, height: 22)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#Preview {
|
||||||
|
ChatItemForwardingView(
|
||||||
|
ci: ChatItem.getSample(1, .directSnd, .now, "hello"),
|
||||||
|
fromChatInfo: .direct(contact: Contact.sampleData),
|
||||||
|
composeState: Binding.constant(ComposeState(message: "hello"))
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -11,6 +11,7 @@ import SimpleXChat
|
|||||||
|
|
||||||
struct ChatItemInfoView: View {
|
struct ChatItemInfoView: View {
|
||||||
@EnvironmentObject var chatModel: ChatModel
|
@EnvironmentObject var chatModel: ChatModel
|
||||||
|
@Environment(\.dismiss) var dismiss
|
||||||
@Environment(\.colorScheme) var colorScheme
|
@Environment(\.colorScheme) var colorScheme
|
||||||
var ci: ChatItem
|
var ci: ChatItem
|
||||||
@Binding var chatItemInfo: ChatItemInfo?
|
@Binding var chatItemInfo: ChatItemInfo?
|
||||||
@@ -21,6 +22,7 @@ struct ChatItemInfoView: View {
|
|||||||
enum CIInfoTab {
|
enum CIInfoTab {
|
||||||
case history
|
case history
|
||||||
case quote
|
case quote
|
||||||
|
case forwarded
|
||||||
case delivery
|
case delivery
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,9 +70,20 @@ struct ChatItemInfoView: View {
|
|||||||
if ci.quotedItem != nil {
|
if ci.quotedItem != nil {
|
||||||
numTabs += 1
|
numTabs += 1
|
||||||
}
|
}
|
||||||
|
if chatItemInfo?.forwardedFromChatItem != nil {
|
||||||
|
numTabs += 1
|
||||||
|
}
|
||||||
return numTabs
|
return numTabs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var local: Bool {
|
||||||
|
switch ci.chatDir {
|
||||||
|
case .localSnd: true
|
||||||
|
case .localRcv: true
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ViewBuilder private func itemInfoView() -> some View {
|
@ViewBuilder private func itemInfoView() -> some View {
|
||||||
if numTabs > 1 {
|
if numTabs > 1 {
|
||||||
TabView(selection: $selection) {
|
TabView(selection: $selection) {
|
||||||
@@ -93,6 +106,13 @@ struct ChatItemInfoView: View {
|
|||||||
}
|
}
|
||||||
.tag(CIInfoTab.quote)
|
.tag(CIInfoTab.quote)
|
||||||
}
|
}
|
||||||
|
if let forwardedFromItem = chatItemInfo?.forwardedFromChatItem {
|
||||||
|
forwardedFromTab(forwardedFromItem)
|
||||||
|
.tabItem {
|
||||||
|
Label(local ? "Saved" : "Forwarded", systemImage: "arrowshape.turn.up.forward")
|
||||||
|
}
|
||||||
|
.tag(CIInfoTab.forwarded)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.onAppear {
|
.onAppear {
|
||||||
if chatItemInfo?.memberDeliveryStatuses != nil {
|
if chatItemInfo?.memberDeliveryStatuses != nil {
|
||||||
@@ -275,6 +295,74 @@ struct ChatItemInfoView: View {
|
|||||||
: Color(uiColor: .tertiarySystemGroupedBackground)
|
: Color(uiColor: .tertiarySystemGroupedBackground)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ViewBuilder private func forwardedFromTab(_ forwardedFromItem: AChatItem) -> some View {
|
||||||
|
ScrollView {
|
||||||
|
VStack(alignment: .leading, spacing: 16) {
|
||||||
|
details()
|
||||||
|
Divider().padding(.vertical)
|
||||||
|
Text(local ? "Saved from" : "Forwarded from")
|
||||||
|
.font(.title2)
|
||||||
|
.padding(.bottom, 4)
|
||||||
|
forwardedFromView(forwardedFromItem)
|
||||||
|
}
|
||||||
|
.padding()
|
||||||
|
}
|
||||||
|
.frame(maxHeight: .infinity, alignment: .top)
|
||||||
|
}
|
||||||
|
|
||||||
|
private func forwardedFromView(_ forwardedFromItem: AChatItem) -> some View {
|
||||||
|
VStack(alignment: .leading, spacing: 8) {
|
||||||
|
Button {
|
||||||
|
Task {
|
||||||
|
await MainActor.run {
|
||||||
|
chatModel.chatId = forwardedFromItem.chatInfo.id
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} label: {
|
||||||
|
forwardedFromSender(forwardedFromItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !local {
|
||||||
|
Divider().padding(.top, 32)
|
||||||
|
Text("Recipient(s) can't see who this message is from.")
|
||||||
|
.font(.caption)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewBuilder private func forwardedFromSender(_ forwardedFromItem: AChatItem) -> some View {
|
||||||
|
HStack {
|
||||||
|
ChatInfoImage(chat: Chat(chatInfo: forwardedFromItem.chatInfo), size: 48)
|
||||||
|
.padding(.trailing, 6)
|
||||||
|
|
||||||
|
if forwardedFromItem.chatItem.chatDir.sent {
|
||||||
|
VStack(alignment: .leading) {
|
||||||
|
Text("you")
|
||||||
|
.italic()
|
||||||
|
.foregroundColor(.primary)
|
||||||
|
Text(forwardedFromItem.chatInfo.chatViewName)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.lineLimit(1)
|
||||||
|
}
|
||||||
|
} else if case let .groupRcv(groupMember) = forwardedFromItem.chatItem.chatDir {
|
||||||
|
VStack(alignment: .leading) {
|
||||||
|
Text(groupMember.chatViewName)
|
||||||
|
.foregroundColor(.primary)
|
||||||
|
.lineLimit(1)
|
||||||
|
Text(forwardedFromItem.chatInfo.chatViewName)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.lineLimit(1)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Text(forwardedFromItem.chatInfo.chatViewName)
|
||||||
|
.foregroundColor(.primary)
|
||||||
|
.lineLimit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ViewBuilder private func deliveryTab(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> some View {
|
@ViewBuilder private func deliveryTab(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> some View {
|
||||||
ScrollView {
|
ScrollView {
|
||||||
VStack(alignment: .leading, spacing: 16) {
|
VStack(alignment: .leading, spacing: 16) {
|
||||||
@@ -295,7 +383,7 @@ struct ChatItemInfoView: View {
|
|||||||
let mss = membersStatuses(memberDeliveryStatuses)
|
let mss = membersStatuses(memberDeliveryStatuses)
|
||||||
if !mss.isEmpty {
|
if !mss.isEmpty {
|
||||||
ForEach(mss, id: \.0.groupMemberId) { memberStatus in
|
ForEach(mss, id: \.0.groupMemberId) { memberStatus in
|
||||||
memberDeliveryStatusView(memberStatus.0, memberStatus.1)
|
memberDeliveryStatusView(memberStatus.0, memberStatus.1, memberStatus.2)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Text("No delivery information")
|
Text("No delivery information")
|
||||||
@@ -304,24 +392,27 @@ struct ChatItemInfoView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func membersStatuses(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> [(GroupMember, CIStatus)] {
|
private func membersStatuses(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> [(GroupMember, CIStatus, Bool?)] {
|
||||||
memberDeliveryStatuses.compactMap({ mds in
|
memberDeliveryStatuses.compactMap({ mds in
|
||||||
if let mem = chatModel.getGroupMember(mds.groupMemberId) {
|
if let mem = chatModel.getGroupMember(mds.groupMemberId) {
|
||||||
return (mem.wrapped, mds.memberDeliveryStatus)
|
return (mem.wrapped, mds.memberDeliveryStatus, mds.sentViaProxy)
|
||||||
} else {
|
} else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private func memberDeliveryStatusView(_ member: GroupMember, _ status: CIStatus) -> some View {
|
private func memberDeliveryStatusView(_ member: GroupMember, _ status: CIStatus, _ sentViaProxy: Bool?) -> some View {
|
||||||
HStack{
|
HStack{
|
||||||
ProfileImage(imageStr: member.image)
|
ProfileImage(imageStr: member.image, size: 30)
|
||||||
.frame(width: 30, height: 30)
|
|
||||||
.padding(.trailing, 2)
|
.padding(.trailing, 2)
|
||||||
Text(member.chatViewName)
|
Text(member.chatViewName)
|
||||||
.lineLimit(1)
|
.lineLimit(1)
|
||||||
Spacer()
|
Spacer()
|
||||||
|
if sentViaProxy == true {
|
||||||
|
Image(systemName: "arrow.forward")
|
||||||
|
.foregroundColor(.secondary).opacity(0.67)
|
||||||
|
}
|
||||||
let v = Group {
|
let v = Group {
|
||||||
if let (icon, statusColor) = status.statusIcon(Color.secondary) {
|
if let (icon, statusColor) = status.statusIcon(Color.secondary) {
|
||||||
switch status {
|
switch status {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ struct ChatItemView: View {
|
|||||||
let ci = chatItem
|
let ci = chatItem
|
||||||
if chatItem.meta.itemDeleted != nil && (!revealed || chatItem.isDeletedContent) {
|
if chatItem.meta.itemDeleted != nil && (!revealed || chatItem.isDeletedContent) {
|
||||||
MarkedDeletedItemView(chat: chat, chatItem: chatItem, revealed: $revealed)
|
MarkedDeletedItemView(chat: chat, chatItem: chatItem, revealed: $revealed)
|
||||||
} else if ci.quotedItem == nil && ci.meta.itemDeleted == nil && !ci.meta.isLive {
|
} else if ci.quotedItem == nil && ci.meta.itemForwarded == nil && ci.meta.itemDeleted == nil && !ci.meta.isLive {
|
||||||
if let mc = ci.content.msgContent, mc.isText && isShortEmoji(ci.content.text) {
|
if let mc = ci.content.msgContent, mc.isText && isShortEmoji(ci.content.text) {
|
||||||
EmojiItemView(chat: chat, chatItem: ci)
|
EmojiItemView(chat: chat, chatItem: ci)
|
||||||
} else if ci.content.text.isEmpty, case let .voice(_, duration) = ci.content.msgContent {
|
} else if ci.content.text.isEmpty, case let .voice(_, duration) = ci.content.msgContent {
|
||||||
@@ -102,9 +102,9 @@ struct ChatItemContentView<Content: View>: View {
|
|||||||
case let .rcvChatPreference(feature, allowed, param):
|
case let .rcvChatPreference(feature, allowed, param):
|
||||||
CIFeaturePreferenceView(chat: chat, chatItem: chatItem, feature: feature, allowed: allowed, param: param)
|
CIFeaturePreferenceView(chat: chat, chatItem: chatItem, feature: feature, allowed: allowed, param: param)
|
||||||
case let .sndChatPreference(feature, _, _):
|
case let .sndChatPreference(feature, _, _):
|
||||||
CIChatFeatureView(chatItem: chatItem, revealed: $revealed, feature: feature, icon: feature.icon, iconColor: .secondary)
|
CIChatFeatureView(chat: chat, chatItem: chatItem, revealed: $revealed, feature: feature, icon: feature.icon, iconColor: .secondary)
|
||||||
case let .rcvGroupFeature(feature, preference, _): chatFeatureView(feature, preference.enable.iconColor)
|
case let .rcvGroupFeature(feature, preference, _, role): chatFeatureView(feature, preference.enabled(role, for: chat.chatInfo.groupInfo?.membership).iconColor)
|
||||||
case let .sndGroupFeature(feature, preference, _): chatFeatureView(feature, preference.enable.iconColor)
|
case let .sndGroupFeature(feature, preference, _, role): chatFeatureView(feature, preference.enabled(role, for: chat.chatInfo.groupInfo?.membership).iconColor)
|
||||||
case let .rcvChatFeatureRejected(feature): chatFeatureView(feature, .red)
|
case let .rcvChatFeatureRejected(feature): chatFeatureView(feature, .red)
|
||||||
case let .rcvGroupFeatureRejected(feature): chatFeatureView(feature, .red)
|
case let .rcvGroupFeatureRejected(feature): chatFeatureView(feature, .red)
|
||||||
case .sndModerated: deletedItemView()
|
case .sndModerated: deletedItemView()
|
||||||
@@ -127,7 +127,7 @@ struct ChatItemContentView<Content: View>: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func groupInvitationItemView(_ groupInvitation: CIGroupInvitation, _ memberRole: GroupMemberRole) -> some View {
|
private func groupInvitationItemView(_ groupInvitation: CIGroupInvitation, _ memberRole: GroupMemberRole) -> some View {
|
||||||
CIGroupInvitationView(chatItem: chatItem, groupInvitation: groupInvitation, memberRole: memberRole, chatIncognito: chat.chatInfo.incognito)
|
CIGroupInvitationView(chat: chat, chatItem: chatItem, groupInvitation: groupInvitation, memberRole: memberRole, chatIncognito: chat.chatInfo.incognito)
|
||||||
}
|
}
|
||||||
|
|
||||||
private func eventItemView() -> some View {
|
private func eventItemView() -> some View {
|
||||||
@@ -149,7 +149,7 @@ struct ChatItemContentView<Content: View>: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func chatFeatureView(_ feature: Feature, _ iconColor: Color) -> some View {
|
private func chatFeatureView(_ feature: Feature, _ iconColor: Color) -> some View {
|
||||||
CIChatFeatureView(chatItem: chatItem, revealed: $revealed, feature: feature, iconColor: iconColor)
|
CIChatFeatureView(chat: chat, chatItem: chatItem, revealed: $revealed, feature: feature, iconColor: iconColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private var mergedGroupEventText: Text? {
|
private var mergedGroupEventText: Text? {
|
||||||
|
|||||||
@@ -83,7 +83,11 @@ struct ChatView: View {
|
|||||||
initChatView()
|
initChatView()
|
||||||
}
|
}
|
||||||
.onChange(of: chatModel.chatId) { cId in
|
.onChange(of: chatModel.chatId) { cId in
|
||||||
if cId != nil {
|
showChatInfoSheet = false
|
||||||
|
if let cId {
|
||||||
|
if let c = chatModel.getChat(cId) {
|
||||||
|
chat = c
|
||||||
|
}
|
||||||
initChatView()
|
initChatView()
|
||||||
} else {
|
} else {
|
||||||
dismiss()
|
dismiss()
|
||||||
@@ -127,7 +131,7 @@ struct ChatView: View {
|
|||||||
} label: {
|
} label: {
|
||||||
ChatInfoToolbar(chat: chat)
|
ChatInfoToolbar(chat: chat)
|
||||||
}
|
}
|
||||||
.sheet(isPresented: $showChatInfoSheet, onDismiss: {
|
.appSheet(isPresented: $showChatInfoSheet, onDismiss: {
|
||||||
connectionStats = nil
|
connectionStats = nil
|
||||||
customUserProfile = nil
|
customUserProfile = nil
|
||||||
connectionCode = nil
|
connectionCode = nil
|
||||||
@@ -179,7 +183,7 @@ struct ChatView: View {
|
|||||||
.disabled(!contact.ready || !contact.active)
|
.disabled(!contact.ready || !contact.active)
|
||||||
}
|
}
|
||||||
searchButton()
|
searchButton()
|
||||||
toggleNtfsButton(chat)
|
ToggleNtfsButton(chat: chat)
|
||||||
.disabled(!contact.ready || !contact.active)
|
.disabled(!contact.ready || !contact.active)
|
||||||
} label: {
|
} label: {
|
||||||
Image(systemName: "ellipsis")
|
Image(systemName: "ellipsis")
|
||||||
@@ -208,7 +212,7 @@ struct ChatView: View {
|
|||||||
}
|
}
|
||||||
Menu {
|
Menu {
|
||||||
searchButton()
|
searchButton()
|
||||||
toggleNtfsButton(chat)
|
ToggleNtfsButton(chat: chat)
|
||||||
} label: {
|
} label: {
|
||||||
Image(systemName: "ellipsis")
|
Image(systemName: "ellipsis")
|
||||||
}
|
}
|
||||||
@@ -251,7 +255,8 @@ struct ChatView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if chatModel.draftChatId == cInfo.id, let draft = chatModel.draft {
|
if chatModel.draftChatId == cInfo.id && !composeState.forwarding,
|
||||||
|
let draft = chatModel.draft {
|
||||||
composeState = draft
|
composeState = draft
|
||||||
}
|
}
|
||||||
if chat.chatStats.unreadChat {
|
if chat.chatStats.unreadChat {
|
||||||
@@ -296,7 +301,7 @@ struct ChatView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func voiceWithoutFrame(_ ci: ChatItem) -> Bool {
|
private func voiceWithoutFrame(_ ci: ChatItem) -> Bool {
|
||||||
ci.content.msgContent?.isVoice == true && ci.content.text.count == 0 && ci.quotedItem == nil
|
ci.content.msgContent?.isVoice == true && ci.content.text.count == 0 && ci.quotedItem == nil && ci.meta.itemForwarded == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
private func chatItemsList() -> some View {
|
private func chatItemsList() -> some View {
|
||||||
@@ -342,8 +347,8 @@ struct ChatView: View {
|
|||||||
.onChange(of: searchText) { _ in
|
.onChange(of: searchText) { _ in
|
||||||
loadChat(chat: chat, search: searchText)
|
loadChat(chat: chat, search: searchText)
|
||||||
}
|
}
|
||||||
.onChange(of: chatModel.chatId) { _ in
|
.onChange(of: chatModel.chatId) { chatId in
|
||||||
if let chatId = chatModel.chatId, let c = chatModel.getChat(chatId) {
|
if let chatId, let c = chatModel.getChat(chatId) {
|
||||||
chat = c
|
chat = c
|
||||||
showChatInfoSheet = false
|
showChatInfoSheet = false
|
||||||
loadChat(chat: c)
|
loadChat(chat: c)
|
||||||
@@ -514,6 +519,7 @@ struct ChatView: View {
|
|||||||
chat: chat,
|
chat: chat,
|
||||||
chatItem: ci,
|
chatItem: ci,
|
||||||
maxWidth: maxWidth,
|
maxWidth: maxWidth,
|
||||||
|
itemWidth: maxWidth,
|
||||||
composeState: $composeState,
|
composeState: $composeState,
|
||||||
selectedMember: $selectedMember,
|
selectedMember: $selectedMember,
|
||||||
chatView: self
|
chatView: self
|
||||||
@@ -526,6 +532,7 @@ struct ChatView: View {
|
|||||||
@ObservedObject var chat: Chat
|
@ObservedObject var chat: Chat
|
||||||
var chatItem: ChatItem
|
var chatItem: ChatItem
|
||||||
var maxWidth: CGFloat
|
var maxWidth: CGFloat
|
||||||
|
@State var itemWidth: CGFloat
|
||||||
@Binding var composeState: ComposeState
|
@Binding var composeState: ComposeState
|
||||||
@Binding var selectedMember: GMember?
|
@Binding var selectedMember: GMember?
|
||||||
var chatView: ChatView
|
var chatView: ChatView
|
||||||
@@ -537,6 +544,7 @@ struct ChatView: View {
|
|||||||
@State private var revealed = false
|
@State private var revealed = false
|
||||||
@State private var showChatItemInfoSheet: Bool = false
|
@State private var showChatItemInfoSheet: Bool = false
|
||||||
@State private var chatItemInfo: ChatItemInfo?
|
@State private var chatItemInfo: ChatItemInfo?
|
||||||
|
@State private var showForwardingSheet: Bool = false
|
||||||
|
|
||||||
@State private var allowMenu: Bool = true
|
@State private var allowMenu: Bool = true
|
||||||
|
|
||||||
@@ -585,12 +593,12 @@ struct ChatView: View {
|
|||||||
Text(memberNames(member, prevMember, memCount))
|
Text(memberNames(member, prevMember, memCount))
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundStyle(.secondary)
|
.foregroundStyle(.secondary)
|
||||||
|
.lineLimit(2)
|
||||||
.padding(.leading, memberImageSize + 14)
|
.padding(.leading, memberImageSize + 14)
|
||||||
.padding(.top, 7)
|
.padding(.top, 7)
|
||||||
}
|
}
|
||||||
HStack(alignment: .top, spacing: 8) {
|
HStack(alignment: .top, spacing: 8) {
|
||||||
ProfileImage(imageStr: member.memberProfile.image)
|
ProfileImage(imageStr: member.memberProfile.image, size: memberImageSize)
|
||||||
.frame(width: memberImageSize, height: memberImageSize)
|
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
if chatView.membersLoaded {
|
if chatView.membersLoaded {
|
||||||
selectedMember = m.getGroupMember(member.groupMemberId)
|
selectedMember = m.getGroupMember(member.groupMemberId)
|
||||||
@@ -654,7 +662,7 @@ struct ChatView: View {
|
|||||||
playbackState: $playbackState,
|
playbackState: $playbackState,
|
||||||
playbackTime: $playbackTime
|
playbackTime: $playbackTime
|
||||||
)
|
)
|
||||||
.uiKitContextMenu(maxWidth: maxWidth, menu: uiMenu, allowMenu: $allowMenu)
|
.uiKitContextMenu(hasImageOrVideo: ci.content.msgContent?.isImageOrVideo == true, maxWidth: maxWidth, itemWidth: $itemWidth, menu: uiMenu, allowMenu: $allowMenu)
|
||||||
.accessibilityLabel("")
|
.accessibilityLabel("")
|
||||||
if ci.content.msgContent != nil && (ci.meta.itemDeleted == nil || revealed) && ci.reactions.count > 0 {
|
if ci.content.msgContent != nil && (ci.meta.itemDeleted == nil || revealed) && ci.reactions.count > 0 {
|
||||||
chatItemReactions(ci)
|
chatItemReactions(ci)
|
||||||
@@ -665,7 +673,7 @@ struct ChatView: View {
|
|||||||
Button("Delete for me", role: .destructive) {
|
Button("Delete for me", role: .destructive) {
|
||||||
deleteMessage(.cidmInternal)
|
deleteMessage(.cidmInternal)
|
||||||
}
|
}
|
||||||
if let di = deletingItem, di.meta.editable && !di.localNote {
|
if let di = deletingItem, di.meta.deletable && !di.localNote {
|
||||||
Button(broadcastDeleteButtonText, role: .destructive) {
|
Button(broadcastDeleteButtonText, role: .destructive) {
|
||||||
deleteMessage(.cidmBroadcast)
|
deleteMessage(.cidmBroadcast)
|
||||||
}
|
}
|
||||||
@@ -691,6 +699,14 @@ struct ChatView: View {
|
|||||||
}) {
|
}) {
|
||||||
ChatItemInfoView(ci: ci, chatItemInfo: $chatItemInfo)
|
ChatItemInfoView(ci: ci, chatItemInfo: $chatItemInfo)
|
||||||
}
|
}
|
||||||
|
.sheet(isPresented: $showForwardingSheet) {
|
||||||
|
if #available(iOS 16.0, *) {
|
||||||
|
ChatItemForwardingView(ci: ci, fromChatInfo: chat.chatInfo, composeState: $composeState)
|
||||||
|
.presentationDetents([.fraction(0.8)])
|
||||||
|
} else {
|
||||||
|
ChatItemForwardingView(ci: ci, fromChatInfo: chat.chatInfo, composeState: $composeState)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func showMemberImage(_ member: GroupMember, _ prevItem: ChatItem?) -> Bool {
|
private func showMemberImage(_ member: GroupMember, _ prevItem: ChatItem?) -> Bool {
|
||||||
@@ -769,10 +785,17 @@ struct ChatView: View {
|
|||||||
} else {
|
} else {
|
||||||
menu.append(saveFileAction(fileSource))
|
menu.append(saveFileAction(fileSource))
|
||||||
}
|
}
|
||||||
|
} else if let file = ci.file, case .rcvInvitation = file.fileStatus, fileSizeValid(file) {
|
||||||
|
menu.append(downloadFileAction(file))
|
||||||
}
|
}
|
||||||
if ci.meta.editable && !mc.isVoice && !live {
|
if ci.meta.editable && !mc.isVoice && !live {
|
||||||
menu.append(editAction(ci))
|
menu.append(editAction(ci))
|
||||||
}
|
}
|
||||||
|
if ci.meta.itemDeleted == nil
|
||||||
|
&& (ci.file == nil || (fileSource != nil && fileExists))
|
||||||
|
&& !ci.isLiveDummy && !live {
|
||||||
|
menu.append(forwardUIAction(ci))
|
||||||
|
}
|
||||||
if !ci.isLiveDummy {
|
if !ci.isLiveDummy {
|
||||||
menu.append(viewInfoUIAction(ci))
|
menu.append(viewInfoUIAction(ci))
|
||||||
}
|
}
|
||||||
@@ -805,6 +828,9 @@ struct ChatView: View {
|
|||||||
menu.append(deleteUIAction(ci))
|
menu.append(deleteUIAction(ci))
|
||||||
} else if ci.mergeCategory != nil && ((range?.count ?? 0) > 1 || revealed) {
|
} else if ci.mergeCategory != nil && ((range?.count ?? 0) > 1 || revealed) {
|
||||||
menu.append(revealed ? shrinkUIAction() : expandUIAction())
|
menu.append(revealed ? shrinkUIAction() : expandUIAction())
|
||||||
|
menu.append(deleteUIAction(ci))
|
||||||
|
} else if ci.showLocalDelete {
|
||||||
|
menu.append(deleteUIAction(ci))
|
||||||
}
|
}
|
||||||
return menu
|
return menu
|
||||||
}
|
}
|
||||||
@@ -824,6 +850,15 @@ struct ChatView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func forwardUIAction(_ ci: ChatItem) -> UIAction {
|
||||||
|
UIAction(
|
||||||
|
title: NSLocalizedString("Forward", comment: "chat item action"),
|
||||||
|
image: UIImage(systemName: "arrowshape.turn.up.forward")
|
||||||
|
) { _ in
|
||||||
|
showForwardingSheet = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private func reactionUIMenuPreiOS16(_ rs: [UIAction]) -> UIMenu {
|
private func reactionUIMenuPreiOS16(_ rs: [UIAction]) -> UIMenu {
|
||||||
UIMenu(
|
UIMenu(
|
||||||
title: NSLocalizedString("React…", comment: "chat item menu"),
|
title: NSLocalizedString("React…", comment: "chat item menu"),
|
||||||
@@ -921,7 +956,21 @@ struct ChatView: View {
|
|||||||
saveCryptoFile(fileSource)
|
saveCryptoFile(fileSource)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func downloadFileAction(_ file: CIFile) -> UIAction {
|
||||||
|
UIAction(
|
||||||
|
title: NSLocalizedString("Download", comment: "chat item action"),
|
||||||
|
image: UIImage(systemName: "arrow.down.doc")
|
||||||
|
) { _ in
|
||||||
|
Task {
|
||||||
|
logger.debug("ChatView downloadFileAction, in Task")
|
||||||
|
if let user = m.currentUser {
|
||||||
|
await receiveFile(user: user, fileId: file.fileId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private func editAction(_ ci: ChatItem) -> UIAction {
|
private func editAction(_ ci: ChatItem) -> UIAction {
|
||||||
UIAction(
|
UIAction(
|
||||||
title: NSLocalizedString("Edit", comment: "chat item action"),
|
title: NSLocalizedString("Edit", comment: "chat item action"),
|
||||||
@@ -994,7 +1043,7 @@ struct ChatView: View {
|
|||||||
image: UIImage(systemName: "trash"),
|
image: UIImage(systemName: "trash"),
|
||||||
attributes: [.destructive]
|
attributes: [.destructive]
|
||||||
) { _ in
|
) { _ in
|
||||||
if !revealed && ci.meta.itemDeleted != nil,
|
if !revealed,
|
||||||
let currIndex = m.getChatItemIndex(ci),
|
let currIndex = m.getChatItemIndex(ci),
|
||||||
let ciCategory = ci.mergeCategory {
|
let ciCategory = ci.mergeCategory {
|
||||||
let (prevHidden, _) = m.getPrevShownChatItem(currIndex, ciCategory)
|
let (prevHidden, _) = m.getPrevShownChatItem(currIndex, ciCategory)
|
||||||
@@ -1170,14 +1219,18 @@ struct ChatView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ViewBuilder func toggleNtfsButton(_ chat: Chat) -> some View {
|
struct ToggleNtfsButton: View {
|
||||||
Button {
|
@ObservedObject var chat: Chat
|
||||||
toggleNotifications(chat, enableNtfs: !chat.chatInfo.ntfsEnabled)
|
|
||||||
} label: {
|
var body: some View {
|
||||||
if chat.chatInfo.ntfsEnabled {
|
Button {
|
||||||
Label("Mute", systemImage: "speaker.slash")
|
toggleNotifications(chat, enableNtfs: !chat.chatInfo.ntfsEnabled)
|
||||||
} else {
|
} label: {
|
||||||
Label("Unmute", systemImage: "speaker.wave.2")
|
if chat.chatInfo.ntfsEnabled {
|
||||||
|
Label("Mute", systemImage: "speaker.slash")
|
||||||
|
} else {
|
||||||
|
Label("Unmute", systemImage: "speaker.wave.2")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ enum ComposeContextItem {
|
|||||||
case noContextItem
|
case noContextItem
|
||||||
case quotedItem(chatItem: ChatItem)
|
case quotedItem(chatItem: ChatItem)
|
||||||
case editingItem(chatItem: ChatItem)
|
case editingItem(chatItem: ChatItem)
|
||||||
|
case forwardingItem(chatItem: ChatItem, fromChatInfo: ChatInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
enum VoiceMessageRecordingState {
|
enum VoiceMessageRecordingState {
|
||||||
@@ -72,6 +73,13 @@ struct ComposeState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init(forwardingItem: ChatItem, fromChatInfo: ChatInfo) {
|
||||||
|
self.message = ""
|
||||||
|
self.preview = .noPreview
|
||||||
|
self.contextItem = .forwardingItem(chatItem: forwardingItem, fromChatInfo: fromChatInfo)
|
||||||
|
self.voiceMessageRecordingState = .noRecording
|
||||||
|
}
|
||||||
|
|
||||||
func copy(
|
func copy(
|
||||||
message: String? = nil,
|
message: String? = nil,
|
||||||
liveMessage: LiveMessage? = nil,
|
liveMessage: LiveMessage? = nil,
|
||||||
@@ -102,12 +110,19 @@ struct ComposeState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var forwarding: Bool {
|
||||||
|
switch contextItem {
|
||||||
|
case .forwardingItem: return true
|
||||||
|
default: return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var sendEnabled: Bool {
|
var sendEnabled: Bool {
|
||||||
switch preview {
|
switch preview {
|
||||||
case let .mediaPreviews(media): return !media.isEmpty
|
case let .mediaPreviews(media): return !media.isEmpty
|
||||||
case .voicePreview: return voiceMessageRecordingState == .finished
|
case .voicePreview: return voiceMessageRecordingState == .finished
|
||||||
case .filePreview: return true
|
case .filePreview: return true
|
||||||
default: return !message.isEmpty || liveMessage != nil
|
default: return !message.isEmpty || forwarding || liveMessage != nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +168,7 @@ struct ComposeState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var attachmentDisabled: Bool {
|
var attachmentDisabled: Bool {
|
||||||
if editing || liveMessage != nil || inProgress { return true }
|
if editing || forwarding || liveMessage != nil || inProgress { return true }
|
||||||
switch preview {
|
switch preview {
|
||||||
case .noPreview: return false
|
case .noPreview: return false
|
||||||
case .linkPreview: return false
|
case .linkPreview: return false
|
||||||
@@ -161,6 +176,16 @@ struct ComposeState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var attachmentPreview: Bool {
|
||||||
|
switch preview {
|
||||||
|
case .noPreview: false
|
||||||
|
case .linkPreview: false
|
||||||
|
case let .mediaPreviews(mediaPreviews): !mediaPreviews.isEmpty
|
||||||
|
case .voicePreview: false
|
||||||
|
case .filePreview: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var empty: Bool {
|
var empty: Bool {
|
||||||
message == "" && noPreview
|
message == "" && noPreview
|
||||||
}
|
}
|
||||||
@@ -234,6 +259,7 @@ struct ComposeView: View {
|
|||||||
@Binding var keyboardVisible: Bool
|
@Binding var keyboardVisible: Bool
|
||||||
|
|
||||||
@State var linkUrl: URL? = nil
|
@State var linkUrl: URL? = nil
|
||||||
|
@State var hasSimplexLink: Bool = false
|
||||||
@State var prevLinkUrl: URL? = nil
|
@State var prevLinkUrl: URL? = nil
|
||||||
@State var pendingLinkUrl: URL? = nil
|
@State var pendingLinkUrl: URL? = nil
|
||||||
@State var cancelledLinks: Set<String> = []
|
@State var cancelledLinks: Set<String> = []
|
||||||
@@ -260,6 +286,16 @@ struct ComposeView: View {
|
|||||||
if chat.chatInfo.contact?.nextSendGrpInv ?? false {
|
if chat.chatInfo.contact?.nextSendGrpInv ?? false {
|
||||||
ContextInvitingContactMemberView()
|
ContextInvitingContactMemberView()
|
||||||
}
|
}
|
||||||
|
let simplexLinkProhibited = hasSimplexLink && !chat.groupFeatureEnabled(.simplexLinks)
|
||||||
|
let fileProhibited = composeState.attachmentPreview && !chat.groupFeatureEnabled(.files)
|
||||||
|
let voiceProhibited = composeState.voicePreview && !chat.chatInfo.featureEnabled(.voice)
|
||||||
|
if simplexLinkProhibited {
|
||||||
|
msgNotAllowedView("SimpleX links not allowed", icon: "link")
|
||||||
|
} else if fileProhibited {
|
||||||
|
msgNotAllowedView("Files and media not allowed", icon: "doc")
|
||||||
|
} else if voiceProhibited {
|
||||||
|
msgNotAllowedView("Voice messages not allowed", icon: "mic")
|
||||||
|
}
|
||||||
contextItemView()
|
contextItemView()
|
||||||
switch (composeState.editing, composeState.preview) {
|
switch (composeState.editing, composeState.preview) {
|
||||||
case (true, .filePreview): EmptyView()
|
case (true, .filePreview): EmptyView()
|
||||||
@@ -278,7 +314,7 @@ struct ComposeView: View {
|
|||||||
.padding(.bottom, 12)
|
.padding(.bottom, 12)
|
||||||
.padding(.leading, 12)
|
.padding(.leading, 12)
|
||||||
if case let .group(g) = chat.chatInfo,
|
if case let .group(g) = chat.chatInfo,
|
||||||
!g.fullGroupPreferences.files.on {
|
!g.fullGroupPreferences.files.on(for: g.membership) {
|
||||||
b.disabled(true).onTapGesture {
|
b.disabled(true).onTapGesture {
|
||||||
AlertManager.shared.showAlertMsg(
|
AlertManager.shared.showAlertMsg(
|
||||||
title: "Files and media prohibited!",
|
title: "Files and media prohibited!",
|
||||||
@@ -303,6 +339,7 @@ struct ComposeView: View {
|
|||||||
},
|
},
|
||||||
nextSendGrpInv: chat.chatInfo.contact?.nextSendGrpInv ?? false,
|
nextSendGrpInv: chat.chatInfo.contact?.nextSendGrpInv ?? false,
|
||||||
voiceMessageAllowed: chat.chatInfo.featureEnabled(.voice),
|
voiceMessageAllowed: chat.chatInfo.featureEnabled(.voice),
|
||||||
|
disableSendButton: simplexLinkProhibited || fileProhibited || voiceProhibited,
|
||||||
showEnableVoiceMessagesAlert: chat.chatInfo.showEnableVoiceMessagesAlert,
|
showEnableVoiceMessagesAlert: chat.chatInfo.showEnableVoiceMessagesAlert,
|
||||||
startVoiceMessageRecording: {
|
startVoiceMessageRecording: {
|
||||||
Task {
|
Task {
|
||||||
@@ -337,13 +374,18 @@ struct ComposeView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onChange(of: composeState.message) { _ in
|
.onChange(of: composeState.message) { msg in
|
||||||
if composeState.linkPreviewAllowed {
|
if composeState.linkPreviewAllowed {
|
||||||
if composeState.message.count > 0 {
|
if msg.count > 0 {
|
||||||
showLinkPreview(composeState.message)
|
showLinkPreview(msg)
|
||||||
} else {
|
} else {
|
||||||
resetLinkPreview()
|
resetLinkPreview()
|
||||||
|
hasSimplexLink = false
|
||||||
}
|
}
|
||||||
|
} else if msg.count > 0 && !chat.groupFeatureEnabled(.simplexLinks) {
|
||||||
|
(_, hasSimplexLink) = parseMessage(msg)
|
||||||
|
} else {
|
||||||
|
hasSimplexLink = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onChange(of: chat.userCanSend) { canSend in
|
.onChange(of: chat.userCanSend) { canSend in
|
||||||
@@ -610,6 +652,18 @@ struct ComposeView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func msgNotAllowedView(_ reason: LocalizedStringKey, icon: String) -> some View {
|
||||||
|
HStack {
|
||||||
|
Image(systemName: icon).foregroundColor(.secondary)
|
||||||
|
Text(reason).italic()
|
||||||
|
}
|
||||||
|
.padding(12)
|
||||||
|
.frame(minHeight: 50)
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
.background(Color(uiColor: .tertiarySystemGroupedBackground))
|
||||||
|
.padding(.top, 8)
|
||||||
|
}
|
||||||
|
|
||||||
@ViewBuilder private func contextItemView() -> some View {
|
@ViewBuilder private func contextItemView() -> some View {
|
||||||
switch composeState.contextItem {
|
switch composeState.contextItem {
|
||||||
case .noContextItem:
|
case .noContextItem:
|
||||||
@@ -628,6 +682,14 @@ struct ComposeView: View {
|
|||||||
contextIcon: "pencil",
|
contextIcon: "pencil",
|
||||||
cancelContextItem: { clearState() }
|
cancelContextItem: { clearState() }
|
||||||
)
|
)
|
||||||
|
case let .forwardingItem(chatItem: forwardedItem, _):
|
||||||
|
ContextItemView(
|
||||||
|
chat: chat,
|
||||||
|
contextItem: forwardedItem,
|
||||||
|
contextIcon: "arrowshape.turn.up.forward",
|
||||||
|
cancelContextItem: { composeState = composeState.copy(contextItem: .noContextItem) },
|
||||||
|
showSender: false
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -649,6 +711,11 @@ struct ComposeView: View {
|
|||||||
}
|
}
|
||||||
if chat.chatInfo.contact?.nextSendGrpInv ?? false {
|
if chat.chatInfo.contact?.nextSendGrpInv ?? false {
|
||||||
await sendMemberContactInvitation()
|
await sendMemberContactInvitation()
|
||||||
|
} else if case let .forwardingItem(ci, fromChatInfo) = composeState.contextItem {
|
||||||
|
sent = await forwardItem(ci, fromChatInfo, ttl)
|
||||||
|
if !composeState.message.isEmpty {
|
||||||
|
sent = await send(checkLinkPreview(), quoted: sent?.id, live: false, ttl: ttl)
|
||||||
|
}
|
||||||
} else if case let .editingItem(ci) = composeState.contextItem {
|
} else if case let .editingItem(ci) = composeState.contextItem {
|
||||||
sent = await updateMessage(ci, live: live)
|
sent = await updateMessage(ci, live: live)
|
||||||
} else if let liveMessage = liveMessage, liveMessage.sentMsg != nil {
|
} else if let liveMessage = liveMessage, liveMessage.sentMsg != nil {
|
||||||
@@ -694,7 +761,15 @@ struct ComposeView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await MainActor.run { clearState(live: live) }
|
await MainActor.run {
|
||||||
|
let wasForwarding = composeState.forwarding
|
||||||
|
clearState(live: live)
|
||||||
|
if wasForwarding,
|
||||||
|
chatModel.draftChatId == chat.chatInfo.id,
|
||||||
|
let draft = chatModel.draft {
|
||||||
|
composeState = draft
|
||||||
|
}
|
||||||
|
}
|
||||||
return sent
|
return sent
|
||||||
|
|
||||||
func sending() async {
|
func sending() async {
|
||||||
@@ -815,10 +890,27 @@ struct ComposeView: View {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func forwardItem(_ forwardedItem: ChatItem, _ fromChatInfo: ChatInfo, _ ttl: Int?) async -> ChatItem? {
|
||||||
|
if let chatItem = await apiForwardChatItem(
|
||||||
|
toChatType: chat.chatInfo.chatType,
|
||||||
|
toChatId: chat.chatInfo.apiId,
|
||||||
|
fromChatType: fromChatInfo.chatType,
|
||||||
|
fromChatId: fromChatInfo.apiId,
|
||||||
|
itemId: forwardedItem.id,
|
||||||
|
ttl: ttl
|
||||||
|
) {
|
||||||
|
await MainActor.run {
|
||||||
|
chatModel.addChatItem(chat.chatInfo, chatItem)
|
||||||
|
}
|
||||||
|
return chatItem
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func checkLinkPreview() -> MsgContent {
|
func checkLinkPreview() -> MsgContent {
|
||||||
switch (composeState.preview) {
|
switch (composeState.preview) {
|
||||||
case let .linkPreview(linkPreview: linkPreview):
|
case let .linkPreview(linkPreview: linkPreview):
|
||||||
if let url = parseMessage(msgText),
|
if let url = parseMessage(msgText).url,
|
||||||
let linkPreview = linkPreview,
|
let linkPreview = linkPreview,
|
||||||
url == linkPreview.uri {
|
url == linkPreview.uri {
|
||||||
return .link(text: msgText, preview: linkPreview)
|
return .link(text: msgText, preview: linkPreview)
|
||||||
@@ -947,7 +1039,7 @@ struct ComposeView: View {
|
|||||||
|
|
||||||
private func showLinkPreview(_ s: String) {
|
private func showLinkPreview(_ s: String) {
|
||||||
prevLinkUrl = linkUrl
|
prevLinkUrl = linkUrl
|
||||||
linkUrl = parseMessage(s)
|
(linkUrl, hasSimplexLink) = parseMessage(s)
|
||||||
if let url = linkUrl {
|
if let url = linkUrl {
|
||||||
if url != composeState.linkPreview?.uri && url != pendingLinkUrl {
|
if url != composeState.linkPreview?.uri && url != pendingLinkUrl {
|
||||||
pendingLinkUrl = url
|
pendingLinkUrl = url
|
||||||
@@ -964,13 +1056,17 @@ struct ComposeView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func parseMessage(_ msg: String) -> URL? {
|
private func parseMessage(_ msg: String) -> (url: URL?, hasSimplexLink: Bool) {
|
||||||
let parsedMsg = parseSimpleXMarkdown(msg)
|
guard let parsedMsg = parseSimpleXMarkdown(msg) else { return (nil, false) }
|
||||||
let uri = parsedMsg?.first(where: { ft in
|
let url: URL? = if let uri = parsedMsg.first(where: { ft in
|
||||||
ft.format == .uri && !cancelledLinks.contains(ft.text) && !isSimplexLink(ft.text)
|
ft.format == .uri && !cancelledLinks.contains(ft.text) && !isSimplexLink(ft.text)
|
||||||
})
|
}) {
|
||||||
if let uri = uri { return URL(string: uri.text) }
|
URL(string: uri.text)
|
||||||
else { return nil }
|
} else {
|
||||||
|
nil
|
||||||
|
}
|
||||||
|
let simplexLink = parsedMsg.contains(where: { ft in ft.format?.isSimplexLink ?? false })
|
||||||
|
return (url, simplexLink)
|
||||||
}
|
}
|
||||||
|
|
||||||
private func isSimplexLink(_ link: String) -> Bool {
|
private func isSimplexLink(_ link: String) -> Bool {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ struct ContextItemView: View {
|
|||||||
let contextItem: ChatItem
|
let contextItem: ChatItem
|
||||||
let contextIcon: String
|
let contextIcon: String
|
||||||
let cancelContextItem: () -> Void
|
let cancelContextItem: () -> Void
|
||||||
|
var showSender: Bool = true
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
HStack {
|
HStack {
|
||||||
@@ -23,7 +24,7 @@ struct ContextItemView: View {
|
|||||||
.aspectRatio(contentMode: .fit)
|
.aspectRatio(contentMode: .fit)
|
||||||
.frame(width: 16, height: 16)
|
.frame(width: 16, height: 16)
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
if let sender = contextItem.memberDisplayName {
|
if showSender, let sender = contextItem.memberDisplayName {
|
||||||
VStack(alignment: .leading, spacing: 4) {
|
VStack(alignment: .leading, spacing: 4) {
|
||||||
Text(sender).font(.caption).foregroundColor(.secondary)
|
Text(sender).font(.caption).foregroundColor(.secondary)
|
||||||
msgContentView(lines: 2)
|
msgContentView(lines: 2)
|
||||||
@@ -48,14 +49,26 @@ struct ContextItemView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func msgContentView(lines: Int) -> some View {
|
private func msgContentView(lines: Int) -> some View {
|
||||||
MsgContentView(
|
contextMsgPreview()
|
||||||
chat: chat,
|
.multilineTextAlignment(isRightToLeft(contextItem.text) ? .trailing : .leading)
|
||||||
text: contextItem.text,
|
.lineLimit(lines)
|
||||||
formattedText: contextItem.formattedText,
|
}
|
||||||
showSecrets: false
|
|
||||||
)
|
private func contextMsgPreview() -> Text {
|
||||||
.multilineTextAlignment(isRightToLeft(contextItem.text) ? .trailing : .leading)
|
return attachment() + messageText(contextItem.text, contextItem.formattedText, nil, preview: true, showSecrets: false)
|
||||||
.lineLimit(lines)
|
|
||||||
|
func attachment() -> Text {
|
||||||
|
switch contextItem.content.msgContent {
|
||||||
|
case .file: return image("doc.fill")
|
||||||
|
case .image: return image("photo")
|
||||||
|
case .voice: return image("play.fill")
|
||||||
|
default: return Text("")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func image(_ s: String) -> Text {
|
||||||
|
Text(Image(systemName: s)).foregroundColor(Color(uiColor: .tertiaryLabel)) + Text(" ")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ struct NativeTextEditor: UIViewRepresentable {
|
|||||||
@Binding var disableEditing: Bool
|
@Binding var disableEditing: Bool
|
||||||
@Binding var height: CGFloat
|
@Binding var height: CGFloat
|
||||||
@Binding var focused: Bool
|
@Binding var focused: Bool
|
||||||
let alignment: TextAlignment
|
|
||||||
let onImagesAdded: ([UploadContent]) -> Void
|
let onImagesAdded: ([UploadContent]) -> Void
|
||||||
|
|
||||||
private let minHeight: CGFloat = 37
|
private let minHeight: CGFloat = 37
|
||||||
@@ -30,13 +29,16 @@ struct NativeTextEditor: UIViewRepresentable {
|
|||||||
func makeUIView(context: Context) -> UITextView {
|
func makeUIView(context: Context) -> UITextView {
|
||||||
let field = CustomUITextField(height: _height)
|
let field = CustomUITextField(height: _height)
|
||||||
field.text = text
|
field.text = text
|
||||||
field.textAlignment = alignment == .leading ? .left : .right
|
field.textAlignment = alignment(text)
|
||||||
field.autocapitalizationType = .sentences
|
field.autocapitalizationType = .sentences
|
||||||
field.setOnTextChangedListener { newText, images in
|
field.setOnTextChangedListener { newText, images in
|
||||||
if !disableEditing {
|
if !disableEditing {
|
||||||
// Speed up the process of updating layout, reduce jumping content on screen
|
|
||||||
if !isShortEmoji(newText) { updateHeight(field) }
|
|
||||||
text = newText
|
text = newText
|
||||||
|
field.textAlignment = alignment(text)
|
||||||
|
updateFont(field)
|
||||||
|
// Speed up the process of updating layout, reduce jumping content on screen
|
||||||
|
updateHeight(field)
|
||||||
|
self.height = field.frame.size.height
|
||||||
} else {
|
} else {
|
||||||
field.text = text
|
field.text = text
|
||||||
}
|
}
|
||||||
@@ -53,10 +55,12 @@ struct NativeTextEditor: UIViewRepresentable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func updateUIView(_ field: UITextView, context: Context) {
|
func updateUIView(_ field: UITextView, context: Context) {
|
||||||
field.text = text
|
if field.markedTextRange == nil && field.text != text {
|
||||||
field.textAlignment = alignment == .leading ? .left : .right
|
field.text = text
|
||||||
updateFont(field)
|
field.textAlignment = alignment(text)
|
||||||
updateHeight(field)
|
updateFont(field)
|
||||||
|
updateHeight(field)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func updateHeight(_ field: UITextView) {
|
private func updateHeight(_ field: UITextView) {
|
||||||
@@ -73,12 +77,19 @@ struct NativeTextEditor: UIViewRepresentable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func updateFont(_ field: UITextView) {
|
private func updateFont(_ field: UITextView) {
|
||||||
field.font = isShortEmoji(field.text)
|
let newFont = isShortEmoji(field.text)
|
||||||
? (field.text.count < 4 ? largeEmojiUIFont : mediumEmojiUIFont)
|
? (field.text.count < 4 ? largeEmojiUIFont : mediumEmojiUIFont)
|
||||||
: UIFont.preferredFont(forTextStyle: .body)
|
: UIFont.preferredFont(forTextStyle: .body)
|
||||||
|
if field.font != newFont {
|
||||||
|
field.font = newFont
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func alignment(_ text: String) -> NSTextAlignment {
|
||||||
|
isRightToLeft(text) ? .right : .left
|
||||||
|
}
|
||||||
|
|
||||||
private class CustomUITextField: UITextView, UITextViewDelegate {
|
private class CustomUITextField: UITextView, UITextViewDelegate {
|
||||||
var height: Binding<CGFloat>
|
var height: Binding<CGFloat>
|
||||||
var newHeight: CGFloat = 0
|
var newHeight: CGFloat = 0
|
||||||
@@ -205,7 +216,6 @@ struct NativeTextEditor_Previews: PreviewProvider{
|
|||||||
disableEditing: Binding.constant(false),
|
disableEditing: Binding.constant(false),
|
||||||
height: Binding.constant(100),
|
height: Binding.constant(100),
|
||||||
focused: Binding.constant(false),
|
focused: Binding.constant(false),
|
||||||
alignment: TextAlignment.leading,
|
|
||||||
onImagesAdded: { _ in }
|
onImagesAdded: { _ in }
|
||||||
)
|
)
|
||||||
.fixedSize(horizontal: false, vertical: true)
|
.fixedSize(horizontal: false, vertical: true)
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ struct SendMessageView: View {
|
|||||||
var nextSendGrpInv: Bool = false
|
var nextSendGrpInv: Bool = false
|
||||||
var showVoiceMessageButton: Bool = true
|
var showVoiceMessageButton: Bool = true
|
||||||
var voiceMessageAllowed: Bool = true
|
var voiceMessageAllowed: Bool = true
|
||||||
|
var disableSendButton = false
|
||||||
var showEnableVoiceMessagesAlert: ChatInfo.ShowEnableVoiceMessagesAlert = .other
|
var showEnableVoiceMessagesAlert: ChatInfo.ShowEnableVoiceMessagesAlert = .other
|
||||||
var startVoiceMessageRecording: (() -> Void)? = nil
|
var startVoiceMessageRecording: (() -> Void)? = nil
|
||||||
var finishVoiceMessageRecording: (() -> Void)? = nil
|
var finishVoiceMessageRecording: (() -> Void)? = nil
|
||||||
@@ -53,13 +54,11 @@ struct SendMessageView: View {
|
|||||||
.padding(.vertical, 8)
|
.padding(.vertical, 8)
|
||||||
.frame(maxWidth: .infinity)
|
.frame(maxWidth: .infinity)
|
||||||
} else {
|
} else {
|
||||||
let alignment: TextAlignment = isRightToLeft(composeState.message) ? .trailing : .leading
|
|
||||||
NativeTextEditor(
|
NativeTextEditor(
|
||||||
text: $composeState.message,
|
text: $composeState.message,
|
||||||
disableEditing: $composeState.inProgress,
|
disableEditing: $composeState.inProgress,
|
||||||
height: $teHeight,
|
height: $teHeight,
|
||||||
focused: $keyboardVisible,
|
focused: $keyboardVisible,
|
||||||
alignment: alignment,
|
|
||||||
onImagesAdded: onMediaAdded
|
onImagesAdded: onMediaAdded
|
||||||
)
|
)
|
||||||
.allowsTightening(false)
|
.allowsTightening(false)
|
||||||
@@ -109,6 +108,7 @@ struct SendMessageView: View {
|
|||||||
} else if showVoiceMessageButton
|
} else if showVoiceMessageButton
|
||||||
&& composeState.message.isEmpty
|
&& composeState.message.isEmpty
|
||||||
&& !composeState.editing
|
&& !composeState.editing
|
||||||
|
&& !composeState.forwarding
|
||||||
&& composeState.liveMessage == nil
|
&& composeState.liveMessage == nil
|
||||||
&& ((composeState.noPreview && vmrs == .noRecording)
|
&& ((composeState.noPreview && vmrs == .noRecording)
|
||||||
|| (vmrs == .recording && holdingVMR)) {
|
|| (vmrs == .recording && holdingVMR)) {
|
||||||
@@ -184,7 +184,8 @@ struct SendMessageView: View {
|
|||||||
!composeState.sendEnabled ||
|
!composeState.sendEnabled ||
|
||||||
composeState.inProgress ||
|
composeState.inProgress ||
|
||||||
(!voiceMessageAllowed && composeState.voicePreview) ||
|
(!voiceMessageAllowed && composeState.voicePreview) ||
|
||||||
composeState.endLiveDisabled
|
composeState.endLiveDisabled ||
|
||||||
|
disableSendButton
|
||||||
)
|
)
|
||||||
.frame(width: 29, height: 29)
|
.frame(width: 29, height: 29)
|
||||||
.contextMenu{
|
.contextMenu{
|
||||||
|
|||||||
@@ -194,8 +194,7 @@ struct AddGroupMembersViewCommon: View {
|
|||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
HStack{
|
HStack{
|
||||||
ProfileImage(imageStr: contact.image)
|
ProfileImage(imageStr: contact.image, size: 30)
|
||||||
.frame(width: 30, height: 30)
|
|
||||||
.padding(.trailing, 2)
|
.padding(.trailing, 2)
|
||||||
Text(ChatInfo.direct(contact: contact).chatViewName)
|
Text(ChatInfo.direct(contact: contact).chatViewName)
|
||||||
.foregroundColor(prohibitedToInviteIncognito ? .secondary : .primary)
|
.foregroundColor(prohibitedToInviteIncognito ? .secondary : .primary)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ struct GroupChatInfoView: View {
|
|||||||
NavigationView {
|
NavigationView {
|
||||||
let members = chatModel.groupMembers
|
let members = chatModel.groupMembers
|
||||||
.filter { m in let status = m.wrapped.memberStatus; return status != .memLeft && status != .memRemoved }
|
.filter { m in let status = m.wrapped.memberStatus; return status != .memLeft && status != .memRemoved }
|
||||||
.sorted { $0.displayName.lowercased() < $1.displayName.lowercased() }
|
.sorted { $0.wrapped.memberRole > $1.wrapped.memberRole }
|
||||||
|
|
||||||
List {
|
List {
|
||||||
groupInfoHeader()
|
groupInfoHeader()
|
||||||
@@ -172,8 +172,7 @@ struct GroupChatInfoView: View {
|
|||||||
private func groupInfoHeader() -> some View {
|
private func groupInfoHeader() -> some View {
|
||||||
VStack {
|
VStack {
|
||||||
let cInfo = chat.chatInfo
|
let cInfo = chat.chatInfo
|
||||||
ChatInfoImage(chat: chat, color: Color(uiColor: .tertiarySystemFill))
|
ChatInfoImage(chat: chat, size: 192, color: Color(uiColor: .tertiarySystemFill))
|
||||||
.frame(width: 192, height: 192)
|
|
||||||
.padding(.top, 12)
|
.padding(.top, 12)
|
||||||
.padding()
|
.padding()
|
||||||
Text(cInfo.displayName)
|
Text(cInfo.displayName)
|
||||||
@@ -217,8 +216,7 @@ struct GroupChatInfoView: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
let member = groupMember.wrapped
|
let member = groupMember.wrapped
|
||||||
let v = HStack{
|
let v = HStack{
|
||||||
ProfileImage(imageStr: member.image)
|
ProfileImage(imageStr: member.image, size: 38)
|
||||||
.frame(width: 38, height: 38)
|
|
||||||
.padding(.trailing, 2)
|
.padding(.trailing, 2)
|
||||||
// TODO server connection status
|
// TODO server connection status
|
||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ struct GroupMemberInfoView: View {
|
|||||||
case abortSwitchAddressAlert
|
case abortSwitchAddressAlert
|
||||||
case syncConnectionForceAlert
|
case syncConnectionForceAlert
|
||||||
case planAndConnectAlert(alert: PlanAndConnectAlert)
|
case planAndConnectAlert(alert: PlanAndConnectAlert)
|
||||||
|
case queueInfo(info: String)
|
||||||
case error(title: LocalizedStringKey, error: LocalizedStringKey)
|
case error(title: LocalizedStringKey, error: LocalizedStringKey)
|
||||||
|
|
||||||
var id: String {
|
var id: String {
|
||||||
@@ -49,6 +50,7 @@ struct GroupMemberInfoView: View {
|
|||||||
case .abortSwitchAddressAlert: return "abortSwitchAddressAlert"
|
case .abortSwitchAddressAlert: return "abortSwitchAddressAlert"
|
||||||
case .syncConnectionForceAlert: return "syncConnectionForceAlert"
|
case .syncConnectionForceAlert: return "syncConnectionForceAlert"
|
||||||
case let .planAndConnectAlert(alert): return "planAndConnectAlert \(alert.id)"
|
case let .planAndConnectAlert(alert): return "planAndConnectAlert \(alert.id)"
|
||||||
|
case let .queueInfo(info): return "queueInfo \(info)"
|
||||||
case let .error(title, _): return "error \(title)"
|
case let .error(title, _): return "error \(title)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -83,7 +85,7 @@ struct GroupMemberInfoView: View {
|
|||||||
Section {
|
Section {
|
||||||
if let contactId = member.memberContactId, let chat = knownDirectChat(contactId) {
|
if let contactId = member.memberContactId, let chat = knownDirectChat(contactId) {
|
||||||
knownDirectChatButton(chat)
|
knownDirectChatButton(chat)
|
||||||
} else if groupInfo.fullGroupPreferences.directMessages.on {
|
} else if groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
|
||||||
if let contactId = member.memberContactId {
|
if let contactId = member.memberContactId {
|
||||||
newDirectChatButton(contactId)
|
newDirectChatButton(contactId)
|
||||||
} else if member.activeConn?.peerChatVRange.isCompatibleRange(CREATE_MEMBER_CONTACT_VRANGE) ?? false {
|
} else if member.activeConn?.peerChatVRange.isCompatibleRange(CREATE_MEMBER_CONTACT_VRANGE) ?? false {
|
||||||
@@ -110,7 +112,7 @@ struct GroupMemberInfoView: View {
|
|||||||
Label("Share address", systemImage: "square.and.arrow.up")
|
Label("Share address", systemImage: "square.and.arrow.up")
|
||||||
}
|
}
|
||||||
if let contactId = member.memberContactId {
|
if let contactId = member.memberContactId {
|
||||||
if knownDirectChat(contactId) == nil && !groupInfo.fullGroupPreferences.directMessages.on {
|
if knownDirectChat(contactId) == nil && !groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
|
||||||
connectViaAddressButton(contactLink)
|
connectViaAddressButton(contactLink)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -178,6 +180,18 @@ struct GroupMemberInfoView: View {
|
|||||||
Section("For console") {
|
Section("For console") {
|
||||||
infoRow("Local name", member.localDisplayName)
|
infoRow("Local name", member.localDisplayName)
|
||||||
infoRow("Database ID", "\(member.groupMemberId)")
|
infoRow("Database ID", "\(member.groupMemberId)")
|
||||||
|
Button ("Debug delivery") {
|
||||||
|
Task {
|
||||||
|
do {
|
||||||
|
let info = queueInfoText(try await apiGroupMemberQueueInfo(groupInfo.apiId, member.groupMemberId))
|
||||||
|
await MainActor.run { alert = .queueInfo(info: info) }
|
||||||
|
} catch let e {
|
||||||
|
logger.error("apiContactQueueInfo error: \(responseError(e))")
|
||||||
|
let a = getErrorAlert(e, "Error")
|
||||||
|
await MainActor.run { alert = .error(title: a.title, error: a.message) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -223,6 +237,7 @@ struct GroupMemberInfoView: View {
|
|||||||
case .abortSwitchAddressAlert: return abortSwitchAddressAlert(abortSwitchMemberAddress)
|
case .abortSwitchAddressAlert: return abortSwitchAddressAlert(abortSwitchMemberAddress)
|
||||||
case .syncConnectionForceAlert: return syncConnectionForceAlert({ syncMemberConnection(force: true) })
|
case .syncConnectionForceAlert: return syncConnectionForceAlert({ syncMemberConnection(force: true) })
|
||||||
case let .planAndConnectAlert(alert): return planAndConnectAlert(alert, dismiss: true)
|
case let .planAndConnectAlert(alert): return planAndConnectAlert(alert, dismiss: true)
|
||||||
|
case let .queueInfo(info): return queueInfoAlert(info)
|
||||||
case let .error(title, error): return Alert(title: Text(title), message: Text(error))
|
case let .error(title, error): return Alert(title: Text(title), message: Text(error))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -305,8 +320,7 @@ struct GroupMemberInfoView: View {
|
|||||||
|
|
||||||
private func groupMemberInfoHeader(_ mem: GroupMember) -> some View {
|
private func groupMemberInfoHeader(_ mem: GroupMember) -> some View {
|
||||||
VStack {
|
VStack {
|
||||||
ProfileImage(imageStr: mem.image, color: Color(uiColor: .tertiarySystemFill))
|
ProfileImage(imageStr: mem.image, size: 192, color: Color(uiColor: .tertiarySystemFill))
|
||||||
.frame(width: 192, height: 192)
|
|
||||||
.padding(.top, 12)
|
.padding(.top, 12)
|
||||||
.padding()
|
.padding()
|
||||||
if mem.verified {
|
if mem.verified {
|
||||||
|
|||||||
@@ -9,6 +9,12 @@
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
import SimpleXChat
|
import SimpleXChat
|
||||||
|
|
||||||
|
private let featureRoles: [(role: GroupMemberRole?, text: LocalizedStringKey)] = [
|
||||||
|
(nil, "all members"),
|
||||||
|
(.admin, "admins"),
|
||||||
|
(.owner, "owners")
|
||||||
|
]
|
||||||
|
|
||||||
struct GroupPreferencesView: View {
|
struct GroupPreferencesView: View {
|
||||||
@Environment(\.dismiss) var dismiss: DismissAction
|
@Environment(\.dismiss) var dismiss: DismissAction
|
||||||
@EnvironmentObject var chatModel: ChatModel
|
@EnvironmentObject var chatModel: ChatModel
|
||||||
@@ -24,10 +30,11 @@ struct GroupPreferencesView: View {
|
|||||||
List {
|
List {
|
||||||
featureSection(.timedMessages, $preferences.timedMessages.enable)
|
featureSection(.timedMessages, $preferences.timedMessages.enable)
|
||||||
featureSection(.fullDelete, $preferences.fullDelete.enable)
|
featureSection(.fullDelete, $preferences.fullDelete.enable)
|
||||||
featureSection(.directMessages, $preferences.directMessages.enable)
|
featureSection(.directMessages, $preferences.directMessages.enable, $preferences.directMessages.role)
|
||||||
featureSection(.reactions, $preferences.reactions.enable)
|
featureSection(.reactions, $preferences.reactions.enable)
|
||||||
featureSection(.voice, $preferences.voice.enable)
|
featureSection(.voice, $preferences.voice.enable, $preferences.voice.role)
|
||||||
featureSection(.files, $preferences.files.enable)
|
featureSection(.files, $preferences.files.enable, $preferences.files.role)
|
||||||
|
featureSection(.simplexLinks, $preferences.simplexLinks.enable, $preferences.simplexLinks.role)
|
||||||
featureSection(.history, $preferences.history.enable)
|
featureSection(.history, $preferences.history.enable)
|
||||||
|
|
||||||
if groupInfo.canEdit {
|
if groupInfo.canEdit {
|
||||||
@@ -64,7 +71,7 @@ struct GroupPreferencesView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func featureSection(_ feature: GroupFeature, _ enableFeature: Binding<GroupFeatureEnabled>) -> some View {
|
private func featureSection(_ feature: GroupFeature, _ enableFeature: Binding<GroupFeatureEnabled>, _ enableForRole: Binding<GroupMemberRole?>? = nil) -> some View {
|
||||||
Section {
|
Section {
|
||||||
let color: Color = enableFeature.wrappedValue == .on ? .green : .secondary
|
let color: Color = enableFeature.wrappedValue == .on ? .green : .secondary
|
||||||
let icon = enableFeature.wrappedValue == .on ? feature.iconFilled : feature.icon
|
let icon = enableFeature.wrappedValue == .on ? feature.iconFilled : feature.icon
|
||||||
@@ -87,6 +94,14 @@ struct GroupPreferencesView: View {
|
|||||||
)
|
)
|
||||||
.frame(height: 36)
|
.frame(height: 36)
|
||||||
}
|
}
|
||||||
|
if enableFeature.wrappedValue == .on, let enableForRole {
|
||||||
|
Picker("Enabled for", selection: enableForRole) {
|
||||||
|
ForEach(featureRoles, id: \.role) { fr in
|
||||||
|
Text(fr.text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.frame(height: 36)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
settingsRow(icon, color: color) {
|
settingsRow(icon, color: color) {
|
||||||
infoRow(Text(feature.text), enableFeature.wrappedValue.text)
|
infoRow(Text(feature.text), enableFeature.wrappedValue.text)
|
||||||
@@ -94,10 +109,26 @@ struct GroupPreferencesView: View {
|
|||||||
if timedOn {
|
if timedOn {
|
||||||
infoRow("Delete after", timeText(preferences.timedMessages.ttl))
|
infoRow("Delete after", timeText(preferences.timedMessages.ttl))
|
||||||
}
|
}
|
||||||
|
if enableFeature.wrappedValue == .on, let enableForRole {
|
||||||
|
HStack {
|
||||||
|
Text("Enabled for").foregroundColor(.secondary)
|
||||||
|
Spacer()
|
||||||
|
Text(
|
||||||
|
featureRoles.first(where: { fr in fr.role == enableForRole.wrappedValue })?.text
|
||||||
|
?? "all members"
|
||||||
|
)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} footer: {
|
} footer: {
|
||||||
Text(feature.enableDescription(enableFeature.wrappedValue, groupInfo.canEdit))
|
Text(feature.enableDescription(enableFeature.wrappedValue, groupInfo.canEdit))
|
||||||
}
|
}
|
||||||
|
.onChange(of: enableFeature.wrappedValue) { enabled in
|
||||||
|
if case .off = enabled {
|
||||||
|
enableForRole?.wrappedValue = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func savePreferences() {
|
private func savePreferences() {
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ struct ChatListNavLink: View {
|
|||||||
.swipeActions(edge: .leading, allowsFullSwipe: true) {
|
.swipeActions(edge: .leading, allowsFullSwipe: true) {
|
||||||
markReadButton()
|
markReadButton()
|
||||||
toggleFavoriteButton()
|
toggleFavoriteButton()
|
||||||
toggleNtfsButton(chat)
|
ToggleNtfsButton(chat: chat)
|
||||||
}
|
}
|
||||||
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
|
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
|
||||||
if !chat.chatItems.isEmpty {
|
if !chat.chatItems.isEmpty {
|
||||||
@@ -181,7 +181,7 @@ struct ChatListNavLink: View {
|
|||||||
.swipeActions(edge: .leading, allowsFullSwipe: true) {
|
.swipeActions(edge: .leading, allowsFullSwipe: true) {
|
||||||
markReadButton()
|
markReadButton()
|
||||||
toggleFavoriteButton()
|
toggleFavoriteButton()
|
||||||
toggleNtfsButton(chat)
|
ToggleNtfsButton(chat: chat)
|
||||||
}
|
}
|
||||||
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
|
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
|
||||||
if !chat.chatItems.isEmpty {
|
if !chat.chatItems.isEmpty {
|
||||||
@@ -349,10 +349,12 @@ struct ChatListNavLink: View {
|
|||||||
.tint(.accentColor)
|
.tint(.accentColor)
|
||||||
}
|
}
|
||||||
.frame(height: rowHeights[dynamicTypeSize])
|
.frame(height: rowHeights[dynamicTypeSize])
|
||||||
.sheet(isPresented: $showContactConnectionInfo) {
|
.appSheet(isPresented: $showContactConnectionInfo) {
|
||||||
if case let .contactConnection(contactConnection) = chat.chatInfo {
|
Group {
|
||||||
ContactConnectionInfo(contactConnection: contactConnection)
|
if case let .contactConnection(contactConnection) = chat.chatInfo {
|
||||||
.environment(\EnvironmentValues.refresh as! WritableKeyPath<EnvironmentValues, RefreshAction?>, nil)
|
ContactConnectionInfo(contactConnection: contactConnection)
|
||||||
|
.environment(\EnvironmentValues.refresh as! WritableKeyPath<EnvironmentValues, RefreshAction?>, nil)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
@@ -467,7 +469,7 @@ struct ChatListNavLink: View {
|
|||||||
.padding(4)
|
.padding(4)
|
||||||
.frame(height: rowHeights[dynamicTypeSize])
|
.frame(height: rowHeights[dynamicTypeSize])
|
||||||
.onTapGesture { showInvalidJSON = true }
|
.onTapGesture { showInvalidJSON = true }
|
||||||
.sheet(isPresented: $showInvalidJSON) {
|
.appSheet(isPresented: $showInvalidJSON) {
|
||||||
invalidJSONView(json)
|
invalidJSONView(json)
|
||||||
.environment(\EnvironmentValues.refresh as! WritableKeyPath<EnvironmentValues, RefreshAction?>, nil)
|
.environment(\EnvironmentValues.refresh as! WritableKeyPath<EnvironmentValues, RefreshAction?>, nil)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,8 +92,7 @@ struct ChatListView: View {
|
|||||||
ToolbarItem(placement: .navigationBarLeading) {
|
ToolbarItem(placement: .navigationBarLeading) {
|
||||||
let user = chatModel.currentUser ?? User.sampleData
|
let user = chatModel.currentUser ?? User.sampleData
|
||||||
ZStack(alignment: .topTrailing) {
|
ZStack(alignment: .topTrailing) {
|
||||||
ProfileImage(imageStr: user.image, color: Color(uiColor: .quaternaryLabel))
|
ProfileImage(imageStr: user.image, size: 32, color: Color(uiColor: .quaternaryLabel))
|
||||||
.frame(width: 32, height: 32)
|
|
||||||
.padding(.trailing, 4)
|
.padding(.trailing, 4)
|
||||||
let allRead = chatModel.users
|
let allRead = chatModel.users
|
||||||
.filter { u in !u.user.activeUser && !u.user.hidden }
|
.filter { u in !u.user.activeUser && !u.user.hidden }
|
||||||
|
|||||||
@@ -23,8 +23,7 @@ struct ChatPreviewView: View {
|
|||||||
let cItem = chat.chatItems.last
|
let cItem = chat.chatItems.last
|
||||||
return HStack(spacing: 8) {
|
return HStack(spacing: 8) {
|
||||||
ZStack(alignment: .bottomTrailing) {
|
ZStack(alignment: .bottomTrailing) {
|
||||||
ChatInfoImage(chat: chat)
|
ChatInfoImage(chat: chat, size: 63)
|
||||||
.frame(width: 63, height: 63)
|
|
||||||
chatPreviewImageOverlayIcon()
|
chatPreviewImageOverlayIcon()
|
||||||
.padding([.bottom, .trailing], 1)
|
.padding([.bottom, .trailing], 1)
|
||||||
}
|
}
|
||||||
@@ -241,14 +240,14 @@ struct ChatPreviewView: View {
|
|||||||
|
|
||||||
private func itemStatusMark(_ cItem: ChatItem) -> Text {
|
private func itemStatusMark(_ cItem: ChatItem) -> Text {
|
||||||
switch cItem.meta.itemStatus {
|
switch cItem.meta.itemStatus {
|
||||||
case .sndErrorAuth:
|
case .sndErrorAuth, .sndError:
|
||||||
return Text(Image(systemName: "multiply"))
|
return Text(Image(systemName: "multiply"))
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundColor(.red) + Text(" ")
|
.foregroundColor(.red) + Text(" ")
|
||||||
case .sndError:
|
case .sndWarning:
|
||||||
return Text(Image(systemName: "exclamationmark.triangle.fill"))
|
return Text(Image(systemName: "exclamationmark.triangle.fill"))
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundColor(.yellow) + Text(" ")
|
.foregroundColor(.orange) + Text(" ")
|
||||||
default: return Text("")
|
default: return Text("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ struct ContactRequestView: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
HStack(spacing: 8) {
|
HStack(spacing: 8) {
|
||||||
ChatInfoImage(chat: chat)
|
ChatInfoImage(chat: chat, size: 63)
|
||||||
.frame(width: 63, height: 63)
|
|
||||||
.padding(.leading, 4)
|
.padding(.leading, 4)
|
||||||
VStack(alignment: .leading, spacing: 0) {
|
VStack(alignment: .leading, spacing: 0) {
|
||||||
HStack(alignment: .top) {
|
HStack(alignment: .top) {
|
||||||
|
|||||||
@@ -127,8 +127,7 @@ struct UserPicker: View {
|
|||||||
}
|
}
|
||||||
}, label: {
|
}, label: {
|
||||||
HStack(spacing: 0) {
|
HStack(spacing: 0) {
|
||||||
ProfileImage(imageStr: user.image, color: Color(uiColor: .tertiarySystemFill))
|
ProfileImage(imageStr: user.image, size: 44, color: Color(uiColor: .tertiarySystemFill))
|
||||||
.frame(width: 44, height: 44)
|
|
||||||
.padding(.trailing, 12)
|
.padding(.trailing, 12)
|
||||||
Text(user.chatViewName)
|
Text(user.chatViewName)
|
||||||
.fontWeight(user.activeUser ? .medium : .regular)
|
.fontWeight(user.activeUser ? .medium : .regular)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import SimpleXChat
|
|||||||
struct ChatInfoImage: View {
|
struct ChatInfoImage: View {
|
||||||
@Environment(\.colorScheme) var colorScheme
|
@Environment(\.colorScheme) var colorScheme
|
||||||
@ObservedObject var chat: Chat
|
@ObservedObject var chat: Chat
|
||||||
|
var size: CGFloat
|
||||||
var color = Color(uiColor: .tertiarySystemGroupedBackground)
|
var color = Color(uiColor: .tertiarySystemGroupedBackground)
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -28,6 +29,7 @@ struct ChatInfoImage: View {
|
|||||||
return ProfileImage(
|
return ProfileImage(
|
||||||
imageStr: chat.chatInfo.image,
|
imageStr: chat.chatInfo.image,
|
||||||
iconName: iconName,
|
iconName: iconName,
|
||||||
|
size: size,
|
||||||
color: iconColor
|
color: iconColor
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -36,8 +38,9 @@ struct ChatInfoImage: View {
|
|||||||
struct ChatInfoImage_Previews: PreviewProvider {
|
struct ChatInfoImage_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
ChatInfoImage(
|
ChatInfoImage(
|
||||||
chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: [])
|
chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: []),
|
||||||
, color: Color(red: 0.9, green: 0.9, blue: 0.9)
|
size: 63,
|
||||||
|
color: Color(red: 0.9, green: 0.9, blue: 0.9)
|
||||||
)
|
)
|
||||||
.previewLayout(.fixed(width: 63, height: 63))
|
.previewLayout(.fixed(width: 63, height: 63))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,11 +11,20 @@ import UIKit
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
extension View {
|
extension View {
|
||||||
func uiKitContextMenu(maxWidth: CGFloat, menu: Binding<UIMenu>, allowMenu: Binding<Bool>) -> some View {
|
func uiKitContextMenu(hasImageOrVideo: Bool, maxWidth: CGFloat, itemWidth: Binding<CGFloat>, menu: Binding<UIMenu>, allowMenu: Binding<Bool>) -> some View {
|
||||||
Group {
|
Group {
|
||||||
if allowMenu.wrappedValue {
|
if allowMenu.wrappedValue {
|
||||||
InteractionView(content: self, maxWidth: maxWidth, menu: menu)
|
if hasImageOrVideo {
|
||||||
.fixedSize(horizontal: true, vertical: false)
|
InteractionView(content:
|
||||||
|
self.environmentObject(ChatModel.shared)
|
||||||
|
.overlay(DetermineWidthImageVideoItem())
|
||||||
|
.onPreferenceChange(DetermineWidthImageVideoItem.Key.self) { itemWidth.wrappedValue = $0 == 0 ? maxWidth : $0 }
|
||||||
|
, maxWidth: maxWidth, itemWidth: itemWidth, menu: menu)
|
||||||
|
.frame(maxWidth: itemWidth.wrappedValue)
|
||||||
|
} else {
|
||||||
|
InteractionView(content: self.environmentObject(ChatModel.shared), maxWidth: maxWidth, itemWidth: itemWidth, menu: menu)
|
||||||
|
.fixedSize(horizontal: true, vertical: false)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -31,13 +40,14 @@ private class HostingViewHolder: UIView {
|
|||||||
struct InteractionView<Content: View>: UIViewRepresentable {
|
struct InteractionView<Content: View>: UIViewRepresentable {
|
||||||
let content: Content
|
let content: Content
|
||||||
var maxWidth: CGFloat
|
var maxWidth: CGFloat
|
||||||
|
var itemWidth: Binding<CGFloat>
|
||||||
@Binding var menu: UIMenu
|
@Binding var menu: UIMenu
|
||||||
|
|
||||||
func makeUIView(context: Context) -> UIView {
|
func makeUIView(context: Context) -> UIView {
|
||||||
let view = HostingViewHolder()
|
let view = HostingViewHolder()
|
||||||
view.contentSize = CGSizeMake(maxWidth, .infinity)
|
|
||||||
view.backgroundColor = .clear
|
view.backgroundColor = .clear
|
||||||
let hostView = UIHostingController(rootView: content)
|
let hostView = UIHostingController(rootView: content)
|
||||||
|
view.contentSize = hostView.view.intrinsicContentSize
|
||||||
hostView.view.translatesAutoresizingMaskIntoConstraints = false
|
hostView.view.translatesAutoresizingMaskIntoConstraints = false
|
||||||
let constraints = [
|
let constraints = [
|
||||||
hostView.view.topAnchor.constraint(equalTo: view.topAnchor),
|
hostView.view.topAnchor.constraint(equalTo: view.topAnchor),
|
||||||
@@ -57,7 +67,11 @@ struct InteractionView<Content: View>: UIViewRepresentable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func updateUIView(_ uiView: UIView, context: Context) {
|
func updateUIView(_ uiView: UIView, context: Context) {
|
||||||
(uiView as! HostingViewHolder).contentSize = uiView.subviews[0].sizeThatFits(CGSizeMake(maxWidth, .infinity))
|
let was = (uiView as! HostingViewHolder).contentSize
|
||||||
|
(uiView as! HostingViewHolder).contentSize = uiView.subviews[0].sizeThatFits(CGSizeMake(itemWidth.wrappedValue, .infinity))
|
||||||
|
if was != (uiView as! HostingViewHolder).contentSize {
|
||||||
|
uiView.invalidateIntrinsicContentSize()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeCoordinator() -> Coordinator {
|
func makeCoordinator() -> Coordinator {
|
||||||
|
|||||||
@@ -21,6 +21,19 @@ struct DetermineWidth: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct DetermineWidthImageVideoItem: View {
|
||||||
|
typealias Key = MaximumWidthImageVideoPreferenceKey
|
||||||
|
var body: some View {
|
||||||
|
GeometryReader { proxy in
|
||||||
|
Color.clear
|
||||||
|
.preference(
|
||||||
|
key: MaximumWidthImageVideoPreferenceKey.self,
|
||||||
|
value: proxy.size.width
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct MaximumWidthPreferenceKey: PreferenceKey {
|
struct MaximumWidthPreferenceKey: PreferenceKey {
|
||||||
static var defaultValue: CGFloat = 0
|
static var defaultValue: CGFloat = 0
|
||||||
static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
|
static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
|
||||||
@@ -28,6 +41,13 @@ struct MaximumWidthPreferenceKey: PreferenceKey {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct MaximumWidthImageVideoPreferenceKey: PreferenceKey {
|
||||||
|
static var defaultValue: CGFloat = 0
|
||||||
|
static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
|
||||||
|
value = max(value, nextValue())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct DetermineWidth_Previews: PreviewProvider {
|
struct DetermineWidth_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
DetermineWidth()
|
DetermineWidth()
|
||||||
|
|||||||
@@ -9,29 +9,51 @@
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
import SimpleXChat
|
import SimpleXChat
|
||||||
|
|
||||||
|
let defaultProfileImageCorner = 22.5
|
||||||
|
|
||||||
struct ProfileImage: View {
|
struct ProfileImage: View {
|
||||||
var imageStr: String? = nil
|
var imageStr: String? = nil
|
||||||
var iconName: String = "person.crop.circle.fill"
|
var iconName: String = "person.crop.circle.fill"
|
||||||
|
var size: CGFloat
|
||||||
var color = Color(uiColor: .tertiarySystemGroupedBackground)
|
var color = Color(uiColor: .tertiarySystemGroupedBackground)
|
||||||
|
@AppStorage(DEFAULT_PROFILE_IMAGE_CORNER_RADIUS) private var radius = defaultProfileImageCorner
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
if let image = imageStr,
|
if let image = imageStr,
|
||||||
let data = Data(base64Encoded: dropImagePrefix(image)),
|
let data = Data(base64Encoded: dropImagePrefix(image)),
|
||||||
let uiImage = UIImage(data: data) {
|
let uiImage = UIImage(data: data) {
|
||||||
Image(uiImage: uiImage)
|
clipProfileImage(Image(uiImage: uiImage), size: size, radius: radius)
|
||||||
.resizable()
|
|
||||||
.clipShape(Circle())
|
|
||||||
} else {
|
} else {
|
||||||
Image(systemName: iconName)
|
Image(systemName: iconName)
|
||||||
.resizable()
|
.resizable()
|
||||||
.foregroundColor(color)
|
.foregroundColor(color)
|
||||||
|
.frame(width: size, height: size)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private let squareToCircleRatio = 0.935
|
||||||
|
|
||||||
|
private let radiusFactor = (1 - squareToCircleRatio) / 50
|
||||||
|
|
||||||
|
@ViewBuilder func clipProfileImage(_ img: Image, size: CGFloat, radius: Double) -> some View {
|
||||||
|
let v = img.resizable()
|
||||||
|
if radius >= 50 {
|
||||||
|
v.frame(width: size, height: size).clipShape(Circle())
|
||||||
|
} else if radius <= 0 {
|
||||||
|
let sz = size * squareToCircleRatio
|
||||||
|
v.frame(width: sz, height: sz).padding((size - sz) / 2)
|
||||||
|
} else {
|
||||||
|
let sz = size * (squareToCircleRatio + radius * radiusFactor)
|
||||||
|
v.frame(width: sz, height: sz)
|
||||||
|
.clipShape(RoundedRectangle(cornerRadius: sz * radius / 100, style: .continuous))
|
||||||
|
.padding((size - sz) / 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct ProfileImage_Previews: PreviewProvider {
|
struct ProfileImage_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
ProfileImage(imageStr: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAKHGlDQ1BJQ0MgUHJvZmlsZQAASImFVgdUVNcWve9Nb7QZeu9NehtAem/Sq6gMQ28OQxWxgAQjEFFEREARNFQFg1KjiIhiIQgoYA9IEFBisCAq6OQNJNH4//r/zDpz9ttzz7n73ffWmg0A6QCDxYqD+QCIT0hmezlYywQEBsngngEYCAIy0AC6DGYSy8rDwxUg8Xf9d7wbAxC33tHgzvrP3/9nCISFJzEBgIIRTGey2MkILkawT1oyi4tnEUxjI6IQvMLFkauYqxjQQtewwuoaHy8bBNMBwJMZDHYkAERbhJdJZUYic4hhCNZOCItOQDB3vjkzioFwxLsIXhcRl5IOAImrRzs+fivCk7QRrIL0shAcwNUW+tX8yH/tFfrPXgxG5D84Pi6F+dc9ck+HHJ7g641UMSQlQATQBHEgBaQDGcACbLAVYaIRJhx5Dv+9j77aZ4OsZIFtSEc0iARRIBnpt/9qlvfqpGSQBhjImnCEcUU+NtxnujZy4fbqVEiU/wuXdQyA9S0cDqfzC+e2F4DzyLkSB79wyi0A8KoBcL2GmcJOXePQ3C8MIAJeQAOiQArIAxXuWwMMgSmwBHbAGbgDHxAINgMmojceUZUGMkEWyAX54AA4DMpAJTgJ6sAZ0ALawQVwGVwDt8AQGAUPwQSYBi/AAngHliEIwkEUiAqJQtKQIqQO6UJ0yByyg1whLygQCoEioQQoBcqE9kD5UBFUBlVB9dBPUCd0GboBDUP3oUloDnoNfYRRMBmmwZKwEqwF02Er2AX2gTfBkXAinAHnwPvhUrgaPg23wZfhW/AoPAG/gBdRAEVCCaFkURooOsoG5Y4KQkWg2KidqDxUCaoa1YTqQvWj7qAmUPOoD2gsmoqWQWugTdGOaF80E52I3okuQJeh69Bt6D70HfQkegH9GUPBSGDUMSYYJ0wAJhKThsnFlGBqMK2Yq5hRzDTmHRaLFcIqY42wjthAbAx2O7YAewzbjO3BDmOnsIs4HE4Up44zw7njGLhkXC7uKO407hJuBDeNe48n4aXxunh7fBA+AZ+NL8E34LvxI/gZ/DKBj6BIMCG4E8II2wiFhFOELsJtwjRhmchPVCaaEX2IMcQsYimxiXiV+Ij4hkQiyZGMSZ6kaNJuUinpLOk6aZL0gSxAViPbkIPJKeT95FpyD/k++Q2FQlGiWFKCKMmU/ZR6yhXKE8p7HiqPJo8TTxjPLp5ynjaeEZ6XvAReRV4r3s28GbwlvOd4b/PO8xH4lPhs+Bh8O/nK+Tr5xvkW+an8Ovzu/PH8BfwN/Df4ZwVwAkoCdgJhAjkCJwWuCExRUVR5qg2VSd1DPUW9Sp2mYWnKNCdaDC2fdoY2SFsQFBDUF/QTTBcsF7woOCGEElISchKKEyoUahEaE/ooLClsJRwuvE+4SXhEeElEXMRSJFwkT6RZZFTko6iMqJ1orOhB0XbRx2JoMTUxT7E0seNiV8XmxWnipuJM8TzxFvEHErCEmoSXxHaJkxIDEouSUpIOkizJo5JXJOelhKQspWKkiqW6peakqdLm0tHSxdKXpJ/LCMpYycTJlMr0ySzISsg6yqbIVskOyi7LKcv5ymXLNcs9lifK0+Uj5Ivle+UXFKQV3BQyFRoVHigSFOmKUYpHFPsVl5SUlfyV9iq1K80qiyg7KWcoNyo/UqGoWKgkqlSr3FXFqtJVY1WPqQ6pwWoGalFq5Wq31WF1Q/Vo9WPqw+sw64zXJayrXjeuQdaw0kjVaNSY1BTSdNXM1mzXfKmloBWkdVCrX+uztoF2nPYp7Yc6AjrOOtk6XTqvddV0mbrlunf1KHr2erv0OvRe6avrh+sf179nQDVwM9hr0GvwydDIkG3YZDhnpGAUYlRhNE6n0T3oBfTrxhhja+NdxheMP5gYmiSbtJj8YaphGmvaYDq7Xnl9+PpT66fM5MwYZlVmE+Yy5iHmJ8wnLGQtGBbVFk8t5S3DLGssZ6xUrWKsTlu9tNa2Zlu3Wi/ZmNjssOmxRdk62ObZDtoJ2Pnaldk9sZezj7RvtF9wMHDY7tDjiHF0cTzoOO4k6cR0qndacDZy3uHc50J28XYpc3nqqubKdu1yg92c3Q65PdqguCFhQ7s7cHdyP+T+2EPZI9HjZ0+sp4dnueczLx2vTK9+b6r3Fu8G73c+1j6FPg99VXxTfHv9eP2C/er9lvxt/Yv8JwK0AnYE3AoUC4wO7AjCBfkF1QQtbrTbeHjjdLBBcG7w2CblTembbmwW2xy3+eIW3i2MLedCMCH+IQ0hKwx3RjVjMdQptCJ0gWnDPMJ8EWYZVhw2F24WXhQ+E2EWURQxG2kWeShyLsoiqiRqPtomuiz6VYxjTGXMUqx7bG0sJ84/rjkeHx8S35kgkBCb0LdVamv61mGWOiuXNZFokng4cYHtwq5JgpI2JXUk05A/0oEUlZTvUiZTzVPLU9+n+aWdS+dPT0gf2Ka2bd+2mQz7jB+3o7czt/dmymZmZU7usNpRtRPaGbqzd5f8rpxd07sddtdlEbNis37J1s4uyn67x39PV45kzu6cqe8cvmvM5cll547vNd1b+T36++jvB/fp7Tu673NeWN7NfO38kvyVAmbBzR90fij9gbM/Yv9goWHh8QPYAwkHxg5aHKwr4i/KKJo65HaorVimOK/47eEth2+U6JdUHiEeSTkyUepa2nFU4eiBoytlUWWj5dblzRUSFfsqlo6FHRs5bnm8qVKyMr/y44noE/eqHKraqpWqS05iT6aefHbK71T/j/Qf62vEavJrPtUm1E7UedX11RvV1zdINBQ2wo0pjXOng08PnbE909Gk0VTVLNScfxacTTn7/KeQn8ZaXFp6z9HPNZ1XPF/RSm3Na4PatrUttEe1T3QEdgx3Onf2dpl2tf6s+XPtBdkL5RcFLxZ2E7tzujmXMi4t9rB65i9HXp7q3dL78ErAlbt9nn2DV12uXr9mf+1Kv1X/petm1y/cMLnReZN+s/2W4a22AYOB1l8MfmkdNBxsu210u2PIeKhreP1w94jFyOU7tneu3XW6e2t0w+jwmO/YvfHg8Yl7Yfdm78fdf/Ug9cHyw92PMI/yHvM9Lnki8aT6V9VfmycMJy5O2k4OPPV++nCKOfXit6TfVqZznlGelcxIz9TP6s5emLOfG3q+8fn0C9aL5fnc3/l/r3ip8vL8H5Z/DCwELEy/Yr/ivC54I/qm9q3+295Fj8Un7+LfLS/lvRd9X/eB/qH/o//HmeW0FdxK6SfVT12fXT4/4sRzOCwGm7FqBVBIwhERALyuBYASCAB1CPEPG9f8119+BvrK2fyNwVndL5jhvubRVsMQgCakeCFp04OsQ1LJEgAe5NodqT6WANbT+yf/iqQIPd21PXgaAcDJcjivtwJAQHLFgcNZ9uBwPlUgYhHf1z37f7V9g9e8ITewiP88wfWIYET6HPg21nzjV2fybQVcxfrg2/onng/F50lD/ccAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAwf1XlwAAAaNJREFUSA3FlT1LA0EQQBN/gYUYRTksJZVgEbCR/D+7QMr8ABtttBBCsLGzsLG2sxaxED/ie4d77u0dyaE5HHjczn7MzO7M7nU6/yXz+bwLhzCCjTQO+rZhDH3opuNLdRYN4RHe4RIKJ7R34Ro+4AEGSw2mE1iUwT18gpI74WvkGlccu4XNdH0jnYU7cAUacidn37qR23cOxc4aGU0nYUAn7iSWEHkz46w0ocdQu1X6B/AMQZ5o7KfBqNOfwRH8JB7FajGhnmcpKvQe3MEbvILiDm5gPXaCHnZr4vvFGMoEKudKn8YvQIOOe+YzCPop7dwJ3zRfJ7GDuso4YJGRa0yZgg4tUaNXdGrbuZWKKxzYYEJc2xp9AUUjGt8KC2jvgYadF8+10vJyDnNLXwbdiWUZi0fUK01Eoc+AZhCLZVzK4Vq6sDUdz+0dEcbbTTIOJmAyTVhx/WmvrExbv2jtPhWLKodjCtefZiEeZeVZWWSndgwj6fVf3XON8Qwq15++uoqrfYVrow6dGBpCq79ME291jaB0/Q2CPncyht/99MNO/vr9AqW/CGi8sJqbAAAAAElFTkSuQmCC")
|
ProfileImage(imageStr: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAKHGlDQ1BJQ0MgUHJvZmlsZQAASImFVgdUVNcWve9Nb7QZeu9NehtAem/Sq6gMQ28OQxWxgAQjEFFEREARNFQFg1KjiIhiIQgoYA9IEFBisCAq6OQNJNH4//r/zDpz9ttzz7n73ffWmg0A6QCDxYqD+QCIT0hmezlYywQEBsngngEYCAIy0AC6DGYSy8rDwxUg8Xf9d7wbAxC33tHgzvrP3/9nCISFJzEBgIIRTGey2MkILkawT1oyi4tnEUxjI6IQvMLFkauYqxjQQtewwuoaHy8bBNMBwJMZDHYkAERbhJdJZUYic4hhCNZOCItOQDB3vjkzioFwxLsIXhcRl5IOAImrRzs+fivCk7QRrIL0shAcwNUW+tX8yH/tFfrPXgxG5D84Pi6F+dc9ck+HHJ7g641UMSQlQATQBHEgBaQDGcACbLAVYaIRJhx5Dv+9j77aZ4OsZIFtSEc0iARRIBnpt/9qlvfqpGSQBhjImnCEcUU+NtxnujZy4fbqVEiU/wuXdQyA9S0cDqfzC+e2F4DzyLkSB79wyi0A8KoBcL2GmcJOXePQ3C8MIAJeQAOiQArIAxXuWwMMgSmwBHbAGbgDHxAINgMmojceUZUGMkEWyAX54AA4DMpAJTgJ6sAZ0ALawQVwGVwDt8AQGAUPwQSYBi/AAngHliEIwkEUiAqJQtKQIqQO6UJ0yByyg1whLygQCoEioQQoBcqE9kD5UBFUBlVB9dBPUCd0GboBDUP3oUloDnoNfYRRMBmmwZKwEqwF02Er2AX2gTfBkXAinAHnwPvhUrgaPg23wZfhW/AoPAG/gBdRAEVCCaFkURooOsoG5Y4KQkWg2KidqDxUCaoa1YTqQvWj7qAmUPOoD2gsmoqWQWugTdGOaF80E52I3okuQJeh69Bt6D70HfQkegH9GUPBSGDUMSYYJ0wAJhKThsnFlGBqMK2Yq5hRzDTmHRaLFcIqY42wjthAbAx2O7YAewzbjO3BDmOnsIs4HE4Up44zw7njGLhkXC7uKO407hJuBDeNe48n4aXxunh7fBA+AZ+NL8E34LvxI/gZ/DKBj6BIMCG4E8II2wiFhFOELsJtwjRhmchPVCaaEX2IMcQsYimxiXiV+Ij4hkQiyZGMSZ6kaNJuUinpLOk6aZL0gSxAViPbkIPJKeT95FpyD/k++Q2FQlGiWFKCKMmU/ZR6yhXKE8p7HiqPJo8TTxjPLp5ynjaeEZ6XvAReRV4r3s28GbwlvOd4b/PO8xH4lPhs+Bh8O/nK+Tr5xvkW+an8Ovzu/PH8BfwN/Df4ZwVwAkoCdgJhAjkCJwWuCExRUVR5qg2VSd1DPUW9Sp2mYWnKNCdaDC2fdoY2SFsQFBDUF/QTTBcsF7woOCGEElISchKKEyoUahEaE/ooLClsJRwuvE+4SXhEeElEXMRSJFwkT6RZZFTko6iMqJ1orOhB0XbRx2JoMTUxT7E0seNiV8XmxWnipuJM8TzxFvEHErCEmoSXxHaJkxIDEouSUpIOkizJo5JXJOelhKQspWKkiqW6peakqdLm0tHSxdKXpJ/LCMpYycTJlMr0ySzISsg6yqbIVskOyi7LKcv5ymXLNcs9lifK0+Uj5Ivle+UXFKQV3BQyFRoVHigSFOmKUYpHFPsVl5SUlfyV9iq1K80qiyg7KWcoNyo/UqGoWKgkqlSr3FXFqtJVY1WPqQ6pwWoGalFq5Wq31WF1Q/Vo9WPqw+sw64zXJayrXjeuQdaw0kjVaNSY1BTSdNXM1mzXfKmloBWkdVCrX+uztoF2nPYp7Yc6AjrOOtk6XTqvddV0mbrlunf1KHr2erv0OvRe6avrh+sf179nQDVwM9hr0GvwydDIkG3YZDhnpGAUYlRhNE6n0T3oBfTrxhhja+NdxheMP5gYmiSbtJj8YaphGmvaYDq7Xnl9+PpT66fM5MwYZlVmE+Yy5iHmJ8wnLGQtGBbVFk8t5S3DLGssZ6xUrWKsTlu9tNa2Zlu3Wi/ZmNjssOmxRdk62ObZDtoJ2Pnaldk9sZezj7RvtF9wMHDY7tDjiHF0cTzoOO4k6cR0qndacDZy3uHc50J28XYpc3nqqubKdu1yg92c3Q65PdqguCFhQ7s7cHdyP+T+2EPZI9HjZ0+sp4dnueczLx2vTK9+b6r3Fu8G73c+1j6FPg99VXxTfHv9eP2C/er9lvxt/Yv8JwK0AnYE3AoUC4wO7AjCBfkF1QQtbrTbeHjjdLBBcG7w2CblTembbmwW2xy3+eIW3i2MLedCMCH+IQ0hKwx3RjVjMdQptCJ0gWnDPMJ8EWYZVhw2F24WXhQ+E2EWURQxG2kWeShyLsoiqiRqPtomuiz6VYxjTGXMUqx7bG0sJ84/rjkeHx8S35kgkBCb0LdVamv61mGWOiuXNZFokng4cYHtwq5JgpI2JXUk05A/0oEUlZTvUiZTzVPLU9+n+aWdS+dPT0gf2Ka2bd+2mQz7jB+3o7czt/dmymZmZU7usNpRtRPaGbqzd5f8rpxd07sddtdlEbNis37J1s4uyn67x39PV45kzu6cqe8cvmvM5cll547vNd1b+T36++jvB/fp7Tu673NeWN7NfO38kvyVAmbBzR90fij9gbM/Yv9goWHh8QPYAwkHxg5aHKwr4i/KKJo65HaorVimOK/47eEth2+U6JdUHiEeSTkyUepa2nFU4eiBoytlUWWj5dblzRUSFfsqlo6FHRs5bnm8qVKyMr/y44noE/eqHKraqpWqS05iT6aefHbK71T/j/Qf62vEavJrPtUm1E7UedX11RvV1zdINBQ2wo0pjXOng08PnbE909Gk0VTVLNScfxacTTn7/KeQn8ZaXFp6z9HPNZ1XPF/RSm3Na4PatrUttEe1T3QEdgx3Onf2dpl2tf6s+XPtBdkL5RcFLxZ2E7tzujmXMi4t9rB65i9HXp7q3dL78ErAlbt9nn2DV12uXr9mf+1Kv1X/petm1y/cMLnReZN+s/2W4a22AYOB1l8MfmkdNBxsu210u2PIeKhreP1w94jFyOU7tneu3XW6e2t0w+jwmO/YvfHg8Yl7Yfdm78fdf/Ug9cHyw92PMI/yHvM9Lnki8aT6V9VfmycMJy5O2k4OPPV++nCKOfXit6TfVqZznlGelcxIz9TP6s5emLOfG3q+8fn0C9aL5fnc3/l/r3ip8vL8H5Z/DCwELEy/Yr/ivC54I/qm9q3+295Fj8Un7+LfLS/lvRd9X/eB/qH/o//HmeW0FdxK6SfVT12fXT4/4sRzOCwGm7FqBVBIwhERALyuBYASCAB1CPEPG9f8119+BvrK2fyNwVndL5jhvubRVsMQgCakeCFp04OsQ1LJEgAe5NodqT6WANbT+yf/iqQIPd21PXgaAcDJcjivtwJAQHLFgcNZ9uBwPlUgYhHf1z37f7V9g9e8ITewiP88wfWIYET6HPg21nzjV2fybQVcxfrg2/onng/F50lD/ccAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAwf1XlwAAAaNJREFUSA3FlT1LA0EQQBN/gYUYRTksJZVgEbCR/D+7QMr8ABtttBBCsLGzsLG2sxaxED/ie4d77u0dyaE5HHjczn7MzO7M7nU6/yXz+bwLhzCCjTQO+rZhDH3opuNLdRYN4RHe4RIKJ7R34Ro+4AEGSw2mE1iUwT18gpI74WvkGlccu4XNdH0jnYU7cAUacidn37qR23cOxc4aGU0nYUAn7iSWEHkz46w0ocdQu1X6B/AMQZ5o7KfBqNOfwRH8JB7FajGhnmcpKvQe3MEbvILiDm5gPXaCHnZr4vvFGMoEKudKn8YvQIOOe+YzCPop7dwJ3zRfJ7GDuso4YJGRa0yZgg4tUaNXdGrbuZWKKxzYYEJc2xp9AUUjGt8KC2jvgYadF8+10vJyDnNLXwbdiWUZi0fUK01Eoc+AZhCLZVzK4Vq6sDUdz+0dEcbbTTIOJmAyTVhx/WmvrExbv2jtPhWLKodjCtefZiEeZeVZWWSndgwj6fVf3XON8Qwq15++uoqrfYVrow6dGBpCq79ME291jaB0/Q2CPncyht/99MNO/vr9AqW/CGi8sJqbAAAAAElFTkSuQmCC", size: 63)
|
||||||
.previewLayout(.fixed(width: 63, height: 63))
|
.previewLayout(.fixed(width: 63, height: 63))
|
||||||
.background(.black)
|
.background(.black)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -448,6 +448,9 @@ struct MigrateToDevice: View {
|
|||||||
case .rcvFileError:
|
case .rcvFileError:
|
||||||
alert = .error(title: "Download failed", error: "File was deleted or link is invalid")
|
alert = .error(title: "Download failed", error: "File was deleted or link is invalid")
|
||||||
migrationState = .downloadFailed(totalBytes: totalBytes, link: link, archivePath: archivePath)
|
migrationState = .downloadFailed(totalBytes: totalBytes, link: link, archivePath: archivePath)
|
||||||
|
case .chatError(_, .error(.noRcvFileUser)):
|
||||||
|
alert = .error(title: "Download failed", error: "File was deleted or link is invalid")
|
||||||
|
migrationState = .downloadFailed(totalBytes: totalBytes, link: link, archivePath: archivePath)
|
||||||
default:
|
default:
|
||||||
logger.debug("unsupported event: \(msg.responseType)")
|
logger.debug("unsupported event: \(msg.responseType)")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,9 +70,7 @@ struct AddGroupView: View {
|
|||||||
|
|
||||||
ZStack(alignment: .center) {
|
ZStack(alignment: .center) {
|
||||||
ZStack(alignment: .topTrailing) {
|
ZStack(alignment: .topTrailing) {
|
||||||
ProfileImage(imageStr: profile.image, color: Color(uiColor: .secondarySystemGroupedBackground))
|
ProfileImage(imageStr: profile.image, size: 128, color: Color(uiColor: .secondarySystemGroupedBackground))
|
||||||
.aspectRatio(1, contentMode: .fit)
|
|
||||||
.frame(maxWidth: 128, maxHeight: 128)
|
|
||||||
if profile.image != nil {
|
if profile.image != nil {
|
||||||
Button {
|
Button {
|
||||||
profile.image = nil
|
profile.image = nil
|
||||||
|
|||||||
@@ -375,7 +375,59 @@ private let versionDescriptions: [VersionDescription] = [
|
|||||||
description: "Thanks to the users – [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!"
|
description: "Thanks to the users – [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!"
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
),
|
||||||
|
VersionDescription(
|
||||||
|
version: "v5.7",
|
||||||
|
post: URL(string: "https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html"),
|
||||||
|
features: [
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "key",
|
||||||
|
title: "Quantum resistant encryption",
|
||||||
|
description: "Will be enabled in direct chats!"
|
||||||
|
),
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "arrowshape.turn.up.forward",
|
||||||
|
title: "Forward and save messages",
|
||||||
|
description: "Message source remains private."
|
||||||
|
),
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "music.note",
|
||||||
|
title: "In-call sounds",
|
||||||
|
description: "When connecting audio and video calls."
|
||||||
|
),
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "person.crop.square",
|
||||||
|
title: "Shape profile images",
|
||||||
|
description: "Square, circle, or anything in between."
|
||||||
|
),
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "antenna.radiowaves.left.and.right",
|
||||||
|
title: "Network management",
|
||||||
|
description: "More reliable network connection."
|
||||||
|
)
|
||||||
|
]
|
||||||
|
),
|
||||||
|
VersionDescription(
|
||||||
|
version: "v5.8",
|
||||||
|
post: URL(string: "https://simplex.chat/blog/20240604-simplex-chat-v5.8-private-message-routing-chat-themes.html"),
|
||||||
|
features: [
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "arrow.forward",
|
||||||
|
title: "Private message routing 🚀",
|
||||||
|
description: "Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings."
|
||||||
|
),
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "network.badge.shield.half.filled",
|
||||||
|
title: "Safely receive files",
|
||||||
|
description: "Confirm files from unknown servers."
|
||||||
|
),
|
||||||
|
FeatureDescription(
|
||||||
|
icon: "battery.50",
|
||||||
|
title: "Improved message delivery",
|
||||||
|
description: "With reduced battery usage."
|
||||||
|
)
|
||||||
|
]
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
private let lastVersion = versionDescriptions.last!.version
|
private let lastVersion = versionDescriptions.last!.version
|
||||||
|
|||||||
@@ -51,9 +51,10 @@ struct AdvancedNetworkSettings: View {
|
|||||||
}
|
}
|
||||||
.disabled(currentNetCfg == NetCfg.proxyDefaults)
|
.disabled(currentNetCfg == NetCfg.proxyDefaults)
|
||||||
|
|
||||||
timeoutSettingPicker("TCP connection timeout", selection: $netCfg.tcpConnectTimeout, values: [7_500000, 10_000000, 15_000000, 20_000000, 30_000000, 45_000000], label: secondsLabel)
|
timeoutSettingPicker("TCP connection timeout", selection: $netCfg.tcpConnectTimeout, values: [10_000000, 15_000000, 20_000000, 30_000000, 45_000000, 60_000000, 90_000000], label: secondsLabel)
|
||||||
timeoutSettingPicker("Protocol timeout", selection: $netCfg.tcpTimeout, values: [5_000000, 7_000000, 10_000000, 15_000000, 20_000000, 30_000000], label: secondsLabel)
|
timeoutSettingPicker("Protocol timeout", selection: $netCfg.tcpTimeout, values: [5_000000, 7_000000, 10_000000, 15_000000, 20_000000, 30_000000], label: secondsLabel)
|
||||||
timeoutSettingPicker("Protocol timeout per KB", selection: $netCfg.tcpTimeoutPerKb, values: [15_000, 30_000, 45_000, 60_000, 90_000, 120_000], label: secondsLabel)
|
timeoutSettingPicker("Protocol timeout per KB", selection: $netCfg.tcpTimeoutPerKb, values: [2_500, 5_000, 10_000, 15_000, 20_000, 30_000], label: secondsLabel)
|
||||||
|
// intSettingPicker("Receiving concurrency", selection: $netCfg.rcvConcurrency, values: [1, 2, 4, 8, 12, 16, 24], label: "")
|
||||||
timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000], label: secondsLabel)
|
timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000], label: secondsLabel)
|
||||||
intSettingPicker("PING count", selection: $netCfg.smpPingCount, values: [1, 2, 3, 5, 8], label: "")
|
intSettingPicker("PING count", selection: $netCfg.smpPingCount, values: [1, 2, 3, 5, 8], label: "")
|
||||||
Toggle("Enable TCP keep-alive", isOn: $enableKeepAlive)
|
Toggle("Enable TCP keep-alive", isOn: $enableKeepAlive)
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ extension AppSettings {
|
|||||||
setNetCfg(val)
|
setNetCfg(val)
|
||||||
}
|
}
|
||||||
if let val = privacyEncryptLocalFiles { privacyEncryptLocalFilesGroupDefault.set(val) }
|
if let val = privacyEncryptLocalFiles { privacyEncryptLocalFilesGroupDefault.set(val) }
|
||||||
|
if let val = privacyAskToApproveRelays { privacyAskToApproveRelaysGroupDefault.set(val) }
|
||||||
if let val = privacyAcceptImages {
|
if let val = privacyAcceptImages {
|
||||||
privacyAcceptImagesGroupDefault.set(val)
|
privacyAcceptImagesGroupDefault.set(val)
|
||||||
def.setValue(val, forKey: DEFAULT_PRIVACY_ACCEPT_IMAGES)
|
def.setValue(val, forKey: DEFAULT_PRIVACY_ACCEPT_IMAGES)
|
||||||
@@ -50,6 +51,7 @@ extension AppSettings {
|
|||||||
var c = AppSettings.defaults
|
var c = AppSettings.defaults
|
||||||
c.networkConfig = getNetCfg()
|
c.networkConfig = getNetCfg()
|
||||||
c.privacyEncryptLocalFiles = privacyEncryptLocalFilesGroupDefault.get()
|
c.privacyEncryptLocalFiles = privacyEncryptLocalFilesGroupDefault.get()
|
||||||
|
c.privacyAskToApproveRelays = privacyAskToApproveRelaysGroupDefault.get()
|
||||||
c.privacyAcceptImages = privacyAcceptImagesGroupDefault.get()
|
c.privacyAcceptImages = privacyAcceptImagesGroupDefault.get()
|
||||||
c.privacyLinkPreviews = def.bool(forKey: DEFAULT_PRIVACY_LINK_PREVIEWS)
|
c.privacyLinkPreviews = def.bool(forKey: DEFAULT_PRIVACY_LINK_PREVIEWS)
|
||||||
c.privacyShowChatPreviews = def.bool(forKey: DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS)
|
c.privacyShowChatPreviews = def.bool(forKey: DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS)
|
||||||
|
|||||||
@@ -17,11 +17,14 @@ let interfaceStyleNames: [LocalizedStringKey] = ["System", "Light", "Dark"]
|
|||||||
let appSettingsURL = URL(string: UIApplication.openSettingsURLString)!
|
let appSettingsURL = URL(string: UIApplication.openSettingsURLString)!
|
||||||
|
|
||||||
struct AppearanceSettings: View {
|
struct AppearanceSettings: View {
|
||||||
|
@EnvironmentObject var m: ChatModel
|
||||||
|
@Environment(\.colorScheme) var colorScheme
|
||||||
@EnvironmentObject var sceneDelegate: SceneDelegate
|
@EnvironmentObject var sceneDelegate: SceneDelegate
|
||||||
@State private var iconLightTapped = false
|
@State private var iconLightTapped = false
|
||||||
@State private var iconDarkTapped = false
|
@State private var iconDarkTapped = false
|
||||||
@State private var userInterfaceStyle = getUserInterfaceStyleDefault()
|
@State private var userInterfaceStyle = getUserInterfaceStyleDefault()
|
||||||
@State private var uiTintColor = getUIAccentColorDefault()
|
@State private var uiTintColor = getUIAccentColorDefault()
|
||||||
|
@AppStorage(DEFAULT_PROFILE_IMAGE_CORNER_RADIUS) private var profileImageCornerRadius = defaultProfileImageCorner
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack{
|
VStack{
|
||||||
@@ -44,6 +47,23 @@ struct AppearanceSettings: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Section("Profile images") {
|
||||||
|
HStack(spacing: 16) {
|
||||||
|
if let img = m.currentUser?.image, img != "" {
|
||||||
|
ProfileImage(imageStr: img, size: 60)
|
||||||
|
} else {
|
||||||
|
clipProfileImage(Image(colorScheme == .light ? "icon-dark" : "icon-light"), size: 60, radius: profileImageCornerRadius)
|
||||||
|
}
|
||||||
|
|
||||||
|
Slider(
|
||||||
|
value: $profileImageCornerRadius,
|
||||||
|
in: 0...50,
|
||||||
|
step: 2.5
|
||||||
|
)
|
||||||
|
}
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
}
|
||||||
|
|
||||||
Section {
|
Section {
|
||||||
Picker("Theme", selection: $userInterfaceStyle) {
|
Picker("Theme", selection: $userInterfaceStyle) {
|
||||||
ForEach(interfaceStyles, id: \.self) { style in
|
ForEach(interfaceStyles, id: \.self) { style in
|
||||||
@@ -93,7 +113,7 @@ struct AppearanceSettings: View {
|
|||||||
}
|
}
|
||||||
._onButtonGesture { tapped.wrappedValue = $0 } perform: {}
|
._onButtonGesture { tapped.wrappedValue = $0 } perform: {}
|
||||||
.overlay(tapped.wrappedValue ? Color.secondary : Color.clear)
|
.overlay(tapped.wrappedValue ? Color.secondary : Color.clear)
|
||||||
.cornerRadius(20)
|
.cornerRadius(13.5)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import SimpleXChat
|
|||||||
struct DeveloperView: View {
|
struct DeveloperView: View {
|
||||||
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
|
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
|
||||||
@AppStorage(GROUP_DEFAULT_CONFIRM_DB_UPGRADES, store: groupDefaults) private var confirmDatabaseUpgrades = false
|
@AppStorage(GROUP_DEFAULT_CONFIRM_DB_UPGRADES, store: groupDefaults) private var confirmDatabaseUpgrades = false
|
||||||
@AppStorage(GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED, store: groupDefaults) private var pqExperimentalEnabled = false
|
|
||||||
@Environment(\.colorScheme) var colorScheme
|
@Environment(\.colorScheme) var colorScheme
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -43,33 +42,9 @@ struct DeveloperView: View {
|
|||||||
} footer: {
|
} footer: {
|
||||||
(developerTools ? Text("Show:") : Text("Hide:")) + Text(" ") + Text("Database IDs and Transport isolation option.")
|
(developerTools ? Text("Show:") : Text("Hide:")) + Text(" ") + Text("Database IDs and Transport isolation option.")
|
||||||
}
|
}
|
||||||
|
|
||||||
if developerTools {
|
|
||||||
Section {
|
|
||||||
settingsRow("key") {
|
|
||||||
Toggle("Post-quantum E2EE", isOn: $pqExperimentalEnabled)
|
|
||||||
.onChange(of: pqExperimentalEnabled) {
|
|
||||||
setPQExperimentalEnabled($0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} header: {
|
|
||||||
Text(String("Experimental"))
|
|
||||||
} footer: {
|
|
||||||
Text(String("In this version applies only to new contacts."))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func setPQExperimentalEnabled(_ enable: Bool) {
|
|
||||||
do {
|
|
||||||
try apiSetPQEncryption(enable)
|
|
||||||
} catch let error {
|
|
||||||
let err = responseError(error)
|
|
||||||
logger.error("apiSetPQEncryption \(err)")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct DeveloperView_Previews: PreviewProvider {
|
struct DeveloperView_Previews: PreviewProvider {
|
||||||
|
|||||||
@@ -12,24 +12,32 @@ import SimpleXChat
|
|||||||
private enum NetworkAlert: Identifiable {
|
private enum NetworkAlert: Identifiable {
|
||||||
case updateOnionHosts(hosts: OnionHosts)
|
case updateOnionHosts(hosts: OnionHosts)
|
||||||
case updateSessionMode(mode: TransportSessionMode)
|
case updateSessionMode(mode: TransportSessionMode)
|
||||||
|
case updateSMPProxyMode(proxyMode: SMPProxyMode)
|
||||||
|
case updateSMPProxyFallback(proxyFallback: SMPProxyFallback)
|
||||||
case error(err: String)
|
case error(err: String)
|
||||||
|
|
||||||
var id: String {
|
var id: String {
|
||||||
switch self {
|
switch self {
|
||||||
case let .updateOnionHosts(hosts): return "updateOnionHosts \(hosts)"
|
case let .updateOnionHosts(hosts): return "updateOnionHosts \(hosts)"
|
||||||
case let .updateSessionMode(mode): return "updateSessionMode \(mode)"
|
case let .updateSessionMode(mode): return "updateSessionMode \(mode)"
|
||||||
|
case let .updateSMPProxyMode(proxyMode): return "updateSMPProxyMode \(proxyMode)"
|
||||||
|
case let .updateSMPProxyFallback(proxyFallback): return "updateSMPProxyFallback \(proxyFallback)"
|
||||||
case let .error(err): return "error \(err)"
|
case let .error(err): return "error \(err)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct NetworkAndServers: View {
|
struct NetworkAndServers: View {
|
||||||
|
@EnvironmentObject var m: ChatModel
|
||||||
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
|
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
|
||||||
|
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = true
|
||||||
@State private var cfgLoaded = false
|
@State private var cfgLoaded = false
|
||||||
@State private var currentNetCfg = NetCfg.defaults
|
@State private var currentNetCfg = NetCfg.defaults
|
||||||
@State private var netCfg = NetCfg.defaults
|
@State private var netCfg = NetCfg.defaults
|
||||||
@State private var onionHosts: OnionHosts = .no
|
@State private var onionHosts: OnionHosts = .no
|
||||||
@State private var sessionMode: TransportSessionMode = .user
|
@State private var sessionMode: TransportSessionMode = .user
|
||||||
|
@State private var proxyMode: SMPProxyMode = .never
|
||||||
|
@State private var proxyFallback: SMPProxyFallback = .allow
|
||||||
@State private var alert: NetworkAlert?
|
@State private var alert: NetworkAlert?
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -74,6 +82,30 @@ struct NetworkAndServers: View {
|
|||||||
Text("Using .onion hosts requires compatible VPN provider.")
|
Text("Using .onion hosts requires compatible VPN provider.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
Picker("Private routing", selection: $proxyMode) {
|
||||||
|
ForEach(SMPProxyMode.values, id: \.self) { Text($0.text) }
|
||||||
|
}
|
||||||
|
.frame(height: 36)
|
||||||
|
|
||||||
|
Picker("Allow downgrade", selection: $proxyFallback) {
|
||||||
|
ForEach(SMPProxyFallback.values, id: \.self) { Text($0.text) }
|
||||||
|
}
|
||||||
|
.disabled(proxyMode == .never)
|
||||||
|
.frame(height: 36)
|
||||||
|
|
||||||
|
Toggle("Show message status", isOn: $showSentViaProxy)
|
||||||
|
} header: {
|
||||||
|
Text("Private message routing")
|
||||||
|
} footer: {
|
||||||
|
VStack(alignment: .leading) {
|
||||||
|
Text("To protect your IP address, private routing uses your SMP servers to deliver messages.")
|
||||||
|
if showSentViaProxy {
|
||||||
|
Text("Show → on messages sent via private routing.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Section("Calls") {
|
Section("Calls") {
|
||||||
NavigationLink {
|
NavigationLink {
|
||||||
RTCServers()
|
RTCServers()
|
||||||
@@ -82,6 +114,14 @@ struct NetworkAndServers: View {
|
|||||||
Text("WebRTC ICE servers")
|
Text("WebRTC ICE servers")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Section("Network connection") {
|
||||||
|
HStack {
|
||||||
|
Text(m.networkInfo.networkType.text)
|
||||||
|
Spacer()
|
||||||
|
Image(systemName: "circle.fill").foregroundColor(m.networkInfo.online ? .green : .red)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onAppear {
|
.onAppear {
|
||||||
@@ -90,14 +130,24 @@ struct NetworkAndServers: View {
|
|||||||
currentNetCfg = getNetCfg()
|
currentNetCfg = getNetCfg()
|
||||||
resetNetCfgView()
|
resetNetCfgView()
|
||||||
}
|
}
|
||||||
.onChange(of: onionHosts) { _ in
|
.onChange(of: onionHosts) { hosts in
|
||||||
if onionHosts != OnionHosts(netCfg: currentNetCfg) {
|
if hosts != OnionHosts(netCfg: currentNetCfg) {
|
||||||
alert = .updateOnionHosts(hosts: onionHosts)
|
alert = .updateOnionHosts(hosts: hosts)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onChange(of: sessionMode) { _ in
|
.onChange(of: sessionMode) { mode in
|
||||||
if sessionMode != netCfg.sessionMode {
|
if mode != netCfg.sessionMode {
|
||||||
alert = .updateSessionMode(mode: sessionMode)
|
alert = .updateSessionMode(mode: mode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.onChange(of: proxyMode) { mode in
|
||||||
|
if mode != netCfg.smpProxyMode {
|
||||||
|
alert = .updateSMPProxyMode(proxyMode: mode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.onChange(of: proxyFallback) { fallbackMode in
|
||||||
|
if fallbackMode != netCfg.smpProxyFallback {
|
||||||
|
alert = .updateSMPProxyFallback(proxyFallback: fallbackMode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.alert(item: $alert) { a in
|
.alert(item: $alert) { a in
|
||||||
@@ -128,6 +178,30 @@ struct NetworkAndServers: View {
|
|||||||
resetNetCfgView()
|
resetNetCfgView()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
case let .updateSMPProxyMode(proxyMode):
|
||||||
|
return Alert(
|
||||||
|
title: Text("Message routing mode"),
|
||||||
|
message: Text(proxyModeInfo(proxyMode)) + Text("\n") + Text("Updating this setting will re-connect the client to all servers."),
|
||||||
|
primaryButton: .default(Text("Ok")) {
|
||||||
|
netCfg.smpProxyMode = proxyMode
|
||||||
|
saveNetCfg()
|
||||||
|
},
|
||||||
|
secondaryButton: .cancel() {
|
||||||
|
resetNetCfgView()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
case let .updateSMPProxyFallback(proxyFallback):
|
||||||
|
return Alert(
|
||||||
|
title: Text("Message routing fallback"),
|
||||||
|
message: Text(proxyFallbackInfo(proxyFallback)) + Text("\n") + Text("Updating this setting will re-connect the client to all servers."),
|
||||||
|
primaryButton: .default(Text("Ok")) {
|
||||||
|
netCfg.smpProxyFallback = proxyFallback
|
||||||
|
saveNetCfg()
|
||||||
|
},
|
||||||
|
secondaryButton: .cancel() {
|
||||||
|
resetNetCfgView()
|
||||||
|
}
|
||||||
|
)
|
||||||
case let .error(err):
|
case let .error(err):
|
||||||
return Alert(
|
return Alert(
|
||||||
title: Text("Error updating settings"),
|
title: Text("Error updating settings"),
|
||||||
@@ -157,6 +231,8 @@ struct NetworkAndServers: View {
|
|||||||
netCfg = currentNetCfg
|
netCfg = currentNetCfg
|
||||||
onionHosts = OnionHosts(netCfg: netCfg)
|
onionHosts = OnionHosts(netCfg: netCfg)
|
||||||
sessionMode = netCfg.sessionMode
|
sessionMode = netCfg.sessionMode
|
||||||
|
proxyMode = netCfg.smpProxyMode
|
||||||
|
proxyFallback = netCfg.smpProxyFallback
|
||||||
}
|
}
|
||||||
|
|
||||||
private func onionHostsInfo(_ hosts: OnionHosts) -> LocalizedStringKey {
|
private func onionHostsInfo(_ hosts: OnionHosts) -> LocalizedStringKey {
|
||||||
@@ -173,6 +249,23 @@ struct NetworkAndServers: View {
|
|||||||
case .entity: return "A separate TCP connection will be used **for each contact and group member**.\n**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail."
|
case .entity: return "A separate TCP connection will be used **for each contact and group member**.\n**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func proxyModeInfo(_ mode: SMPProxyMode) -> LocalizedStringKey {
|
||||||
|
switch mode {
|
||||||
|
case .always: return "Always use private routing."
|
||||||
|
case .unknown: return "Use private routing with unknown servers."
|
||||||
|
case .unprotected: return "Use private routing with unknown servers when IP address is not protected."
|
||||||
|
case .never: return "Do NOT use private routing."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func proxyFallbackInfo(_ proxyFallback: SMPProxyFallback) -> LocalizedStringKey {
|
||||||
|
switch proxyFallback {
|
||||||
|
case .allow: return "Send messages directly when your or destination server does not support private routing."
|
||||||
|
case .allowProtected: return "Send messages directly when IP address is protected and your or destination server does not support private routing."
|
||||||
|
case .prohibit: return "Do NOT send messages directly, even if your or destination server does not support private routing."
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct NetworkServersView_Previews: PreviewProvider {
|
struct NetworkServersView_Previews: PreviewProvider {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ struct PrivacySettings: View {
|
|||||||
@AppStorage(DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS) private var showChatPreviews = true
|
@AppStorage(DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS) private var showChatPreviews = true
|
||||||
@AppStorage(DEFAULT_PRIVACY_SAVE_LAST_DRAFT) private var saveLastDraft = true
|
@AppStorage(DEFAULT_PRIVACY_SAVE_LAST_DRAFT) private var saveLastDraft = true
|
||||||
@AppStorage(GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES, store: groupDefaults) private var encryptLocalFiles = true
|
@AppStorage(GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES, store: groupDefaults) private var encryptLocalFiles = true
|
||||||
|
@AppStorage(GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS, store: groupDefaults) private var askToApproveRelays = true
|
||||||
@State private var simplexLinkMode = privacySimplexLinkModeDefault.get()
|
@State private var simplexLinkMode = privacySimplexLinkModeDefault.get()
|
||||||
@AppStorage(DEFAULT_PRIVACY_PROTECT_SCREEN) private var protectScreen = false
|
@AppStorage(DEFAULT_PRIVACY_PROTECT_SCREEN) private var protectScreen = false
|
||||||
@AppStorage(DEFAULT_PERFORM_LA) private var prefPerformLA = false
|
@AppStorage(DEFAULT_PERFORM_LA) private var prefPerformLA = false
|
||||||
@@ -64,18 +65,6 @@ struct PrivacySettings: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Section {
|
Section {
|
||||||
settingsRow("lock.doc") {
|
|
||||||
Toggle("Encrypt local files", isOn: $encryptLocalFiles)
|
|
||||||
.onChange(of: encryptLocalFiles) {
|
|
||||||
setEncryptLocalFiles($0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
settingsRow("photo") {
|
|
||||||
Toggle("Auto-accept images", isOn: $autoAcceptImages)
|
|
||||||
.onChange(of: autoAcceptImages) {
|
|
||||||
privacyAcceptImagesGroupDefault.set($0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
settingsRow("network") {
|
settingsRow("network") {
|
||||||
Toggle("Send link previews", isOn: $useLinkPreviews)
|
Toggle("Send link previews", isOn: $useLinkPreviews)
|
||||||
}
|
}
|
||||||
@@ -108,6 +97,32 @@ struct PrivacySettings: View {
|
|||||||
Text("Chats")
|
Text("Chats")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
settingsRow("lock.doc") {
|
||||||
|
Toggle("Encrypt local files", isOn: $encryptLocalFiles)
|
||||||
|
.onChange(of: encryptLocalFiles) {
|
||||||
|
setEncryptLocalFiles($0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
settingsRow("photo") {
|
||||||
|
Toggle("Auto-accept images", isOn: $autoAcceptImages)
|
||||||
|
.onChange(of: autoAcceptImages) {
|
||||||
|
privacyAcceptImagesGroupDefault.set($0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
settingsRow("network.badge.shield.half.filled") {
|
||||||
|
Toggle("Protect IP address", isOn: $askToApproveRelays)
|
||||||
|
}
|
||||||
|
} header: {
|
||||||
|
Text("Files")
|
||||||
|
} footer: {
|
||||||
|
if askToApproveRelays {
|
||||||
|
Text("The app will ask to confirm downloads from unknown file servers (except .onion).")
|
||||||
|
} else {
|
||||||
|
Text("Without Tor or VPN, your IP address will be visible to file servers.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Section {
|
Section {
|
||||||
settingsRow("person") {
|
settingsRow("person") {
|
||||||
Toggle("Contacts", isOn: $contactReceipts)
|
Toggle("Contacts", isOn: $contactReceipts)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ let DEFAULT_ACCENT_COLOR_RED = "accentColorRed"
|
|||||||
let DEFAULT_ACCENT_COLOR_GREEN = "accentColorGreen"
|
let DEFAULT_ACCENT_COLOR_GREEN = "accentColorGreen"
|
||||||
let DEFAULT_ACCENT_COLOR_BLUE = "accentColorBlue"
|
let DEFAULT_ACCENT_COLOR_BLUE = "accentColorBlue"
|
||||||
let DEFAULT_USER_INTERFACE_STYLE = "userInterfaceStyle"
|
let DEFAULT_USER_INTERFACE_STYLE = "userInterfaceStyle"
|
||||||
|
let DEFAULT_PROFILE_IMAGE_CORNER_RADIUS = "profileImageCornerRadius"
|
||||||
let DEFAULT_CONNECT_VIA_LINK_TAB = "connectViaLinkTab"
|
let DEFAULT_CONNECT_VIA_LINK_TAB = "connectViaLinkTab"
|
||||||
let DEFAULT_LIVE_MESSAGE_ALERT_SHOWN = "liveMessageAlertShown"
|
let DEFAULT_LIVE_MESSAGE_ALERT_SHOWN = "liveMessageAlertShown"
|
||||||
let DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE = "showHiddenProfilesNotice"
|
let DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE = "showHiddenProfilesNotice"
|
||||||
@@ -59,6 +60,7 @@ let DEFAULT_DEVICE_NAME_FOR_REMOTE_ACCESS = "deviceNameForRemoteAccess"
|
|||||||
let DEFAULT_CONFIRM_REMOTE_SESSIONS = "confirmRemoteSessions"
|
let DEFAULT_CONFIRM_REMOTE_SESSIONS = "confirmRemoteSessions"
|
||||||
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST = "connectRemoteViaMulticast"
|
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST = "connectRemoteViaMulticast"
|
||||||
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO = "connectRemoteViaMulticastAuto"
|
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO = "connectRemoteViaMulticastAuto"
|
||||||
|
let DEFAULT_SHOW_SENT_VIA_RPOXY = "showSentViaProxy"
|
||||||
|
|
||||||
let ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN = "androidCallOnLockScreen"
|
let ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN = "androidCallOnLockScreen"
|
||||||
|
|
||||||
@@ -87,6 +89,7 @@ let appDefaults: [String: Any] = [
|
|||||||
DEFAULT_ACCENT_COLOR_GREEN: 0.533,
|
DEFAULT_ACCENT_COLOR_GREEN: 0.533,
|
||||||
DEFAULT_ACCENT_COLOR_BLUE: 1.000,
|
DEFAULT_ACCENT_COLOR_BLUE: 1.000,
|
||||||
DEFAULT_USER_INTERFACE_STYLE: 0,
|
DEFAULT_USER_INTERFACE_STYLE: 0,
|
||||||
|
DEFAULT_PROFILE_IMAGE_CORNER_RADIUS: defaultProfileImageCorner,
|
||||||
DEFAULT_CONNECT_VIA_LINK_TAB: ConnectViaLinkTab.scan.rawValue,
|
DEFAULT_CONNECT_VIA_LINK_TAB: ConnectViaLinkTab.scan.rawValue,
|
||||||
DEFAULT_LIVE_MESSAGE_ALERT_SHOWN: false,
|
DEFAULT_LIVE_MESSAGE_ALERT_SHOWN: false,
|
||||||
DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE: true,
|
DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE: true,
|
||||||
@@ -97,6 +100,7 @@ let appDefaults: [String: Any] = [
|
|||||||
DEFAULT_CONFIRM_REMOTE_SESSIONS: false,
|
DEFAULT_CONFIRM_REMOTE_SESSIONS: false,
|
||||||
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST: true,
|
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST: true,
|
||||||
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO: true,
|
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO: true,
|
||||||
|
DEFAULT_SHOW_SENT_VIA_RPOXY: false,
|
||||||
ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN: AppSettingsLockScreenCalls.show.rawValue
|
ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN: AppSettingsLockScreenCalls.show.rawValue
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -425,8 +429,7 @@ struct ProfilePreview: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
HStack {
|
HStack {
|
||||||
ProfileImage(imageStr: profileOf.image, color: color)
|
ProfileImage(imageStr: profileOf.image, size: 44, color: color)
|
||||||
.frame(width: 44, height: 44)
|
|
||||||
.padding(.trailing, 6)
|
.padding(.trailing, 6)
|
||||||
.padding(.vertical, 6)
|
.padding(.vertical, 6)
|
||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
|
|||||||
@@ -188,9 +188,7 @@ struct UserProfile: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func profileImageView(_ imageStr: String?) -> some View {
|
func profileImageView(_ imageStr: String?) -> some View {
|
||||||
ProfileImage(imageStr: imageStr)
|
ProfileImage(imageStr: imageStr, size: 192)
|
||||||
.aspectRatio(1, contentMode: .fit)
|
|
||||||
.frame(maxWidth: 192, maxHeight: 192)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func editImageButton(action: @escaping () -> Void) -> some View {
|
func editImageButton(action: @escaping () -> Void) -> some View {
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ struct UserProfilesView: View {
|
|||||||
deleteModeButton("Profile and server connections", true)
|
deleteModeButton("Profile and server connections", true)
|
||||||
deleteModeButton("Local profile data only", false)
|
deleteModeButton("Local profile data only", false)
|
||||||
}
|
}
|
||||||
.sheet(item: $selectedUser) { user in
|
.appSheet(item: $selectedUser) { user in
|
||||||
HiddenProfileView(user: user, profileHidden: $profileHidden)
|
HiddenProfileView(user: user, profileHidden: $profileHidden)
|
||||||
}
|
}
|
||||||
.onChange(of: profileHidden) { _ in
|
.onChange(of: profileHidden) { _ in
|
||||||
@@ -131,7 +131,7 @@ struct UserProfilesView: View {
|
|||||||
withAnimation { profileHidden = false }
|
withAnimation { profileHidden = false }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.sheet(item: $profileAction) { action in
|
.appSheet(item: $profileAction) { action in
|
||||||
profileActionView(action)
|
profileActionView(action)
|
||||||
}
|
}
|
||||||
.alert(item: $alert) { alert in
|
.alert(item: $alert) { alert in
|
||||||
@@ -309,8 +309,7 @@ struct UserProfilesView: View {
|
|||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
HStack {
|
HStack {
|
||||||
ProfileImage(imageStr: user.image, color: Color(uiColor: .tertiarySystemFill))
|
ProfileImage(imageStr: user.image, size: 44, color: Color(uiColor: .tertiarySystemFill))
|
||||||
.frame(width: 44, height: 44)
|
|
||||||
.padding(.vertical, 4)
|
.padding(.vertical, 4)
|
||||||
.padding(.trailing, 12)
|
.padding(.trailing, 12)
|
||||||
Text(user.chatViewName)
|
Text(user.chatViewName)
|
||||||
|
|||||||
@@ -109,6 +109,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ downloaded" xml:space="preserve">
|
<trans-unit id="%@ downloaded" xml:space="preserve">
|
||||||
<source>%@ downloaded</source>
|
<source>%@ downloaded</source>
|
||||||
|
<target>%@ изтеглено</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ is connected!" xml:space="preserve">
|
<trans-unit id="%@ is connected!" xml:space="preserve">
|
||||||
@@ -133,6 +134,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ uploaded" xml:space="preserve">
|
<trans-unit id="%@ uploaded" xml:space="preserve">
|
||||||
<source>%@ uploaded</source>
|
<source>%@ uploaded</source>
|
||||||
|
<target>%@ качено</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ wants to connect!" xml:space="preserve">
|
<trans-unit id="%@ wants to connect!" xml:space="preserve">
|
||||||
@@ -352,6 +354,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
|
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
|
||||||
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
|
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
|
||||||
|
<target>**Моля, обърнете внимание**: използването на една и съща база данни на две устройства ще наруши декриптирането на съобщенията от вашите връзки като защита на сигурността.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
|
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
|
||||||
@@ -371,6 +374,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
|
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
|
||||||
<source>**Warning**: the archive will be removed.</source>
|
<source>**Warning**: the archive will be removed.</source>
|
||||||
|
<target>**Внимание**: архивът ще бъде изтрит.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve">
|
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve">
|
||||||
@@ -709,6 +713,10 @@
|
|||||||
<target>Позволи изчезващи съобщения само ако вашият контакт ги разрешава.</target>
|
<target>Позволи изчезващи съобщения само ако вашият контакт ги разрешава.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Позволи необратимо изтриване на съобщение само ако вашият контакт го рарешава. (24 часа)</target>
|
<target>Позволи необратимо изтриване на съобщение само ако вашият контакт го рарешава. (24 часа)</target>
|
||||||
@@ -739,6 +747,11 @@
|
|||||||
<target>Позволи необратимо изтриване на изпратените съобщения. (24 часа)</target>
|
<target>Позволи необратимо изтриване на изпратените съобщения. (24 часа)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Разрешаване на изпращане на SimpleX линкове.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Позволи изпращане на файлове и медия.</target>
|
<target>Позволи изпращане на файлове и медия.</target>
|
||||||
@@ -799,6 +812,10 @@
|
|||||||
<target>Вече се присъединихте към групата!</target>
|
<target>Вече се присъединихте към групата!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Винаги използвай реле</target>
|
<target>Винаги използвай реле</target>
|
||||||
@@ -1079,6 +1096,15 @@
|
|||||||
<target>Файлът не може да бъде получен</target>
|
<target>Файлът не може да бъде получен</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Мобилна мрежа</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Промени</target>
|
<target>Промени</target>
|
||||||
@@ -1197,6 +1223,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve">
|
<trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve">
|
||||||
<source>Choose _Migrate from another device_ on the new device and scan QR code.</source>
|
<source>Choose _Migrate from another device_ on the new device and scan QR code.</source>
|
||||||
|
<target>Изберете _Мигриране от друго устройство_ на новото устройство и сканирайте QR кода.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Choose file" xml:space="preserve">
|
<trans-unit id="Choose file" xml:space="preserve">
|
||||||
@@ -1269,6 +1296,10 @@
|
|||||||
<target>Потвърди актуализаациите на базата данни</target>
|
<target>Потвърди актуализаациите на базата данни</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Потвърди мрежовите настройки</target>
|
<target>Потвърди мрежовите настройки</target>
|
||||||
@@ -1686,6 +1717,10 @@ This is your own one-time link!</source>
|
|||||||
<target>Базата данни ще бъде мигрирана, когато приложението се рестартира</target>
|
<target>Базата данни ще бъде мигрирана, когато приложението се рестартира</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Децентрализиран</target>
|
<target>Децентрализиран</target>
|
||||||
@@ -1933,6 +1968,10 @@ This cannot be undone!</source>
|
|||||||
<target>Настолни устройства</target>
|
<target>Настолни устройства</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Разработване</target>
|
<target>Разработване</target>
|
||||||
@@ -2038,11 +2077,19 @@ This cannot be undone!</source>
|
|||||||
<target>Откриване през локалната мрежа</target>
|
<target>Откриване през локалната мрежа</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>НЕ използвайте SimpleX за спешни повиквания.</target>
|
<target>НЕ използвайте SimpleX за спешни повиквания.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Отложи</target>
|
<target>Отложи</target>
|
||||||
@@ -2073,6 +2120,11 @@ This cannot be undone!</source>
|
|||||||
<target>Понижи версията и отвори чата</target>
|
<target>Понижи версията и отвори чата</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Изтегли</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Неуспешно изтегляне</target>
|
<target>Неуспешно изтегляне</target>
|
||||||
@@ -2183,6 +2235,11 @@ This cannot be undone!</source>
|
|||||||
<target>Активирай kод за достъп за самоунищожение</target>
|
<target>Активирай kод за достъп за самоунищожение</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Активирано за</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Криптирай</target>
|
<target>Криптирай</target>
|
||||||
@@ -2333,11 +2390,6 @@ This cannot be undone!</source>
|
|||||||
<target>Грешка при добавяне на член(ове)</target>
|
<target>Грешка при добавяне на член(ове)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Грешка при разрешаване на PQ криптиране за контакт</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Грешка при промяна на адреса</target>
|
<target>Грешка при промяна на адреса</target>
|
||||||
@@ -2601,7 +2653,7 @@ This cannot be undone!</source>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Грешка: %@</target>
|
<target>Грешка: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2693,6 +2745,10 @@ This cannot be undone!</source>
|
|||||||
<target>Файл: %@</target>
|
<target>Файл: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Файлове и медия</target>
|
<target>Файлове и медия</target>
|
||||||
@@ -2708,6 +2764,11 @@ This cannot be undone!</source>
|
|||||||
<target>Файловете и медията са забранени в тази група.</target>
|
<target>Файловете и медията са забранени в тази група.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Файлове и медия не са разрешени</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Файловете и медията са забранени!</target>
|
<target>Файловете и медията са забранени!</target>
|
||||||
@@ -2773,6 +2834,36 @@ This cannot be undone!</source>
|
|||||||
<target>За конзолата</target>
|
<target>За конзолата</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Препрати</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Препращане и запазване на съобщения</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Препратено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Препратено от</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Намерено настолно устройство</target>
|
<target>Намерено настолно устройство</target>
|
||||||
@@ -2883,6 +2974,11 @@ This cannot be undone!</source>
|
|||||||
<target>Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)</target>
|
<target>Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Членовете на групата могат да изпращат SimpleX линкове.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Членовете на групата могат да изпращат лични съобщения.</target>
|
<target>Членовете на групата могат да изпращат лични съобщения.</target>
|
||||||
@@ -3123,6 +3219,11 @@ This cannot be undone!</source>
|
|||||||
<target>В отговор на</target>
|
<target>В отговор на</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Звуци по време на разговор</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Инкогнито</target>
|
<target>Инкогнито</target>
|
||||||
@@ -3578,11 +3679,19 @@ This is your link for group %@!</source>
|
|||||||
<target>Потвърждениe за доставка на съобщения!</target>
|
<target>Потвърждениe за доставка на съобщения!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Чернова на съобщение</target>
|
<target>Чернова на съобщение</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Реакции на съобщения</target>
|
<target>Реакции на съобщения</target>
|
||||||
@@ -3598,6 +3707,19 @@ This is your link for group %@!</source>
|
|||||||
<target>Реакциите на съобщения са забранени в тази група.</target>
|
<target>Реакциите на съобщения са забранени в тази група.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Източникът на съобщението остава скрит.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Текст на съобщението</target>
|
<target>Текст на съобщението</target>
|
||||||
@@ -3625,10 +3747,12 @@ This is your link for group %@!</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
|
<trans-unit id="Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
|
||||||
<source>Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
|
<source>Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
|
||||||
|
<target>Съобщенията, файловете и разговорите са защитени чрез **криптиране от край до край** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
|
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
|
||||||
<source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
|
<source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
|
||||||
|
<target>Съобщенията, файловете и разговорите са защитени чрез **квантово устойчиво e2e криптиране** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Migrate device" xml:space="preserve">
|
<trans-unit id="Migrate device" xml:space="preserve">
|
||||||
@@ -3711,16 +3835,16 @@ This is your link for group %@!</source>
|
|||||||
<target>Очаквайте скоро още подобрения!</target>
|
<target>Очаквайте скоро още подобрения!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>По-надеждна мрежова връзка.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Най-вероятно тази връзка е изтрита.</target>
|
<target>Най-вероятно тази връзка е изтрита.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Най-вероятно този контакт е изтрил връзката с вас.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Множество профили за чат</target>
|
<target>Множество профили за чат</target>
|
||||||
@@ -3746,6 +3870,20 @@ This is your link for group %@!</source>
|
|||||||
<target>Мрежа и сървъри</target>
|
<target>Мрежа и сървъри</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Мрежова връзка</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Управление на мрежата</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Мрежови настройки</target>
|
<target>Мрежови настройки</target>
|
||||||
@@ -3856,6 +3994,11 @@ This is your link for group %@!</source>
|
|||||||
<target>Няма история</target>
|
<target>Няма история</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Няма мрежова връзка</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Няма разрешение за запис на гласово съобщение</target>
|
<target>Няма разрешение за запис на гласово съобщение</target>
|
||||||
@@ -4070,6 +4213,11 @@ This is your link for group %@!</source>
|
|||||||
<target>Или покажи този код</target>
|
<target>Или покажи този код</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Други</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>PING бройка</target>
|
<target>PING бройка</target>
|
||||||
@@ -4237,11 +4385,6 @@ Error: %@</source>
|
|||||||
<target>Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен</target>
|
<target>Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Постквантово E2EE</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Запазете последната чернова на съобщението с прикачени файлове.</target>
|
<target>Запазете последната чернова на съобщението с прикачени файлове.</target>
|
||||||
@@ -4277,11 +4420,23 @@ Error: %@</source>
|
|||||||
<target>Поверителни имена на файлове</target>
|
<target>Поверителни имена на файлове</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Лични бележки</target>
|
<target>Лични бележки</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Профилни и сървърни връзки</target>
|
<target>Профилни и сървърни връзки</target>
|
||||||
@@ -4292,6 +4447,11 @@ Error: %@</source>
|
|||||||
<target>Профилно изображение</target>
|
<target>Профилно изображение</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Профилни изображения</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Име на профила</target>
|
<target>Име на профила</target>
|
||||||
@@ -4332,6 +4492,11 @@ Error: %@</source>
|
|||||||
<target>Забрани реакциите на съобщенията.</target>
|
<target>Забрани реакциите на съобщенията.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Забранете изпращането на SimpleX линкове.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Забрани изпращането на лични съобщения до членовете.</target>
|
<target>Забрани изпращането на лични съобщения до членовете.</target>
|
||||||
@@ -4352,11 +4517,20 @@ Error: %@</source>
|
|||||||
<target>Забрани изпращането на гласови съобщения.</target>
|
<target>Забрани изпращането на гласови съобщения.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Защити екрана на приложението</target>
|
<target>Защити екрана на приложението</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Защитете чат профилите с парола!</target>
|
<target>Защитете чат профилите с парола!</target>
|
||||||
@@ -4477,6 +4651,11 @@ Error: %@</source>
|
|||||||
<target>Скорошна история и подобрен [bot за директория за групи](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPd jdLW3%23%2F%3Fv%3D1-2% 26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Скорошна история и подобрен [bot за директория за групи](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPd jdLW3%23%2F%3Fv%3D1-2% 26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Получателят(ите) не могат да видят от кого е това съобщение.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Получателите виждат актуализации, докато ги въвеждате.</target>
|
<target>Получателите виждат актуализации, докато ги въвеждате.</target>
|
||||||
@@ -4692,6 +4871,10 @@ Error: %@</source>
|
|||||||
<target>SMP сървъри</target>
|
<target>SMP сървъри</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>По-безопасни групи</target>
|
<target>По-безопасни групи</target>
|
||||||
@@ -4777,11 +4960,21 @@ Error: %@</source>
|
|||||||
<target>Запази съобщението при посрещане?</target>
|
<target>Запази съобщението при посрещане?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Запазено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Запазените WebRTC ICE сървъри ще бъдат премахнати</target>
|
<target>Запазените WebRTC ICE сървъри ще бъдат премахнати</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Запазено от</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Запазено съобщение</target>
|
<target>Запазено съобщение</target>
|
||||||
@@ -4907,6 +5100,14 @@ Error: %@</source>
|
|||||||
<target>Изпрати съобщение на живо</target>
|
<target>Изпрати съобщение на живо</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Изпращай известия</target>
|
<target>Изпращай известия</target>
|
||||||
@@ -5012,6 +5213,10 @@ Error: %@</source>
|
|||||||
<target>Изпратените съобщения ще бъдат изтрити след зададеното време.</target>
|
<target>Изпратените съобщения ще бъдат изтрити след зададеното време.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Сървърът изисква оторизация за създаване на опашки, проверете паролата</target>
|
<target>Сървърът изисква оторизация за създаване на опашки, проверете паролата</target>
|
||||||
@@ -5027,6 +5232,10 @@ Error: %@</source>
|
|||||||
<target>Тестът на сървъра е неуспешен!</target>
|
<target>Тестът на сървъра е неуспешен!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Сървъри</target>
|
<target>Сървъри</target>
|
||||||
@@ -5087,6 +5296,11 @@ Error: %@</source>
|
|||||||
<target>Настройки</target>
|
<target>Настройки</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Променете формата на профилните изображения</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Сподели</target>
|
<target>Сподели</target>
|
||||||
@@ -5142,11 +5356,19 @@ Error: %@</source>
|
|||||||
<target>Показване на последните съобщения в листа с чатовете</target>
|
<target>Показване на последните съобщения в листа с чатовете</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Показване на визуализация</target>
|
<target>Показване на визуализация</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Покажи:</target>
|
<target>Покажи:</target>
|
||||||
@@ -5205,6 +5427,16 @@ Error: %@</source>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleX линкове</target>
|
<target>SimpleX линкове</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>SimpleX линкове са забранени в тази група.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>SimpleX линковете не са разрешени</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5242,6 +5474,11 @@ Error: %@</source>
|
|||||||
<target>Някой</target>
|
<target>Някой</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Квадрат, кръг или нещо между тях.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Започни чат</target>
|
<target>Започни чат</target>
|
||||||
@@ -5454,6 +5691,10 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>Приложението може да ви уведоми, когато получите съобщения или заявки за контакт - моля, отворете настройките, за да активирате.</target>
|
<target>Приложението може да ви уведоми, когато получите съобщения или заявки за контакт - моля, отворете настройките, за да активирате.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Опитът за промяна на паролата на базата данни не беше завършен.</target>
|
<target>Опитът за промяна на паролата на базата данни не беше завършен.</target>
|
||||||
@@ -5639,6 +5880,10 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>За да не се разкрива часовата зона, файловете с изображения/глас използват UTC.</target>
|
<target>За да не се разкрива часовата зона, файловете с изображения/глас използват UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5731,11 +5976,6 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Отблокирай член?</target>
|
<target>Отблокирай член?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Неочаквана грешка: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Неочаквано състояние на миграция</target>
|
<target>Неочаквано състояние на миграция</target>
|
||||||
@@ -5781,6 +6021,10 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Непозната грешка</target>
|
<target>Непозната грешка</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Освен ако не използвате интерфейса за повикване на iOS, активирайте режима "Не безпокой", за да избегнете прекъсвания.</target>
|
<target>Освен ако не използвате интерфейса за повикване на iOS, активирайте режима "Не безпокой", за да избегнете прекъсвания.</target>
|
||||||
@@ -5928,6 +6172,14 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Използвай само локални известия?</target>
|
<target>Използвай само локални известия?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Използвай сървър</target>
|
<target>Използвай сървър</target>
|
||||||
@@ -6043,6 +6295,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Гласовите съобщения са забранени в тази група.</target>
|
<target>Гласовите съобщения са забранени в тази група.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Гласовите съобщения не са разрешени</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Гласовите съобщения са забранени!</target>
|
<target>Гласовите съобщения са забранени!</target>
|
||||||
@@ -6113,6 +6370,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Когато са налични</target>
|
<target>Когато са налични</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>При свързване на аудио и видео разговори.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите.</target>
|
<target>Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите.</target>
|
||||||
@@ -6123,6 +6385,21 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Когато споделяте инкогнито профил с някого, този профил ще се използва за групите, в които той ви кани.</target>
|
<target>Когато споделяте инкогнито профил с някого, този профил ще се използва за групите, в които той ви кани.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Ще бъде активирано в личните чатове!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Кабелен Ethernet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>С криптирани файлове и медия.</target>
|
<target>С криптирани файлове и медия.</target>
|
||||||
@@ -6138,11 +6415,23 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>С намален разход на батерията.</target>
|
<target>С намален разход на батерията.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Грешна парола за базата данни</target>
|
<target>Грешна парола за базата данни</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Грешна парола!</target>
|
<target>Грешна парола!</target>
|
||||||
@@ -6160,6 +6449,7 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="You **must not** use the same database on two devices." xml:space="preserve">
|
<trans-unit id="You **must not** use the same database on two devices." xml:space="preserve">
|
||||||
<source>You **must not** use the same database on two devices.</source>
|
<source>You **must not** use the same database on two devices.</source>
|
||||||
|
<target>**Не трябва** да използвате една и съща база данни на две устройства.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="You accepted connection" xml:space="preserve">
|
<trans-unit id="You accepted connection" xml:space="preserve">
|
||||||
@@ -6605,6 +6895,11 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>админ</target>
|
<target>админ</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>администратори</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>съгласуване на криптиране за %@…</target>
|
<target>съгласуване на криптиране за %@…</target>
|
||||||
@@ -6615,6 +6910,11 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>съгласуване на криптиране…</target>
|
<target>съгласуване на криптиране…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>всички членове</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>винаги</target>
|
<target>винаги</target>
|
||||||
@@ -6945,6 +7245,11 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>събитие се случи</target>
|
<target>събитие се случи</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>препратено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>групата е изтрита</target>
|
<target>групата е изтрита</target>
|
||||||
@@ -7152,6 +7457,11 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>собственик</target>
|
<target>собственик</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>собственици</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>peer-to-peer</target>
|
<target>peer-to-peer</target>
|
||||||
@@ -7202,6 +7512,16 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>ви острани</target>
|
<target>ви острани</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>запазено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>запазено от %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>сек.</target>
|
<target>сек.</target>
|
||||||
@@ -7227,6 +7547,12 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>изпрати лично съобщение</target>
|
<target>изпрати лично съобщение</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>зададен нов адрес за контакт</target>
|
<target>зададен нов адрес за контакт</target>
|
||||||
@@ -7267,11 +7593,19 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>неизвестен</target>
|
<target>неизвестен</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>неизвестен статус</target>
|
<target>неизвестен статус</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>актуализиран профил на групата</target>
|
<target>актуализиран профил на групата</target>
|
||||||
@@ -7337,11 +7671,20 @@ SimpleX сървърите не могат да видят вашия профи
|
|||||||
<target>седмици</target>
|
<target>седмици</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>да</target>
|
<target>да</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>вие</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>вие сте поканени в групата</target>
|
<target>вие сте поканени в групата</target>
|
||||||
|
|||||||
@@ -690,6 +690,10 @@
|
|||||||
<target>Povolte mizící zprávy, pouze pokud vám to váš kontakt dovolí.</target>
|
<target>Povolte mizící zprávy, pouze pokud vám to váš kontakt dovolí.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Povolte nevratné smazání zprávy pouze v případě, že vám to váš kontakt dovolí. (24 hodin)</target>
|
<target>Povolte nevratné smazání zprávy pouze v případě, že vám to váš kontakt dovolí. (24 hodin)</target>
|
||||||
@@ -720,6 +724,10 @@
|
|||||||
<target>Povolit nevratné smazání odeslaných zpráv. (24 hodin)</target>
|
<target>Povolit nevratné smazání odeslaných zpráv. (24 hodin)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Povolit odesílání souborů a médii.</target>
|
<target>Povolit odesílání souborů a médii.</target>
|
||||||
@@ -778,6 +786,10 @@
|
|||||||
<source>Already joining the group!</source>
|
<source>Already joining the group!</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Spojení přes relé</target>
|
<target>Spojení přes relé</target>
|
||||||
@@ -1043,6 +1055,14 @@
|
|||||||
<target>Nelze přijmout soubor</target>
|
<target>Nelze přijmout soubor</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Změnit</target>
|
<target>Změnit</target>
|
||||||
@@ -1230,6 +1250,10 @@
|
|||||||
<target>Potvrdit aktualizaci databáze</target>
|
<target>Potvrdit aktualizaci databáze</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -1623,6 +1647,10 @@ This is your own one-time link!</source>
|
|||||||
<target>Databáze bude přenesena po restartu aplikace</target>
|
<target>Databáze bude přenesena po restartu aplikace</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Decentralizované</target>
|
<target>Decentralizované</target>
|
||||||
@@ -1862,6 +1890,10 @@ This cannot be undone!</source>
|
|||||||
<source>Desktop devices</source>
|
<source>Desktop devices</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Vyvinout</target>
|
<target>Vyvinout</target>
|
||||||
@@ -1965,11 +1997,19 @@ This cannot be undone!</source>
|
|||||||
<source>Discover via local network</source>
|
<source>Discover via local network</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>NEpoužívejte SimpleX pro tísňová volání.</target>
|
<target>NEpoužívejte SimpleX pro tísňová volání.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Udělat později</target>
|
<target>Udělat později</target>
|
||||||
@@ -1999,6 +2039,10 @@ This cannot be undone!</source>
|
|||||||
<target>Snížit a otevřít chat</target>
|
<target>Snížit a otevřít chat</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2104,6 +2148,10 @@ This cannot be undone!</source>
|
|||||||
<target>Povolit sebedestrukční heslo</target>
|
<target>Povolit sebedestrukční heslo</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Šifrovat</target>
|
<target>Šifrovat</target>
|
||||||
@@ -2247,10 +2295,6 @@ This cannot be undone!</source>
|
|||||||
<target>Chyba přidávání člena(ů)</target>
|
<target>Chyba přidávání člena(ů)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Chuba změny adresy</target>
|
<target>Chuba změny adresy</target>
|
||||||
@@ -2507,7 +2551,7 @@ This cannot be undone!</source>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Chyba: %@</target>
|
<target>Chyba: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2596,6 +2640,10 @@ This cannot be undone!</source>
|
|||||||
<target>Soubor: %@</target>
|
<target>Soubor: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Soubory a média</target>
|
<target>Soubory a média</target>
|
||||||
@@ -2611,6 +2659,10 @@ This cannot be undone!</source>
|
|||||||
<target>Soubory a média jsou zakázány v této skupině.</target>
|
<target>Soubory a média jsou zakázány v této skupině.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Soubory a média jsou zakázány!</target>
|
<target>Soubory a média jsou zakázány!</target>
|
||||||
@@ -2674,6 +2726,32 @@ This cannot be undone!</source>
|
|||||||
<target>Pro konzoli</target>
|
<target>Pro konzoli</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2780,6 +2858,10 @@ This cannot be undone!</source>
|
|||||||
<target>Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)</target>
|
<target>Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Členové skupiny mohou posílat přímé zprávy.</target>
|
<target>Členové skupiny mohou posílat přímé zprávy.</target>
|
||||||
@@ -3014,6 +3096,10 @@ This cannot be undone!</source>
|
|||||||
<target>V odpovědi na</target>
|
<target>V odpovědi na</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Inkognito</target>
|
<target>Inkognito</target>
|
||||||
@@ -3450,11 +3536,19 @@ This is your link for group %@!</source>
|
|||||||
<target>Potvrzení o doručení zprávy!</target>
|
<target>Potvrzení o doručení zprávy!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Návrh zprávy</target>
|
<target>Návrh zprávy</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Reakce na zprávy</target>
|
<target>Reakce na zprávy</target>
|
||||||
@@ -3470,6 +3564,18 @@ This is your link for group %@!</source>
|
|||||||
<target>Reakce na zprávy jsou v této skupině zakázány.</target>
|
<target>Reakce na zprávy jsou v této skupině zakázány.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Text zprávy</target>
|
<target>Text zprávy</target>
|
||||||
@@ -3574,16 +3680,15 @@ This is your link for group %@!</source>
|
|||||||
<target>Další vylepšení se chystají již brzy!</target>
|
<target>Další vylepšení se chystají již brzy!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Pravděpodobně je toto spojení smazáno.</target>
|
<target>Pravděpodobně je toto spojení smazáno.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Tento kontakt s největší pravděpodobností smazal spojení s vámi.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Více chatovacích profilů</target>
|
<target>Více chatovacích profilů</target>
|
||||||
@@ -3609,6 +3714,18 @@ This is your link for group %@!</source>
|
|||||||
<target>Síť a servery</target>
|
<target>Síť a servery</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Nastavení sítě</target>
|
<target>Nastavení sítě</target>
|
||||||
@@ -3718,6 +3835,10 @@ This is your link for group %@!</source>
|
|||||||
<target>Žádná historie</target>
|
<target>Žádná historie</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Nemáte oprávnění nahrávat hlasové zprávy</target>
|
<target>Nemáte oprávnění nahrávat hlasové zprávy</target>
|
||||||
@@ -3923,6 +4044,10 @@ This is your link for group %@!</source>
|
|||||||
<source>Or show this code</source>
|
<source>Or show this code</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>Počet PING</target>
|
<target>Počet PING</target>
|
||||||
@@ -4082,10 +4207,6 @@ Error: %@</source>
|
|||||||
<target>Je možné, že otisk certifikátu v adrese serveru je nesprávný</target>
|
<target>Je možné, že otisk certifikátu v adrese serveru je nesprávný</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Zachování posledního návrhu zprávy s přílohami.</target>
|
<target>Zachování posledního návrhu zprávy s přílohami.</target>
|
||||||
@@ -4121,10 +4242,22 @@ Error: %@</source>
|
|||||||
<target>Soukromé názvy souborů</target>
|
<target>Soukromé názvy souborů</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profil a připojení k serveru</target>
|
<target>Profil a připojení k serveru</target>
|
||||||
@@ -4135,6 +4268,10 @@ Error: %@</source>
|
|||||||
<target>Profilový obrázek</target>
|
<target>Profilový obrázek</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4173,6 +4310,10 @@ Error: %@</source>
|
|||||||
<target>Zakázat reakce na zprávy.</target>
|
<target>Zakázat reakce na zprávy.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Zakázat odesílání přímých zpráv členům.</target>
|
<target>Zakázat odesílání přímých zpráv členům.</target>
|
||||||
@@ -4193,11 +4334,20 @@ Error: %@</source>
|
|||||||
<target>Zakázat odesílání hlasových zpráv.</target>
|
<target>Zakázat odesílání hlasových zpráv.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Ochrana obrazovky aplikace</target>
|
<target>Ochrana obrazovky aplikace</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Chraňte své chat profily heslem!</target>
|
<target>Chraňte své chat profily heslem!</target>
|
||||||
@@ -4314,6 +4464,10 @@ Error: %@</source>
|
|||||||
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Příjemci uvidí aktualizace během jejich psaní.</target>
|
<target>Příjemci uvidí aktualizace během jejich psaní.</target>
|
||||||
@@ -4523,6 +4677,10 @@ Error: %@</source>
|
|||||||
<target>SMP servery</target>
|
<target>SMP servery</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4607,11 +4765,19 @@ Error: %@</source>
|
|||||||
<target>Uložit uvítací zprávu?</target>
|
<target>Uložit uvítací zprávu?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Uložené servery WebRTC ICE budou odstraněny</target>
|
<target>Uložené servery WebRTC ICE budou odstraněny</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<note>message info title</note>
|
<note>message info title</note>
|
||||||
@@ -4733,6 +4899,14 @@ Error: %@</source>
|
|||||||
<target>Odeslat živou zprávu</target>
|
<target>Odeslat živou zprávu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Odeslat oznámení</target>
|
<target>Odeslat oznámení</target>
|
||||||
@@ -4837,6 +5011,10 @@ Error: %@</source>
|
|||||||
<target>Odeslané zprávy se po uplynutí nastavené doby odstraní.</target>
|
<target>Odeslané zprávy se po uplynutí nastavené doby odstraní.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Server vyžaduje autorizaci pro vytváření front, zkontrolujte heslo</target>
|
<target>Server vyžaduje autorizaci pro vytváření front, zkontrolujte heslo</target>
|
||||||
@@ -4852,6 +5030,10 @@ Error: %@</source>
|
|||||||
<target>Test serveru se nezdařil!</target>
|
<target>Test serveru se nezdařil!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Servery</target>
|
<target>Servery</target>
|
||||||
@@ -4910,6 +5092,10 @@ Error: %@</source>
|
|||||||
<target>Nastavení</target>
|
<target>Nastavení</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Sdílet</target>
|
<target>Sdílet</target>
|
||||||
@@ -4963,11 +5149,19 @@ Error: %@</source>
|
|||||||
<target>Zobrazit poslední zprávy</target>
|
<target>Zobrazit poslední zprávy</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Zobrazení náhledu</target>
|
<target>Zobrazení náhledu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Zobrazit:</target>
|
<target>Zobrazit:</target>
|
||||||
@@ -5026,6 +5220,14 @@ Error: %@</source>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>Odkazy na SimpleX</target>
|
<target>Odkazy na SimpleX</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5063,6 +5265,10 @@ Error: %@</source>
|
|||||||
<target>Někdo</target>
|
<target>Někdo</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Začít chat</target>
|
<target>Začít chat</target>
|
||||||
@@ -5269,6 +5475,10 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
|
|||||||
<target>Aplikace vás může upozornit na přijaté zprávy nebo žádosti o kontakt - povolte to v nastavení.</target>
|
<target>Aplikace vás může upozornit na přijaté zprávy nebo žádosti o kontakt - povolte to v nastavení.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Pokus o změnu přístupové fráze databáze nebyl dokončen.</target>
|
<target>Pokus o změnu přístupové fráze databáze nebyl dokončen.</target>
|
||||||
@@ -5445,6 +5655,10 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
|
|||||||
<target>K ochraně časového pásma používají obrazové/hlasové soubory UTC.</target>
|
<target>K ochraně časového pásma používají obrazové/hlasové soubory UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5531,11 +5745,6 @@ Před zapnutím této funkce budete vyzváni k dokončení ověření.</target>
|
|||||||
<source>Unblock member?</source>
|
<source>Unblock member?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Neočekávaná chyba: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Neočekávaný stav přenášení</target>
|
<target>Neočekávaný stav přenášení</target>
|
||||||
@@ -5581,6 +5790,10 @@ Před zapnutím této funkce budete vyzváni k dokončení ověření.</target>
|
|||||||
<target>Neznámá chyba</target>
|
<target>Neznámá chyba</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Při nepoužívání rozhraní volání iOS, povolte režim Nerušit, abyste se vyhnuli vyrušování.</target>
|
<target>Při nepoužívání rozhraní volání iOS, povolte režim Nerušit, abyste se vyhnuli vyrušování.</target>
|
||||||
@@ -5721,6 +5934,14 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
|
|||||||
<source>Use only local notifications?</source>
|
<source>Use only local notifications?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Použít server</target>
|
<target>Použít server</target>
|
||||||
@@ -5828,6 +6049,10 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
|
|||||||
<target>Hlasové zprávy jsou v této skupině zakázány.</target>
|
<target>Hlasové zprávy jsou v této skupině zakázány.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Hlasové zprávy jsou zakázány!</target>
|
<target>Hlasové zprávy jsou zakázány!</target>
|
||||||
@@ -5895,6 +6120,10 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
|
|||||||
<target>Když je k dispozici</target>
|
<target>Když je k dispozici</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Když někdo požádá o připojení, můžete žádost přijmout nebo odmítnout.</target>
|
<target>Když někdo požádá o připojení, můžete žádost přijmout nebo odmítnout.</target>
|
||||||
@@ -5905,6 +6134,18 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
|
|||||||
<target>Pokud s někým sdílíte inkognito profil, bude tento profil použit pro skupiny, do kterých vás pozve.</target>
|
<target>Pokud s někým sdílíte inkognito profil, bude tento profil použit pro skupiny, do kterých vás pozve.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -5918,11 +6159,23 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
|
|||||||
<source>With reduced battery usage.</source>
|
<source>With reduced battery usage.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Špatná přístupová fráze k databázi</target>
|
<target>Špatná přístupová fráze k databázi</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Špatná přístupová fráze!</target>
|
<target>Špatná přístupová fráze!</target>
|
||||||
@@ -6368,6 +6621,10 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<target>správce</target>
|
<target>správce</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>povoluji šifrování pro %@…</target>
|
<target>povoluji šifrování pro %@…</target>
|
||||||
@@ -6378,6 +6635,10 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<target>povoluji šifrování…</target>
|
<target>povoluji šifrování…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>vždy</target>
|
<target>vždy</target>
|
||||||
@@ -6700,6 +6961,10 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<source>event happened</source>
|
<source>event happened</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>skupina smazána</target>
|
<target>skupina smazána</target>
|
||||||
@@ -6906,6 +7171,10 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<target>vlastník</target>
|
<target>vlastník</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>peer-to-peer</target>
|
<target>peer-to-peer</target>
|
||||||
@@ -6953,6 +7222,14 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<target>odstranil vás</target>
|
<target>odstranil vás</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sek</target>
|
<target>sek</target>
|
||||||
@@ -6978,6 +7255,12 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<target>odeslat přímou zprávu</target>
|
<target>odeslat přímou zprávu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<note>profile update event chat item</note>
|
<note>profile update event chat item</note>
|
||||||
@@ -7014,10 +7297,18 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<target>neznámý</target>
|
<target>neznámý</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>aktualizoval profil skupiny</target>
|
<target>aktualizoval profil skupiny</target>
|
||||||
@@ -7081,11 +7372,19 @@ Servery SimpleX nevidí váš profil.</target>
|
|||||||
<target>týdnů</target>
|
<target>týdnů</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>ano</target>
|
<target>ano</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>jste pozváni do skupiny</target>
|
<target>jste pozváni do skupiny</target>
|
||||||
|
|||||||
@@ -695,7 +695,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
|
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
|
||||||
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
|
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
|
||||||
<target>Alle Ihre Kontakte, Unterhaltungen und Dateien werden sicher verschlüsselt und in Daten-Paketen auf die konfigurierten XTFP-Server hochgeladen.</target>
|
<target>Alle Ihre Kontakte, Unterhaltungen und Dateien werden sicher verschlüsselt und in Daten-Paketen auf die konfigurierten XTFP-Relais hochgeladen.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow" xml:space="preserve">
|
<trans-unit id="Allow" xml:space="preserve">
|
||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Erlauben Sie verschwindende Nachrichten nur dann, wenn es Ihr Kontakt ebenfalls erlaubt.</target>
|
<target>Erlauben Sie verschwindende Nachrichten nur dann, wenn es Ihr Kontakt ebenfalls erlaubt.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Herabstufung erlauben</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Erlauben Sie das unwiederbringliche Löschen von Nachrichten nur dann, wenn es Ihnen Ihr Kontakt ebenfalls erlaubt. (24 Stunden)</target>
|
<target>Erlauben Sie das unwiederbringliche Löschen von Nachrichten nur dann, wenn es Ihnen Ihr Kontakt ebenfalls erlaubt. (24 Stunden)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Unwiederbringliches löschen von gesendeten Nachrichten erlauben. (24 Stunden)</target>
|
<target>Unwiederbringliches löschen von gesendeten Nachrichten erlauben. (24 Stunden)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Das Senden von SimpleX-Links erlauben.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Das Senden von Dateien und Medien erlauben.</target>
|
<target>Das Senden von Dateien und Medien erlauben.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Sie sind bereits Mitglied der Gruppe!</target>
|
<target>Sie sind bereits Mitglied der Gruppe!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Sie nutzen immer privates Routing.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Über ein Relais verbinden</target>
|
<target>Über ein Relais verbinden</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Datei kann nicht empfangen werden</target>
|
<target>Datei kann nicht empfangen werden</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Kapazität überschritten - der Empfänger hat die zuvor gesendeten Nachrichten nicht empfangen.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Zellulär</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Ändern</target>
|
<target>Ändern</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Datenbank-Aktualisierungen bestätigen</target>
|
<target>Datenbank-Aktualisierungen bestätigen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Dateien von unbekannten Servern bestätigen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Bestätigen Sie die Netzwerkeinstellungen</target>
|
<target>Bestätigen Sie die Netzwerkeinstellungen</target>
|
||||||
@@ -1691,6 +1721,10 @@ Das ist Ihr eigener Einmal-Link!</target>
|
|||||||
<target>Die Datenbank wird beim nächsten Start der App migriert</target>
|
<target>Die Datenbank wird beim nächsten Start der App migriert</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Dezentral</target>
|
<target>Dezentral</target>
|
||||||
@@ -1938,6 +1972,11 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Desktop-Geräte</target>
|
<target>Desktop-Geräte</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Zielserver-Fehler: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Entwicklung</target>
|
<target>Entwicklung</target>
|
||||||
@@ -2043,9 +2082,19 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Lokales Netzwerk durchsuchen</target>
|
<target>Lokales Netzwerk durchsuchen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>Nachrichten werden nicht direkt versendet, selbst wenn Ihr oder der Zielserver kein privates Routing unterstützt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>Nutzen Sie SimpleX nicht für Notrufe.</target>
|
<target>SimpleX NICHT für Notrufe nutzen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>Sie nutzen KEIN privates Routing.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
@@ -2078,6 +2127,11 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Datenbank herabstufen und den Chat öffnen</target>
|
<target>Datenbank herabstufen und den Chat öffnen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Herunterladen</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Herunterladen fehlgeschlagen</target>
|
<target>Herunterladen fehlgeschlagen</target>
|
||||||
@@ -2188,6 +2242,11 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Selbstzerstörungs-Zugangscode aktivieren</target>
|
<target>Selbstzerstörungs-Zugangscode aktivieren</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Aktiviert für</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Verschlüsseln</target>
|
<target>Verschlüsseln</target>
|
||||||
@@ -2338,11 +2397,6 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Fehler beim Hinzufügen von Mitgliedern</target>
|
<target>Fehler beim Hinzufügen von Mitgliedern</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Fehler beim Zulassen der Kontakt-PQ-Verschlüsselung</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Fehler beim Wechseln der Empfängeradresse</target>
|
<target>Fehler beim Wechseln der Empfängeradresse</target>
|
||||||
@@ -2606,7 +2660,7 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Fehler: %@</target>
|
<target>Fehler: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Datei: %@</target>
|
<target>Datei: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Dateien</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Dateien & Medien</target>
|
<target>Dateien & Medien</target>
|
||||||
@@ -2713,6 +2772,11 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>In dieser Gruppe sind Dateien und Medien nicht erlaubt.</target>
|
<target>In dieser Gruppe sind Dateien und Medien nicht erlaubt.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Dateien und Medien sind nicht erlaubt</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Dateien und Medien sind nicht erlaubt!</target>
|
<target>Dateien und Medien sind nicht erlaubt!</target>
|
||||||
@@ -2778,6 +2842,40 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Für Konsole</target>
|
<target>Für Konsole</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Weiterleiten</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Nachrichten weiterleiten und speichern</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Weitergeleitet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Weitergeleitet aus</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Weiterleitungsserver: %1$@
|
||||||
|
Zielserver Fehler: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Weiterleitungsserver: %1$@
|
||||||
|
Fehler: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Gefundener Desktop</target>
|
<target>Gefundener Desktop</target>
|
||||||
@@ -2888,6 +2986,11 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen. (24 Stunden)</target>
|
<target>Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen. (24 Stunden)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Gruppenmitglieder können SimpleX-Links senden.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Gruppenmitglieder können Direktnachrichten versenden.</target>
|
<target>Gruppenmitglieder können Direktnachrichten versenden.</target>
|
||||||
@@ -3128,6 +3231,11 @@ Das kann nicht rückgängig gemacht werden!</target>
|
|||||||
<target>Als Antwort auf</target>
|
<target>Als Antwort auf</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Klingeltöne</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Inkognito</target>
|
<target>Inkognito</target>
|
||||||
@@ -3583,11 +3691,20 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
|||||||
<target>Empfangsbestätigungen für Nachrichten!</target>
|
<target>Empfangsbestätigungen für Nachrichten!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Warnung bei der Nachrichtenzustellung</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Nachrichtenentwurf</target>
|
<target>Nachrichtenentwurf</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Reaktionen auf Nachrichten</target>
|
<target>Reaktionen auf Nachrichten</target>
|
||||||
@@ -3603,6 +3720,21 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
|||||||
<target>In dieser Gruppe sind Reaktionen auf Nachrichten nicht erlaubt.</target>
|
<target>In dieser Gruppe sind Reaktionen auf Nachrichten nicht erlaubt.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Fallback für das Nachrichten-Routing</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Modus für das Nachrichten-Routing</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Die Nachrichtenquelle bleibt privat.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Nachrichtentext</target>
|
<target>Nachrichtentext</target>
|
||||||
@@ -3718,16 +3850,16 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
|||||||
<target>Weitere Verbesserungen sind bald verfügbar!</target>
|
<target>Weitere Verbesserungen sind bald verfügbar!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Zuverlässigere Netzwerkverbindung.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Wahrscheinlich ist diese Verbindung gelöscht worden.</target>
|
<target>Wahrscheinlich ist diese Verbindung gelöscht worden.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Dieser Kontakt hat sehr wahrscheinlich die Verbindung mit Ihnen gelöscht.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Mehrere Chat-Profile</target>
|
<target>Mehrere Chat-Profile</target>
|
||||||
@@ -3753,6 +3885,21 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
|||||||
<target>Netzwerk & Server</target>
|
<target>Netzwerk & Server</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Netzwerkverbindung</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Netzwerk-Fehler - die Nachricht ist nach vielen Sende-Versuchen abgelaufen.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Netzwerk-Verwaltung</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Netzwerkeinstellungen</target>
|
<target>Netzwerkeinstellungen</target>
|
||||||
@@ -3863,6 +4010,11 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
|||||||
<target>Kein Nachrichtenverlauf</target>
|
<target>Kein Nachrichtenverlauf</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Keine Netzwerkverbindung</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Keine Berechtigung für das Aufnehmen von Sprachnachrichten</target>
|
<target>Keine Berechtigung für das Aufnehmen von Sprachnachrichten</target>
|
||||||
@@ -3929,12 +4081,12 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Onion hosts will be required for connection. Requires enabling VPN." xml:space="preserve">
|
<trans-unit id="Onion hosts will be required for connection. Requires enabling VPN." xml:space="preserve">
|
||||||
<source>Onion hosts will be required for connection. Requires enabling VPN.</source>
|
<source>Onion hosts will be required for connection. Requires enabling VPN.</source>
|
||||||
<target>Für die Verbindung werden Onion-Hosts benötigt. Dies erfordert die Aktivierung eines VPNs.</target>
|
<target>Für diese Verbindung werden Onion-Hosts benötigt. Dies erfordert die Aktivierung eines VPNs.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Onion hosts will be used when available. Requires enabling VPN." xml:space="preserve">
|
<trans-unit id="Onion hosts will be used when available. Requires enabling VPN." xml:space="preserve">
|
||||||
<source>Onion hosts will be used when available. Requires enabling VPN.</source>
|
<source>Onion hosts will be used when available. Requires enabling VPN.</source>
|
||||||
<target>Onion-Hosts werden verwendet, sobald sie verfügbar sind. Dies erfordert die Aktivierung eines VPNs.</target>
|
<target>Wenn Onion-Hosts verfügbar sind, werden sie verwendet. Dies erfordert die Aktivierung eines VPNs.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Onion hosts will not be used." xml:space="preserve">
|
<trans-unit id="Onion hosts will not be used." xml:space="preserve">
|
||||||
@@ -4077,6 +4229,11 @@ Das ist Ihr Link für die Gruppe %@!</target>
|
|||||||
<target>Oder diesen QR-Code anzeigen</target>
|
<target>Oder diesen QR-Code anzeigen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Andere</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>PING-Zähler</target>
|
<target>PING-Zähler</target>
|
||||||
@@ -4244,11 +4401,6 @@ Fehler: %@</target>
|
|||||||
<target>Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig</target>
|
<target>Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Post-Quantum E2E-Verschlüsselung</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren.</target>
|
<target>Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Fehler: %@</target>
|
|||||||
<target>Neutrale Dateinamen</target>
|
<target>Neutrale Dateinamen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Privates Nachrichten-Routing</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Privates Nachrichten-Routing 🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Private Notizen</target>
|
<target>Private Notizen</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Privates Routing</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profil und Serververbindungen</target>
|
<target>Profil und Serververbindungen</target>
|
||||||
@@ -4299,6 +4466,11 @@ Fehler: %@</target>
|
|||||||
<target>Profilbild</target>
|
<target>Profilbild</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Profil-Bilder</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Profilname</target>
|
<target>Profilname</target>
|
||||||
@@ -4339,6 +4511,11 @@ Fehler: %@</target>
|
|||||||
<target>Reaktionen auf Nachrichten nicht erlauben.</target>
|
<target>Reaktionen auf Nachrichten nicht erlauben.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Das Senden von SimpleX-Links nicht erlauben.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Das Senden von Direktnachrichten an Gruppenmitglieder nicht erlauben.</target>
|
<target>Das Senden von Direktnachrichten an Gruppenmitglieder nicht erlauben.</target>
|
||||||
@@ -4346,7 +4523,7 @@ Fehler: %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending disappearing messages." xml:space="preserve">
|
<trans-unit id="Prohibit sending disappearing messages." xml:space="preserve">
|
||||||
<source>Prohibit sending disappearing messages.</source>
|
<source>Prohibit sending disappearing messages.</source>
|
||||||
<target>Das Senden von verschwindenden Nachrichten verbieten.</target>
|
<target>Das Senden von verschwindenden Nachrichten nicht erlauben.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending files and media." xml:space="preserve">
|
<trans-unit id="Prohibit sending files and media." xml:space="preserve">
|
||||||
@@ -4359,11 +4536,23 @@ Fehler: %@</target>
|
|||||||
<target>Das Senden von Sprachnachrichten nicht erlauben.</target>
|
<target>Das Senden von Sprachnachrichten nicht erlauben.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>IP-Adresse schützen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>App-Bildschirm schützen</target>
|
<target>App-Bildschirm schützen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Schützen Sie Ihre IP-Adresse vor den Nachrichten-Relais , die Ihre Kontakte ausgewählt haben.
|
||||||
|
Aktivieren Sie es in den *Netzwerk & Server* Einstellungen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Ihre Chat-Profile mit einem Passwort schützen!</target>
|
<target>Ihre Chat-Profile mit einem Passwort schützen!</target>
|
||||||
@@ -4484,6 +4673,11 @@ Fehler: %@</target>
|
|||||||
<target>Aktueller Nachrichtenverlauf und verbesserter [Gruppenverzeichnis-Bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Aktueller Nachrichtenverlauf und verbesserter [Gruppenverzeichnis-Bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Empfänger können nicht sehen, von wem die Nachricht stammt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Die Empfänger sehen Nachrichtenaktualisierungen, während Sie sie eingeben.</target>
|
<target>Die Empfänger sehen Nachrichtenaktualisierungen, während Sie sie eingeben.</target>
|
||||||
@@ -4699,6 +4893,11 @@ Fehler: %@</target>
|
|||||||
<target>SMP-Server</target>
|
<target>SMP-Server</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Dateien sicher empfangen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Sicherere Gruppen</target>
|
<target>Sicherere Gruppen</target>
|
||||||
@@ -4784,11 +4983,21 @@ Fehler: %@</target>
|
|||||||
<target>Begrüßungsmeldung speichern?</target>
|
<target>Begrüßungsmeldung speichern?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Abgespeichert</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Gespeicherte WebRTC ICE-Server werden entfernt</target>
|
<target>Gespeicherte WebRTC ICE-Server werden entfernt</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Abgespeichert von</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Gespeicherte Nachricht</target>
|
<target>Gespeicherte Nachricht</target>
|
||||||
@@ -4914,6 +5123,16 @@ Fehler: %@</target>
|
|||||||
<target>Live Nachricht senden</target>
|
<target>Live Nachricht senden</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Nachrichten werden direkt versendet, wenn die IP-Adresse geschützt ist, und Ihr oder der Zielserver kein privates Routing unterstützt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Nachrichten werden direkt versendet, wenn Ihr oder der Zielserver kein privates Routing unterstützt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Benachrichtigungen senden</target>
|
<target>Benachrichtigungen senden</target>
|
||||||
@@ -5019,6 +5238,11 @@ Fehler: %@</target>
|
|||||||
<target>Gesendete Nachrichten werden nach der eingestellten Zeit gelöscht.</target>
|
<target>Gesendete Nachrichten werden nach der eingestellten Zeit gelöscht.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>Die Server-Adresse ist nicht mit den Netzwerk-Einstellungen kompatibel.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Um Warteschlangen zu erzeugen benötigt der Server eine Authentifizierung. Bitte überprüfen Sie das Passwort</target>
|
<target>Um Warteschlangen zu erzeugen benötigt der Server eine Authentifizierung. Bitte überprüfen Sie das Passwort</target>
|
||||||
@@ -5034,6 +5258,11 @@ Fehler: %@</target>
|
|||||||
<target>Server Test ist fehlgeschlagen!</target>
|
<target>Server Test ist fehlgeschlagen!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>Die Server-Version ist nicht mit den Netzwerk-Einstellungen kompatibel.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Server</target>
|
<target>Server</target>
|
||||||
@@ -5094,6 +5323,11 @@ Fehler: %@</target>
|
|||||||
<target>Einstellungen</target>
|
<target>Einstellungen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Form der Profil-Bilder</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Teilen</target>
|
<target>Teilen</target>
|
||||||
@@ -5149,11 +5383,21 @@ Fehler: %@</target>
|
|||||||
<target>Letzte Nachrichten anzeigen</target>
|
<target>Letzte Nachrichten anzeigen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Nachrichtenstatus anzeigen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Vorschau anzeigen</target>
|
<target>Vorschau anzeigen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Bei Nachrichten, die über privates Routing versendet wurden, → anzeigen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Anzeigen:</target>
|
<target>Anzeigen:</target>
|
||||||
@@ -5212,6 +5456,16 @@ Fehler: %@</target>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleX-Links</target>
|
<target>SimpleX-Links</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>In dieser Gruppe sind SimpleX-Links nicht erlaubt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>SimpleX-Links sind nicht erlaubt</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Fehler: %@</target>
|
|||||||
<target>Jemand</target>
|
<target>Jemand</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Quadratisch, kreisförmig oder irgendetwas dazwischen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Starten Sie den Chat</target>
|
<target>Starten Sie den Chat</target>
|
||||||
@@ -5461,6 +5720,11 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
|
|||||||
<target>Wenn sie Nachrichten oder Kontaktanfragen empfangen, kann Sie die App benachrichtigen - Um dies zu aktivieren, öffnen Sie bitte die Einstellungen.</target>
|
<target>Wenn sie Nachrichten oder Kontaktanfragen empfangen, kann Sie die App benachrichtigen - Um dies zu aktivieren, öffnen Sie bitte die Einstellungen.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>Die App wird eine Bestätigung bei Downloads von unbekannten Datei-Servern anfordern (außer bei .onion).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Die Änderung des Datenbank-Passworts konnte nicht abgeschlossen werden.</target>
|
<target>Die Änderung des Datenbank-Passworts konnte nicht abgeschlossen werden.</target>
|
||||||
@@ -5646,6 +5910,11 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
|
|||||||
<target>Bild- und Sprachdateinamen enthalten UTC, um Informationen zur Zeitzone zu schützen.</target>
|
<target>Bild- und Sprachdateinamen enthalten UTC, um Informationen zur Zeitzone zu schützen.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>Zum Schutz Ihrer IP-Adresse, wird für die Nachrichten-Auslieferung privates Routing über Ihre konfigurierten SMP-Server genutzt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ Sie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funkt
|
|||||||
<target>Mitglied freigeben?</target>
|
<target>Mitglied freigeben?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Unerwarteter Fehler: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Unerwarteter Migrationsstatus</target>
|
<target>Unerwarteter Migrationsstatus</target>
|
||||||
@@ -5788,6 +6052,11 @@ Sie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funkt
|
|||||||
<target>Unbekannter Fehler</target>
|
<target>Unbekannter Fehler</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Unbekannte Server!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Aktivieren Sie den Modus "Bitte nicht stören", um Unterbrechungen zu vermeiden, es sei denn, Sie verwenden die iOS Anrufschnittstelle.</target>
|
<target>Aktivieren Sie den Modus "Bitte nicht stören", um Unterbrechungen zu vermeiden, es sei denn, Sie verwenden die iOS Anrufschnittstelle.</target>
|
||||||
@@ -5907,7 +6176,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Use current profile" xml:space="preserve">
|
<trans-unit id="Use current profile" xml:space="preserve">
|
||||||
<source>Use current profile</source>
|
<source>Use current profile</source>
|
||||||
<target>Nutzen Sie das aktuelle Profil</target>
|
<target>Aktuelles Profil nutzen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Use for new connections" xml:space="preserve">
|
<trans-unit id="Use for new connections" xml:space="preserve">
|
||||||
@@ -5927,7 +6196,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Use new incognito profile" xml:space="preserve">
|
<trans-unit id="Use new incognito profile" xml:space="preserve">
|
||||||
<source>Use new incognito profile</source>
|
<source>Use new incognito profile</source>
|
||||||
<target>Nutzen Sie das neue Inkognito-Profil</target>
|
<target>Neues Inkognito-Profil nutzen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Use only local notifications?" xml:space="preserve">
|
<trans-unit id="Use only local notifications?" xml:space="preserve">
|
||||||
@@ -5935,6 +6204,16 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
|||||||
<target>Nur lokale Benachrichtigungen nutzen?</target>
|
<target>Nur lokale Benachrichtigungen nutzen?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Sie nutzen privates Routing mit unbekannten Servern, wenn Ihre IP-Adresse nicht geschützt ist.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Sie nutzen privates Routing mit unbekannten Servern.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Server nutzen</target>
|
<target>Server nutzen</target>
|
||||||
@@ -6050,6 +6329,11 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
|||||||
<target>In dieser Gruppe sind Sprachnachrichten nicht erlaubt.</target>
|
<target>In dieser Gruppe sind Sprachnachrichten nicht erlaubt.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Sprachnachrichten sind nicht erlaubt</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Sprachnachrichten sind nicht erlaubt!</target>
|
<target>Sprachnachrichten sind nicht erlaubt!</target>
|
||||||
@@ -6120,6 +6404,11 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
|||||||
<target>Wenn verfügbar</target>
|
<target>Wenn verfügbar</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>Bei der Verbindung über Audio- und Video-Anrufe.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen.</target>
|
<target>Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen.</target>
|
||||||
@@ -6130,6 +6419,21 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
|||||||
<target>Wenn Sie ein Inkognito-Profil mit Jemandem teilen, wird dieses Profil auch für die Gruppen verwendet, für die Sie von diesem Kontakt eingeladen werden.</target>
|
<target>Wenn Sie ein Inkognito-Profil mit Jemandem teilen, wird dieses Profil auch für die Gruppen verwendet, für die Sie von diesem Kontakt eingeladen werden.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Wird in direkten Chats automatisch aktiviert!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Kabelgebundenes Netzwerk</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>Mit verschlüsselten Dateien und Medien.</target>
|
<target>Mit verschlüsselten Dateien und Medien.</target>
|
||||||
@@ -6145,11 +6449,26 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
|
|||||||
<target>Mit reduziertem Akkuverbrauch.</target>
|
<target>Mit reduziertem Akkuverbrauch.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Ohne Tor- oder VPN-Nutzung wird Ihre IP-Adresse für Datei-Server sichtbar sein.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Ohne Tor- oder VPN-Nutzung wird Ihre IP-Adresse für diese XFTP-Relais sichtbar sein: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Falsches Datenbank-Passwort</target>
|
<target>Falsches Datenbank-Passwort</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Falscher Schlüssel oder unbekannte Verbindung - höchstwahrscheinlich ist diese Verbindung gelöscht worden.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Falsches Passwort!</target>
|
<target>Falsches Passwort!</target>
|
||||||
@@ -6613,6 +6932,11 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>Admin</target>
|
<target>Admin</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>Administratoren</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>Verschlüsselung von %@ zustimmen…</target>
|
<target>Verschlüsselung von %@ zustimmen…</target>
|
||||||
@@ -6623,6 +6947,11 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>Verschlüsselung zustimmen…</target>
|
<target>Verschlüsselung zustimmen…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>Alle Mitglieder</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>Immer</target>
|
<target>Immer</target>
|
||||||
@@ -6953,6 +7282,11 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>event happened</target>
|
<target>event happened</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>weitergeleitet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>Gruppe gelöscht</target>
|
<target>Gruppe gelöscht</target>
|
||||||
@@ -7160,6 +7494,11 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>Eigentümer</target>
|
<target>Eigentümer</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>Eigentümer</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>Peer-to-Peer</target>
|
<target>Peer-to-Peer</target>
|
||||||
@@ -7210,6 +7549,16 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>hat Sie aus der Gruppe entfernt</target>
|
<target>hat Sie aus der Gruppe entfernt</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>abgespeichert</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>abgespeichert von %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sek</target>
|
<target>sek</target>
|
||||||
@@ -7235,6 +7584,12 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>Direktnachricht senden</target>
|
<target>Direktnachricht senden</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>Es wurde eine neue Kontaktadresse festgelegt</target>
|
<target>Es wurde eine neue Kontaktadresse festgelegt</target>
|
||||||
@@ -7275,11 +7630,21 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>Unbekannt</target>
|
<target>Unbekannt</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>Unbekannte Relais</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>unbekannter Gruppenmitglieds-Status</target>
|
<target>unbekannter Gruppenmitglieds-Status</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>Ungeschützt</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>Aktualisiertes Gruppenprofil</target>
|
<target>Aktualisiertes Gruppenprofil</target>
|
||||||
@@ -7345,11 +7710,21 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
<target>Wochen</target>
|
<target>Wochen</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>Wenn die IP-Adresse versteckt ist</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>Ja</target>
|
<target>Ja</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>Profil</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>Sie sind zu der Gruppe eingeladen</target>
|
<target>Sie sind zu der Gruppe eingeladen</target>
|
||||||
@@ -7476,7 +7851,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="NSHumanReadableCopyright" xml:space="preserve">
|
<trans-unit id="NSHumanReadableCopyright" xml:space="preserve">
|
||||||
<source>Copyright © 2022 SimpleX Chat. All rights reserved.</source>
|
<source>Copyright © 2022 SimpleX Chat. All rights reserved.</source>
|
||||||
<target>Copyright © 2022 SimpleX Chat. All rights reserved.</target>
|
<target>Copyright © 2024 SimpleX Chat. All rights reserved.</target>
|
||||||
<note>Copyright (human-readable)</note>
|
<note>Copyright (human-readable)</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Allow disappearing messages only if your contact allows it to you.</target>
|
<target>Allow disappearing messages only if your contact allows it to you.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Allow downgrade</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</target>
|
<target>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Allow to irreversibly delete sent messages. (24 hours)</target>
|
<target>Allow to irreversibly delete sent messages. (24 hours)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Allow to send SimpleX links.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Allow to send files and media.</target>
|
<target>Allow to send files and media.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Already joining the group!</target>
|
<target>Already joining the group!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Always use private routing.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Always use relay</target>
|
<target>Always use relay</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Cannot receive file</target>
|
<target>Cannot receive file</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Capacity exceeded - recipient did not receive previously sent messages.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Cellular</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Change</target>
|
<target>Change</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Confirm database upgrades</target>
|
<target>Confirm database upgrades</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Confirm files from unknown servers.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Confirm network settings</target>
|
<target>Confirm network settings</target>
|
||||||
@@ -1691,6 +1721,11 @@ This is your own one-time link!</target>
|
|||||||
<target>Database will be migrated when the app restarts</target>
|
<target>Database will be migrated when the app restarts</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<target>Debug delivery</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Decentralized</target>
|
<target>Decentralized</target>
|
||||||
@@ -1938,6 +1973,11 @@ This cannot be undone!</target>
|
|||||||
<target>Desktop devices</target>
|
<target>Desktop devices</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Destination server error: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Develop</target>
|
<target>Develop</target>
|
||||||
@@ -2043,11 +2083,21 @@ This cannot be undone!</target>
|
|||||||
<target>Discover via local network</target>
|
<target>Discover via local network</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>Do NOT send messages directly, even if your or destination server does not support private routing.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>Do NOT use SimpleX for emergency calls.</target>
|
<target>Do NOT use SimpleX for emergency calls.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>Do NOT use private routing.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Do it later</target>
|
<target>Do it later</target>
|
||||||
@@ -2078,6 +2128,11 @@ This cannot be undone!</target>
|
|||||||
<target>Downgrade and open chat</target>
|
<target>Downgrade and open chat</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Download</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Download failed</target>
|
<target>Download failed</target>
|
||||||
@@ -2188,6 +2243,11 @@ This cannot be undone!</target>
|
|||||||
<target>Enable self-destruct passcode</target>
|
<target>Enable self-destruct passcode</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Enabled for</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Encrypt</target>
|
<target>Encrypt</target>
|
||||||
@@ -2338,11 +2398,6 @@ This cannot be undone!</target>
|
|||||||
<target>Error adding member(s)</target>
|
<target>Error adding member(s)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Error allowing contact PQ encryption</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Error changing address</target>
|
<target>Error changing address</target>
|
||||||
@@ -2606,7 +2661,7 @@ This cannot be undone!</target>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Error: %@</target>
|
<target>Error: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2753,11 @@ This cannot be undone!</target>
|
|||||||
<target>File: %@</target>
|
<target>File: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Files</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Files & media</target>
|
<target>Files & media</target>
|
||||||
@@ -2713,6 +2773,11 @@ This cannot be undone!</target>
|
|||||||
<target>Files and media are prohibited in this group.</target>
|
<target>Files and media are prohibited in this group.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Files and media not allowed</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Files and media prohibited!</target>
|
<target>Files and media prohibited!</target>
|
||||||
@@ -2778,6 +2843,40 @@ This cannot be undone!</target>
|
|||||||
<target>For console</target>
|
<target>For console</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Forward</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Forward and save messages</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Forwarded</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Forwarded from</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Forwarding server: %1$@
|
||||||
|
Error: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Found desktop</target>
|
<target>Found desktop</target>
|
||||||
@@ -2888,6 +2987,11 @@ This cannot be undone!</target>
|
|||||||
<target>Group members can irreversibly delete sent messages. (24 hours)</target>
|
<target>Group members can irreversibly delete sent messages. (24 hours)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Group members can send SimpleX links.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Group members can send direct messages.</target>
|
<target>Group members can send direct messages.</target>
|
||||||
@@ -3128,6 +3232,11 @@ This cannot be undone!</target>
|
|||||||
<target>In reply to</target>
|
<target>In reply to</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>In-call sounds</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Incognito</target>
|
<target>Incognito</target>
|
||||||
@@ -3583,11 +3692,21 @@ This is your link for group %@!</target>
|
|||||||
<target>Message delivery receipts!</target>
|
<target>Message delivery receipts!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Message delivery warning</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Message draft</target>
|
<target>Message draft</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<target>Message queue info</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Message reactions</target>
|
<target>Message reactions</target>
|
||||||
@@ -3603,6 +3722,21 @@ This is your link for group %@!</target>
|
|||||||
<target>Message reactions are prohibited in this group.</target>
|
<target>Message reactions are prohibited in this group.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Message routing fallback</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Message routing mode</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Message source remains private.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Message text</target>
|
<target>Message text</target>
|
||||||
@@ -3718,16 +3852,16 @@ This is your link for group %@!</target>
|
|||||||
<target>More improvements are coming soon!</target>
|
<target>More improvements are coming soon!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>More reliable network connection.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Most likely this connection is deleted.</target>
|
<target>Most likely this connection is deleted.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Most likely this contact has deleted the connection with you.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Multiple chat profiles</target>
|
<target>Multiple chat profiles</target>
|
||||||
@@ -3753,6 +3887,21 @@ This is your link for group %@!</target>
|
|||||||
<target>Network & servers</target>
|
<target>Network & servers</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Network connection</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Network issues - message expired after many attempts to send it.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Network management</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Network settings</target>
|
<target>Network settings</target>
|
||||||
@@ -3863,6 +4012,11 @@ This is your link for group %@!</target>
|
|||||||
<target>No history</target>
|
<target>No history</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>No network connection</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>No permission to record voice message</target>
|
<target>No permission to record voice message</target>
|
||||||
@@ -4077,6 +4231,11 @@ This is your link for group %@!</target>
|
|||||||
<target>Or show this code</target>
|
<target>Or show this code</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Other</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>PING count</target>
|
<target>PING count</target>
|
||||||
@@ -4244,11 +4403,6 @@ Error: %@</target>
|
|||||||
<target>Possibly, certificate fingerprint in server address is incorrect</target>
|
<target>Possibly, certificate fingerprint in server address is incorrect</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Post-quantum E2EE</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Preserve the last message draft, with attachments.</target>
|
<target>Preserve the last message draft, with attachments.</target>
|
||||||
@@ -4284,11 +4438,26 @@ Error: %@</target>
|
|||||||
<target>Private filenames</target>
|
<target>Private filenames</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Private message routing</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Private message routing 🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Private notes</target>
|
<target>Private notes</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Private routing</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profile and server connections</target>
|
<target>Profile and server connections</target>
|
||||||
@@ -4299,6 +4468,11 @@ Error: %@</target>
|
|||||||
<target>Profile image</target>
|
<target>Profile image</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Profile images</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Profile name</target>
|
<target>Profile name</target>
|
||||||
@@ -4339,6 +4513,11 @@ Error: %@</target>
|
|||||||
<target>Prohibit messages reactions.</target>
|
<target>Prohibit messages reactions.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Prohibit sending SimpleX links.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Prohibit sending direct messages to members.</target>
|
<target>Prohibit sending direct messages to members.</target>
|
||||||
@@ -4359,11 +4538,23 @@ Error: %@</target>
|
|||||||
<target>Prohibit sending voice messages.</target>
|
<target>Prohibit sending voice messages.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>Protect IP address</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Protect app screen</target>
|
<target>Protect app screen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Protect your chat profiles with a password!</target>
|
<target>Protect your chat profiles with a password!</target>
|
||||||
@@ -4484,6 +4675,11 @@ Error: %@</target>
|
|||||||
<target>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Recipient(s) can't see who this message is from.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Recipients see updates as you type them.</target>
|
<target>Recipients see updates as you type them.</target>
|
||||||
@@ -4699,6 +4895,11 @@ Error: %@</target>
|
|||||||
<target>SMP servers</target>
|
<target>SMP servers</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Safely receive files</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Safer groups</target>
|
<target>Safer groups</target>
|
||||||
@@ -4784,11 +4985,21 @@ Error: %@</target>
|
|||||||
<target>Save welcome message?</target>
|
<target>Save welcome message?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Saved</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Saved WebRTC ICE servers will be removed</target>
|
<target>Saved WebRTC ICE servers will be removed</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Saved from</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Saved message</target>
|
<target>Saved message</target>
|
||||||
@@ -4914,6 +5125,16 @@ Error: %@</target>
|
|||||||
<target>Send live message</target>
|
<target>Send live message</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Send messages directly when IP address is protected and your or destination server does not support private routing.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Send messages directly when your or destination server does not support private routing.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Send notifications</target>
|
<target>Send notifications</target>
|
||||||
@@ -5019,6 +5240,11 @@ Error: %@</target>
|
|||||||
<target>Sent messages will be deleted after set time.</target>
|
<target>Sent messages will be deleted after set time.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>Server address is incompatible with network settings.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Server requires authorization to create queues, check password</target>
|
<target>Server requires authorization to create queues, check password</target>
|
||||||
@@ -5034,6 +5260,11 @@ Error: %@</target>
|
|||||||
<target>Server test failed!</target>
|
<target>Server test failed!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>Server version is incompatible with network settings.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Servers</target>
|
<target>Servers</target>
|
||||||
@@ -5094,6 +5325,11 @@ Error: %@</target>
|
|||||||
<target>Settings</target>
|
<target>Settings</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Shape profile images</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Share</target>
|
<target>Share</target>
|
||||||
@@ -5149,11 +5385,21 @@ Error: %@</target>
|
|||||||
<target>Show last messages</target>
|
<target>Show last messages</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Show message status</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Show preview</target>
|
<target>Show preview</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Show → on messages sent via private routing.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Show:</target>
|
<target>Show:</target>
|
||||||
@@ -5212,6 +5458,16 @@ Error: %@</target>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleX links</target>
|
<target>SimpleX links</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>SimpleX links are prohibited in this group.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>SimpleX links not allowed</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5505,11 @@ Error: %@</target>
|
|||||||
<target>Somebody</target>
|
<target>Somebody</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Square, circle, or anything in between.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Start chat</target>
|
<target>Start chat</target>
|
||||||
@@ -5461,6 +5722,11 @@ It can happen because of some bug or when the connection is compromised.</target
|
|||||||
<target>The app can notify you when you receive messages or contact requests - please open settings to enable.</target>
|
<target>The app can notify you when you receive messages or contact requests - please open settings to enable.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>The app will ask to confirm downloads from unknown file servers (except .onion).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>The attempt to change database passphrase was not completed.</target>
|
<target>The attempt to change database passphrase was not completed.</target>
|
||||||
@@ -5646,6 +5912,11 @@ It can happen because of some bug or when the connection is compromised.</target
|
|||||||
<target>To protect timezone, image/voice files use UTC.</target>
|
<target>To protect timezone, image/voice files use UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>To protect your IP address, private routing uses your SMP servers to deliver messages.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6009,6 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Unblock member?</target>
|
<target>Unblock member?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Unexpected error: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Unexpected migration state</target>
|
<target>Unexpected migration state</target>
|
||||||
@@ -5788,6 +6054,11 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Unknown error</target>
|
<target>Unknown error</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Unknown servers!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</target>
|
<target>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</target>
|
||||||
@@ -5935,6 +6206,16 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Use only local notifications?</target>
|
<target>Use only local notifications?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Use private routing with unknown servers when IP address is not protected.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Use private routing with unknown servers.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Use server</target>
|
<target>Use server</target>
|
||||||
@@ -6050,6 +6331,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Voice messages are prohibited in this group.</target>
|
<target>Voice messages are prohibited in this group.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Voice messages not allowed</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Voice messages prohibited!</target>
|
<target>Voice messages prohibited!</target>
|
||||||
@@ -6120,6 +6406,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>When available</target>
|
<target>When available</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>When connecting audio and video calls.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>When people request to connect, you can accept or reject it.</target>
|
<target>When people request to connect, you can accept or reject it.</target>
|
||||||
@@ -6130,6 +6421,21 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>When you share an incognito profile with somebody, this profile will be used for the groups they invite you to.</target>
|
<target>When you share an incognito profile with somebody, this profile will be used for the groups they invite you to.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Will be enabled in direct chats!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Wired ethernet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>With encrypted files and media.</target>
|
<target>With encrypted files and media.</target>
|
||||||
@@ -6145,11 +6451,26 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>With reduced battery usage.</target>
|
<target>With reduced battery usage.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Without Tor or VPN, your IP address will be visible to file servers.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Wrong database passphrase</target>
|
<target>Wrong database passphrase</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Wrong key or unknown connection - most likely this connection is deleted.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Wrong passphrase!</target>
|
<target>Wrong passphrase!</target>
|
||||||
@@ -6613,6 +6934,11 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>admin</target>
|
<target>admin</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>admins</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>agreeing encryption for %@…</target>
|
<target>agreeing encryption for %@…</target>
|
||||||
@@ -6623,6 +6949,11 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>agreeing encryption…</target>
|
<target>agreeing encryption…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>all members</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>always</target>
|
<target>always</target>
|
||||||
@@ -6953,6 +7284,11 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>event happened</target>
|
<target>event happened</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>forwarded</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>group deleted</target>
|
<target>group deleted</target>
|
||||||
@@ -7160,6 +7496,11 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>owner</target>
|
<target>owner</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>owners</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>peer-to-peer</target>
|
<target>peer-to-peer</target>
|
||||||
@@ -7210,6 +7551,16 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>removed you</target>
|
<target>removed you</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>saved</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>saved from %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sec</target>
|
<target>sec</target>
|
||||||
@@ -7235,6 +7586,15 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>send direct message</target>
|
<target>send direct message</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<target>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</target>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>set new contact address</target>
|
<target>set new contact address</target>
|
||||||
@@ -7275,11 +7635,21 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>unknown</target>
|
<target>unknown</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>unknown relays</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>unknown status</target>
|
<target>unknown status</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>unprotected</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>updated group profile</target>
|
<target>updated group profile</target>
|
||||||
@@ -7345,11 +7715,21 @@ SimpleX servers cannot see your profile.</target>
|
|||||||
<target>weeks</target>
|
<target>weeks</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>when IP hidden</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>yes</target>
|
<target>yes</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>you</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>you are invited to group</target>
|
<target>you are invited to group</target>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -685,6 +685,10 @@
|
|||||||
<target>Salli katoavat viestit vain, jos kontaktisi sallii sen sinulle.</target>
|
<target>Salli katoavat viestit vain, jos kontaktisi sallii sen sinulle.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Salli peruuttamaton viestien poisto vain, jos kontaktisi sallii ne sinulle. (24 tuntia)</target>
|
<target>Salli peruuttamaton viestien poisto vain, jos kontaktisi sallii ne sinulle. (24 tuntia)</target>
|
||||||
@@ -715,6 +719,10 @@
|
|||||||
<target>Salli lähetettyjen viestien peruuttamaton poistaminen. (24 tuntia)</target>
|
<target>Salli lähetettyjen viestien peruuttamaton poistaminen. (24 tuntia)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Salli tiedostojen ja median lähettäminen.</target>
|
<target>Salli tiedostojen ja median lähettäminen.</target>
|
||||||
@@ -773,6 +781,10 @@
|
|||||||
<source>Already joining the group!</source>
|
<source>Already joining the group!</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Käytä aina relettä</target>
|
<target>Käytä aina relettä</target>
|
||||||
@@ -1036,6 +1048,14 @@
|
|||||||
<target>Tiedostoa ei voi vastaanottaa</target>
|
<target>Tiedostoa ei voi vastaanottaa</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Muuta</target>
|
<target>Muuta</target>
|
||||||
@@ -1223,6 +1243,10 @@
|
|||||||
<target>Vahvista tietokannan päivitykset</target>
|
<target>Vahvista tietokannan päivitykset</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -1616,6 +1640,10 @@ This is your own one-time link!</source>
|
|||||||
<target>Tietokanta siirretään, kun sovellus käynnistyy uudelleen</target>
|
<target>Tietokanta siirretään, kun sovellus käynnistyy uudelleen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Hajautettu</target>
|
<target>Hajautettu</target>
|
||||||
@@ -1855,6 +1883,10 @@ This cannot be undone!</source>
|
|||||||
<source>Desktop devices</source>
|
<source>Desktop devices</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Kehitä</target>
|
<target>Kehitä</target>
|
||||||
@@ -1958,11 +1990,19 @@ This cannot be undone!</source>
|
|||||||
<source>Discover via local network</source>
|
<source>Discover via local network</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>Älä käytä SimpleX-sovellusta hätäpuheluihin.</target>
|
<target>Älä käytä SimpleX-sovellusta hätäpuheluihin.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Tee myöhemmin</target>
|
<target>Tee myöhemmin</target>
|
||||||
@@ -1992,6 +2032,10 @@ This cannot be undone!</source>
|
|||||||
<target>Alenna ja avaa keskustelu</target>
|
<target>Alenna ja avaa keskustelu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2097,6 +2141,10 @@ This cannot be undone!</source>
|
|||||||
<target>Ota itsetuhoava pääsykoodi käyttöön</target>
|
<target>Ota itsetuhoava pääsykoodi käyttöön</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Salaa</target>
|
<target>Salaa</target>
|
||||||
@@ -2239,10 +2287,6 @@ This cannot be undone!</source>
|
|||||||
<target>Virhe lisättäessä jäseniä</target>
|
<target>Virhe lisättäessä jäseniä</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Virhe osoitteenvaihdossa</target>
|
<target>Virhe osoitteenvaihdossa</target>
|
||||||
@@ -2497,7 +2541,7 @@ This cannot be undone!</source>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Virhe: %@</target>
|
<target>Virhe: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2586,6 +2630,10 @@ This cannot be undone!</source>
|
|||||||
<target>Tiedosto: %@</target>
|
<target>Tiedosto: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Tiedostot & media</target>
|
<target>Tiedostot & media</target>
|
||||||
@@ -2601,6 +2649,10 @@ This cannot be undone!</source>
|
|||||||
<target>Tiedostot ja media ovat tässä ryhmässä kiellettyjä.</target>
|
<target>Tiedostot ja media ovat tässä ryhmässä kiellettyjä.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Tiedostot ja media kielletty!</target>
|
<target>Tiedostot ja media kielletty!</target>
|
||||||
@@ -2664,6 +2716,32 @@ This cannot be undone!</source>
|
|||||||
<target>Konsoliin</target>
|
<target>Konsoliin</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2770,6 +2848,10 @@ This cannot be undone!</source>
|
|||||||
<target>Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)</target>
|
<target>Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Ryhmän jäsenet voivat lähettää suoraviestejä.</target>
|
<target>Ryhmän jäsenet voivat lähettää suoraviestejä.</target>
|
||||||
@@ -3004,6 +3086,10 @@ This cannot be undone!</source>
|
|||||||
<target>Vastauksena</target>
|
<target>Vastauksena</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Incognito</target>
|
<target>Incognito</target>
|
||||||
@@ -3440,11 +3526,19 @@ This is your link for group %@!</source>
|
|||||||
<target>Viestien toimituskuittaukset!</target>
|
<target>Viestien toimituskuittaukset!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Viestiluonnos</target>
|
<target>Viestiluonnos</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Viestireaktiot</target>
|
<target>Viestireaktiot</target>
|
||||||
@@ -3460,6 +3554,18 @@ This is your link for group %@!</source>
|
|||||||
<target>Viestireaktiot ovat kiellettyjä tässä ryhmässä.</target>
|
<target>Viestireaktiot ovat kiellettyjä tässä ryhmässä.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Viestin teksti</target>
|
<target>Viestin teksti</target>
|
||||||
@@ -3564,16 +3670,15 @@ This is your link for group %@!</source>
|
|||||||
<target>Lisää parannuksia on tulossa pian!</target>
|
<target>Lisää parannuksia on tulossa pian!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Todennäköisesti tämä yhteys on poistettu.</target>
|
<target>Todennäköisesti tämä yhteys on poistettu.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Todennäköisesti tämä kontakti on poistanut yhteyden sinuun.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Useita keskusteluprofiileja</target>
|
<target>Useita keskusteluprofiileja</target>
|
||||||
@@ -3599,6 +3704,18 @@ This is your link for group %@!</source>
|
|||||||
<target>Verkko ja palvelimet</target>
|
<target>Verkko ja palvelimet</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Verkkoasetukset</target>
|
<target>Verkkoasetukset</target>
|
||||||
@@ -3707,6 +3824,10 @@ This is your link for group %@!</source>
|
|||||||
<target>Ei historiaa</target>
|
<target>Ei historiaa</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Ei lupaa ääniviestin tallentamiseen</target>
|
<target>Ei lupaa ääniviestin tallentamiseen</target>
|
||||||
@@ -3911,6 +4032,10 @@ This is your link for group %@!</source>
|
|||||||
<source>Or show this code</source>
|
<source>Or show this code</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>PING-määrä</target>
|
<target>PING-määrä</target>
|
||||||
@@ -4070,10 +4195,6 @@ Error: %@</source>
|
|||||||
<target>Palvelimen osoitteen varmenteen sormenjälki on mahdollisesti virheellinen</target>
|
<target>Palvelimen osoitteen varmenteen sormenjälki on mahdollisesti virheellinen</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Säilytä viimeinen viestiluonnos liitteineen.</target>
|
<target>Säilytä viimeinen viestiluonnos liitteineen.</target>
|
||||||
@@ -4109,10 +4230,22 @@ Error: %@</source>
|
|||||||
<target>Yksityiset tiedostonimet</target>
|
<target>Yksityiset tiedostonimet</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profiili- ja palvelinyhteydet</target>
|
<target>Profiili- ja palvelinyhteydet</target>
|
||||||
@@ -4123,6 +4256,10 @@ Error: %@</source>
|
|||||||
<target>Profiilikuva</target>
|
<target>Profiilikuva</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4161,6 +4298,10 @@ Error: %@</source>
|
|||||||
<target>Estä viestireaktiot.</target>
|
<target>Estä viestireaktiot.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Estä suorien viestien lähettäminen jäsenille.</target>
|
<target>Estä suorien viestien lähettäminen jäsenille.</target>
|
||||||
@@ -4181,11 +4322,20 @@ Error: %@</source>
|
|||||||
<target>Estä ääniviestien lähettäminen.</target>
|
<target>Estä ääniviestien lähettäminen.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Suojaa sovellusnäyttö</target>
|
<target>Suojaa sovellusnäyttö</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Suojaa keskusteluprofiilisi salasanalla!</target>
|
<target>Suojaa keskusteluprofiilisi salasanalla!</target>
|
||||||
@@ -4302,6 +4452,10 @@ Error: %@</source>
|
|||||||
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Vastaanottajat näkevät päivitykset, kun kirjoitat niitä.</target>
|
<target>Vastaanottajat näkevät päivitykset, kun kirjoitat niitä.</target>
|
||||||
@@ -4511,6 +4665,10 @@ Error: %@</source>
|
|||||||
<target>SMP-palvelimet</target>
|
<target>SMP-palvelimet</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4595,11 +4753,19 @@ Error: %@</source>
|
|||||||
<target>Tallenna tervetuloviesti?</target>
|
<target>Tallenna tervetuloviesti?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Tallennetut WebRTC ICE -palvelimet poistetaan</target>
|
<target>Tallennetut WebRTC ICE -palvelimet poistetaan</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<note>message info title</note>
|
<note>message info title</note>
|
||||||
@@ -4720,6 +4886,14 @@ Error: %@</source>
|
|||||||
<target>Lähetä live-viesti</target>
|
<target>Lähetä live-viesti</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Lähetys ilmoitukset</target>
|
<target>Lähetys ilmoitukset</target>
|
||||||
@@ -4824,6 +4998,10 @@ Error: %@</source>
|
|||||||
<target>Lähetetyt viestit poistetaan asetetun ajan kuluttua.</target>
|
<target>Lähetetyt viestit poistetaan asetetun ajan kuluttua.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Palvelin vaatii valtuutuksen jonojen luomiseen, tarkista salasana</target>
|
<target>Palvelin vaatii valtuutuksen jonojen luomiseen, tarkista salasana</target>
|
||||||
@@ -4839,6 +5017,10 @@ Error: %@</source>
|
|||||||
<target>Palvelintesti epäonnistui!</target>
|
<target>Palvelintesti epäonnistui!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Palvelimet</target>
|
<target>Palvelimet</target>
|
||||||
@@ -4897,6 +5079,10 @@ Error: %@</source>
|
|||||||
<target>Asetukset</target>
|
<target>Asetukset</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Jaa</target>
|
<target>Jaa</target>
|
||||||
@@ -4950,11 +5136,19 @@ Error: %@</source>
|
|||||||
<target>Näytä viimeiset viestit</target>
|
<target>Näytä viimeiset viestit</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Näytä esikatselu</target>
|
<target>Näytä esikatselu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Näytä:</target>
|
<target>Näytä:</target>
|
||||||
@@ -5013,6 +5207,14 @@ Error: %@</source>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleX-linkit</target>
|
<target>SimpleX-linkit</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5049,6 +5251,10 @@ Error: %@</source>
|
|||||||
<target>Joku</target>
|
<target>Joku</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Aloita keskustelu</target>
|
<target>Aloita keskustelu</target>
|
||||||
@@ -5255,6 +5461,10 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
|
|||||||
<target>Sovellus voi ilmoittaa sinulle, kun saat viestejä tai yhteydenottopyyntöjä - avaa asetukset ottaaksesi ne käyttöön.</target>
|
<target>Sovellus voi ilmoittaa sinulle, kun saat viestejä tai yhteydenottopyyntöjä - avaa asetukset ottaaksesi ne käyttöön.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Tietokannan tunnuslauseen muuttamista ei suoritettu loppuun.</target>
|
<target>Tietokannan tunnuslauseen muuttamista ei suoritettu loppuun.</target>
|
||||||
@@ -5431,6 +5641,10 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
|
|||||||
<target>Aikavyöhykkeen suojaamiseksi kuva-/äänitiedostot käyttävät UTC:tä.</target>
|
<target>Aikavyöhykkeen suojaamiseksi kuva-/äänitiedostot käyttävät UTC:tä.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5516,11 +5730,6 @@ Sinua kehotetaan suorittamaan todennus loppuun, ennen kuin tämä ominaisuus ote
|
|||||||
<source>Unblock member?</source>
|
<source>Unblock member?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Odottamaton virhe: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Odottamaton siirtotila</target>
|
<target>Odottamaton siirtotila</target>
|
||||||
@@ -5566,6 +5775,10 @@ Sinua kehotetaan suorittamaan todennus loppuun, ennen kuin tämä ominaisuus ote
|
|||||||
<target>Tuntematon virhe</target>
|
<target>Tuntematon virhe</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Ellet käytä iOS:n puhelinkäyttöliittymää, ota Älä häiritse -tila käyttöön keskeytysten välttämiseksi.</target>
|
<target>Ellet käytä iOS:n puhelinkäyttöliittymää, ota Älä häiritse -tila käyttöön keskeytysten välttämiseksi.</target>
|
||||||
@@ -5706,6 +5919,14 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
|
|||||||
<source>Use only local notifications?</source>
|
<source>Use only local notifications?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Käytä palvelinta</target>
|
<target>Käytä palvelinta</target>
|
||||||
@@ -5813,6 +6034,10 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
|
|||||||
<target>Ääniviestit ovat kiellettyjä tässä ryhmässä.</target>
|
<target>Ääniviestit ovat kiellettyjä tässä ryhmässä.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Ääniviestit kielletty!</target>
|
<target>Ääniviestit kielletty!</target>
|
||||||
@@ -5880,6 +6105,10 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
|
|||||||
<target>Kun saatavilla</target>
|
<target>Kun saatavilla</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Kun ihmiset pyytävät yhteyden muodostamista, voit hyväksyä tai hylätä sen.</target>
|
<target>Kun ihmiset pyytävät yhteyden muodostamista, voit hyväksyä tai hylätä sen.</target>
|
||||||
@@ -5890,6 +6119,18 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
|
|||||||
<target>Kun jaat inkognitoprofiilin jonkun kanssa, tätä profiilia käytetään ryhmissä, joihin tämä sinut kutsuu.</target>
|
<target>Kun jaat inkognitoprofiilin jonkun kanssa, tätä profiilia käytetään ryhmissä, joihin tämä sinut kutsuu.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -5903,11 +6144,23 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
|
|||||||
<source>With reduced battery usage.</source>
|
<source>With reduced battery usage.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Väärä tietokannan tunnuslause</target>
|
<target>Väärä tietokannan tunnuslause</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Väärä tunnuslause!</target>
|
<target>Väärä tunnuslause!</target>
|
||||||
@@ -6353,6 +6606,10 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<target>ylläpitäjä</target>
|
<target>ylläpitäjä</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>salauksesta sovitaan %@:lle…</target>
|
<target>salauksesta sovitaan %@:lle…</target>
|
||||||
@@ -6363,6 +6620,10 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<target>hyväksyy salausta…</target>
|
<target>hyväksyy salausta…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>aina</target>
|
<target>aina</target>
|
||||||
@@ -6685,6 +6946,10 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<target>tapahtuma tapahtui</target>
|
<target>tapahtuma tapahtui</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>ryhmä poistettu</target>
|
<target>ryhmä poistettu</target>
|
||||||
@@ -6891,6 +7156,10 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<target>omistaja</target>
|
<target>omistaja</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>vertais</target>
|
<target>vertais</target>
|
||||||
@@ -6938,6 +7207,14 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<target>poisti sinut</target>
|
<target>poisti sinut</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sek</target>
|
<target>sek</target>
|
||||||
@@ -6962,6 +7239,12 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<source>send direct message</source>
|
<source>send direct message</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<note>profile update event chat item</note>
|
<note>profile update event chat item</note>
|
||||||
@@ -6998,10 +7281,18 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<target>tuntematon</target>
|
<target>tuntematon</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>päivitetty ryhmäprofiili</target>
|
<target>päivitetty ryhmäprofiili</target>
|
||||||
@@ -7065,11 +7356,19 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
|
|||||||
<target>viikkoa</target>
|
<target>viikkoa</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>kyllä</target>
|
<target>kyllä</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>sinut on kutsuttu ryhmään</target>
|
<target>sinut on kutsuttu ryhmään</target>
|
||||||
|
|||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Autorise les messages éphémères seulement si votre contact vous l’autorise.</target>
|
<target>Autorise les messages éphémères seulement si votre contact vous l’autorise.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Autoriser la rétrogradation</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Autoriser la suppression irréversible des messages uniquement si votre contact vous l'autorise. (24 heures)</target>
|
<target>Autoriser la suppression irréversible des messages uniquement si votre contact vous l'autorise. (24 heures)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Autoriser la suppression irréversible de messages envoyés. (24 heures)</target>
|
<target>Autoriser la suppression irréversible de messages envoyés. (24 heures)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Autorise l'envoi de liens SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Permet l'envoi de fichiers et de médias.</target>
|
<target>Permet l'envoi de fichiers et de médias.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Groupe déjà rejoint !</target>
|
<target>Groupe déjà rejoint !</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Toujours utiliser le routage privé.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Se connecter via relais</target>
|
<target>Se connecter via relais</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Impossible de recevoir le fichier</target>
|
<target>Impossible de recevoir le fichier</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Capacité dépassée - le destinataire n'a pas pu recevoir les messages envoyés précédemment.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Cellulaire</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Changer</target>
|
<target>Changer</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Confirmer la mise à niveau de la base de données</target>
|
<target>Confirmer la mise à niveau de la base de données</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Confirmer les fichiers provenant de serveurs inconnus.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Confirmer les paramètres réseau</target>
|
<target>Confirmer les paramètres réseau</target>
|
||||||
@@ -1691,6 +1721,10 @@ Il s'agit de votre propre lien unique !</target>
|
|||||||
<target>La base de données sera migrée lors du redémarrage de l'app</target>
|
<target>La base de données sera migrée lors du redémarrage de l'app</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Décentralisé</target>
|
<target>Décentralisé</target>
|
||||||
@@ -1915,7 +1949,7 @@ Cette opération ne peut être annulée !</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Delivery receipts!" xml:space="preserve">
|
<trans-unit id="Delivery receipts!" xml:space="preserve">
|
||||||
<source>Delivery receipts!</source>
|
<source>Delivery receipts!</source>
|
||||||
<target>Justificatifs de réception!</target>
|
<target>Justificatifs de réception !</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Description" xml:space="preserve">
|
<trans-unit id="Description" xml:space="preserve">
|
||||||
@@ -1938,6 +1972,11 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Appareils de bureau</target>
|
<target>Appareils de bureau</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Erreur du serveur de destination : %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Développer</target>
|
<target>Développer</target>
|
||||||
@@ -2043,11 +2082,21 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Rechercher sur le réseau</target>
|
<target>Rechercher sur le réseau</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>Ne pas envoyer de messages directement, même si votre serveur ou le serveur de destination ne prend pas en charge le routage privé.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>N'utilisez PAS SimpleX pour les appels d'urgence.</target>
|
<target>N'utilisez PAS SimpleX pour les appels d'urgence.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>Ne pas utiliser de routage privé.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Faites-le plus tard</target>
|
<target>Faites-le plus tard</target>
|
||||||
@@ -2078,6 +2127,11 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Rétrograder et ouvrir le chat</target>
|
<target>Rétrograder et ouvrir le chat</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Télécharger</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Échec du téléchargement</target>
|
<target>Échec du téléchargement</target>
|
||||||
@@ -2188,6 +2242,11 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Activer le code d'autodestruction</target>
|
<target>Activer le code d'autodestruction</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Activé pour</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Chiffrer</target>
|
<target>Chiffrer</target>
|
||||||
@@ -2338,11 +2397,6 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Erreur lors de l'ajout de membre·s</target>
|
<target>Erreur lors de l'ajout de membre·s</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Erreur lors de la négociation du chiffrement PQ</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Erreur de changement d'adresse</target>
|
<target>Erreur de changement d'adresse</target>
|
||||||
@@ -2606,7 +2660,7 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Erreur : %@</target>
|
<target>Erreur : %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Fichier : %@</target>
|
<target>Fichier : %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Fichiers</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Fichiers & médias</target>
|
<target>Fichiers & médias</target>
|
||||||
@@ -2713,6 +2772,11 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Les fichiers et les médias sont interdits dans ce groupe.</target>
|
<target>Les fichiers et les médias sont interdits dans ce groupe.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Fichiers et médias non autorisés</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Fichiers et médias interdits !</target>
|
<target>Fichiers et médias interdits !</target>
|
||||||
@@ -2755,7 +2819,7 @@ Cette opération ne peut être annulée !</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Fix connection?" xml:space="preserve">
|
<trans-unit id="Fix connection?" xml:space="preserve">
|
||||||
<source>Fix connection?</source>
|
<source>Fix connection?</source>
|
||||||
<target>Réparer la connexion?</target>
|
<target>Réparer la connexion ?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Fix encryption after restoring backups." xml:space="preserve">
|
<trans-unit id="Fix encryption after restoring backups." xml:space="preserve">
|
||||||
@@ -2778,6 +2842,40 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Pour la console</target>
|
<target>Pour la console</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Transférer</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Transférer et sauvegarder des messages</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Transféré</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Transféré depuis</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Serveur de transfert : %1$@
|
||||||
|
Erreur du serveur de destination : %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Serveur de transfert : %1$@
|
||||||
|
Erreur : %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Bureau trouvé</target>
|
<target>Bureau trouvé</target>
|
||||||
@@ -2888,6 +2986,11 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)</target>
|
<target>Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Les membres du groupe peuvent envoyer des liens SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Les membres du groupe peuvent envoyer des messages directs.</target>
|
<target>Les membres du groupe peuvent envoyer des messages directs.</target>
|
||||||
@@ -3128,6 +3231,11 @@ Cette opération ne peut être annulée !</target>
|
|||||||
<target>En réponse à</target>
|
<target>En réponse à</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Sons d'appel</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Incognito</target>
|
<target>Incognito</target>
|
||||||
@@ -3583,11 +3691,20 @@ Voici votre lien pour le groupe %@ !</target>
|
|||||||
<target>Accusés de réception des messages !</target>
|
<target>Accusés de réception des messages !</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Avertissement sur la distribution des messages</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Brouillon de message</target>
|
<target>Brouillon de message</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Réactions aux messages</target>
|
<target>Réactions aux messages</target>
|
||||||
@@ -3603,6 +3720,21 @@ Voici votre lien pour le groupe %@ !</target>
|
|||||||
<target>Les réactions aux messages sont interdites dans ce groupe.</target>
|
<target>Les réactions aux messages sont interdites dans ce groupe.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Rabattement du routage des messages</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Mode de routage des messages</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>La source du message reste privée.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Texte du message</target>
|
<target>Texte du message</target>
|
||||||
@@ -3718,16 +3850,16 @@ Voici votre lien pour le groupe %@ !</target>
|
|||||||
<target>Plus d'améliorations à venir !</target>
|
<target>Plus d'améliorations à venir !</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Connexion réseau plus fiable.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Connexion probablement supprimée.</target>
|
<target>Connexion probablement supprimée.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Il est fort probable que ce contact ait supprimé la connexion avec vous.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Différents profils de chat</target>
|
<target>Différents profils de chat</target>
|
||||||
@@ -3753,6 +3885,21 @@ Voici votre lien pour le groupe %@ !</target>
|
|||||||
<target>Réseau et serveurs</target>
|
<target>Réseau et serveurs</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Connexion au réseau</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Problèmes de réseau - le message a expiré après plusieurs tentatives d'envoi.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Gestion du réseau</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Paramètres réseau</target>
|
<target>Paramètres réseau</target>
|
||||||
@@ -3863,6 +4010,11 @@ Voici votre lien pour le groupe %@ !</target>
|
|||||||
<target>Aucun historique</target>
|
<target>Aucun historique</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Pas de connexion au réseau</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Pas l'autorisation d'enregistrer un message vocal</target>
|
<target>Pas l'autorisation d'enregistrer un message vocal</target>
|
||||||
@@ -4077,6 +4229,11 @@ Voici votre lien pour le groupe %@ !</target>
|
|||||||
<target>Ou présenter ce code</target>
|
<target>Ou présenter ce code</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Autres</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>Nombre de PING</target>
|
<target>Nombre de PING</target>
|
||||||
@@ -4244,11 +4401,6 @@ Erreur : %@</target>
|
|||||||
<target>Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte</target>
|
<target>Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>E2EE post-quantique</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Conserver le brouillon du dernier message, avec les pièces jointes.</target>
|
<target>Conserver le brouillon du dernier message, avec les pièces jointes.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Erreur : %@</target>
|
|||||||
<target>Noms de fichiers privés</target>
|
<target>Noms de fichiers privés</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Routage privé des messages</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Routage privé des messages 🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Notes privées</target>
|
<target>Notes privées</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Routage privé</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profil et connexions au serveur</target>
|
<target>Profil et connexions au serveur</target>
|
||||||
@@ -4299,6 +4466,11 @@ Erreur : %@</target>
|
|||||||
<target>Image de profil</target>
|
<target>Image de profil</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Images de profil</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Nom du profil</target>
|
<target>Nom du profil</target>
|
||||||
@@ -4339,6 +4511,11 @@ Erreur : %@</target>
|
|||||||
<target>Interdire les réactions aux messages.</target>
|
<target>Interdire les réactions aux messages.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Interdire l'envoi de liens SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Interdire l'envoi de messages directs aux membres.</target>
|
<target>Interdire l'envoi de messages directs aux membres.</target>
|
||||||
@@ -4359,11 +4536,23 @@ Erreur : %@</target>
|
|||||||
<target>Interdire l'envoi de messages vocaux.</target>
|
<target>Interdire l'envoi de messages vocaux.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>Protéger l'adresse IP</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Protéger l'écran de l'app</target>
|
<target>Protéger l'écran de l'app</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Protégez votre adresse IP des relais de messagerie choisis par vos contacts.
|
||||||
|
Activez-le dans les paramètres *Réseau et serveurs*.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Protégez vos profils de chat par un mot de passe !</target>
|
<target>Protégez vos profils de chat par un mot de passe !</target>
|
||||||
@@ -4484,6 +4673,11 @@ Erreur : %@</target>
|
|||||||
<target>Historique récent et amélioration du [bot annuaire](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Historique récent et amélioration du [bot annuaire](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Le(s) destinataire(s) ne peut(vent) pas voir de qui provient ce message.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Les destinataires voient les mises à jour au fur et à mesure que vous leur écrivez.</target>
|
<target>Les destinataires voient les mises à jour au fur et à mesure que vous leur écrivez.</target>
|
||||||
@@ -4496,7 +4690,7 @@ Erreur : %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Reconnect servers?" xml:space="preserve">
|
<trans-unit id="Reconnect servers?" xml:space="preserve">
|
||||||
<source>Reconnect servers?</source>
|
<source>Reconnect servers?</source>
|
||||||
<target>Reconnecter les serveurs?</target>
|
<target>Reconnecter les serveurs ?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Record updated at" xml:space="preserve">
|
<trans-unit id="Record updated at" xml:space="preserve">
|
||||||
@@ -4571,7 +4765,7 @@ Erreur : %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Renegotiate encryption?" xml:space="preserve">
|
<trans-unit id="Renegotiate encryption?" xml:space="preserve">
|
||||||
<source>Renegotiate encryption?</source>
|
<source>Renegotiate encryption?</source>
|
||||||
<target>Renégocier le chiffrement?</target>
|
<target>Renégocier le chiffrement ?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Repeat connection request?" xml:space="preserve">
|
<trans-unit id="Repeat connection request?" xml:space="preserve">
|
||||||
@@ -4699,6 +4893,11 @@ Erreur : %@</target>
|
|||||||
<target>Serveurs SMP</target>
|
<target>Serveurs SMP</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Réception de fichiers en toute sécurité</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Groupes plus sûrs</target>
|
<target>Groupes plus sûrs</target>
|
||||||
@@ -4784,11 +4983,21 @@ Erreur : %@</target>
|
|||||||
<target>Enregistrer le message d'accueil ?</target>
|
<target>Enregistrer le message d'accueil ?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Enregistré</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Les serveurs WebRTC ICE sauvegardés seront supprimés</target>
|
<target>Les serveurs WebRTC ICE sauvegardés seront supprimés</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Enregistré depuis</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Message enregistré</target>
|
<target>Message enregistré</target>
|
||||||
@@ -4914,6 +5123,16 @@ Erreur : %@</target>
|
|||||||
<target>Envoyer un message dynamique</target>
|
<target>Envoyer un message dynamique</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Envoyer les messages de manière directe lorsque l'adresse IP est protégée et que votre serveur ou le serveur de destination ne prend pas en charge le routage privé.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Envoyez les messages de manière directe lorsque votre serveur ou le serveur de destination ne prend pas en charge le routage privé.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Envoi de notifications</target>
|
<target>Envoi de notifications</target>
|
||||||
@@ -5019,6 +5238,11 @@ Erreur : %@</target>
|
|||||||
<target>Les messages envoyés seront supprimés après une durée déterminée.</target>
|
<target>Les messages envoyés seront supprimés après une durée déterminée.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>L'adresse du serveur est incompatible avec les paramètres du réseau.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Le serveur requiert une autorisation pour créer des files d'attente, vérifiez le mot de passe</target>
|
<target>Le serveur requiert une autorisation pour créer des files d'attente, vérifiez le mot de passe</target>
|
||||||
@@ -5034,6 +5258,11 @@ Erreur : %@</target>
|
|||||||
<target>Échec du test du serveur !</target>
|
<target>Échec du test du serveur !</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>La version du serveur est incompatible avec les paramètres du réseau.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Serveurs</target>
|
<target>Serveurs</target>
|
||||||
@@ -5094,6 +5323,11 @@ Erreur : %@</target>
|
|||||||
<target>Paramètres</target>
|
<target>Paramètres</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Images de profil modelable</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Partager</target>
|
<target>Partager</target>
|
||||||
@@ -5149,11 +5383,21 @@ Erreur : %@</target>
|
|||||||
<target>Voir les derniers messages</target>
|
<target>Voir les derniers messages</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Afficher le statut du message</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Afficher l'aperçu</target>
|
<target>Afficher l'aperçu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Afficher → sur les messages envoyés via le routage privé.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Afficher :</target>
|
<target>Afficher :</target>
|
||||||
@@ -5212,6 +5456,16 @@ Erreur : %@</target>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>Liens SimpleX</target>
|
<target>Liens SimpleX</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>Les liens SimpleX sont interdits dans ce groupe.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>Les liens SimpleX ne sont pas autorisés</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Erreur : %@</target>
|
|||||||
<target>Quelqu'un</target>
|
<target>Quelqu'un</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Carré, circulaire, ou toute autre forme intermédiaire.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Démarrer le chat</target>
|
<target>Démarrer le chat</target>
|
||||||
@@ -5461,6 +5720,11 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
|
|||||||
<target>L'application peut vous avertir lorsque vous recevez des messages ou des demandes de contact - veuillez ouvrir les paramètres pour les activer.</target>
|
<target>L'application peut vous avertir lorsque vous recevez des messages ou des demandes de contact - veuillez ouvrir les paramètres pour les activer.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>L'application demandera de confirmer les téléchargements à partir de serveurs de fichiers inconnus (sauf .onion).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>La tentative de modification de la phrase secrète de la base de données n'a pas abouti.</target>
|
<target>La tentative de modification de la phrase secrète de la base de données n'a pas abouti.</target>
|
||||||
@@ -5646,6 +5910,11 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
|
|||||||
<target>Pour préserver le fuseau horaire, les fichiers image/voix utilisent le système UTC.</target>
|
<target>Pour préserver le fuseau horaire, les fichiers image/voix utilisent le système UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>Pour protéger votre adresse IP, le routage privé utilise vos serveurs SMP pour délivrer les messages.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ Vous serez invité à confirmer l'authentification avant que cette fonction ne s
|
|||||||
<target>Débloquer ce membre ?</target>
|
<target>Débloquer ce membre ?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Erreur inattendue : %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>État de la migration inattendu</target>
|
<target>État de la migration inattendu</target>
|
||||||
@@ -5788,6 +6052,11 @@ Vous serez invité à confirmer l'authentification avant que cette fonction ne s
|
|||||||
<target>Erreur inconnue</target>
|
<target>Erreur inconnue</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Serveurs inconnus !</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>À moins que vous utilisiez l'interface d'appel d'iOS, activez le mode "Ne pas déranger" pour éviter les interruptions.</target>
|
<target>À moins que vous utilisiez l'interface d'appel d'iOS, activez le mode "Ne pas déranger" pour éviter les interruptions.</target>
|
||||||
@@ -5935,6 +6204,16 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
|
|||||||
<target>Utilisation de notifications locales uniquement ?</target>
|
<target>Utilisation de notifications locales uniquement ?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Utiliser le routage privé avec des serveurs inconnus lorsque l'adresse IP n'est pas protégée.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Utiliser le routage privé avec des serveurs inconnus.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Utiliser ce serveur</target>
|
<target>Utiliser ce serveur</target>
|
||||||
@@ -6050,6 +6329,11 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
|
|||||||
<target>Les messages vocaux sont interdits dans ce groupe.</target>
|
<target>Les messages vocaux sont interdits dans ce groupe.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Les messages vocaux ne sont pas autorisés</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Messages vocaux interdits !</target>
|
<target>Messages vocaux interdits !</target>
|
||||||
@@ -6082,7 +6366,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Warning: starting chat on multiple devices is not supported and will cause message delivery failures" xml:space="preserve">
|
<trans-unit id="Warning: starting chat on multiple devices is not supported and will cause message delivery failures" xml:space="preserve">
|
||||||
<source>Warning: starting chat on multiple devices is not supported and will cause message delivery failures</source>
|
<source>Warning: starting chat on multiple devices is not supported and will cause message delivery failures</source>
|
||||||
<target>Attention: démarrer une session de chat sur plusieurs appareils n'est pas pris en charge et entraînera des dysfonctionnements au niveau de la transmission des messages</target>
|
<target>Attention : démarrer une session de chat sur plusieurs appareils n'est pas pris en charge et entraînera des dysfonctionnements au niveau de la transmission des messages</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Warning: you may lose some data!" xml:space="preserve">
|
<trans-unit id="Warning: you may lose some data!" xml:space="preserve">
|
||||||
@@ -6120,6 +6404,11 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
|
|||||||
<target>Quand disponible</target>
|
<target>Quand disponible</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>Lors des appels audio et vidéo.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Vous pouvez accepter ou refuser les demandes de contacts.</target>
|
<target>Vous pouvez accepter ou refuser les demandes de contacts.</target>
|
||||||
@@ -6130,6 +6419,21 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
|
|||||||
<target>Lorsque vous partagez un profil incognito avec quelqu'un, ce profil sera utilisé pour les groupes auxquels il vous invite.</target>
|
<target>Lorsque vous partagez un profil incognito avec quelqu'un, ce profil sera utilisé pour les groupes auxquels il vous invite.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Activé dans les discussions directes !</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Ethernet câblé</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>Avec les fichiers et les médias chiffrés.</target>
|
<target>Avec les fichiers et les médias chiffrés.</target>
|
||||||
@@ -6145,11 +6449,26 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
|
|||||||
<target>Consommation réduite de la batterie.</target>
|
<target>Consommation réduite de la batterie.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Sans Tor ou un VPN, votre adresse IP sera visible par les serveurs de fichiers.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Sans Tor ni VPN, votre adresse IP sera visible par ces relais XFTP : %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Mauvaise phrase secrète pour la base de données</target>
|
<target>Mauvaise phrase secrète pour la base de données</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Clé erronée ou connexion non identifiée - il est très probable que cette connexion soit supprimée.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Mauvaise phrase secrète !</target>
|
<target>Mauvaise phrase secrète !</target>
|
||||||
@@ -6613,6 +6932,11 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>admin</target>
|
<target>admin</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>admins</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>négociation du chiffrement avec %@…</target>
|
<target>négociation du chiffrement avec %@…</target>
|
||||||
@@ -6623,6 +6947,11 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>négociation du chiffrement…</target>
|
<target>négociation du chiffrement…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>tous les membres</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>toujours</target>
|
<target>toujours</target>
|
||||||
@@ -6953,6 +7282,11 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>event happened</target>
|
<target>event happened</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>transféré</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>groupe supprimé</target>
|
<target>groupe supprimé</target>
|
||||||
@@ -7160,6 +7494,11 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>propriétaire</target>
|
<target>propriétaire</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>propriétaires</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>pair-à-pair</target>
|
<target>pair-à-pair</target>
|
||||||
@@ -7210,6 +7549,16 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>vous a retiré</target>
|
<target>vous a retiré</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>enregistré</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>enregistré à partir de %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sec</target>
|
<target>sec</target>
|
||||||
@@ -7235,6 +7584,12 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>envoyer un message direct</target>
|
<target>envoyer un message direct</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>a changé d'adresse de contact</target>
|
<target>a changé d'adresse de contact</target>
|
||||||
@@ -7275,11 +7630,21 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>inconnu</target>
|
<target>inconnu</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>relais inconnus</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>statut inconnu</target>
|
<target>statut inconnu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>non protégé</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>mise à jour du profil de groupe</target>
|
<target>mise à jour du profil de groupe</target>
|
||||||
@@ -7345,11 +7710,21 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
|||||||
<target>semaines</target>
|
<target>semaines</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>lorsque l'IP est masquée</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>oui</target>
|
<target>oui</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>vous</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>vous êtes invité·e au groupe</target>
|
<target>vous êtes invité·e au groupe</target>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -104,7 +104,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ connected" xml:space="preserve">
|
<trans-unit id="%@ connected" xml:space="preserve">
|
||||||
<source>%@ connected</source>
|
<source>%@ connected</source>
|
||||||
<target>%@ si è connesso/a</target>
|
<target>%@ connesso/a</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ downloaded" xml:space="preserve">
|
<trans-unit id="%@ downloaded" xml:space="preserve">
|
||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Consenti i messaggi a tempo solo se il contatto li consente a te.</target>
|
<target>Consenti i messaggi a tempo solo se il contatto li consente a te.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Consenti downgrade</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Consenti l'eliminazione irreversibile dei messaggi solo se il contatto la consente a te. (24 ore)</target>
|
<target>Consenti l'eliminazione irreversibile dei messaggi solo se il contatto la consente a te. (24 ore)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Permetti di eliminare irreversibilmente i messaggi inviati. (24 ore)</target>
|
<target>Permetti di eliminare irreversibilmente i messaggi inviati. (24 ore)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Consenti di inviare link di SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Consenti l'invio di file e contenuti multimediali.</target>
|
<target>Consenti l'invio di file e contenuti multimediali.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Già in ingresso nel gruppo!</target>
|
<target>Già in ingresso nel gruppo!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Usa sempre l'instradamento privato.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Connetti via relay</target>
|
<target>Connetti via relay</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Impossibile ricevere il file</target>
|
<target>Impossibile ricevere il file</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Quota superata - il destinatario non ha ricevuto i messaggi precedentemente inviati.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Mobile</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Cambia</target>
|
<target>Cambia</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Conferma aggiornamenti database</target>
|
<target>Conferma aggiornamenti database</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Conferma i file da server sconosciuti.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Conferma le impostazioni di rete</target>
|
<target>Conferma le impostazioni di rete</target>
|
||||||
@@ -1691,6 +1721,10 @@ Questo è il tuo link una tantum!</target>
|
|||||||
<target>Il database verrà migrato al riavvio dell'app</target>
|
<target>Il database verrà migrato al riavvio dell'app</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Decentralizzato</target>
|
<target>Decentralizzato</target>
|
||||||
@@ -1938,6 +1972,11 @@ Non è reversibile!</target>
|
|||||||
<target>Dispositivi desktop</target>
|
<target>Dispositivi desktop</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Errore del server di destinazione: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Sviluppa</target>
|
<target>Sviluppa</target>
|
||||||
@@ -2043,11 +2082,21 @@ Non è reversibile!</target>
|
|||||||
<target>Individua via rete locale</target>
|
<target>Individua via rete locale</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>NON inviare messaggi direttamente, anche se il tuo server o quello di destinazione non supporta l'instradamento privato.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>NON usare SimpleX per chiamate di emergenza.</target>
|
<target>NON usare SimpleX per chiamate di emergenza.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>NON usare l'instradamento privato.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Fallo dopo</target>
|
<target>Fallo dopo</target>
|
||||||
@@ -2078,6 +2127,11 @@ Non è reversibile!</target>
|
|||||||
<target>Esegui downgrade e apri chat</target>
|
<target>Esegui downgrade e apri chat</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Scarica</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Scaricamento fallito</target>
|
<target>Scaricamento fallito</target>
|
||||||
@@ -2188,6 +2242,11 @@ Non è reversibile!</target>
|
|||||||
<target>Attiva il codice di autodistruzione</target>
|
<target>Attiva il codice di autodistruzione</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Attivo per</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Crittografare</target>
|
<target>Crittografare</target>
|
||||||
@@ -2338,11 +2397,6 @@ Non è reversibile!</target>
|
|||||||
<target>Errore di aggiunta membro/i</target>
|
<target>Errore di aggiunta membro/i</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Errore nel consentire la crittografia PQ al contatto</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Errore nella modifica dell'indirizzo</target>
|
<target>Errore nella modifica dell'indirizzo</target>
|
||||||
@@ -2606,7 +2660,7 @@ Non è reversibile!</target>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Errore: %@</target>
|
<target>Errore: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ Non è reversibile!</target>
|
|||||||
<target>File: %@</target>
|
<target>File: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>File</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>File e multimediali</target>
|
<target>File e multimediali</target>
|
||||||
@@ -2713,6 +2772,11 @@ Non è reversibile!</target>
|
|||||||
<target>File e contenuti multimediali sono vietati in questo gruppo.</target>
|
<target>File e contenuti multimediali sono vietati in questo gruppo.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>File e multimediali non consentiti</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>File e contenuti multimediali vietati!</target>
|
<target>File e contenuti multimediali vietati!</target>
|
||||||
@@ -2778,6 +2842,40 @@ Non è reversibile!</target>
|
|||||||
<target>Per console</target>
|
<target>Per console</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Inoltra</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Inoltra e salva i messaggi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Inoltrato</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Inoltrato da</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Server di inoltro: %1$@
|
||||||
|
Errore del server di destinazione: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Server di inoltro: %1$@
|
||||||
|
Errore: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Desktop trovato</target>
|
<target>Desktop trovato</target>
|
||||||
@@ -2888,6 +2986,11 @@ Non è reversibile!</target>
|
|||||||
<target>I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)</target>
|
<target>I membri del gruppo possono eliminare irreversibilmente i messaggi inviati. (24 ore)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>I membri del gruppo possono inviare link di Simplex.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>I membri del gruppo possono inviare messaggi diretti.</target>
|
<target>I membri del gruppo possono inviare messaggi diretti.</target>
|
||||||
@@ -3128,6 +3231,11 @@ Non è reversibile!</target>
|
|||||||
<target>In risposta a</target>
|
<target>In risposta a</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Suoni nelle chiamate</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Incognito</target>
|
<target>Incognito</target>
|
||||||
@@ -3583,11 +3691,20 @@ Questo è il tuo link per il gruppo %@!</target>
|
|||||||
<target>Ricevute di consegna dei messaggi!</target>
|
<target>Ricevute di consegna dei messaggi!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Avviso di consegna del messaggio</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Bozza dei messaggi</target>
|
<target>Bozza dei messaggi</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Reazioni ai messaggi</target>
|
<target>Reazioni ai messaggi</target>
|
||||||
@@ -3603,6 +3720,21 @@ Questo è il tuo link per il gruppo %@!</target>
|
|||||||
<target>Le reazioni ai messaggi sono vietate in questo gruppo.</target>
|
<target>Le reazioni ai messaggi sono vietate in questo gruppo.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Ripiego instradamento messaggio</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Modalità instradamento messaggio</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>La fonte del messaggio resta privata.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Testo del messaggio</target>
|
<target>Testo del messaggio</target>
|
||||||
@@ -3718,16 +3850,16 @@ Questo è il tuo link per il gruppo %@!</target>
|
|||||||
<target>Altri miglioramenti sono in arrivo!</target>
|
<target>Altri miglioramenti sono in arrivo!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Connessione di rete più affidabile.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Probabilmente questa connessione è stata eliminata.</target>
|
<target>Probabilmente questa connessione è stata eliminata.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Probabilmente questo contatto ha eliminato la connessione con te.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Profili di chat multipli</target>
|
<target>Profili di chat multipli</target>
|
||||||
@@ -3753,6 +3885,21 @@ Questo è il tuo link per il gruppo %@!</target>
|
|||||||
<target>Rete e server</target>
|
<target>Rete e server</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Connessione di rete</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Problemi di rete - messaggio scaduto dopo molti tentativi di inviarlo.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Gestione della rete</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Impostazioni di rete</target>
|
<target>Impostazioni di rete</target>
|
||||||
@@ -3863,6 +4010,11 @@ Questo è il tuo link per il gruppo %@!</target>
|
|||||||
<target>Nessuna cronologia</target>
|
<target>Nessuna cronologia</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Nessuna connessione di rete</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Nessuna autorizzazione per registrare messaggi vocali</target>
|
<target>Nessuna autorizzazione per registrare messaggi vocali</target>
|
||||||
@@ -4077,6 +4229,11 @@ Questo è il tuo link per il gruppo %@!</target>
|
|||||||
<target>O mostra questo codice</target>
|
<target>O mostra questo codice</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Altro</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>Conteggio PING</target>
|
<target>Conteggio PING</target>
|
||||||
@@ -4244,11 +4401,6 @@ Errore: %@</target>
|
|||||||
<target>Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata</target>
|
<target>Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>E2EE post-quantistica</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Conserva la bozza dell'ultimo messaggio, con gli allegati.</target>
|
<target>Conserva la bozza dell'ultimo messaggio, con gli allegati.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Errore: %@</target>
|
|||||||
<target>Nomi di file privati</target>
|
<target>Nomi di file privati</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Instradamento privato messaggi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Instradamento privato dei messaggi 🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Note private</target>
|
<target>Note private</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Instradamento privato</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profilo e connessioni al server</target>
|
<target>Profilo e connessioni al server</target>
|
||||||
@@ -4299,6 +4466,11 @@ Errore: %@</target>
|
|||||||
<target>Immagine del profilo</target>
|
<target>Immagine del profilo</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Immagini del profilo</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Nome del profilo</target>
|
<target>Nome del profilo</target>
|
||||||
@@ -4339,6 +4511,11 @@ Errore: %@</target>
|
|||||||
<target>Proibisci le reazioni ai messaggi.</target>
|
<target>Proibisci le reazioni ai messaggi.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Vieta l'invio di link di SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Proibisci l'invio di messaggi diretti ai membri.</target>
|
<target>Proibisci l'invio di messaggi diretti ai membri.</target>
|
||||||
@@ -4359,11 +4536,23 @@ Errore: %@</target>
|
|||||||
<target>Proibisci l'invio di messaggi vocali.</target>
|
<target>Proibisci l'invio di messaggi vocali.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>Proteggi l'indirizzo IP</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Proteggi la schermata dell'app</target>
|
<target>Proteggi la schermata dell'app</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Proteggi il tuo indirizzo IP dai relay di messaggistica scelti dai tuoi contatti.
|
||||||
|
Attivalo nelle impostazioni *Rete e server*.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Proteggi i tuoi profili di chat con una password!</target>
|
<target>Proteggi i tuoi profili di chat con una password!</target>
|
||||||
@@ -4484,6 +4673,11 @@ Errore: %@</target>
|
|||||||
<target>Cronologia recente e [bot della directory](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) migliorato.</target>
|
<target>Cronologia recente e [bot della directory](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) migliorato.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>I destinatari non possono vedere da chi proviene questo messaggio.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>I destinatari vedono gli aggiornamenti mentre li digiti.</target>
|
<target>I destinatari vedono gli aggiornamenti mentre li digiti.</target>
|
||||||
@@ -4699,6 +4893,11 @@ Errore: %@</target>
|
|||||||
<target>Server SMP</target>
|
<target>Server SMP</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Ricevi i file in sicurezza</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Gruppi più sicuri</target>
|
<target>Gruppi più sicuri</target>
|
||||||
@@ -4784,11 +4983,21 @@ Errore: %@</target>
|
|||||||
<target>Salvare il messaggio di benvenuto?</target>
|
<target>Salvare il messaggio di benvenuto?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Salvato</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>I server WebRTC ICE salvati verranno rimossi</target>
|
<target>I server WebRTC ICE salvati verranno rimossi</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Salvato da</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Messaggio salvato</target>
|
<target>Messaggio salvato</target>
|
||||||
@@ -4914,6 +5123,16 @@ Errore: %@</target>
|
|||||||
<target>Invia messaggio in diretta</target>
|
<target>Invia messaggio in diretta</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Invia messaggi direttamente quando l'indirizzo IP è protetto e il tuo server o quello di destinazione non supporta l'instradamento privato.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Invia messaggi direttamente quando il tuo server o quello di destinazione non supporta l'instradamento privato.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Invia notifiche</target>
|
<target>Invia notifiche</target>
|
||||||
@@ -5019,6 +5238,11 @@ Errore: %@</target>
|
|||||||
<target>I messaggi inviati verranno eliminati dopo il tempo impostato.</target>
|
<target>I messaggi inviati verranno eliminati dopo il tempo impostato.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>L'indirizzo del server non è compatibile con le impostazioni di rete.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Il server richiede l'autorizzazione di creare code, controlla la password</target>
|
<target>Il server richiede l'autorizzazione di creare code, controlla la password</target>
|
||||||
@@ -5034,6 +5258,11 @@ Errore: %@</target>
|
|||||||
<target>Test del server fallito!</target>
|
<target>Test del server fallito!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>La versione del server non è compatibile con le impostazioni di rete.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Server</target>
|
<target>Server</target>
|
||||||
@@ -5094,6 +5323,11 @@ Errore: %@</target>
|
|||||||
<target>Impostazioni</target>
|
<target>Impostazioni</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Forma delle immagini del profilo</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Condividi</target>
|
<target>Condividi</target>
|
||||||
@@ -5149,11 +5383,21 @@ Errore: %@</target>
|
|||||||
<target>Mostra ultimi messaggi</target>
|
<target>Mostra ultimi messaggi</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Mostra stato del messaggio</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Mostra anteprima</target>
|
<target>Mostra anteprima</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Mostra → nei messaggi inviati via instradamento privato.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Mostra:</target>
|
<target>Mostra:</target>
|
||||||
@@ -5212,6 +5456,16 @@ Errore: %@</target>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>Link di SimpleX</target>
|
<target>Link di SimpleX</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>I link di SimpleX sono vietati in questo gruppo.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>Link di SimpleX non consentiti</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Errore: %@</target>
|
|||||||
<target>Qualcuno</target>
|
<target>Qualcuno</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Quadrata, circolare o qualsiasi forma tra le due.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Avvia chat</target>
|
<target>Avvia chat</target>
|
||||||
@@ -5461,6 +5720,11 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
|
|||||||
<target>L'app può avvisarti quando ricevi messaggi o richieste di contatto: apri le impostazioni per attivare.</target>
|
<target>L'app può avvisarti quando ricevi messaggi o richieste di contatto: apri le impostazioni per attivare.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>L'app chiederà di confermare i download da server di file sconosciuti (eccetto .onion).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Il tentativo di cambiare la password del database non è stato completato.</target>
|
<target>Il tentativo di cambiare la password del database non è stato completato.</target>
|
||||||
@@ -5646,6 +5910,11 @@ Può accadere a causa di qualche bug o quando la connessione è compromessa.</ta
|
|||||||
<target>Per proteggere il fuso orario, i file immagine/vocali usano UTC.</target>
|
<target>Per proteggere il fuso orario, i file immagine/vocali usano UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>Per proteggere il tuo indirizzo IP, l'instradamento privato usa i tuoi server SMP per consegnare i messaggi.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ Ti verrà chiesto di completare l'autenticazione prima di attivare questa funzio
|
|||||||
<target>Sbloccare il membro?</target>
|
<target>Sbloccare il membro?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Errore imprevisto: % @</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Stato di migrazione imprevisto</target>
|
<target>Stato di migrazione imprevisto</target>
|
||||||
@@ -5788,6 +6052,11 @@ Ti verrà chiesto di completare l'autenticazione prima di attivare questa funzio
|
|||||||
<target>Errore sconosciuto</target>
|
<target>Errore sconosciuto</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Server sconosciuti!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>A meno che non utilizzi l'interfaccia di chiamata iOS, attiva la modalità Non disturbare per evitare interruzioni.</target>
|
<target>A meno che non utilizzi l'interfaccia di chiamata iOS, attiva la modalità Non disturbare per evitare interruzioni.</target>
|
||||||
@@ -5935,6 +6204,16 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
|
|||||||
<target>Usare solo notifiche locali?</target>
|
<target>Usare solo notifiche locali?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Usa l'instradamento privato con server sconosciuti quando l'indirizzo IP non è protetto.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Usa l'instradamento privato con server sconosciuti.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Usa il server</target>
|
<target>Usa il server</target>
|
||||||
@@ -6050,6 +6329,11 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
|
|||||||
<target>I messaggi vocali sono vietati in questo gruppo.</target>
|
<target>I messaggi vocali sono vietati in questo gruppo.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Messaggi vocali non consentiti</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Messaggi vocali vietati!</target>
|
<target>Messaggi vocali vietati!</target>
|
||||||
@@ -6120,6 +6404,11 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
|
|||||||
<target>Quando disponibili</target>
|
<target>Quando disponibili</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>Quando si connettono le chiamate audio e video.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Quando le persone chiedono di connettersi, puoi accettare o rifiutare.</target>
|
<target>Quando le persone chiedono di connettersi, puoi accettare o rifiutare.</target>
|
||||||
@@ -6130,6 +6419,21 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
|
|||||||
<target>Quando condividi un profilo in incognito con qualcuno, questo profilo verrà utilizzato per i gruppi a cui ti invitano.</target>
|
<target>Quando condividi un profilo in incognito con qualcuno, questo profilo verrà utilizzato per i gruppi a cui ti invitano.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Viene attivata nelle chat dirette!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Cavo ethernet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>Con file e multimediali criptati.</target>
|
<target>Con file e multimediali criptati.</target>
|
||||||
@@ -6145,11 +6449,26 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
|
|||||||
<target>Con consumo di batteria ridotto.</target>
|
<target>Con consumo di batteria ridotto.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Senza Tor o VPN, il tuo indirizzo IP sarà visibile ai server di file.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Senza Tor o VPN, il tuo indirizzo IP sarà visibile a questi relay XFTP: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Password del database sbagliata</target>
|
<target>Password del database sbagliata</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Chiave sbagliata o connessione sconosciuta - molto probabilmente questa connessione è stata eliminata.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Password sbagliata!</target>
|
<target>Password sbagliata!</target>
|
||||||
@@ -6613,6 +6932,11 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>amministratore</target>
|
<target>amministratore</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>amministratori</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>concordando la crittografia per %@…</target>
|
<target>concordando la crittografia per %@…</target>
|
||||||
@@ -6623,6 +6947,11 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>concordando la crittografia…</target>
|
<target>concordando la crittografia…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>tutti i membri</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>sempre</target>
|
<target>sempre</target>
|
||||||
@@ -6953,6 +7282,11 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>evento accaduto</target>
|
<target>evento accaduto</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>inoltrato</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>gruppo eliminato</target>
|
<target>gruppo eliminato</target>
|
||||||
@@ -7160,6 +7494,11 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>proprietario</target>
|
<target>proprietario</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>proprietari</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>peer-to-peer</target>
|
<target>peer-to-peer</target>
|
||||||
@@ -7210,6 +7549,16 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>ti ha rimosso/a</target>
|
<target>ti ha rimosso/a</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>salvato</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>salvato da %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sec</target>
|
<target>sec</target>
|
||||||
@@ -7235,6 +7584,12 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>invia messaggio diretto</target>
|
<target>invia messaggio diretto</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>impostato nuovo indirizzo di contatto</target>
|
<target>impostato nuovo indirizzo di contatto</target>
|
||||||
@@ -7275,11 +7630,21 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>sconosciuto</target>
|
<target>sconosciuto</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>relay sconosciuti</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>stato sconosciuto</target>
|
<target>stato sconosciuto</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>non protetto</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>ha aggiornato il profilo del gruppo</target>
|
<target>ha aggiornato il profilo del gruppo</target>
|
||||||
@@ -7345,11 +7710,21 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
|||||||
<target>settimane</target>
|
<target>settimane</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>quando l'IP è nascosto</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>sì</target>
|
<target>sì</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>tu</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>sei stato/a invitato/a al gruppo</target>
|
<target>sei stato/a invitato/a al gruppo</target>
|
||||||
|
|||||||
@@ -109,6 +109,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ downloaded" xml:space="preserve">
|
<trans-unit id="%@ downloaded" xml:space="preserve">
|
||||||
<source>%@ downloaded</source>
|
<source>%@ downloaded</source>
|
||||||
|
<target>%@ ダウンロード済</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ is connected!" xml:space="preserve">
|
<trans-unit id="%@ is connected!" xml:space="preserve">
|
||||||
@@ -133,6 +134,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ uploaded" xml:space="preserve">
|
<trans-unit id="%@ uploaded" xml:space="preserve">
|
||||||
<source>%@ uploaded</source>
|
<source>%@ uploaded</source>
|
||||||
|
<target>%@ アップロード済</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@ wants to connect!" xml:space="preserve">
|
<trans-unit id="%@ wants to connect!" xml:space="preserve">
|
||||||
@@ -142,6 +144,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@, %@ and %lld members" xml:space="preserve">
|
<trans-unit id="%@, %@ and %lld members" xml:space="preserve">
|
||||||
<source>%@, %@ and %lld members</source>
|
<source>%@, %@ and %lld members</source>
|
||||||
|
<target>%@や%@など%lld人のメンバー</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
|
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
|
||||||
@@ -211,6 +214,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%lld group events" xml:space="preserve">
|
<trans-unit id="%lld group events" xml:space="preserve">
|
||||||
<source>%lld group events</source>
|
<source>%lld group events</source>
|
||||||
|
<target>%lld件のグループイベント</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%lld members" xml:space="preserve">
|
<trans-unit id="%lld members" xml:space="preserve">
|
||||||
@@ -220,10 +224,12 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%lld messages blocked" xml:space="preserve">
|
<trans-unit id="%lld messages blocked" xml:space="preserve">
|
||||||
<source>%lld messages blocked</source>
|
<source>%lld messages blocked</source>
|
||||||
|
<target>%lld件のメッセージをブロック</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%lld messages blocked by admin" xml:space="preserve">
|
<trans-unit id="%lld messages blocked by admin" xml:space="preserve">
|
||||||
<source>%lld messages blocked by admin</source>
|
<source>%lld messages blocked by admin</source>
|
||||||
|
<target>%lldのメッセージが管理者によりブロック済</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="%lld messages marked deleted" xml:space="preserve">
|
<trans-unit id="%lld messages marked deleted" xml:space="preserve">
|
||||||
@@ -308,10 +314,12 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="(new)" xml:space="preserve">
|
<trans-unit id="(new)" xml:space="preserve">
|
||||||
<source>(new)</source>
|
<source>(new)</source>
|
||||||
|
<target>(新規)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="(this device v%@)" xml:space="preserve">
|
<trans-unit id="(this device v%@)" xml:space="preserve">
|
||||||
<source>(this device v%@)</source>
|
<source>(this device v%@)</source>
|
||||||
|
<target>(このデバイス v%@)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id=")" xml:space="preserve">
|
<trans-unit id=")" xml:space="preserve">
|
||||||
@@ -321,6 +329,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Add contact**: to create a new invitation link, or connect via a link you received." xml:space="preserve">
|
<trans-unit id="**Add contact**: to create a new invitation link, or connect via a link you received." xml:space="preserve">
|
||||||
<source>**Add contact**: to create a new invitation link, or connect via a link you received.</source>
|
<source>**Add contact**: to create a new invitation link, or connect via a link you received.</source>
|
||||||
|
<target>**コンタクトの追加**: 新しい招待リンクを作成するか、受け取ったリンクから接続します。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Add new contact**: to create your one-time QR Code for your contact." xml:space="preserve">
|
<trans-unit id="**Add new contact**: to create your one-time QR Code for your contact." xml:space="preserve">
|
||||||
@@ -330,6 +339,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Create group**: to create a new group." xml:space="preserve">
|
<trans-unit id="**Create group**: to create a new group." xml:space="preserve">
|
||||||
<source>**Create group**: to create a new group.</source>
|
<source>**Create group**: to create a new group.</source>
|
||||||
|
<target>**グループ作成**: 新しいグループを作成する。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve">
|
<trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve">
|
||||||
@@ -344,6 +354,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
|
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
|
||||||
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
|
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
|
||||||
|
<target>**注意**: 2つの端末で同じデータベースを使用すると、セキュリティ保護として、あなたが接続しているメッセージの復号化が解除されます。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
|
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
|
||||||
@@ -363,16 +374,17 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
|
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
|
||||||
<source>**Warning**: the archive will be removed.</source>
|
<source>**Warning**: the archive will be removed.</source>
|
||||||
|
<target>**警告**: アーカイブデータは削除されます。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve">
|
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve">
|
||||||
<source>**e2e encrypted** audio call</source>
|
<source>**e2e encrypted** audio call</source>
|
||||||
<target>**e2e 暗号化**音声通話</target>
|
<target>**エンドツーエンド暗号化済み**の音声通話</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**e2e encrypted** video call" xml:space="preserve">
|
<trans-unit id="**e2e encrypted** video call" xml:space="preserve">
|
||||||
<source>**e2e encrypted** video call</source>
|
<source>**e2e encrypted** video call</source>
|
||||||
<target>**e2e暗号化**ビデオ通話</target>
|
<target>**エンドツーエンド暗号化済み**の テレビ電話 通話</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="*bold*" xml:space="preserve">
|
<trans-unit id="*bold*" xml:space="preserve">
|
||||||
@@ -422,6 +434,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="0 sec" xml:space="preserve">
|
<trans-unit id="0 sec" xml:space="preserve">
|
||||||
<source>0 sec</source>
|
<source>0 sec</source>
|
||||||
|
<target>0 秒</target>
|
||||||
<note>time to disappear</note>
|
<note>time to disappear</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="0s" xml:space="preserve">
|
<trans-unit id="0s" xml:space="preserve">
|
||||||
@@ -672,6 +685,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
|
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
|
||||||
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
|
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
|
||||||
|
<target>すべての連絡先、会話、ファイルは安全に暗号化され、設定されたXFTPリレーに分割でアップロードされます。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow" xml:space="preserve">
|
<trans-unit id="Allow" xml:space="preserve">
|
||||||
@@ -689,6 +703,10 @@
|
|||||||
<target>連絡先が許可している場合のみ消えるメッセージを許可する。</target>
|
<target>連絡先が許可している場合のみ消えるメッセージを許可する。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>送信相手も永久メッセージ削除を許可する時のみに許可する。</target>
|
<target>送信相手も永久メッセージ削除を許可する時のみに許可する。</target>
|
||||||
@@ -716,7 +734,12 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow to irreversibly delete sent messages. (24 hours)</source>
|
<source>Allow to irreversibly delete sent messages. (24 hours)</source>
|
||||||
<target>送信済みメッセージの永久削除を許可する。</target>
|
<target>送信済みメッセージの永久削除を許可する。(24時間)</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>SimpleXリンクの送信を許可。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
@@ -751,7 +774,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow your contacts to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow your contacts to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow your contacts to irreversibly delete sent messages. (24 hours)</source>
|
<source>Allow your contacts to irreversibly delete sent messages. (24 hours)</source>
|
||||||
<target>送信相手が永久メッセージ削除するのを許可する。</target>
|
<target>送信相手が永久メッセージ削除するのを許可する。(24時間)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow your contacts to send disappearing messages." xml:space="preserve">
|
<trans-unit id="Allow your contacts to send disappearing messages." xml:space="preserve">
|
||||||
@@ -771,10 +794,16 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Already connecting!" xml:space="preserve">
|
<trans-unit id="Already connecting!" xml:space="preserve">
|
||||||
<source>Already connecting!</source>
|
<source>Already connecting!</source>
|
||||||
|
<target>既に接続中です!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Already joining the group!" xml:space="preserve">
|
<trans-unit id="Already joining the group!" xml:space="preserve">
|
||||||
<source>Already joining the group!</source>
|
<source>Already joining the group!</source>
|
||||||
|
<target>すでにグループに参加しています!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
@@ -799,6 +828,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="App data migration" xml:space="preserve">
|
<trans-unit id="App data migration" xml:space="preserve">
|
||||||
<source>App data migration</source>
|
<source>App data migration</source>
|
||||||
|
<target>アプリデータの移行</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="App encrypts new local files (except videos)." xml:space="preserve">
|
<trans-unit id="App encrypts new local files (except videos)." xml:space="preserve">
|
||||||
@@ -971,7 +1001,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Both you and your contact can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
<trans-unit id="Both you and your contact can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||||
<source>Both you and your contact can irreversibly delete sent messages. (24 hours)</source>
|
<source>Both you and your contact can irreversibly delete sent messages. (24 hours)</source>
|
||||||
<target>あなたと連絡相手が送信済みメッセージを永久削除できます。</target>
|
<target>あなたと連絡相手が送信済みメッセージを永久削除できます。(24時間)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Both you and your contact can make calls." xml:space="preserve">
|
<trans-unit id="Both you and your contact can make calls." xml:space="preserve">
|
||||||
@@ -1042,6 +1072,14 @@
|
|||||||
<target>ファイル受信ができません</target>
|
<target>ファイル受信ができません</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>変更</target>
|
<target>変更</target>
|
||||||
@@ -1229,6 +1267,10 @@
|
|||||||
<target>データベースのアップグレードを確認</target>
|
<target>データベースのアップグレードを確認</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -1622,6 +1664,10 @@ This is your own one-time link!</source>
|
|||||||
<target>データベースはアプリ再起動時に移行されます</target>
|
<target>データベースはアプリ再起動時に移行されます</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>分散型</target>
|
<target>分散型</target>
|
||||||
@@ -1861,6 +1907,10 @@ This cannot be undone!</source>
|
|||||||
<source>Desktop devices</source>
|
<source>Desktop devices</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>開発</target>
|
<target>開発</target>
|
||||||
@@ -1964,11 +2014,19 @@ This cannot be undone!</source>
|
|||||||
<source>Discover via local network</source>
|
<source>Discover via local network</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>緊急通報にSimpleXを使用しないでください。</target>
|
<target>緊急通報にSimpleXを使用しないでください。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>後で行う</target>
|
<target>後で行う</target>
|
||||||
@@ -1998,6 +2056,10 @@ This cannot be undone!</source>
|
|||||||
<target>ダウングレードしてチャットを開く</target>
|
<target>ダウングレードしてチャットを開く</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2103,6 +2165,10 @@ This cannot be undone!</source>
|
|||||||
<target>自己破壊パスコードを有効にする</target>
|
<target>自己破壊パスコードを有効にする</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>暗号化する</target>
|
<target>暗号化する</target>
|
||||||
@@ -2246,10 +2312,6 @@ This cannot be undone!</source>
|
|||||||
<target>メンバー追加にエラー発生</target>
|
<target>メンバー追加にエラー発生</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>アドレス変更にエラー発生</target>
|
<target>アドレス変更にエラー発生</target>
|
||||||
@@ -2504,7 +2566,7 @@ This cannot be undone!</source>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>エラー : %@</target>
|
<target>エラー : %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2593,6 +2655,10 @@ This cannot be undone!</source>
|
|||||||
<target>ファイル: %@</target>
|
<target>ファイル: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>ファイルとメディア</target>
|
<target>ファイルとメディア</target>
|
||||||
@@ -2608,6 +2674,10 @@ This cannot be undone!</source>
|
|||||||
<target>このグループでは、ファイルとメディアは禁止されています。</target>
|
<target>このグループでは、ファイルとメディアは禁止されています。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>ファイルとメディアは禁止されています!</target>
|
<target>ファイルとメディアは禁止されています!</target>
|
||||||
@@ -2671,6 +2741,32 @@ This cannot be undone!</source>
|
|||||||
<target>コンソール</target>
|
<target>コンソール</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2774,7 +2870,11 @@ This cannot be undone!</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
|
||||||
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
|
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
|
||||||
<target>グループのメンバーがメッセージを完全削除することができます。</target>
|
<target>グループのメンバーがメッセージを完全削除することができます。(24時間)</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
@@ -3011,6 +3111,10 @@ This cannot be undone!</source>
|
|||||||
<target>返信先</target>
|
<target>返信先</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>シークレットモード</target>
|
<target>シークレットモード</target>
|
||||||
@@ -3446,11 +3550,19 @@ This is your link for group %@!</source>
|
|||||||
<source>Message delivery receipts!</source>
|
<source>Message delivery receipts!</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>メッセージの下書き</target>
|
<target>メッセージの下書き</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>メッセージへのリアクション</target>
|
<target>メッセージへのリアクション</target>
|
||||||
@@ -3466,6 +3578,18 @@ This is your link for group %@!</source>
|
|||||||
<target>このグループではメッセージへのリアクションは禁止されています。</target>
|
<target>このグループではメッセージへのリアクションは禁止されています。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>メッセージ内容</target>
|
<target>メッセージ内容</target>
|
||||||
@@ -3570,16 +3694,15 @@ This is your link for group %@!</source>
|
|||||||
<target>まだまだ改善してまいります!</target>
|
<target>まだまだ改善してまいります!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>おそらく、この接続は削除されています。</target>
|
<target>おそらく、この接続は削除されています。</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>恐らくこの連絡先があなたとの接続を削除しました。</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>複数チャットのプロフィール</target>
|
<target>複数チャットのプロフィール</target>
|
||||||
@@ -3605,6 +3728,18 @@ This is your link for group %@!</source>
|
|||||||
<target>ネットワークとサーバ</target>
|
<target>ネットワークとサーバ</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>ネットワーク設定</target>
|
<target>ネットワーク設定</target>
|
||||||
@@ -3714,6 +3849,10 @@ This is your link for group %@!</source>
|
|||||||
<target>履歴はありません</target>
|
<target>履歴はありません</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>音声メッセージを録音する権限がありません</target>
|
<target>音声メッセージを録音する権限がありません</target>
|
||||||
@@ -3818,7 +3957,7 @@ This is your link for group %@!</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" xml:space="preserve">
|
<trans-unit id="Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" xml:space="preserve">
|
||||||
<source>Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)</source>
|
<source>Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)</source>
|
||||||
<target>メッセージの完全削除はあなたにしかできません (あなたの連絡先は削除対象とすることができます)。</target>
|
<target>メッセージの完全削除はあなたにしかできません (あなたの連絡先は削除対象とすることができます)。(24時間)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Only you can make calls." xml:space="preserve">
|
<trans-unit id="Only you can make calls." xml:space="preserve">
|
||||||
@@ -3843,7 +3982,7 @@ This is your link for group %@!</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)" xml:space="preserve">
|
<trans-unit id="Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)" xml:space="preserve">
|
||||||
<source>Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)</source>
|
<source>Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)</source>
|
||||||
<target>メッセージを完全削除できるのはあなたの連絡相手だけです (あなたは削除対象とすることができます)。</target>
|
<target>メッセージを完全削除できるのはあなたの連絡相手だけです (あなたは削除対象とすることができます)。(24時間)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Only your contact can make calls." xml:space="preserve">
|
<trans-unit id="Only your contact can make calls." xml:space="preserve">
|
||||||
@@ -3919,6 +4058,10 @@ This is your link for group %@!</source>
|
|||||||
<source>Or show this code</source>
|
<source>Or show this code</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>PING回数</target>
|
<target>PING回数</target>
|
||||||
@@ -4078,10 +4221,6 @@ Error: %@</source>
|
|||||||
<target>サーバアドレスの証明証IDが正しくないかもしれません</target>
|
<target>サーバアドレスの証明証IDが正しくないかもしれません</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>添付を含めて、下書きを保存する。</target>
|
<target>添付を含めて、下書きを保存する。</target>
|
||||||
@@ -4117,10 +4256,22 @@ Error: %@</source>
|
|||||||
<target>プライベートなファイル名</target>
|
<target>プライベートなファイル名</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>プロフィールとサーバ接続</target>
|
<target>プロフィールとサーバ接続</target>
|
||||||
@@ -4131,6 +4282,10 @@ Error: %@</source>
|
|||||||
<target>プロフィール画像</target>
|
<target>プロフィール画像</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4169,6 +4324,10 @@ Error: %@</source>
|
|||||||
<target>メッセージへのリアクションは禁止されています。</target>
|
<target>メッセージへのリアクションは禁止されています。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>メンバー間のダイレクトメッセージを使用禁止にする。</target>
|
<target>メンバー間のダイレクトメッセージを使用禁止にする。</target>
|
||||||
@@ -4189,11 +4348,20 @@ Error: %@</source>
|
|||||||
<target>音声メッセージを使用禁止にする。</target>
|
<target>音声メッセージを使用禁止にする。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>アプリ画面を守る</target>
|
<target>アプリ画面を守る</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>チャットのプロフィールをパスワードで保護します!</target>
|
<target>チャットのプロフィールをパスワードで保護します!</target>
|
||||||
@@ -4309,6 +4477,10 @@ Error: %@</source>
|
|||||||
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>受信者には、入力時に更新内容が表示されます。</target>
|
<target>受信者には、入力時に更新内容が表示されます。</target>
|
||||||
@@ -4518,6 +4690,10 @@ Error: %@</source>
|
|||||||
<target>SMPサーバ</target>
|
<target>SMPサーバ</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4602,11 +4778,19 @@ Error: %@</source>
|
|||||||
<target>ウェルカムメッセージを保存しますか?</target>
|
<target>ウェルカムメッセージを保存しますか?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>保存されたWebRTC ICEサーバは削除されます</target>
|
<target>保存されたWebRTC ICEサーバは削除されます</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<note>message info title</note>
|
<note>message info title</note>
|
||||||
@@ -4727,6 +4911,14 @@ Error: %@</source>
|
|||||||
<target>ライブメッセージを送信</target>
|
<target>ライブメッセージを送信</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>通知を送信する</target>
|
<target>通知を送信する</target>
|
||||||
@@ -4824,6 +5016,10 @@ Error: %@</source>
|
|||||||
<target>一定時間が経ったら送信されたメッセージが削除されます。</target>
|
<target>一定時間が経ったら送信されたメッセージが削除されます。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>キューを作成するにはサーバーの認証が必要です。パスワードを確認してください</target>
|
<target>キューを作成するにはサーバーの認証が必要です。パスワードを確認してください</target>
|
||||||
@@ -4839,6 +5035,10 @@ Error: %@</source>
|
|||||||
<target>サーバテスト失敗!</target>
|
<target>サーバテスト失敗!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>サーバ</target>
|
<target>サーバ</target>
|
||||||
@@ -4897,6 +5097,10 @@ Error: %@</source>
|
|||||||
<target>設定</target>
|
<target>設定</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>共有する</target>
|
<target>共有する</target>
|
||||||
@@ -4950,11 +5154,19 @@ Error: %@</source>
|
|||||||
<target>最新のメッセージを表示</target>
|
<target>最新のメッセージを表示</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>プレビューを表示</target>
|
<target>プレビューを表示</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>表示する:</target>
|
<target>表示する:</target>
|
||||||
@@ -5013,6 +5225,14 @@ Error: %@</source>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleXリンク</target>
|
<target>SimpleXリンク</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5050,6 +5270,10 @@ Error: %@</source>
|
|||||||
<target>誰か</target>
|
<target>誰か</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>チャットを開始する</target>
|
<target>チャットを開始する</target>
|
||||||
@@ -5256,6 +5480,10 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>アプリは、メッセージや連絡先のリクエストを受信したときに通知することができます - 設定を開いて有効にしてください。</target>
|
<target>アプリは、メッセージや連絡先のリクエストを受信したときに通知することができます - 設定を開いて有効にしてください。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>データベースのパスフレーズ変更が完了してません。</target>
|
<target>データベースのパスフレーズ変更が完了してません。</target>
|
||||||
@@ -5431,6 +5659,10 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>時間帯を漏らさないために、画像と音声ファイルはUTCを使います。</target>
|
<target>時間帯を漏らさないために、画像と音声ファイルはUTCを使います。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5516,11 +5748,6 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<source>Unblock member?</source>
|
<source>Unblock member?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>予期しないエラー: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>予期しない移行状態</target>
|
<target>予期しない移行状態</target>
|
||||||
@@ -5566,6 +5793,10 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>不明なエラー</target>
|
<target>不明なエラー</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>iOS 通話インターフェイスを使用しない場合は、中断を避けるために「おやすみモード」を有効にしてください。</target>
|
<target>iOS 通話インターフェイスを使用しない場合は、中断を避けるために「おやすみモード」を有効にしてください。</target>
|
||||||
@@ -5706,6 +5937,14 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<source>Use only local notifications?</source>
|
<source>Use only local notifications?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>サーバを使う</target>
|
<target>サーバを使う</target>
|
||||||
@@ -5813,6 +6052,10 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>このグループでは音声メッセージが使用禁止です。</target>
|
<target>このグループでは音声メッセージが使用禁止です。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>音声メッセージは使用禁止です!</target>
|
<target>音声メッセージは使用禁止です!</target>
|
||||||
@@ -5880,6 +6123,10 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>利用可能時に</target>
|
<target>利用可能時に</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>接続が要求されたら、それを受け入れるか拒否するかを選択できます。</target>
|
<target>接続が要求されたら、それを受け入れるか拒否するかを選択できます。</target>
|
||||||
@@ -5890,6 +6137,18 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>連絡相手にシークレットモードのプロフィールを共有すると、その連絡相手に招待されたグループでも同じプロフィールが使われます。</target>
|
<target>連絡相手にシークレットモードのプロフィールを共有すると、その連絡相手に招待されたグループでも同じプロフィールが使われます。</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -5903,11 +6162,23 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<source>With reduced battery usage.</source>
|
<source>With reduced battery usage.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>データベースのパスフレーズが違います</target>
|
<target>データベースのパスフレーズが違います</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>パスフレーズが違います!</target>
|
<target>パスフレーズが違います!</target>
|
||||||
@@ -6353,6 +6624,10 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<target>管理者</target>
|
<target>管理者</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>%@の暗号化に同意しています…</target>
|
<target>%@の暗号化に同意しています…</target>
|
||||||
@@ -6363,6 +6638,10 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<target>暗号化に同意しています…</target>
|
<target>暗号化に同意しています…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>常に</target>
|
<target>常に</target>
|
||||||
@@ -6685,6 +6964,10 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<target>イベント発生</target>
|
<target>イベント発生</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>グループ削除済み</target>
|
<target>グループ削除済み</target>
|
||||||
@@ -6891,6 +7174,10 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<target>オーナー</target>
|
<target>オーナー</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>P2P</target>
|
<target>P2P</target>
|
||||||
@@ -6938,6 +7225,14 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<target>あなたを除名しました</target>
|
<target>あなたを除名しました</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>秒</target>
|
<target>秒</target>
|
||||||
@@ -6962,6 +7257,12 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<source>send direct message</source>
|
<source>send direct message</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<note>profile update event chat item</note>
|
<note>profile update event chat item</note>
|
||||||
@@ -6998,10 +7299,18 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<target>不明</target>
|
<target>不明</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>グループプロフィールを更新しました</target>
|
<target>グループプロフィールを更新しました</target>
|
||||||
@@ -7065,11 +7374,19 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
|
|||||||
<target>週</target>
|
<target>週</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>はい</target>
|
<target>はい</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>グループ招待が届きました</target>
|
<target>グループ招待が届きました</target>
|
||||||
|
|||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Sta verdwijnende berichten alleen toe als uw contact dit toestaat.</target>
|
<target>Sta verdwijnende berichten alleen toe als uw contact dit toestaat.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Downgraden toestaan</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</target>
|
<target>Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contact dit toestaat. (24 uur)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Sta toe om verzonden berichten onomkeerbaar te verwijderen. (24 uur)</target>
|
<target>Sta toe om verzonden berichten onomkeerbaar te verwijderen. (24 uur)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Sta toe dat SimpleX-links worden verzonden.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Sta toe om bestanden en media te verzenden.</target>
|
<target>Sta toe om bestanden en media te verzenden.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Al lid van de groep!</target>
|
<target>Al lid van de groep!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Gebruik altijd privéroutering.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Altijd relay gebruiken</target>
|
<target>Altijd relay gebruiken</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Kan bestand niet ontvangen</target>
|
<target>Kan bestand niet ontvangen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Capaciteit overschreden - ontvanger heeft eerder verzonden berichten niet ontvangen.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Mobiel</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Veranderen</target>
|
<target>Veranderen</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Bevestig database upgrades</target>
|
<target>Bevestig database upgrades</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Bevestig bestanden van onbekende servers.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Bevestig netwerk instellingen</target>
|
<target>Bevestig netwerk instellingen</target>
|
||||||
@@ -1691,6 +1721,10 @@ Dit is uw eigen eenmalige link!</target>
|
|||||||
<target>De database wordt gemigreerd wanneer de app opnieuw wordt opgestart</target>
|
<target>De database wordt gemigreerd wanneer de app opnieuw wordt opgestart</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Gedecentraliseerd</target>
|
<target>Gedecentraliseerd</target>
|
||||||
@@ -1938,6 +1972,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Desktop apparaten</target>
|
<target>Desktop apparaten</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Bestemmingsserverfout: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Ontwikkelen</target>
|
<target>Ontwikkelen</target>
|
||||||
@@ -2043,11 +2082,21 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Ontdek via het lokale netwerk</target>
|
<target>Ontdek via het lokale netwerk</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>Stuur GEEN berichten rechtstreeks, zelfs als uw of de bestemmingsserver geen privéroutering ondersteunt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>Gebruik SimpleX NIET voor noodoproepen.</target>
|
<target>Gebruik SimpleX NIET voor noodoproepen.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>Gebruik GEEN privéroutering.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Doe het later</target>
|
<target>Doe het later</target>
|
||||||
@@ -2078,6 +2127,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Downgraden en chat openen</target>
|
<target>Downgraden en chat openen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Downloaden</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Download mislukt</target>
|
<target>Download mislukt</target>
|
||||||
@@ -2188,6 +2242,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Zelfvernietigings wachtwoord inschakelen</target>
|
<target>Zelfvernietigings wachtwoord inschakelen</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Ingeschakeld voor</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Versleutelen</target>
|
<target>Versleutelen</target>
|
||||||
@@ -2338,11 +2397,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Fout bij het toevoegen van leden</target>
|
<target>Fout bij het toevoegen van leden</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Fout bij het toestaan van contact PQ-versleuteling</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Fout bij wijzigen van adres</target>
|
<target>Fout bij wijzigen van adres</target>
|
||||||
@@ -2606,7 +2660,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Fout: %@</target>
|
<target>Fout: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Bestand: %@</target>
|
<target>Bestand: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Bestanden</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Bestanden en media</target>
|
<target>Bestanden en media</target>
|
||||||
@@ -2713,6 +2772,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Bestanden en media zijn verboden in deze groep.</target>
|
<target>Bestanden en media zijn verboden in deze groep.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Bestanden en media niet toegestaan</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Bestanden en media verboden!</target>
|
<target>Bestanden en media verboden!</target>
|
||||||
@@ -2778,6 +2842,40 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Voor console</target>
|
<target>Voor console</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Doorsturen</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Berichten doorsturen en opslaan</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Doorgestuurd</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Doorgestuurd vanuit</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Doorstuurserver: %1$@
|
||||||
|
Bestemmingsserverfout: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Doorstuurserver: %1$@
|
||||||
|
Fout: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Desktop gevonden</target>
|
<target>Desktop gevonden</target>
|
||||||
@@ -2888,6 +2986,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>Groepsleden kunnen verzonden berichten onherroepelijk verwijderen. (24 uur)</target>
|
<target>Groepsleden kunnen verzonden berichten onherroepelijk verwijderen. (24 uur)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Groepsleden kunnen SimpleX-links verzenden.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Groepsleden kunnen directe berichten sturen.</target>
|
<target>Groepsleden kunnen directe berichten sturen.</target>
|
||||||
@@ -3128,6 +3231,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
|
|||||||
<target>In antwoord op</target>
|
<target>In antwoord op</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Geluiden tijdens het bellen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Incognito</target>
|
<target>Incognito</target>
|
||||||
@@ -3583,11 +3691,20 @@ Dit is jouw link voor groep %@!</target>
|
|||||||
<target>Ontvangst bevestiging voor berichten!</target>
|
<target>Ontvangst bevestiging voor berichten!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Waarschuwing voor berichtbezorging</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Concept bericht</target>
|
<target>Concept bericht</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Reacties op berichten</target>
|
<target>Reacties op berichten</target>
|
||||||
@@ -3603,6 +3720,21 @@ Dit is jouw link voor groep %@!</target>
|
|||||||
<target>Reacties op berichten zijn verboden in deze groep.</target>
|
<target>Reacties op berichten zijn verboden in deze groep.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Terugval op berichtroutering</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Berichtrouteringsmodus</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Berichtbron blijft privé.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Bericht tekst</target>
|
<target>Bericht tekst</target>
|
||||||
@@ -3718,16 +3850,16 @@ Dit is jouw link voor groep %@!</target>
|
|||||||
<target>Meer verbeteringen volgen snel!</target>
|
<target>Meer verbeteringen volgen snel!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Betrouwbaardere netwerkverbinding.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Hoogstwaarschijnlijk is deze verbinding verwijderd.</target>
|
<target>Hoogstwaarschijnlijk is deze verbinding verwijderd.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Hoogstwaarschijnlijk heeft dit contact de verbinding met jou verwijderd.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Meerdere chat profielen</target>
|
<target>Meerdere chat profielen</target>
|
||||||
@@ -3753,6 +3885,21 @@ Dit is jouw link voor groep %@!</target>
|
|||||||
<target>Netwerk & servers</target>
|
<target>Netwerk & servers</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Netwerkverbinding</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Netwerkproblemen - bericht is verlopen na vele pogingen om het te verzenden.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Netwerkbeheer</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Netwerk instellingen</target>
|
<target>Netwerk instellingen</target>
|
||||||
@@ -3863,6 +4010,11 @@ Dit is jouw link voor groep %@!</target>
|
|||||||
<target>Geen geschiedenis</target>
|
<target>Geen geschiedenis</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Geen netwerkverbinding</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Geen toestemming om spraakbericht op te nemen</target>
|
<target>Geen toestemming om spraakbericht op te nemen</target>
|
||||||
@@ -4077,6 +4229,11 @@ Dit is jouw link voor groep %@!</target>
|
|||||||
<target>Of laat deze code zien</target>
|
<target>Of laat deze code zien</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Ander</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>PING count</target>
|
<target>PING count</target>
|
||||||
@@ -4244,11 +4401,6 @@ Fout: %@</target>
|
|||||||
<target>Mogelijk is de certificaat vingerafdruk in het server adres onjuist</target>
|
<target>Mogelijk is de certificaat vingerafdruk in het server adres onjuist</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Post-quantum E2EE</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Bewaar het laatste berichtconcept, met bijlagen.</target>
|
<target>Bewaar het laatste berichtconcept, met bijlagen.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Fout: %@</target>
|
|||||||
<target>Privé bestandsnamen</target>
|
<target>Privé bestandsnamen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Routering van privéberichten</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Routing van privéberichten🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Privé notities</target>
|
<target>Privé notities</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Privéroutering</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profiel- en serververbindingen</target>
|
<target>Profiel- en serververbindingen</target>
|
||||||
@@ -4299,6 +4466,11 @@ Fout: %@</target>
|
|||||||
<target>profielfoto</target>
|
<target>profielfoto</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Profiel afbeeldingen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Profielnaam</target>
|
<target>Profielnaam</target>
|
||||||
@@ -4339,6 +4511,11 @@ Fout: %@</target>
|
|||||||
<target>Berichten reacties verbieden.</target>
|
<target>Berichten reacties verbieden.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Verbied het verzenden van SimpleX-links</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Verbied het sturen van directe berichten naar leden.</target>
|
<target>Verbied het sturen van directe berichten naar leden.</target>
|
||||||
@@ -4359,11 +4536,23 @@ Fout: %@</target>
|
|||||||
<target>Verbieden het verzenden van spraak berichten.</target>
|
<target>Verbieden het verzenden van spraak berichten.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>Bescherm het IP-adres</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>App scherm verbergen</target>
|
<target>App scherm verbergen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Bescherm uw IP-adres tegen de berichtenrelais die door uw contacten zijn gekozen.
|
||||||
|
Schakel dit in in *Netwerk en servers*-instellingen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Bescherm je chat profielen met een wachtwoord!</target>
|
<target>Bescherm je chat profielen met een wachtwoord!</target>
|
||||||
@@ -4484,6 +4673,11 @@ Fout: %@</target>
|
|||||||
<target>Recente geschiedenis en verbeterde [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Recente geschiedenis en verbeterde [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Ontvanger(s) kunnen niet zien van wie dit bericht afkomstig is.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Ontvangers zien updates terwijl u ze typt.</target>
|
<target>Ontvangers zien updates terwijl u ze typt.</target>
|
||||||
@@ -4699,6 +4893,11 @@ Fout: %@</target>
|
|||||||
<target>SMP servers</target>
|
<target>SMP servers</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Veilig bestanden ontvangen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Veiligere groepen</target>
|
<target>Veiligere groepen</target>
|
||||||
@@ -4784,11 +4983,21 @@ Fout: %@</target>
|
|||||||
<target>Welkomst bericht opslaan?</target>
|
<target>Welkomst bericht opslaan?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Opgeslagen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Opgeslagen WebRTC ICE servers worden verwijderd</target>
|
<target>Opgeslagen WebRTC ICE servers worden verwijderd</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Opgeslagen van</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Opgeslagen bericht</target>
|
<target>Opgeslagen bericht</target>
|
||||||
@@ -4914,6 +5123,16 @@ Fout: %@</target>
|
|||||||
<target>Stuur een livebericht</target>
|
<target>Stuur een livebericht</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Stuur berichten rechtstreeks als het IP-adres beschermd is en uw of bestemmingsserver geen privéroutering ondersteunt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Stuur berichten rechtstreeks wanneer uw of de doelserver geen privéroutering ondersteunt.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Meldingen verzenden</target>
|
<target>Meldingen verzenden</target>
|
||||||
@@ -5019,6 +5238,11 @@ Fout: %@</target>
|
|||||||
<target>Verzonden berichten worden na ingestelde tijd verwijderd.</target>
|
<target>Verzonden berichten worden na ingestelde tijd verwijderd.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>Serveradres is niet compatibel met netwerkinstellingen.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Server vereist autorisatie om wachtrijen te maken, controleer wachtwoord</target>
|
<target>Server vereist autorisatie om wachtrijen te maken, controleer wachtwoord</target>
|
||||||
@@ -5034,6 +5258,11 @@ Fout: %@</target>
|
|||||||
<target>Servertest mislukt!</target>
|
<target>Servertest mislukt!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>Serverversie is incompatibel met netwerkinstellingen.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Servers</target>
|
<target>Servers</target>
|
||||||
@@ -5094,6 +5323,11 @@ Fout: %@</target>
|
|||||||
<target>Instellingen</target>
|
<target>Instellingen</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Vorm profiel afbeeldingen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Deel</target>
|
<target>Deel</target>
|
||||||
@@ -5149,11 +5383,21 @@ Fout: %@</target>
|
|||||||
<target>Laat laatste berichten zien</target>
|
<target>Laat laatste berichten zien</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Toon berichtstatus</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Toon voorbeeld</target>
|
<target>Toon voorbeeld</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Toon → bij berichten verzonden via privéroutering.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Toon:</target>
|
<target>Toon:</target>
|
||||||
@@ -5212,6 +5456,16 @@ Fout: %@</target>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleX links</target>
|
<target>SimpleX links</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>SimpleX-links zijn in deze groep verboden.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>SimpleX-links zijn niet toegestaan</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Fout: %@</target>
|
|||||||
<target>Iemand</target>
|
<target>Iemand</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Vierkant, cirkel of iets daartussenin.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Begin gesprek</target>
|
<target>Begin gesprek</target>
|
||||||
@@ -5461,6 +5720,11 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
|
|||||||
<target>De app kan u op de hoogte stellen wanneer u berichten of contact verzoeken ontvangt - open de instellingen om dit in te schakelen.</target>
|
<target>De app kan u op de hoogte stellen wanneer u berichten of contact verzoeken ontvangt - open de instellingen om dit in te schakelen.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>De app vraagt om downloads van onbekende bestandsservers (behalve .onion) te bevestigen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>De poging om het wachtwoord van de database te wijzigen is niet voltooid.</target>
|
<target>De poging om het wachtwoord van de database te wijzigen is niet voltooid.</target>
|
||||||
@@ -5646,6 +5910,11 @@ Het kan gebeuren vanwege een bug of wanneer de verbinding is aangetast.</target>
|
|||||||
<target>Om de tijdzone te beschermen, gebruiken afbeeldings-/spraakbestanden UTC.</target>
|
<target>Om de tijdzone te beschermen, gebruiken afbeeldings-/spraakbestanden UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>Om uw IP-adres te beschermen, gebruikt privéroutering uw SMP-servers om berichten te bezorgen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ U wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingesc
|
|||||||
<target>Lid deblokkeren?</target>
|
<target>Lid deblokkeren?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Onverwachte fout: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Onverwachte migratiestatus</target>
|
<target>Onverwachte migratiestatus</target>
|
||||||
@@ -5788,6 +6052,11 @@ U wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingesc
|
|||||||
<target>Onbekende fout</target>
|
<target>Onbekende fout</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Onbekende servers!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Schakel de modus Niet storen in om onderbrekingen te voorkomen, tenzij u de iOS-oproepinterface gebruikt.</target>
|
<target>Schakel de modus Niet storen in om onderbrekingen te voorkomen, tenzij u de iOS-oproepinterface gebruikt.</target>
|
||||||
@@ -5935,6 +6204,16 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
|||||||
<target>Alleen lokale meldingen gebruiken?</target>
|
<target>Alleen lokale meldingen gebruiken?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Gebruik privéroutering met onbekende servers wanneer het IP-adres niet beveiligd is.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Gebruik privéroutering met onbekende servers.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Gebruik server</target>
|
<target>Gebruik server</target>
|
||||||
@@ -6050,6 +6329,11 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
|||||||
<target>Spraak berichten zijn verboden in deze groep.</target>
|
<target>Spraak berichten zijn verboden in deze groep.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Spraakberichten niet toegestaan</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Spraak berichten verboden!</target>
|
<target>Spraak berichten verboden!</target>
|
||||||
@@ -6120,6 +6404,11 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
|||||||
<target>Wanneer beschikbaar</target>
|
<target>Wanneer beschikbaar</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>Bij het verbinden van audio- en video-oproepen.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren.</target>
|
<target>Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren.</target>
|
||||||
@@ -6130,6 +6419,21 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
|||||||
<target>Wanneer je een incognito profiel met iemand deelt, wordt dit profiel gebruikt voor de groepen waarvoor ze je uitnodigen.</target>
|
<target>Wanneer je een incognito profiel met iemand deelt, wordt dit profiel gebruikt voor de groepen waarvoor ze je uitnodigen.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>Wifi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Wordt ingeschakeld in directe chats!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Bekabeld Ethernet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>‐Met versleutelde bestanden en media.</target>
|
<target>‐Met versleutelde bestanden en media.</target>
|
||||||
@@ -6145,11 +6449,26 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
|
|||||||
<target>Met verminderd batterijgebruik.</target>
|
<target>Met verminderd batterijgebruik.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Zonder Tor of VPN is uw IP-adres zichtbaar voor bestandsservers.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Zonder Tor of VPN zal uw IP-adres zichtbaar zijn voor deze XFTP-relays: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Verkeerd wachtwoord voor de database</target>
|
<target>Verkeerd wachtwoord voor de database</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Verkeerde sleutel of onbekende verbinding - hoogstwaarschijnlijk is deze verbinding verwijderd.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Verkeerd wachtwoord!</target>
|
<target>Verkeerd wachtwoord!</target>
|
||||||
@@ -6613,6 +6932,11 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>Beheerder</target>
|
<target>Beheerder</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>beheerders</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>versleuteling overeenkomen voor %@…</target>
|
<target>versleuteling overeenkomen voor %@…</target>
|
||||||
@@ -6623,6 +6947,11 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>versleuteling overeenkomen…</target>
|
<target>versleuteling overeenkomen…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>alle leden</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>altijd</target>
|
<target>altijd</target>
|
||||||
@@ -6953,6 +7282,11 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>gebeurtenis gebeurd</target>
|
<target>gebeurtenis gebeurd</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>doorgestuurd</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>groep verwijderd</target>
|
<target>groep verwijderd</target>
|
||||||
@@ -7160,6 +7494,11 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>Eigenaar</target>
|
<target>Eigenaar</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>eigenaren</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>peer-to-peer</target>
|
<target>peer-to-peer</target>
|
||||||
@@ -7210,6 +7549,16 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>heeft je verwijderd</target>
|
<target>heeft je verwijderd</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>opgeslagen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>opgeslagen van %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sec</target>
|
<target>sec</target>
|
||||||
@@ -7235,6 +7584,12 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>stuur een direct bericht</target>
|
<target>stuur een direct bericht</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>nieuw contactadres instellen</target>
|
<target>nieuw contactadres instellen</target>
|
||||||
@@ -7275,11 +7630,21 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>onbekend</target>
|
<target>onbekend</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>onbekende relays</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>onbekende status</target>
|
<target>onbekende status</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>onbeschermd</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>bijgewerkt groep profiel</target>
|
<target>bijgewerkt groep profiel</target>
|
||||||
@@ -7345,11 +7710,21 @@ SimpleX servers kunnen uw profiel niet zien.</target>
|
|||||||
<target>weken</target>
|
<target>weken</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>wanneer IP verborgen is</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>Ja</target>
|
<target>Ja</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>jij</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>je bent uitgenodigd voor de groep</target>
|
<target>je bent uitgenodigd voor de groep</target>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="!1 colored!" xml:space="preserve">
|
<trans-unit id="!1 colored!" xml:space="preserve">
|
||||||
<source>!1 colored!</source>
|
<source>!1 colored!</source>
|
||||||
<target>!1 kolorowy!</target>
|
<target>!1 pokolorowany!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="# %@" xml:space="preserve">
|
<trans-unit id="# %@" xml:space="preserve">
|
||||||
@@ -344,32 +344,32 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve">
|
<trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve">
|
||||||
<source>**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have.</source>
|
<source>**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have.</source>
|
||||||
<target>**Bardziej prywatny**: sprawdzanie nowych wiadomości co 20 minut. Token urządzenia jest współdzielony z serwerem SimpleX Chat, ale nie informacje o liczbie kontaktów lub wiadomości.</target>
|
<target>**Bardziej prywatny**: sprawdzanie nowych wiadomości odbywa się co 20 minut. Współdzielony z serwerem SimpleX Chat jest token urządzenia, lecz nie informacje o liczbie kontaktów lub wiadomości.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." xml:space="preserve">
|
<trans-unit id="**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." xml:space="preserve">
|
||||||
<source>**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app).</source>
|
<source>**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app).</source>
|
||||||
<target>**Najbardziej prywatny**: nie korzystaj z serwera powiadomień SimpleX Chat, sprawdzaj wiadomości okresowo w tle (zależy jak często korzystasz z aplikacji).</target>
|
<target>**Najbardziej prywatny**: nie korzystaj z serwera powiadomień SimpleX Chat, wiadomości sprawdzane są co jakiś czas w tle (zależne od tego jak często korzystasz z aplikacji).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
|
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
|
||||||
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
|
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
|
||||||
<target>*Uwaga*: używanie tej samej bazy danych na dwóch urządzeniach zepsuje odszyfrowywanie wiadomości twoich połączeń, jako zabezpieczenie.</target>
|
<target>*Uwaga*: w celach bezpieczeństwa użycie tej samej bazy danych na dwóch różnych urządzeniach spowoduje brak możliwości odszyfrowywania wiadomości z Twoich połączeń.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
|
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
|
||||||
<source>**Please note**: you will NOT be able to recover or change passphrase if you lose it.</source>
|
<source>**Please note**: you will NOT be able to recover or change passphrase if you lose it.</source>
|
||||||
<target>**Uwaga**: NIE będziesz w stanie odzyskać lub zmienić hasła, jeśli je stracisz.</target>
|
<target>**Uwaga**: NIE będziesz w stanie odzyskać lub zmienić kodu dostępu, jeśli go stracisz.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from." xml:space="preserve">
|
<trans-unit id="**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from." xml:space="preserve">
|
||||||
<source>**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from.</source>
|
<source>**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from.</source>
|
||||||
<target>**Zalecane**: token urządzenia i powiadomienia są wysyłane do serwera powiadomień SimpleX Chat, ale nie treść wiadomości, rozmiar lub od kogo jest.</target>
|
<target>**Zalecane**: do serwera powiadomień SimpleX Chat wysyłany jest token urządzenia i powiadomienia, lecz nie treść wiadomości, jej rozmiar lub od kogo ona jest.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Warning**: Instant push notifications require passphrase saved in Keychain." xml:space="preserve">
|
<trans-unit id="**Warning**: Instant push notifications require passphrase saved in Keychain." xml:space="preserve">
|
||||||
<source>**Warning**: Instant push notifications require passphrase saved in Keychain.</source>
|
<source>**Warning**: Instant push notifications require passphrase saved in Keychain.</source>
|
||||||
<target>**Uwaga**: Natychmiastowe powiadomienia push wymagają hasła zapisanego w Keychain.</target>
|
<target>**Uwaga**: Natychmiastowe powiadomienia push wymagają zapisania kodu dostępu w Keychain.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
|
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
|
||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Zezwól na znikające wiadomości tylko wtedy, gdy Twój kontakt Ci na to pozwoli.</target>
|
<target>Zezwól na znikające wiadomości tylko wtedy, gdy Twój kontakt Ci na to pozwoli.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Zezwól na obniżenie wersji</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Zezwalaj na nieodwracalne usuwanie wiadomości tylko wtedy, gdy Twój kontakt Ci na to pozwoli. (24 godziny)</target>
|
<target>Zezwalaj na nieodwracalne usuwanie wiadomości tylko wtedy, gdy Twój kontakt Ci na to pozwoli. (24 godziny)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Zezwól na nieodwracalne usunięcie wysłanych wiadomości. (24 godziny)</target>
|
<target>Zezwól na nieodwracalne usunięcie wysłanych wiadomości. (24 godziny)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Zezwól na wysyłanie linków SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Pozwól na wysyłanie plików i mediów.</target>
|
<target>Pozwól na wysyłanie plików i mediów.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Już dołączono do grupy!</target>
|
<target>Już dołączono do grupy!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Zawsze używaj prywatnego trasowania.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Zawsze używaj przekaźnika</target>
|
<target>Zawsze używaj przekaźnika</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Nie można odebrać pliku</target>
|
<target>Nie można odebrać pliku</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Przekroczono pojemność - odbiorca nie otrzymał wcześniej wysłanych wiadomości.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Sieć komórkowa</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Zmień</target>
|
<target>Zmień</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Potwierdź aktualizacje bazy danych</target>
|
<target>Potwierdź aktualizacje bazy danych</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Potwierdzaj pliki z nieznanych serwerów.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Potwierdź ustawienia sieciowe</target>
|
<target>Potwierdź ustawienia sieciowe</target>
|
||||||
@@ -1691,6 +1721,10 @@ To jest twój jednorazowy link!</target>
|
|||||||
<target>Baza danych zostanie zmigrowana po ponownym uruchomieniu aplikacji</target>
|
<target>Baza danych zostanie zmigrowana po ponownym uruchomieniu aplikacji</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Zdecentralizowane</target>
|
<target>Zdecentralizowane</target>
|
||||||
@@ -1938,6 +1972,11 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Urządzenia komputerowe</target>
|
<target>Urządzenia komputerowe</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Błąd docelowego serwera: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Deweloperskie</target>
|
<target>Deweloperskie</target>
|
||||||
@@ -2043,11 +2082,21 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Odkryj przez sieć lokalną</target>
|
<target>Odkryj przez sieć lokalną</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>NIE wysyłaj wiadomości bezpośrednio, nawet jeśli serwer docelowy nie obsługuje prywatnego trasowania.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>NIE używaj SimpleX do połączeń alarmowych.</target>
|
<target>NIE używaj SimpleX do połączeń alarmowych.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>NIE używaj prywatnego trasowania.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Zrób to później</target>
|
<target>Zrób to później</target>
|
||||||
@@ -2078,6 +2127,11 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Obniż wersję i otwórz czat</target>
|
<target>Obniż wersję i otwórz czat</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Pobierz</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Pobieranie nie udane</target>
|
<target>Pobieranie nie udane</target>
|
||||||
@@ -2188,6 +2242,11 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Włącz pin samodestrukcji</target>
|
<target>Włącz pin samodestrukcji</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Włączony dla</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Szyfruj</target>
|
<target>Szyfruj</target>
|
||||||
@@ -2338,11 +2397,6 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Błąd dodawania członka(ów)</target>
|
<target>Błąd dodawania członka(ów)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Błąd pozwalania kontaktowi na szyfrowanie PQ</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Błąd zmiany adresu</target>
|
<target>Błąd zmiany adresu</target>
|
||||||
@@ -2606,7 +2660,7 @@ To nie może być cofnięte!</target>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Błąd: %@</target>
|
<target>Błąd: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Plik: %@</target>
|
<target>Plik: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Pliki</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Pliki i media</target>
|
<target>Pliki i media</target>
|
||||||
@@ -2713,6 +2772,11 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Pliki i media są zabronione w tej grupie.</target>
|
<target>Pliki i media są zabronione w tej grupie.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Pliki i multimedia nie są dozwolone</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Pliki i media zabronione!</target>
|
<target>Pliki i media zabronione!</target>
|
||||||
@@ -2778,6 +2842,40 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Dla konsoli</target>
|
<target>Dla konsoli</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Przekaż dalej</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Przesyłaj dalej i zapisuj wiadomości</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Przekazane dalej</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Przekazane dalej od</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Serwer przekazujący: %1$@
|
||||||
|
Błąd serwera docelowego: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Serwer przekazujący: %1$@
|
||||||
|
Błąd: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Znaleziono komputer</target>
|
<target>Znaleziono komputer</target>
|
||||||
@@ -2888,6 +2986,11 @@ To nie może być cofnięte!</target>
|
|||||||
<target>Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)</target>
|
<target>Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Członkowie grupy mogą wysyłać linki SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Członkowie grupy mogą wysyłać bezpośrednie wiadomości.</target>
|
<target>Członkowie grupy mogą wysyłać bezpośrednie wiadomości.</target>
|
||||||
@@ -3128,6 +3231,11 @@ To nie może być cofnięte!</target>
|
|||||||
<target>W odpowiedzi na</target>
|
<target>W odpowiedzi na</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Dźwięki w rozmowie</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Incognito</target>
|
<target>Incognito</target>
|
||||||
@@ -3583,11 +3691,20 @@ To jest twój link do grupy %@!</target>
|
|||||||
<target>Potwierdzenia dostarczenia wiadomości!</target>
|
<target>Potwierdzenia dostarczenia wiadomości!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Ostrzeżenie dostarczenia wiadomości</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Wersja robocza wiadomości</target>
|
<target>Wersja robocza wiadomości</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Reakcje wiadomości</target>
|
<target>Reakcje wiadomości</target>
|
||||||
@@ -3603,6 +3720,21 @@ To jest twój link do grupy %@!</target>
|
|||||||
<target>Reakcje wiadomości są zabronione w tej grupie.</target>
|
<target>Reakcje wiadomości są zabronione w tej grupie.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Rezerwowe trasowania wiadomości</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Tryb trasowania wiadomości</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Źródło wiadomości pozostaje prywatne.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Tekst wiadomości</target>
|
<target>Tekst wiadomości</target>
|
||||||
@@ -3718,16 +3850,16 @@ To jest twój link do grupy %@!</target>
|
|||||||
<target>Więcej ulepszeń już wkrótce!</target>
|
<target>Więcej ulepszeń już wkrótce!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Bardziej niezawodne połączenia sieciowe.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Najprawdopodobniej to połączenie jest usunięte.</target>
|
<target>Najprawdopodobniej to połączenie jest usunięte.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Najprawdopodobniej ten kontakt usunął połączenie z Tobą.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Wiele profili czatu</target>
|
<target>Wiele profili czatu</target>
|
||||||
@@ -3753,6 +3885,21 @@ To jest twój link do grupy %@!</target>
|
|||||||
<target>Sieć i serwery</target>
|
<target>Sieć i serwery</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Połączenie z siecią</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Błąd sieciowy - wiadomość wygasła po wielu próbach wysłania jej.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Zarządzenie sieciowe</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Ustawienia sieci</target>
|
<target>Ustawienia sieci</target>
|
||||||
@@ -3863,6 +4010,11 @@ To jest twój link do grupy %@!</target>
|
|||||||
<target>Brak historii</target>
|
<target>Brak historii</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Brak połączenia z siecią</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Brak uprawnień do nagrywania wiadomości głosowej</target>
|
<target>Brak uprawnień do nagrywania wiadomości głosowej</target>
|
||||||
@@ -4077,6 +4229,11 @@ To jest twój link do grupy %@!</target>
|
|||||||
<target>Lub pokaż ten kod</target>
|
<target>Lub pokaż ten kod</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Inne</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>Liczba PINGÓW</target>
|
<target>Liczba PINGÓW</target>
|
||||||
@@ -4201,12 +4358,12 @@ Błąd: %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Please enter correct current passphrase." xml:space="preserve">
|
<trans-unit id="Please enter correct current passphrase." xml:space="preserve">
|
||||||
<source>Please enter correct current passphrase.</source>
|
<source>Please enter correct current passphrase.</source>
|
||||||
<target>Wprowadź poprawne aktualne hasło.</target>
|
<target>Wprowadź poprawny obecny kod dostępu.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Please enter the previous password after restoring database backup. This action can not be undone." xml:space="preserve">
|
<trans-unit id="Please enter the previous password after restoring database backup. This action can not be undone." xml:space="preserve">
|
||||||
<source>Please enter the previous password after restoring database backup. This action can not be undone.</source>
|
<source>Please enter the previous password after restoring database backup. This action can not be undone.</source>
|
||||||
<target>Proszę podać poprzednie hasło po przywróceniu kopii zapasowej bazy danych. Tej czynności nie można cofnąć.</target>
|
<target>Proszę podać poprzedni kod dostępu po przywróceniu kopii zapasowej bazy danych. Tej czynności nie można cofnąć.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Please remember or store it securely - there is no way to recover a lost passcode!" xml:space="preserve">
|
<trans-unit id="Please remember or store it securely - there is no way to recover a lost passcode!" xml:space="preserve">
|
||||||
@@ -4226,12 +4383,12 @@ Błąd: %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Please store passphrase securely, you will NOT be able to access chat if you lose it." xml:space="preserve">
|
<trans-unit id="Please store passphrase securely, you will NOT be able to access chat if you lose it." xml:space="preserve">
|
||||||
<source>Please store passphrase securely, you will NOT be able to access chat if you lose it.</source>
|
<source>Please store passphrase securely, you will NOT be able to access chat if you lose it.</source>
|
||||||
<target>Prosimy o bezpieczne przechowywanie hasła, w przypadku jego utraty NIE będzie można uzyskać dostępu do czatu.</target>
|
<target>Przechowuj kod dostępu w bezpieczny sposób, w przypadku jego utraty NIE będzie można uzyskać dostępu do czatu.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Please store passphrase securely, you will NOT be able to change it if you lose it." xml:space="preserve">
|
<trans-unit id="Please store passphrase securely, you will NOT be able to change it if you lose it." xml:space="preserve">
|
||||||
<source>Please store passphrase securely, you will NOT be able to change it if you lose it.</source>
|
<source>Please store passphrase securely, you will NOT be able to change it if you lose it.</source>
|
||||||
<target>Prosimy o bezpieczne przechowywanie hasła, w przypadku jego utraty NIE będzie można go zmienić.</target>
|
<target>Przechowuj kod dostępu w bezpieczny sposób, w przypadku jego utraty NIE będzie można go zmienić.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Polish interface" xml:space="preserve">
|
<trans-unit id="Polish interface" xml:space="preserve">
|
||||||
@@ -4244,11 +4401,6 @@ Błąd: %@</target>
|
|||||||
<target>Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy</target>
|
<target>Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Postkwantowe E2EE</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Zachowaj ostatnią wersję roboczą wiadomości wraz z załącznikami.</target>
|
<target>Zachowaj ostatnią wersję roboczą wiadomości wraz z załącznikami.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Błąd: %@</target>
|
|||||||
<target>Prywatne nazwy plików</target>
|
<target>Prywatne nazwy plików</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Trasowanie prywatnych wiadomości</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Trasowanie prywatnych wiadomości🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Prywatne notatki</target>
|
<target>Prywatne notatki</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Prywatne trasowanie</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profil i połączenia z serwerem</target>
|
<target>Profil i połączenia z serwerem</target>
|
||||||
@@ -4299,6 +4466,11 @@ Błąd: %@</target>
|
|||||||
<target>Zdjęcie profilowe</target>
|
<target>Zdjęcie profilowe</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Zdjęcia profilowe</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Nazwa profilu</target>
|
<target>Nazwa profilu</target>
|
||||||
@@ -4339,6 +4511,11 @@ Błąd: %@</target>
|
|||||||
<target>Zabroń reakcje wiadomości.</target>
|
<target>Zabroń reakcje wiadomości.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Zabroń wysyłania linków SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Zabroń wysyłania bezpośrednich wiadomości do członków.</target>
|
<target>Zabroń wysyłania bezpośrednich wiadomości do członków.</target>
|
||||||
@@ -4359,11 +4536,23 @@ Błąd: %@</target>
|
|||||||
<target>Zabroń wysyłania wiadomości głosowych.</target>
|
<target>Zabroń wysyłania wiadomości głosowych.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>Chroń adres IP</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Chroń ekran aplikacji</target>
|
<target>Chroń ekran aplikacji</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Chroni Twój adres IP przed przekaźnikami wiadomości wybranych przez Twoje kontakty.
|
||||||
|
Włącz w ustawianiach *Sieć i serwery* .</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Chroń swoje profile czatu hasłem!</target>
|
<target>Chroń swoje profile czatu hasłem!</target>
|
||||||
@@ -4484,6 +4673,11 @@ Błąd: %@</target>
|
|||||||
<target>Ostania historia i ulepszony [bot adresowy](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Ostania historia i ulepszony [bot adresowy](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Odbiorca/y nie mogą zobaczyć od kogo jest ta wiadomość.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Odbiorcy widzą aktualizacje podczas ich wpisywania.</target>
|
<target>Odbiorcy widzą aktualizacje podczas ich wpisywania.</target>
|
||||||
@@ -4699,6 +4893,11 @@ Błąd: %@</target>
|
|||||||
<target>Serwery SMP</target>
|
<target>Serwery SMP</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Bezpiecznie otrzymuj pliki</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Bezpieczniejsze grupy</target>
|
<target>Bezpieczniejsze grupy</target>
|
||||||
@@ -4784,11 +4983,21 @@ Błąd: %@</target>
|
|||||||
<target>Zapisać wiadomość powitalną?</target>
|
<target>Zapisać wiadomość powitalną?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Zapisane</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Zapisane serwery WebRTC ICE zostaną usunięte</target>
|
<target>Zapisane serwery WebRTC ICE zostaną usunięte</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Zapisane od</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Zachowano wiadomość</target>
|
<target>Zachowano wiadomość</target>
|
||||||
@@ -4914,6 +5123,16 @@ Błąd: %@</target>
|
|||||||
<target>Wyślij wiadomość na żywo</target>
|
<target>Wyślij wiadomość na żywo</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Wysyłaj wiadomości bezpośrednio, gdy adres IP jest chroniony i Twój lub docelowy serwer nie obsługuje prywatnego trasowania.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Wysyłaj wiadomości bezpośrednio, gdy Twój lub docelowy serwer nie obsługuje prywatnego trasowania.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Wyślij powiadomienia</target>
|
<target>Wyślij powiadomienia</target>
|
||||||
@@ -5019,6 +5238,11 @@ Błąd: %@</target>
|
|||||||
<target>Wysłane wiadomości zostaną usunięte po ustawionym czasie.</target>
|
<target>Wysłane wiadomości zostaną usunięte po ustawionym czasie.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>Adres serwera jest niekompatybilny z ustawieniami sieciowymi.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Serwer wymaga autoryzacji do tworzenia kolejek, sprawdź hasło</target>
|
<target>Serwer wymaga autoryzacji do tworzenia kolejek, sprawdź hasło</target>
|
||||||
@@ -5034,6 +5258,11 @@ Błąd: %@</target>
|
|||||||
<target>Test serwera nie powiódł się!</target>
|
<target>Test serwera nie powiódł się!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>Wersja serwera jest niekompatybilna z ustawieniami sieciowymi.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Serwery</target>
|
<target>Serwery</target>
|
||||||
@@ -5094,6 +5323,11 @@ Błąd: %@</target>
|
|||||||
<target>Ustawienia</target>
|
<target>Ustawienia</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Kształtuj obrazy profilowe</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Udostępnij</target>
|
<target>Udostępnij</target>
|
||||||
@@ -5149,11 +5383,21 @@ Błąd: %@</target>
|
|||||||
<target>Pokaż ostatnie wiadomości</target>
|
<target>Pokaż ostatnie wiadomości</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Pokaż status wiadomości</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Pokaż podgląd</target>
|
<target>Pokaż podgląd</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Pokaż → na wiadomościach wysłanych przez prywatne trasowanie.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Pokaż:</target>
|
<target>Pokaż:</target>
|
||||||
@@ -5212,6 +5456,16 @@ Błąd: %@</target>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>Linki SimpleX</target>
|
<target>Linki SimpleX</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>Linki SimpleX są zablokowane na tej grupie.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>Linki SimpleX są niedozwolone</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Błąd: %@</target>
|
|||||||
<target>Ktoś</target>
|
<target>Ktoś</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Kwadrat, okrąg lub cokolwiek pomiędzy.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Rozpocznij czat</target>
|
<target>Rozpocznij czat</target>
|
||||||
@@ -5461,6 +5720,11 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
|
|||||||
<target>Aplikacja może powiadamiać Cię, gdy otrzymujesz wiadomości lub prośby o kontakt — otwórz ustawienia, aby włączyć.</target>
|
<target>Aplikacja może powiadamiać Cię, gdy otrzymujesz wiadomości lub prośby o kontakt — otwórz ustawienia, aby włączyć.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>Aplikacja zapyta o potwierdzenie pobierania od nieznanych serwerów plików (poza .onion).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Próba zmiany hasła bazy danych nie została zakończona.</target>
|
<target>Próba zmiany hasła bazy danych nie została zakończona.</target>
|
||||||
@@ -5646,6 +5910,11 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
|
|||||||
<target>Aby chronić strefę czasową, pliki obrazów/głosów używają UTC.</target>
|
<target>Aby chronić strefę czasową, pliki obrazów/głosów używają UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>Aby chronić Twój adres IP, prywatne trasowanie używa Twoich serwerów SMP, aby dostarczyć wiadomości.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania.</ta
|
|||||||
<target>Odblokować członka?</target>
|
<target>Odblokować członka?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Nieoczekiwany błąd: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Nieoczekiwany stan migracji</target>
|
<target>Nieoczekiwany stan migracji</target>
|
||||||
@@ -5788,6 +6052,11 @@ Przed włączeniem tej funkcji zostanie wyświetlony monit uwierzytelniania.</ta
|
|||||||
<target>Nieznany błąd</target>
|
<target>Nieznany błąd</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Nieznane serwery!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>O ile nie korzystasz z interfejsu połączeń systemu iOS, włącz tryb Nie przeszkadzać, aby uniknąć przerywania.</target>
|
<target>O ile nie korzystasz z interfejsu połączeń systemu iOS, włącz tryb Nie przeszkadzać, aby uniknąć przerywania.</target>
|
||||||
@@ -5935,6 +6204,16 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
|
|||||||
<target>Używać tylko lokalnych powiadomień?</target>
|
<target>Używać tylko lokalnych powiadomień?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Używaj prywatnego trasowania z nieznanymi serwerami, gdy adres IP nie jest chroniony.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Używaj prywatnego trasowania z nieznanymi serwerami.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Użyj serwera</target>
|
<target>Użyj serwera</target>
|
||||||
@@ -6050,6 +6329,11 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
|
|||||||
<target>Wiadomości głosowe są zabronione w tej grupie.</target>
|
<target>Wiadomości głosowe są zabronione w tej grupie.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Wiadomości głosowe są niedozwolone</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Wiadomości głosowe zabronione!</target>
|
<target>Wiadomości głosowe zabronione!</target>
|
||||||
@@ -6120,6 +6404,11 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
|
|||||||
<target>Gdy dostępny</target>
|
<target>Gdy dostępny</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>Podczas łączenia połączeń audio i wideo.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Kiedy ludzie proszą o połączenie, możesz je zaakceptować lub odrzucić.</target>
|
<target>Kiedy ludzie proszą o połączenie, możesz je zaakceptować lub odrzucić.</target>
|
||||||
@@ -6130,6 +6419,21 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
|
|||||||
<target>Gdy udostępnisz komuś profil incognito, będzie on używany w grupach, do których Cię zaprosi.</target>
|
<target>Gdy udostępnisz komuś profil incognito, będzie on używany w grupach, do których Cię zaprosi.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Zostanie włączone w czatach bezpośrednich!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Połączenie ethernet (po kablu)</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>Z zaszyfrowanymi plikami i multimediami.</target>
|
<target>Z zaszyfrowanymi plikami i multimediami.</target>
|
||||||
@@ -6145,11 +6449,26 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
|
|||||||
<target>Ze zmniejszonym zużyciem baterii.</target>
|
<target>Ze zmniejszonym zużyciem baterii.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Bez Tor lub VPN, Twój adres IP będzie widoczny do serwerów plików.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Bez Tor lub VPN, Twój adres IP będzie widoczny dla tych przekaźników XFTP: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Nieprawidłowe hasło bazy danych</target>
|
<target>Nieprawidłowe hasło bazy danych</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Zły klucz lub nieznane połączenie - najprawdopodobniej to połączenie jest usunięte.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Nieprawidłowe hasło!</target>
|
<target>Nieprawidłowe hasło!</target>
|
||||||
@@ -6613,6 +6932,11 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>administrator</target>
|
<target>administrator</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>administratorzy</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>uzgadnianie szyfrowania dla %@…</target>
|
<target>uzgadnianie szyfrowania dla %@…</target>
|
||||||
@@ -6623,6 +6947,11 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>uzgadnianie szyfrowania…</target>
|
<target>uzgadnianie szyfrowania…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>wszyscy członkowie</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>zawsze</target>
|
<target>zawsze</target>
|
||||||
@@ -6953,6 +7282,11 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>nowe wydarzenie</target>
|
<target>nowe wydarzenie</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>przekazane dalej</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>grupa usunięta</target>
|
<target>grupa usunięta</target>
|
||||||
@@ -7160,6 +7494,11 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>właściciel</target>
|
<target>właściciel</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>właściciele</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>peer-to-peer</target>
|
<target>peer-to-peer</target>
|
||||||
@@ -7210,6 +7549,16 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>usunął cię</target>
|
<target>usunął cię</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>zapisane</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>zapisane od %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sek</target>
|
<target>sek</target>
|
||||||
@@ -7235,6 +7584,12 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>wyślij wiadomość bezpośrednią</target>
|
<target>wyślij wiadomość bezpośrednią</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>ustaw nowy adres kontaktu</target>
|
<target>ustaw nowy adres kontaktu</target>
|
||||||
@@ -7275,11 +7630,21 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>nieznany</target>
|
<target>nieznany</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>nieznane przekaźniki</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>nieznany status</target>
|
<target>nieznany status</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>niezabezpieczony</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>zaktualizowano profil grupy</target>
|
<target>zaktualizowano profil grupy</target>
|
||||||
@@ -7345,11 +7710,21 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
|
|||||||
<target>tygodnie</target>
|
<target>tygodnie</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>gdy IP ukryty</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>tak</target>
|
<target>tak</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>Ty</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>jesteś zaproszony do grupy</target>
|
<target>jesteś zaproszony do grupy</target>
|
||||||
|
|||||||
@@ -610,160 +610,197 @@ Available in v5.1</source>
|
|||||||
<source>Can't delete user profile!</source>
|
<source>Can't delete user profile!</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Can't invite contact!" xml:space="preserve">
|
<trans-unit id="Can't invite contact!" xml:space="preserve" approved="no">
|
||||||
<source>Can't invite contact!</source>
|
<source>Can't invite contact!</source>
|
||||||
|
<target state="translated">Não é possível convidar contato!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Can't invite contacts!" xml:space="preserve">
|
<trans-unit id="Can't invite contacts!" xml:space="preserve" approved="no">
|
||||||
<source>Can't invite contacts!</source>
|
<source>Can't invite contacts!</source>
|
||||||
|
<target state="translated">Não é possível convidar contatos!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Cancel" xml:space="preserve">
|
<trans-unit id="Cancel" xml:space="preserve" approved="no">
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
|
<target state="translated">Cancelar</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Cannot access keychain to save database password" xml:space="preserve">
|
<trans-unit id="Cannot access keychain to save database password" xml:space="preserve" approved="no">
|
||||||
<source>Cannot access keychain to save database password</source>
|
<source>Cannot access keychain to save database password</source>
|
||||||
|
<target state="translated">Não é possível acessar as chaves para salvar a senha do banco de dados</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Cannot receive file" xml:space="preserve">
|
<trans-unit id="Cannot receive file" xml:space="preserve" approved="no">
|
||||||
<source>Cannot receive file</source>
|
<source>Cannot receive file</source>
|
||||||
|
<target state="translated">Não é possível receber o arquivo</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve" approved="no">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
|
<target state="translated">Mudar</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change passcode" xml:space="preserve">
|
<trans-unit id="Change passcode" xml:space="preserve">
|
||||||
<source>Change passcode</source>
|
<source>Change passcode</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change database passphrase?" xml:space="preserve">
|
<trans-unit id="Change database passphrase?" xml:space="preserve" approved="no">
|
||||||
<source>Change database passphrase?</source>
|
<source>Change database passphrase?</source>
|
||||||
|
<target state="translated">Alterar a senha do banco de dados?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change lock mode" xml:space="preserve">
|
<trans-unit id="Change lock mode" xml:space="preserve" approved="no">
|
||||||
<source>Change lock mode</source>
|
<source>Change lock mode</source>
|
||||||
|
<target state="translated">Alterar modo de bloqueio</target>
|
||||||
<note>authentication reason</note>
|
<note>authentication reason</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change member role?" xml:space="preserve">
|
<trans-unit id="Change member role?" xml:space="preserve" approved="no">
|
||||||
<source>Change member role?</source>
|
<source>Change member role?</source>
|
||||||
|
<target state="translated">Alterar a função do membro?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change passcode" xml:space="preserve">
|
<trans-unit id="Change passcode" xml:space="preserve" approved="no">
|
||||||
<source>Change passcode</source>
|
<source>Change passcode</source>
|
||||||
|
<target state="translated">Alterar senha</target>
|
||||||
<note>authentication reason</note>
|
<note>authentication reason</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change receiving address" xml:space="preserve">
|
<trans-unit id="Change receiving address" xml:space="preserve" approved="no">
|
||||||
<source>Change receiving address</source>
|
<source>Change receiving address</source>
|
||||||
|
<target state="translated">Alterar endereço de recebimento</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change receiving address?" xml:space="preserve">
|
<trans-unit id="Change receiving address?" xml:space="preserve" approved="no">
|
||||||
<source>Change receiving address?</source>
|
<source>Change receiving address?</source>
|
||||||
|
<target state="translated">Alterar endereço de recebimento?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Change role" xml:space="preserve">
|
<trans-unit id="Change role" xml:space="preserve" approved="no">
|
||||||
<source>Change role</source>
|
<source>Change role</source>
|
||||||
|
<target state="translated">Mudar função</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat archive" xml:space="preserve">
|
<trans-unit id="Chat archive" xml:space="preserve" approved="no">
|
||||||
<source>Chat archive</source>
|
<source>Chat archive</source>
|
||||||
|
<target state="translated">Arquivar conversa</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat console" xml:space="preserve">
|
<trans-unit id="Chat console" xml:space="preserve" approved="no">
|
||||||
<source>Chat console</source>
|
<source>Chat console</source>
|
||||||
|
<target state="translated">Console da conversa</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat database" xml:space="preserve">
|
<trans-unit id="Chat database" xml:space="preserve" approved="no">
|
||||||
<source>Chat database</source>
|
<source>Chat database</source>
|
||||||
|
<target state="translated">Banco de Dados da conversa</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat database deleted" xml:space="preserve">
|
<trans-unit id="Chat database deleted" xml:space="preserve" approved="no">
|
||||||
<source>Chat database deleted</source>
|
<source>Chat database deleted</source>
|
||||||
|
<target state="translated">Banco de Dados da conversa apagado</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat database imported" xml:space="preserve">
|
<trans-unit id="Chat database imported" xml:space="preserve" approved="no">
|
||||||
<source>Chat database imported</source>
|
<source>Chat database imported</source>
|
||||||
|
<target state="translated">Banco de Dados da conversa importado</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat is running" xml:space="preserve">
|
<trans-unit id="Chat is running" xml:space="preserve" approved="no">
|
||||||
<source>Chat is running</source>
|
<source>Chat is running</source>
|
||||||
|
<target state="translated">A conversa está em execução</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat is stopped" xml:space="preserve">
|
<trans-unit id="Chat is stopped" xml:space="preserve">
|
||||||
<source>Chat is stopped</source>
|
<source>Chat is stopped</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chat preferences" xml:space="preserve">
|
<trans-unit id="Chat preferences" xml:space="preserve" approved="no">
|
||||||
<source>Chat preferences</source>
|
<source>Chat preferences</source>
|
||||||
|
<target state="translated">Preferências da conversa</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chats" xml:space="preserve">
|
<trans-unit id="Chats" xml:space="preserve" approved="no">
|
||||||
<source>Chats</source>
|
<source>Chats</source>
|
||||||
|
<target state="translated">Conversas</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Check server address and try again." xml:space="preserve">
|
<trans-unit id="Check server address and try again." xml:space="preserve" approved="no">
|
||||||
<source>Check server address and try again.</source>
|
<source>Check server address and try again.</source>
|
||||||
|
<target state="translated">Verifique o endereço do servidor e tente novamente.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Chinese and Spanish interface" xml:space="preserve">
|
<trans-unit id="Chinese and Spanish interface" xml:space="preserve" approved="no">
|
||||||
<source>Chinese and Spanish interface</source>
|
<source>Chinese and Spanish interface</source>
|
||||||
|
<target state="translated">Interface em Chinês e Espanhol</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Choose file" xml:space="preserve">
|
<trans-unit id="Choose file" xml:space="preserve" approved="no">
|
||||||
<source>Choose file</source>
|
<source>Choose file</source>
|
||||||
|
<target state="translated">Escolher arquivo</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Choose from library" xml:space="preserve">
|
<trans-unit id="Choose from library" xml:space="preserve" approved="no">
|
||||||
<source>Choose from library</source>
|
<source>Choose from library</source>
|
||||||
|
<target state="translated">Escolha da biblioteca</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Clear" xml:space="preserve">
|
<trans-unit id="Clear" xml:space="preserve" approved="no">
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
|
<target state="translated">Limpar</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Clear conversation" xml:space="preserve">
|
<trans-unit id="Clear conversation" xml:space="preserve" approved="no">
|
||||||
<source>Clear conversation</source>
|
<source>Clear conversation</source>
|
||||||
|
<target state="translated">Limpar conversa</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Clear conversation?" xml:space="preserve">
|
<trans-unit id="Clear conversation?" xml:space="preserve" approved="no">
|
||||||
<source>Clear conversation?</source>
|
<source>Clear conversation?</source>
|
||||||
|
<target state="translated">Limpar conversa?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Clear verification" xml:space="preserve">
|
<trans-unit id="Clear verification" xml:space="preserve" approved="no">
|
||||||
<source>Clear verification</source>
|
<source>Clear verification</source>
|
||||||
|
<target state="translated">Limpar verificação</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Colors" xml:space="preserve">
|
<trans-unit id="Colors" xml:space="preserve" approved="no">
|
||||||
<source>Colors</source>
|
<source>Colors</source>
|
||||||
|
<target state="translated">Cores</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Compare file" xml:space="preserve">
|
<trans-unit id="Compare file" xml:space="preserve" approved="no">
|
||||||
<source>Compare file</source>
|
<source>Compare file</source>
|
||||||
|
<target state="translated">Comparar arquivo</target>
|
||||||
<note>server test step</note>
|
<note>server test step</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Compare security codes with your contacts." xml:space="preserve">
|
<trans-unit id="Compare security codes with your contacts." xml:space="preserve" approved="no">
|
||||||
<source>Compare security codes with your contacts.</source>
|
<source>Compare security codes with your contacts.</source>
|
||||||
|
<target state="translated">Compare os códigos de segurança com seus contatos.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Configure ICE servers" xml:space="preserve">
|
<trans-unit id="Configure ICE servers" xml:space="preserve" approved="no">
|
||||||
<source>Configure ICE servers</source>
|
<source>Configure ICE servers</source>
|
||||||
|
<target state="translated">Configurar servidores ICE</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Confirm" xml:space="preserve">
|
<trans-unit id="Confirm" xml:space="preserve" approved="no">
|
||||||
<source>Confirm</source>
|
<source>Confirm</source>
|
||||||
|
<target state="translated">Confirme</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Confirm Passcode" xml:space="preserve">
|
<trans-unit id="Confirm Passcode" xml:space="preserve" approved="no">
|
||||||
<source>Confirm Passcode</source>
|
<source>Confirm Passcode</source>
|
||||||
|
<target state="translated">Confirmar senha</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Confirm database upgrades" xml:space="preserve">
|
<trans-unit id="Confirm database upgrades" xml:space="preserve" approved="no">
|
||||||
<source>Confirm database upgrades</source>
|
<source>Confirm database upgrades</source>
|
||||||
|
<target state="translated">Confirmar atualizações do banco de dados</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Confirm new passphrase…" xml:space="preserve">
|
<trans-unit id="Confirm new passphrase…" xml:space="preserve" approved="no">
|
||||||
<source>Confirm new passphrase…</source>
|
<source>Confirm new passphrase…</source>
|
||||||
|
<target state="translated">Confirme a nova senha…</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Confirm password" xml:space="preserve">
|
<trans-unit id="Confirm password" xml:space="preserve">
|
||||||
@@ -4447,6 +4484,62 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target state="translated">Permitir apagar irreversivelmente as mensagens enviadas. (24 horas)</target>
|
<target state="translated">Permitir apagar irreversivelmente as mensagens enviadas. (24 horas)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve" approved="no">
|
||||||
|
<source>Choose _Migrate from another device_ on the new device and scan QR code.</source>
|
||||||
|
<target state="translated">Escolha _Migrar de outro dispositivo_ no novo dispositivo e leia o código QR.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cancel migration" xml:space="preserve" approved="no">
|
||||||
|
<source>Cancel migration</source>
|
||||||
|
<target state="translated">Cancelar migração</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Camera not available" xml:space="preserve" approved="no">
|
||||||
|
<source>Camera not available</source>
|
||||||
|
<target state="translated">Câmera não disponível</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Change self-destruct passcode" xml:space="preserve" approved="no">
|
||||||
|
<source>Change self-destruct passcode</source>
|
||||||
|
<target state="translated">Alterar a senha de autodestruição</target>
|
||||||
|
<note>authentication reason
|
||||||
|
set passcode view</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." xml:space="preserve" approved="no">
|
||||||
|
<source>Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat.</source>
|
||||||
|
<target state="translated">A conversa foi interrompida. Se você já usou esse banco de dados em outro dispositivo, deverá transferi-lo de volta antes de iniciar a conversa.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Chat migrated!" xml:space="preserve" approved="no">
|
||||||
|
<source>Chat migrated!</source>
|
||||||
|
<target state="translated">Conversa migrada!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Clear private notes?" xml:space="preserve" approved="no">
|
||||||
|
<source>Clear private notes?</source>
|
||||||
|
<target state="translated">Limpar notas privadas?</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm network settings" xml:space="preserve" approved="no">
|
||||||
|
<source>Confirm network settings</source>
|
||||||
|
<target state="translated">Confirme as configurações de rede</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm that you remember database passphrase to migrate it." xml:space="preserve" approved="no">
|
||||||
|
<source>Confirm that you remember database passphrase to migrate it.</source>
|
||||||
|
<target state="translated">Confirme se você se lembra da senha do banco de dados para migrá-lo.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Change self-destruct mode" xml:space="preserve" approved="no">
|
||||||
|
<source>Change self-destruct mode</source>
|
||||||
|
<target state="translated">Alterar modo de autodestruição</target>
|
||||||
|
<note>authentication reason</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm upload" xml:space="preserve" approved="no">
|
||||||
|
<source>Confirm upload</source>
|
||||||
|
<target state="translated">Confirmar envio</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
<file original="en.lproj/SimpleX--iOS--InfoPlist.strings" source-language="en" target-language="pt" datatype="plaintext">
|
<file original="en.lproj/SimpleX--iOS--InfoPlist.strings" source-language="en" target-language="pt" datatype="plaintext">
|
||||||
|
|||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Разрешить исчезающие сообщения, только если Ваш контакт разрешает их Вам.</target>
|
<target>Разрешить исчезающие сообщения, только если Ваш контакт разрешает их Вам.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Разрешить прямую доставку</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Разрешить необратимое удаление сообщений, только если Ваш контакт разрешает это Вам. (24 часа)</target>
|
<target>Разрешить необратимое удаление сообщений, только если Ваш контакт разрешает это Вам. (24 часа)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Разрешить необратимо удалять отправленные сообщения. (24 часа)</target>
|
<target>Разрешить необратимо удалять отправленные сообщения. (24 часа)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Разрешить отправлять ссылки SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Разрешить посылать файлы и медиа.</target>
|
<target>Разрешить посылать файлы и медиа.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Вступление в группу уже начато!</target>
|
<target>Вступление в группу уже начато!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Всегда использовать конфиденциальную доставку.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Всегда соединяться через relay</target>
|
<target>Всегда соединяться через relay</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Невозможно получить файл</target>
|
<target>Невозможно получить файл</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Превышено количество сообщений - предыдущие сообщения не доставлены.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Мобильная сеть</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Поменять</target>
|
<target>Поменять</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Подтвердить обновление базы данных</target>
|
<target>Подтвердить обновление базы данных</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Подтверждать файлы с неизвестных серверов.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Подтвердите настройки сети</target>
|
<target>Подтвердите настройки сети</target>
|
||||||
@@ -1691,6 +1721,10 @@ This is your own one-time link!</source>
|
|||||||
<target>Данные чата будут мигрированы при перезапуске</target>
|
<target>Данные чата будут мигрированы при перезапуске</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Децентрализованный</target>
|
<target>Децентрализованный</target>
|
||||||
@@ -1938,6 +1972,11 @@ This cannot be undone!</source>
|
|||||||
<target>Компьютеры</target>
|
<target>Компьютеры</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Ошибка сервера получателя: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Для разработчиков</target>
|
<target>Для разработчиков</target>
|
||||||
@@ -2043,11 +2082,21 @@ This cannot be undone!</source>
|
|||||||
<target>Обнаружение по локальной сети</target>
|
<target>Обнаружение по локальной сети</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>Не отправлять сообщения напрямую, даже если сервер получателя не поддерживает конфиденциальную доставку.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>Не используйте SimpleX для экстренных звонков.</target>
|
<target>Не используйте SimpleX для экстренных звонков.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>Не использовать конфиденциальную доставку.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Отложить</target>
|
<target>Отложить</target>
|
||||||
@@ -2078,6 +2127,11 @@ This cannot be undone!</source>
|
|||||||
<target>Откатить версию и открыть чат</target>
|
<target>Откатить версию и открыть чат</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Загрузить</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Ошибка загрузки</target>
|
<target>Ошибка загрузки</target>
|
||||||
@@ -2188,6 +2242,11 @@ This cannot be undone!</source>
|
|||||||
<target>Включить код самоуничтожения</target>
|
<target>Включить код самоуничтожения</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Включено для</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Зашифровать</target>
|
<target>Зашифровать</target>
|
||||||
@@ -2338,11 +2397,6 @@ This cannot be undone!</source>
|
|||||||
<target>Ошибка при добавлении членов группы</target>
|
<target>Ошибка при добавлении членов группы</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Ошибка разрешения квантово-устойчивого шифрования</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Ошибка при изменении адреса</target>
|
<target>Ошибка при изменении адреса</target>
|
||||||
@@ -2606,7 +2660,7 @@ This cannot be undone!</source>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Ошибка: %@</target>
|
<target>Ошибка: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ This cannot be undone!</source>
|
|||||||
<target>Файл: %@</target>
|
<target>Файл: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Файлы</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Файлы и медиа</target>
|
<target>Файлы и медиа</target>
|
||||||
@@ -2713,6 +2772,11 @@ This cannot be undone!</source>
|
|||||||
<target>Файлы и медиа запрещены в этой группе.</target>
|
<target>Файлы и медиа запрещены в этой группе.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Файлы и медиа не разрешены</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Файлы и медиа запрещены!</target>
|
<target>Файлы и медиа запрещены!</target>
|
||||||
@@ -2778,6 +2842,40 @@ This cannot be undone!</source>
|
|||||||
<target>Для консоли</target>
|
<target>Для консоли</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Переслать</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Переслать и сохранить сообщение</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Переслано</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Переслано из</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Пересылающий сервер: %1$@
|
||||||
|
Ошибка сервера получателя: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Пересылающий сервер: %1$@
|
||||||
|
Ошибка: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Компьютер найден</target>
|
<target>Компьютер найден</target>
|
||||||
@@ -2850,7 +2948,7 @@ This cannot be undone!</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Group image" xml:space="preserve">
|
<trans-unit id="Group image" xml:space="preserve">
|
||||||
<source>Group image</source>
|
<source>Group image</source>
|
||||||
<target>Аватар группы</target>
|
<target>Картинка группы</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Group invitation" xml:space="preserve">
|
<trans-unit id="Group invitation" xml:space="preserve">
|
||||||
@@ -2888,6 +2986,11 @@ This cannot be undone!</source>
|
|||||||
<target>Члены группы могут необратимо удалять отправленные сообщения. (24 часа)</target>
|
<target>Члены группы могут необратимо удалять отправленные сообщения. (24 часа)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Члены группы могут отправлять ссылки SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Члены группы могут посылать прямые сообщения.</target>
|
<target>Члены группы могут посылать прямые сообщения.</target>
|
||||||
@@ -3128,6 +3231,11 @@ This cannot be undone!</source>
|
|||||||
<target>В ответ на</target>
|
<target>В ответ на</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Звуки во время звонков</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Инкогнито</target>
|
<target>Инкогнито</target>
|
||||||
@@ -3583,11 +3691,20 @@ This is your link for group %@!</source>
|
|||||||
<target>Отчеты о доставке сообщений!</target>
|
<target>Отчеты о доставке сообщений!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Предупреждение доставки сообщения</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Черновик сообщения</target>
|
<target>Черновик сообщения</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Реакции на сообщения</target>
|
<target>Реакции на сообщения</target>
|
||||||
@@ -3603,6 +3720,21 @@ This is your link for group %@!</source>
|
|||||||
<target>Реакции на сообщения запрещены в этой группе.</target>
|
<target>Реакции на сообщения запрещены в этой группе.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Прямая доставка сообщений</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Режим доставки сообщений</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Источник сообщения остаётся конфиденциальным.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Текст сообщения</target>
|
<target>Текст сообщения</target>
|
||||||
@@ -3718,16 +3850,16 @@ This is your link for group %@!</source>
|
|||||||
<target>Дополнительные улучшения скоро!</target>
|
<target>Дополнительные улучшения скоро!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Более надежное соединение с сетью.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Скорее всего, соединение удалено.</target>
|
<target>Скорее всего, соединение удалено.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Скорее всего, этот контакт удалил соединение с Вами.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Много профилей чата</target>
|
<target>Много профилей чата</target>
|
||||||
@@ -3753,6 +3885,21 @@ This is your link for group %@!</source>
|
|||||||
<target>Сеть & серверы</target>
|
<target>Сеть & серверы</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Интернет-соединение</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Ошибка сети - сообщение не было отправлено после многократных попыток.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Статус сети</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Настройки сети</target>
|
<target>Настройки сети</target>
|
||||||
@@ -3863,6 +4010,11 @@ This is your link for group %@!</source>
|
|||||||
<target>Нет истории</target>
|
<target>Нет истории</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Нет интернет-соединения</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Нет разрешения для записи голосового сообщения</target>
|
<target>Нет разрешения для записи голосового сообщения</target>
|
||||||
@@ -4077,6 +4229,11 @@ This is your link for group %@!</source>
|
|||||||
<target>Или покажите этот код</target>
|
<target>Или покажите этот код</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Другaя сеть</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>Количество PING</target>
|
<target>Количество PING</target>
|
||||||
@@ -4244,11 +4401,6 @@ Error: %@</source>
|
|||||||
<target>Возможно, хэш сертификата в адресе сервера неверный</target>
|
<target>Возможно, хэш сертификата в адресе сервера неверный</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Квантово-устойчивое E2EE</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Сохранить последний черновик, вместе с вложениями.</target>
|
<target>Сохранить последний черновик, вместе с вложениями.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Error: %@</source>
|
|||||||
<target>Защищенные имена файлов</target>
|
<target>Защищенные имена файлов</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Конфиденциальная доставка сообщений</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Конфиденциальная доставка сообщений 🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Личные заметки</target>
|
<target>Личные заметки</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Конфиденциальная доставка</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Профиль и соединения на сервере</target>
|
<target>Профиль и соединения на сервере</target>
|
||||||
@@ -4296,7 +4463,12 @@ Error: %@</source>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Profile image" xml:space="preserve">
|
<trans-unit id="Profile image" xml:space="preserve">
|
||||||
<source>Profile image</source>
|
<source>Profile image</source>
|
||||||
<target>Аватар</target>
|
<target>Картинка профиля</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Картинки профилей</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
@@ -4339,6 +4511,11 @@ Error: %@</source>
|
|||||||
<target>Запретить реакции на сообщения.</target>
|
<target>Запретить реакции на сообщения.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Запретить отправку ссылок SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Запретить посылать прямые сообщения членам группы.</target>
|
<target>Запретить посылать прямые сообщения членам группы.</target>
|
||||||
@@ -4359,11 +4536,23 @@ Error: %@</source>
|
|||||||
<target>Запретить отправлять голосовые сообщений.</target>
|
<target>Запретить отправлять голосовые сообщений.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>Защитить IP адрес</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Защитить экран приложения</target>
|
<target>Защитить экран приложения</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.
|
||||||
|
Включите в настройках *Сеть и серверы*.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Защитите Ваши профили чата паролем!</target>
|
<target>Защитите Ваши профили чата паролем!</target>
|
||||||
@@ -4484,6 +4673,11 @@ Error: %@</source>
|
|||||||
<target>История сообщений и улучшенный [каталог групп](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>История сообщений и улучшенный [каталог групп](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Получатели не видят от кого это сообщение.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Получатели видят их в то время как Вы их набираете.</target>
|
<target>Получатели видят их в то время как Вы их набираете.</target>
|
||||||
@@ -4699,6 +4893,11 @@ Error: %@</source>
|
|||||||
<target>SMP серверы</target>
|
<target>SMP серверы</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Получайте файлы безопасно</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Более безопасные группы</target>
|
<target>Более безопасные группы</target>
|
||||||
@@ -4784,11 +4983,21 @@ Error: %@</source>
|
|||||||
<target>Сохранить приветственное сообщение?</target>
|
<target>Сохранить приветственное сообщение?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Сохранено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Сохраненные WebRTC ICE серверы будут удалены</target>
|
<target>Сохраненные WebRTC ICE серверы будут удалены</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Сохранено из</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Сохраненное сообщение</target>
|
<target>Сохраненное сообщение</target>
|
||||||
@@ -4914,6 +5123,16 @@ Error: %@</source>
|
|||||||
<target>Отправить живое сообщение</target>
|
<target>Отправить живое сообщение</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Отправлять сообщения напрямую, когда IP адрес защищен, и Ваш сервер или сервер получателя не поддерживает конфиденциальную доставку.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Отправлять сообщения напрямую, когда Ваш сервер или сервер получателя не поддерживает конфиденциальную доставку.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Отправлять уведомления</target>
|
<target>Отправлять уведомления</target>
|
||||||
@@ -5019,6 +5238,11 @@ Error: %@</source>
|
|||||||
<target>Отправленные сообщения будут удалены через заданное время.</target>
|
<target>Отправленные сообщения будут удалены через заданное время.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>Адрес сервера несовместим с настройками сети.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Сервер требует авторизации для создания очередей, проверьте пароль</target>
|
<target>Сервер требует авторизации для создания очередей, проверьте пароль</target>
|
||||||
@@ -5034,6 +5258,11 @@ Error: %@</source>
|
|||||||
<target>Ошибка теста сервера!</target>
|
<target>Ошибка теста сервера!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>Версия сервера несовместима с настройками сети.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Серверы</target>
|
<target>Серверы</target>
|
||||||
@@ -5094,6 +5323,11 @@ Error: %@</source>
|
|||||||
<target>Настройки</target>
|
<target>Настройки</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Форма картинок профилей</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Поделиться</target>
|
<target>Поделиться</target>
|
||||||
@@ -5149,11 +5383,21 @@ Error: %@</source>
|
|||||||
<target>Показывать последние сообщения</target>
|
<target>Показывать последние сообщения</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Показать статус сообщения</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Показывать уведомления</target>
|
<target>Показывать уведомления</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Показать → на сообщениях доставленных конфиденциально.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Показать:</target>
|
<target>Показать:</target>
|
||||||
@@ -5212,6 +5456,16 @@ Error: %@</source>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleX ссылки</target>
|
<target>SimpleX ссылки</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>Ссылки SimpleX запрещены в этой группе.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>Ссылки SimpleX не разрешены</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Error: %@</source>
|
|||||||
<target>Контакт</target>
|
<target>Контакт</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Квадрат, круг и все, что между ними.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Запустить чат</target>
|
<target>Запустить чат</target>
|
||||||
@@ -5461,6 +5720,11 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>Приложение может посылать Вам уведомления о сообщениях и запросах на соединение - уведомления можно включить в Настройках.</target>
|
<target>Приложение может посылать Вам уведомления о сообщениях и запросах на соединение - уведомления можно включить в Настройках.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>Приложение будет запрашивать подтверждение загрузки с неизвестных серверов (за исключением .onion адресов).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Попытка поменять пароль базы данных не была завершена.</target>
|
<target>Попытка поменять пароль базы данных не была завершена.</target>
|
||||||
@@ -5646,6 +5910,11 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>Чтобы защитить Ваш часовой пояс, файлы картинок и голосовых сообщений используют UTC.</target>
|
<target>Чтобы защитить Ваш часовой пояс, файлы картинок и голосовых сообщений используют UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>Чтобы защитить ваш IP адрес, приложение использует Ваши SMP серверы для конфиденциальной доставки сообщений.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Разблокировать члена группы?</target>
|
<target>Разблокировать члена группы?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Неожиданная ошибка: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Неожиданная ошибка при перемещении данных чата</target>
|
<target>Неожиданная ошибка при перемещении данных чата</target>
|
||||||
@@ -5788,6 +6052,11 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Неизвестная ошибка</target>
|
<target>Неизвестная ошибка</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Неизвестные серверы!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Если Вы не используете интерфейс iOS, включите режим Не отвлекать, чтобы звонок не прерывался.</target>
|
<target>Если Вы не используете интерфейс iOS, включите режим Не отвлекать, чтобы звонок не прерывался.</target>
|
||||||
@@ -5935,6 +6204,16 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Использовать только локальные нотификации?</target>
|
<target>Использовать только локальные нотификации?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Использовать конфиденциальную доставку с неизвестными серверами, когда IP адрес не защищен.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Использовать конфиденциальную доставку с неизвестными серверами.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Использовать сервер</target>
|
<target>Использовать сервер</target>
|
||||||
@@ -6050,6 +6329,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Голосовые сообщения запрещены в этой группе.</target>
|
<target>Голосовые сообщения запрещены в этой группе.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Голосовые сообщения не разрешены</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Голосовые сообщения запрещены!</target>
|
<target>Голосовые сообщения запрещены!</target>
|
||||||
@@ -6120,6 +6404,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Когда возможно</target>
|
<target>Когда возможно</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>Во время соединения аудио и видео звонков.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Когда Вы получите запрос на соединение, Вы можете принять или отклонить его.</target>
|
<target>Когда Вы получите запрос на соединение, Вы можете принять или отклонить его.</target>
|
||||||
@@ -6130,6 +6419,21 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Когда Вы соединены с контактом инкогнито, тот же самый инкогнито профиль будет использоваться для групп с этим контактом.</target>
|
<target>Когда Вы соединены с контактом инкогнито, тот же самый инкогнито профиль будет использоваться для групп с этим контактом.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Будет включено в прямых разговорах!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Проводная сеть</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>С зашифрованными файлами и медиа.</target>
|
<target>С зашифрованными файлами и медиа.</target>
|
||||||
@@ -6145,11 +6449,26 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>С уменьшенным потреблением батареи.</target>
|
<target>С уменьшенным потреблением батареи.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Без Тора или ВПН, Ваш IP адрес будет доступен серверам файлов.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Без Тора или ВПН, Ваш IP адрес будет доступен этим серверам файлов: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Неправильный пароль базы данных</target>
|
<target>Неправильный пароль базы данных</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Неверный ключ или неизвестное соединение - скорее всего, это соединение удалено.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Неправильный пароль!</target>
|
<target>Неправильный пароль!</target>
|
||||||
@@ -6613,6 +6932,11 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>админ</target>
|
<target>админ</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>админы</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>шифрование согласовывается для %@…</target>
|
<target>шифрование согласовывается для %@…</target>
|
||||||
@@ -6623,6 +6947,11 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>шифрование согласовывается…</target>
|
<target>шифрование согласовывается…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>все члены</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>всегда</target>
|
<target>всегда</target>
|
||||||
@@ -6953,6 +7282,11 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>событие произошло</target>
|
<target>событие произошло</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>переслано</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>группа удалена</target>
|
<target>группа удалена</target>
|
||||||
@@ -7160,6 +7494,11 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>владелец</target>
|
<target>владелец</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>владельцы</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>peer-to-peer</target>
|
<target>peer-to-peer</target>
|
||||||
@@ -7210,6 +7549,16 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>удалил(а) Вас из группы</target>
|
<target>удалил(а) Вас из группы</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>сохранено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>сохранено из %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>сек</target>
|
<target>сек</target>
|
||||||
@@ -7235,6 +7584,12 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>отправьте сообщение</target>
|
<target>отправьте сообщение</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>установлен новый адрес контакта</target>
|
<target>установлен новый адрес контакта</target>
|
||||||
@@ -7275,11 +7630,21 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>неизвестно</target>
|
<target>неизвестно</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>неизвестные серверы</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>неизвестный статус</target>
|
<target>неизвестный статус</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>незащищённый</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>обновил(а) профиль группы</target>
|
<target>обновил(а) профиль группы</target>
|
||||||
@@ -7345,11 +7710,21 @@ SimpleX серверы не могут получить доступ к Ваше
|
|||||||
<target>недель</target>
|
<target>недель</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>когда IP защищен</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>да</target>
|
<target>да</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>Вы</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>Вы приглашены в группу</target>
|
<target>Вы приглашены в группу</target>
|
||||||
|
|||||||
@@ -677,6 +677,10 @@
|
|||||||
<target>อนุญาตให้ข้อความที่หายไปเฉพาะในกรณีที่ผู้ติดต่อของคุณอนุญาตเท่านั้น.</target>
|
<target>อนุญาตให้ข้อความที่หายไปเฉพาะในกรณีที่ผู้ติดต่อของคุณอนุญาตเท่านั้น.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>อนุญาตให้ลบข้อความแบบถาวรเฉพาะในกรณีที่ผู้ติดต่อของคุณอนุญาตให้คุณเท่านั้น</target>
|
<target>อนุญาตให้ลบข้อความแบบถาวรเฉพาะในกรณีที่ผู้ติดต่อของคุณอนุญาตให้คุณเท่านั้น</target>
|
||||||
@@ -707,6 +711,10 @@
|
|||||||
<target>อนุญาตให้ลบข้อความที่ส่งไปแล้วอย่างถาวร</target>
|
<target>อนุญาตให้ลบข้อความที่ส่งไปแล้วอย่างถาวร</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>อนุญาตให้ส่งไฟล์และสื่อ</target>
|
<target>อนุญาตให้ส่งไฟล์และสื่อ</target>
|
||||||
@@ -765,6 +773,10 @@
|
|||||||
<source>Already joining the group!</source>
|
<source>Already joining the group!</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>ใช้รีเลย์เสมอ</target>
|
<target>ใช้รีเลย์เสมอ</target>
|
||||||
@@ -1028,6 +1040,14 @@
|
|||||||
<target>ไม่สามารถรับไฟล์ได้</target>
|
<target>ไม่สามารถรับไฟล์ได้</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>เปลี่ยน</target>
|
<target>เปลี่ยน</target>
|
||||||
@@ -1215,6 +1235,10 @@
|
|||||||
<target>ยืนยันการอัพเกรดฐานข้อมูล</target>
|
<target>ยืนยันการอัพเกรดฐานข้อมูล</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -1605,6 +1629,10 @@ This is your own one-time link!</source>
|
|||||||
<target>ระบบจะย้ายฐานข้อมูลเมื่อแอปรีสตาร์ท</target>
|
<target>ระบบจะย้ายฐานข้อมูลเมื่อแอปรีสตาร์ท</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>กระจายอำนาจแล้ว</target>
|
<target>กระจายอำนาจแล้ว</target>
|
||||||
@@ -1843,6 +1871,10 @@ This cannot be undone!</source>
|
|||||||
<source>Desktop devices</source>
|
<source>Desktop devices</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>พัฒนา</target>
|
<target>พัฒนา</target>
|
||||||
@@ -1945,11 +1977,19 @@ This cannot be undone!</source>
|
|||||||
<source>Discover via local network</source>
|
<source>Discover via local network</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>อย่าใช้ SimpleX สําหรับการโทรฉุกเฉิน</target>
|
<target>อย่าใช้ SimpleX สําหรับการโทรฉุกเฉิน</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>ทำในภายหลัง</target>
|
<target>ทำในภายหลัง</target>
|
||||||
@@ -1979,6 +2019,10 @@ This cannot be undone!</source>
|
|||||||
<target>ปรับลดรุ่นและเปิดแชท</target>
|
<target>ปรับลดรุ่นและเปิดแชท</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2084,6 +2128,10 @@ This cannot be undone!</source>
|
|||||||
<target>เปิดใช้งานรหัสผ่านแบบทําลายตัวเอง</target>
|
<target>เปิดใช้งานรหัสผ่านแบบทําลายตัวเอง</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Encrypt</target>
|
<target>Encrypt</target>
|
||||||
@@ -2225,10 +2273,6 @@ This cannot be undone!</source>
|
|||||||
<target>เกิดข้อผิดพลาดในการเพิ่มสมาชิก</target>
|
<target>เกิดข้อผิดพลาดในการเพิ่มสมาชิก</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>เกิดข้อผิดพลาดในการเปลี่ยนที่อยู่</target>
|
<target>เกิดข้อผิดพลาดในการเปลี่ยนที่อยู่</target>
|
||||||
@@ -2482,7 +2526,7 @@ This cannot be undone!</source>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>ข้อผิดพลาด: % @</target>
|
<target>ข้อผิดพลาด: % @</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2571,6 +2615,10 @@ This cannot be undone!</source>
|
|||||||
<target>ไฟล์: % @</target>
|
<target>ไฟล์: % @</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>ไฟล์และสื่อ</target>
|
<target>ไฟล์และสื่อ</target>
|
||||||
@@ -2586,6 +2634,10 @@ This cannot be undone!</source>
|
|||||||
<target>ไฟล์และสื่อเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
|
<target>ไฟล์และสื่อเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>ไฟล์และสื่อต้องห้าม!</target>
|
<target>ไฟล์และสื่อต้องห้าม!</target>
|
||||||
@@ -2649,6 +2701,32 @@ This cannot be undone!</source>
|
|||||||
<target>สำหรับคอนโซล</target>
|
<target>สำหรับคอนโซล</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -2755,6 +2833,10 @@ This cannot be undone!</source>
|
|||||||
<target>สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร</target>
|
<target>สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้</target>
|
<target>สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้</target>
|
||||||
@@ -2989,6 +3071,10 @@ This cannot be undone!</source>
|
|||||||
<target>ในการตอบกลับถึง</target>
|
<target>ในการตอบกลับถึง</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>ไม่ระบุตัวตน</target>
|
<target>ไม่ระบุตัวตน</target>
|
||||||
@@ -3423,11 +3509,19 @@ This is your link for group %@!</source>
|
|||||||
<target>ใบเสร็จการส่งข้อความ!</target>
|
<target>ใบเสร็จการส่งข้อความ!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>ร่างข้อความ</target>
|
<target>ร่างข้อความ</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>ปฏิกิริยาของข้อความ</target>
|
<target>ปฏิกิริยาของข้อความ</target>
|
||||||
@@ -3443,6 +3537,18 @@ This is your link for group %@!</source>
|
|||||||
<target>ปฏิกิริยาบนข้อความเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
|
<target>ปฏิกิริยาบนข้อความเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>ข้อความ</target>
|
<target>ข้อความ</target>
|
||||||
@@ -3547,15 +3653,14 @@ This is your link for group %@!</source>
|
|||||||
<target>การปรับปรุงเพิ่มเติมกำลังจะมาเร็ว ๆ นี้!</target>
|
<target>การปรับปรุงเพิ่มเติมกำลังจะมาเร็ว ๆ นี้!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>เป็นไปได้มากว่าผู้ติดต่อนี้ได้ลบการเชื่อมต่อกับคุณ</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>โปรไฟล์การแชทหลายรายการ</target>
|
<target>โปรไฟล์การแชทหลายรายการ</target>
|
||||||
@@ -3581,6 +3686,18 @@ This is your link for group %@!</source>
|
|||||||
<target>เครือข่ายและเซิร์ฟเวอร์</target>
|
<target>เครือข่ายและเซิร์ฟเวอร์</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>การตั้งค่าเครือข่าย</target>
|
<target>การตั้งค่าเครือข่าย</target>
|
||||||
@@ -3688,6 +3805,10 @@ This is your link for group %@!</source>
|
|||||||
<target>ไม่มีประวัติ</target>
|
<target>ไม่มีประวัติ</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>ไม่อนุญาตให้บันทึกข้อความเสียง</target>
|
<target>ไม่อนุญาตให้บันทึกข้อความเสียง</target>
|
||||||
@@ -3892,6 +4013,10 @@ This is your link for group %@!</source>
|
|||||||
<source>Or show this code</source>
|
<source>Or show this code</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>จํานวน PING</target>
|
<target>จํานวน PING</target>
|
||||||
@@ -4051,10 +4176,6 @@ Error: %@</source>
|
|||||||
<target>อาจเป็นไปได้ว่าลายนิ้วมือของ certificate ในที่อยู่เซิร์ฟเวอร์ไม่ถูกต้อง</target>
|
<target>อาจเป็นไปได้ว่าลายนิ้วมือของ certificate ในที่อยู่เซิร์ฟเวอร์ไม่ถูกต้อง</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>เก็บข้อความที่ร่างไว้ล่าสุดพร้อมไฟล์แนบ</target>
|
<target>เก็บข้อความที่ร่างไว้ล่าสุดพร้อมไฟล์แนบ</target>
|
||||||
@@ -4090,10 +4211,22 @@ Error: %@</source>
|
|||||||
<target>ชื่อไฟล์ส่วนตัว</target>
|
<target>ชื่อไฟล์ส่วนตัว</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>การเชื่อมต่อโปรไฟล์และเซิร์ฟเวอร์</target>
|
<target>การเชื่อมต่อโปรไฟล์และเซิร์ฟเวอร์</target>
|
||||||
@@ -4104,6 +4237,10 @@ Error: %@</source>
|
|||||||
<target>รูปโปรไฟล์</target>
|
<target>รูปโปรไฟล์</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4142,6 +4279,10 @@ Error: %@</source>
|
|||||||
<target>ห้ามแสดงปฏิกิริยาต่อข้อความ</target>
|
<target>ห้ามแสดงปฏิกิริยาต่อข้อความ</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>ห้ามส่งข้อความโดยตรงถึงสมาชิก</target>
|
<target>ห้ามส่งข้อความโดยตรงถึงสมาชิก</target>
|
||||||
@@ -4162,11 +4303,20 @@ Error: %@</source>
|
|||||||
<target>ห้ามส่งข้อความเสียง</target>
|
<target>ห้ามส่งข้อความเสียง</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>ปกป้องหน้าจอแอป</target>
|
<target>ปกป้องหน้าจอแอป</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>ปกป้องโปรไฟล์การแชทของคุณด้วยรหัสผ่าน!</target>
|
<target>ปกป้องโปรไฟล์การแชทของคุณด้วยรหัสผ่าน!</target>
|
||||||
@@ -4282,6 +4432,10 @@ Error: %@</source>
|
|||||||
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
<source>Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>ผู้รับจะเห็นการอัปเดตเมื่อคุณพิมพ์</target>
|
<target>ผู้รับจะเห็นการอัปเดตเมื่อคุณพิมพ์</target>
|
||||||
@@ -4490,6 +4644,10 @@ Error: %@</source>
|
|||||||
<target>เซิร์ฟเวอร์ SMP</target>
|
<target>เซิร์ฟเวอร์ SMP</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -4574,11 +4732,19 @@ Error: %@</source>
|
|||||||
<target>บันทึกข้อความต้อนรับ?</target>
|
<target>บันทึกข้อความต้อนรับ?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>เซิร์ฟเวอร์ WebRTC ICE ที่บันทึกไว้จะถูกลบออก</target>
|
<target>เซิร์ฟเวอร์ WebRTC ICE ที่บันทึกไว้จะถูกลบออก</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<note>message info title</note>
|
<note>message info title</note>
|
||||||
@@ -4699,6 +4865,14 @@ Error: %@</source>
|
|||||||
<target>ส่งข้อความสด</target>
|
<target>ส่งข้อความสด</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>ส่งการแจ้งเตือน</target>
|
<target>ส่งการแจ้งเตือน</target>
|
||||||
@@ -4801,6 +4975,10 @@ Error: %@</source>
|
|||||||
<target>ข้อความที่ส่งจะถูกลบหลังเกินเวลาที่กําหนด</target>
|
<target>ข้อความที่ส่งจะถูกลบหลังเกินเวลาที่กําหนด</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>เซิร์ฟเวอร์ต้องการการอนุญาตในการสร้างคิว โปรดตรวจสอบรหัสผ่าน</target>
|
<target>เซิร์ฟเวอร์ต้องการการอนุญาตในการสร้างคิว โปรดตรวจสอบรหัสผ่าน</target>
|
||||||
@@ -4816,6 +4994,10 @@ Error: %@</source>
|
|||||||
<target>การทดสอบเซิร์ฟเวอร์ล้มเหลว!</target>
|
<target>การทดสอบเซิร์ฟเวอร์ล้มเหลว!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>เซิร์ฟเวอร์</target>
|
<target>เซิร์ฟเวอร์</target>
|
||||||
@@ -4874,6 +5056,10 @@ Error: %@</source>
|
|||||||
<target>การตั้งค่า</target>
|
<target>การตั้งค่า</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>แชร์</target>
|
<target>แชร์</target>
|
||||||
@@ -4926,11 +5112,19 @@ Error: %@</source>
|
|||||||
<source>Show last messages</source>
|
<source>Show last messages</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>แสดงตัวอย่าง</target>
|
<target>แสดงตัวอย่าง</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>แสดง:</target>
|
<target>แสดง:</target>
|
||||||
@@ -4989,6 +5183,14 @@ Error: %@</source>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>ลิงก์ SimpleX</target>
|
<target>ลิงก์ SimpleX</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5024,6 +5226,10 @@ Error: %@</source>
|
|||||||
<target>ใครบางคน</target>
|
<target>ใครบางคน</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>เริ่มแชท</target>
|
<target>เริ่มแชท</target>
|
||||||
@@ -5231,6 +5437,10 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>แอปสามารถแจ้งให้คุณทราบเมื่อคุณได้รับข้อความหรือคำขอติดต่อ - โปรดเปิดการตั้งค่าเพื่อเปิดใช้งาน</target>
|
<target>แอปสามารถแจ้งให้คุณทราบเมื่อคุณได้รับข้อความหรือคำขอติดต่อ - โปรดเปิดการตั้งค่าเพื่อเปิดใช้งาน</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>ความพยายามในการเปลี่ยนรหัสผ่านของฐานข้อมูลไม่เสร็จสมบูรณ์</target>
|
<target>ความพยายามในการเปลี่ยนรหัสผ่านของฐานข้อมูลไม่เสร็จสมบูรณ์</target>
|
||||||
@@ -5405,6 +5615,10 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>ไฟล์ภาพ/เสียงใช้ UTC เพื่อป้องกันเขตเวลา</target>
|
<target>ไฟล์ภาพ/เสียงใช้ UTC เพื่อป้องกันเขตเวลา</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5490,11 +5704,6 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<source>Unblock member?</source>
|
<source>Unblock member?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>ข้อผิดพลาดที่ไม่คาดคิด: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>สถานะการย้ายข้อมูลที่ไม่คาดคิด</target>
|
<target>สถานะการย้ายข้อมูลที่ไม่คาดคิด</target>
|
||||||
@@ -5540,6 +5749,10 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>ข้อผิดพลาดที่ไม่รู้จัก</target>
|
<target>ข้อผิดพลาดที่ไม่รู้จัก</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>ยกเว้นกรณีที่คุณใช้อินเทอร์เฟซการโทรของ iOS ให้เปิดใช้งานโหมดห้ามรบกวนเพื่อหลีกเลี่ยงการรบกวน</target>
|
<target>ยกเว้นกรณีที่คุณใช้อินเทอร์เฟซการโทรของ iOS ให้เปิดใช้งานโหมดห้ามรบกวนเพื่อหลีกเลี่ยงการรบกวน</target>
|
||||||
@@ -5678,6 +5891,14 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<source>Use only local notifications?</source>
|
<source>Use only local notifications?</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>ใช้เซิร์ฟเวอร์</target>
|
<target>ใช้เซิร์ฟเวอร์</target>
|
||||||
@@ -5785,6 +6006,10 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>ข้อความเสียงเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
|
<target>ข้อความเสียงเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>ห้ามข้อความเสียง!</target>
|
<target>ห้ามข้อความเสียง!</target>
|
||||||
@@ -5852,6 +6077,10 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>เมื่อพร้อมใช้งาน</target>
|
<target>เมื่อพร้อมใช้งาน</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>เมื่อมีคนขอเชื่อมต่อ คุณสามารถยอมรับหรือปฏิเสธได้</target>
|
<target>เมื่อมีคนขอเชื่อมต่อ คุณสามารถยอมรับหรือปฏิเสธได้</target>
|
||||||
@@ -5862,6 +6091,18 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>เมื่อคุณแชร์โปรไฟล์ที่ไม่ระบุตัวตนกับใครสักคน โปรไฟล์นี้จะใช้สำหรับกลุ่มที่พวกเขาเชิญคุณ</target>
|
<target>เมื่อคุณแชร์โปรไฟล์ที่ไม่ระบุตัวตนกับใครสักคน โปรไฟล์นี้จะใช้สำหรับกลุ่มที่พวกเขาเชิญคุณ</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
@@ -5875,11 +6116,23 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<source>With reduced battery usage.</source>
|
<source>With reduced battery usage.</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>รหัสผ่านฐานข้อมูลไม่ถูกต้อง</target>
|
<target>รหัสผ่านฐานข้อมูลไม่ถูกต้อง</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>รหัสผ่านผิด!</target>
|
<target>รหัสผ่านผิด!</target>
|
||||||
@@ -6323,6 +6576,10 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>ผู้ดูแลระบบ</target>
|
<target>ผู้ดูแลระบบ</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>ยอมรับ encryption สำหรับ %@…</target>
|
<target>ยอมรับ encryption สำหรับ %@…</target>
|
||||||
@@ -6333,6 +6590,10 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>เห็นด้วยกับการ encryption…</target>
|
<target>เห็นด้วยกับการ encryption…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>เสมอ</target>
|
<target>เสมอ</target>
|
||||||
@@ -6653,6 +6914,10 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<source>event happened</source>
|
<source>event happened</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>ลบกลุ่มแล้ว</target>
|
<target>ลบกลุ่มแล้ว</target>
|
||||||
@@ -6859,6 +7124,10 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>เจ้าของ</target>
|
<target>เจ้าของ</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>เพื่อนต่อเพื่อน</target>
|
<target>เพื่อนต่อเพื่อน</target>
|
||||||
@@ -6906,6 +7175,14 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>ลบคุณออกแล้ว</target>
|
<target>ลบคุณออกแล้ว</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>วินาที</target>
|
<target>วินาที</target>
|
||||||
@@ -6930,6 +7207,12 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<source>send direct message</source>
|
<source>send direct message</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<note>profile update event chat item</note>
|
<note>profile update event chat item</note>
|
||||||
@@ -6966,10 +7249,18 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>ไม่ทราบ</target>
|
<target>ไม่ทราบ</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>อัปเดตโปรไฟล์กลุ่มแล้ว</target>
|
<target>อัปเดตโปรไฟล์กลุ่มแล้ว</target>
|
||||||
@@ -7033,11 +7324,19 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>สัปดาห์</target>
|
<target>สัปดาห์</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>ใช่</target>
|
<target>ใช่</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>คุณได้รับเชิญให้เข้าร่วมกลุ่ม</target>
|
<target>คุณได้รับเชิญให้เข้าร่วมกลุ่ม</target>
|
||||||
|
|||||||
@@ -445,7 +445,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="0s" xml:space="preserve">
|
<trans-unit id="0s" xml:space="preserve">
|
||||||
<source>0s</source>
|
<source>0s</source>
|
||||||
<target>0 saniye</target>
|
<target>0sn</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1 day" xml:space="preserve">
|
<trans-unit id="1 day" xml:space="preserve">
|
||||||
@@ -695,7 +695,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
|
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
|
||||||
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
|
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
|
||||||
<target>Tüm kişileriniz, sohbetleriniz ve dosyalarınız güvenli bir şekilde şifrelenecek ve parçalar halinde yapılandırılmış XFTP rölelerine yüklenecektir.</target>
|
<target>Tüm kişileriniz, konuşmalarınız ve dosyalarınız güvenli bir şekilde şifrelenir ve yapılandırılmış XFTP yönlendiricilerine parçalar halinde yüklenir.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow" xml:space="preserve">
|
<trans-unit id="Allow" xml:space="preserve">
|
||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Eğer kişide izin verirse kaybolan mesajlara izin ver.</target>
|
<target>Eğer kişide izin verirse kaybolan mesajlara izin ver.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Sürüm düşürmeye izin ver</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Konuştuğun kişi, kalıcı olarak silinebilen mesajlara izin veriyorsa sen de ver. (24 saat içinde)</target>
|
<target>Konuştuğun kişi, kalıcı olarak silinebilen mesajlara izin veriyorsa sen de ver. (24 saat içinde)</target>
|
||||||
@@ -730,7 +735,7 @@
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Allow sending direct messages to members." xml:space="preserve">
|
||||||
<source>Allow sending direct messages to members.</source>
|
<source>Allow sending direct messages to members.</source>
|
||||||
<target>Üyelere direkt mesaj göndermeye izin ver.</target>
|
<target>Üyelere doğrudan mesaj göndermeye izin ver.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Allow sending disappearing messages." xml:space="preserve">
|
<trans-unit id="Allow sending disappearing messages." xml:space="preserve">
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Gönderilen mesajların kalıcı olarak silinmesine izin ver. (24 saat içinde)</target>
|
<target>Gönderilen mesajların kalıcı olarak silinmesine izin ver. (24 saat içinde)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>SimpleX bağlantıları göndilmesine izin ver.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Dosya ve medya göndermeye izin ver.</target>
|
<target>Dosya ve medya göndermeye izin ver.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Zaten gruba bağlanılıyor!</target>
|
<target>Zaten gruba bağlanılıyor!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Her zaman gizli yönlendirme kullan.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Her zaman yönlendirici kullan</target>
|
<target>Her zaman yönlendirici kullan</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Dosya alınamıyor</target>
|
<target>Dosya alınamıyor</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Kapasite aşıldı - alıcı önceden gönderilen mesajları almadı.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Hücresel Veri</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Değiştir</target>
|
<target>Değiştir</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Veritabanı geliştirmelerini onayla</target>
|
<target>Veritabanı geliştirmelerini onayla</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Bilinmeyen sunuculardan gelen dosyaları onayla.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Ağ ayarlarını onaylayın</target>
|
<target>Ağ ayarlarını onaylayın</target>
|
||||||
@@ -1691,6 +1721,10 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
|
|||||||
<target>Uygulama yeniden başlatıldığında veritabanı taşınacaktır</target>
|
<target>Uygulama yeniden başlatıldığında veritabanı taşınacaktır</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Merkezi Olmayan</target>
|
<target>Merkezi Olmayan</target>
|
||||||
@@ -1938,6 +1972,11 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Bilgisayar cihazları</target>
|
<target>Bilgisayar cihazları</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Hedef sunucu hatası: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Geliştir</target>
|
<target>Geliştir</target>
|
||||||
@@ -2043,11 +2082,21 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Yerel ağ aracılığıyla keşfet</target>
|
<target>Yerel ağ aracılığıyla keşfet</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>Sizin veya hedef sunucunun özel yönlendirmeyi desteklememesi durumunda bile mesajları doğrudan GÖNDERMEYİN.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>Acil aramalar için SimpleX'i KULLANMAYIN.</target>
|
<target>Acil aramalar için SimpleX'i KULLANMAYIN.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>Gizli yönlendirmeyi KULLANMA.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Sonra yap</target>
|
<target>Sonra yap</target>
|
||||||
@@ -2078,6 +2127,11 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Sürüm düşür ve sohbeti aç</target>
|
<target>Sürüm düşür ve sohbeti aç</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>İndir</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Yükleme başarısız oldu</target>
|
<target>Yükleme başarısız oldu</target>
|
||||||
@@ -2188,6 +2242,11 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Kendini imha şifresini etkinleştir</target>
|
<target>Kendini imha şifresini etkinleştir</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Şunlar için etkinleştirildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Şifreleme</target>
|
<target>Şifreleme</target>
|
||||||
@@ -2338,11 +2397,6 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Üye(ler) eklenirken hata oluştu</target>
|
<target>Üye(ler) eklenirken hata oluştu</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>İletişim PQ şifrelemesine izin verirken hata oluştu</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Adres değiştirilirken hata oluştu</target>
|
<target>Adres değiştirilirken hata oluştu</target>
|
||||||
@@ -2606,7 +2660,7 @@ Bu geri alınamaz!</target>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Hata: %@</target>
|
<target>Hata: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Dosya: %@</target>
|
<target>Dosya: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Dosyalar</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Dosyalar & medya</target>
|
<target>Dosyalar & medya</target>
|
||||||
@@ -2713,6 +2772,11 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Dosyalar ve medya bu grupta yasaklandı.</target>
|
<target>Dosyalar ve medya bu grupta yasaklandı.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Dosyalar ve medyaya izin verilmiyor</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Dosyalar ve medya yasaklandı!</target>
|
<target>Dosyalar ve medya yasaklandı!</target>
|
||||||
@@ -2778,6 +2842,40 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Konsol için</target>
|
<target>Konsol için</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>İlet</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Mesajları ilet ve kaydet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>İletildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Şuradan iletildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Yönlendirme sunucusu: %1$@
|
||||||
|
Hedef sunucu hatası: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Yönlendirme sunucusu: %1$@
|
||||||
|
Hata: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Bilgisayar bulundu</target>
|
<target>Bilgisayar bulundu</target>
|
||||||
@@ -2888,6 +2986,11 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)</target>
|
<target>Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Grup üyeleri SimpleX bağlantıları gönderebilir.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Grup üyeleri doğrudan mesajlar gönderebilir.</target>
|
<target>Grup üyeleri doğrudan mesajlar gönderebilir.</target>
|
||||||
@@ -3128,6 +3231,11 @@ Bu geri alınamaz!</target>
|
|||||||
<target>Cevap olarak</target>
|
<target>Cevap olarak</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Arama içi sesler</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Gizli</target>
|
<target>Gizli</target>
|
||||||
@@ -3583,11 +3691,20 @@ Bu senin grup için bağlantın %@!</target>
|
|||||||
<target>Mesaj alındı bilgisi!</target>
|
<target>Mesaj alındı bilgisi!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Mesaj iletimi uyarısı</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Mesaj taslağı</target>
|
<target>Mesaj taslağı</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Mesaj tepkileri</target>
|
<target>Mesaj tepkileri</target>
|
||||||
@@ -3603,6 +3720,21 @@ Bu senin grup için bağlantın %@!</target>
|
|||||||
<target>Mesaj tepkileri bu grupta yasaklandı.</target>
|
<target>Mesaj tepkileri bu grupta yasaklandı.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Mesaj yönlendirme yedeklemesi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Mesaj yönlendirme modu</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Mesaj kaynağı gizli kalır.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Mesaj yazısı</target>
|
<target>Mesaj yazısı</target>
|
||||||
@@ -3718,16 +3850,16 @@ Bu senin grup için bağlantın %@!</target>
|
|||||||
<target>Daha fazla geliştirmeler yakında geliyor!</target>
|
<target>Daha fazla geliştirmeler yakında geliyor!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Daha güvenilir ağ bağlantısı.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Büyük ihtimalle bu bağlantı silinmiş.</target>
|
<target>Büyük ihtimalle bu bağlantı silinmiş.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Büyük ihtimalle bu kişi seninle bağlantını sildi.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Çoklu sohbet profili</target>
|
<target>Çoklu sohbet profili</target>
|
||||||
@@ -3753,6 +3885,21 @@ Bu senin grup için bağlantın %@!</target>
|
|||||||
<target>Ağ & sunucular</target>
|
<target>Ağ & sunucular</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Ağ bağlantısı</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Ağ sorunları - birçok gönderme denemesinden sonra mesajın süresi doldu.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Ağ yönetimi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Ağ ayarları</target>
|
<target>Ağ ayarları</target>
|
||||||
@@ -3863,6 +4010,11 @@ Bu senin grup için bağlantın %@!</target>
|
|||||||
<target>Geçmiş yok</target>
|
<target>Geçmiş yok</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Ağ bağlantısı yok</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Sesli mesaj kaydetmek için izin yok</target>
|
<target>Sesli mesaj kaydetmek için izin yok</target>
|
||||||
@@ -4077,6 +4229,11 @@ Bu senin grup için bağlantın %@!</target>
|
|||||||
<target>Veya bu kodu göster</target>
|
<target>Veya bu kodu göster</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Diğer</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>PING sayısı</target>
|
<target>PING sayısı</target>
|
||||||
@@ -4244,11 +4401,6 @@ Hata: %@</target>
|
|||||||
<target>Muhtemelen, sunucu adresindeki parmakizi sertifikası doğru değil</target>
|
<target>Muhtemelen, sunucu adresindeki parmakizi sertifikası doğru değil</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Kuantum sonrası E2EE</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Son mesaj taslağını ekleriyle birlikte koru.</target>
|
<target>Son mesaj taslağını ekleriyle birlikte koru.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Hata: %@</target>
|
|||||||
<target>Gizli dosya adları</target>
|
<target>Gizli dosya adları</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Gizli mesaj yönlendirme</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Gizli mesaj yönlendirme 🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Gizli notlar</target>
|
<target>Gizli notlar</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Gizli yönlendirme</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>Profil ve sunucu bağlantıları</target>
|
<target>Profil ve sunucu bağlantıları</target>
|
||||||
@@ -4299,6 +4466,11 @@ Hata: %@</target>
|
|||||||
<target>Profil fotoğrafı</target>
|
<target>Profil fotoğrafı</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Profil resimleri</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Profil ismi</target>
|
<target>Profil ismi</target>
|
||||||
@@ -4339,9 +4511,14 @@ Hata: %@</target>
|
|||||||
<target>Mesajlarda tepkileri yasakla.</target>
|
<target>Mesajlarda tepkileri yasakla.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>SimpleX bağlantısı gönderimini yasakla.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Geri dönülmez mesaj silme işlemini yasakla.</target>
|
<target>Üyelere doğrudan mesaj göndermeyi yasakla.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending disappearing messages." xml:space="preserve">
|
<trans-unit id="Prohibit sending disappearing messages." xml:space="preserve">
|
||||||
@@ -4359,11 +4536,23 @@ Hata: %@</target>
|
|||||||
<target>Sesli mesajların gönderimini yasakla.</target>
|
<target>Sesli mesajların gönderimini yasakla.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>IP adresini koru</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Uygulama ekranını koru</target>
|
<target>Uygulama ekranını koru</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>IP adresinizi kişileriniz tarafından seçilen mesajlaşma yönlendiricilerinden koruyun.
|
||||||
|
*Ağ ve sunucular* ayarlarında etkinleştirin.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Bir parolayla birlikte sohbet profillerini koru!</target>
|
<target>Bir parolayla birlikte sohbet profillerini koru!</target>
|
||||||
@@ -4441,7 +4630,7 @@ Hata: %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Receipts are disabled" xml:space="preserve">
|
<trans-unit id="Receipts are disabled" xml:space="preserve">
|
||||||
<source>Receipts are disabled</source>
|
<source>Receipts are disabled</source>
|
||||||
<target>Makbuzlar devre dışı bırakıldı</target>
|
<target>Gönderildi bilgisi devre dışı bırakıldı</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Received at" xml:space="preserve">
|
<trans-unit id="Received at" xml:space="preserve">
|
||||||
@@ -4484,6 +4673,11 @@ Hata: %@</target>
|
|||||||
<target>Yakın geçmiş ve geliştirilmiş [dizin botu](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex. im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Yakın geçmiş ve geliştirilmiş [dizin botu](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex. im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Alıcı(lar) bu mesajın kimden geldiğini göremez.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Alıcılar yazdığına göre güncellemeleri görecektir.</target>
|
<target>Alıcılar yazdığına göre güncellemeleri görecektir.</target>
|
||||||
@@ -4531,12 +4725,12 @@ Hata: %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Relay server is only used if necessary. Another party can observe your IP address." xml:space="preserve">
|
<trans-unit id="Relay server is only used if necessary. Another party can observe your IP address." xml:space="preserve">
|
||||||
<source>Relay server is only used if necessary. Another party can observe your IP address.</source>
|
<source>Relay server is only used if necessary. Another party can observe your IP address.</source>
|
||||||
<target>Aktarma sunucusu yalnızca gerekli olduğunda kullanılır. Başka bir taraf IP adresinizi gözlemleyebilir.</target>
|
<target>Yönlendirici sunucusu yalnızca gerekli olduğunda kullanılır. Başka bir taraf IP adresinizi gözlemleyebilir.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Relay server protects your IP address, but it can observe the duration of the call." xml:space="preserve">
|
<trans-unit id="Relay server protects your IP address, but it can observe the duration of the call." xml:space="preserve">
|
||||||
<source>Relay server protects your IP address, but it can observe the duration of the call.</source>
|
<source>Relay server protects your IP address, but it can observe the duration of the call.</source>
|
||||||
<target>Aktarıcı sunucu IP adresinizi korur, ancak aramanın süresini gözlemleyebilir.</target>
|
<target>Yönlendirici sunucu IP adresinizi korur, ancak aramanın süresini gözlemleyebilir.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Remove" xml:space="preserve">
|
<trans-unit id="Remove" xml:space="preserve">
|
||||||
@@ -4699,6 +4893,11 @@ Hata: %@</target>
|
|||||||
<target>SMP sunucuları</target>
|
<target>SMP sunucuları</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Dosyaları güvenle alın</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Daha güvenli gruplar</target>
|
<target>Daha güvenli gruplar</target>
|
||||||
@@ -4784,11 +4983,21 @@ Hata: %@</target>
|
|||||||
<target>Hoşgeldin mesajı kaydedilsin mi?</target>
|
<target>Hoşgeldin mesajı kaydedilsin mi?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Kaydedildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Kaydedilmiş WebRTC ICE sunucuları silinecek</target>
|
<target>Kaydedilmiş WebRTC ICE sunucuları silinecek</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Tarafından kaydedildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Kaydedilmiş mesaj</target>
|
<target>Kaydedilmiş mesaj</target>
|
||||||
@@ -4914,6 +5123,16 @@ Hata: %@</target>
|
|||||||
<target>Canlı mesaj gönder</target>
|
<target>Canlı mesaj gönder</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>IP adresi korumalı olduğunda ve sizin veya hedef sunucunun özel yönlendirmeyi desteklemediği durumlarda mesajları doğrudan gönderin.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Sizin veya hedef sunucunun özel yönlendirmeyi desteklemediği durumlarda mesajları doğrudan gönderin.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Bildirimler gönder</target>
|
<target>Bildirimler gönder</target>
|
||||||
@@ -4961,7 +5180,7 @@ Hata: %@</target>
|
|||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Sending delivery receipts will be enabled for all contacts." xml:space="preserve">
|
<trans-unit id="Sending delivery receipts will be enabled for all contacts." xml:space="preserve">
|
||||||
<source>Sending delivery receipts will be enabled for all contacts.</source>
|
<source>Sending delivery receipts will be enabled for all contacts.</source>
|
||||||
<target>Teslimat makbuzlarının gönderilmesi tüm kişiler için etkinleştirilecektir.</target>
|
<target>Gönderildi bilgisi tüm kişiler için etkinleştirilecektir.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Sending file will be stopped." xml:space="preserve">
|
<trans-unit id="Sending file will be stopped." xml:space="preserve">
|
||||||
@@ -5019,6 +5238,11 @@ Hata: %@</target>
|
|||||||
<target>Gönderilen mesajlar ayarlanan süreden sonra silinecektir.</target>
|
<target>Gönderilen mesajlar ayarlanan süreden sonra silinecektir.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>Sunucu adresi ağ ayarlarıyla uyumlu değil.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Sunucunun sıra oluşturması için yetki gereklidir, şifreyi kontrol edin</target>
|
<target>Sunucunun sıra oluşturması için yetki gereklidir, şifreyi kontrol edin</target>
|
||||||
@@ -5034,6 +5258,11 @@ Hata: %@</target>
|
|||||||
<target>Sunucu testinde hata oluştu!</target>
|
<target>Sunucu testinde hata oluştu!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>Sunucu sürümü ağ ayarlarıyla uyumlu değil.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Sunucular</target>
|
<target>Sunucular</target>
|
||||||
@@ -5094,6 +5323,11 @@ Hata: %@</target>
|
|||||||
<target>Ayarlar</target>
|
<target>Ayarlar</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Profil resimlerini şekillendir</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Paylaş</target>
|
<target>Paylaş</target>
|
||||||
@@ -5149,11 +5383,21 @@ Hata: %@</target>
|
|||||||
<target>Son mesajları göster</target>
|
<target>Son mesajları göster</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Mesaj durumunu göster</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Ön gösterimi göser</target>
|
<target>Ön gösterimi göser</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Gizli yönlendirme yoluyla gönderilen mesajlarda → işaretini göster.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Göster:</target>
|
<target>Göster:</target>
|
||||||
@@ -5212,6 +5456,16 @@ Hata: %@</target>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>SimpleX bağlantıları</target>
|
<target>SimpleX bağlantıları</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>SimpleX bağlantıları bu grupta yasaklandı.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>SimpleX bağlantılarına izin verilmiyor</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Hata: %@</target>
|
|||||||
<target>Biri</target>
|
<target>Biri</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Kare,daire, veya aralarında herhangi bir şey.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Sohbeti başlat</target>
|
<target>Sohbeti başlat</target>
|
||||||
@@ -5461,6 +5720,11 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.
|
|||||||
<target>Uygulama, mesaj veya iletişim isteği aldığınızda sizi bilgilendirebilir - etkinleştirmek için lütfen ayarları açın.</target>
|
<target>Uygulama, mesaj veya iletişim isteği aldığınızda sizi bilgilendirebilir - etkinleştirmek için lütfen ayarları açın.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>Uygulama bilinmeyen dosya sunucularından indirmeleri onaylamanızı isteyecektir (.onion hariç).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Veritabanı parolasını değiştirme girişimi tamamlanmadı.</target>
|
<target>Veritabanı parolasını değiştirme girişimi tamamlanmadı.</target>
|
||||||
@@ -5646,6 +5910,11 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.
|
|||||||
<target>Zaman bölgesini korumak için,fotoğraf/ses dosyaları UTC kullanır.</target>
|
<target>Zaman bölgesini korumak için,fotoğraf/ses dosyaları UTC kullanır.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>IP adresinizi korumak için,gizli yönlendirme mesajları iletmek için SMP sunucularınızı kullanır.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ Bu özellik etkinleştirilmeden önce kimlik doğrulamayı tamamlamanız istenec
|
|||||||
<target>Üyenin engeli kaldırılsın mı?</target>
|
<target>Üyenin engeli kaldırılsın mı?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Beklenmeyen hata: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Beklenmeyen geçiş durumu</target>
|
<target>Beklenmeyen geçiş durumu</target>
|
||||||
@@ -5788,6 +6052,11 @@ Bu özellik etkinleştirilmeden önce kimlik doğrulamayı tamamlamanız istenec
|
|||||||
<target>Bilinmeyen hata</target>
|
<target>Bilinmeyen hata</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Bilinmeyen sunucular!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>iOS arama arayüzünü kullanmadığınız sürece, kesintileri önlemek için Rahatsız Etmeyin modunu etkinleştirin.</target>
|
<target>iOS arama arayüzünü kullanmadığınız sürece, kesintileri önlemek için Rahatsız Etmeyin modunu etkinleştirin.</target>
|
||||||
@@ -5935,6 +6204,16 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
|
|||||||
<target>Sadece yerel bildirimler kullanılsın mı?</target>
|
<target>Sadece yerel bildirimler kullanılsın mı?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>IP adresi korunmadığında bilinmeyen sunucularla gizli yönlendirme kullan.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Bilinmeyen sunucularla gizli yönlendirme kullan.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Sunucu kullan</target>
|
<target>Sunucu kullan</target>
|
||||||
@@ -6050,6 +6329,11 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
|
|||||||
<target>Bu grupta sesli mesajlar yasaktır.</target>
|
<target>Bu grupta sesli mesajlar yasaktır.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Sesli mesajlara izin verilmiyor</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Sesli mesajlar yasaktır!</target>
|
<target>Sesli mesajlar yasaktır!</target>
|
||||||
@@ -6120,6 +6404,11 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
|
|||||||
<target>Mevcut olduğunda</target>
|
<target>Mevcut olduğunda</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>Sesli ve görüntülü aramalara bağlanırken.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>İnsanlar bağlantı talebinde bulunduğunda, kabul edebilir veya reddedebilirsiniz.</target>
|
<target>İnsanlar bağlantı talebinde bulunduğunda, kabul edebilir veya reddedebilirsiniz.</target>
|
||||||
@@ -6130,6 +6419,21 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
|
|||||||
<target>Biriyle gizli bir profil paylaştığınızda, bu profil sizi davet ettikleri gruplar için kullanılacaktır.</target>
|
<target>Biriyle gizli bir profil paylaştığınızda, bu profil sizi davet ettikleri gruplar için kullanılacaktır.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Doğrudan sohbetlerde etkinleştirilecektir!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Kablolu ethernet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>Şifrelenmiş dosyalar ve medya ile birlikte.</target>
|
<target>Şifrelenmiş dosyalar ve medya ile birlikte.</target>
|
||||||
@@ -6145,11 +6449,26 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
|
|||||||
<target>Azaltılmış pil kullanımı ile birlikte.</target>
|
<target>Azaltılmış pil kullanımı ile birlikte.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Tor veya VPN olmadan, IP adresiniz dosya sunucularına görülebilir.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Tor veya VPN olmadan, IP adresiniz bu XFTP aktarıcıları tarafından görülebilir: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Yanlış veritabanı parolası</target>
|
<target>Yanlış veritabanı parolası</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Yanlış anahtar veya bilinmeyen bağlantı - büyük olasılıkla bu bağlantı silinmiştir.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Yanlış parola!</target>
|
<target>Yanlış parola!</target>
|
||||||
@@ -6613,6 +6932,11 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>yönetici</target>
|
<target>yönetici</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>yöneticiler</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>%@ için şifreleme kabul ediliyor…</target>
|
<target>%@ için şifreleme kabul ediliyor…</target>
|
||||||
@@ -6623,6 +6947,11 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>şifreleme kabul ediliyor…</target>
|
<target>şifreleme kabul ediliyor…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>bütün üyeler</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>her zaman</target>
|
<target>her zaman</target>
|
||||||
@@ -6953,6 +7282,11 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>etkinlik yaşandı</target>
|
<target>etkinlik yaşandı</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>iletildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>grup silindi</target>
|
<target>grup silindi</target>
|
||||||
@@ -7160,6 +7494,11 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>sahip</target>
|
<target>sahip</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>sahipler</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>eşler arası</target>
|
<target>eşler arası</target>
|
||||||
@@ -7210,6 +7549,16 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>sen kaldırıldın</target>
|
<target>sen kaldırıldın</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>kaydedildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>%@ tarafından kaydedildi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>sn</target>
|
<target>sn</target>
|
||||||
@@ -7235,6 +7584,12 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>doğrudan mesaj gönder</target>
|
<target>doğrudan mesaj gönder</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>yeni kişi adresi ayarla</target>
|
<target>yeni kişi adresi ayarla</target>
|
||||||
@@ -7275,11 +7630,21 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>bilinmeyen</target>
|
<target>bilinmeyen</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>bilinmeyen yönlendiriciler</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>bilinmeyen durum</target>
|
<target>bilinmeyen durum</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>korumasız</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>grup profili güncellendi</target>
|
<target>grup profili güncellendi</target>
|
||||||
@@ -7345,11 +7710,21 @@ SimpleX sunucuları profilinizi göremez.</target>
|
|||||||
<target>haftalar</target>
|
<target>haftalar</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>IP gizliyken</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>evet</target>
|
<target>evet</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>sen</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>gruba davet edildiniz</target>
|
<target>gruba davet edildiniz</target>
|
||||||
|
|||||||
@@ -713,6 +713,11 @@
|
|||||||
<target>Дозволяйте зникати повідомленням, тільки якщо контакт дозволяє вам це робити.</target>
|
<target>Дозволяйте зникати повідомленням, тільки якщо контакт дозволяє вам це робити.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow downgrade" xml:space="preserve">
|
||||||
|
<source>Allow downgrade</source>
|
||||||
|
<target>Дозволити пониження версії</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
<trans-unit id="Allow irreversible message deletion only if your contact allows it to you. (24 hours)" xml:space="preserve">
|
||||||
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
<source>Allow irreversible message deletion only if your contact allows it to you. (24 hours)</source>
|
||||||
<target>Дозволяйте безповоротне видалення повідомлень, тільки якщо контакт дозволяє вам це зробити. (24 години)</target>
|
<target>Дозволяйте безповоротне видалення повідомлень, тільки якщо контакт дозволяє вам це зробити. (24 години)</target>
|
||||||
@@ -743,6 +748,11 @@
|
|||||||
<target>Дозволяє безповоротно видаляти надіслані повідомлення. (24 години)</target>
|
<target>Дозволяє безповоротно видаляти надіслані повідомлення. (24 години)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Allow to send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Allow to send SimpleX links.</source>
|
||||||
|
<target>Дозволити надсилати посилання SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
<trans-unit id="Allow to send files and media." xml:space="preserve">
|
||||||
<source>Allow to send files and media.</source>
|
<source>Allow to send files and media.</source>
|
||||||
<target>Дозволяє надсилати файли та медіа.</target>
|
<target>Дозволяє надсилати файли та медіа.</target>
|
||||||
@@ -803,6 +813,11 @@
|
|||||||
<target>Вже приєднуємося до групи!</target>
|
<target>Вже приєднуємося до групи!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always use private routing." xml:space="preserve">
|
||||||
|
<source>Always use private routing.</source>
|
||||||
|
<target>Завжди використовуйте приватну маршрутизацію.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Always use relay" xml:space="preserve">
|
<trans-unit id="Always use relay" xml:space="preserve">
|
||||||
<source>Always use relay</source>
|
<source>Always use relay</source>
|
||||||
<target>Завжди використовуйте реле</target>
|
<target>Завжди використовуйте реле</target>
|
||||||
@@ -1083,6 +1098,16 @@
|
|||||||
<target>Не вдається отримати файл</target>
|
<target>Не вдається отримати файл</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Capacity exceeded - recipient did not receive previously sent messages." xml:space="preserve">
|
||||||
|
<source>Capacity exceeded - recipient did not receive previously sent messages.</source>
|
||||||
|
<target>Перевищено ліміт - одержувач не отримав раніше надіслані повідомлення.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Cellular" xml:space="preserve">
|
||||||
|
<source>Cellular</source>
|
||||||
|
<target>Стільниковий</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Change" xml:space="preserve">
|
<trans-unit id="Change" xml:space="preserve">
|
||||||
<source>Change</source>
|
<source>Change</source>
|
||||||
<target>Зміна</target>
|
<target>Зміна</target>
|
||||||
@@ -1274,6 +1299,11 @@
|
|||||||
<target>Підтвердити оновлення бази даних</target>
|
<target>Підтвердити оновлення бази даних</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Confirm files from unknown servers." xml:space="preserve">
|
||||||
|
<source>Confirm files from unknown servers.</source>
|
||||||
|
<target>Підтвердити файли з невідомих серверів.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Confirm network settings" xml:space="preserve">
|
<trans-unit id="Confirm network settings" xml:space="preserve">
|
||||||
<source>Confirm network settings</source>
|
<source>Confirm network settings</source>
|
||||||
<target>Підтвердьте налаштування мережі</target>
|
<target>Підтвердьте налаштування мережі</target>
|
||||||
@@ -1691,6 +1721,10 @@ This is your own one-time link!</source>
|
|||||||
<target>База даних буде перенесена під час перезапуску програми</target>
|
<target>База даних буде перенесена під час перезапуску програми</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Debug delivery" xml:space="preserve">
|
||||||
|
<source>Debug delivery</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Decentralized" xml:space="preserve">
|
<trans-unit id="Decentralized" xml:space="preserve">
|
||||||
<source>Decentralized</source>
|
<source>Decentralized</source>
|
||||||
<target>Децентралізований</target>
|
<target>Децентралізований</target>
|
||||||
@@ -1938,6 +1972,11 @@ This cannot be undone!</source>
|
|||||||
<target>Настільні пристрої</target>
|
<target>Настільні пристрої</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Destination server error: %@</source>
|
||||||
|
<target>Помилка сервера призначення: %@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Develop" xml:space="preserve">
|
<trans-unit id="Develop" xml:space="preserve">
|
||||||
<source>Develop</source>
|
<source>Develop</source>
|
||||||
<target>Розробник</target>
|
<target>Розробник</target>
|
||||||
@@ -2043,11 +2082,21 @@ This cannot be undone!</source>
|
|||||||
<target>Відкриття через локальну мережу</target>
|
<target>Відкриття через локальну мережу</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT send messages directly, even if your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT send messages directly, even if your or destination server does not support private routing.</source>
|
||||||
|
<target>НЕ надсилайте повідомлення напряму, навіть якщо ваш сервер або сервер призначення не підтримує приватну маршрутизацію.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
<trans-unit id="Do NOT use SimpleX for emergency calls." xml:space="preserve">
|
||||||
<source>Do NOT use SimpleX for emergency calls.</source>
|
<source>Do NOT use SimpleX for emergency calls.</source>
|
||||||
<target>НЕ використовуйте SimpleX для екстрених викликів.</target>
|
<target>НЕ використовуйте SimpleX для екстрених викликів.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Do NOT use private routing." xml:space="preserve">
|
||||||
|
<source>Do NOT use private routing.</source>
|
||||||
|
<target>НЕ використовуйте приватну маршрутизацію.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Do it later" xml:space="preserve">
|
<trans-unit id="Do it later" xml:space="preserve">
|
||||||
<source>Do it later</source>
|
<source>Do it later</source>
|
||||||
<target>Зробіть це пізніше</target>
|
<target>Зробіть це пізніше</target>
|
||||||
@@ -2078,6 +2127,11 @@ This cannot be undone!</source>
|
|||||||
<target>Пониження та відкритий чат</target>
|
<target>Пониження та відкритий чат</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Download" xml:space="preserve">
|
||||||
|
<source>Download</source>
|
||||||
|
<target>Завантажити</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Download failed" xml:space="preserve">
|
<trans-unit id="Download failed" xml:space="preserve">
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<target>Не вдалося завантажити</target>
|
<target>Не вдалося завантажити</target>
|
||||||
@@ -2188,6 +2242,11 @@ This cannot be undone!</source>
|
|||||||
<target>Увімкнути пароль самознищення</target>
|
<target>Увімкнути пароль самознищення</target>
|
||||||
<note>set passcode view</note>
|
<note>set passcode view</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Enabled for" xml:space="preserve">
|
||||||
|
<source>Enabled for</source>
|
||||||
|
<target>Увімкнено для</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Encrypt" xml:space="preserve">
|
<trans-unit id="Encrypt" xml:space="preserve">
|
||||||
<source>Encrypt</source>
|
<source>Encrypt</source>
|
||||||
<target>Зашифрувати</target>
|
<target>Зашифрувати</target>
|
||||||
@@ -2338,11 +2397,6 @@ This cannot be undone!</source>
|
|||||||
<target>Помилка додавання користувача(ів)</target>
|
<target>Помилка додавання користувача(ів)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
|
|
||||||
<source>Error allowing contact PQ encryption</source>
|
|
||||||
<target>Помилка, що дозволяє шифрування контакту PQ</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Error changing address" xml:space="preserve">
|
<trans-unit id="Error changing address" xml:space="preserve">
|
||||||
<source>Error changing address</source>
|
<source>Error changing address</source>
|
||||||
<target>Помилка зміни адреси</target>
|
<target>Помилка зміни адреси</target>
|
||||||
@@ -2606,7 +2660,7 @@ This cannot be undone!</source>
|
|||||||
<trans-unit id="Error: %@" xml:space="preserve">
|
<trans-unit id="Error: %@" xml:space="preserve">
|
||||||
<source>Error: %@</source>
|
<source>Error: %@</source>
|
||||||
<target>Помилка: %@</target>
|
<target>Помилка: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>snd error text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
<trans-unit id="Error: URL is invalid" xml:space="preserve">
|
||||||
<source>Error: URL is invalid</source>
|
<source>Error: URL is invalid</source>
|
||||||
@@ -2698,6 +2752,11 @@ This cannot be undone!</source>
|
|||||||
<target>Файл: %@</target>
|
<target>Файл: %@</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files" xml:space="preserve">
|
||||||
|
<source>Files</source>
|
||||||
|
<target>Файли</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files & media" xml:space="preserve">
|
<trans-unit id="Files & media" xml:space="preserve">
|
||||||
<source>Files & media</source>
|
<source>Files & media</source>
|
||||||
<target>Файли та медіа</target>
|
<target>Файли та медіа</target>
|
||||||
@@ -2713,6 +2772,11 @@ This cannot be undone!</source>
|
|||||||
<target>Файли та медіа в цій групі заборонені.</target>
|
<target>Файли та медіа в цій групі заборонені.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Files and media not allowed" xml:space="preserve">
|
||||||
|
<source>Files and media not allowed</source>
|
||||||
|
<target>Файли та медіафайли заборонені</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
<trans-unit id="Files and media prohibited!" xml:space="preserve">
|
||||||
<source>Files and media prohibited!</source>
|
<source>Files and media prohibited!</source>
|
||||||
<target>Файли та медіа заборонені!</target>
|
<target>Файли та медіа заборонені!</target>
|
||||||
@@ -2778,6 +2842,40 @@ This cannot be undone!</source>
|
|||||||
<target>Для консолі</target>
|
<target>Для консолі</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward" xml:space="preserve">
|
||||||
|
<source>Forward</source>
|
||||||
|
<target>Пересилання</target>
|
||||||
|
<note>chat item action</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forward and save messages" xml:space="preserve">
|
||||||
|
<source>Forward and save messages</source>
|
||||||
|
<target>Пересилання та збереження повідомлень</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded" xml:space="preserve">
|
||||||
|
<source>Forwarded</source>
|
||||||
|
<target>Переслано</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarded from" xml:space="preserve">
|
||||||
|
<source>Forwarded from</source>
|
||||||
|
<target>Переслано з</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Destination server error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Destination server error: %2$@</source>
|
||||||
|
<target>Сервер переадресації: %1$@
|
||||||
|
Помилка сервера призначення: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Forwarding server: %@ Error: %@" xml:space="preserve">
|
||||||
|
<source>Forwarding server: %1$@
|
||||||
|
Error: %2$@</source>
|
||||||
|
<target>Сервер переадресації: %1$@
|
||||||
|
Помилка: %2$@</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Found desktop" xml:space="preserve">
|
<trans-unit id="Found desktop" xml:space="preserve">
|
||||||
<source>Found desktop</source>
|
<source>Found desktop</source>
|
||||||
<target>Знайдено робочий стіл</target>
|
<target>Знайдено робочий стіл</target>
|
||||||
@@ -2888,6 +2986,11 @@ This cannot be undone!</source>
|
|||||||
<target>Учасники групи можуть безповоротно видаляти надіслані повідомлення. (24 години)</target>
|
<target>Учасники групи можуть безповоротно видаляти надіслані повідомлення. (24 години)</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
|
||||||
|
<source>Group members can send SimpleX links.</source>
|
||||||
|
<target>Учасники групи можуть надсилати посилання SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
<trans-unit id="Group members can send direct messages." xml:space="preserve">
|
||||||
<source>Group members can send direct messages.</source>
|
<source>Group members can send direct messages.</source>
|
||||||
<target>Учасники групи можуть надсилати прямі повідомлення.</target>
|
<target>Учасники групи можуть надсилати прямі повідомлення.</target>
|
||||||
@@ -3128,6 +3231,11 @@ This cannot be undone!</source>
|
|||||||
<target>У відповідь на</target>
|
<target>У відповідь на</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="In-call sounds" xml:space="preserve">
|
||||||
|
<source>In-call sounds</source>
|
||||||
|
<target>Звуки вхідного дзвінка</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Incognito" xml:space="preserve">
|
<trans-unit id="Incognito" xml:space="preserve">
|
||||||
<source>Incognito</source>
|
<source>Incognito</source>
|
||||||
<target>Інкогніто</target>
|
<target>Інкогніто</target>
|
||||||
@@ -3583,11 +3691,20 @@ This is your link for group %@!</source>
|
|||||||
<target>Підтвердження доставки повідомлення!</target>
|
<target>Підтвердження доставки повідомлення!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message delivery warning" xml:space="preserve">
|
||||||
|
<source>Message delivery warning</source>
|
||||||
|
<target>Попередження про доставку повідомлення</target>
|
||||||
|
<note>item status text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message draft" xml:space="preserve">
|
<trans-unit id="Message draft" xml:space="preserve">
|
||||||
<source>Message draft</source>
|
<source>Message draft</source>
|
||||||
<target>Чернетка повідомлення</target>
|
<target>Чернетка повідомлення</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message queue info" xml:space="preserve">
|
||||||
|
<source>Message queue info</source>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message reactions" xml:space="preserve">
|
<trans-unit id="Message reactions" xml:space="preserve">
|
||||||
<source>Message reactions</source>
|
<source>Message reactions</source>
|
||||||
<target>Реакції на повідомлення</target>
|
<target>Реакції на повідомлення</target>
|
||||||
@@ -3603,6 +3720,21 @@ This is your link for group %@!</source>
|
|||||||
<target>Реакції на повідомлення в цій групі заборонені.</target>
|
<target>Реакції на повідомлення в цій групі заборонені.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing fallback" xml:space="preserve">
|
||||||
|
<source>Message routing fallback</source>
|
||||||
|
<target>Запасний варіант маршрутизації повідомлень</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message routing mode" xml:space="preserve">
|
||||||
|
<source>Message routing mode</source>
|
||||||
|
<target>Режим маршрутизації повідомлень</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Message source remains private." xml:space="preserve">
|
||||||
|
<source>Message source remains private.</source>
|
||||||
|
<target>Джерело повідомлення залишається приватним.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Message text" xml:space="preserve">
|
<trans-unit id="Message text" xml:space="preserve">
|
||||||
<source>Message text</source>
|
<source>Message text</source>
|
||||||
<target>Текст повідомлення</target>
|
<target>Текст повідомлення</target>
|
||||||
@@ -3718,16 +3850,16 @@ This is your link for group %@!</source>
|
|||||||
<target>Незабаром буде ще більше покращень!</target>
|
<target>Незабаром буде ще більше покращень!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="More reliable network connection." xml:space="preserve">
|
||||||
|
<source>More reliable network connection.</source>
|
||||||
|
<target>Більш надійне з'єднання з мережею.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
<trans-unit id="Most likely this connection is deleted." xml:space="preserve">
|
||||||
<source>Most likely this connection is deleted.</source>
|
<source>Most likely this connection is deleted.</source>
|
||||||
<target>Швидше за все, це з'єднання видалено.</target>
|
<target>Швидше за все, це з'єднання видалено.</target>
|
||||||
<note>item status description</note>
|
<note>item status description</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Most likely this contact has deleted the connection with you." xml:space="preserve">
|
|
||||||
<source>Most likely this contact has deleted the connection with you.</source>
|
|
||||||
<target>Швидше за все, цей контакт видалив зв'язок з вами.</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
<trans-unit id="Multiple chat profiles" xml:space="preserve">
|
||||||
<source>Multiple chat profiles</source>
|
<source>Multiple chat profiles</source>
|
||||||
<target>Кілька профілів чату</target>
|
<target>Кілька профілів чату</target>
|
||||||
@@ -3753,6 +3885,21 @@ This is your link for group %@!</source>
|
|||||||
<target>Мережа та сервери</target>
|
<target>Мережа та сервери</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Network connection" xml:space="preserve">
|
||||||
|
<source>Network connection</source>
|
||||||
|
<target>Підключення до мережі</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network issues - message expired after many attempts to send it." xml:space="preserve">
|
||||||
|
<source>Network issues - message expired after many attempts to send it.</source>
|
||||||
|
<target>Проблеми з мережею - термін дії повідомлення закінчився після багатьох спроб надіслати його.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Network management" xml:space="preserve">
|
||||||
|
<source>Network management</source>
|
||||||
|
<target>Керування мережею</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Network settings" xml:space="preserve">
|
<trans-unit id="Network settings" xml:space="preserve">
|
||||||
<source>Network settings</source>
|
<source>Network settings</source>
|
||||||
<target>Налаштування мережі</target>
|
<target>Налаштування мережі</target>
|
||||||
@@ -3863,6 +4010,11 @@ This is your link for group %@!</source>
|
|||||||
<target>Немає історії</target>
|
<target>Немає історії</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="No network connection" xml:space="preserve">
|
||||||
|
<source>No network connection</source>
|
||||||
|
<target>Немає підключення до мережі</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
<trans-unit id="No permission to record voice message" xml:space="preserve">
|
||||||
<source>No permission to record voice message</source>
|
<source>No permission to record voice message</source>
|
||||||
<target>Немає дозволу на запис голосового повідомлення</target>
|
<target>Немає дозволу на запис голосового повідомлення</target>
|
||||||
@@ -4077,6 +4229,11 @@ This is your link for group %@!</source>
|
|||||||
<target>Або покажіть цей код</target>
|
<target>Або покажіть цей код</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Other" xml:space="preserve">
|
||||||
|
<source>Other</source>
|
||||||
|
<target>Інше</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="PING count" xml:space="preserve">
|
<trans-unit id="PING count" xml:space="preserve">
|
||||||
<source>PING count</source>
|
<source>PING count</source>
|
||||||
<target>Кількість PING</target>
|
<target>Кількість PING</target>
|
||||||
@@ -4244,11 +4401,6 @@ Error: %@</source>
|
|||||||
<target>Можливо, в адресі сервера неправильно вказано відбиток сертифіката</target>
|
<target>Можливо, в адресі сервера неправильно вказано відбиток сертифіката</target>
|
||||||
<note>server test error</note>
|
<note>server test error</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
|
|
||||||
<source>Post-quantum E2EE</source>
|
|
||||||
<target>Пост-квантовий E2EE</target>
|
|
||||||
<note>No comment provided by engineer.</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
|
||||||
<source>Preserve the last message draft, with attachments.</source>
|
<source>Preserve the last message draft, with attachments.</source>
|
||||||
<target>Зберегти чернетку останнього повідомлення з вкладеннями.</target>
|
<target>Зберегти чернетку останнього повідомлення з вкладеннями.</target>
|
||||||
@@ -4284,11 +4436,26 @@ Error: %@</source>
|
|||||||
<target>Приватні імена файлів</target>
|
<target>Приватні імена файлів</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing" xml:space="preserve">
|
||||||
|
<source>Private message routing</source>
|
||||||
|
<target>Маршрутизація приватних повідомлень</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Private message routing 🚀" xml:space="preserve">
|
||||||
|
<source>Private message routing 🚀</source>
|
||||||
|
<target>Маршрутизація приватних повідомлень 🚀</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Private notes" xml:space="preserve">
|
<trans-unit id="Private notes" xml:space="preserve">
|
||||||
<source>Private notes</source>
|
<source>Private notes</source>
|
||||||
<target>Приватні нотатки</target>
|
<target>Приватні нотатки</target>
|
||||||
<note>name of notes to self</note>
|
<note>name of notes to self</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Private routing" xml:space="preserve">
|
||||||
|
<source>Private routing</source>
|
||||||
|
<target>Приватна маршрутизація</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile and server connections" xml:space="preserve">
|
<trans-unit id="Profile and server connections" xml:space="preserve">
|
||||||
<source>Profile and server connections</source>
|
<source>Profile and server connections</source>
|
||||||
<target>З'єднання профілю та сервера</target>
|
<target>З'єднання профілю та сервера</target>
|
||||||
@@ -4299,6 +4466,11 @@ Error: %@</source>
|
|||||||
<target>Зображення профілю</target>
|
<target>Зображення профілю</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Profile images" xml:space="preserve">
|
||||||
|
<source>Profile images</source>
|
||||||
|
<target>Зображення профілю</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Profile name" xml:space="preserve">
|
<trans-unit id="Profile name" xml:space="preserve">
|
||||||
<source>Profile name</source>
|
<source>Profile name</source>
|
||||||
<target>Назва профілю</target>
|
<target>Назва профілю</target>
|
||||||
@@ -4339,6 +4511,11 @@ Error: %@</source>
|
|||||||
<target>Заборонити реакції на повідомлення.</target>
|
<target>Заборонити реакції на повідомлення.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
|
||||||
|
<source>Prohibit sending SimpleX links.</source>
|
||||||
|
<target>Заборонити надсилання посилань SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
|
||||||
<source>Prohibit sending direct messages to members.</source>
|
<source>Prohibit sending direct messages to members.</source>
|
||||||
<target>Заборонити надсилати прямі повідомлення учасникам.</target>
|
<target>Заборонити надсилати прямі повідомлення учасникам.</target>
|
||||||
@@ -4359,11 +4536,23 @@ Error: %@</source>
|
|||||||
<target>Заборонити надсилання голосових повідомлень.</target>
|
<target>Заборонити надсилання голосових повідомлень.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect IP address" xml:space="preserve">
|
||||||
|
<source>Protect IP address</source>
|
||||||
|
<target>Захист IP-адреси</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect app screen" xml:space="preserve">
|
<trans-unit id="Protect app screen" xml:space="preserve">
|
||||||
<source>Protect app screen</source>
|
<source>Protect app screen</source>
|
||||||
<target>Захистіть екран програми</target>
|
<target>Захистіть екран програми</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Protect your IP address from the messaging relays chosen by your contacts. Enable in *Network & servers* settings." xml:space="preserve">
|
||||||
|
<source>Protect your IP address from the messaging relays chosen by your contacts.
|
||||||
|
Enable in *Network & servers* settings.</source>
|
||||||
|
<target>Захистіть свою IP-адресу від ретрансляторів повідомлень, обраних вашими контактами.
|
||||||
|
Увімкніть у налаштуваннях *Мережа та сервери*.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
|
||||||
<source>Protect your chat profiles with a password!</source>
|
<source>Protect your chat profiles with a password!</source>
|
||||||
<target>Захистіть свої профілі чату паролем!</target>
|
<target>Захистіть свої профілі чату паролем!</target>
|
||||||
@@ -4484,6 +4673,11 @@ Error: %@</source>
|
|||||||
<target>Нещодавня історія та покращення [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
<target>Нещодавня історія та покращення [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
|
||||||
|
<source>Recipient(s) can't see who this message is from.</source>
|
||||||
|
<target>Одержувач(и) не бачить, від кого це повідомлення.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
<trans-unit id="Recipients see updates as you type them." xml:space="preserve">
|
||||||
<source>Recipients see updates as you type them.</source>
|
<source>Recipients see updates as you type them.</source>
|
||||||
<target>Одержувачі бачать оновлення, коли ви їх вводите.</target>
|
<target>Одержувачі бачать оновлення, коли ви їх вводите.</target>
|
||||||
@@ -4699,6 +4893,11 @@ Error: %@</source>
|
|||||||
<target>Сервери SMP</target>
|
<target>Сервери SMP</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Safely receive files" xml:space="preserve">
|
||||||
|
<source>Safely receive files</source>
|
||||||
|
<target>Безпечне отримання файлів</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Safer groups" xml:space="preserve">
|
<trans-unit id="Safer groups" xml:space="preserve">
|
||||||
<source>Safer groups</source>
|
<source>Safer groups</source>
|
||||||
<target>Безпечніші групи</target>
|
<target>Безпечніші групи</target>
|
||||||
@@ -4784,11 +4983,21 @@ Error: %@</source>
|
|||||||
<target>Зберегти вітальне повідомлення?</target>
|
<target>Зберегти вітальне повідомлення?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved" xml:space="preserve">
|
||||||
|
<source>Saved</source>
|
||||||
|
<target>Збережено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
|
||||||
<source>Saved WebRTC ICE servers will be removed</source>
|
<source>Saved WebRTC ICE servers will be removed</source>
|
||||||
<target>Збережені сервери WebRTC ICE буде видалено</target>
|
<target>Збережені сервери WebRTC ICE буде видалено</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Saved from" xml:space="preserve">
|
||||||
|
<source>Saved from</source>
|
||||||
|
<target>Збережено з</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Saved message" xml:space="preserve">
|
<trans-unit id="Saved message" xml:space="preserve">
|
||||||
<source>Saved message</source>
|
<source>Saved message</source>
|
||||||
<target>Збережене повідомлення</target>
|
<target>Збережене повідомлення</target>
|
||||||
@@ -4914,6 +5123,16 @@ Error: %@</source>
|
|||||||
<target>Надіслати живе повідомлення</target>
|
<target>Надіслати живе повідомлення</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when IP address is protected and your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when IP address is protected and your or destination server does not support private routing.</source>
|
||||||
|
<target>Надсилайте повідомлення напряму, якщо IP-адреса захищена, а ваш сервер або сервер призначення не підтримує приватну маршрутизацію.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Send messages directly when your or destination server does not support private routing." xml:space="preserve">
|
||||||
|
<source>Send messages directly when your or destination server does not support private routing.</source>
|
||||||
|
<target>Надсилайте повідомлення напряму, якщо ваш сервер або сервер призначення не підтримує приватну маршрутизацію.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send notifications" xml:space="preserve">
|
<trans-unit id="Send notifications" xml:space="preserve">
|
||||||
<source>Send notifications</source>
|
<source>Send notifications</source>
|
||||||
<target>Надсилати сповіщення</target>
|
<target>Надсилати сповіщення</target>
|
||||||
@@ -5019,6 +5238,11 @@ Error: %@</source>
|
|||||||
<target>Надіслані повідомлення будуть видалені через встановлений час.</target>
|
<target>Надіслані повідомлення будуть видалені через встановлений час.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server address is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server address is incompatible with network settings.</source>
|
||||||
|
<target>Адреса сервера несумісна з налаштуваннями мережі.</target>
|
||||||
|
<note>srv error text.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
<trans-unit id="Server requires authorization to create queues, check password" xml:space="preserve">
|
||||||
<source>Server requires authorization to create queues, check password</source>
|
<source>Server requires authorization to create queues, check password</source>
|
||||||
<target>Сервер вимагає авторизації для створення черг, перевірте пароль</target>
|
<target>Сервер вимагає авторизації для створення черг, перевірте пароль</target>
|
||||||
@@ -5034,6 +5258,11 @@ Error: %@</source>
|
|||||||
<target>Тест сервера завершився невдало!</target>
|
<target>Тест сервера завершився невдало!</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Server version is incompatible with network settings." xml:space="preserve">
|
||||||
|
<source>Server version is incompatible with network settings.</source>
|
||||||
|
<target>Серверна версія несумісна з мережевими налаштуваннями.</target>
|
||||||
|
<note>srv error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Servers" xml:space="preserve">
|
<trans-unit id="Servers" xml:space="preserve">
|
||||||
<source>Servers</source>
|
<source>Servers</source>
|
||||||
<target>Сервери</target>
|
<target>Сервери</target>
|
||||||
@@ -5094,6 +5323,11 @@ Error: %@</source>
|
|||||||
<target>Налаштування</target>
|
<target>Налаштування</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Shape profile images" xml:space="preserve">
|
||||||
|
<source>Shape profile images</source>
|
||||||
|
<target>Сформуйте зображення профілю</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Share" xml:space="preserve">
|
<trans-unit id="Share" xml:space="preserve">
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<target>Поділіться</target>
|
<target>Поділіться</target>
|
||||||
@@ -5149,11 +5383,21 @@ Error: %@</source>
|
|||||||
<target>Показати останні повідомлення</target>
|
<target>Показати останні повідомлення</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show message status" xml:space="preserve">
|
||||||
|
<source>Show message status</source>
|
||||||
|
<target>Показати статус повідомлення</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show preview" xml:space="preserve">
|
<trans-unit id="Show preview" xml:space="preserve">
|
||||||
<source>Show preview</source>
|
<source>Show preview</source>
|
||||||
<target>Показати попередній перегляд</target>
|
<target>Показати попередній перегляд</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Show → on messages sent via private routing." xml:space="preserve">
|
||||||
|
<source>Show → on messages sent via private routing.</source>
|
||||||
|
<target>Показувати → у повідомленнях, надісланих через приватну маршрутизацію.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show:" xml:space="preserve">
|
<trans-unit id="Show:" xml:space="preserve">
|
||||||
<source>Show:</source>
|
<source>Show:</source>
|
||||||
<target>Показати:</target>
|
<target>Показати:</target>
|
||||||
@@ -5212,6 +5456,16 @@ Error: %@</source>
|
|||||||
<trans-unit id="SimpleX links" xml:space="preserve">
|
<trans-unit id="SimpleX links" xml:space="preserve">
|
||||||
<source>SimpleX links</source>
|
<source>SimpleX links</source>
|
||||||
<target>Посилання SimpleX</target>
|
<target>Посилання SimpleX</target>
|
||||||
|
<note>chat feature</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
|
||||||
|
<source>SimpleX links are prohibited in this group.</source>
|
||||||
|
<target>У цій групі заборонені посилання на SimpleX.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="SimpleX links not allowed" xml:space="preserve">
|
||||||
|
<source>SimpleX links not allowed</source>
|
||||||
|
<target>Посилання SimpleX заборонені</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
<trans-unit id="SimpleX one-time invitation" xml:space="preserve">
|
||||||
@@ -5249,6 +5503,11 @@ Error: %@</source>
|
|||||||
<target>Хтось</target>
|
<target>Хтось</target>
|
||||||
<note>notification title</note>
|
<note>notification title</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
|
||||||
|
<source>Square, circle, or anything in between.</source>
|
||||||
|
<target>Квадрат, коло або щось середнє між ними.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Start chat" xml:space="preserve">
|
<trans-unit id="Start chat" xml:space="preserve">
|
||||||
<source>Start chat</source>
|
<source>Start chat</source>
|
||||||
<target>Почати чат</target>
|
<target>Почати чат</target>
|
||||||
@@ -5461,6 +5720,11 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>Додаток може сповіщати вас, коли ви отримуєте повідомлення або запити на контакт - будь ласка, відкрийте налаштування, щоб увімкнути цю функцію.</target>
|
<target>Додаток може сповіщати вас, коли ви отримуєте повідомлення або запити на контакт - будь ласка, відкрийте налаштування, щоб увімкнути цю функцію.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The app will ask to confirm downloads from unknown file servers (except .onion)." xml:space="preserve">
|
||||||
|
<source>The app will ask to confirm downloads from unknown file servers (except .onion).</source>
|
||||||
|
<target>Програма попросить підтвердити завантаження з невідомих файлових серверів (крім .onion).</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
|
||||||
<source>The attempt to change database passphrase was not completed.</source>
|
<source>The attempt to change database passphrase was not completed.</source>
|
||||||
<target>Спроба змінити пароль до бази даних не була завершена.</target>
|
<target>Спроба змінити пароль до бази даних не була завершена.</target>
|
||||||
@@ -5646,6 +5910,11 @@ It can happen because of some bug or when the connection is compromised.</source
|
|||||||
<target>Для захисту часового поясу у файлах зображень/голосу використовується UTC.</target>
|
<target>Для захисту часового поясу у файлах зображень/голосу використовується UTC.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="To protect your IP address, private routing uses your SMP servers to deliver messages." xml:space="preserve">
|
||||||
|
<source>To protect your IP address, private routing uses your SMP servers to deliver messages.</source>
|
||||||
|
<target>Щоб захистити вашу IP-адресу, приватна маршрутизація використовує ваші SMP-сервери для доставки повідомлень.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
<trans-unit id="To protect your information, turn on SimpleX Lock. You will be prompted to complete authentication before this feature is enabled." xml:space="preserve">
|
||||||
<source>To protect your information, turn on SimpleX Lock.
|
<source>To protect your information, turn on SimpleX Lock.
|
||||||
You will be prompted to complete authentication before this feature is enabled.</source>
|
You will be prompted to complete authentication before this feature is enabled.</source>
|
||||||
@@ -5738,11 +6007,6 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Розблокувати учасника?</target>
|
<target>Розблокувати учасника?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Unexpected error: %@" xml:space="preserve">
|
|
||||||
<source>Unexpected error: %@</source>
|
|
||||||
<target>Неочікувана помилка: %@</target>
|
|
||||||
<note>item status description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
<trans-unit id="Unexpected migration state" xml:space="preserve">
|
||||||
<source>Unexpected migration state</source>
|
<source>Unexpected migration state</source>
|
||||||
<target>Неочікуваний стан міграції</target>
|
<target>Неочікуваний стан міграції</target>
|
||||||
@@ -5788,6 +6052,11 @@ You will be prompted to complete authentication before this feature is enabled.<
|
|||||||
<target>Невідома помилка</target>
|
<target>Невідома помилка</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Unknown servers!" xml:space="preserve">
|
||||||
|
<source>Unknown servers!</source>
|
||||||
|
<target>Невідомі сервери!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
<trans-unit id="Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions." xml:space="preserve">
|
||||||
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
<source>Unless you use iOS call interface, enable Do Not Disturb mode to avoid interruptions.</source>
|
||||||
<target>Якщо ви не користуєтеся інтерфейсом виклику iOS, увімкніть режим "Не турбувати", щоб уникнути переривань.</target>
|
<target>Якщо ви не користуєтеся інтерфейсом виклику iOS, увімкніть режим "Не турбувати", щоб уникнути переривань.</target>
|
||||||
@@ -5935,6 +6204,16 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Використовувати лише локальні сповіщення?</target>
|
<target>Використовувати лише локальні сповіщення?</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers when IP address is not protected." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers when IP address is not protected.</source>
|
||||||
|
<target>Використовуйте приватну маршрутизацію з невідомими серверами, якщо IP-адреса не захищена.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Use private routing with unknown servers." xml:space="preserve">
|
||||||
|
<source>Use private routing with unknown servers.</source>
|
||||||
|
<target>Використовуйте приватну маршрутизацію з невідомими серверами.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Use server" xml:space="preserve">
|
<trans-unit id="Use server" xml:space="preserve">
|
||||||
<source>Use server</source>
|
<source>Use server</source>
|
||||||
<target>Використовувати сервер</target>
|
<target>Використовувати сервер</target>
|
||||||
@@ -6050,6 +6329,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Голосові повідомлення в цій групі заборонені.</target>
|
<target>Голосові повідомлення в цій групі заборонені.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Voice messages not allowed" xml:space="preserve">
|
||||||
|
<source>Voice messages not allowed</source>
|
||||||
|
<target>Голосові повідомлення заборонені</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
<trans-unit id="Voice messages prohibited!" xml:space="preserve">
|
||||||
<source>Voice messages prohibited!</source>
|
<source>Voice messages prohibited!</source>
|
||||||
<target>Голосові повідомлення заборонені!</target>
|
<target>Голосові повідомлення заборонені!</target>
|
||||||
@@ -6120,6 +6404,11 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>За наявності</target>
|
<target>За наявності</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
|
||||||
|
<source>When connecting audio and video calls.</source>
|
||||||
|
<target>При підключенні аудіо та відеодзвінків.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
|
||||||
<source>When people request to connect, you can accept or reject it.</source>
|
<source>When people request to connect, you can accept or reject it.</source>
|
||||||
<target>Коли люди звертаються із запитом на підключення, ви можете прийняти або відхилити його.</target>
|
<target>Коли люди звертаються із запитом на підключення, ви можете прийняти або відхилити його.</target>
|
||||||
@@ -6130,6 +6419,21 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>Коли ви ділитеся з кимось своїм профілем інкогніто, цей профіль буде використовуватися для груп, до яких вас запрошують.</target>
|
<target>Коли ви ділитеся з кимось своїм профілем інкогніто, цей профіль буде використовуватися для груп, до яких вас запрошують.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="WiFi" xml:space="preserve">
|
||||||
|
<source>WiFi</source>
|
||||||
|
<target>WiFi</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
|
||||||
|
<source>Will be enabled in direct chats!</source>
|
||||||
|
<target>Буде ввімкнено в прямих чатах!</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Wired ethernet" xml:space="preserve">
|
||||||
|
<source>Wired ethernet</source>
|
||||||
|
<target>Дротова мережа Ethernet</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
<trans-unit id="With encrypted files and media." xml:space="preserve">
|
||||||
<source>With encrypted files and media.</source>
|
<source>With encrypted files and media.</source>
|
||||||
<target>З зашифрованими файлами та медіа.</target>
|
<target>З зашифрованими файлами та медіа.</target>
|
||||||
@@ -6145,11 +6449,26 @@ To connect, please ask your contact to create another connection link and check
|
|||||||
<target>З меншим споживанням заряду акумулятора.</target>
|
<target>З меншим споживанням заряду акумулятора.</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to file servers." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to file servers.</source>
|
||||||
|
<target>Без Tor або VPN ваша IP-адреса буде видимою для файлових серверів.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." xml:space="preserve">
|
||||||
|
<source>Without Tor or VPN, your IP address will be visible to these XFTP relays: %@.</source>
|
||||||
|
<target>Без Tor або VPN ваша IP-адреса буде видимою для цих XFTP-ретрансляторів: %@.</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
<trans-unit id="Wrong database passphrase" xml:space="preserve">
|
||||||
<source>Wrong database passphrase</source>
|
<source>Wrong database passphrase</source>
|
||||||
<target>Неправильний пароль до бази даних</target>
|
<target>Неправильний пароль до бази даних</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Wrong key or unknown connection - most likely this connection is deleted." xml:space="preserve">
|
||||||
|
<source>Wrong key or unknown connection - most likely this connection is deleted.</source>
|
||||||
|
<target>Неправильний ключ або невідоме з'єднання - швидше за все, це з'єднання видалено.</target>
|
||||||
|
<note>snd error text</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
<trans-unit id="Wrong passphrase!" xml:space="preserve">
|
||||||
<source>Wrong passphrase!</source>
|
<source>Wrong passphrase!</source>
|
||||||
<target>Неправильний пароль!</target>
|
<target>Неправильний пароль!</target>
|
||||||
@@ -6613,6 +6932,11 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>адмін</target>
|
<target>адмін</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="admins" xml:space="preserve">
|
||||||
|
<source>admins</source>
|
||||||
|
<target>адміністратори</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
<trans-unit id="agreeing encryption for %@…" xml:space="preserve">
|
||||||
<source>agreeing encryption for %@…</source>
|
<source>agreeing encryption for %@…</source>
|
||||||
<target>узгодження шифрування для %@…</target>
|
<target>узгодження шифрування для %@…</target>
|
||||||
@@ -6623,6 +6947,11 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>узгодження шифрування…</target>
|
<target>узгодження шифрування…</target>
|
||||||
<note>chat item text</note>
|
<note>chat item text</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="all members" xml:space="preserve">
|
||||||
|
<source>all members</source>
|
||||||
|
<target>всі учасники</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="always" xml:space="preserve">
|
<trans-unit id="always" xml:space="preserve">
|
||||||
<source>always</source>
|
<source>always</source>
|
||||||
<target>завжди</target>
|
<target>завжди</target>
|
||||||
@@ -6953,6 +7282,11 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>відбулася подія</target>
|
<target>відбулася подія</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="forwarded" xml:space="preserve">
|
||||||
|
<source>forwarded</source>
|
||||||
|
<target>переслано</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="group deleted" xml:space="preserve">
|
<trans-unit id="group deleted" xml:space="preserve">
|
||||||
<source>group deleted</source>
|
<source>group deleted</source>
|
||||||
<target>групу видалено</target>
|
<target>групу видалено</target>
|
||||||
@@ -7160,6 +7494,11 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>власник</target>
|
<target>власник</target>
|
||||||
<note>member role</note>
|
<note>member role</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="owners" xml:space="preserve">
|
||||||
|
<source>owners</source>
|
||||||
|
<target>власники</target>
|
||||||
|
<note>feature role</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="peer-to-peer" xml:space="preserve">
|
<trans-unit id="peer-to-peer" xml:space="preserve">
|
||||||
<source>peer-to-peer</source>
|
<source>peer-to-peer</source>
|
||||||
<target>одноранговий</target>
|
<target>одноранговий</target>
|
||||||
@@ -7210,6 +7549,16 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>прибрали вас</target>
|
<target>прибрали вас</target>
|
||||||
<note>rcv group event chat item</note>
|
<note>rcv group event chat item</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="saved" xml:space="preserve">
|
||||||
|
<source>saved</source>
|
||||||
|
<target>збережено</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="saved from %@" xml:space="preserve">
|
||||||
|
<source>saved from %@</source>
|
||||||
|
<target>збережено з %@</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="sec" xml:space="preserve">
|
<trans-unit id="sec" xml:space="preserve">
|
||||||
<source>sec</source>
|
<source>sec</source>
|
||||||
<target>сек</target>
|
<target>сек</target>
|
||||||
@@ -7235,6 +7584,12 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>надіслати пряме повідомлення</target>
|
<target>надіслати пряме повідомлення</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="server queue info: %@ last received msg: %@" xml:space="preserve">
|
||||||
|
<source>server queue info: %1$@
|
||||||
|
|
||||||
|
last received msg: %2$@</source>
|
||||||
|
<note>queue info</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="set new contact address" xml:space="preserve">
|
<trans-unit id="set new contact address" xml:space="preserve">
|
||||||
<source>set new contact address</source>
|
<source>set new contact address</source>
|
||||||
<target>встановити нову контактну адресу</target>
|
<target>встановити нову контактну адресу</target>
|
||||||
@@ -7275,11 +7630,21 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>невідомий</target>
|
<target>невідомий</target>
|
||||||
<note>connection info</note>
|
<note>connection info</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unknown relays" xml:space="preserve">
|
||||||
|
<source>unknown relays</source>
|
||||||
|
<target>невідомі реле</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="unknown status" xml:space="preserve">
|
<trans-unit id="unknown status" xml:space="preserve">
|
||||||
<source>unknown status</source>
|
<source>unknown status</source>
|
||||||
<target>невідомий статус</target>
|
<target>невідомий статус</target>
|
||||||
<note>No comment provided by engineer.</note>
|
<note>No comment provided by engineer.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="unprotected" xml:space="preserve">
|
||||||
|
<source>unprotected</source>
|
||||||
|
<target>незахищені</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="updated group profile" xml:space="preserve">
|
<trans-unit id="updated group profile" xml:space="preserve">
|
||||||
<source>updated group profile</source>
|
<source>updated group profile</source>
|
||||||
<target>оновлений профіль групи</target>
|
<target>оновлений профіль групи</target>
|
||||||
@@ -7345,11 +7710,21 @@ SimpleX servers cannot see your profile.</source>
|
|||||||
<target>тижнів</target>
|
<target>тижнів</target>
|
||||||
<note>time unit</note>
|
<note>time unit</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="when IP hidden" xml:space="preserve">
|
||||||
|
<source>when IP hidden</source>
|
||||||
|
<target>коли IP приховано</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="yes" xml:space="preserve">
|
<trans-unit id="yes" xml:space="preserve">
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
<target>так</target>
|
<target>так</target>
|
||||||
<note>pref value</note>
|
<note>pref value</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="you" xml:space="preserve">
|
||||||
|
<source>you</source>
|
||||||
|
<target>ти</target>
|
||||||
|
<note>No comment provided by engineer.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="you are invited to group" xml:space="preserve">
|
<trans-unit id="you are invited to group" xml:space="preserve">
|
||||||
<source>you are invited to group</source>
|
<source>you are invited to group</source>
|
||||||
<target>вас запрошують до групи</target>
|
<target>вас запрошують до групи</target>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -65,20 +65,24 @@ class NSEThreads {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func processNotification(_ id: ChatId, _ ntf: NSENotification) async -> Void {
|
func processNotification(_ id: ChatId, _ ntf: NSENotification) async -> Void {
|
||||||
var timeoutOfWaiting: Int64 = 5_000_000000
|
var waitTime: Int64 = 5_000_000000
|
||||||
while timeoutOfWaiting > 0 {
|
while waitTime > 0 {
|
||||||
let activeThread = NSEThreads.queue.sync {
|
if let (_, nse) = rcvEntityThread(id),
|
||||||
activeThreads.first(where: { (_, nse) in nse.receiveEntityId == id })
|
nse.shouldProcessNtf && nse.processReceivedNtf(ntf) {
|
||||||
}
|
|
||||||
if activeThread?.1.processReceivedNtf?(ntf) == true {
|
|
||||||
break
|
break
|
||||||
} else {
|
} else {
|
||||||
try? await Task.sleep(nanoseconds: 10_000000)
|
try? await Task.sleep(nanoseconds: 10_000000)
|
||||||
timeoutOfWaiting -= 10_000000
|
waitTime -= 10_000000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func rcvEntityThread(_ id: ChatId) -> (UUID, NotificationService)? {
|
||||||
|
NSEThreads.queue.sync {
|
||||||
|
activeThreads.first(where: { (_, nse) in nse.receiveEntityId == id })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func endThread(_ t: UUID) -> Bool {
|
func endThread(_ t: UUID) -> Bool {
|
||||||
NSEThreads.queue.sync {
|
NSEThreads.queue.sync {
|
||||||
let tActive: UUID? = if let index = activeThreads.firstIndex(where: { $0.0 == t }) {
|
let tActive: UUID? = if let index = activeThreads.firstIndex(where: { $0.0 == t }) {
|
||||||
@@ -113,9 +117,11 @@ class NotificationService: UNNotificationServiceExtension {
|
|||||||
// thread is added to allThreads here - if thread did not start chat,
|
// thread is added to allThreads here - if thread did not start chat,
|
||||||
// chat does not need to be suspended but NSE state still needs to be set to "suspended".
|
// chat does not need to be suspended but NSE state still needs to be set to "suspended".
|
||||||
var threadId: UUID? = NSEThreads.shared.newThread()
|
var threadId: UUID? = NSEThreads.shared.newThread()
|
||||||
|
var notificationInfo: NtfMessages?
|
||||||
var receiveEntityId: String?
|
var receiveEntityId: String?
|
||||||
|
var expectedMessages: Set<String> = []
|
||||||
// return true if the message is taken - it prevents sending it to another NotificationService instance for processing
|
// return true if the message is taken - it prevents sending it to another NotificationService instance for processing
|
||||||
var processReceivedNtf: ((NSENotification) -> Bool)?
|
var shouldProcessNtf = false
|
||||||
var appSubscriber: AppSubscriber?
|
var appSubscriber: AppSubscriber?
|
||||||
var returnedSuspension = false
|
var returnedSuspension = false
|
||||||
|
|
||||||
@@ -192,39 +198,11 @@ class NotificationService: UNNotificationServiceExtension {
|
|||||||
? .nse(createConnectionEventNtf(ntfInfo.user, connEntity))
|
? .nse(createConnectionEventNtf(ntfInfo.user, connEntity))
|
||||||
: .empty
|
: .empty
|
||||||
)
|
)
|
||||||
if let id = connEntity.id, let msgTs = ntfInfo.msgTs {
|
if let id = connEntity.id, ntfInfo.msgTs != nil {
|
||||||
var expected = Set(ntfInfo.ntfMessages.map { $0.msgId })
|
notificationInfo = ntfInfo
|
||||||
processReceivedNtf = { ntf in
|
|
||||||
if !ntfInfo.user.showNotifications {
|
|
||||||
self.setBestAttemptNtf(.empty)
|
|
||||||
}
|
|
||||||
if case let .msgInfo(info) = ntf {
|
|
||||||
let found = expected.remove(info.msgId)
|
|
||||||
if found != nil {
|
|
||||||
logger.debug("NotificationService processNtf: msgInfo, last: \(expected.isEmpty)")
|
|
||||||
if expected.isEmpty {
|
|
||||||
self.deliverBestAttemptNtf()
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
} else if info.msgTs > msgTs {
|
|
||||||
logger.debug("NotificationService processNtf: unexpected msgInfo, let other instance to process it, stopping this one")
|
|
||||||
self.deliverBestAttemptNtf()
|
|
||||||
return false
|
|
||||||
} else {
|
|
||||||
logger.debug("NotificationService processNtf: unknown message, let other instance to process it")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if ntfInfo.user.showNotifications {
|
|
||||||
logger.debug("NotificationService processNtf: setting best attempt")
|
|
||||||
self.setBestAttemptNtf(ntf)
|
|
||||||
if ntf.isCallInvitation {
|
|
||||||
self.deliverBestAttemptNtf()
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
receiveEntityId = id
|
receiveEntityId = id
|
||||||
|
expectedMessages = Set(ntfInfo.ntfMessages.map { $0.msgId })
|
||||||
|
shouldProcessNtf = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -240,6 +218,38 @@ class NotificationService: UNNotificationServiceExtension {
|
|||||||
deliverBestAttemptNtf(urgent: true)
|
deliverBestAttemptNtf(urgent: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func processReceivedNtf(_ ntf: NSENotification) -> Bool {
|
||||||
|
guard let ntfInfo = notificationInfo, let msgTs = ntfInfo.msgTs else { return false }
|
||||||
|
if !ntfInfo.user.showNotifications {
|
||||||
|
self.setBestAttemptNtf(.empty)
|
||||||
|
}
|
||||||
|
if case let .msgInfo(info) = ntf {
|
||||||
|
let found = expectedMessages.remove(info.msgId)
|
||||||
|
if found != nil {
|
||||||
|
logger.debug("NotificationService processNtf: msgInfo, last: \(self.expectedMessages.isEmpty)")
|
||||||
|
if expectedMessages.isEmpty {
|
||||||
|
self.deliverBestAttemptNtf()
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
} else if info.msgTs > msgTs {
|
||||||
|
logger.debug("NotificationService processNtf: unexpected msgInfo, let other instance to process it, stopping this one")
|
||||||
|
self.deliverBestAttemptNtf()
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
logger.debug("NotificationService processNtf: unknown message, let other instance to process it")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else if ntfInfo.user.showNotifications {
|
||||||
|
logger.debug("NotificationService processNtf: setting best attempt")
|
||||||
|
self.setBestAttemptNtf(ntf)
|
||||||
|
if ntf.isCallInvitation {
|
||||||
|
self.deliverBestAttemptNtf()
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func setBadgeCount() {
|
func setBadgeCount() {
|
||||||
badgeCount = ntfBadgeCountGroupDefault.get() + 1
|
badgeCount = ntfBadgeCountGroupDefault.get() + 1
|
||||||
ntfBadgeCountGroupDefault.set(badgeCount)
|
ntfBadgeCountGroupDefault.set(badgeCount)
|
||||||
@@ -262,7 +272,7 @@ class NotificationService: UNNotificationServiceExtension {
|
|||||||
private func deliverBestAttemptNtf(urgent: Bool = false) {
|
private func deliverBestAttemptNtf(urgent: Bool = false) {
|
||||||
logger.debug("NotificationService.deliverBestAttemptNtf")
|
logger.debug("NotificationService.deliverBestAttemptNtf")
|
||||||
// stop processing other messages
|
// stop processing other messages
|
||||||
processReceivedNtf = nil
|
shouldProcessNtf = false
|
||||||
|
|
||||||
let suspend: Bool
|
let suspend: Bool
|
||||||
if let t = threadId {
|
if let t = threadId {
|
||||||
@@ -576,9 +586,6 @@ func receivedMsgNtf(_ res: ChatResponse) async -> (String, NSENotification)? {
|
|||||||
cleanupDirectFile(aChatItem)
|
cleanupDirectFile(aChatItem)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
case let .sndFileCompleteXFTP(_, aChatItem, _):
|
|
||||||
cleanupFile(aChatItem)
|
|
||||||
return nil
|
|
||||||
case let .callInvitation(invitation):
|
case let .callInvitation(invitation):
|
||||||
// Do not post it without CallKit support, iOS will stop launching the app without showing CallKit
|
// Do not post it without CallKit support, iOS will stop launching the app without showing CallKit
|
||||||
return (
|
return (
|
||||||
@@ -689,14 +696,16 @@ func apiGetNtfMessage(nonce: String, encNtfInfo: String) -> NtfMessages? {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil) -> AChatItem? {
|
func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil) -> AChatItem? {
|
||||||
let r = sendSimpleXCmd(.receiveFile(fileId: fileId, encrypted: encrypted, inline: inline))
|
let userApprovedRelays = !privacyAskToApproveRelaysGroupDefault.get()
|
||||||
|
let r = sendSimpleXCmd(.receiveFile(fileId: fileId, userApprovedRelays: userApprovedRelays, encrypted: encrypted, inline: inline))
|
||||||
if case let .rcvFileAccepted(_, chatItem) = r { return chatItem }
|
if case let .rcvFileAccepted(_, chatItem) = r { return chatItem }
|
||||||
logger.error("receiveFile error: \(responseError(r))")
|
logger.error("receiveFile error: \(responseError(r))")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func apiSetFileToReceive(fileId: Int64, encrypted: Bool) {
|
func apiSetFileToReceive(fileId: Int64, encrypted: Bool) {
|
||||||
let r = sendSimpleXCmd(.setFileToReceive(fileId: fileId, encrypted: encrypted))
|
let userApprovedRelays = !privacyAskToApproveRelaysGroupDefault.get()
|
||||||
|
let r = sendSimpleXCmd(.setFileToReceive(fileId: fileId, userApprovedRelays: userApprovedRelays, encrypted: encrypted))
|
||||||
if case .cmdOk = r { return }
|
if case .cmdOk = r { return }
|
||||||
logger.error("setFileToReceive error: \(responseError(r))")
|
logger.error("setFileToReceive error: \(responseError(r))")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,5 +5,5 @@
|
|||||||
"CFBundleName" = "SimpleX NSE";
|
"CFBundleName" = "SimpleX NSE";
|
||||||
|
|
||||||
/* Copyright (human-readable) */
|
/* Copyright (human-readable) */
|
||||||
"NSHumanReadableCopyright" = "Copyright © 2022 SimpleX Chat. All rights reserved.";
|
"NSHumanReadableCopyright" = "Copyright © 2024 SimpleX Chat. All rights reserved.";
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,11 @@
|
|||||||
5C029EAA283942EA004A9677 /* CallController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C029EA9283942EA004A9677 /* CallController.swift */; };
|
5C029EAA283942EA004A9677 /* CallController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C029EA9283942EA004A9677 /* CallController.swift */; };
|
||||||
5C05DF532840AA1D00C683F9 /* CallSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C05DF522840AA1D00C683F9 /* CallSettings.swift */; };
|
5C05DF532840AA1D00C683F9 /* CallSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C05DF522840AA1D00C683F9 /* CallSettings.swift */; };
|
||||||
5C063D2727A4564100AEC577 /* ChatPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C063D2627A4564100AEC577 /* ChatPreviewView.swift */; };
|
5C063D2727A4564100AEC577 /* ChatPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C063D2627A4564100AEC577 /* ChatPreviewView.swift */; };
|
||||||
|
5C0EA13B2C0B176B00AD2E5E /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C0EA1362C0B176B00AD2E5E /* libgmp.a */; };
|
||||||
|
5C0EA13C2C0B176B00AD2E5E /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C0EA1372C0B176B00AD2E5E /* libgmpxx.a */; };
|
||||||
|
5C0EA13D2C0B176B00AD2E5E /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C0EA1382C0B176B00AD2E5E /* libffi.a */; };
|
||||||
|
5C0EA13E2C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C0EA1392C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc-ghc9.6.3.a */; };
|
||||||
|
5C0EA13F2C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C0EA13A2C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc.a */; };
|
||||||
5C10D88828EED12E00E58BF0 /* ContactConnectionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C10D88728EED12E00E58BF0 /* ContactConnectionInfo.swift */; };
|
5C10D88828EED12E00E58BF0 /* ContactConnectionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C10D88728EED12E00E58BF0 /* ContactConnectionInfo.swift */; };
|
||||||
5C10D88A28F187F300E58BF0 /* FullScreenMediaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C10D88928F187F300E58BF0 /* FullScreenMediaView.swift */; };
|
5C10D88A28F187F300E58BF0 /* FullScreenMediaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C10D88928F187F300E58BF0 /* FullScreenMediaView.swift */; };
|
||||||
5C116CDC27AABE0400E66D01 /* ContactRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */; };
|
5C116CDC27AABE0400E66D01 /* ContactRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */; };
|
||||||
@@ -36,11 +41,6 @@
|
|||||||
5C35CFC827B2782E00FB6C6D /* BGManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CFC727B2782E00FB6C6D /* BGManager.swift */; };
|
5C35CFC827B2782E00FB6C6D /* BGManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CFC727B2782E00FB6C6D /* BGManager.swift */; };
|
||||||
5C35CFCB27B2E91D00FB6C6D /* NtfManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CFCA27B2E91D00FB6C6D /* NtfManager.swift */; };
|
5C35CFCB27B2E91D00FB6C6D /* NtfManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C35CFCA27B2E91D00FB6C6D /* NtfManager.swift */; };
|
||||||
5C36027327F47AD5009F19D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C36027227F47AD5009F19D9 /* AppDelegate.swift */; };
|
5C36027327F47AD5009F19D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C36027227F47AD5009F19D9 /* AppDelegate.swift */; };
|
||||||
5C371E742BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E6F2BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a */; };
|
|
||||||
5C371E752BACC5D600100AD3 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E702BACC5D600100AD3 /* libgmpxx.a */; };
|
|
||||||
5C371E762BACC5D600100AD3 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E712BACC5D600100AD3 /* libffi.a */; };
|
|
||||||
5C371E772BACC5D600100AD3 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E722BACC5D600100AD3 /* libgmp.a */; };
|
|
||||||
5C371E782BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C371E732BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a */; };
|
|
||||||
5C3A88CE27DF50170060F1C2 /* DetermineWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */; };
|
5C3A88CE27DF50170060F1C2 /* DetermineWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */; };
|
||||||
5C3A88D127DF57800060F1C2 /* FramedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88D027DF57800060F1C2 /* FramedItemView.swift */; };
|
5C3A88D127DF57800060F1C2 /* FramedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3A88D027DF57800060F1C2 /* FramedItemView.swift */; };
|
||||||
5C3CCFCC2AE6BD3100C3F0C3 /* ConnectDesktopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */; };
|
5C3CCFCC2AE6BD3100C3F0C3 /* ConnectDesktopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */; };
|
||||||
@@ -172,6 +172,7 @@
|
|||||||
646BB38E283FDB6D001CE359 /* LocalAuthenticationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646BB38D283FDB6D001CE359 /* LocalAuthenticationUtils.swift */; };
|
646BB38E283FDB6D001CE359 /* LocalAuthenticationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646BB38D283FDB6D001CE359 /* LocalAuthenticationUtils.swift */; };
|
||||||
647F090E288EA27B00644C40 /* GroupMemberInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 647F090D288EA27B00644C40 /* GroupMemberInfoView.swift */; };
|
647F090E288EA27B00644C40 /* GroupMemberInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 647F090D288EA27B00644C40 /* GroupMemberInfoView.swift */; };
|
||||||
648010AB281ADD15009009B9 /* CIFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648010AA281ADD15009009B9 /* CIFileView.swift */; };
|
648010AB281ADD15009009B9 /* CIFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648010AA281ADD15009009B9 /* CIFileView.swift */; };
|
||||||
|
648679AB2BC96A74006456E7 /* ChatItemForwardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */; };
|
||||||
649BCDA0280460FD00C3A862 /* ComposeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCD9F280460FD00C3A862 /* ComposeImageView.swift */; };
|
649BCDA0280460FD00C3A862 /* ComposeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCD9F280460FD00C3A862 /* ComposeImageView.swift */; };
|
||||||
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; };
|
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; };
|
||||||
64AA1C6927EE10C800AC7277 /* ContextItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */; };
|
64AA1C6927EE10C800AC7277 /* ContextItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */; };
|
||||||
@@ -187,6 +188,9 @@
|
|||||||
8C69FE7D2B8C7D2700267E38 /* AppSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */; };
|
8C69FE7D2B8C7D2700267E38 /* AppSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */; };
|
||||||
8C7D949A2B88952700B7B9E1 /* MigrateToDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */; };
|
8C7D949A2B88952700B7B9E1 /* MigrateToDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */; };
|
||||||
8C7DF3202B7CDB0A00C886D0 /* MigrateFromDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */; };
|
8C7DF3202B7CDB0A00C886D0 /* MigrateFromDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */; };
|
||||||
|
8C81482C2BD91CD4002CBEC3 /* AudioDevicePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C81482B2BD91CD4002CBEC3 /* AudioDevicePicker.swift */; };
|
||||||
|
8CC4ED902BD7B8530078AEE8 /* CallAudioDeviceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC4ED8F2BD7B8530078AEE8 /* CallAudioDeviceManager.swift */; };
|
||||||
|
8CC956EE2BC0041000412A11 /* NetworkObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC956ED2BC0041000412A11 /* NetworkObserver.swift */; };
|
||||||
D7197A1829AE89660055C05A /* WebRTC in Frameworks */ = {isa = PBXBuildFile; productRef = D7197A1729AE89660055C05A /* WebRTC */; };
|
D7197A1829AE89660055C05A /* WebRTC in Frameworks */ = {isa = PBXBuildFile; productRef = D7197A1729AE89660055C05A /* WebRTC */; };
|
||||||
D72A9088294BD7A70047C86D /* NativeTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D72A9087294BD7A70047C86D /* NativeTextEditor.swift */; };
|
D72A9088294BD7A70047C86D /* NativeTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D72A9087294BD7A70047C86D /* NativeTextEditor.swift */; };
|
||||||
D741547829AF89AF0022400A /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D741547729AF89AF0022400A /* StoreKit.framework */; };
|
D741547829AF89AF0022400A /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D741547729AF89AF0022400A /* StoreKit.framework */; };
|
||||||
@@ -269,6 +273,11 @@
|
|||||||
5C029EA9283942EA004A9677 /* CallController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallController.swift; sourceTree = "<group>"; };
|
5C029EA9283942EA004A9677 /* CallController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallController.swift; sourceTree = "<group>"; };
|
||||||
5C05DF522840AA1D00C683F9 /* CallSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallSettings.swift; sourceTree = "<group>"; };
|
5C05DF522840AA1D00C683F9 /* CallSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallSettings.swift; sourceTree = "<group>"; };
|
||||||
5C063D2627A4564100AEC577 /* ChatPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatPreviewView.swift; sourceTree = "<group>"; };
|
5C063D2627A4564100AEC577 /* ChatPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatPreviewView.swift; sourceTree = "<group>"; };
|
||||||
|
5C0EA1362C0B176B00AD2E5E /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||||
|
5C0EA1372C0B176B00AD2E5E /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||||
|
5C0EA1382C0B176B00AD2E5E /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||||
|
5C0EA1392C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc-ghc9.6.3.a"; sourceTree = "<group>"; };
|
||||||
|
5C0EA13A2C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc.a"; sourceTree = "<group>"; };
|
||||||
5C10D88728EED12E00E58BF0 /* ContactConnectionInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactConnectionInfo.swift; sourceTree = "<group>"; };
|
5C10D88728EED12E00E58BF0 /* ContactConnectionInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactConnectionInfo.swift; sourceTree = "<group>"; };
|
||||||
5C10D88928F187F300E58BF0 /* FullScreenMediaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullScreenMediaView.swift; sourceTree = "<group>"; };
|
5C10D88928F187F300E58BF0 /* FullScreenMediaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullScreenMediaView.swift; sourceTree = "<group>"; };
|
||||||
5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactRequestView.swift; sourceTree = "<group>"; };
|
5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactRequestView.swift; sourceTree = "<group>"; };
|
||||||
@@ -290,11 +299,6 @@
|
|||||||
5C371E4E2BA9AAA200100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = "<group>"; };
|
5C371E4E2BA9AAA200100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
5C371E4F2BA9AB6400100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = "hu.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = "<group>"; };
|
5C371E4F2BA9AB6400100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = "hu.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
5C371E502BA9AB6400100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
5C371E502BA9AB6400100AD3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
5C371E6F2BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a"; sourceTree = "<group>"; };
|
|
||||||
5C371E702BACC5D600100AD3 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
|
||||||
5C371E712BACC5D600100AD3 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
|
||||||
5C371E722BACC5D600100AD3 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
|
||||||
5C371E732BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a"; sourceTree = "<group>"; };
|
|
||||||
5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetermineWidth.swift; sourceTree = "<group>"; };
|
5C3A88CD27DF50170060F1C2 /* DetermineWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetermineWidth.swift; sourceTree = "<group>"; };
|
||||||
5C3A88D027DF57800060F1C2 /* FramedItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FramedItemView.swift; sourceTree = "<group>"; };
|
5C3A88D027DF57800060F1C2 /* FramedItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FramedItemView.swift; sourceTree = "<group>"; };
|
||||||
5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectDesktopView.swift; sourceTree = "<group>"; };
|
5C3CCFCB2AE6BD3100C3F0C3 /* ConnectDesktopView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectDesktopView.swift; sourceTree = "<group>"; };
|
||||||
@@ -463,6 +467,7 @@
|
|||||||
646BB38D283FDB6D001CE359 /* LocalAuthenticationUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalAuthenticationUtils.swift; sourceTree = "<group>"; };
|
646BB38D283FDB6D001CE359 /* LocalAuthenticationUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalAuthenticationUtils.swift; sourceTree = "<group>"; };
|
||||||
647F090D288EA27B00644C40 /* GroupMemberInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupMemberInfoView.swift; sourceTree = "<group>"; };
|
647F090D288EA27B00644C40 /* GroupMemberInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupMemberInfoView.swift; sourceTree = "<group>"; };
|
||||||
648010AA281ADD15009009B9 /* CIFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIFileView.swift; sourceTree = "<group>"; };
|
648010AA281ADD15009009B9 /* CIFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIFileView.swift; sourceTree = "<group>"; };
|
||||||
|
648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemForwardingView.swift; sourceTree = "<group>"; };
|
||||||
6493D667280ED77F007A76FB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
6493D667280ED77F007A76FB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
649BCD9F280460FD00C3A862 /* ComposeImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeImageView.swift; sourceTree = "<group>"; };
|
649BCD9F280460FD00C3A862 /* ComposeImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeImageView.swift; sourceTree = "<group>"; };
|
||||||
649BCDA12805D6EF00C3A862 /* CIImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIImageView.swift; sourceTree = "<group>"; };
|
649BCDA12805D6EF00C3A862 /* CIImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIImageView.swift; sourceTree = "<group>"; };
|
||||||
@@ -480,6 +485,9 @@
|
|||||||
8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSettings.swift; sourceTree = "<group>"; };
|
8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSettings.swift; sourceTree = "<group>"; };
|
||||||
8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToDevice.swift; sourceTree = "<group>"; };
|
8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToDevice.swift; sourceTree = "<group>"; };
|
||||||
8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateFromDevice.swift; sourceTree = "<group>"; };
|
8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateFromDevice.swift; sourceTree = "<group>"; };
|
||||||
|
8C81482B2BD91CD4002CBEC3 /* AudioDevicePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevicePicker.swift; sourceTree = "<group>"; };
|
||||||
|
8CC4ED8F2BD7B8530078AEE8 /* CallAudioDeviceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallAudioDeviceManager.swift; sourceTree = "<group>"; };
|
||||||
|
8CC956ED2BC0041000412A11 /* NetworkObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkObserver.swift; sourceTree = "<group>"; };
|
||||||
D72A9087294BD7A70047C86D /* NativeTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeTextEditor.swift; sourceTree = "<group>"; };
|
D72A9087294BD7A70047C86D /* NativeTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeTextEditor.swift; sourceTree = "<group>"; };
|
||||||
D741547729AF89AF0022400A /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; };
|
D741547729AF89AF0022400A /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
D741547929AF90B00022400A /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/PushKit.framework; sourceTree = DEVELOPER_DIR; };
|
D741547929AF90B00022400A /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/PushKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
@@ -521,13 +529,13 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
5C371E752BACC5D600100AD3 /* libgmpxx.a in Frameworks */,
|
5C0EA13C2C0B176B00AD2E5E /* libgmpxx.a in Frameworks */,
|
||||||
5C371E742BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a in Frameworks */,
|
|
||||||
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
|
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
|
||||||
5C371E782BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a in Frameworks */,
|
5C0EA13B2C0B176B00AD2E5E /* libgmp.a in Frameworks */,
|
||||||
5C371E762BACC5D600100AD3 /* libffi.a in Frameworks */,
|
5C0EA13D2C0B176B00AD2E5E /* libffi.a in Frameworks */,
|
||||||
5C371E772BACC5D600100AD3 /* libgmp.a in Frameworks */,
|
5C0EA13F2C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc.a in Frameworks */,
|
||||||
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
|
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
|
||||||
|
5C0EA13E2C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc-ghc9.6.3.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -545,6 +553,8 @@
|
|||||||
5C55A922283CEDE600C4E99E /* SoundPlayer.swift */,
|
5C55A922283CEDE600C4E99E /* SoundPlayer.swift */,
|
||||||
18415323A4082FC92887F906 /* WebRTCClient.swift */,
|
18415323A4082FC92887F906 /* WebRTCClient.swift */,
|
||||||
18415B08031E8FB0F7FC27F9 /* CallViewRenderers.swift */,
|
18415B08031E8FB0F7FC27F9 /* CallViewRenderers.swift */,
|
||||||
|
8CC4ED8F2BD7B8530078AEE8 /* CallAudioDeviceManager.swift */,
|
||||||
|
8C81482B2BD91CD4002CBEC3 /* AudioDevicePicker.swift */,
|
||||||
);
|
);
|
||||||
path = Call;
|
path = Call;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -583,6 +593,7 @@
|
|||||||
5CBE6C11294487F7002D9531 /* VerifyCodeView.swift */,
|
5CBE6C11294487F7002D9531 /* VerifyCodeView.swift */,
|
||||||
5CBE6C132944CC12002D9531 /* ScanCodeView.swift */,
|
5CBE6C132944CC12002D9531 /* ScanCodeView.swift */,
|
||||||
64C06EB42A0A4A7C00792D4D /* ChatItemInfoView.swift */,
|
64C06EB42A0A4A7C00792D4D /* ChatItemInfoView.swift */,
|
||||||
|
648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */,
|
||||||
);
|
);
|
||||||
path = Chat;
|
path = Chat;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -590,11 +601,11 @@
|
|||||||
5C764E5C279C70B7000C6508 /* Libraries */ = {
|
5C764E5C279C70B7000C6508 /* Libraries */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
5C371E712BACC5D600100AD3 /* libffi.a */,
|
5C0EA1382C0B176B00AD2E5E /* libffi.a */,
|
||||||
5C371E722BACC5D600100AD3 /* libgmp.a */,
|
5C0EA1362C0B176B00AD2E5E /* libgmp.a */,
|
||||||
5C371E702BACC5D600100AD3 /* libgmpxx.a */,
|
5C0EA1372C0B176B00AD2E5E /* libgmpxx.a */,
|
||||||
5C371E6F2BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv-ghc9.6.3.a */,
|
5C0EA1392C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc-ghc9.6.3.a */,
|
||||||
5C371E732BACC5D600100AD3 /* libHSsimplex-chat-5.6.0.4-E0iWSIg8fcR48og4na41Dv.a */,
|
5C0EA13A2C0B176B00AD2E5E /* libHSsimplex-chat-5.8.0.5-Idqi6HXqzzs2zrnyZtMyhc.a */,
|
||||||
);
|
);
|
||||||
path = Libraries;
|
path = Libraries;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -623,6 +634,7 @@
|
|||||||
5CB346E82869E8BA001FD2EF /* PushEnvironment.swift */,
|
5CB346E82869E8BA001FD2EF /* PushEnvironment.swift */,
|
||||||
5C93293E2928E0FD0090FFF9 /* AudioRecPlay.swift */,
|
5C93293E2928E0FD0090FFF9 /* AudioRecPlay.swift */,
|
||||||
5CBD2859295711D700EC2CF4 /* ImageUtils.swift */,
|
5CBD2859295711D700EC2CF4 /* ImageUtils.swift */,
|
||||||
|
8CC956ED2BC0041000412A11 /* NetworkObserver.swift */,
|
||||||
);
|
);
|
||||||
path = Model;
|
path = Model;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1158,6 +1170,7 @@
|
|||||||
5C10D88828EED12E00E58BF0 /* ContactConnectionInfo.swift in Sources */,
|
5C10D88828EED12E00E58BF0 /* ContactConnectionInfo.swift in Sources */,
|
||||||
5CBE6C12294487F7002D9531 /* VerifyCodeView.swift in Sources */,
|
5CBE6C12294487F7002D9531 /* VerifyCodeView.swift in Sources */,
|
||||||
3CDBCF4227FAE51000354CDD /* ComposeLinkView.swift in Sources */,
|
3CDBCF4227FAE51000354CDD /* ComposeLinkView.swift in Sources */,
|
||||||
|
648679AB2BC96A74006456E7 /* ChatItemForwardingView.swift in Sources */,
|
||||||
64466DC829FC2B3B00E3D48D /* CreateSimpleXAddress.swift in Sources */,
|
64466DC829FC2B3B00E3D48D /* CreateSimpleXAddress.swift in Sources */,
|
||||||
3CDBCF4827FF621E00354CDD /* CILinkView.swift in Sources */,
|
3CDBCF4827FF621E00354CDD /* CILinkView.swift in Sources */,
|
||||||
5C7505A827B6D34800BE3227 /* ChatInfoToolbar.swift in Sources */,
|
5C7505A827B6D34800BE3227 /* ChatInfoToolbar.swift in Sources */,
|
||||||
@@ -1176,6 +1189,7 @@
|
|||||||
5C9A5BDB2871E05400A5B906 /* SetNotificationsMode.swift in Sources */,
|
5C9A5BDB2871E05400A5B906 /* SetNotificationsMode.swift in Sources */,
|
||||||
5CB0BA8E2827126500B3292C /* OnboardingView.swift in Sources */,
|
5CB0BA8E2827126500B3292C /* OnboardingView.swift in Sources */,
|
||||||
6442E0BE2880182D00CEC0F9 /* GroupChatInfoView.swift in Sources */,
|
6442E0BE2880182D00CEC0F9 /* GroupChatInfoView.swift in Sources */,
|
||||||
|
8CC956EE2BC0041000412A11 /* NetworkObserver.swift in Sources */,
|
||||||
5C2E261227A30FEA00F70299 /* TerminalView.swift in Sources */,
|
5C2E261227A30FEA00F70299 /* TerminalView.swift in Sources */,
|
||||||
5C9FD96E27A5D6ED0075386C /* SendMessageView.swift in Sources */,
|
5C9FD96E27A5D6ED0075386C /* SendMessageView.swift in Sources */,
|
||||||
5CA7DFC329302AF000F7FDDE /* AppSheet.swift in Sources */,
|
5CA7DFC329302AF000F7FDDE /* AppSheet.swift in Sources */,
|
||||||
@@ -1229,6 +1243,7 @@
|
|||||||
5CB346E52868AA7F001FD2EF /* SuspendChat.swift in Sources */,
|
5CB346E52868AA7F001FD2EF /* SuspendChat.swift in Sources */,
|
||||||
5C9C2DA52894777E00CC63B1 /* GroupProfileView.swift in Sources */,
|
5C9C2DA52894777E00CC63B1 /* GroupProfileView.swift in Sources */,
|
||||||
5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */,
|
5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */,
|
||||||
|
8C81482C2BD91CD4002CBEC3 /* AudioDevicePicker.swift in Sources */,
|
||||||
5CCB939C297EFCB100399E78 /* NavStackCompat.swift in Sources */,
|
5CCB939C297EFCB100399E78 /* NavStackCompat.swift in Sources */,
|
||||||
5C764E89279CBCB3000C6508 /* ChatModel.swift in Sources */,
|
5C764E89279CBCB3000C6508 /* ChatModel.swift in Sources */,
|
||||||
5C971E1D27AEBEF600C8A3CE /* ChatInfoView.swift in Sources */,
|
5C971E1D27AEBEF600C8A3CE /* ChatInfoView.swift in Sources */,
|
||||||
@@ -1258,6 +1273,7 @@
|
|||||||
18415B0585EB5A9A0A7CA8CD /* PressedButtonStyle.swift in Sources */,
|
18415B0585EB5A9A0A7CA8CD /* PressedButtonStyle.swift in Sources */,
|
||||||
1841560FD1CD447955474C1D /* UserProfilesView.swift in Sources */,
|
1841560FD1CD447955474C1D /* UserProfilesView.swift in Sources */,
|
||||||
64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */,
|
64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */,
|
||||||
|
8CC4ED902BD7B8530078AEE8 /* CallAudioDeviceManager.swift in Sources */,
|
||||||
18415C6C56DBCEC2CBBD2F11 /* WebRTCClient.swift in Sources */,
|
18415C6C56DBCEC2CBBD2F11 /* WebRTCClient.swift in Sources */,
|
||||||
184152CEF68D2336FC2EBCB0 /* CallViewRenderers.swift in Sources */,
|
184152CEF68D2336FC2EBCB0 /* CallViewRenderers.swift in Sources */,
|
||||||
5CB634AD29E46CF70066AD6B /* LocalAuthView.swift in Sources */,
|
5CB634AD29E46CF70066AD6B /* LocalAuthView.swift in Sources */,
|
||||||
@@ -1441,6 +1457,7 @@
|
|||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@@ -1502,6 +1519,7 @@
|
|||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
@@ -1530,12 +1548,16 @@
|
|||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||||
|
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 204;
|
CURRENT_PROJECT_VERSION = 224;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = s;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "SimpleX--iOS--Info.plist";
|
INFOPLIST_FILE = "SimpleX--iOS--Info.plist";
|
||||||
INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
|
INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
|
||||||
@@ -1554,11 +1576,13 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 5.6;
|
LLVM_LTO = YES_THIN;
|
||||||
|
MARKETING_VERSION = 5.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
|
||||||
PRODUCT_NAME = SimpleX;
|
PRODUCT_NAME = SimpleX;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = 1;
|
TARGETED_DEVICE_FAMILY = 1;
|
||||||
};
|
};
|
||||||
@@ -1573,12 +1597,16 @@
|
|||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||||
|
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 204;
|
CURRENT_PROJECT_VERSION = 224;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_CODE_COVERAGE = NO;
|
||||||
|
ENABLE_PREVIEWS = NO;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "SimpleX--iOS--Info.plist";
|
INFOPLIST_FILE = "SimpleX--iOS--Info.plist";
|
||||||
INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
|
INFOPLIST_KEY_NSCameraUsageDescription = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
|
||||||
@@ -1597,7 +1625,8 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 5.6;
|
LLVM_LTO = YES;
|
||||||
|
MARKETING_VERSION = 5.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
|
||||||
PRODUCT_NAME = SimpleX;
|
PRODUCT_NAME = SimpleX;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1653,12 +1682,15 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||||
|
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 204;
|
CURRENT_PROJECT_VERSION = 224;
|
||||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = s;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "SimpleX NSE/Info.plist";
|
INFOPLIST_FILE = "SimpleX NSE/Info.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "SimpleX NSE";
|
INFOPLIST_KEY_CFBundleDisplayName = "SimpleX NSE";
|
||||||
@@ -1669,13 +1701,15 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 5.6;
|
LLVM_LTO = YES;
|
||||||
|
MARKETING_VERSION = 5.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
|
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Osize";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = 1;
|
TARGETED_DEVICE_FAMILY = 1;
|
||||||
};
|
};
|
||||||
@@ -1685,12 +1719,15 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||||
|
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 204;
|
CURRENT_PROJECT_VERSION = 224;
|
||||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
|
ENABLE_CODE_COVERAGE = NO;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "SimpleX NSE/Info.plist";
|
INFOPLIST_FILE = "SimpleX NSE/Info.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "SimpleX NSE";
|
INFOPLIST_KEY_CFBundleDisplayName = "SimpleX NSE";
|
||||||
@@ -1701,13 +1738,15 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 5.6;
|
LLVM_LTO = YES;
|
||||||
|
MARKETING_VERSION = 5.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
|
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Osize";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = 1;
|
TARGETED_DEVICE_FAMILY = 1;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
@@ -1719,14 +1758,17 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||||
|
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 204;
|
CURRENT_PROJECT_VERSION = 224;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 1;
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = s;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 SimpleX Chat. All rights reserved.";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 SimpleX Chat. All rights reserved.";
|
||||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
@@ -1744,7 +1786,8 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Libraries/sim",
|
"$(PROJECT_DIR)/Libraries/sim",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 5.6;
|
LLVM_LTO = YES;
|
||||||
|
MARKETING_VERSION = 5.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1753,6 +1796,7 @@
|
|||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_INCLUDE_PATHS = "";
|
SWIFT_INCLUDE_PATHS = "";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = ./SimpleXChat/SimpleX.h;
|
SWIFT_OBJC_BRIDGING_HEADER = ./SimpleXChat/SimpleX.h;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
@@ -1765,14 +1809,17 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
|
||||||
|
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 204;
|
CURRENT_PROJECT_VERSION = 224;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 1;
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
|
ENABLE_CODE_COVERAGE = NO;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 SimpleX Chat. All rights reserved.";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 SimpleX Chat. All rights reserved.";
|
||||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
@@ -1790,7 +1837,8 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Libraries/sim",
|
"$(PROJECT_DIR)/Libraries/sim",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 5.6;
|
LLVM_LTO = YES;
|
||||||
|
MARKETING_VERSION = 5.8;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1799,6 +1847,7 @@
|
|||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_INCLUDE_PATHS = "";
|
SWIFT_INCLUDE_PATHS = "";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = ./SimpleXChat/SimpleX.h;
|
SWIFT_OBJC_BRIDGING_HEADER = ./SimpleXChat/SimpleX.h;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
|
|||||||
@@ -87,6 +87,11 @@ public func chatInitControllerRemovingDatabases() {
|
|||||||
|
|
||||||
|
|
||||||
public func chatCloseStore() {
|
public func chatCloseStore() {
|
||||||
|
// Prevent crash when exiting the app with already closed store (for example, after changing a database passpharase)
|
||||||
|
guard hasChatCtrl() else {
|
||||||
|
logger.error("chatCloseStore: already closed, chatCtrl is nil")
|
||||||
|
return
|
||||||
|
}
|
||||||
let err = fromCString(chat_close_store(getChatCtrl()))
|
let err = fromCString(chat_close_store(getChatCtrl()))
|
||||||
if err != "" {
|
if err != "" {
|
||||||
logger.error("chatCloseStore error: \(err)")
|
logger.error("chatCloseStore error: \(err)")
|
||||||
|
|||||||
@@ -32,8 +32,6 @@ public enum ChatCommand {
|
|||||||
case setTempFolder(tempFolder: String)
|
case setTempFolder(tempFolder: String)
|
||||||
case setFilesFolder(filesFolder: String)
|
case setFilesFolder(filesFolder: String)
|
||||||
case apiSetEncryptLocalFiles(enable: Bool)
|
case apiSetEncryptLocalFiles(enable: Bool)
|
||||||
case apiSetPQEncryption(enable: Bool)
|
|
||||||
case apiSetContactPQ(contactId: Int64, enable: Bool)
|
|
||||||
case apiExportArchive(config: ArchiveConfig)
|
case apiExportArchive(config: ArchiveConfig)
|
||||||
case apiImportArchive(config: ArchiveConfig)
|
case apiImportArchive(config: ArchiveConfig)
|
||||||
case apiDeleteStorage
|
case apiDeleteStorage
|
||||||
@@ -50,6 +48,7 @@ public enum ChatCommand {
|
|||||||
case apiDeleteChatItem(type: ChatType, id: Int64, itemId: Int64, mode: CIDeleteMode)
|
case apiDeleteChatItem(type: ChatType, id: Int64, itemId: Int64, mode: CIDeleteMode)
|
||||||
case apiDeleteMemberChatItem(groupId: Int64, groupMemberId: Int64, itemId: Int64)
|
case apiDeleteMemberChatItem(groupId: Int64, groupMemberId: Int64, itemId: Int64)
|
||||||
case apiChatItemReaction(type: ChatType, id: Int64, itemId: Int64, add: Bool, reaction: MsgReaction)
|
case apiChatItemReaction(type: ChatType, id: Int64, itemId: Int64, add: Bool, reaction: MsgReaction)
|
||||||
|
case apiForwardChatItem(toChatType: ChatType, toChatId: Int64, fromChatType: ChatType, fromChatId: Int64, itemId: Int64, ttl: Int?)
|
||||||
case apiGetNtfToken
|
case apiGetNtfToken
|
||||||
case apiRegisterToken(token: DeviceToken, notificationMode: NotificationsMode)
|
case apiRegisterToken(token: DeviceToken, notificationMode: NotificationsMode)
|
||||||
case apiVerifyToken(token: DeviceToken, nonce: String, code: String)
|
case apiVerifyToken(token: DeviceToken, nonce: String, code: String)
|
||||||
@@ -77,11 +76,14 @@ public enum ChatCommand {
|
|||||||
case apiGetChatItemTTL(userId: Int64)
|
case apiGetChatItemTTL(userId: Int64)
|
||||||
case apiSetNetworkConfig(networkConfig: NetCfg)
|
case apiSetNetworkConfig(networkConfig: NetCfg)
|
||||||
case apiGetNetworkConfig
|
case apiGetNetworkConfig
|
||||||
|
case apiSetNetworkInfo(networkInfo: UserNetworkInfo)
|
||||||
case reconnectAllServers
|
case reconnectAllServers
|
||||||
case apiSetChatSettings(type: ChatType, id: Int64, chatSettings: ChatSettings)
|
case apiSetChatSettings(type: ChatType, id: Int64, chatSettings: ChatSettings)
|
||||||
case apiSetMemberSettings(groupId: Int64, groupMemberId: Int64, memberSettings: GroupMemberSettings)
|
case apiSetMemberSettings(groupId: Int64, groupMemberId: Int64, memberSettings: GroupMemberSettings)
|
||||||
case apiContactInfo(contactId: Int64)
|
case apiContactInfo(contactId: Int64)
|
||||||
case apiGroupMemberInfo(groupId: Int64, groupMemberId: Int64)
|
case apiGroupMemberInfo(groupId: Int64, groupMemberId: Int64)
|
||||||
|
case apiContactQueueInfo(contactId: Int64)
|
||||||
|
case apiGroupMemberQueueInfo(groupId: Int64, groupMemberId: Int64)
|
||||||
case apiSwitchContact(contactId: Int64)
|
case apiSwitchContact(contactId: Int64)
|
||||||
case apiSwitchGroupMember(groupId: Int64, groupMemberId: Int64)
|
case apiSwitchGroupMember(groupId: Int64, groupMemberId: Int64)
|
||||||
case apiAbortSwitchContact(contactId: Int64)
|
case apiAbortSwitchContact(contactId: Int64)
|
||||||
@@ -123,8 +125,8 @@ public enum ChatCommand {
|
|||||||
case apiGetNetworkStatuses
|
case apiGetNetworkStatuses
|
||||||
case apiChatRead(type: ChatType, id: Int64, itemRange: (Int64, Int64))
|
case apiChatRead(type: ChatType, id: Int64, itemRange: (Int64, Int64))
|
||||||
case apiChatUnread(type: ChatType, id: Int64, unreadChat: Bool)
|
case apiChatUnread(type: ChatType, id: Int64, unreadChat: Bool)
|
||||||
case receiveFile(fileId: Int64, encrypted: Bool?, inline: Bool?)
|
case receiveFile(fileId: Int64, userApprovedRelays: Bool, encrypted: Bool?, inline: Bool?)
|
||||||
case setFileToReceive(fileId: Int64, encrypted: Bool?)
|
case setFileToReceive(fileId: Int64, userApprovedRelays: Bool, encrypted: Bool?)
|
||||||
case cancelFile(fileId: Int64)
|
case cancelFile(fileId: Int64)
|
||||||
// remote desktop commands
|
// remote desktop commands
|
||||||
case setLocalDeviceName(displayName: String)
|
case setLocalDeviceName(displayName: String)
|
||||||
@@ -170,8 +172,6 @@ public enum ChatCommand {
|
|||||||
case let .setTempFolder(tempFolder): return "/_temp_folder \(tempFolder)"
|
case let .setTempFolder(tempFolder): return "/_temp_folder \(tempFolder)"
|
||||||
case let .setFilesFolder(filesFolder): return "/_files_folder \(filesFolder)"
|
case let .setFilesFolder(filesFolder): return "/_files_folder \(filesFolder)"
|
||||||
case let .apiSetEncryptLocalFiles(enable): return "/_files_encrypt \(onOff(enable))"
|
case let .apiSetEncryptLocalFiles(enable): return "/_files_encrypt \(onOff(enable))"
|
||||||
case let .apiSetPQEncryption(enable): return "/pq \(onOff(enable))"
|
|
||||||
case let .apiSetContactPQ(contactId, enable): return "/_pq @\(contactId) \(onOff(enable))"
|
|
||||||
case let .apiExportArchive(cfg): return "/_db export \(encodeJSON(cfg))"
|
case let .apiExportArchive(cfg): return "/_db export \(encodeJSON(cfg))"
|
||||||
case let .apiImportArchive(cfg): return "/_db import \(encodeJSON(cfg))"
|
case let .apiImportArchive(cfg): return "/_db import \(encodeJSON(cfg))"
|
||||||
case .apiDeleteStorage: return "/_db delete"
|
case .apiDeleteStorage: return "/_db delete"
|
||||||
@@ -194,6 +194,9 @@ public enum ChatCommand {
|
|||||||
case let .apiDeleteChatItem(type, id, itemId, mode): return "/_delete item \(ref(type, id)) \(itemId) \(mode.rawValue)"
|
case let .apiDeleteChatItem(type, id, itemId, mode): return "/_delete item \(ref(type, id)) \(itemId) \(mode.rawValue)"
|
||||||
case let .apiDeleteMemberChatItem(groupId, groupMemberId, itemId): return "/_delete member item #\(groupId) \(groupMemberId) \(itemId)"
|
case let .apiDeleteMemberChatItem(groupId, groupMemberId, itemId): return "/_delete member item #\(groupId) \(groupMemberId) \(itemId)"
|
||||||
case let .apiChatItemReaction(type, id, itemId, add, reaction): return "/_reaction \(ref(type, id)) \(itemId) \(onOff(add)) \(encodeJSON(reaction))"
|
case let .apiChatItemReaction(type, id, itemId, add, reaction): return "/_reaction \(ref(type, id)) \(itemId) \(onOff(add)) \(encodeJSON(reaction))"
|
||||||
|
case let .apiForwardChatItem(toChatType, toChatId, fromChatType, fromChatId, itemId, ttl):
|
||||||
|
let ttlStr = ttl != nil ? "\(ttl!)" : "default"
|
||||||
|
return "/_forward \(ref(toChatType, toChatId)) \(ref(fromChatType, fromChatId)) \(itemId) ttl=\(ttlStr)"
|
||||||
case .apiGetNtfToken: return "/_ntf get "
|
case .apiGetNtfToken: return "/_ntf get "
|
||||||
case let .apiRegisterToken(token, notificationMode): return "/_ntf register \(token.cmdString) \(notificationMode.rawValue)"
|
case let .apiRegisterToken(token, notificationMode): return "/_ntf register \(token.cmdString) \(notificationMode.rawValue)"
|
||||||
case let .apiVerifyToken(token, nonce, code): return "/_ntf verify \(token.cmdString) \(nonce) \(code)"
|
case let .apiVerifyToken(token, nonce, code): return "/_ntf verify \(token.cmdString) \(nonce) \(code)"
|
||||||
@@ -221,11 +224,14 @@ public enum ChatCommand {
|
|||||||
case let .apiGetChatItemTTL(userId): return "/_ttl \(userId)"
|
case let .apiGetChatItemTTL(userId): return "/_ttl \(userId)"
|
||||||
case let .apiSetNetworkConfig(networkConfig): return "/_network \(encodeJSON(networkConfig))"
|
case let .apiSetNetworkConfig(networkConfig): return "/_network \(encodeJSON(networkConfig))"
|
||||||
case .apiGetNetworkConfig: return "/network"
|
case .apiGetNetworkConfig: return "/network"
|
||||||
|
case let .apiSetNetworkInfo(networkInfo): return "/_network info \(encodeJSON(networkInfo))"
|
||||||
case .reconnectAllServers: return "/reconnect"
|
case .reconnectAllServers: return "/reconnect"
|
||||||
case let .apiSetChatSettings(type, id, chatSettings): return "/_settings \(ref(type, id)) \(encodeJSON(chatSettings))"
|
case let .apiSetChatSettings(type, id, chatSettings): return "/_settings \(ref(type, id)) \(encodeJSON(chatSettings))"
|
||||||
case let .apiSetMemberSettings(groupId, groupMemberId, memberSettings): return "/_member settings #\(groupId) \(groupMemberId) \(encodeJSON(memberSettings))"
|
case let .apiSetMemberSettings(groupId, groupMemberId, memberSettings): return "/_member settings #\(groupId) \(groupMemberId) \(encodeJSON(memberSettings))"
|
||||||
case let .apiContactInfo(contactId): return "/_info @\(contactId)"
|
case let .apiContactInfo(contactId): return "/_info @\(contactId)"
|
||||||
case let .apiGroupMemberInfo(groupId, groupMemberId): return "/_info #\(groupId) \(groupMemberId)"
|
case let .apiGroupMemberInfo(groupId, groupMemberId): return "/_info #\(groupId) \(groupMemberId)"
|
||||||
|
case let .apiContactQueueInfo(contactId): return "/_queue info @\(contactId)"
|
||||||
|
case let .apiGroupMemberQueueInfo(groupId, groupMemberId): return "/_queue info #\(groupId) \(groupMemberId)"
|
||||||
case let .apiSwitchContact(contactId): return "/_switch @\(contactId)"
|
case let .apiSwitchContact(contactId): return "/_switch @\(contactId)"
|
||||||
case let .apiSwitchGroupMember(groupId, groupMemberId): return "/_switch #\(groupId) \(groupMemberId)"
|
case let .apiSwitchGroupMember(groupId, groupMemberId): return "/_switch #\(groupId) \(groupMemberId)"
|
||||||
case let .apiAbortSwitchContact(contactId): return "/_abort switch @\(contactId)"
|
case let .apiAbortSwitchContact(contactId): return "/_abort switch @\(contactId)"
|
||||||
@@ -280,8 +286,8 @@ public enum ChatCommand {
|
|||||||
case .apiGetNetworkStatuses: return "/_network_statuses"
|
case .apiGetNetworkStatuses: return "/_network_statuses"
|
||||||
case let .apiChatRead(type, id, itemRange: (from, to)): return "/_read chat \(ref(type, id)) from=\(from) to=\(to)"
|
case let .apiChatRead(type, id, itemRange: (from, to)): return "/_read chat \(ref(type, id)) from=\(from) to=\(to)"
|
||||||
case let .apiChatUnread(type, id, unreadChat): return "/_unread chat \(ref(type, id)) \(onOff(unreadChat))"
|
case let .apiChatUnread(type, id, unreadChat): return "/_unread chat \(ref(type, id)) \(onOff(unreadChat))"
|
||||||
case let .receiveFile(fileId, encrypt, inline): return "/freceive \(fileId)\(onOffParam("encrypt", encrypt))\(onOffParam("inline", inline))"
|
case let .receiveFile(fileId, userApprovedRelays, encrypt, inline): return "/freceive \(fileId)\(onOffParam("approved_relays", userApprovedRelays))\(onOffParam("encrypt", encrypt))\(onOffParam("inline", inline))"
|
||||||
case let .setFileToReceive(fileId, encrypt): return "/_set_file_to_receive \(fileId)\(onOffParam("encrypt", encrypt))"
|
case let .setFileToReceive(fileId, userApprovedRelays, encrypt): return "/_set_file_to_receive \(fileId)\(onOffParam("approved_relays", userApprovedRelays))\(onOffParam("encrypt", encrypt))"
|
||||||
case let .cancelFile(fileId): return "/fcancel \(fileId)"
|
case let .cancelFile(fileId): return "/fcancel \(fileId)"
|
||||||
case let .setLocalDeviceName(displayName): return "/set device name \(displayName)"
|
case let .setLocalDeviceName(displayName): return "/set device name \(displayName)"
|
||||||
case let .connectRemoteCtrl(xrcpInv): return "/connect remote ctrl \(xrcpInv)"
|
case let .connectRemoteCtrl(xrcpInv): return "/connect remote ctrl \(xrcpInv)"
|
||||||
@@ -322,8 +328,6 @@ public enum ChatCommand {
|
|||||||
case .setTempFolder: return "setTempFolder"
|
case .setTempFolder: return "setTempFolder"
|
||||||
case .setFilesFolder: return "setFilesFolder"
|
case .setFilesFolder: return "setFilesFolder"
|
||||||
case .apiSetEncryptLocalFiles: return "apiSetEncryptLocalFiles"
|
case .apiSetEncryptLocalFiles: return "apiSetEncryptLocalFiles"
|
||||||
case .apiSetPQEncryption: return "apiSetPQEncryption"
|
|
||||||
case .apiSetContactPQ: return "apiSetContactPQ"
|
|
||||||
case .apiExportArchive: return "apiExportArchive"
|
case .apiExportArchive: return "apiExportArchive"
|
||||||
case .apiImportArchive: return "apiImportArchive"
|
case .apiImportArchive: return "apiImportArchive"
|
||||||
case .apiDeleteStorage: return "apiDeleteStorage"
|
case .apiDeleteStorage: return "apiDeleteStorage"
|
||||||
@@ -341,6 +345,7 @@ public enum ChatCommand {
|
|||||||
case .apiConnectContactViaAddress: return "apiConnectContactViaAddress"
|
case .apiConnectContactViaAddress: return "apiConnectContactViaAddress"
|
||||||
case .apiDeleteMemberChatItem: return "apiDeleteMemberChatItem"
|
case .apiDeleteMemberChatItem: return "apiDeleteMemberChatItem"
|
||||||
case .apiChatItemReaction: return "apiChatItemReaction"
|
case .apiChatItemReaction: return "apiChatItemReaction"
|
||||||
|
case .apiForwardChatItem: return "apiForwardChatItem"
|
||||||
case .apiGetNtfToken: return "apiGetNtfToken"
|
case .apiGetNtfToken: return "apiGetNtfToken"
|
||||||
case .apiRegisterToken: return "apiRegisterToken"
|
case .apiRegisterToken: return "apiRegisterToken"
|
||||||
case .apiVerifyToken: return "apiVerifyToken"
|
case .apiVerifyToken: return "apiVerifyToken"
|
||||||
@@ -368,11 +373,14 @@ public enum ChatCommand {
|
|||||||
case .apiGetChatItemTTL: return "apiGetChatItemTTL"
|
case .apiGetChatItemTTL: return "apiGetChatItemTTL"
|
||||||
case .apiSetNetworkConfig: return "apiSetNetworkConfig"
|
case .apiSetNetworkConfig: return "apiSetNetworkConfig"
|
||||||
case .apiGetNetworkConfig: return "apiGetNetworkConfig"
|
case .apiGetNetworkConfig: return "apiGetNetworkConfig"
|
||||||
|
case .apiSetNetworkInfo: return "apiSetNetworkInfo"
|
||||||
case .reconnectAllServers: return "reconnectAllServers"
|
case .reconnectAllServers: return "reconnectAllServers"
|
||||||
case .apiSetChatSettings: return "apiSetChatSettings"
|
case .apiSetChatSettings: return "apiSetChatSettings"
|
||||||
case .apiSetMemberSettings: return "apiSetMemberSettings"
|
case .apiSetMemberSettings: return "apiSetMemberSettings"
|
||||||
case .apiContactInfo: return "apiContactInfo"
|
case .apiContactInfo: return "apiContactInfo"
|
||||||
case .apiGroupMemberInfo: return "apiGroupMemberInfo"
|
case .apiGroupMemberInfo: return "apiGroupMemberInfo"
|
||||||
|
case .apiContactQueueInfo: return "apiContactQueueInfo"
|
||||||
|
case .apiGroupMemberQueueInfo: return "apiGroupMemberQueueInfo"
|
||||||
case .apiSwitchContact: return "apiSwitchContact"
|
case .apiSwitchContact: return "apiSwitchContact"
|
||||||
case .apiSwitchGroupMember: return "apiSwitchGroupMember"
|
case .apiSwitchGroupMember: return "apiSwitchGroupMember"
|
||||||
case .apiAbortSwitchContact: return "apiAbortSwitchContact"
|
case .apiAbortSwitchContact: return "apiAbortSwitchContact"
|
||||||
@@ -514,6 +522,7 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case networkConfig(networkConfig: NetCfg)
|
case networkConfig(networkConfig: NetCfg)
|
||||||
case contactInfo(user: UserRef, contact: Contact, connectionStats_: ConnectionStats?, customUserProfile: Profile?)
|
case contactInfo(user: UserRef, contact: Contact, connectionStats_: ConnectionStats?, customUserProfile: Profile?)
|
||||||
case groupMemberInfo(user: UserRef, groupInfo: GroupInfo, member: GroupMember, connectionStats_: ConnectionStats?)
|
case groupMemberInfo(user: UserRef, groupInfo: GroupInfo, member: GroupMember, connectionStats_: ConnectionStats?)
|
||||||
|
case queueInfo(user: UserRef, rcvMsgInfo: RcvMsgInfo?, queueInfo: QueueInfo)
|
||||||
case contactSwitchStarted(user: UserRef, contact: Contact, connectionStats: ConnectionStats)
|
case contactSwitchStarted(user: UserRef, contact: Contact, connectionStats: ConnectionStats)
|
||||||
case groupMemberSwitchStarted(user: UserRef, groupInfo: GroupInfo, member: GroupMember, connectionStats: ConnectionStats)
|
case groupMemberSwitchStarted(user: UserRef, groupInfo: GroupInfo, member: GroupMember, connectionStats: ConnectionStats)
|
||||||
case contactSwitchAborted(user: UserRef, contact: Contact, connectionStats: ConnectionStats)
|
case contactSwitchAborted(user: UserRef, contact: Contact, connectionStats: ConnectionStats)
|
||||||
@@ -626,7 +635,7 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case sndFileCompleteXFTP(user: UserRef, chatItem: AChatItem, fileTransferMeta: FileTransferMeta)
|
case sndFileCompleteXFTP(user: UserRef, chatItem: AChatItem, fileTransferMeta: FileTransferMeta)
|
||||||
case sndStandaloneFileComplete(user: UserRef, fileTransferMeta: FileTransferMeta, rcvURIs: [String])
|
case sndStandaloneFileComplete(user: UserRef, fileTransferMeta: FileTransferMeta, rcvURIs: [String])
|
||||||
case sndFileCancelledXFTP(user: UserRef, chatItem_: AChatItem?, fileTransferMeta: FileTransferMeta)
|
case sndFileCancelledXFTP(user: UserRef, chatItem_: AChatItem?, fileTransferMeta: FileTransferMeta)
|
||||||
case sndFileError(user: UserRef, chatItem_: AChatItem?, fileTransferMeta: FileTransferMeta)
|
case sndFileError(user: UserRef, chatItem_: AChatItem?, fileTransferMeta: FileTransferMeta, errorMessage: String)
|
||||||
// call events
|
// call events
|
||||||
case callInvitation(callInvitation: RcvCallInvitation)
|
case callInvitation(callInvitation: RcvCallInvitation)
|
||||||
case callOffer(user: UserRef, contact: Contact, callType: CallType, offer: WebRTCSession, sharedKey: String?, askConfirmation: Bool)
|
case callOffer(user: UserRef, contact: Contact, callType: CallType, offer: WebRTCSession, sharedKey: String?, askConfirmation: Bool)
|
||||||
@@ -639,6 +648,7 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case ntfMessages(user_: User?, connEntity_: ConnectionEntity?, msgTs: Date?, ntfMessages: [NtfMsgInfo])
|
case ntfMessages(user_: User?, connEntity_: ConnectionEntity?, msgTs: Date?, ntfMessages: [NtfMsgInfo])
|
||||||
case ntfMessage(user: UserRef, connEntity: ConnectionEntity, ntfMessage: NtfMsgInfo)
|
case ntfMessage(user: UserRef, connEntity: ConnectionEntity, ntfMessage: NtfMsgInfo)
|
||||||
case contactConnectionDeleted(user: UserRef, connection: PendingContactConnection)
|
case contactConnectionDeleted(user: UserRef, connection: PendingContactConnection)
|
||||||
|
case contactDisabled(user: UserRef, contact: Contact)
|
||||||
// remote desktop responses/events
|
// remote desktop responses/events
|
||||||
case remoteCtrlList(remoteCtrls: [RemoteCtrlInfo])
|
case remoteCtrlList(remoteCtrls: [RemoteCtrlInfo])
|
||||||
case remoteCtrlFound(remoteCtrl: RemoteCtrlInfo, ctrlAppInfo_: CtrlAppInfo?, appVersion: String, compatible: Bool)
|
case remoteCtrlFound(remoteCtrl: RemoteCtrlInfo, ctrlAppInfo_: CtrlAppInfo?, appVersion: String, compatible: Bool)
|
||||||
@@ -647,7 +657,6 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case remoteCtrlConnected(remoteCtrl: RemoteCtrlInfo)
|
case remoteCtrlConnected(remoteCtrl: RemoteCtrlInfo)
|
||||||
case remoteCtrlStopped(rcsState: RemoteCtrlSessionState, rcStopReason: RemoteCtrlStopReason)
|
case remoteCtrlStopped(rcsState: RemoteCtrlSessionState, rcStopReason: RemoteCtrlStopReason)
|
||||||
// pq
|
// pq
|
||||||
case contactPQAllowed(user: UserRef, contact: Contact, pqEncryption: Bool)
|
|
||||||
case contactPQEnabled(user: UserRef, contact: Contact, pqEnabled: Bool)
|
case contactPQEnabled(user: UserRef, contact: Contact, pqEnabled: Bool)
|
||||||
// misc
|
// misc
|
||||||
case versionInfo(versionInfo: CoreVersionInfo, chatMigrations: [UpMigration], agentMigrations: [UpMigration])
|
case versionInfo(versionInfo: CoreVersionInfo, chatMigrations: [UpMigration], agentMigrations: [UpMigration])
|
||||||
@@ -676,6 +685,7 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case .networkConfig: return "networkConfig"
|
case .networkConfig: return "networkConfig"
|
||||||
case .contactInfo: return "contactInfo"
|
case .contactInfo: return "contactInfo"
|
||||||
case .groupMemberInfo: return "groupMemberInfo"
|
case .groupMemberInfo: return "groupMemberInfo"
|
||||||
|
case .queueInfo: return "queueInfo"
|
||||||
case .contactSwitchStarted: return "contactSwitchStarted"
|
case .contactSwitchStarted: return "contactSwitchStarted"
|
||||||
case .groupMemberSwitchStarted: return "groupMemberSwitchStarted"
|
case .groupMemberSwitchStarted: return "groupMemberSwitchStarted"
|
||||||
case .contactSwitchAborted: return "contactSwitchAborted"
|
case .contactSwitchAborted: return "contactSwitchAborted"
|
||||||
@@ -797,14 +807,14 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case .ntfMessages: return "ntfMessages"
|
case .ntfMessages: return "ntfMessages"
|
||||||
case .ntfMessage: return "ntfMessage"
|
case .ntfMessage: return "ntfMessage"
|
||||||
case .contactConnectionDeleted: return "contactConnectionDeleted"
|
case .contactConnectionDeleted: return "contactConnectionDeleted"
|
||||||
|
case .contactDisabled: return "contactDisabled"
|
||||||
case .remoteCtrlList: return "remoteCtrlList"
|
case .remoteCtrlList: return "remoteCtrlList"
|
||||||
case .remoteCtrlFound: return "remoteCtrlFound"
|
case .remoteCtrlFound: return "remoteCtrlFound"
|
||||||
case .remoteCtrlConnecting: return "remoteCtrlConnecting"
|
case .remoteCtrlConnecting: return "remoteCtrlConnecting"
|
||||||
case .remoteCtrlSessionCode: return "remoteCtrlSessionCode"
|
case .remoteCtrlSessionCode: return "remoteCtrlSessionCode"
|
||||||
case .remoteCtrlConnected: return "remoteCtrlConnected"
|
case .remoteCtrlConnected: return "remoteCtrlConnected"
|
||||||
case .remoteCtrlStopped: return "remoteCtrlStopped"
|
case .remoteCtrlStopped: return "remoteCtrlStopped"
|
||||||
case .contactPQAllowed: return "contactPQAllowed"
|
case .contactPQEnabled: return "contactPQEnabled"
|
||||||
case .contactPQEnabled: return "contactPQAllowed"
|
|
||||||
case .versionInfo: return "versionInfo"
|
case .versionInfo: return "versionInfo"
|
||||||
case .cmdOk: return "cmdOk"
|
case .cmdOk: return "cmdOk"
|
||||||
case .chatCmdError: return "chatCmdError"
|
case .chatCmdError: return "chatCmdError"
|
||||||
@@ -834,6 +844,9 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case let .networkConfig(networkConfig): return String(describing: networkConfig)
|
case let .networkConfig(networkConfig): return String(describing: networkConfig)
|
||||||
case let .contactInfo(u, contact, connectionStats_, customUserProfile): return withUser(u, "contact: \(String(describing: contact))\nconnectionStats_: \(String(describing: connectionStats_))\ncustomUserProfile: \(String(describing: customUserProfile))")
|
case let .contactInfo(u, contact, connectionStats_, customUserProfile): return withUser(u, "contact: \(String(describing: contact))\nconnectionStats_: \(String(describing: connectionStats_))\ncustomUserProfile: \(String(describing: customUserProfile))")
|
||||||
case let .groupMemberInfo(u, groupInfo, member, connectionStats_): return withUser(u, "groupInfo: \(String(describing: groupInfo))\nmember: \(String(describing: member))\nconnectionStats_: \(String(describing: connectionStats_))")
|
case let .groupMemberInfo(u, groupInfo, member, connectionStats_): return withUser(u, "groupInfo: \(String(describing: groupInfo))\nmember: \(String(describing: member))\nconnectionStats_: \(String(describing: connectionStats_))")
|
||||||
|
case let .queueInfo(u, rcvMsgInfo, queueInfo):
|
||||||
|
let msgInfo = if let info = rcvMsgInfo { encodeJSON(rcvMsgInfo) } else { "none" }
|
||||||
|
return withUser(u, "rcvMsgInfo: \(msgInfo)\nqueueInfo: \(encodeJSON(queueInfo))")
|
||||||
case let .contactSwitchStarted(u, contact, connectionStats): return withUser(u, "contact: \(String(describing: contact))\nconnectionStats: \(String(describing: connectionStats))")
|
case let .contactSwitchStarted(u, contact, connectionStats): return withUser(u, "contact: \(String(describing: contact))\nconnectionStats: \(String(describing: connectionStats))")
|
||||||
case let .groupMemberSwitchStarted(u, groupInfo, member, connectionStats): return withUser(u, "groupInfo: \(String(describing: groupInfo))\nmember: \(String(describing: member))\nconnectionStats: \(String(describing: connectionStats))")
|
case let .groupMemberSwitchStarted(u, groupInfo, member, connectionStats): return withUser(u, "groupInfo: \(String(describing: groupInfo))\nmember: \(String(describing: member))\nconnectionStats: \(String(describing: connectionStats))")
|
||||||
case let .contactSwitchAborted(u, contact, connectionStats): return withUser(u, "contact: \(String(describing: contact))\nconnectionStats: \(String(describing: connectionStats))")
|
case let .contactSwitchAborted(u, contact, connectionStats): return withUser(u, "contact: \(String(describing: contact))\nconnectionStats: \(String(describing: connectionStats))")
|
||||||
@@ -943,7 +956,7 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case let .sndFileCompleteXFTP(u, chatItem, _): return withUser(u, String(describing: chatItem))
|
case let .sndFileCompleteXFTP(u, chatItem, _): return withUser(u, String(describing: chatItem))
|
||||||
case let .sndStandaloneFileComplete(u, _, rcvURIs): return withUser(u, String(rcvURIs.count))
|
case let .sndStandaloneFileComplete(u, _, rcvURIs): return withUser(u, String(rcvURIs.count))
|
||||||
case let .sndFileCancelledXFTP(u, chatItem, _): return withUser(u, String(describing: chatItem))
|
case let .sndFileCancelledXFTP(u, chatItem, _): return withUser(u, String(describing: chatItem))
|
||||||
case let .sndFileError(u, chatItem, _): return withUser(u, String(describing: chatItem))
|
case let .sndFileError(u, chatItem, _, err): return withUser(u, "error: \(String(describing: err))\nchatItem: \(String(describing: chatItem))")
|
||||||
case let .callInvitation(inv): return String(describing: inv)
|
case let .callInvitation(inv): return String(describing: inv)
|
||||||
case let .callOffer(u, contact, callType, offer, sharedKey, askConfirmation): return withUser(u, "contact: \(contact.id)\ncallType: \(String(describing: callType))\nsharedKey: \(sharedKey ?? "")\naskConfirmation: \(askConfirmation)\noffer: \(String(describing: offer))")
|
case let .callOffer(u, contact, callType, offer, sharedKey, askConfirmation): return withUser(u, "contact: \(contact.id)\ncallType: \(String(describing: callType))\nsharedKey: \(sharedKey ?? "")\naskConfirmation: \(askConfirmation)\noffer: \(String(describing: offer))")
|
||||||
case let .callAnswer(u, contact, answer): return withUser(u, "contact: \(contact.id)\nanswer: \(String(describing: answer))")
|
case let .callAnswer(u, contact, answer): return withUser(u, "contact: \(contact.id)\nanswer: \(String(describing: answer))")
|
||||||
@@ -955,13 +968,13 @@ public enum ChatResponse: Decodable, Error {
|
|||||||
case let .ntfMessages(u, connEntity, msgTs, ntfMessages): return withUser(u, "connEntity: \(String(describing: connEntity))\nmsgTs: \(String(describing: msgTs))\nntfMessages: \(String(describing: ntfMessages))")
|
case let .ntfMessages(u, connEntity, msgTs, ntfMessages): return withUser(u, "connEntity: \(String(describing: connEntity))\nmsgTs: \(String(describing: msgTs))\nntfMessages: \(String(describing: ntfMessages))")
|
||||||
case let .ntfMessage(u, connEntity, ntfMessage): return withUser(u, "connEntity: \(String(describing: connEntity))\nntfMessage: \(String(describing: ntfMessage))")
|
case let .ntfMessage(u, connEntity, ntfMessage): return withUser(u, "connEntity: \(String(describing: connEntity))\nntfMessage: \(String(describing: ntfMessage))")
|
||||||
case let .contactConnectionDeleted(u, connection): return withUser(u, String(describing: connection))
|
case let .contactConnectionDeleted(u, connection): return withUser(u, String(describing: connection))
|
||||||
|
case let .contactDisabled(u, contact): return withUser(u, String(describing: contact))
|
||||||
case let .remoteCtrlList(remoteCtrls): return String(describing: remoteCtrls)
|
case let .remoteCtrlList(remoteCtrls): return String(describing: remoteCtrls)
|
||||||
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible): return "remoteCtrl:\n\(String(describing: remoteCtrl))\nctrlAppInfo_:\n\(String(describing: ctrlAppInfo_))\nappVersion: \(appVersion)\ncompatible: \(compatible)"
|
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible): return "remoteCtrl:\n\(String(describing: remoteCtrl))\nctrlAppInfo_:\n\(String(describing: ctrlAppInfo_))\nappVersion: \(appVersion)\ncompatible: \(compatible)"
|
||||||
case let .remoteCtrlConnecting(remoteCtrl_, ctrlAppInfo, appVersion): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nctrlAppInfo:\n\(String(describing: ctrlAppInfo))\nappVersion: \(appVersion)"
|
case let .remoteCtrlConnecting(remoteCtrl_, ctrlAppInfo, appVersion): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nctrlAppInfo:\n\(String(describing: ctrlAppInfo))\nappVersion: \(appVersion)"
|
||||||
case let .remoteCtrlSessionCode(remoteCtrl_, sessionCode): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nsessionCode: \(sessionCode)"
|
case let .remoteCtrlSessionCode(remoteCtrl_, sessionCode): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nsessionCode: \(sessionCode)"
|
||||||
case let .remoteCtrlConnected(remoteCtrl): return String(describing: remoteCtrl)
|
case let .remoteCtrlConnected(remoteCtrl): return String(describing: remoteCtrl)
|
||||||
case .remoteCtrlStopped: return noDetails
|
case .remoteCtrlStopped: return noDetails
|
||||||
case let .contactPQAllowed(u, contact, pqEncryption): return withUser(u, "contact: \(String(describing: contact))\npqEncryption: \(pqEncryption)")
|
|
||||||
case let .contactPQEnabled(u, contact, pqEnabled): return withUser(u, "contact: \(String(describing: contact))\npqEnabled: \(pqEnabled)")
|
case let .contactPQEnabled(u, contact, pqEnabled): return withUser(u, "contact: \(String(describing: contact))\npqEnabled: \(pqEnabled)")
|
||||||
case let .versionInfo(versionInfo, chatMigrations, agentMigrations): return "\(String(describing: versionInfo))\n\nchat migrations: \(chatMigrations.map(\.upName))\n\nagent migrations: \(agentMigrations.map(\.upName))"
|
case let .versionInfo(versionInfo, chatMigrations, agentMigrations): return "\(String(describing: versionInfo))\n\nchat migrations: \(chatMigrations.map(\.upName))\n\nagent migrations: \(agentMigrations.map(\.upName))"
|
||||||
case .cmdOk: return noDetails
|
case .cmdOk: return noDetails
|
||||||
@@ -1245,12 +1258,16 @@ public struct ServerAddress: Decodable {
|
|||||||
|
|
||||||
public struct NetCfg: Codable, Equatable {
|
public struct NetCfg: Codable, Equatable {
|
||||||
public var socksProxy: String? = nil
|
public var socksProxy: String? = nil
|
||||||
|
var socksMode: SocksMode = .always
|
||||||
public var hostMode: HostMode = .publicHost
|
public var hostMode: HostMode = .publicHost
|
||||||
public var requiredHostMode = true
|
public var requiredHostMode = true
|
||||||
public var sessionMode: TransportSessionMode
|
public var sessionMode: TransportSessionMode
|
||||||
|
public var smpProxyMode: SMPProxyMode = .never
|
||||||
|
public var smpProxyFallback: SMPProxyFallback = .allow
|
||||||
public var tcpConnectTimeout: Int // microseconds
|
public var tcpConnectTimeout: Int // microseconds
|
||||||
public var tcpTimeout: Int // microseconds
|
public var tcpTimeout: Int // microseconds
|
||||||
public var tcpTimeoutPerKb: Int // microseconds
|
public var tcpTimeoutPerKb: Int // microseconds
|
||||||
|
public var rcvConcurrency: Int // pool size
|
||||||
public var tcpKeepAlive: KeepAliveOpts?
|
public var tcpKeepAlive: KeepAliveOpts?
|
||||||
public var smpPingInterval: Int // microseconds
|
public var smpPingInterval: Int // microseconds
|
||||||
public var smpPingCount: Int // times
|
public var smpPingCount: Int // times
|
||||||
@@ -1259,9 +1276,10 @@ public struct NetCfg: Codable, Equatable {
|
|||||||
public static let defaults: NetCfg = NetCfg(
|
public static let defaults: NetCfg = NetCfg(
|
||||||
socksProxy: nil,
|
socksProxy: nil,
|
||||||
sessionMode: TransportSessionMode.user,
|
sessionMode: TransportSessionMode.user,
|
||||||
tcpConnectTimeout: 20_000_000,
|
tcpConnectTimeout: 25_000_000,
|
||||||
tcpTimeout: 15_000_000,
|
tcpTimeout: 15_000_000,
|
||||||
tcpTimeoutPerKb: 45_000,
|
tcpTimeoutPerKb: 10_000,
|
||||||
|
rcvConcurrency: 12,
|
||||||
tcpKeepAlive: KeepAliveOpts.defaults,
|
tcpKeepAlive: KeepAliveOpts.defaults,
|
||||||
smpPingInterval: 1200_000_000,
|
smpPingInterval: 1200_000_000,
|
||||||
smpPingCount: 3,
|
smpPingCount: 3,
|
||||||
@@ -1271,9 +1289,10 @@ public struct NetCfg: Codable, Equatable {
|
|||||||
public static let proxyDefaults: NetCfg = NetCfg(
|
public static let proxyDefaults: NetCfg = NetCfg(
|
||||||
socksProxy: nil,
|
socksProxy: nil,
|
||||||
sessionMode: TransportSessionMode.user,
|
sessionMode: TransportSessionMode.user,
|
||||||
tcpConnectTimeout: 30_000_000,
|
tcpConnectTimeout: 35_000_000,
|
||||||
tcpTimeout: 20_000_000,
|
tcpTimeout: 20_000_000,
|
||||||
tcpTimeoutPerKb: 60_000,
|
tcpTimeoutPerKb: 15_000,
|
||||||
|
rcvConcurrency: 8,
|
||||||
tcpKeepAlive: KeepAliveOpts.defaults,
|
tcpKeepAlive: KeepAliveOpts.defaults,
|
||||||
smpPingInterval: 1200_000_000,
|
smpPingInterval: 1200_000_000,
|
||||||
smpPingCount: 3,
|
smpPingCount: 3,
|
||||||
@@ -1289,6 +1308,49 @@ public enum HostMode: String, Codable {
|
|||||||
case publicHost = "public"
|
case publicHost = "public"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum SocksMode: String, Codable {
|
||||||
|
case always = "always"
|
||||||
|
case onion = "onion"
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SMPProxyMode: String, Codable {
|
||||||
|
case always = "always"
|
||||||
|
case unknown = "unknown"
|
||||||
|
case unprotected = "unprotected"
|
||||||
|
case never = "never"
|
||||||
|
|
||||||
|
public var text: LocalizedStringKey {
|
||||||
|
switch self {
|
||||||
|
case .always: return "always"
|
||||||
|
case .unknown: return "unknown relays"
|
||||||
|
case .unprotected: return "unprotected"
|
||||||
|
case .never: return "never"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public var id: SMPProxyMode { self }
|
||||||
|
|
||||||
|
public static let values: [SMPProxyMode] = [.always, .unknown, .unprotected, .never]
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SMPProxyFallback: String, Codable {
|
||||||
|
case allow = "allow"
|
||||||
|
case allowProtected = "allowProtected"
|
||||||
|
case prohibit = "prohibit"
|
||||||
|
|
||||||
|
public var text: LocalizedStringKey {
|
||||||
|
switch self {
|
||||||
|
case .allow: return "yes"
|
||||||
|
case .allowProtected: return "when IP hidden"
|
||||||
|
case .prohibit: return "no"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public var id: SMPProxyFallback { self }
|
||||||
|
|
||||||
|
public static let values: [SMPProxyFallback] = [.allow, .allowProtected, .prohibit]
|
||||||
|
}
|
||||||
|
|
||||||
public enum OnionHosts: String, Identifiable {
|
public enum OnionHosts: String, Identifiable {
|
||||||
case no
|
case no
|
||||||
case prefer
|
case prefer
|
||||||
@@ -1692,7 +1754,6 @@ public enum ChatErrorType: Decodable {
|
|||||||
case groupMemberNotActive
|
case groupMemberNotActive
|
||||||
case groupMemberUserRemoved
|
case groupMemberUserRemoved
|
||||||
case groupMemberNotFound
|
case groupMemberNotFound
|
||||||
case groupMemberIntroNotFound(contactName: ContactName)
|
|
||||||
case groupCantResendInvitation(groupInfo: GroupInfo, contactName: ContactName)
|
case groupCantResendInvitation(groupInfo: GroupInfo, contactName: ContactName)
|
||||||
case groupInternal(message: String)
|
case groupInternal(message: String)
|
||||||
case fileNotFound(message: String)
|
case fileNotFound(message: String)
|
||||||
@@ -1709,11 +1770,14 @@ public enum ChatErrorType: Decodable {
|
|||||||
case fileImageType(filePath: String)
|
case fileImageType(filePath: String)
|
||||||
case fileImageSize(filePath: String)
|
case fileImageSize(filePath: String)
|
||||||
case fileNotReceived(fileId: Int64)
|
case fileNotReceived(fileId: Int64)
|
||||||
|
case fileNotApproved(fileId: Int64, unknownServers: [String])
|
||||||
// case xFTPRcvFile
|
// case xFTPRcvFile
|
||||||
// case xFTPSndFile
|
// case xFTPSndFile
|
||||||
case fallbackToSMPProhibited(fileId: Int64)
|
case fallbackToSMPProhibited(fileId: Int64)
|
||||||
case inlineFileProhibited(fileId: Int64)
|
case inlineFileProhibited(fileId: Int64)
|
||||||
case invalidQuote
|
case invalidQuote
|
||||||
|
case invalidForward
|
||||||
|
case forwardNoFile
|
||||||
case invalidChatItemUpdate
|
case invalidChatItemUpdate
|
||||||
case invalidChatItemDelete
|
case invalidChatItemDelete
|
||||||
case hasCurrentCall
|
case hasCurrentCall
|
||||||
@@ -1985,6 +2049,7 @@ public struct MigrationFileLinkData: Codable {
|
|||||||
public struct AppSettings: Codable, Equatable {
|
public struct AppSettings: Codable, Equatable {
|
||||||
public var networkConfig: NetCfg? = nil
|
public var networkConfig: NetCfg? = nil
|
||||||
public var privacyEncryptLocalFiles: Bool? = nil
|
public var privacyEncryptLocalFiles: Bool? = nil
|
||||||
|
public var privacyAskToApproveRelays: Bool? = nil
|
||||||
public var privacyAcceptImages: Bool? = nil
|
public var privacyAcceptImages: Bool? = nil
|
||||||
public var privacyLinkPreviews: Bool? = nil
|
public var privacyLinkPreviews: Bool? = nil
|
||||||
public var privacyShowChatPreviews: Bool? = nil
|
public var privacyShowChatPreviews: Bool? = nil
|
||||||
@@ -2008,6 +2073,7 @@ public struct AppSettings: Codable, Equatable {
|
|||||||
let def = AppSettings.defaults
|
let def = AppSettings.defaults
|
||||||
if networkConfig != def.networkConfig { empty.networkConfig = networkConfig }
|
if networkConfig != def.networkConfig { empty.networkConfig = networkConfig }
|
||||||
if privacyEncryptLocalFiles != def.privacyEncryptLocalFiles { empty.privacyEncryptLocalFiles = privacyEncryptLocalFiles }
|
if privacyEncryptLocalFiles != def.privacyEncryptLocalFiles { empty.privacyEncryptLocalFiles = privacyEncryptLocalFiles }
|
||||||
|
if privacyAskToApproveRelays != def.privacyAskToApproveRelays { empty.privacyAskToApproveRelays = privacyAskToApproveRelays }
|
||||||
if privacyAcceptImages != def.privacyAcceptImages { empty.privacyAcceptImages = privacyAcceptImages }
|
if privacyAcceptImages != def.privacyAcceptImages { empty.privacyAcceptImages = privacyAcceptImages }
|
||||||
if privacyLinkPreviews != def.privacyLinkPreviews { empty.privacyLinkPreviews = privacyLinkPreviews }
|
if privacyLinkPreviews != def.privacyLinkPreviews { empty.privacyLinkPreviews = privacyLinkPreviews }
|
||||||
if privacyShowChatPreviews != def.privacyShowChatPreviews { empty.privacyShowChatPreviews = privacyShowChatPreviews }
|
if privacyShowChatPreviews != def.privacyShowChatPreviews { empty.privacyShowChatPreviews = privacyShowChatPreviews }
|
||||||
@@ -2032,6 +2098,7 @@ public struct AppSettings: Codable, Equatable {
|
|||||||
AppSettings (
|
AppSettings (
|
||||||
networkConfig: NetCfg.defaults,
|
networkConfig: NetCfg.defaults,
|
||||||
privacyEncryptLocalFiles: true,
|
privacyEncryptLocalFiles: true,
|
||||||
|
privacyAskToApproveRelays: true,
|
||||||
privacyAcceptImages: true,
|
privacyAcceptImages: true,
|
||||||
privacyLinkPreviews: true,
|
privacyLinkPreviews: true,
|
||||||
privacyShowChatPreviews: true,
|
privacyShowChatPreviews: true,
|
||||||
@@ -2086,3 +2153,70 @@ public enum AppSettingsLockScreenCalls: String, Codable {
|
|||||||
case show
|
case show
|
||||||
case accept
|
case accept
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public struct UserNetworkInfo: Codable, Equatable {
|
||||||
|
public let networkType: UserNetworkType
|
||||||
|
public let online: Bool
|
||||||
|
|
||||||
|
public init(networkType: UserNetworkType, online: Bool) {
|
||||||
|
self.networkType = networkType
|
||||||
|
self.online = online
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum UserNetworkType: String, Codable {
|
||||||
|
case none
|
||||||
|
case cellular
|
||||||
|
case wifi
|
||||||
|
case ethernet
|
||||||
|
case other
|
||||||
|
|
||||||
|
public var text: LocalizedStringKey {
|
||||||
|
switch self {
|
||||||
|
case .none: "No network connection"
|
||||||
|
case .cellular: "Cellular"
|
||||||
|
case .wifi: "WiFi"
|
||||||
|
case .ethernet: "Wired ethernet"
|
||||||
|
case .other: "Other"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct RcvMsgInfo: Codable {
|
||||||
|
var msgId: Int64
|
||||||
|
var msgDeliveryId: Int64
|
||||||
|
var msgDeliveryStatus: String
|
||||||
|
var agentMsgId: Int64
|
||||||
|
var agentMsgMeta: String
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct QueueInfo: Codable {
|
||||||
|
var qiSnd: Bool
|
||||||
|
var qiNtf: Bool
|
||||||
|
var qiSub: QSub?
|
||||||
|
var qiSize: Int
|
||||||
|
var qiMsg: MsgInfo?
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct QSub: Codable {
|
||||||
|
var qSubThread: QSubThread
|
||||||
|
var qDelivered: String?
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QSubThread: String, Codable {
|
||||||
|
case noSub
|
||||||
|
case subPending
|
||||||
|
case subThread
|
||||||
|
case prohibitSub
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct MsgInfo: Codable {
|
||||||
|
var msgId: String
|
||||||
|
var msgTs: Date
|
||||||
|
var msgType: MsgType
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum MsgType: String, Codable {
|
||||||
|
case message
|
||||||
|
case quota
|
||||||
|
}
|
||||||
|
|||||||
@@ -23,12 +23,16 @@ public let GROUP_DEFAULT_NTF_ENABLE_PERIODIC = "ntfEnablePeriodic" // no longer
|
|||||||
let GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES = "privacyAcceptImages"
|
let GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES = "privacyAcceptImages"
|
||||||
public let GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE = "privacyTransferImagesInline" // no longer used
|
public let GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE = "privacyTransferImagesInline" // no longer used
|
||||||
public let GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES = "privacyEncryptLocalFiles"
|
public let GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES = "privacyEncryptLocalFiles"
|
||||||
|
public let GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS = "privacyAskToApproveRelays"
|
||||||
let GROUP_DEFAULT_NTF_BADGE_COUNT = "ntgBadgeCount"
|
let GROUP_DEFAULT_NTF_BADGE_COUNT = "ntgBadgeCount"
|
||||||
let GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS = "networkUseOnionHosts"
|
let GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS = "networkUseOnionHosts"
|
||||||
let GROUP_DEFAULT_NETWORK_SESSION_MODE = "networkSessionMode"
|
let GROUP_DEFAULT_NETWORK_SESSION_MODE = "networkSessionMode"
|
||||||
|
let GROUP_DEFAULT_NETWORK_SMP_PROXY_MODE = "networkSMPProxyMode"
|
||||||
|
let GROUP_DEFAULT_NETWORK_SMP_PROXY_FALLBACK = "networkSMPProxyFallback"
|
||||||
let GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT = "networkTCPConnectTimeout"
|
let GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT = "networkTCPConnectTimeout"
|
||||||
let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT = "networkTCPTimeout"
|
let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT = "networkTCPTimeout"
|
||||||
let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB = "networkTCPTimeoutPerKb"
|
let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB = "networkTCPTimeoutPerKb"
|
||||||
|
let GROUP_DEFAULT_NETWORK_RCV_CONCURRENCY = "networkRcvConcurrency"
|
||||||
let GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL = "networkSMPPingInterval"
|
let GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL = "networkSMPPingInterval"
|
||||||
let GROUP_DEFAULT_NETWORK_SMP_PING_COUNT = "networkSMPPingCount"
|
let GROUP_DEFAULT_NETWORK_SMP_PING_COUNT = "networkSMPPingCount"
|
||||||
let GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE = "networkEnableKeepAlive"
|
let GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE = "networkEnableKeepAlive"
|
||||||
@@ -40,7 +44,7 @@ let GROUP_DEFAULT_STORE_DB_PASSPHRASE = "storeDBPassphrase"
|
|||||||
public let GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE = "initialRandomDBPassphrase"
|
public let GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE = "initialRandomDBPassphrase"
|
||||||
public let GROUP_DEFAULT_CONFIRM_DB_UPGRADES = "confirmDBUpgrades"
|
public let GROUP_DEFAULT_CONFIRM_DB_UPGRADES = "confirmDBUpgrades"
|
||||||
public let GROUP_DEFAULT_CALL_KIT_ENABLED = "callKitEnabled"
|
public let GROUP_DEFAULT_CALL_KIT_ENABLED = "callKitEnabled"
|
||||||
public let GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED = "pqExperimentalEnabled"
|
public let GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED = "pqExperimentalEnabled" // no longer used
|
||||||
|
|
||||||
public let APP_GROUP_NAME = "group.chat.simplex.app"
|
public let APP_GROUP_NAME = "group.chat.simplex.app"
|
||||||
|
|
||||||
@@ -52,9 +56,12 @@ public func registerGroupDefaults() {
|
|||||||
GROUP_DEFAULT_NTF_ENABLE_PERIODIC: false,
|
GROUP_DEFAULT_NTF_ENABLE_PERIODIC: false,
|
||||||
GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS: OnionHosts.no.rawValue,
|
GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS: OnionHosts.no.rawValue,
|
||||||
GROUP_DEFAULT_NETWORK_SESSION_MODE: TransportSessionMode.user.rawValue,
|
GROUP_DEFAULT_NETWORK_SESSION_MODE: TransportSessionMode.user.rawValue,
|
||||||
|
GROUP_DEFAULT_NETWORK_SMP_PROXY_MODE: SMPProxyMode.never.rawValue,
|
||||||
|
GROUP_DEFAULT_NETWORK_SMP_PROXY_FALLBACK: SMPProxyFallback.allow.rawValue,
|
||||||
GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT: NetCfg.defaults.tcpConnectTimeout,
|
GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT: NetCfg.defaults.tcpConnectTimeout,
|
||||||
GROUP_DEFAULT_NETWORK_TCP_TIMEOUT: NetCfg.defaults.tcpTimeout,
|
GROUP_DEFAULT_NETWORK_TCP_TIMEOUT: NetCfg.defaults.tcpTimeout,
|
||||||
GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB: NetCfg.defaults.tcpTimeoutPerKb,
|
GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB: NetCfg.defaults.tcpTimeoutPerKb,
|
||||||
|
GROUP_DEFAULT_NETWORK_RCV_CONCURRENCY: NetCfg.defaults.rcvConcurrency,
|
||||||
GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL: NetCfg.defaults.smpPingInterval,
|
GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL: NetCfg.defaults.smpPingInterval,
|
||||||
GROUP_DEFAULT_NETWORK_SMP_PING_COUNT: NetCfg.defaults.smpPingCount,
|
GROUP_DEFAULT_NETWORK_SMP_PING_COUNT: NetCfg.defaults.smpPingCount,
|
||||||
GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE: NetCfg.defaults.enableKeepAlive,
|
GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE: NetCfg.defaults.enableKeepAlive,
|
||||||
@@ -67,6 +74,7 @@ public func registerGroupDefaults() {
|
|||||||
GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES: true,
|
GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES: true,
|
||||||
GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE: false,
|
GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE: false,
|
||||||
GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES: true,
|
GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES: true,
|
||||||
|
GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS: true,
|
||||||
GROUP_DEFAULT_CONFIRM_DB_UPGRADES: false,
|
GROUP_DEFAULT_CONFIRM_DB_UPGRADES: false,
|
||||||
GROUP_DEFAULT_CALL_KIT_ENABLED: true,
|
GROUP_DEFAULT_CALL_KIT_ENABLED: true,
|
||||||
GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED: false,
|
GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED: false,
|
||||||
@@ -175,6 +183,8 @@ public let privacyAcceptImagesGroupDefault = BoolDefault(defaults: groupDefaults
|
|||||||
|
|
||||||
public let privacyEncryptLocalFilesGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES)
|
public let privacyEncryptLocalFilesGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES)
|
||||||
|
|
||||||
|
public let privacyAskToApproveRelaysGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS)
|
||||||
|
|
||||||
public let ntfBadgeCountGroupDefault = IntDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_NTF_BADGE_COUNT)
|
public let ntfBadgeCountGroupDefault = IntDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_NTF_BADGE_COUNT)
|
||||||
|
|
||||||
public let networkUseOnionHostsGroupDefault = EnumDefault<OnionHosts>(
|
public let networkUseOnionHostsGroupDefault = EnumDefault<OnionHosts>(
|
||||||
@@ -189,6 +199,18 @@ public let networkSessionModeGroupDefault = EnumDefault<TransportSessionMode>(
|
|||||||
withDefault: .user
|
withDefault: .user
|
||||||
)
|
)
|
||||||
|
|
||||||
|
public let networkSMPProxyModeGroupDefault = EnumDefault<SMPProxyMode>(
|
||||||
|
defaults: groupDefaults,
|
||||||
|
forKey: GROUP_DEFAULT_NETWORK_SMP_PROXY_MODE,
|
||||||
|
withDefault: .never
|
||||||
|
)
|
||||||
|
|
||||||
|
public let networkSMPProxyFallbackGroupDefault = EnumDefault<SMPProxyFallback>(
|
||||||
|
defaults: groupDefaults,
|
||||||
|
forKey: GROUP_DEFAULT_NETWORK_SMP_PROXY_FALLBACK,
|
||||||
|
withDefault: .allow
|
||||||
|
)
|
||||||
|
|
||||||
public let storeDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_STORE_DB_PASSPHRASE)
|
public let storeDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_STORE_DB_PASSPHRASE)
|
||||||
|
|
||||||
public let initialRandomDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE)
|
public let initialRandomDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE)
|
||||||
@@ -197,8 +219,6 @@ public let confirmDBUpgradesGroupDefault = BoolDefault(defaults: groupDefaults,
|
|||||||
|
|
||||||
public let callKitEnabledGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_CALL_KIT_ENABLED)
|
public let callKitEnabledGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_CALL_KIT_ENABLED)
|
||||||
|
|
||||||
public let pqExperimentalEnabledDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED)
|
|
||||||
|
|
||||||
public class DateDefault {
|
public class DateDefault {
|
||||||
var defaults: UserDefaults
|
var defaults: UserDefaults
|
||||||
var key: String
|
var key: String
|
||||||
@@ -275,9 +295,12 @@ public func getNetCfg() -> NetCfg {
|
|||||||
let onionHosts = networkUseOnionHostsGroupDefault.get()
|
let onionHosts = networkUseOnionHostsGroupDefault.get()
|
||||||
let (hostMode, requiredHostMode) = onionHosts.hostMode
|
let (hostMode, requiredHostMode) = onionHosts.hostMode
|
||||||
let sessionMode = networkSessionModeGroupDefault.get()
|
let sessionMode = networkSessionModeGroupDefault.get()
|
||||||
|
let smpProxyMode = networkSMPProxyModeGroupDefault.get()
|
||||||
|
let smpProxyFallback = networkSMPProxyFallbackGroupDefault.get()
|
||||||
let tcpConnectTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT)
|
let tcpConnectTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT)
|
||||||
let tcpTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT)
|
let tcpTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT)
|
||||||
let tcpTimeoutPerKb = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB)
|
let tcpTimeoutPerKb = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB)
|
||||||
|
let rcvConcurrency = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_RCV_CONCURRENCY)
|
||||||
let smpPingInterval = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL)
|
let smpPingInterval = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL)
|
||||||
let smpPingCount = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT)
|
let smpPingCount = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT)
|
||||||
let enableKeepAlive = groupDefaults.bool(forKey: GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE)
|
let enableKeepAlive = groupDefaults.bool(forKey: GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE)
|
||||||
@@ -294,9 +317,12 @@ public func getNetCfg() -> NetCfg {
|
|||||||
hostMode: hostMode,
|
hostMode: hostMode,
|
||||||
requiredHostMode: requiredHostMode,
|
requiredHostMode: requiredHostMode,
|
||||||
sessionMode: sessionMode,
|
sessionMode: sessionMode,
|
||||||
|
smpProxyMode: smpProxyMode,
|
||||||
|
smpProxyFallback: smpProxyFallback,
|
||||||
tcpConnectTimeout: tcpConnectTimeout,
|
tcpConnectTimeout: tcpConnectTimeout,
|
||||||
tcpTimeout: tcpTimeout,
|
tcpTimeout: tcpTimeout,
|
||||||
tcpTimeoutPerKb: tcpTimeoutPerKb,
|
tcpTimeoutPerKb: tcpTimeoutPerKb,
|
||||||
|
rcvConcurrency: rcvConcurrency,
|
||||||
tcpKeepAlive: tcpKeepAlive,
|
tcpKeepAlive: tcpKeepAlive,
|
||||||
smpPingInterval: smpPingInterval,
|
smpPingInterval: smpPingInterval,
|
||||||
smpPingCount: smpPingCount,
|
smpPingCount: smpPingCount,
|
||||||
@@ -307,9 +333,12 @@ public func getNetCfg() -> NetCfg {
|
|||||||
public func setNetCfg(_ cfg: NetCfg) {
|
public func setNetCfg(_ cfg: NetCfg) {
|
||||||
networkUseOnionHostsGroupDefault.set(OnionHosts(netCfg: cfg))
|
networkUseOnionHostsGroupDefault.set(OnionHosts(netCfg: cfg))
|
||||||
networkSessionModeGroupDefault.set(cfg.sessionMode)
|
networkSessionModeGroupDefault.set(cfg.sessionMode)
|
||||||
|
networkSMPProxyModeGroupDefault.set(cfg.smpProxyMode)
|
||||||
|
networkSMPProxyFallbackGroupDefault.set(cfg.smpProxyFallback)
|
||||||
groupDefaults.set(cfg.tcpConnectTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT)
|
groupDefaults.set(cfg.tcpConnectTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT)
|
||||||
groupDefaults.set(cfg.tcpTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT)
|
groupDefaults.set(cfg.tcpTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT)
|
||||||
groupDefaults.set(cfg.tcpTimeoutPerKb, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB)
|
groupDefaults.set(cfg.tcpTimeoutPerKb, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB)
|
||||||
|
groupDefaults.set(cfg.rcvConcurrency, forKey: GROUP_DEFAULT_NETWORK_RCV_CONCURRENCY)
|
||||||
groupDefaults.set(cfg.smpPingInterval, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL)
|
groupDefaults.set(cfg.smpPingInterval, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL)
|
||||||
groupDefaults.set(cfg.smpPingCount, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT)
|
groupDefaults.set(cfg.smpPingCount, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT)
|
||||||
if let tcpKeepAlive = cfg.tcpKeepAlive {
|
if let tcpKeepAlive = cfg.tcpKeepAlive {
|
||||||
|
|||||||
@@ -543,6 +543,7 @@ public protocol Feature {
|
|||||||
var iconFilled: String { get }
|
var iconFilled: String { get }
|
||||||
var iconScale: CGFloat { get }
|
var iconScale: CGFloat { get }
|
||||||
var hasParam: Bool { get }
|
var hasParam: Bool { get }
|
||||||
|
var hasRole: Bool { get }
|
||||||
var text: String { get }
|
var text: String { get }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -569,6 +570,8 @@ public enum ChatFeature: String, Decodable, Feature {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var hasRole: Bool { false }
|
||||||
|
|
||||||
public var text: String {
|
public var text: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .timedMessages: return NSLocalizedString("Disappearing messages", comment: "chat feature")
|
case .timedMessages: return NSLocalizedString("Disappearing messages", comment: "chat feature")
|
||||||
@@ -694,6 +697,7 @@ public enum GroupFeature: String, Decodable, Feature {
|
|||||||
case reactions
|
case reactions
|
||||||
case voice
|
case voice
|
||||||
case files
|
case files
|
||||||
|
case simplexLinks
|
||||||
case history
|
case history
|
||||||
|
|
||||||
public var id: Self { self }
|
public var id: Self { self }
|
||||||
@@ -705,6 +709,19 @@ public enum GroupFeature: String, Decodable, Feature {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var hasRole: Bool {
|
||||||
|
switch self {
|
||||||
|
case .timedMessages: false
|
||||||
|
case .directMessages: true
|
||||||
|
case .fullDelete: false
|
||||||
|
case .reactions: false
|
||||||
|
case .voice: true
|
||||||
|
case .files: true
|
||||||
|
case .simplexLinks: true
|
||||||
|
case .history: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public var text: String {
|
public var text: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .timedMessages: return NSLocalizedString("Disappearing messages", comment: "chat feature")
|
case .timedMessages: return NSLocalizedString("Disappearing messages", comment: "chat feature")
|
||||||
@@ -713,6 +730,7 @@ public enum GroupFeature: String, Decodable, Feature {
|
|||||||
case .reactions: return NSLocalizedString("Message reactions", comment: "chat feature")
|
case .reactions: return NSLocalizedString("Message reactions", comment: "chat feature")
|
||||||
case .voice: return NSLocalizedString("Voice messages", comment: "chat feature")
|
case .voice: return NSLocalizedString("Voice messages", comment: "chat feature")
|
||||||
case .files: return NSLocalizedString("Files and media", comment: "chat feature")
|
case .files: return NSLocalizedString("Files and media", comment: "chat feature")
|
||||||
|
case .simplexLinks: return NSLocalizedString("SimpleX links", comment: "chat feature")
|
||||||
case .history: return NSLocalizedString("Visible history", comment: "chat feature")
|
case .history: return NSLocalizedString("Visible history", comment: "chat feature")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -725,6 +743,7 @@ public enum GroupFeature: String, Decodable, Feature {
|
|||||||
case .reactions: return "face.smiling"
|
case .reactions: return "face.smiling"
|
||||||
case .voice: return "mic"
|
case .voice: return "mic"
|
||||||
case .files: return "doc"
|
case .files: return "doc"
|
||||||
|
case .simplexLinks: return "link.circle"
|
||||||
case .history: return "clock"
|
case .history: return "clock"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -737,6 +756,7 @@ public enum GroupFeature: String, Decodable, Feature {
|
|||||||
case .reactions: return "face.smiling.fill"
|
case .reactions: return "face.smiling.fill"
|
||||||
case .voice: return "mic.fill"
|
case .voice: return "mic.fill"
|
||||||
case .files: return "doc.fill"
|
case .files: return "doc.fill"
|
||||||
|
case .simplexLinks: return "link.circle.fill"
|
||||||
case .history: return "clock.fill"
|
case .history: return "clock.fill"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -781,6 +801,11 @@ public enum GroupFeature: String, Decodable, Feature {
|
|||||||
case .on: return "Allow to send files and media."
|
case .on: return "Allow to send files and media."
|
||||||
case .off: return "Prohibit sending files and media."
|
case .off: return "Prohibit sending files and media."
|
||||||
}
|
}
|
||||||
|
case .simplexLinks:
|
||||||
|
switch enabled {
|
||||||
|
case .on: return "Allow to send SimpleX links."
|
||||||
|
case .off: return "Prohibit sending SimpleX links."
|
||||||
|
}
|
||||||
case .history:
|
case .history:
|
||||||
switch enabled {
|
switch enabled {
|
||||||
case .on: return "Send up to 100 last messages to new members."
|
case .on: return "Send up to 100 last messages to new members."
|
||||||
@@ -819,6 +844,11 @@ public enum GroupFeature: String, Decodable, Feature {
|
|||||||
case .on: return "Group members can send files and media."
|
case .on: return "Group members can send files and media."
|
||||||
case .off: return "Files and media are prohibited in this group."
|
case .off: return "Files and media are prohibited in this group."
|
||||||
}
|
}
|
||||||
|
case .simplexLinks:
|
||||||
|
switch enabled {
|
||||||
|
case .on: return "Group members can send SimpleX links."
|
||||||
|
case .off: return "SimpleX links are prohibited in this group."
|
||||||
|
}
|
||||||
case .history:
|
case .history:
|
||||||
switch enabled {
|
switch enabled {
|
||||||
case .on: return "Up to 100 last messages are sent to new members."
|
case .on: return "Up to 100 last messages are sent to new members."
|
||||||
@@ -958,20 +988,22 @@ public enum FeatureAllowed: String, Codable, Identifiable {
|
|||||||
|
|
||||||
public struct FullGroupPreferences: Decodable, Equatable {
|
public struct FullGroupPreferences: Decodable, Equatable {
|
||||||
public var timedMessages: TimedMessagesGroupPreference
|
public var timedMessages: TimedMessagesGroupPreference
|
||||||
public var directMessages: GroupPreference
|
public var directMessages: RoleGroupPreference
|
||||||
public var fullDelete: GroupPreference
|
public var fullDelete: GroupPreference
|
||||||
public var reactions: GroupPreference
|
public var reactions: GroupPreference
|
||||||
public var voice: GroupPreference
|
public var voice: RoleGroupPreference
|
||||||
public var files: GroupPreference
|
public var files: RoleGroupPreference
|
||||||
|
public var simplexLinks: RoleGroupPreference
|
||||||
public var history: GroupPreference
|
public var history: GroupPreference
|
||||||
|
|
||||||
public init(
|
public init(
|
||||||
timedMessages: TimedMessagesGroupPreference,
|
timedMessages: TimedMessagesGroupPreference,
|
||||||
directMessages: GroupPreference,
|
directMessages: RoleGroupPreference,
|
||||||
fullDelete: GroupPreference,
|
fullDelete: GroupPreference,
|
||||||
reactions: GroupPreference,
|
reactions: GroupPreference,
|
||||||
voice: GroupPreference,
|
voice: RoleGroupPreference,
|
||||||
files: GroupPreference,
|
files: RoleGroupPreference,
|
||||||
|
simplexLinks: RoleGroupPreference,
|
||||||
history: GroupPreference
|
history: GroupPreference
|
||||||
) {
|
) {
|
||||||
self.timedMessages = timedMessages
|
self.timedMessages = timedMessages
|
||||||
@@ -980,36 +1012,40 @@ public struct FullGroupPreferences: Decodable, Equatable {
|
|||||||
self.reactions = reactions
|
self.reactions = reactions
|
||||||
self.voice = voice
|
self.voice = voice
|
||||||
self.files = files
|
self.files = files
|
||||||
|
self.simplexLinks = simplexLinks
|
||||||
self.history = history
|
self.history = history
|
||||||
}
|
}
|
||||||
|
|
||||||
public static let sampleData = FullGroupPreferences(
|
public static let sampleData = FullGroupPreferences(
|
||||||
timedMessages: TimedMessagesGroupPreference(enable: .off),
|
timedMessages: TimedMessagesGroupPreference(enable: .off),
|
||||||
directMessages: GroupPreference(enable: .off),
|
directMessages: RoleGroupPreference(enable: .off, role: nil),
|
||||||
fullDelete: GroupPreference(enable: .off),
|
fullDelete: GroupPreference(enable: .off),
|
||||||
reactions: GroupPreference(enable: .on),
|
reactions: GroupPreference(enable: .on),
|
||||||
voice: GroupPreference(enable: .on),
|
voice: RoleGroupPreference(enable: .on, role: nil),
|
||||||
files: GroupPreference(enable: .on),
|
files: RoleGroupPreference(enable: .on, role: nil),
|
||||||
|
simplexLinks: RoleGroupPreference(enable: .on, role: nil),
|
||||||
history: GroupPreference(enable: .on)
|
history: GroupPreference(enable: .on)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
public struct GroupPreferences: Codable {
|
public struct GroupPreferences: Codable {
|
||||||
public var timedMessages: TimedMessagesGroupPreference?
|
public var timedMessages: TimedMessagesGroupPreference?
|
||||||
public var directMessages: GroupPreference?
|
public var directMessages: RoleGroupPreference?
|
||||||
public var fullDelete: GroupPreference?
|
public var fullDelete: GroupPreference?
|
||||||
public var reactions: GroupPreference?
|
public var reactions: GroupPreference?
|
||||||
public var voice: GroupPreference?
|
public var voice: RoleGroupPreference?
|
||||||
public var files: GroupPreference?
|
public var files: RoleGroupPreference?
|
||||||
|
public var simplexLinks: RoleGroupPreference?
|
||||||
public var history: GroupPreference?
|
public var history: GroupPreference?
|
||||||
|
|
||||||
public init(
|
public init(
|
||||||
timedMessages: TimedMessagesGroupPreference? = nil,
|
timedMessages: TimedMessagesGroupPreference? = nil,
|
||||||
directMessages: GroupPreference? = nil,
|
directMessages: RoleGroupPreference? = nil,
|
||||||
fullDelete: GroupPreference? = nil,
|
fullDelete: GroupPreference? = nil,
|
||||||
reactions: GroupPreference? = nil,
|
reactions: GroupPreference? = nil,
|
||||||
voice: GroupPreference? = nil,
|
voice: RoleGroupPreference? = nil,
|
||||||
files: GroupPreference? = nil,
|
files: RoleGroupPreference? = nil,
|
||||||
|
simplexLinks: RoleGroupPreference? = nil,
|
||||||
history: GroupPreference? = nil
|
history: GroupPreference? = nil
|
||||||
) {
|
) {
|
||||||
self.timedMessages = timedMessages
|
self.timedMessages = timedMessages
|
||||||
@@ -1018,16 +1054,18 @@ public struct GroupPreferences: Codable {
|
|||||||
self.reactions = reactions
|
self.reactions = reactions
|
||||||
self.voice = voice
|
self.voice = voice
|
||||||
self.files = files
|
self.files = files
|
||||||
|
self.simplexLinks = simplexLinks
|
||||||
self.history = history
|
self.history = history
|
||||||
}
|
}
|
||||||
|
|
||||||
public static let sampleData = GroupPreferences(
|
public static let sampleData = GroupPreferences(
|
||||||
timedMessages: TimedMessagesGroupPreference(enable: .off),
|
timedMessages: TimedMessagesGroupPreference(enable: .off),
|
||||||
directMessages: GroupPreference(enable: .off),
|
directMessages: RoleGroupPreference(enable: .off, role: nil),
|
||||||
fullDelete: GroupPreference(enable: .off),
|
fullDelete: GroupPreference(enable: .off),
|
||||||
reactions: GroupPreference(enable: .on),
|
reactions: GroupPreference(enable: .on),
|
||||||
voice: GroupPreference(enable: .on),
|
voice: RoleGroupPreference(enable: .on, role: nil),
|
||||||
files: GroupPreference(enable: .on),
|
files: RoleGroupPreference(enable: .on, role: nil),
|
||||||
|
simplexLinks: RoleGroupPreference(enable: .on, role: nil),
|
||||||
history: GroupPreference(enable: .on)
|
history: GroupPreference(enable: .on)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1040,6 +1078,7 @@ public func toGroupPreferences(_ fullPreferences: FullGroupPreferences) -> Group
|
|||||||
reactions: fullPreferences.reactions,
|
reactions: fullPreferences.reactions,
|
||||||
voice: fullPreferences.voice,
|
voice: fullPreferences.voice,
|
||||||
files: fullPreferences.files,
|
files: fullPreferences.files,
|
||||||
|
simplexLinks: fullPreferences.simplexLinks,
|
||||||
history: fullPreferences.history
|
history: fullPreferences.history
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1051,11 +1090,37 @@ public struct GroupPreference: Codable, Equatable {
|
|||||||
enable == .on
|
enable == .on
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func enabled(_ role: GroupMemberRole?, for m: GroupMember?) -> GroupFeatureEnabled {
|
||||||
|
switch enable {
|
||||||
|
case .off: .off
|
||||||
|
case .on:
|
||||||
|
if let role, let m {
|
||||||
|
m.memberRole >= role ? .on : .off
|
||||||
|
} else {
|
||||||
|
.on
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public init(enable: GroupFeatureEnabled) {
|
public init(enable: GroupFeatureEnabled) {
|
||||||
self.enable = enable
|
self.enable = enable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public struct RoleGroupPreference: Codable, Equatable {
|
||||||
|
public var enable: GroupFeatureEnabled
|
||||||
|
public var role: GroupMemberRole?
|
||||||
|
|
||||||
|
public func on(for m: GroupMember) -> Bool {
|
||||||
|
enable == .on && m.memberRole >= (role ?? .observer)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(enable: GroupFeatureEnabled, role: GroupMemberRole?) {
|
||||||
|
self.enable = enable
|
||||||
|
self.role = role
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public struct TimedMessagesGroupPreference: Codable, Equatable {
|
public struct TimedMessagesGroupPreference: Codable, Equatable {
|
||||||
public var enable: GroupFeatureEnabled
|
public var enable: GroupFeatureEnabled
|
||||||
public var ttl: Int?
|
public var ttl: Int?
|
||||||
@@ -1280,7 +1345,7 @@ public enum ChatInfo: Identifiable, Decodable, NamedChat {
|
|||||||
case .timedMessages: return prefs.timedMessages.on
|
case .timedMessages: return prefs.timedMessages.on
|
||||||
case .fullDelete: return prefs.fullDelete.on
|
case .fullDelete: return prefs.fullDelete.on
|
||||||
case .reactions: return prefs.reactions.on
|
case .reactions: return prefs.reactions.on
|
||||||
case .voice: return prefs.voice.on
|
case .voice: return prefs.voice.on(for: groupInfo.membership)
|
||||||
case .calls: return false
|
case .calls: return false
|
||||||
}
|
}
|
||||||
case .local:
|
case .local:
|
||||||
@@ -1323,7 +1388,7 @@ public enum ChatInfo: Identifiable, Decodable, NamedChat {
|
|||||||
return .other
|
return .other
|
||||||
}
|
}
|
||||||
case let .group(groupInfo):
|
case let .group(groupInfo):
|
||||||
if !groupInfo.fullGroupPreferences.voice.on {
|
if !groupInfo.fullGroupPreferences.voice.on(for: groupInfo.membership) {
|
||||||
return .groupOwnerCan
|
return .groupOwnerCan
|
||||||
} else {
|
} else {
|
||||||
return .other
|
return .other
|
||||||
@@ -1445,7 +1510,12 @@ public struct Contact: Identifiable, Decodable, NamedChat {
|
|||||||
public var ready: Bool { get { activeConn?.connStatus == .ready } }
|
public var ready: Bool { get { activeConn?.connStatus == .ready } }
|
||||||
public var active: Bool { get { contactStatus == .active } }
|
public var active: Bool { get { contactStatus == .active } }
|
||||||
public var sendMsgEnabled: Bool { get {
|
public var sendMsgEnabled: Bool { get {
|
||||||
(ready && active && !(activeConn?.connectionStats?.ratchetSyncSendProhibited ?? false))
|
(
|
||||||
|
ready
|
||||||
|
&& active
|
||||||
|
&& !(activeConn?.connectionStats?.ratchetSyncSendProhibited ?? false)
|
||||||
|
&& !(activeConn?.connDisabled ?? true)
|
||||||
|
)
|
||||||
|| nextSendGrpInv
|
|| nextSendGrpInv
|
||||||
} }
|
} }
|
||||||
public var nextSendGrpInv: Bool { get { contactGroupMemberId != nil && !contactGrpInvSent } }
|
public var nextSendGrpInv: Bool { get { contactGroupMemberId != nil && !contactGrpInvSent } }
|
||||||
@@ -1536,15 +1606,20 @@ public struct Connection: Decodable {
|
|||||||
public var pqEncryption: Bool
|
public var pqEncryption: Bool
|
||||||
public var pqSndEnabled: Bool?
|
public var pqSndEnabled: Bool?
|
||||||
public var pqRcvEnabled: Bool?
|
public var pqRcvEnabled: Bool?
|
||||||
|
public var authErrCounter: Int
|
||||||
|
|
||||||
public var connectionStats: ConnectionStats? = nil
|
public var connectionStats: ConnectionStats? = nil
|
||||||
|
|
||||||
private enum CodingKeys: String, CodingKey {
|
private enum CodingKeys: String, CodingKey {
|
||||||
case connId, agentConnId, peerChatVRange, connStatus, connLevel, viaGroupLink, customUserProfileId, connectionCode, pqSupport, pqEncryption, pqSndEnabled, pqRcvEnabled
|
case connId, agentConnId, peerChatVRange, connStatus, connLevel, viaGroupLink, customUserProfileId, connectionCode, pqSupport, pqEncryption, pqSndEnabled, pqRcvEnabled, authErrCounter
|
||||||
}
|
}
|
||||||
|
|
||||||
public var id: ChatId { get { ":\(connId)" } }
|
public var id: ChatId { get { ":\(connId)" } }
|
||||||
|
|
||||||
|
public var connDisabled: Bool {
|
||||||
|
authErrCounter >= 10 // authErrDisableCount in core
|
||||||
|
}
|
||||||
|
|
||||||
public var connPQEnabled: Bool {
|
public var connPQEnabled: Bool {
|
||||||
pqSndEnabled == true && pqRcvEnabled == true
|
pqSndEnabled == true && pqRcvEnabled == true
|
||||||
}
|
}
|
||||||
@@ -1557,7 +1632,8 @@ public struct Connection: Decodable {
|
|||||||
connLevel: 0,
|
connLevel: 0,
|
||||||
viaGroupLink: false,
|
viaGroupLink: false,
|
||||||
pqSupport: false,
|
pqSupport: false,
|
||||||
pqEncryption: false
|
pqEncryption: false,
|
||||||
|
authErrCounter: 0
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1975,7 +2051,7 @@ public struct GroupMemberIds: Decodable {
|
|||||||
var groupId: Int64
|
var groupId: Int64
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Decodable {
|
public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Codable {
|
||||||
case observer = "observer"
|
case observer = "observer"
|
||||||
case author = "author"
|
case author = "author"
|
||||||
case member = "member"
|
case member = "member"
|
||||||
@@ -2372,10 +2448,20 @@ public struct ChatItem: Identifiable, Decodable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func getSample (_ id: Int64, _ dir: CIDirection, _ ts: Date, _ text: String, _ status: CIStatus = .sndNew, quotedItem: CIQuote? = nil, file: CIFile? = nil, itemDeleted: CIDeleted? = nil, itemEdited: Bool = false, itemLive: Bool = false, editable: Bool = true) -> ChatItem {
|
public var showLocalDelete: Bool {
|
||||||
|
switch content {
|
||||||
|
case .sndDirectE2EEInfo: return false
|
||||||
|
case .rcvDirectE2EEInfo: return false
|
||||||
|
case .sndGroupE2EEInfo: return false
|
||||||
|
case .rcvGroupE2EEInfo: return false
|
||||||
|
default: return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func getSample (_ id: Int64, _ dir: CIDirection, _ ts: Date, _ text: String, _ status: CIStatus = .sndNew, quotedItem: CIQuote? = nil, file: CIFile? = nil, itemDeleted: CIDeleted? = nil, itemEdited: Bool = false, itemLive: Bool = false, deletable: Bool = true, editable: Bool = true) -> ChatItem {
|
||||||
ChatItem(
|
ChatItem(
|
||||||
chatDir: dir,
|
chatDir: dir,
|
||||||
meta: CIMeta.getSample(id, ts, text, status, itemDeleted: itemDeleted, itemEdited: itemEdited, itemLive: itemLive, editable: editable),
|
meta: CIMeta.getSample(id, ts, text, status, itemDeleted: itemDeleted, itemEdited: itemEdited, itemLive: itemLive, deletable: deletable, editable: editable),
|
||||||
content: .sndMsgContent(msgContent: .text(text)),
|
content: .sndMsgContent(msgContent: .text(text)),
|
||||||
quotedItem: quotedItem,
|
quotedItem: quotedItem,
|
||||||
file: file
|
file: file
|
||||||
@@ -2466,6 +2552,7 @@ public struct ChatItem: Identifiable, Decodable {
|
|||||||
itemDeleted: nil,
|
itemDeleted: nil,
|
||||||
itemEdited: false,
|
itemEdited: false,
|
||||||
itemLive: false,
|
itemLive: false,
|
||||||
|
deletable: false,
|
||||||
editable: false
|
editable: false
|
||||||
),
|
),
|
||||||
content: .rcvDeleted(deleteMode: .cidmBroadcast),
|
content: .rcvDeleted(deleteMode: .cidmBroadcast),
|
||||||
@@ -2487,6 +2574,7 @@ public struct ChatItem: Identifiable, Decodable {
|
|||||||
itemDeleted: nil,
|
itemDeleted: nil,
|
||||||
itemEdited: false,
|
itemEdited: false,
|
||||||
itemLive: true,
|
itemLive: true,
|
||||||
|
deletable: false,
|
||||||
editable: false
|
editable: false
|
||||||
),
|
),
|
||||||
content: .sndMsgContent(msgContent: .text("")),
|
content: .sndMsgContent(msgContent: .text("")),
|
||||||
@@ -2544,12 +2632,15 @@ public struct CIMeta: Decodable {
|
|||||||
public var itemTs: Date
|
public var itemTs: Date
|
||||||
var itemText: String
|
var itemText: String
|
||||||
public var itemStatus: CIStatus
|
public var itemStatus: CIStatus
|
||||||
|
public var sentViaProxy: Bool?
|
||||||
public var createdAt: Date
|
public var createdAt: Date
|
||||||
public var updatedAt: Date
|
public var updatedAt: Date
|
||||||
|
public var itemForwarded: CIForwardedFrom?
|
||||||
public var itemDeleted: CIDeleted?
|
public var itemDeleted: CIDeleted?
|
||||||
public var itemEdited: Bool
|
public var itemEdited: Bool
|
||||||
public var itemTimed: CITimed?
|
public var itemTimed: CITimed?
|
||||||
public var itemLive: Bool?
|
public var itemLive: Bool?
|
||||||
|
public var deletable: Bool
|
||||||
public var editable: Bool
|
public var editable: Bool
|
||||||
|
|
||||||
public var timestampText: Text { get { formatTimestampText(itemTs) } }
|
public var timestampText: Text { get { formatTimestampText(itemTs) } }
|
||||||
@@ -2566,7 +2657,7 @@ public struct CIMeta: Decodable {
|
|||||||
itemStatus.statusIcon(metaColor)
|
itemStatus.statusIcon(metaColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func getSample(_ id: Int64, _ ts: Date, _ text: String, _ status: CIStatus = .sndNew, itemDeleted: CIDeleted? = nil, itemEdited: Bool = false, itemLive: Bool = false, editable: Bool = true) -> CIMeta {
|
public static func getSample(_ id: Int64, _ ts: Date, _ text: String, _ status: CIStatus = .sndNew, itemDeleted: CIDeleted? = nil, itemEdited: Bool = false, itemLive: Bool = false, deletable: Bool = true, editable: Bool = true) -> CIMeta {
|
||||||
CIMeta(
|
CIMeta(
|
||||||
itemId: id,
|
itemId: id,
|
||||||
itemTs: ts,
|
itemTs: ts,
|
||||||
@@ -2577,6 +2668,7 @@ public struct CIMeta: Decodable {
|
|||||||
itemDeleted: itemDeleted,
|
itemDeleted: itemDeleted,
|
||||||
itemEdited: itemEdited,
|
itemEdited: itemEdited,
|
||||||
itemLive: itemLive,
|
itemLive: itemLive,
|
||||||
|
deletable: deletable,
|
||||||
editable: editable
|
editable: editable
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -2592,6 +2684,7 @@ public struct CIMeta: Decodable {
|
|||||||
itemDeleted: nil,
|
itemDeleted: nil,
|
||||||
itemEdited: false,
|
itemEdited: false,
|
||||||
itemLive: false,
|
itemLive: false,
|
||||||
|
deletable: false,
|
||||||
editable: false
|
editable: false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -2629,7 +2722,8 @@ public enum CIStatus: Decodable {
|
|||||||
case sndSent(sndProgress: SndCIStatusProgress)
|
case sndSent(sndProgress: SndCIStatusProgress)
|
||||||
case sndRcvd(msgRcptStatus: MsgReceiptStatus, sndProgress: SndCIStatusProgress)
|
case sndRcvd(msgRcptStatus: MsgReceiptStatus, sndProgress: SndCIStatusProgress)
|
||||||
case sndErrorAuth
|
case sndErrorAuth
|
||||||
case sndError(agentError: String)
|
case sndError(agentError: SndError)
|
||||||
|
case sndWarning(agentError: SndError)
|
||||||
case rcvNew
|
case rcvNew
|
||||||
case rcvRead
|
case rcvRead
|
||||||
case invalid(text: String)
|
case invalid(text: String)
|
||||||
@@ -2641,6 +2735,7 @@ public enum CIStatus: Decodable {
|
|||||||
case .sndRcvd: return "sndRcvd"
|
case .sndRcvd: return "sndRcvd"
|
||||||
case .sndErrorAuth: return "sndErrorAuth"
|
case .sndErrorAuth: return "sndErrorAuth"
|
||||||
case .sndError: return "sndError"
|
case .sndError: return "sndError"
|
||||||
|
case .sndWarning: return "sndWarning"
|
||||||
case .rcvNew: return "rcvNew"
|
case .rcvNew: return "rcvNew"
|
||||||
case .rcvRead: return "rcvRead"
|
case .rcvRead: return "rcvRead"
|
||||||
case .invalid: return "invalid"
|
case .invalid: return "invalid"
|
||||||
@@ -2657,7 +2752,8 @@ public enum CIStatus: Decodable {
|
|||||||
case .badMsgHash: return ("checkmark", .red)
|
case .badMsgHash: return ("checkmark", .red)
|
||||||
}
|
}
|
||||||
case .sndErrorAuth: return ("multiply", .red)
|
case .sndErrorAuth: return ("multiply", .red)
|
||||||
case .sndError: return ("exclamationmark.triangle.fill", .yellow)
|
case .sndError: return ("multiply", .red)
|
||||||
|
case .sndWarning: return ("exclamationmark.triangle.fill", .orange)
|
||||||
case .rcvNew: return ("circlebadge.fill", Color.accentColor)
|
case .rcvNew: return ("circlebadge.fill", Color.accentColor)
|
||||||
case .rcvRead: return nil
|
case .rcvRead: return nil
|
||||||
case .invalid: return ("questionmark", metaColor)
|
case .invalid: return ("questionmark", metaColor)
|
||||||
@@ -2675,7 +2771,11 @@ public enum CIStatus: Decodable {
|
|||||||
)
|
)
|
||||||
case let .sndError(agentError): return (
|
case let .sndError(agentError): return (
|
||||||
NSLocalizedString("Message delivery error", comment: "item status text"),
|
NSLocalizedString("Message delivery error", comment: "item status text"),
|
||||||
String.localizedStringWithFormat(NSLocalizedString("Unexpected error: %@", comment: "item status description"), agentError)
|
agentError.errorInfo
|
||||||
|
)
|
||||||
|
case let .sndWarning(agentError): return (
|
||||||
|
NSLocalizedString("Message delivery warning", comment: "item status text"),
|
||||||
|
agentError.errorInfo
|
||||||
)
|
)
|
||||||
case .rcvNew: return nil
|
case .rcvNew: return nil
|
||||||
case .rcvRead: return nil
|
case .rcvRead: return nil
|
||||||
@@ -2687,6 +2787,42 @@ public enum CIStatus: Decodable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum SndError: Decodable {
|
||||||
|
case auth
|
||||||
|
case quota
|
||||||
|
case expired
|
||||||
|
case relay(srvError: SrvError)
|
||||||
|
case proxy(proxyServer: String, srvError: SrvError)
|
||||||
|
case proxyRelay(proxyServer: String, srvError: SrvError)
|
||||||
|
case other(sndError: String)
|
||||||
|
|
||||||
|
public var errorInfo: String {
|
||||||
|
switch self {
|
||||||
|
case .auth: NSLocalizedString("Wrong key or unknown connection - most likely this connection is deleted.", comment: "snd error text")
|
||||||
|
case .quota: NSLocalizedString("Capacity exceeded - recipient did not receive previously sent messages.", comment: "snd error text")
|
||||||
|
case .expired: NSLocalizedString("Network issues - message expired after many attempts to send it.", comment: "snd error text")
|
||||||
|
case let .relay(srvError): String.localizedStringWithFormat(NSLocalizedString("Destination server error: %@", comment: "snd error text"), srvError.errorInfo)
|
||||||
|
case let .proxy(proxyServer, srvError): String.localizedStringWithFormat(NSLocalizedString("Forwarding server: %@\nError: %@", comment: "snd error text"), proxyServer, srvError.errorInfo)
|
||||||
|
case let .proxyRelay(proxyServer, srvError): String.localizedStringWithFormat(NSLocalizedString("Forwarding server: %@\nDestination server error: %@", comment: "snd error text"), proxyServer, srvError.errorInfo)
|
||||||
|
case let .other(sndError): String.localizedStringWithFormat(NSLocalizedString("Error: %@", comment: "snd error text"), sndError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SrvError: Decodable {
|
||||||
|
case host
|
||||||
|
case version
|
||||||
|
case other(srvError: String)
|
||||||
|
|
||||||
|
public var errorInfo: String {
|
||||||
|
switch self {
|
||||||
|
case .host: NSLocalizedString("Server address is incompatible with network settings.", comment: "srv error text.")
|
||||||
|
case .version: NSLocalizedString("Server version is incompatible with network settings.", comment: "srv error text")
|
||||||
|
case let .other(srvError): srvError
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public enum MsgReceiptStatus: String, Decodable {
|
public enum MsgReceiptStatus: String, Decodable {
|
||||||
case ok
|
case ok
|
||||||
case badMsgHash
|
case badMsgHash
|
||||||
@@ -2713,6 +2849,31 @@ public enum CIDeleted: Decodable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum MsgDirection: String, Decodable {
|
||||||
|
case rcv = "rcv"
|
||||||
|
case snd = "snd"
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum CIForwardedFrom: Decodable {
|
||||||
|
case unknown
|
||||||
|
case contact(chatName: String, msgDir: MsgDirection, contactId: Int64?, chatItemId: Int64?)
|
||||||
|
case group(chatName: String, msgDir: MsgDirection, groupId: Int64?, chatItemId: Int64?)
|
||||||
|
|
||||||
|
var chatName: String {
|
||||||
|
switch self {
|
||||||
|
case .unknown: ""
|
||||||
|
case let .contact(chatName, _, _, _): chatName
|
||||||
|
case let .group(chatName, _, _, _): chatName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func text(_ chatType: ChatType) -> LocalizedStringKey {
|
||||||
|
chatType == .local
|
||||||
|
? (chatName == "" ? "saved" : "saved from \(chatName)")
|
||||||
|
: "forwarded"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public enum CIDeleteMode: String, Decodable {
|
public enum CIDeleteMode: String, Decodable {
|
||||||
case cidmBroadcast = "broadcast"
|
case cidmBroadcast = "broadcast"
|
||||||
case cidmInternal = "internal"
|
case cidmInternal = "internal"
|
||||||
@@ -2742,8 +2903,8 @@ public enum CIContent: Decodable, ItemContent {
|
|||||||
case sndChatFeature(feature: ChatFeature, enabled: FeatureEnabled, param: Int?)
|
case sndChatFeature(feature: ChatFeature, enabled: FeatureEnabled, param: Int?)
|
||||||
case rcvChatPreference(feature: ChatFeature, allowed: FeatureAllowed, param: Int?)
|
case rcvChatPreference(feature: ChatFeature, allowed: FeatureAllowed, param: Int?)
|
||||||
case sndChatPreference(feature: ChatFeature, allowed: FeatureAllowed, param: Int?)
|
case sndChatPreference(feature: ChatFeature, allowed: FeatureAllowed, param: Int?)
|
||||||
case rcvGroupFeature(groupFeature: GroupFeature, preference: GroupPreference, param: Int?)
|
case rcvGroupFeature(groupFeature: GroupFeature, preference: GroupPreference, param: Int?, memberRole_: GroupMemberRole?)
|
||||||
case sndGroupFeature(groupFeature: GroupFeature, preference: GroupPreference, param: Int?)
|
case sndGroupFeature(groupFeature: GroupFeature, preference: GroupPreference, param: Int?, memberRole_: GroupMemberRole?)
|
||||||
case rcvChatFeatureRejected(feature: ChatFeature)
|
case rcvChatFeatureRejected(feature: ChatFeature)
|
||||||
case rcvGroupFeatureRejected(groupFeature: GroupFeature)
|
case rcvGroupFeatureRejected(groupFeature: GroupFeature)
|
||||||
case sndModerated
|
case sndModerated
|
||||||
@@ -2777,8 +2938,8 @@ public enum CIContent: Decodable, ItemContent {
|
|||||||
case let .sndChatFeature(feature, enabled, param): return CIContent.featureText(feature, enabled.text, param)
|
case let .sndChatFeature(feature, enabled, param): return CIContent.featureText(feature, enabled.text, param)
|
||||||
case let .rcvChatPreference(feature, allowed, param): return CIContent.preferenceText(feature, allowed, param)
|
case let .rcvChatPreference(feature, allowed, param): return CIContent.preferenceText(feature, allowed, param)
|
||||||
case let .sndChatPreference(feature, allowed, param): return CIContent.preferenceText(feature, allowed, param)
|
case let .sndChatPreference(feature, allowed, param): return CIContent.preferenceText(feature, allowed, param)
|
||||||
case let .rcvGroupFeature(feature, preference, param): return CIContent.featureText(feature, preference.enable.text, param)
|
case let .rcvGroupFeature(feature, preference, param, role): return CIContent.featureText(feature, preference.enable.text, param, role)
|
||||||
case let .sndGroupFeature(feature, preference, param): return CIContent.featureText(feature, preference.enable.text, param)
|
case let .sndGroupFeature(feature, preference, param, role): return CIContent.featureText(feature, preference.enable.text, param, role)
|
||||||
case let .rcvChatFeatureRejected(feature): return String.localizedStringWithFormat("%@: received, prohibited", feature.text)
|
case let .rcvChatFeatureRejected(feature): return String.localizedStringWithFormat("%@: received, prohibited", feature.text)
|
||||||
case let .rcvGroupFeatureRejected(groupFeature): return String.localizedStringWithFormat("%@: received, prohibited", groupFeature.text)
|
case let .rcvGroupFeatureRejected(groupFeature): return String.localizedStringWithFormat("%@: received, prohibited", groupFeature.text)
|
||||||
case .sndModerated: return NSLocalizedString("moderated", comment: "moderated chat item")
|
case .sndModerated: return NSLocalizedString("moderated", comment: "moderated chat item")
|
||||||
@@ -2803,10 +2964,25 @@ public enum CIContent: Decodable, ItemContent {
|
|||||||
NSLocalizedString("This chat is protected by end-to-end encryption.", comment: "E2EE info chat item")
|
NSLocalizedString("This chat is protected by end-to-end encryption.", comment: "E2EE info chat item")
|
||||||
}
|
}
|
||||||
|
|
||||||
static func featureText(_ feature: Feature, _ enabled: String, _ param: Int?) -> String {
|
static func featureText(_ feature: Feature, _ enabled: String, _ param: Int?, _ role: GroupMemberRole? = nil) -> String {
|
||||||
feature.hasParam
|
(
|
||||||
? "\(feature.text): \(timeText(param))"
|
feature.hasParam
|
||||||
: "\(feature.text): \(enabled)"
|
? "\(feature.text): \(timeText(param))"
|
||||||
|
: "\(feature.text): \(enabled)"
|
||||||
|
) +
|
||||||
|
(
|
||||||
|
feature.hasRole && role != nil
|
||||||
|
? " (\(roleText(role)))"
|
||||||
|
: ""
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private static func roleText(_ role: GroupMemberRole?) -> String {
|
||||||
|
switch role {
|
||||||
|
case .owner: NSLocalizedString("owners", comment: "feature role")
|
||||||
|
case .admin: NSLocalizedString("admins", comment: "feature role")
|
||||||
|
default: NSLocalizedString("all members", comment: "feature role")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func preferenceText(_ feature: Feature, _ allowed: FeatureAllowed, _ param: Int?) -> String {
|
public static func preferenceText(_ feature: Feature, _ allowed: FeatureAllowed, _ param: Int?) -> String {
|
||||||
@@ -2998,6 +3174,7 @@ public struct CIFile: Decodable {
|
|||||||
case .rcvInvitation: return false
|
case .rcvInvitation: return false
|
||||||
case .rcvAccepted: return false
|
case .rcvAccepted: return false
|
||||||
case .rcvTransfer: return false
|
case .rcvTransfer: return false
|
||||||
|
case .rcvAborted: return false
|
||||||
case .rcvCancelled: return false
|
case .rcvCancelled: return false
|
||||||
case .rcvComplete: return true
|
case .rcvComplete: return true
|
||||||
case .rcvError: return false
|
case .rcvError: return false
|
||||||
@@ -3022,6 +3199,7 @@ public struct CIFile: Decodable {
|
|||||||
case .rcvInvitation: return nil
|
case .rcvInvitation: return nil
|
||||||
case .rcvAccepted: return rcvCancelAction
|
case .rcvAccepted: return rcvCancelAction
|
||||||
case .rcvTransfer: return rcvCancelAction
|
case .rcvTransfer: return rcvCancelAction
|
||||||
|
case .rcvAborted: return nil
|
||||||
case .rcvCancelled: return nil
|
case .rcvCancelled: return nil
|
||||||
case .rcvComplete: return nil
|
case .rcvComplete: return nil
|
||||||
case .rcvError: return nil
|
case .rcvError: return nil
|
||||||
@@ -3136,6 +3314,7 @@ public enum CIFileStatus: Decodable, Equatable {
|
|||||||
case rcvInvitation
|
case rcvInvitation
|
||||||
case rcvAccepted
|
case rcvAccepted
|
||||||
case rcvTransfer(rcvProgress: Int64, rcvTotal: Int64)
|
case rcvTransfer(rcvProgress: Int64, rcvTotal: Int64)
|
||||||
|
case rcvAborted
|
||||||
case rcvComplete
|
case rcvComplete
|
||||||
case rcvCancelled
|
case rcvCancelled
|
||||||
case rcvError
|
case rcvError
|
||||||
@@ -3151,6 +3330,7 @@ public enum CIFileStatus: Decodable, Equatable {
|
|||||||
case .rcvInvitation: return "rcvInvitation"
|
case .rcvInvitation: return "rcvInvitation"
|
||||||
case .rcvAccepted: return "rcvAccepted"
|
case .rcvAccepted: return "rcvAccepted"
|
||||||
case let .rcvTransfer(rcvProgress, rcvTotal): return "rcvTransfer \(rcvProgress) \(rcvTotal)"
|
case let .rcvTransfer(rcvProgress, rcvTotal): return "rcvTransfer \(rcvProgress) \(rcvTotal)"
|
||||||
|
case .rcvAborted: return "rcvAborted"
|
||||||
case .rcvComplete: return "rcvComplete"
|
case .rcvComplete: return "rcvComplete"
|
||||||
case .rcvCancelled: return "rcvCancelled"
|
case .rcvCancelled: return "rcvCancelled"
|
||||||
case .rcvError: return "rcvError"
|
case .rcvError: return "rcvError"
|
||||||
@@ -3209,6 +3389,14 @@ public enum MsgContent: Equatable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var isImageOrVideo: Bool {
|
||||||
|
switch self {
|
||||||
|
case .image: true
|
||||||
|
case .video: true
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var cmdString: String {
|
var cmdString: String {
|
||||||
"json \(encodeJSON(self))"
|
"json \(encodeJSON(self))"
|
||||||
}
|
}
|
||||||
@@ -3743,6 +3931,7 @@ public enum ChatItemTTL: Hashable, Identifiable, Comparable {
|
|||||||
public struct ChatItemInfo: Decodable {
|
public struct ChatItemInfo: Decodable {
|
||||||
public var itemVersions: [ChatItemVersion]
|
public var itemVersions: [ChatItemVersion]
|
||||||
public var memberDeliveryStatuses: [MemberDeliveryStatus]?
|
public var memberDeliveryStatuses: [MemberDeliveryStatus]?
|
||||||
|
public var forwardedFromChatItem: AChatItem?
|
||||||
}
|
}
|
||||||
|
|
||||||
public struct ChatItemVersion: Decodable {
|
public struct ChatItemVersion: Decodable {
|
||||||
@@ -3756,4 +3945,5 @@ public struct ChatItemVersion: Decodable {
|
|||||||
public struct MemberDeliveryStatus: Decodable {
|
public struct MemberDeliveryStatus: Decodable {
|
||||||
public var groupMemberId: Int64
|
public var groupMemberId: Int64
|
||||||
public var memberDeliveryStatus: CIStatus
|
public var memberDeliveryStatus: CIStatus
|
||||||
|
public var sentViaProxy: Bool?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,6 +85,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Най-поверително**: не използвайте сървъра за известия SimpleX Chat, периодично проверявайте съобщенията във фонов режим (зависи от това колко често използвате приложението).";
|
"**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Най-поверително**: не използвайте сървъра за известия SimpleX Chat, периодично проверявайте съобщенията във фонов режим (зависи от това колко често използвате приложението).";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Моля, обърнете внимание**: използването на една и съща база данни на две устройства ще наруши декриптирането на съобщенията от вашите връзки като защита на сигурността.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Моля, обърнете внимание**: НЯМА да можете да възстановите или промените паролата, ако я загубите.";
|
"**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Моля, обърнете внимание**: НЯМА да можете да възстановите или промените паролата, ако я загубите.";
|
||||||
|
|
||||||
@@ -94,6 +97,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: Незабавните push известия изискват парола, запазена в Keychain.";
|
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: Незабавните push известия изискват парола, запазена в Keychain.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"**Warning**: the archive will be removed." = "**Внимание**: архивът ще бъде изтрит.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"*bold*" = "\\*удебелен*";
|
"*bold*" = "\\*удебелен*";
|
||||||
|
|
||||||
@@ -136,6 +142,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"%@ connected" = "%@ свързан";
|
"%@ connected" = "%@ свързан";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"%@ downloaded" = "%@ изтеглено";
|
||||||
|
|
||||||
/* notification title */
|
/* notification title */
|
||||||
"%@ is connected!" = "%@ е свързан!";
|
"%@ is connected!" = "%@ е свързан!";
|
||||||
|
|
||||||
@@ -148,6 +157,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"%@ servers" = "%@ сървъри";
|
"%@ servers" = "%@ сървъри";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"%@ uploaded" = "%@ качено";
|
||||||
|
|
||||||
/* notification title */
|
/* notification title */
|
||||||
"%@ wants to connect!" = "%@ иска да се свърже!";
|
"%@ wants to connect!" = "%@ иска да се свърже!";
|
||||||
|
|
||||||
@@ -377,6 +389,9 @@
|
|||||||
/* member role */
|
/* member role */
|
||||||
"admin" = "админ";
|
"admin" = "админ";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"admins" = "администратори";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Admins can block a member for all." = "Администраторите могат да блокират член за всички.";
|
"Admins can block a member for all." = "Администраторите могат да блокират член за всички.";
|
||||||
|
|
||||||
@@ -404,6 +419,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All group members will remain connected." = "Всички членове на групата ще останат свързани.";
|
"All group members will remain connected." = "Всички членове на групата ще останат свързани.";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"all members" = "всички членове";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All messages will be deleted - this cannot be undone!" = "Всички съобщения ще бъдат изтрити - това не може да бъде отменено!";
|
"All messages will be deleted - this cannot be undone!" = "Всички съобщения ще бъдат изтрити - това не може да бъде отменено!";
|
||||||
|
|
||||||
@@ -452,6 +470,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send files and media." = "Позволи изпращане на файлове и медия.";
|
"Allow to send files and media." = "Позволи изпращане на файлове и медия.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Allow to send SimpleX links." = "Разрешаване на изпращане на SimpleX линкове.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send voice messages." = "Позволи изпращане на гласови съобщения.";
|
"Allow to send voice messages." = "Позволи изпращане на гласови съобщения.";
|
||||||
|
|
||||||
@@ -695,6 +716,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Cannot receive file" = "Файлът не може да бъде получен";
|
"Cannot receive file" = "Файлът не може да бъде получен";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Cellular" = "Мобилна мрежа";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Change" = "Промени";
|
"Change" = "Промени";
|
||||||
|
|
||||||
@@ -780,6 +804,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Chinese and Spanish interface" = "Китайски и Испански интерфейс";
|
"Chinese and Spanish interface" = "Китайски и Испански интерфейс";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Choose _Migrate from another device_ on the new device and scan QR code." = "Изберете _Мигриране от друго устройство_ на новото устройство и сканирайте QR кода.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Choose file" = "Избери файл";
|
"Choose file" = "Избери файл";
|
||||||
|
|
||||||
@@ -1386,6 +1413,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Downgrade and open chat" = "Понижи версията и отвори чата";
|
"Downgrade and open chat" = "Понижи версията и отвори чата";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Download" = "Изтегли";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Download failed" = "Неуспешно изтегляне";
|
"Download failed" = "Неуспешно изтегляне";
|
||||||
|
|
||||||
@@ -1461,6 +1491,9 @@
|
|||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled" = "активирано";
|
"enabled" = "активирано";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Enabled for" = "Активирано за";
|
||||||
|
|
||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled for contact" = "активирано за контакт";
|
"enabled for contact" = "активирано за контакт";
|
||||||
|
|
||||||
@@ -1590,9 +1623,6 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error adding member(s)" = "Грешка при добавяне на член(ове)";
|
"Error adding member(s)" = "Грешка при добавяне на член(ове)";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Error allowing contact PQ encryption" = "Грешка при разрешаване на PQ криптиране за контакт";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error changing address" = "Грешка при промяна на адреса";
|
"Error changing address" = "Грешка при промяна на адреса";
|
||||||
|
|
||||||
@@ -1749,7 +1779,7 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error: " = "Грешка: ";
|
"Error: " = "Грешка: ";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* snd error text */
|
||||||
"Error: %@" = "Грешка: %@";
|
"Error: %@" = "Грешка: %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -1818,6 +1848,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media are prohibited in this group." = "Файловете и медията са забранени в тази група.";
|
"Files and media are prohibited in this group." = "Файловете и медията са забранени в тази група.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Files and media not allowed" = "Файлове и медия не са разрешени";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media prohibited!" = "Файловете и медията са забранени!";
|
"Files and media prohibited!" = "Файловете и медията са забранени!";
|
||||||
|
|
||||||
@@ -1857,6 +1890,21 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"For console" = "За конзолата";
|
"For console" = "За конзолата";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Forward" = "Препрати";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forward and save messages" = "Препращане и запазване на съобщения";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"forwarded" = "препратено";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded" = "Препратено";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded from" = "Препратено от";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Found desktop" = "Намерено настолно устройство";
|
"Found desktop" = "Намерено настолно устройство";
|
||||||
|
|
||||||
@@ -1935,6 +1983,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
|
"Group members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Group members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
|
"Group members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
|
||||||
|
|
||||||
@@ -2076,6 +2127,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"In reply to" = "В отговор на";
|
"In reply to" = "В отговор на";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"In-call sounds" = "Звуци по време на разговор";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Incognito" = "Инкогнито";
|
"Incognito" = "Инкогнито";
|
||||||
|
|
||||||
@@ -2421,6 +2475,9 @@
|
|||||||
/* notification */
|
/* notification */
|
||||||
"message received" = "получено съобщение";
|
"message received" = "получено съобщение";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message source remains private." = "Източникът на съобщението остава скрит.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message text" = "Текст на съобщението";
|
"Message text" = "Текст на съобщението";
|
||||||
|
|
||||||
@@ -2436,6 +2493,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Messages from %@ will be shown!" = "Съобщенията от %@ ще бъдат показани!";
|
"Messages from %@ will be shown!" = "Съобщенията от %@ ще бъдат показани!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Съобщенията, файловете и разговорите са защитени чрез **криптиране от край до край** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Съобщенията, файловете и разговорите са защитени чрез **квантово устойчиво e2e криптиране** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Migrate device" = "Мигрирай устройството";
|
"Migrate device" = "Мигрирай устройството";
|
||||||
|
|
||||||
@@ -2499,12 +2562,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"More improvements are coming soon!" = "Очаквайте скоро още подобрения!";
|
"More improvements are coming soon!" = "Очаквайте скоро още подобрения!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"More reliable network connection." = "По-надеждна мрежова връзка.";
|
||||||
|
|
||||||
/* item status description */
|
/* item status description */
|
||||||
"Most likely this connection is deleted." = "Най-вероятно тази връзка е изтрита.";
|
"Most likely this connection is deleted." = "Най-вероятно тази връзка е изтрита.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Most likely this contact has deleted the connection with you." = "Най-вероятно този контакт е изтрил връзката с вас.";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Multiple chat profiles" = "Множество профили за чат";
|
"Multiple chat profiles" = "Множество профили за чат";
|
||||||
|
|
||||||
@@ -2520,6 +2583,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network & servers" = "Мрежа и сървъри";
|
"Network & servers" = "Мрежа и сървъри";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network connection" = "Мрежова връзка";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network management" = "Управление на мрежата";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network settings" = "Мрежови настройки";
|
"Network settings" = "Мрежови настройки";
|
||||||
|
|
||||||
@@ -2598,6 +2667,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No history" = "Няма история";
|
"No history" = "Няма история";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"No network connection" = "Няма мрежова връзка";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No permission to record voice message" = "Няма разрешение за запис на гласово съобщение";
|
"No permission to record voice message" = "Няма разрешение за запис на гласово съобщение";
|
||||||
|
|
||||||
@@ -2744,9 +2816,15 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Or show this code" = "Или покажи този код";
|
"Or show this code" = "Или покажи този код";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Other" = "Други";
|
||||||
|
|
||||||
/* member role */
|
/* member role */
|
||||||
"owner" = "собственик";
|
"owner" = "собственик";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"owners" = "собственици";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Passcode" = "Код за достъп";
|
"Passcode" = "Код за достъп";
|
||||||
|
|
||||||
@@ -2849,9 +2927,6 @@
|
|||||||
/* server test error */
|
/* server test error */
|
||||||
"Possibly, certificate fingerprint in server address is incorrect" = "Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен";
|
"Possibly, certificate fingerprint in server address is incorrect" = "Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Post-quantum E2EE" = "Постквантово E2EE";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Preserve the last message draft, with attachments." = "Запазете последната чернова на съобщението с прикачени файлове.";
|
"Preserve the last message draft, with attachments." = "Запазете последната чернова на съобщението с прикачени файлове.";
|
||||||
|
|
||||||
@@ -2882,6 +2957,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile image" = "Профилно изображение";
|
"Profile image" = "Профилно изображение";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Profile images" = "Профилни изображения";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile name" = "Име на профила";
|
"Profile name" = "Име на профила";
|
||||||
|
|
||||||
@@ -2915,6 +2993,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending files and media." = "Забрани изпращането на файлове и медия.";
|
"Prohibit sending files and media." = "Забрани изпращането на файлове и медия.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Prohibit sending SimpleX links." = "Забранете изпращането на SimpleX линкове.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending voice messages." = "Забрани изпращането на гласови съобщения.";
|
"Prohibit sending voice messages." = "Забрани изпращането на гласови съобщения.";
|
||||||
|
|
||||||
@@ -3002,6 +3083,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Скорошна история и подобрен [bot за директория за групи](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPd jdLW3%23%2F%3Fv%3D1-2% 26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
|
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Скорошна история и подобрен [bot за директория за групи](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPd jdLW3%23%2F%3Fv%3D1-2% 26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Recipient(s) can't see who this message is from." = "Получателят(ите) не могат да видят от кого е това съобщение.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recipients see updates as you type them." = "Получателите виждат актуализации, докато ги въвеждате.";
|
"Recipients see updates as you type them." = "Получателите виждат актуализации, докато ги въвеждате.";
|
||||||
|
|
||||||
@@ -3197,6 +3281,18 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Save welcome message?" = "Запази съобщението при посрещане?";
|
"Save welcome message?" = "Запази съобщението при посрещане?";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved" = "запазено";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved" = "Запазено";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved from" = "Запазено от";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved from %@" = "запазено от %@";
|
||||||
|
|
||||||
/* message info title */
|
/* message info title */
|
||||||
"Saved message" = "Запазено съобщение";
|
"Saved message" = "Запазено съобщение";
|
||||||
|
|
||||||
@@ -3404,6 +3500,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Settings" = "Настройки";
|
"Settings" = "Настройки";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Shape profile images" = "Променете формата на профилните изображения";
|
||||||
|
|
||||||
/* chat item action */
|
/* chat item action */
|
||||||
"Share" = "Сподели";
|
"Share" = "Сподели";
|
||||||
|
|
||||||
@@ -3461,9 +3560,15 @@
|
|||||||
/* simplex link type */
|
/* simplex link type */
|
||||||
"SimpleX group link" = "SimpleX групов линк";
|
"SimpleX group link" = "SimpleX групов линк";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* chat feature */
|
||||||
"SimpleX links" = "SimpleX линкове";
|
"SimpleX links" = "SimpleX линкове";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links are prohibited in this group." = "SimpleX линкове са забранени в тази група.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links not allowed" = "SimpleX линковете не са разрешени";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"SimpleX Lock" = "SimpleX заключване";
|
"SimpleX Lock" = "SimpleX заключване";
|
||||||
|
|
||||||
@@ -3500,6 +3605,9 @@
|
|||||||
/* notification title */
|
/* notification title */
|
||||||
"Somebody" = "Някой";
|
"Somebody" = "Някой";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Square, circle, or anything in between." = "Квадрат, кръг или нещо между тях.";
|
||||||
|
|
||||||
/* chat item text */
|
/* chat item text */
|
||||||
"standard end-to-end encryption" = "стандартно криптиране от край до край";
|
"standard end-to-end encryption" = "стандартно криптиране от край до край";
|
||||||
|
|
||||||
@@ -3806,9 +3914,6 @@
|
|||||||
/* rcv group event chat item */
|
/* rcv group event chat item */
|
||||||
"unblocked %@" = "отблокиран %@";
|
"unblocked %@" = "отблокиран %@";
|
||||||
|
|
||||||
/* item status description */
|
|
||||||
"Unexpected error: %@" = "Неочаквана грешка: %@";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unexpected migration state" = "Неочаквано състояние на миграция";
|
"Unexpected migration state" = "Неочаквано състояние на миграция";
|
||||||
|
|
||||||
@@ -4028,6 +4133,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages are prohibited in this group." = "Гласовите съобщения са забранени в тази група.";
|
"Voice messages are prohibited in this group." = "Гласовите съобщения са забранени в тази група.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Voice messages not allowed" = "Гласовите съобщения не са разрешени";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages prohibited!" = "Гласовите съобщения са забранени!";
|
"Voice messages prohibited!" = "Гласовите съобщения са забранени!";
|
||||||
|
|
||||||
@@ -4079,12 +4187,24 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When available" = "Когато са налични";
|
"When available" = "Когато са налични";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"When connecting audio and video calls." = "При свързване на аудио и видео разговори.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When people request to connect, you can accept or reject it." = "Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите.";
|
"When people request to connect, you can accept or reject it." = "Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Когато споделяте инкогнито профил с някого, този профил ще се използва за групите, в които той ви кани.";
|
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Когато споделяте инкогнито профил с някого, този профил ще се използва за групите, в които той ви кани.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"WiFi" = "WiFi";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Will be enabled in direct chats!" = "Ще бъде активирано в личните чатове!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Wired ethernet" = "Кабелен Ethernet";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"With encrypted files and media." = "С криптирани файлове и медия.";
|
"With encrypted files and media." = "С криптирани файлове и медия.";
|
||||||
|
|
||||||
@@ -4106,9 +4226,15 @@
|
|||||||
/* pref value */
|
/* pref value */
|
||||||
"yes" = "да";
|
"yes" = "да";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"you" = "вие";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"You" = "Вие";
|
"You" = "Вие";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"You **must not** use the same database on two devices." = "**Не трябва** да използвате една и съща база данни на две устройства.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"You accepted connection" = "Вие приехте връзката";
|
"You accepted connection" = "Вие приехте връзката";
|
||||||
|
|
||||||
|
|||||||
@@ -1461,7 +1461,7 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error: " = "Chyba: ";
|
"Error: " = "Chyba: ";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* snd error text */
|
||||||
"Error: %@" = "Chyba: %@";
|
"Error: %@" = "Chyba: %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -2082,9 +2082,6 @@
|
|||||||
/* item status description */
|
/* item status description */
|
||||||
"Most likely this connection is deleted." = "Pravděpodobně je toto spojení smazáno.";
|
"Most likely this connection is deleted." = "Pravděpodobně je toto spojení smazáno.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Most likely this contact has deleted the connection with you." = "Tento kontakt s největší pravděpodobností smazal spojení s vámi.";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Multiple chat profiles" = "Více chatovacích profilů";
|
"Multiple chat profiles" = "Více chatovacích profilů";
|
||||||
|
|
||||||
@@ -2903,7 +2900,7 @@
|
|||||||
/* simplex link type */
|
/* simplex link type */
|
||||||
"SimpleX group link" = "Skupinový odkaz SimpleX";
|
"SimpleX group link" = "Skupinový odkaz SimpleX";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* chat feature */
|
||||||
"SimpleX links" = "Odkazy na SimpleX";
|
"SimpleX links" = "Odkazy na SimpleX";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -3179,9 +3176,6 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unable to record voice message" = "Nelze nahrát hlasovou zprávu";
|
"Unable to record voice message" = "Nelze nahrát hlasovou zprávu";
|
||||||
|
|
||||||
/* item status description */
|
|
||||||
"Unexpected error: %@" = "Neočekávaná chyba: %@";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unexpected migration state" = "Neočekávaný stav přenášení";
|
"Unexpected migration state" = "Neočekávaný stav přenášení";
|
||||||
|
|
||||||
|
|||||||
@@ -389,6 +389,9 @@
|
|||||||
/* member role */
|
/* member role */
|
||||||
"admin" = "Admin";
|
"admin" = "Admin";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"admins" = "Administratoren";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Admins can block a member for all." = "Administratoren können ein Gruppenmitglied für Alle blockieren.";
|
"Admins can block a member for all." = "Administratoren können ein Gruppenmitglied für Alle blockieren.";
|
||||||
|
|
||||||
@@ -416,6 +419,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All group members will remain connected." = "Alle Gruppenmitglieder bleiben verbunden.";
|
"All group members will remain connected." = "Alle Gruppenmitglieder bleiben verbunden.";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"all members" = "Alle Mitglieder";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All messages will be deleted - this cannot be undone!" = "Es werden alle Nachrichten gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden!";
|
"All messages will be deleted - this cannot be undone!" = "Es werden alle Nachrichten gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden!";
|
||||||
|
|
||||||
@@ -432,7 +438,7 @@
|
|||||||
"All your contacts will remain connected. Profile update will be sent to your contacts." = "Alle Ihre Kontakte bleiben verbunden. Es wird eine Profilaktualisierung an Ihre Kontakte gesendet.";
|
"All your contacts will remain connected. Profile update will be sent to your contacts." = "Alle Ihre Kontakte bleiben verbunden. Es wird eine Profilaktualisierung an Ihre Kontakte gesendet.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Alle Ihre Kontakte, Unterhaltungen und Dateien werden sicher verschlüsselt und in Daten-Paketen auf die konfigurierten XTFP-Server hochgeladen.";
|
"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Alle Ihre Kontakte, Unterhaltungen und Dateien werden sicher verschlüsselt und in Daten-Paketen auf die konfigurierten XTFP-Relais hochgeladen.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow" = "Erlauben";
|
"Allow" = "Erlauben";
|
||||||
@@ -443,6 +449,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow disappearing messages only if your contact allows it to you." = "Erlauben Sie verschwindende Nachrichten nur dann, wenn es Ihr Kontakt ebenfalls erlaubt.";
|
"Allow disappearing messages only if your contact allows it to you." = "Erlauben Sie verschwindende Nachrichten nur dann, wenn es Ihr Kontakt ebenfalls erlaubt.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Allow downgrade" = "Herabstufung erlauben";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Erlauben Sie das unwiederbringliche Löschen von Nachrichten nur dann, wenn es Ihnen Ihr Kontakt ebenfalls erlaubt. (24 Stunden)";
|
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Erlauben Sie das unwiederbringliche Löschen von Nachrichten nur dann, wenn es Ihnen Ihr Kontakt ebenfalls erlaubt. (24 Stunden)";
|
||||||
|
|
||||||
@@ -464,6 +473,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send files and media." = "Das Senden von Dateien und Medien erlauben.";
|
"Allow to send files and media." = "Das Senden von Dateien und Medien erlauben.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Allow to send SimpleX links." = "Das Senden von SimpleX-Links erlauben.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send voice messages." = "Das Senden von Sprachnachrichten erlauben.";
|
"Allow to send voice messages." = "Das Senden von Sprachnachrichten erlauben.";
|
||||||
|
|
||||||
@@ -500,6 +512,9 @@
|
|||||||
/* pref value */
|
/* pref value */
|
||||||
"always" = "Immer";
|
"always" = "Immer";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Always use private routing." = "Sie nutzen immer privates Routing.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Always use relay" = "Über ein Relais verbinden";
|
"Always use relay" = "Über ein Relais verbinden";
|
||||||
|
|
||||||
@@ -707,6 +722,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Cannot receive file" = "Datei kann nicht empfangen werden";
|
"Cannot receive file" = "Datei kann nicht empfangen werden";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Capacity exceeded - recipient did not receive previously sent messages." = "Kapazität überschritten - der Empfänger hat die zuvor gesendeten Nachrichten nicht empfangen.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Cellular" = "Zellulär";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Change" = "Ändern";
|
"Change" = "Ändern";
|
||||||
|
|
||||||
@@ -840,6 +861,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Confirm database upgrades" = "Datenbank-Aktualisierungen bestätigen";
|
"Confirm database upgrades" = "Datenbank-Aktualisierungen bestätigen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Confirm files from unknown servers." = "Dateien von unbekannten Servern bestätigen.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Confirm network settings" = "Bestätigen Sie die Netzwerkeinstellungen";
|
"Confirm network settings" = "Bestätigen Sie die Netzwerkeinstellungen";
|
||||||
|
|
||||||
@@ -1308,6 +1332,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Desktop devices" = "Desktop-Geräte";
|
"Desktop devices" = "Desktop-Geräte";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Destination server error: %@" = "Zielserver-Fehler: %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Develop" = "Entwicklung";
|
"Develop" = "Entwicklung";
|
||||||
|
|
||||||
@@ -1387,7 +1414,13 @@
|
|||||||
"Do not send history to new members." = "Den Nachrichtenverlauf nicht an neue Mitglieder senden.";
|
"Do not send history to new members." = "Den Nachrichtenverlauf nicht an neue Mitglieder senden.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Do NOT use SimpleX for emergency calls." = "Nutzen Sie SimpleX nicht für Notrufe.";
|
"Do NOT send messages directly, even if your or destination server does not support private routing." = "Nachrichten werden nicht direkt versendet, selbst wenn Ihr oder der Zielserver kein privates Routing unterstützt.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Do NOT use private routing." = "Sie nutzen KEIN privates Routing.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Do NOT use SimpleX for emergency calls." = "SimpleX NICHT für Notrufe nutzen.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Don't create address" = "Keine Adresse erstellt";
|
"Don't create address" = "Keine Adresse erstellt";
|
||||||
@@ -1401,6 +1434,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Downgrade and open chat" = "Datenbank herabstufen und den Chat öffnen";
|
"Downgrade and open chat" = "Datenbank herabstufen und den Chat öffnen";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Download" = "Herunterladen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Download failed" = "Herunterladen fehlgeschlagen";
|
"Download failed" = "Herunterladen fehlgeschlagen";
|
||||||
|
|
||||||
@@ -1476,6 +1512,9 @@
|
|||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled" = "Aktiviert";
|
"enabled" = "Aktiviert";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Enabled for" = "Aktiviert für";
|
||||||
|
|
||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled for contact" = "Für Kontakt aktiviert";
|
"enabled for contact" = "Für Kontakt aktiviert";
|
||||||
|
|
||||||
@@ -1605,9 +1644,6 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error adding member(s)" = "Fehler beim Hinzufügen von Mitgliedern";
|
"Error adding member(s)" = "Fehler beim Hinzufügen von Mitgliedern";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Error allowing contact PQ encryption" = "Fehler beim Zulassen der Kontakt-PQ-Verschlüsselung";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error changing address" = "Fehler beim Wechseln der Empfängeradresse";
|
"Error changing address" = "Fehler beim Wechseln der Empfängeradresse";
|
||||||
|
|
||||||
@@ -1764,7 +1800,7 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error: " = "Fehler: ";
|
"Error: " = "Fehler: ";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* snd error text */
|
||||||
"Error: %@" = "Fehler: %@";
|
"Error: %@" = "Fehler: %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -1824,6 +1860,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"File: %@" = "Datei: %@";
|
"File: %@" = "Datei: %@";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Files" = "Dateien";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files & media" = "Dateien & Medien";
|
"Files & media" = "Dateien & Medien";
|
||||||
|
|
||||||
@@ -1833,6 +1872,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media are prohibited in this group." = "In dieser Gruppe sind Dateien und Medien nicht erlaubt.";
|
"Files and media are prohibited in this group." = "In dieser Gruppe sind Dateien und Medien nicht erlaubt.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Files and media not allowed" = "Dateien und Medien sind nicht erlaubt";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media prohibited!" = "Dateien und Medien sind nicht erlaubt!";
|
"Files and media prohibited!" = "Dateien und Medien sind nicht erlaubt!";
|
||||||
|
|
||||||
@@ -1872,6 +1914,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"For console" = "Für Konsole";
|
"For console" = "Für Konsole";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Forward" = "Weiterleiten";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forward and save messages" = "Nachrichten weiterleiten und speichern";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"forwarded" = "weitergeleitet";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded" = "Weitergeleitet";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded from" = "Weitergeleitet aus";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Forwarding server: %@\nDestination server error: %@" = "Weiterleitungsserver: %1$@\nZielserver Fehler: %2$@";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Forwarding server: %@\nError: %@" = "Weiterleitungsserver: %1$@\nFehler: %2$@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Found desktop" = "Gefundener Desktop";
|
"Found desktop" = "Gefundener Desktop";
|
||||||
|
|
||||||
@@ -1950,6 +2013,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden.";
|
"Group members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Group members can send SimpleX links." = "Gruppenmitglieder können SimpleX-Links senden.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden.";
|
"Group members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden.";
|
||||||
|
|
||||||
@@ -2091,6 +2157,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"In reply to" = "Als Antwort auf";
|
"In reply to" = "Als Antwort auf";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"In-call sounds" = "Klingeltöne";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Incognito" = "Inkognito";
|
"Incognito" = "Inkognito";
|
||||||
|
|
||||||
@@ -2421,6 +2490,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message delivery receipts!" = "Empfangsbestätigungen für Nachrichten!";
|
"Message delivery receipts!" = "Empfangsbestätigungen für Nachrichten!";
|
||||||
|
|
||||||
|
/* item status text */
|
||||||
|
"Message delivery warning" = "Warnung bei der Nachrichtenzustellung";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message draft" = "Nachrichtenentwurf";
|
"Message draft" = "Nachrichtenentwurf";
|
||||||
|
|
||||||
@@ -2436,6 +2508,15 @@
|
|||||||
/* notification */
|
/* notification */
|
||||||
"message received" = "Nachricht empfangen";
|
"message received" = "Nachricht empfangen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message routing fallback" = "Fallback für das Nachrichten-Routing";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message routing mode" = "Modus für das Nachrichten-Routing";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message source remains private." = "Die Nachrichtenquelle bleibt privat.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message text" = "Nachrichtentext";
|
"Message text" = "Nachrichtentext";
|
||||||
|
|
||||||
@@ -2520,12 +2601,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"More improvements are coming soon!" = "Weitere Verbesserungen sind bald verfügbar!";
|
"More improvements are coming soon!" = "Weitere Verbesserungen sind bald verfügbar!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"More reliable network connection." = "Zuverlässigere Netzwerkverbindung.";
|
||||||
|
|
||||||
/* item status description */
|
/* item status description */
|
||||||
"Most likely this connection is deleted." = "Wahrscheinlich ist diese Verbindung gelöscht worden.";
|
"Most likely this connection is deleted." = "Wahrscheinlich ist diese Verbindung gelöscht worden.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Most likely this contact has deleted the connection with you." = "Dieser Kontakt hat sehr wahrscheinlich die Verbindung mit Ihnen gelöscht.";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Multiple chat profiles" = "Mehrere Chat-Profile";
|
"Multiple chat profiles" = "Mehrere Chat-Profile";
|
||||||
|
|
||||||
@@ -2541,6 +2622,15 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network & servers" = "Netzwerk & Server";
|
"Network & servers" = "Netzwerk & Server";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network connection" = "Netzwerkverbindung";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Network issues - message expired after many attempts to send it." = "Netzwerk-Fehler - die Nachricht ist nach vielen Sende-Versuchen abgelaufen.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network management" = "Netzwerk-Verwaltung";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network settings" = "Netzwerkeinstellungen";
|
"Network settings" = "Netzwerkeinstellungen";
|
||||||
|
|
||||||
@@ -2619,6 +2709,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No history" = "Kein Nachrichtenverlauf";
|
"No history" = "Kein Nachrichtenverlauf";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"No network connection" = "Keine Netzwerkverbindung";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No permission to record voice message" = "Keine Berechtigung für das Aufnehmen von Sprachnachrichten";
|
"No permission to record voice message" = "Keine Berechtigung für das Aufnehmen von Sprachnachrichten";
|
||||||
|
|
||||||
@@ -2676,10 +2769,10 @@
|
|||||||
"One-time invitation link" = "Einmal-Einladungslink";
|
"One-time invitation link" = "Einmal-Einladungslink";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Onion hosts will be required for connection. Requires enabling VPN." = "Für die Verbindung werden Onion-Hosts benötigt. Dies erfordert die Aktivierung eines VPNs.";
|
"Onion hosts will be required for connection. Requires enabling VPN." = "Für diese Verbindung werden Onion-Hosts benötigt. Dies erfordert die Aktivierung eines VPNs.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Onion hosts will be used when available. Requires enabling VPN." = "Onion-Hosts werden verwendet, sobald sie verfügbar sind. Dies erfordert die Aktivierung eines VPNs.";
|
"Onion hosts will be used when available. Requires enabling VPN." = "Wenn Onion-Hosts verfügbar sind, werden sie verwendet. Dies erfordert die Aktivierung eines VPNs.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Onion hosts will not be used." = "Onion-Hosts werden nicht verwendet.";
|
"Onion hosts will not be used." = "Onion-Hosts werden nicht verwendet.";
|
||||||
@@ -2765,9 +2858,15 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Or show this code" = "Oder diesen QR-Code anzeigen";
|
"Or show this code" = "Oder diesen QR-Code anzeigen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Other" = "Andere";
|
||||||
|
|
||||||
/* member role */
|
/* member role */
|
||||||
"owner" = "Eigentümer";
|
"owner" = "Eigentümer";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"owners" = "Eigentümer";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Passcode" = "Zugangscode";
|
"Passcode" = "Zugangscode";
|
||||||
|
|
||||||
@@ -2870,9 +2969,6 @@
|
|||||||
/* server test error */
|
/* server test error */
|
||||||
"Possibly, certificate fingerprint in server address is incorrect" = "Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig";
|
"Possibly, certificate fingerprint in server address is incorrect" = "Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Post-quantum E2EE" = "Post-Quantum E2E-Verschlüsselung";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Preserve the last message draft, with attachments." = "Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren.";
|
"Preserve the last message draft, with attachments." = "Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren.";
|
||||||
|
|
||||||
@@ -2894,15 +2990,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Private filenames" = "Neutrale Dateinamen";
|
"Private filenames" = "Neutrale Dateinamen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private message routing" = "Privates Nachrichten-Routing";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private message routing 🚀" = "Privates Nachrichten-Routing 🚀";
|
||||||
|
|
||||||
/* name of notes to self */
|
/* name of notes to self */
|
||||||
"Private notes" = "Private Notizen";
|
"Private notes" = "Private Notizen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private routing" = "Privates Routing";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile and server connections" = "Profil und Serververbindungen";
|
"Profile and server connections" = "Profil und Serververbindungen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile image" = "Profilbild";
|
"Profile image" = "Profilbild";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Profile images" = "Profil-Bilder";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile name" = "Profilname";
|
"Profile name" = "Profilname";
|
||||||
|
|
||||||
@@ -2931,20 +3039,29 @@
|
|||||||
"Prohibit sending direct messages to members." = "Das Senden von Direktnachrichten an Gruppenmitglieder nicht erlauben.";
|
"Prohibit sending direct messages to members." = "Das Senden von Direktnachrichten an Gruppenmitglieder nicht erlauben.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending disappearing messages." = "Das Senden von verschwindenden Nachrichten verbieten.";
|
"Prohibit sending disappearing messages." = "Das Senden von verschwindenden Nachrichten nicht erlauben.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending files and media." = "Das Senden von Dateien und Medien nicht erlauben.";
|
"Prohibit sending files and media." = "Das Senden von Dateien und Medien nicht erlauben.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Prohibit sending SimpleX links." = "Das Senden von SimpleX-Links nicht erlauben.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending voice messages." = "Das Senden von Sprachnachrichten nicht erlauben.";
|
"Prohibit sending voice messages." = "Das Senden von Sprachnachrichten nicht erlauben.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protect app screen" = "App-Bildschirm schützen";
|
"Protect app screen" = "App-Bildschirm schützen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Protect IP address" = "IP-Adresse schützen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protect your chat profiles with a password!" = "Ihre Chat-Profile mit einem Passwort schützen!";
|
"Protect your chat profiles with a password!" = "Ihre Chat-Profile mit einem Passwort schützen!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Schützen Sie Ihre IP-Adresse vor den Nachrichten-Relais , die Ihre Kontakte ausgewählt haben.\nAktivieren Sie es in den *Netzwerk & Server* Einstellungen.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protocol timeout" = "Protokollzeitüberschreitung";
|
"Protocol timeout" = "Protokollzeitüberschreitung";
|
||||||
|
|
||||||
@@ -3023,6 +3140,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Aktueller Nachrichtenverlauf und verbesserter [Gruppenverzeichnis-Bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
|
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Aktueller Nachrichtenverlauf und verbesserter [Gruppenverzeichnis-Bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Recipient(s) can't see who this message is from." = "Empfänger können nicht sehen, von wem die Nachricht stammt.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recipients see updates as you type them." = "Die Empfänger sehen Nachrichtenaktualisierungen, während Sie sie eingeben.";
|
"Recipients see updates as you type them." = "Die Empfänger sehen Nachrichtenaktualisierungen, während Sie sie eingeben.";
|
||||||
|
|
||||||
@@ -3167,6 +3287,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Run chat" = "Chat starten";
|
"Run chat" = "Chat starten";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Safely receive files" = "Dateien sicher empfangen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Safer groups" = "Sicherere Gruppen";
|
"Safer groups" = "Sicherere Gruppen";
|
||||||
|
|
||||||
@@ -3218,6 +3341,18 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Save welcome message?" = "Begrüßungsmeldung speichern?";
|
"Save welcome message?" = "Begrüßungsmeldung speichern?";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved" = "abgespeichert";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved" = "Abgespeichert";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved from" = "Abgespeichert von";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved from %@" = "abgespeichert von %@";
|
||||||
|
|
||||||
/* message info title */
|
/* message info title */
|
||||||
"Saved message" = "Gespeicherte Nachricht";
|
"Saved message" = "Gespeicherte Nachricht";
|
||||||
|
|
||||||
@@ -3311,6 +3446,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Send live message" = "Live Nachricht senden";
|
"Send live message" = "Live Nachricht senden";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Send messages directly when IP address is protected and your or destination server does not support private routing." = "Nachrichten werden direkt versendet, wenn die IP-Adresse geschützt ist, und Ihr oder der Zielserver kein privates Routing unterstützt.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Send messages directly when your or destination server does not support private routing." = "Nachrichten werden direkt versendet, wenn Ihr oder der Zielserver kein privates Routing unterstützt.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Send notifications" = "Benachrichtigungen senden";
|
"Send notifications" = "Benachrichtigungen senden";
|
||||||
|
|
||||||
@@ -3374,6 +3515,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Sent messages will be deleted after set time." = "Gesendete Nachrichten werden nach der eingestellten Zeit gelöscht.";
|
"Sent messages will be deleted after set time." = "Gesendete Nachrichten werden nach der eingestellten Zeit gelöscht.";
|
||||||
|
|
||||||
|
/* srv error text. */
|
||||||
|
"Server address is incompatible with network settings." = "Die Server-Adresse ist nicht mit den Netzwerk-Einstellungen kompatibel.";
|
||||||
|
|
||||||
/* server test error */
|
/* server test error */
|
||||||
"Server requires authorization to create queues, check password" = "Um Warteschlangen zu erzeugen benötigt der Server eine Authentifizierung. Bitte überprüfen Sie das Passwort";
|
"Server requires authorization to create queues, check password" = "Um Warteschlangen zu erzeugen benötigt der Server eine Authentifizierung. Bitte überprüfen Sie das Passwort";
|
||||||
|
|
||||||
@@ -3383,6 +3527,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Server test failed!" = "Server Test ist fehlgeschlagen!";
|
"Server test failed!" = "Server Test ist fehlgeschlagen!";
|
||||||
|
|
||||||
|
/* srv error text */
|
||||||
|
"Server version is incompatible with network settings." = "Die Server-Version ist nicht mit den Netzwerk-Einstellungen kompatibel.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Servers" = "Server";
|
"Servers" = "Server";
|
||||||
|
|
||||||
@@ -3425,6 +3572,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Settings" = "Einstellungen";
|
"Settings" = "Einstellungen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Shape profile images" = "Form der Profil-Bilder";
|
||||||
|
|
||||||
/* chat item action */
|
/* chat item action */
|
||||||
"Share" = "Teilen";
|
"Share" = "Teilen";
|
||||||
|
|
||||||
@@ -3446,6 +3596,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Share with contacts" = "Mit Kontakten teilen";
|
"Share with contacts" = "Mit Kontakten teilen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Show → on messages sent via private routing." = "Bei Nachrichten, die über privates Routing versendet wurden, → anzeigen.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show calls in phone history" = "Anrufliste anzeigen";
|
"Show calls in phone history" = "Anrufliste anzeigen";
|
||||||
|
|
||||||
@@ -3455,6 +3608,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show last messages" = "Letzte Nachrichten anzeigen";
|
"Show last messages" = "Letzte Nachrichten anzeigen";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Show message status" = "Nachrichtenstatus anzeigen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show preview" = "Vorschau anzeigen";
|
"Show preview" = "Vorschau anzeigen";
|
||||||
|
|
||||||
@@ -3482,9 +3638,15 @@
|
|||||||
/* simplex link type */
|
/* simplex link type */
|
||||||
"SimpleX group link" = "SimpleX Gruppen-Link";
|
"SimpleX group link" = "SimpleX Gruppen-Link";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* chat feature */
|
||||||
"SimpleX links" = "SimpleX-Links";
|
"SimpleX links" = "SimpleX-Links";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links are prohibited in this group." = "In dieser Gruppe sind SimpleX-Links nicht erlaubt.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links not allowed" = "SimpleX-Links sind nicht erlaubt";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"SimpleX Lock" = "SimpleX-Sperre";
|
"SimpleX Lock" = "SimpleX-Sperre";
|
||||||
|
|
||||||
@@ -3521,6 +3683,9 @@
|
|||||||
/* notification title */
|
/* notification title */
|
||||||
"Somebody" = "Jemand";
|
"Somebody" = "Jemand";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Square, circle, or anything in between." = "Quadratisch, kreisförmig oder irgendetwas dazwischen.";
|
||||||
|
|
||||||
/* chat item text */
|
/* chat item text */
|
||||||
"standard end-to-end encryption" = "Standard-Ende-zu-Ende-Verschlüsselung";
|
"standard end-to-end encryption" = "Standard-Ende-zu-Ende-Verschlüsselung";
|
||||||
|
|
||||||
@@ -3653,6 +3818,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "Wenn sie Nachrichten oder Kontaktanfragen empfangen, kann Sie die App benachrichtigen - Um dies zu aktivieren, öffnen Sie bitte die Einstellungen.";
|
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "Wenn sie Nachrichten oder Kontaktanfragen empfangen, kann Sie die App benachrichtigen - Um dies zu aktivieren, öffnen Sie bitte die Einstellungen.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"The app will ask to confirm downloads from unknown file servers (except .onion)." = "Die App wird eine Bestätigung bei Downloads von unbekannten Datei-Servern anfordern (außer bei .onion).";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"The attempt to change database passphrase was not completed." = "Die Änderung des Datenbank-Passworts konnte nicht abgeschlossen werden.";
|
"The attempt to change database passphrase was not completed." = "Die Änderung des Datenbank-Passworts konnte nicht abgeschlossen werden.";
|
||||||
|
|
||||||
@@ -3773,6 +3941,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"To protect your information, turn on SimpleX Lock.\nYou will be prompted to complete authentication before this feature is enabled." = "Um Ihre Informationen zu schützen, schalten Sie die SimpleX-Sperre ein.\nSie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funktion aktiviert wird.";
|
"To protect your information, turn on SimpleX Lock.\nYou will be prompted to complete authentication before this feature is enabled." = "Um Ihre Informationen zu schützen, schalten Sie die SimpleX-Sperre ein.\nSie werden aufgefordert, die Authentifizierung abzuschließen, bevor diese Funktion aktiviert wird.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"To protect your IP address, private routing uses your SMP servers to deliver messages." = "Zum Schutz Ihrer IP-Adresse, wird für die Nachrichten-Auslieferung privates Routing über Ihre konfigurierten SMP-Server genutzt.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"To record voice message please grant permission to use Microphone." = "Bitte erlauben Sie die Nutzung des Mikrofons, um Sprachnachrichten aufnehmen zu können.";
|
"To record voice message please grant permission to use Microphone." = "Bitte erlauben Sie die Nutzung des Mikrofons, um Sprachnachrichten aufnehmen zu können.";
|
||||||
|
|
||||||
@@ -3827,9 +3998,6 @@
|
|||||||
/* rcv group event chat item */
|
/* rcv group event chat item */
|
||||||
"unblocked %@" = "%@ wurde freigegeben";
|
"unblocked %@" = "%@ wurde freigegeben";
|
||||||
|
|
||||||
/* item status description */
|
|
||||||
"Unexpected error: %@" = "Unerwarteter Fehler: %@";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unexpected migration state" = "Unerwarteter Migrationsstatus";
|
"Unexpected migration state" = "Unerwarteter Migrationsstatus";
|
||||||
|
|
||||||
@@ -3860,6 +4028,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unknown error" = "Unbekannter Fehler";
|
"Unknown error" = "Unbekannter Fehler";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"unknown relays" = "Unbekannte Relais";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Unknown servers!" = "Unbekannte Server!";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"unknown status" = "unbekannter Gruppenmitglieds-Status";
|
"unknown status" = "unbekannter Gruppenmitglieds-Status";
|
||||||
|
|
||||||
@@ -3884,6 +4058,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unmute" = "Stummschaltung aufheben";
|
"Unmute" = "Stummschaltung aufheben";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"unprotected" = "Ungeschützt";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unread" = "Ungelesen";
|
"Unread" = "Ungelesen";
|
||||||
|
|
||||||
@@ -3936,7 +4113,7 @@
|
|||||||
"Use chat" = "Verwenden Sie Chat";
|
"Use chat" = "Verwenden Sie Chat";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use current profile" = "Nutzen Sie das aktuelle Profil";
|
"Use current profile" = "Aktuelles Profil nutzen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use for new connections" = "Für neue Verbindungen nutzen";
|
"Use for new connections" = "Für neue Verbindungen nutzen";
|
||||||
@@ -3948,11 +4125,17 @@
|
|||||||
"Use iOS call interface" = "iOS Anrufschnittstelle nutzen";
|
"Use iOS call interface" = "iOS Anrufschnittstelle nutzen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use new incognito profile" = "Nutzen Sie das neue Inkognito-Profil";
|
"Use new incognito profile" = "Neues Inkognito-Profil nutzen";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use only local notifications?" = "Nur lokale Benachrichtigungen nutzen?";
|
"Use only local notifications?" = "Nur lokale Benachrichtigungen nutzen?";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Use private routing with unknown servers when IP address is not protected." = "Sie nutzen privates Routing mit unbekannten Servern, wenn Ihre IP-Adresse nicht geschützt ist.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Use private routing with unknown servers." = "Sie nutzen privates Routing mit unbekannten Servern.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use server" = "Server nutzen";
|
"Use server" = "Server nutzen";
|
||||||
|
|
||||||
@@ -4049,6 +4232,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages are prohibited in this group." = "In dieser Gruppe sind Sprachnachrichten nicht erlaubt.";
|
"Voice messages are prohibited in this group." = "In dieser Gruppe sind Sprachnachrichten nicht erlaubt.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Voice messages not allowed" = "Sprachnachrichten sind nicht erlaubt";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages prohibited!" = "Sprachnachrichten sind nicht erlaubt!";
|
"Voice messages prohibited!" = "Sprachnachrichten sind nicht erlaubt!";
|
||||||
|
|
||||||
@@ -4100,12 +4286,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When available" = "Wenn verfügbar";
|
"When available" = "Wenn verfügbar";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"When connecting audio and video calls." = "Bei der Verbindung über Audio- und Video-Anrufe.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"when IP hidden" = "Wenn die IP-Adresse versteckt ist";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When people request to connect, you can accept or reject it." = "Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen.";
|
"When people request to connect, you can accept or reject it." = "Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Wenn Sie ein Inkognito-Profil mit Jemandem teilen, wird dieses Profil auch für die Gruppen verwendet, für die Sie von diesem Kontakt eingeladen werden.";
|
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Wenn Sie ein Inkognito-Profil mit Jemandem teilen, wird dieses Profil auch für die Gruppen verwendet, für die Sie von diesem Kontakt eingeladen werden.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"WiFi" = "WiFi";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Will be enabled in direct chats!" = "Wird in direkten Chats automatisch aktiviert!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Wired ethernet" = "Kabelgebundenes Netzwerk";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"With encrypted files and media." = "Mit verschlüsselten Dateien und Medien.";
|
"With encrypted files and media." = "Mit verschlüsselten Dateien und Medien.";
|
||||||
|
|
||||||
@@ -4115,9 +4316,18 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"With reduced battery usage." = "Mit reduziertem Akkuverbrauch.";
|
"With reduced battery usage." = "Mit reduziertem Akkuverbrauch.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Without Tor or VPN, your IP address will be visible to file servers." = "Ohne Tor- oder VPN-Nutzung wird Ihre IP-Adresse für Datei-Server sichtbar sein.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." = "Ohne Tor- oder VPN-Nutzung wird Ihre IP-Adresse für diese XFTP-Relais sichtbar sein: %@.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Wrong database passphrase" = "Falsches Datenbank-Passwort";
|
"Wrong database passphrase" = "Falsches Datenbank-Passwort";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Wrong key or unknown connection - most likely this connection is deleted." = "Falscher Schlüssel oder unbekannte Verbindung - höchstwahrscheinlich ist diese Verbindung gelöscht worden.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Wrong passphrase!" = "Falsches Passwort!";
|
"Wrong passphrase!" = "Falsches Passwort!";
|
||||||
|
|
||||||
@@ -4127,6 +4337,9 @@
|
|||||||
/* pref value */
|
/* pref value */
|
||||||
"yes" = "Ja";
|
"yes" = "Ja";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"you" = "Profil";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"You" = "Profil";
|
"You" = "Profil";
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1434,7 +1434,7 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error: " = "Virhe: ";
|
"Error: " = "Virhe: ";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* snd error text */
|
||||||
"Error: %@" = "Virhe: %@";
|
"Error: %@" = "Virhe: %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -2058,9 +2058,6 @@
|
|||||||
/* item status description */
|
/* item status description */
|
||||||
"Most likely this connection is deleted." = "Todennäköisesti tämä yhteys on poistettu.";
|
"Most likely this connection is deleted." = "Todennäköisesti tämä yhteys on poistettu.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Most likely this contact has deleted the connection with you." = "Todennäköisesti tämä kontakti on poistanut yhteyden sinuun.";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Multiple chat profiles" = "Useita keskusteluprofiileja";
|
"Multiple chat profiles" = "Useita keskusteluprofiileja";
|
||||||
|
|
||||||
@@ -2867,7 +2864,7 @@
|
|||||||
/* simplex link type */
|
/* simplex link type */
|
||||||
"SimpleX group link" = "SimpleX-ryhmän linkki";
|
"SimpleX group link" = "SimpleX-ryhmän linkki";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* chat feature */
|
||||||
"SimpleX links" = "SimpleX-linkit";
|
"SimpleX links" = "SimpleX-linkit";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -3137,9 +3134,6 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unable to record voice message" = "Ääniviestiä ei voi tallentaa";
|
"Unable to record voice message" = "Ääniviestiä ei voi tallentaa";
|
||||||
|
|
||||||
/* item status description */
|
|
||||||
"Unexpected error: %@" = "Odottamaton virhe: %@";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unexpected migration state" = "Odottamaton siirtotila";
|
"Unexpected migration state" = "Odottamaton siirtotila";
|
||||||
|
|
||||||
|
|||||||
@@ -389,6 +389,9 @@
|
|||||||
/* member role */
|
/* member role */
|
||||||
"admin" = "admin";
|
"admin" = "admin";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"admins" = "admins";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Admins can block a member for all." = "Les admins peuvent bloquer un membre pour tous.";
|
"Admins can block a member for all." = "Les admins peuvent bloquer un membre pour tous.";
|
||||||
|
|
||||||
@@ -416,6 +419,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All group members will remain connected." = "Tous les membres du groupe resteront connectés.";
|
"All group members will remain connected." = "Tous les membres du groupe resteront connectés.";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"all members" = "tous les membres";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All messages will be deleted - this cannot be undone!" = "Tous les messages seront supprimés - il n'est pas possible de revenir en arrière !";
|
"All messages will be deleted - this cannot be undone!" = "Tous les messages seront supprimés - il n'est pas possible de revenir en arrière !";
|
||||||
|
|
||||||
@@ -443,6 +449,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow disappearing messages only if your contact allows it to you." = "Autorise les messages éphémères seulement si votre contact vous l’autorise.";
|
"Allow disappearing messages only if your contact allows it to you." = "Autorise les messages éphémères seulement si votre contact vous l’autorise.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Allow downgrade" = "Autoriser la rétrogradation";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Autoriser la suppression irréversible des messages uniquement si votre contact vous l'autorise. (24 heures)";
|
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Autoriser la suppression irréversible des messages uniquement si votre contact vous l'autorise. (24 heures)";
|
||||||
|
|
||||||
@@ -464,6 +473,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send files and media." = "Permet l'envoi de fichiers et de médias.";
|
"Allow to send files and media." = "Permet l'envoi de fichiers et de médias.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Allow to send SimpleX links." = "Autorise l'envoi de liens SimpleX.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send voice messages." = "Autoriser l'envoi de messages vocaux.";
|
"Allow to send voice messages." = "Autoriser l'envoi de messages vocaux.";
|
||||||
|
|
||||||
@@ -500,6 +512,9 @@
|
|||||||
/* pref value */
|
/* pref value */
|
||||||
"always" = "toujours";
|
"always" = "toujours";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Always use private routing." = "Toujours utiliser le routage privé.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Always use relay" = "Se connecter via relais";
|
"Always use relay" = "Se connecter via relais";
|
||||||
|
|
||||||
@@ -707,6 +722,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Cannot receive file" = "Impossible de recevoir le fichier";
|
"Cannot receive file" = "Impossible de recevoir le fichier";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Capacity exceeded - recipient did not receive previously sent messages." = "Capacité dépassée - le destinataire n'a pas pu recevoir les messages envoyés précédemment.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Cellular" = "Cellulaire";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Change" = "Changer";
|
"Change" = "Changer";
|
||||||
|
|
||||||
@@ -840,6 +861,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Confirm database upgrades" = "Confirmer la mise à niveau de la base de données";
|
"Confirm database upgrades" = "Confirmer la mise à niveau de la base de données";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Confirm files from unknown servers." = "Confirmer les fichiers provenant de serveurs inconnus.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Confirm network settings" = "Confirmer les paramètres réseau";
|
"Confirm network settings" = "Confirmer les paramètres réseau";
|
||||||
|
|
||||||
@@ -1294,7 +1318,7 @@
|
|||||||
"Delivery receipts are disabled!" = "Les accusés de réception sont désactivés !";
|
"Delivery receipts are disabled!" = "Les accusés de réception sont désactivés !";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Delivery receipts!" = "Justificatifs de réception!";
|
"Delivery receipts!" = "Justificatifs de réception !";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Description" = "Description";
|
"Description" = "Description";
|
||||||
@@ -1308,6 +1332,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Desktop devices" = "Appareils de bureau";
|
"Desktop devices" = "Appareils de bureau";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Destination server error: %@" = "Erreur du serveur de destination : %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Develop" = "Développer";
|
"Develop" = "Développer";
|
||||||
|
|
||||||
@@ -1386,6 +1413,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Do not send history to new members." = "Ne pas envoyer d'historique aux nouveaux membres.";
|
"Do not send history to new members." = "Ne pas envoyer d'historique aux nouveaux membres.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Do NOT send messages directly, even if your or destination server does not support private routing." = "Ne pas envoyer de messages directement, même si votre serveur ou le serveur de destination ne prend pas en charge le routage privé.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Do NOT use private routing." = "Ne pas utiliser de routage privé.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Do NOT use SimpleX for emergency calls." = "N'utilisez PAS SimpleX pour les appels d'urgence.";
|
"Do NOT use SimpleX for emergency calls." = "N'utilisez PAS SimpleX pour les appels d'urgence.";
|
||||||
|
|
||||||
@@ -1401,6 +1434,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Downgrade and open chat" = "Rétrograder et ouvrir le chat";
|
"Downgrade and open chat" = "Rétrograder et ouvrir le chat";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Download" = "Télécharger";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Download failed" = "Échec du téléchargement";
|
"Download failed" = "Échec du téléchargement";
|
||||||
|
|
||||||
@@ -1476,6 +1512,9 @@
|
|||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled" = "activé";
|
"enabled" = "activé";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Enabled for" = "Activé pour";
|
||||||
|
|
||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled for contact" = "activé pour le contact";
|
"enabled for contact" = "activé pour le contact";
|
||||||
|
|
||||||
@@ -1605,9 +1644,6 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error adding member(s)" = "Erreur lors de l'ajout de membre·s";
|
"Error adding member(s)" = "Erreur lors de l'ajout de membre·s";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Error allowing contact PQ encryption" = "Erreur lors de la négociation du chiffrement PQ";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error changing address" = "Erreur de changement d'adresse";
|
"Error changing address" = "Erreur de changement d'adresse";
|
||||||
|
|
||||||
@@ -1764,7 +1800,7 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error: " = "Erreur : ";
|
"Error: " = "Erreur : ";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* snd error text */
|
||||||
"Error: %@" = "Erreur : %@";
|
"Error: %@" = "Erreur : %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -1824,6 +1860,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"File: %@" = "Fichier : %@";
|
"File: %@" = "Fichier : %@";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Files" = "Fichiers";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files & media" = "Fichiers & médias";
|
"Files & media" = "Fichiers & médias";
|
||||||
|
|
||||||
@@ -1833,6 +1872,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media are prohibited in this group." = "Les fichiers et les médias sont interdits dans ce groupe.";
|
"Files and media are prohibited in this group." = "Les fichiers et les médias sont interdits dans ce groupe.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Files and media not allowed" = "Fichiers et médias non autorisés";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media prohibited!" = "Fichiers et médias interdits !";
|
"Files and media prohibited!" = "Fichiers et médias interdits !";
|
||||||
|
|
||||||
@@ -1858,7 +1900,7 @@
|
|||||||
"Fix connection" = "Réparer la connexion";
|
"Fix connection" = "Réparer la connexion";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Fix connection?" = "Réparer la connexion?";
|
"Fix connection?" = "Réparer la connexion ?";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Fix encryption after restoring backups." = "Réparer le chiffrement après la restauration des sauvegardes.";
|
"Fix encryption after restoring backups." = "Réparer le chiffrement après la restauration des sauvegardes.";
|
||||||
@@ -1872,6 +1914,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"For console" = "Pour la console";
|
"For console" = "Pour la console";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Forward" = "Transférer";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forward and save messages" = "Transférer et sauvegarder des messages";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"forwarded" = "transféré";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded" = "Transféré";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded from" = "Transféré depuis";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Forwarding server: %@\nDestination server error: %@" = "Serveur de transfert : %1$@\nErreur du serveur de destination : %2$@";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Forwarding server: %@\nError: %@" = "Serveur de transfert : %1$@\nErreur : %2$@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Found desktop" = "Bureau trouvé";
|
"Found desktop" = "Bureau trouvé";
|
||||||
|
|
||||||
@@ -1950,6 +2013,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
|
"Group members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Group members can send SimpleX links." = "Les membres du groupe peuvent envoyer des liens SimpleX.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
|
"Group members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
|
||||||
|
|
||||||
@@ -2091,6 +2157,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"In reply to" = "En réponse à";
|
"In reply to" = "En réponse à";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"In-call sounds" = "Sons d'appel";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Incognito" = "Incognito";
|
"Incognito" = "Incognito";
|
||||||
|
|
||||||
@@ -2421,6 +2490,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message delivery receipts!" = "Accusés de réception des messages !";
|
"Message delivery receipts!" = "Accusés de réception des messages !";
|
||||||
|
|
||||||
|
/* item status text */
|
||||||
|
"Message delivery warning" = "Avertissement sur la distribution des messages";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message draft" = "Brouillon de message";
|
"Message draft" = "Brouillon de message";
|
||||||
|
|
||||||
@@ -2436,6 +2508,15 @@
|
|||||||
/* notification */
|
/* notification */
|
||||||
"message received" = "message reçu";
|
"message received" = "message reçu";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message routing fallback" = "Rabattement du routage des messages";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message routing mode" = "Mode de routage des messages";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message source remains private." = "La source du message reste privée.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message text" = "Texte du message";
|
"Message text" = "Texte du message";
|
||||||
|
|
||||||
@@ -2520,12 +2601,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"More improvements are coming soon!" = "Plus d'améliorations à venir !";
|
"More improvements are coming soon!" = "Plus d'améliorations à venir !";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"More reliable network connection." = "Connexion réseau plus fiable.";
|
||||||
|
|
||||||
/* item status description */
|
/* item status description */
|
||||||
"Most likely this connection is deleted." = "Connexion probablement supprimée.";
|
"Most likely this connection is deleted." = "Connexion probablement supprimée.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Most likely this contact has deleted the connection with you." = "Il est fort probable que ce contact ait supprimé la connexion avec vous.";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Multiple chat profiles" = "Différents profils de chat";
|
"Multiple chat profiles" = "Différents profils de chat";
|
||||||
|
|
||||||
@@ -2541,6 +2622,15 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network & servers" = "Réseau et serveurs";
|
"Network & servers" = "Réseau et serveurs";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network connection" = "Connexion au réseau";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Network issues - message expired after many attempts to send it." = "Problèmes de réseau - le message a expiré après plusieurs tentatives d'envoi.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network management" = "Gestion du réseau";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network settings" = "Paramètres réseau";
|
"Network settings" = "Paramètres réseau";
|
||||||
|
|
||||||
@@ -2619,6 +2709,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No history" = "Aucun historique";
|
"No history" = "Aucun historique";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"No network connection" = "Pas de connexion au réseau";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No permission to record voice message" = "Pas l'autorisation d'enregistrer un message vocal";
|
"No permission to record voice message" = "Pas l'autorisation d'enregistrer un message vocal";
|
||||||
|
|
||||||
@@ -2765,9 +2858,15 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Or show this code" = "Ou présenter ce code";
|
"Or show this code" = "Ou présenter ce code";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Other" = "Autres";
|
||||||
|
|
||||||
/* member role */
|
/* member role */
|
||||||
"owner" = "propriétaire";
|
"owner" = "propriétaire";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"owners" = "propriétaires";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Passcode" = "Code d'accès";
|
"Passcode" = "Code d'accès";
|
||||||
|
|
||||||
@@ -2870,9 +2969,6 @@
|
|||||||
/* server test error */
|
/* server test error */
|
||||||
"Possibly, certificate fingerprint in server address is incorrect" = "Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte";
|
"Possibly, certificate fingerprint in server address is incorrect" = "Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Post-quantum E2EE" = "E2EE post-quantique";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Preserve the last message draft, with attachments." = "Conserver le brouillon du dernier message, avec les pièces jointes.";
|
"Preserve the last message draft, with attachments." = "Conserver le brouillon du dernier message, avec les pièces jointes.";
|
||||||
|
|
||||||
@@ -2894,15 +2990,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Private filenames" = "Noms de fichiers privés";
|
"Private filenames" = "Noms de fichiers privés";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private message routing" = "Routage privé des messages";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private message routing 🚀" = "Routage privé des messages 🚀";
|
||||||
|
|
||||||
/* name of notes to self */
|
/* name of notes to self */
|
||||||
"Private notes" = "Notes privées";
|
"Private notes" = "Notes privées";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private routing" = "Routage privé";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile and server connections" = "Profil et connexions au serveur";
|
"Profile and server connections" = "Profil et connexions au serveur";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile image" = "Image de profil";
|
"Profile image" = "Image de profil";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Profile images" = "Images de profil";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile name" = "Nom du profil";
|
"Profile name" = "Nom du profil";
|
||||||
|
|
||||||
@@ -2936,15 +3044,24 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending files and media." = "Interdire l'envoi de fichiers et de médias.";
|
"Prohibit sending files and media." = "Interdire l'envoi de fichiers et de médias.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Prohibit sending SimpleX links." = "Interdire l'envoi de liens SimpleX.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending voice messages." = "Interdire l'envoi de messages vocaux.";
|
"Prohibit sending voice messages." = "Interdire l'envoi de messages vocaux.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protect app screen" = "Protéger l'écran de l'app";
|
"Protect app screen" = "Protéger l'écran de l'app";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Protect IP address" = "Protéger l'adresse IP";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protect your chat profiles with a password!" = "Protégez vos profils de chat par un mot de passe !";
|
"Protect your chat profiles with a password!" = "Protégez vos profils de chat par un mot de passe !";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Protégez votre adresse IP des relais de messagerie choisis par vos contacts.\nActivez-le dans les paramètres *Réseau et serveurs*.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protocol timeout" = "Délai du protocole";
|
"Protocol timeout" = "Délai du protocole";
|
||||||
|
|
||||||
@@ -3023,6 +3140,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Historique récent et amélioration du [bot annuaire](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
|
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Historique récent et amélioration du [bot annuaire](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Recipient(s) can't see who this message is from." = "Le(s) destinataire(s) ne peut(vent) pas voir de qui provient ce message.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recipients see updates as you type them." = "Les destinataires voient les mises à jour au fur et à mesure que vous leur écrivez.";
|
"Recipients see updates as you type them." = "Les destinataires voient les mises à jour au fur et à mesure que vous leur écrivez.";
|
||||||
|
|
||||||
@@ -3030,7 +3150,7 @@
|
|||||||
"Reconnect all connected servers to force message delivery. It uses additional traffic." = "Reconnecter tous les serveurs connectés pour forcer la livraison des messages. Cette méthode utilise du trafic supplémentaire.";
|
"Reconnect all connected servers to force message delivery. It uses additional traffic." = "Reconnecter tous les serveurs connectés pour forcer la livraison des messages. Cette méthode utilise du trafic supplémentaire.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Reconnect servers?" = "Reconnecter les serveurs?";
|
"Reconnect servers?" = "Reconnecter les serveurs ?";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Record updated at" = "Enregistrement mis à jour le";
|
"Record updated at" = "Enregistrement mis à jour le";
|
||||||
@@ -3093,7 +3213,7 @@
|
|||||||
"Renegotiate encryption" = "Renégocier le chiffrement";
|
"Renegotiate encryption" = "Renégocier le chiffrement";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Renegotiate encryption?" = "Renégocier le chiffrement?";
|
"Renegotiate encryption?" = "Renégocier le chiffrement ?";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Repeat connection request?" = "Répéter la demande de connexion ?";
|
"Repeat connection request?" = "Répéter la demande de connexion ?";
|
||||||
@@ -3167,6 +3287,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Run chat" = "Exécuter le chat";
|
"Run chat" = "Exécuter le chat";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Safely receive files" = "Réception de fichiers en toute sécurité";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Safer groups" = "Groupes plus sûrs";
|
"Safer groups" = "Groupes plus sûrs";
|
||||||
|
|
||||||
@@ -3218,6 +3341,18 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Save welcome message?" = "Enregistrer le message d'accueil ?";
|
"Save welcome message?" = "Enregistrer le message d'accueil ?";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved" = "enregistré";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved" = "Enregistré";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved from" = "Enregistré depuis";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved from %@" = "enregistré à partir de %@";
|
||||||
|
|
||||||
/* message info title */
|
/* message info title */
|
||||||
"Saved message" = "Message enregistré";
|
"Saved message" = "Message enregistré";
|
||||||
|
|
||||||
@@ -3311,6 +3446,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Send live message" = "Envoyer un message dynamique";
|
"Send live message" = "Envoyer un message dynamique";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Send messages directly when IP address is protected and your or destination server does not support private routing." = "Envoyer les messages de manière directe lorsque l'adresse IP est protégée et que votre serveur ou le serveur de destination ne prend pas en charge le routage privé.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Send messages directly when your or destination server does not support private routing." = "Envoyez les messages de manière directe lorsque votre serveur ou le serveur de destination ne prend pas en charge le routage privé.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Send notifications" = "Envoi de notifications";
|
"Send notifications" = "Envoi de notifications";
|
||||||
|
|
||||||
@@ -3374,6 +3515,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Sent messages will be deleted after set time." = "Les messages envoyés seront supprimés après une durée déterminée.";
|
"Sent messages will be deleted after set time." = "Les messages envoyés seront supprimés après une durée déterminée.";
|
||||||
|
|
||||||
|
/* srv error text. */
|
||||||
|
"Server address is incompatible with network settings." = "L'adresse du serveur est incompatible avec les paramètres du réseau.";
|
||||||
|
|
||||||
/* server test error */
|
/* server test error */
|
||||||
"Server requires authorization to create queues, check password" = "Le serveur requiert une autorisation pour créer des files d'attente, vérifiez le mot de passe";
|
"Server requires authorization to create queues, check password" = "Le serveur requiert une autorisation pour créer des files d'attente, vérifiez le mot de passe";
|
||||||
|
|
||||||
@@ -3383,6 +3527,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Server test failed!" = "Échec du test du serveur !";
|
"Server test failed!" = "Échec du test du serveur !";
|
||||||
|
|
||||||
|
/* srv error text */
|
||||||
|
"Server version is incompatible with network settings." = "La version du serveur est incompatible avec les paramètres du réseau.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Servers" = "Serveurs";
|
"Servers" = "Serveurs";
|
||||||
|
|
||||||
@@ -3425,6 +3572,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Settings" = "Paramètres";
|
"Settings" = "Paramètres";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Shape profile images" = "Images de profil modelable";
|
||||||
|
|
||||||
/* chat item action */
|
/* chat item action */
|
||||||
"Share" = "Partager";
|
"Share" = "Partager";
|
||||||
|
|
||||||
@@ -3446,6 +3596,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Share with contacts" = "Partager avec vos contacts";
|
"Share with contacts" = "Partager avec vos contacts";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Show → on messages sent via private routing." = "Afficher → sur les messages envoyés via le routage privé.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show calls in phone history" = "Afficher les appels dans l'historique du téléphone";
|
"Show calls in phone history" = "Afficher les appels dans l'historique du téléphone";
|
||||||
|
|
||||||
@@ -3455,6 +3608,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show last messages" = "Voir les derniers messages";
|
"Show last messages" = "Voir les derniers messages";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Show message status" = "Afficher le statut du message";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show preview" = "Afficher l'aperçu";
|
"Show preview" = "Afficher l'aperçu";
|
||||||
|
|
||||||
@@ -3482,9 +3638,15 @@
|
|||||||
/* simplex link type */
|
/* simplex link type */
|
||||||
"SimpleX group link" = "Lien de groupe SimpleX";
|
"SimpleX group link" = "Lien de groupe SimpleX";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* chat feature */
|
||||||
"SimpleX links" = "Liens SimpleX";
|
"SimpleX links" = "Liens SimpleX";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links are prohibited in this group." = "Les liens SimpleX sont interdits dans ce groupe.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links not allowed" = "Les liens SimpleX ne sont pas autorisés";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"SimpleX Lock" = "SimpleX Lock";
|
"SimpleX Lock" = "SimpleX Lock";
|
||||||
|
|
||||||
@@ -3521,6 +3683,9 @@
|
|||||||
/* notification title */
|
/* notification title */
|
||||||
"Somebody" = "Quelqu'un";
|
"Somebody" = "Quelqu'un";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Square, circle, or anything in between." = "Carré, circulaire, ou toute autre forme intermédiaire.";
|
||||||
|
|
||||||
/* chat item text */
|
/* chat item text */
|
||||||
"standard end-to-end encryption" = "chiffrement de bout en bout standard";
|
"standard end-to-end encryption" = "chiffrement de bout en bout standard";
|
||||||
|
|
||||||
@@ -3653,6 +3818,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "L'application peut vous avertir lorsque vous recevez des messages ou des demandes de contact - veuillez ouvrir les paramètres pour les activer.";
|
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "L'application peut vous avertir lorsque vous recevez des messages ou des demandes de contact - veuillez ouvrir les paramètres pour les activer.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"The app will ask to confirm downloads from unknown file servers (except .onion)." = "L'application demandera de confirmer les téléchargements à partir de serveurs de fichiers inconnus (sauf .onion).";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"The attempt to change database passphrase was not completed." = "La tentative de modification de la phrase secrète de la base de données n'a pas abouti.";
|
"The attempt to change database passphrase was not completed." = "La tentative de modification de la phrase secrète de la base de données n'a pas abouti.";
|
||||||
|
|
||||||
@@ -3773,6 +3941,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"To protect your information, turn on SimpleX Lock.\nYou will be prompted to complete authentication before this feature is enabled." = "Pour protéger vos informations, activez la fonction SimpleX Lock.\nVous serez invité à confirmer l'authentification avant que cette fonction ne soit activée.";
|
"To protect your information, turn on SimpleX Lock.\nYou will be prompted to complete authentication before this feature is enabled." = "Pour protéger vos informations, activez la fonction SimpleX Lock.\nVous serez invité à confirmer l'authentification avant que cette fonction ne soit activée.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"To protect your IP address, private routing uses your SMP servers to deliver messages." = "Pour protéger votre adresse IP, le routage privé utilise vos serveurs SMP pour délivrer les messages.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"To record voice message please grant permission to use Microphone." = "Pour enregistrer un message vocal, veuillez accorder la permission d'utiliser le microphone.";
|
"To record voice message please grant permission to use Microphone." = "Pour enregistrer un message vocal, veuillez accorder la permission d'utiliser le microphone.";
|
||||||
|
|
||||||
@@ -3827,9 +3998,6 @@
|
|||||||
/* rcv group event chat item */
|
/* rcv group event chat item */
|
||||||
"unblocked %@" = "%@ débloqué";
|
"unblocked %@" = "%@ débloqué";
|
||||||
|
|
||||||
/* item status description */
|
|
||||||
"Unexpected error: %@" = "Erreur inattendue : %@";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unexpected migration state" = "État de la migration inattendu";
|
"Unexpected migration state" = "État de la migration inattendu";
|
||||||
|
|
||||||
@@ -3860,6 +4028,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unknown error" = "Erreur inconnue";
|
"Unknown error" = "Erreur inconnue";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"unknown relays" = "relais inconnus";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Unknown servers!" = "Serveurs inconnus !";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"unknown status" = "statut inconnu";
|
"unknown status" = "statut inconnu";
|
||||||
|
|
||||||
@@ -3884,6 +4058,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unmute" = "Démute";
|
"Unmute" = "Démute";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"unprotected" = "non protégé";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unread" = "Non lu";
|
"Unread" = "Non lu";
|
||||||
|
|
||||||
@@ -3953,6 +4130,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use only local notifications?" = "Utilisation de notifications locales uniquement ?";
|
"Use only local notifications?" = "Utilisation de notifications locales uniquement ?";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Use private routing with unknown servers when IP address is not protected." = "Utiliser le routage privé avec des serveurs inconnus lorsque l'adresse IP n'est pas protégée.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Use private routing with unknown servers." = "Utiliser le routage privé avec des serveurs inconnus.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use server" = "Utiliser ce serveur";
|
"Use server" = "Utiliser ce serveur";
|
||||||
|
|
||||||
@@ -4049,6 +4232,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages are prohibited in this group." = "Les messages vocaux sont interdits dans ce groupe.";
|
"Voice messages are prohibited in this group." = "Les messages vocaux sont interdits dans ce groupe.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Voice messages not allowed" = "Les messages vocaux ne sont pas autorisés";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages prohibited!" = "Messages vocaux interdits !";
|
"Voice messages prohibited!" = "Messages vocaux interdits !";
|
||||||
|
|
||||||
@@ -4074,7 +4260,7 @@
|
|||||||
"wants to connect to you!" = "veut établir une connexion !";
|
"wants to connect to you!" = "veut établir une connexion !";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Attention: démarrer une session de chat sur plusieurs appareils n'est pas pris en charge et entraînera des dysfonctionnements au niveau de la transmission des messages";
|
"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Attention : démarrer une session de chat sur plusieurs appareils n'est pas pris en charge et entraînera des dysfonctionnements au niveau de la transmission des messages";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Warning: you may lose some data!" = "Attention : vous risquez de perdre des données !";
|
"Warning: you may lose some data!" = "Attention : vous risquez de perdre des données !";
|
||||||
@@ -4100,12 +4286,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When available" = "Quand disponible";
|
"When available" = "Quand disponible";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"When connecting audio and video calls." = "Lors des appels audio et vidéo.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"when IP hidden" = "lorsque l'IP est masquée";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When people request to connect, you can accept or reject it." = "Vous pouvez accepter ou refuser les demandes de contacts.";
|
"When people request to connect, you can accept or reject it." = "Vous pouvez accepter ou refuser les demandes de contacts.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Lorsque vous partagez un profil incognito avec quelqu'un, ce profil sera utilisé pour les groupes auxquels il vous invite.";
|
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Lorsque vous partagez un profil incognito avec quelqu'un, ce profil sera utilisé pour les groupes auxquels il vous invite.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"WiFi" = "WiFi";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Will be enabled in direct chats!" = "Activé dans les discussions directes !";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Wired ethernet" = "Ethernet câblé";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"With encrypted files and media." = "Avec les fichiers et les médias chiffrés.";
|
"With encrypted files and media." = "Avec les fichiers et les médias chiffrés.";
|
||||||
|
|
||||||
@@ -4115,9 +4316,18 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"With reduced battery usage." = "Consommation réduite de la batterie.";
|
"With reduced battery usage." = "Consommation réduite de la batterie.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Without Tor or VPN, your IP address will be visible to file servers." = "Sans Tor ou un VPN, votre adresse IP sera visible par les serveurs de fichiers.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." = "Sans Tor ni VPN, votre adresse IP sera visible par ces relais XFTP : %@.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Wrong database passphrase" = "Mauvaise phrase secrète pour la base de données";
|
"Wrong database passphrase" = "Mauvaise phrase secrète pour la base de données";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Wrong key or unknown connection - most likely this connection is deleted." = "Clé erronée ou connexion non identifiée - il est très probable que cette connexion soit supprimée.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Wrong passphrase!" = "Mauvaise phrase secrète !";
|
"Wrong passphrase!" = "Mauvaise phrase secrète !";
|
||||||
|
|
||||||
@@ -4127,6 +4337,9 @@
|
|||||||
/* pref value */
|
/* pref value */
|
||||||
"yes" = "oui";
|
"yes" = "oui";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"you" = "vous";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"You" = "Vous";
|
"You" = "Vous";
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
|||||||
"CFBundleName" = "SimpleX";
|
"CFBundleName" = "SimpleX";
|
||||||
|
|
||||||
/* Privacy - Camera Usage Description */
|
/* Privacy - Camera Usage Description */
|
||||||
"NSCameraUsageDescription" = "A SimpleX-nek kamera-hozzáférésre van szüksége a QR-kódok beolvasásához, hogy csatlakozhasson más felhasználókhoz és videohívásokhoz.";
|
"NSCameraUsageDescription" = "A SimpleX-nek kamera-hozzáférésre van szüksége a QR-kódok beolvasásához, hogy kapcsolódhasson más felhasználókhoz és videohívásokhoz.";
|
||||||
|
|
||||||
/* Privacy - Face ID Usage Description */
|
/* Privacy - Face ID Usage Description */
|
||||||
"NSFaceIDUsageDescription" = "A SimpleX Face ID-t használ a helyi hitelesítéshez";
|
"NSFaceIDUsageDescription" = "A SimpleX Face ID-t használ a helyi hitelesítéshez";
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
"%@ at %@:" = "%1$@ alle %2$@:";
|
"%@ at %@:" = "%1$@ alle %2$@:";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"%@ connected" = "%@ si è connesso/a";
|
"%@ connected" = "%@ connesso/a";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"%@ downloaded" = "%@ scaricati";
|
"%@ downloaded" = "%@ scaricati";
|
||||||
@@ -389,6 +389,9 @@
|
|||||||
/* member role */
|
/* member role */
|
||||||
"admin" = "amministratore";
|
"admin" = "amministratore";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"admins" = "amministratori";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Admins can block a member for all." = "Gli amministratori possono bloccare un membro per tutti.";
|
"Admins can block a member for all." = "Gli amministratori possono bloccare un membro per tutti.";
|
||||||
|
|
||||||
@@ -416,6 +419,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All group members will remain connected." = "Tutti i membri del gruppo resteranno connessi.";
|
"All group members will remain connected." = "Tutti i membri del gruppo resteranno connessi.";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"all members" = "tutti i membri";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"All messages will be deleted - this cannot be undone!" = "Tutti i messaggi verranno eliminati, non è reversibile!";
|
"All messages will be deleted - this cannot be undone!" = "Tutti i messaggi verranno eliminati, non è reversibile!";
|
||||||
|
|
||||||
@@ -443,6 +449,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow disappearing messages only if your contact allows it to you." = "Consenti i messaggi a tempo solo se il contatto li consente a te.";
|
"Allow disappearing messages only if your contact allows it to you." = "Consenti i messaggi a tempo solo se il contatto li consente a te.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Allow downgrade" = "Consenti downgrade";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Consenti l'eliminazione irreversibile dei messaggi solo se il contatto la consente a te. (24 ore)";
|
"Allow irreversible message deletion only if your contact allows it to you. (24 hours)" = "Consenti l'eliminazione irreversibile dei messaggi solo se il contatto la consente a te. (24 ore)";
|
||||||
|
|
||||||
@@ -464,6 +473,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send files and media." = "Consenti l'invio di file e contenuti multimediali.";
|
"Allow to send files and media." = "Consenti l'invio di file e contenuti multimediali.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Allow to send SimpleX links." = "Consenti di inviare link di SimpleX.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Allow to send voice messages." = "Permetti l'invio di messaggi vocali.";
|
"Allow to send voice messages." = "Permetti l'invio di messaggi vocali.";
|
||||||
|
|
||||||
@@ -500,6 +512,9 @@
|
|||||||
/* pref value */
|
/* pref value */
|
||||||
"always" = "sempre";
|
"always" = "sempre";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Always use private routing." = "Usa sempre l'instradamento privato.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Always use relay" = "Connetti via relay";
|
"Always use relay" = "Connetti via relay";
|
||||||
|
|
||||||
@@ -707,6 +722,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Cannot receive file" = "Impossibile ricevere il file";
|
"Cannot receive file" = "Impossibile ricevere il file";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Capacity exceeded - recipient did not receive previously sent messages." = "Quota superata - il destinatario non ha ricevuto i messaggi precedentemente inviati.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Cellular" = "Mobile";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Change" = "Cambia";
|
"Change" = "Cambia";
|
||||||
|
|
||||||
@@ -840,6 +861,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Confirm database upgrades" = "Conferma aggiornamenti database";
|
"Confirm database upgrades" = "Conferma aggiornamenti database";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Confirm files from unknown servers." = "Conferma i file da server sconosciuti.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Confirm network settings" = "Conferma le impostazioni di rete";
|
"Confirm network settings" = "Conferma le impostazioni di rete";
|
||||||
|
|
||||||
@@ -1308,6 +1332,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Desktop devices" = "Dispositivi desktop";
|
"Desktop devices" = "Dispositivi desktop";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Destination server error: %@" = "Errore del server di destinazione: %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Develop" = "Sviluppa";
|
"Develop" = "Sviluppa";
|
||||||
|
|
||||||
@@ -1386,6 +1413,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Do not send history to new members." = "Non inviare la cronologia ai nuovi membri.";
|
"Do not send history to new members." = "Non inviare la cronologia ai nuovi membri.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Do NOT send messages directly, even if your or destination server does not support private routing." = "NON inviare messaggi direttamente, anche se il tuo server o quello di destinazione non supporta l'instradamento privato.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Do NOT use private routing." = "NON usare l'instradamento privato.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Do NOT use SimpleX for emergency calls." = "NON usare SimpleX per chiamate di emergenza.";
|
"Do NOT use SimpleX for emergency calls." = "NON usare SimpleX per chiamate di emergenza.";
|
||||||
|
|
||||||
@@ -1401,6 +1434,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Downgrade and open chat" = "Esegui downgrade e apri chat";
|
"Downgrade and open chat" = "Esegui downgrade e apri chat";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Download" = "Scarica";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Download failed" = "Scaricamento fallito";
|
"Download failed" = "Scaricamento fallito";
|
||||||
|
|
||||||
@@ -1476,6 +1512,9 @@
|
|||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled" = "attivato";
|
"enabled" = "attivato";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Enabled for" = "Attivo per";
|
||||||
|
|
||||||
/* enabled status */
|
/* enabled status */
|
||||||
"enabled for contact" = "attivato per il contatto";
|
"enabled for contact" = "attivato per il contatto";
|
||||||
|
|
||||||
@@ -1605,9 +1644,6 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error adding member(s)" = "Errore di aggiunta membro/i";
|
"Error adding member(s)" = "Errore di aggiunta membro/i";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Error allowing contact PQ encryption" = "Errore nel consentire la crittografia PQ al contatto";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error changing address" = "Errore nella modifica dell'indirizzo";
|
"Error changing address" = "Errore nella modifica dell'indirizzo";
|
||||||
|
|
||||||
@@ -1764,7 +1800,7 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Error: " = "Errore: ";
|
"Error: " = "Errore: ";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* snd error text */
|
||||||
"Error: %@" = "Errore: %@";
|
"Error: %@" = "Errore: %@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
@@ -1824,6 +1860,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"File: %@" = "File: %@";
|
"File: %@" = "File: %@";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Files" = "File";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files & media" = "File e multimediali";
|
"Files & media" = "File e multimediali";
|
||||||
|
|
||||||
@@ -1833,6 +1872,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media are prohibited in this group." = "File e contenuti multimediali sono vietati in questo gruppo.";
|
"Files and media are prohibited in this group." = "File e contenuti multimediali sono vietati in questo gruppo.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Files and media not allowed" = "File e multimediali non consentiti";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Files and media prohibited!" = "File e contenuti multimediali vietati!";
|
"Files and media prohibited!" = "File e contenuti multimediali vietati!";
|
||||||
|
|
||||||
@@ -1872,6 +1914,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"For console" = "Per console";
|
"For console" = "Per console";
|
||||||
|
|
||||||
|
/* chat item action */
|
||||||
|
"Forward" = "Inoltra";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forward and save messages" = "Inoltra e salva i messaggi";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"forwarded" = "inoltrato";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded" = "Inoltrato";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Forwarded from" = "Inoltrato da";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Forwarding server: %@\nDestination server error: %@" = "Server di inoltro: %1$@\nErrore del server di destinazione: %2$@";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Forwarding server: %@\nError: %@" = "Server di inoltro: %1$@\nErrore: %2$@";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Found desktop" = "Desktop trovato";
|
"Found desktop" = "Desktop trovato";
|
||||||
|
|
||||||
@@ -1950,6 +2013,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali.";
|
"Group members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Group members can send SimpleX links." = "I membri del gruppo possono inviare link di Simplex.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Group members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali.";
|
"Group members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali.";
|
||||||
|
|
||||||
@@ -2091,6 +2157,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"In reply to" = "In risposta a";
|
"In reply to" = "In risposta a";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"In-call sounds" = "Suoni nelle chiamate";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Incognito" = "Incognito";
|
"Incognito" = "Incognito";
|
||||||
|
|
||||||
@@ -2421,6 +2490,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message delivery receipts!" = "Ricevute di consegna dei messaggi!";
|
"Message delivery receipts!" = "Ricevute di consegna dei messaggi!";
|
||||||
|
|
||||||
|
/* item status text */
|
||||||
|
"Message delivery warning" = "Avviso di consegna del messaggio";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message draft" = "Bozza dei messaggi";
|
"Message draft" = "Bozza dei messaggi";
|
||||||
|
|
||||||
@@ -2436,6 +2508,15 @@
|
|||||||
/* notification */
|
/* notification */
|
||||||
"message received" = "messaggio ricevuto";
|
"message received" = "messaggio ricevuto";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message routing fallback" = "Ripiego instradamento messaggio";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message routing mode" = "Modalità instradamento messaggio";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Message source remains private." = "La fonte del messaggio resta privata.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Message text" = "Testo del messaggio";
|
"Message text" = "Testo del messaggio";
|
||||||
|
|
||||||
@@ -2520,12 +2601,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"More improvements are coming soon!" = "Altri miglioramenti sono in arrivo!";
|
"More improvements are coming soon!" = "Altri miglioramenti sono in arrivo!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"More reliable network connection." = "Connessione di rete più affidabile.";
|
||||||
|
|
||||||
/* item status description */
|
/* item status description */
|
||||||
"Most likely this connection is deleted." = "Probabilmente questa connessione è stata eliminata.";
|
"Most likely this connection is deleted." = "Probabilmente questa connessione è stata eliminata.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Most likely this contact has deleted the connection with you." = "Probabilmente questo contatto ha eliminato la connessione con te.";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Multiple chat profiles" = "Profili di chat multipli";
|
"Multiple chat profiles" = "Profili di chat multipli";
|
||||||
|
|
||||||
@@ -2541,6 +2622,15 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network & servers" = "Rete e server";
|
"Network & servers" = "Rete e server";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network connection" = "Connessione di rete";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Network issues - message expired after many attempts to send it." = "Problemi di rete - messaggio scaduto dopo molti tentativi di inviarlo.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Network management" = "Gestione della rete";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Network settings" = "Impostazioni di rete";
|
"Network settings" = "Impostazioni di rete";
|
||||||
|
|
||||||
@@ -2619,6 +2709,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No history" = "Nessuna cronologia";
|
"No history" = "Nessuna cronologia";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"No network connection" = "Nessuna connessione di rete";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"No permission to record voice message" = "Nessuna autorizzazione per registrare messaggi vocali";
|
"No permission to record voice message" = "Nessuna autorizzazione per registrare messaggi vocali";
|
||||||
|
|
||||||
@@ -2765,9 +2858,15 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Or show this code" = "O mostra questo codice";
|
"Or show this code" = "O mostra questo codice";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Other" = "Altro";
|
||||||
|
|
||||||
/* member role */
|
/* member role */
|
||||||
"owner" = "proprietario";
|
"owner" = "proprietario";
|
||||||
|
|
||||||
|
/* feature role */
|
||||||
|
"owners" = "proprietari";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Passcode" = "Codice di accesso";
|
"Passcode" = "Codice di accesso";
|
||||||
|
|
||||||
@@ -2870,9 +2969,6 @@
|
|||||||
/* server test error */
|
/* server test error */
|
||||||
"Possibly, certificate fingerprint in server address is incorrect" = "Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata";
|
"Possibly, certificate fingerprint in server address is incorrect" = "Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
|
||||||
"Post-quantum E2EE" = "E2EE post-quantistica";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Preserve the last message draft, with attachments." = "Conserva la bozza dell'ultimo messaggio, con gli allegati.";
|
"Preserve the last message draft, with attachments." = "Conserva la bozza dell'ultimo messaggio, con gli allegati.";
|
||||||
|
|
||||||
@@ -2894,15 +2990,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Private filenames" = "Nomi di file privati";
|
"Private filenames" = "Nomi di file privati";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private message routing" = "Instradamento privato messaggi";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private message routing 🚀" = "Instradamento privato dei messaggi 🚀";
|
||||||
|
|
||||||
/* name of notes to self */
|
/* name of notes to self */
|
||||||
"Private notes" = "Note private";
|
"Private notes" = "Note private";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Private routing" = "Instradamento privato";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile and server connections" = "Profilo e connessioni al server";
|
"Profile and server connections" = "Profilo e connessioni al server";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile image" = "Immagine del profilo";
|
"Profile image" = "Immagine del profilo";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Profile images" = "Immagini del profilo";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Profile name" = "Nome del profilo";
|
"Profile name" = "Nome del profilo";
|
||||||
|
|
||||||
@@ -2936,15 +3044,24 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending files and media." = "Proibisci l'invio di file e contenuti multimediali.";
|
"Prohibit sending files and media." = "Proibisci l'invio di file e contenuti multimediali.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Prohibit sending SimpleX links." = "Vieta l'invio di link di SimpleX.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Prohibit sending voice messages." = "Proibisci l'invio di messaggi vocali.";
|
"Prohibit sending voice messages." = "Proibisci l'invio di messaggi vocali.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protect app screen" = "Proteggi la schermata dell'app";
|
"Protect app screen" = "Proteggi la schermata dell'app";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Protect IP address" = "Proteggi l'indirizzo IP";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protect your chat profiles with a password!" = "Proteggi i tuoi profili di chat con una password!";
|
"Protect your chat profiles with a password!" = "Proteggi i tuoi profili di chat con una password!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Proteggi il tuo indirizzo IP dai relay di messaggistica scelti dai tuoi contatti.\nAttivalo nelle impostazioni *Rete e server*.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Protocol timeout" = "Scadenza del protocollo";
|
"Protocol timeout" = "Scadenza del protocollo";
|
||||||
|
|
||||||
@@ -3023,6 +3140,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Cronologia recente e [bot della directory](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) migliorato.";
|
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Cronologia recente e [bot della directory](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) migliorato.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Recipient(s) can't see who this message is from." = "I destinatari non possono vedere da chi proviene questo messaggio.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Recipients see updates as you type them." = "I destinatari vedono gli aggiornamenti mentre li digiti.";
|
"Recipients see updates as you type them." = "I destinatari vedono gli aggiornamenti mentre li digiti.";
|
||||||
|
|
||||||
@@ -3167,6 +3287,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Run chat" = "Avvia chat";
|
"Run chat" = "Avvia chat";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Safely receive files" = "Ricevi i file in sicurezza";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Safer groups" = "Gruppi più sicuri";
|
"Safer groups" = "Gruppi più sicuri";
|
||||||
|
|
||||||
@@ -3218,6 +3341,18 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Save welcome message?" = "Salvare il messaggio di benvenuto?";
|
"Save welcome message?" = "Salvare il messaggio di benvenuto?";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved" = "salvato";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved" = "Salvato";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Saved from" = "Salvato da";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"saved from %@" = "salvato da %@";
|
||||||
|
|
||||||
/* message info title */
|
/* message info title */
|
||||||
"Saved message" = "Messaggio salvato";
|
"Saved message" = "Messaggio salvato";
|
||||||
|
|
||||||
@@ -3311,6 +3446,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Send live message" = "Invia messaggio in diretta";
|
"Send live message" = "Invia messaggio in diretta";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Send messages directly when IP address is protected and your or destination server does not support private routing." = "Invia messaggi direttamente quando l'indirizzo IP è protetto e il tuo server o quello di destinazione non supporta l'instradamento privato.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Send messages directly when your or destination server does not support private routing." = "Invia messaggi direttamente quando il tuo server o quello di destinazione non supporta l'instradamento privato.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Send notifications" = "Invia notifiche";
|
"Send notifications" = "Invia notifiche";
|
||||||
|
|
||||||
@@ -3374,6 +3515,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Sent messages will be deleted after set time." = "I messaggi inviati verranno eliminati dopo il tempo impostato.";
|
"Sent messages will be deleted after set time." = "I messaggi inviati verranno eliminati dopo il tempo impostato.";
|
||||||
|
|
||||||
|
/* srv error text. */
|
||||||
|
"Server address is incompatible with network settings." = "L'indirizzo del server non è compatibile con le impostazioni di rete.";
|
||||||
|
|
||||||
/* server test error */
|
/* server test error */
|
||||||
"Server requires authorization to create queues, check password" = "Il server richiede l'autorizzazione di creare code, controlla la password";
|
"Server requires authorization to create queues, check password" = "Il server richiede l'autorizzazione di creare code, controlla la password";
|
||||||
|
|
||||||
@@ -3383,6 +3527,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Server test failed!" = "Test del server fallito!";
|
"Server test failed!" = "Test del server fallito!";
|
||||||
|
|
||||||
|
/* srv error text */
|
||||||
|
"Server version is incompatible with network settings." = "La versione del server non è compatibile con le impostazioni di rete.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Servers" = "Server";
|
"Servers" = "Server";
|
||||||
|
|
||||||
@@ -3425,6 +3572,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Settings" = "Impostazioni";
|
"Settings" = "Impostazioni";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Shape profile images" = "Forma delle immagini del profilo";
|
||||||
|
|
||||||
/* chat item action */
|
/* chat item action */
|
||||||
"Share" = "Condividi";
|
"Share" = "Condividi";
|
||||||
|
|
||||||
@@ -3446,6 +3596,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Share with contacts" = "Condividi con i contatti";
|
"Share with contacts" = "Condividi con i contatti";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Show → on messages sent via private routing." = "Mostra → nei messaggi inviati via instradamento privato.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show calls in phone history" = "Mostra le chiamate nella cronologia del telefono";
|
"Show calls in phone history" = "Mostra le chiamate nella cronologia del telefono";
|
||||||
|
|
||||||
@@ -3455,6 +3608,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show last messages" = "Mostra ultimi messaggi";
|
"Show last messages" = "Mostra ultimi messaggi";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Show message status" = "Mostra stato del messaggio";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Show preview" = "Mostra anteprima";
|
"Show preview" = "Mostra anteprima";
|
||||||
|
|
||||||
@@ -3482,9 +3638,15 @@
|
|||||||
/* simplex link type */
|
/* simplex link type */
|
||||||
"SimpleX group link" = "Link gruppo SimpleX";
|
"SimpleX group link" = "Link gruppo SimpleX";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* chat feature */
|
||||||
"SimpleX links" = "Link di SimpleX";
|
"SimpleX links" = "Link di SimpleX";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links are prohibited in this group." = "I link di SimpleX sono vietati in questo gruppo.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"SimpleX links not allowed" = "Link di SimpleX non consentiti";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"SimpleX Lock" = "SimpleX Lock";
|
"SimpleX Lock" = "SimpleX Lock";
|
||||||
|
|
||||||
@@ -3521,6 +3683,9 @@
|
|||||||
/* notification title */
|
/* notification title */
|
||||||
"Somebody" = "Qualcuno";
|
"Somebody" = "Qualcuno";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Square, circle, or anything in between." = "Quadrata, circolare o qualsiasi forma tra le due.";
|
||||||
|
|
||||||
/* chat item text */
|
/* chat item text */
|
||||||
"standard end-to-end encryption" = "crittografia end-to-end standard";
|
"standard end-to-end encryption" = "crittografia end-to-end standard";
|
||||||
|
|
||||||
@@ -3653,6 +3818,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "L'app può avvisarti quando ricevi messaggi o richieste di contatto: apri le impostazioni per attivare.";
|
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "L'app può avvisarti quando ricevi messaggi o richieste di contatto: apri le impostazioni per attivare.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"The app will ask to confirm downloads from unknown file servers (except .onion)." = "L'app chiederà di confermare i download da server di file sconosciuti (eccetto .onion).";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"The attempt to change database passphrase was not completed." = "Il tentativo di cambiare la password del database non è stato completato.";
|
"The attempt to change database passphrase was not completed." = "Il tentativo di cambiare la password del database non è stato completato.";
|
||||||
|
|
||||||
@@ -3773,6 +3941,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"To protect your information, turn on SimpleX Lock.\nYou will be prompted to complete authentication before this feature is enabled." = "Per proteggere le tue informazioni, attiva SimpleX Lock.\nTi verrà chiesto di completare l'autenticazione prima di attivare questa funzionalità.";
|
"To protect your information, turn on SimpleX Lock.\nYou will be prompted to complete authentication before this feature is enabled." = "Per proteggere le tue informazioni, attiva SimpleX Lock.\nTi verrà chiesto di completare l'autenticazione prima di attivare questa funzionalità.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"To protect your IP address, private routing uses your SMP servers to deliver messages." = "Per proteggere il tuo indirizzo IP, l'instradamento privato usa i tuoi server SMP per consegnare i messaggi.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"To record voice message please grant permission to use Microphone." = "Per registrare un messaggio vocale, concedi l'autorizzazione all'uso del microfono.";
|
"To record voice message please grant permission to use Microphone." = "Per registrare un messaggio vocale, concedi l'autorizzazione all'uso del microfono.";
|
||||||
|
|
||||||
@@ -3827,9 +3998,6 @@
|
|||||||
/* rcv group event chat item */
|
/* rcv group event chat item */
|
||||||
"unblocked %@" = "ha sbloccato %@";
|
"unblocked %@" = "ha sbloccato %@";
|
||||||
|
|
||||||
/* item status description */
|
|
||||||
"Unexpected error: %@" = "Errore imprevisto: % @";
|
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unexpected migration state" = "Stato di migrazione imprevisto";
|
"Unexpected migration state" = "Stato di migrazione imprevisto";
|
||||||
|
|
||||||
@@ -3860,6 +4028,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unknown error" = "Errore sconosciuto";
|
"Unknown error" = "Errore sconosciuto";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"unknown relays" = "relay sconosciuti";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Unknown servers!" = "Server sconosciuti!";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"unknown status" = "stato sconosciuto";
|
"unknown status" = "stato sconosciuto";
|
||||||
|
|
||||||
@@ -3884,6 +4058,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unmute" = "Riattiva notifiche";
|
"Unmute" = "Riattiva notifiche";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"unprotected" = "non protetto";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Unread" = "Non letto";
|
"Unread" = "Non letto";
|
||||||
|
|
||||||
@@ -3953,6 +4130,12 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use only local notifications?" = "Usare solo notifiche locali?";
|
"Use only local notifications?" = "Usare solo notifiche locali?";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Use private routing with unknown servers when IP address is not protected." = "Usa l'instradamento privato con server sconosciuti quando l'indirizzo IP non è protetto.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Use private routing with unknown servers." = "Usa l'instradamento privato con server sconosciuti.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Use server" = "Usa il server";
|
"Use server" = "Usa il server";
|
||||||
|
|
||||||
@@ -4049,6 +4232,9 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages are prohibited in this group." = "I messaggi vocali sono vietati in questo gruppo.";
|
"Voice messages are prohibited in this group." = "I messaggi vocali sono vietati in questo gruppo.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Voice messages not allowed" = "Messaggi vocali non consentiti";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Voice messages prohibited!" = "Messaggi vocali vietati!";
|
"Voice messages prohibited!" = "Messaggi vocali vietati!";
|
||||||
|
|
||||||
@@ -4100,12 +4286,27 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When available" = "Quando disponibili";
|
"When available" = "Quando disponibili";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"When connecting audio and video calls." = "Quando si connettono le chiamate audio e video.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"when IP hidden" = "quando l'IP è nascosto";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When people request to connect, you can accept or reject it." = "Quando le persone chiedono di connettersi, puoi accettare o rifiutare.";
|
"When people request to connect, you can accept or reject it." = "Quando le persone chiedono di connettersi, puoi accettare o rifiutare.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Quando condividi un profilo in incognito con qualcuno, questo profilo verrà utilizzato per i gruppi a cui ti invitano.";
|
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Quando condividi un profilo in incognito con qualcuno, questo profilo verrà utilizzato per i gruppi a cui ti invitano.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"WiFi" = "WiFi";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Will be enabled in direct chats!" = "Viene attivata nelle chat dirette!";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Wired ethernet" = "Cavo ethernet";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"With encrypted files and media." = "Con file e multimediali criptati.";
|
"With encrypted files and media." = "Con file e multimediali criptati.";
|
||||||
|
|
||||||
@@ -4115,9 +4316,18 @@
|
|||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"With reduced battery usage." = "Con consumo di batteria ridotto.";
|
"With reduced battery usage." = "Con consumo di batteria ridotto.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Without Tor or VPN, your IP address will be visible to file servers." = "Senza Tor o VPN, il tuo indirizzo IP sarà visibile ai server di file.";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"Without Tor or VPN, your IP address will be visible to these XFTP relays: %@." = "Senza Tor o VPN, il tuo indirizzo IP sarà visibile a questi relay XFTP: %@.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Wrong database passphrase" = "Password del database sbagliata";
|
"Wrong database passphrase" = "Password del database sbagliata";
|
||||||
|
|
||||||
|
/* snd error text */
|
||||||
|
"Wrong key or unknown connection - most likely this connection is deleted." = "Chiave sbagliata o connessione sconosciuta - molto probabilmente questa connessione è stata eliminata.";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"Wrong passphrase!" = "Password sbagliata!";
|
"Wrong passphrase!" = "Password sbagliata!";
|
||||||
|
|
||||||
@@ -4127,6 +4337,9 @@
|
|||||||
/* pref value */
|
/* pref value */
|
||||||
"yes" = "sì";
|
"yes" = "sì";
|
||||||
|
|
||||||
|
/* No comment provided by engineer. */
|
||||||
|
"you" = "tu";
|
||||||
|
|
||||||
/* No comment provided by engineer. */
|
/* No comment provided by engineer. */
|
||||||
"You" = "Tu";
|
"You" = "Tu";
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user