Compare commits
36 Commits
v4.5.1
...
v4.5.3-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07ad3edbc2 | ||
|
|
b40ed2a7f3 | ||
|
|
29b074607c | ||
|
|
258a157e44 | ||
|
|
92d9a1f9f2 | ||
|
|
e5009a58df | ||
|
|
35a1ce4903 | ||
|
|
7c4c627ee9 | ||
|
|
b7575ec01d | ||
|
|
a0351d6f99 | ||
|
|
6f68840b3a | ||
|
|
2eef858db1 | ||
|
|
434315fb08 | ||
|
|
9b495e576c | ||
|
|
5405f44f54 | ||
|
|
53b05974c9 | ||
|
|
3530022152 | ||
|
|
dc6bab7ae6 | ||
|
|
c9b4ce457e | ||
|
|
bd3325a889 | ||
|
|
9e347484eb | ||
|
|
894af0602d | ||
|
|
aa6011a196 | ||
|
|
f24035a99d | ||
|
|
c006b8150f | ||
|
|
9e4499de6d | ||
|
|
a018e4a581 | ||
|
|
d29fd93ea7 | ||
|
|
b30c7af3a3 | ||
|
|
2798671d22 | ||
|
|
0339b399f7 | ||
|
|
d048962959 | ||
|
|
4af91c4cae | ||
|
|
8a445ece90 | ||
|
|
5082f5b4a4 | ||
|
|
c8fae0ec43 |
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -91,6 +91,10 @@ jobs:
|
||||
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
|
||||
echo " flags: +openssl" >> cabal.project.local
|
||||
|
||||
- name: Install pkg-config for Mac
|
||||
if: matrix.os == 'macos-latest'
|
||||
run: brew install pkg-config
|
||||
|
||||
- name: Unix prepare cabal.project.local for Ubuntu
|
||||
if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18.04'
|
||||
shell: bash
|
||||
|
||||
32
README.md
32
README.md
@@ -1,3 +1,5 @@
|
||||
| Updated 07.02.2023 | Languages: EN, [FR](/docs/lang/fr/README.md) |
|
||||
|
||||
<img src="images/simplex-chat-logo.svg" alt="SimpleX logo" width="100%">
|
||||
|
||||
# SimpleX - the first messaging platform that has no user identifiers of any kind - 100% private by design!
|
||||
@@ -22,7 +24,7 @@
|
||||
- 🔐 Double ratchet end-to-end encryption, with additional encryption layer.
|
||||
- 📱 Mobile apps for Android ([Google Play](https://play.google.com/store/apps/details?id=chat.simplex.app), [APK](https://github.com/simplex-chat/simplex-chat/releases/latest/download/simplex.apk)) and [iOS](https://apps.apple.com/us/app/simplex-chat/id1605771084).
|
||||
- 🚀 [TestFlight preview for iOS](https://testflight.apple.com/join/DWuT2LQu) with the new features 1-2 weeks earlier - **limited to 10,000 users**!
|
||||
- 🖥 Available as a terminal (console) app / CLI on Linux, MacOS, Windows.
|
||||
- 🖥 Available as a terminal (console) [app / CLI](#zap-quick-installation-of-a-terminal-app) on Linux, MacOS, Windows.
|
||||
|
||||
**NEW**: Security audit by [Trail of Bits](https://www.trailofbits.com/about), the [new website](https://simplex.chat) and v4.2 released! [See the announcement](./blog/20221108-simplex-chat-v4.2-security-audit-new-website.md)
|
||||
|
||||
@@ -76,11 +78,11 @@ You can use SimpleX with your own servers and still communicate with people usin
|
||||
|
||||
## Frequently asked questions
|
||||
|
||||
1. _How SimpleX can deliver messages without any user identifiers?_ See [v2 release annoucement](./blog/20220511-simplex-chat-v2-images-files.md#the-first-messaging-platform-without-user-identifiers) explaining how SimpleX works.
|
||||
1. _How SimpleX can deliver messages without any user identifiers?_ See [v2 release announcement](./blog/20220511-simplex-chat-v2-images-files.md#the-first-messaging-platform-without-user-identifiers) explaining how SimpleX works.
|
||||
|
||||
2. _Why should I not just use Signal?_ Signal is a centralised platform that uses phone numbers to identify its users and their contacts. It means that while the content of your messages on Signal is protected with robust end-to-end encryption, there is a large amount of meta-data visible to Signal - who you talk with and when.
|
||||
2. _Why should I not just use Signal?_ Signal is a centralized platform that uses phone numbers to identify its users and their contacts. It means that while the content of your messages on Signal is protected with robust end-to-end encryption, there is a large amount of meta-data visible to Signal - who you talk with and when.
|
||||
|
||||
3. _How is it different from Matrix, Session, Ricochet, Cwtch, etc., that also don't require user identites?_ Although these platforms do not require a _real identity_, they do rely on anonymous user identities to deliver messages – it can be, for example, an identity key or a random number. Using a persistent user identity, even anonymous, creates a risk that user's connection graph becomes known to the observers and/or service providers, and it can lead to de-anonymizing some users. If the same user profile is used to connect to two different people via any messenger other than SimpleX, these two people can confirm if they are connected to the same person - they would use the same user identifier in the messages. With SimpleX there is no meta-data in common between your conversations with different contacts - the quality that no other messaging platform has.
|
||||
3. _How is it different from Matrix, Session, Ricochet, Cwtch, etc., that also don't require user identities?_ Although these platforms do not require a _real identity_, they do rely on anonymous user identities to deliver messages – it can be, for example, an identity key or a random number. Using a persistent user identity, even anonymous, creates a risk that user's connection graph becomes known to the observers and/or service providers, and it can lead to de-anonymizing some users. If the same user profile is used to connect to two different people via any messenger other than SimpleX, these two people can confirm if they are connected to the same person - they would use the same user identifier in the messages. With SimpleX there is no meta-data in common between your conversations with different contacts - the quality that no other messaging platform has.
|
||||
|
||||
## News and updates
|
||||
|
||||
@@ -138,7 +140,7 @@ SimpleX Chat is a work in progress – we are releasing improvements as they are
|
||||
|
||||
What is already implemented:
|
||||
|
||||
1. Instead of user profile identifiers used by all other platforms, even the most private ones, SimpleX uses pairwise per-queue identifiers (2 addresses for each unidirectional message queue, with an optional 3rd address for push notificaitons on iOS, 2 queues in each connection between the users). It makes observing the network graph on the application level more difficult, as for `n` users there can be up to `n * (n-1)` message queues.
|
||||
1. Instead of user profile identifiers used by all other platforms, even the most private ones, SimpleX uses pairwise per-queue identifiers (2 addresses for each unidirectional message queue, with an optional 3rd address for push notifications on iOS, 2 queues in each connection between the users). It makes observing the network graph on the application level more difficult, as for `n` users there can be up to `n * (n-1)` message queues.
|
||||
2. End-to-end encryption in each message queue using [NaCl cryptobox](https://nacl.cr.yp.to/box.html). This is added to allow redundancy in the future (passing each message via several servers), to avoid having the same ciphertext in different queues (that would only be visible to the attacker if TLS is compromised). The encryption keys used for this encryption are not rotated, instead we are planning to rotate the queues. Curve25519 keys are used for key negotiation.
|
||||
3. [Double ratchet](https://signal.org/docs/specifications/doubleratchet/) end-to-end encryption in each conversation between two users (or group members). This is the same algorithm that is used in Signal and many other messaging apps; it provides OTR messaging with forward secrecy (each message is encrypted by its own ephemeral key), break-in recovery (the keys are frequently re-negotiated as part of the message exchange). Two pairs of Curve448 keys are used for the initial key agreement, initiating party passes these keys via the connection link, accepting side - in the header of the confirmation message.
|
||||
4. Additional layer of encryption using NaCL cryptobox for the messages delivered from the server to the recipient. This layer avoids having any ciphertext in common between sent and received traffic of the server inside TLS (and there are no identifiers in common as well).
|
||||
@@ -162,7 +164,7 @@ You can:
|
||||
|
||||
- use SimpleX Chat library to integrate chat functionality into your mobile apps.
|
||||
- create chat bots and services in Haskell - see [simple](./apps/simplex-bot/) and more [advanced chat bot example](./apps/simplex-bot-advanced/).
|
||||
- create chat bots and services in any language running SimpleX Chat terminal CLI as a local WebSocket server. See [TypeScript SimpleX Chat client](./packages/simplex-chat-client/) and [JavaScipt chat bot example](./packages/simplex-chat-client/typescript/examples/squaring-bot.js).
|
||||
- create chat bots and services in any language running SimpleX Chat terminal CLI as a local WebSocket server. See [TypeScript SimpleX Chat client](./packages/simplex-chat-client/) and [JavaScript chat bot example](./packages/simplex-chat-client/typescript/examples/squaring-bot.js).
|
||||
- run [simplex-chat terminal CLI](./docs/CLI.md) to execute individual chat commands, e.g. to send messages as part of shell script execution.
|
||||
|
||||
If you are considering developing with SimpleX platform please get in touch for any advice and support.
|
||||
@@ -225,11 +227,7 @@ If you are considering developing with SimpleX platform please get in touch for
|
||||
|
||||
## Join a user group
|
||||
|
||||
You can join a general English-speaking group: [#SimpleX-Group](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2Fhpq7_4gGJiilmz5Rf-CswuU5kZGkm_zOIooSw6yALRg%3D%40smp5.simplex.im%2FcIS0gu1h0Y8pZpQkDaSz7HZGSHcKpMB9%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAKzzWAJYrVt1zdgRp4pD3FBst6eK7233DJeNElENLJRA%253D%26srv%3Djjbyvoemxysm7qxap7m5d5m35jzv5qq6gnlv7s4rsn7tdwwmuqciwpid.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%228mazMhefXoM5HxWBfZnvwQ%3D%3D%22%7D). Just bear in mind that it has ~300 members now, and that it is fully decentralized, so sending a message and connecting to all members in this group will take some time, only join it if you:
|
||||
- want to see how larger groups work.
|
||||
- traffic is not a concern (sending each message is ~5mb).
|
||||
|
||||
You can also join a new and smaller English-speaking group if you want to ask questions without too much traffic: [#SimpleX-Group-2](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2Fhpq7_4gGJiilmz5Rf-CswuU5kZGkm_zOIooSw6yALRg%3D%40smp5.simplex.im%2FQP8zaGjjmlXV-ix_Er4JgJ0lNPYGS1KX%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEApAgBkRZ3x12ayZ7sHrjHQWNMvqzZpWUgM_fFCUdLXwo%253D%26srv%3Djjbyvoemxysm7qxap7m5d5m35jzv5qq6gnlv7s4rsn7tdwwmuqciwpid.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22xWpPXEZZsQp_F7vwAcAYDw%3D%3D%22%7D)
|
||||
You can join an English-speaking group if you want to ask any questions: [#SimpleX-Group-2](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2Fhpq7_4gGJiilmz5Rf-CswuU5kZGkm_zOIooSw6yALRg%3D%40smp5.simplex.im%2FQP8zaGjjmlXV-ix_Er4JgJ0lNPYGS1KX%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEApAgBkRZ3x12ayZ7sHrjHQWNMvqzZpWUgM_fFCUdLXwo%253D%26srv%3Djjbyvoemxysm7qxap7m5d5m35jzv5qq6gnlv7s4rsn7tdwwmuqciwpid.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22xWpPXEZZsQp_F7vwAcAYDw%3D%3D%22%7D)
|
||||
|
||||
There are also several groups in languages other than English, that we have the apps interface translated into. These groups are for testing, and asking questions to other SimpleX Chat users. We do not always answer questions there, so please ask them in one of the English-speaking groups.
|
||||
|
||||
@@ -248,13 +246,13 @@ Thanks to our users and [Weblate](https://hosted.weblate.org/engage/simplex-chat
|
||||
|
||||
Current interface languages:
|
||||
|
||||
English (development language)
|
||||
German: [@mlanp](https://github.com/mlanp)
|
||||
French: link to be added
|
||||
Italian: [@unbranched](https://github.com/unbranched)
|
||||
Russian: project team
|
||||
- English (development language)
|
||||
- German: [@mlanp](https://github.com/mlanp)
|
||||
- French: [@ishi_sama](https://github.com/ishi-sama)
|
||||
- Italian: [@unbranched](https://github.com/unbranched)
|
||||
- Russian: project team
|
||||
|
||||
Languages in progress: Chinese, Hindi, Japanese, Dutch and [many others](https://hosted.weblate.org/projects/simplex-chat/#languages). We will be adding more languages as some of the already added are completed – please suggest new languages and get in touch with us!
|
||||
Languages in progress: Chinese, Hindi, Czech, Japanese, Dutch and [many others](https://hosted.weblate.org/projects/simplex-chat/#languages). We will be adding more languages as some of the already added are completed – please suggest new languages, review the [translation guide](./docs/TRANSLATIONS.md) and get in touch with us!
|
||||
|
||||
## Contribute
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ android {
|
||||
applicationId "chat.simplex.app"
|
||||
minSdk 29
|
||||
targetSdk 32
|
||||
versionCode 99
|
||||
versionName "4.5.1"
|
||||
versionCode 101
|
||||
versionName "4.5.3-beta.0"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
ndk {
|
||||
@@ -76,6 +76,11 @@ android {
|
||||
}
|
||||
jniLibs.useLegacyPackaging = compression_level != "0"
|
||||
}
|
||||
def isRelease = gradle.getStartParameter().taskNames.find({ it.toLowerCase().contains("release") }) != null
|
||||
if (isRelease) {
|
||||
// Comma separated list of languages that will be included in the apk
|
||||
android.defaultConfig.resConfigs("en", "ru", "de", "fr", "it", "nl")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -101,8 +101,19 @@ class SimplexApp: Application(), LifecycleEventObserver {
|
||||
isAppOnForeground = true
|
||||
if (chatModel.chatRunning.value == true) {
|
||||
kotlin.runCatching {
|
||||
val chats = chatController.apiGetChats()
|
||||
chatModel.updateChats(chats)
|
||||
val currentUserId = chatModel.currentUser.value?.userId
|
||||
val chats = ArrayList(chatController.apiGetChats())
|
||||
/** Active user can be changed in background while [ChatController.apiGetChats] is executing */
|
||||
if (chatModel.currentUser.value?.userId == currentUserId) {
|
||||
val currentChatId = chatModel.chatId.value
|
||||
val oldStats = if (currentChatId != null) chatModel.getChat(currentChatId)?.chatStats else null
|
||||
if (oldStats != null) {
|
||||
val indexOfCurrentChat = chats.indexOfFirst { it.id == currentChatId }
|
||||
/** Pass old chatStats because unreadCounter can be changed already while [ChatController.apiGetChats] is executing */
|
||||
if (indexOfCurrentChat >= 0) chats[indexOfCurrentChat] = chats[indexOfCurrentChat].copy(chatStats = oldStats)
|
||||
}
|
||||
chatModel.updateChats(chats)
|
||||
}
|
||||
}.onFailure { Log.e(TAG, it.stackTraceToString()) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1257,6 +1257,8 @@ data class ChatItem (
|
||||
is CIContent.SndGroupFeature -> showNtfDir
|
||||
is CIContent.RcvChatFeatureRejected -> showNtfDir
|
||||
is CIContent.RcvGroupFeatureRejected -> showNtfDir
|
||||
is CIContent.SndModerated -> true
|
||||
is CIContent.RcvModerated -> true
|
||||
is CIContent.InvalidJSON -> false
|
||||
}
|
||||
|
||||
@@ -1271,14 +1273,14 @@ data class ChatItem (
|
||||
status: CIStatus = CIStatus.SndNew(),
|
||||
quotedItem: CIQuote? = null,
|
||||
file: CIFile? = null,
|
||||
itemDeleted: Boolean = false,
|
||||
itemDeleted: CIDeleted? = null,
|
||||
itemEdited: Boolean = false,
|
||||
itemTimed: CITimed? = null,
|
||||
editable: Boolean = true
|
||||
) =
|
||||
ChatItem(
|
||||
chatDir = dir,
|
||||
meta = CIMeta.getSample(id, ts, text, status, itemDeleted, itemEdited, null, editable),
|
||||
meta = CIMeta.getSample(id, ts, text, status, itemDeleted, itemEdited, itemTimed, editable),
|
||||
content = CIContent.SndMsgContent(msgContent = MsgContent.MCText(text)),
|
||||
quotedItem = quotedItem,
|
||||
file = file
|
||||
@@ -1293,7 +1295,7 @@ data class ChatItem (
|
||||
) =
|
||||
ChatItem(
|
||||
chatDir = CIDirection.DirectRcv(),
|
||||
meta = CIMeta.getSample(id, Clock.System.now(), text, CIStatus.RcvRead(), itemDeleted = false, itemEdited = false, editable = false),
|
||||
meta = CIMeta.getSample(id, Clock.System.now(), text, CIStatus.RcvRead()),
|
||||
content = CIContent.RcvMsgContent(msgContent = MsgContent.MCFile(text)),
|
||||
quotedItem = null,
|
||||
file = CIFile.getSample(fileName = fileName, fileSize = fileSize, fileStatus = fileStatus)
|
||||
@@ -1308,7 +1310,7 @@ data class ChatItem (
|
||||
) =
|
||||
ChatItem(
|
||||
chatDir = dir,
|
||||
meta = CIMeta.getSample(id, ts, text, status, itemDeleted = false, itemEdited = false, editable = false),
|
||||
meta = CIMeta.getSample(id, ts, text, status),
|
||||
content = CIContent.RcvDeleted(deleteMode = CIDeleteMode.cidmBroadcast),
|
||||
quotedItem = null,
|
||||
file = null
|
||||
@@ -1317,7 +1319,7 @@ data class ChatItem (
|
||||
fun getGroupInvitationSample(status: CIGroupInvitationStatus = CIGroupInvitationStatus.Pending) =
|
||||
ChatItem(
|
||||
chatDir = CIDirection.DirectRcv(),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "received invitation to join group team as admin", CIStatus.RcvRead(), itemDeleted = false, itemEdited = false, editable = false),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "received invitation to join group team as admin", CIStatus.RcvRead()),
|
||||
content = CIContent.RcvGroupInvitation(groupInvitation = CIGroupInvitation.getSample(status = status), memberRole = GroupMemberRole.Admin),
|
||||
quotedItem = null,
|
||||
file = null
|
||||
@@ -1326,7 +1328,7 @@ data class ChatItem (
|
||||
fun getGroupEventSample() =
|
||||
ChatItem(
|
||||
chatDir = CIDirection.DirectRcv(),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "group event text", CIStatus.RcvRead(), itemDeleted = false, itemEdited = false, editable = false),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "group event text", CIStatus.RcvRead()),
|
||||
content = CIContent.RcvGroupEventContent(rcvGroupEvent = RcvGroupEvent.MemberAdded(groupMemberId = 1, profile = Profile.sampleData)),
|
||||
quotedItem = null,
|
||||
file = null
|
||||
@@ -1336,7 +1338,7 @@ data class ChatItem (
|
||||
val content = CIContent.RcvChatFeature(feature = feature, enabled = enabled, param = null)
|
||||
return ChatItem(
|
||||
chatDir = CIDirection.DirectRcv(),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), content.text, CIStatus.RcvRead(), itemDeleted = false, itemEdited = false, editable = false),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), content.text, CIStatus.RcvRead()),
|
||||
content = content,
|
||||
quotedItem = null,
|
||||
file = null
|
||||
@@ -1356,7 +1358,7 @@ data class ChatItem (
|
||||
itemStatus = CIStatus.RcvRead(),
|
||||
createdAt = Clock.System.now(),
|
||||
updatedAt = Clock.System.now(),
|
||||
itemDeleted = false,
|
||||
itemDeleted = null,
|
||||
itemEdited = false,
|
||||
itemTimed = null,
|
||||
itemLive = false,
|
||||
@@ -1376,7 +1378,7 @@ data class ChatItem (
|
||||
itemStatus = CIStatus.RcvRead(),
|
||||
createdAt = Clock.System.now(),
|
||||
updatedAt = Clock.System.now(),
|
||||
itemDeleted = false,
|
||||
itemDeleted = null,
|
||||
itemEdited = false,
|
||||
itemTimed = null,
|
||||
itemLive = true,
|
||||
@@ -1421,7 +1423,7 @@ data class CIMeta (
|
||||
val itemStatus: CIStatus,
|
||||
val createdAt: Instant,
|
||||
val updatedAt: Instant,
|
||||
val itemDeleted: Boolean,
|
||||
val itemDeleted: CIDeleted?,
|
||||
val itemEdited: Boolean,
|
||||
val itemTimed: CITimed?,
|
||||
val itemLive: Boolean?,
|
||||
@@ -1446,7 +1448,7 @@ data class CIMeta (
|
||||
companion object {
|
||||
fun getSample(
|
||||
id: Long, ts: Instant, text: String, status: CIStatus = CIStatus.SndNew(),
|
||||
itemDeleted: Boolean = false, itemEdited: Boolean = false, itemTimed: CITimed? = null, itemLive: Boolean = false, editable: Boolean = true
|
||||
itemDeleted: CIDeleted? = null, itemEdited: Boolean = false, itemTimed: CITimed? = null, itemLive: Boolean = false, editable: Boolean = true
|
||||
): CIMeta =
|
||||
CIMeta(
|
||||
itemId = id,
|
||||
@@ -1471,7 +1473,7 @@ data class CIMeta (
|
||||
itemStatus = CIStatus.SndNew(),
|
||||
createdAt = Clock.System.now(),
|
||||
updatedAt = Clock.System.now(),
|
||||
itemDeleted = false,
|
||||
itemDeleted = null,
|
||||
itemEdited = false,
|
||||
itemTimed = null,
|
||||
itemLive = false,
|
||||
@@ -1506,6 +1508,12 @@ sealed class CIStatus {
|
||||
@Serializable @SerialName("rcvRead") class RcvRead: CIStatus()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
sealed class CIDeleted {
|
||||
@Serializable @SerialName("deleted") class Deleted: CIDeleted()
|
||||
@Serializable @SerialName("moderated") class Moderated(val byGroupMember: GroupMember): CIDeleted()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
enum class CIDeleteMode(val deleteMode: String) {
|
||||
@SerialName("internal") cidmInternal("internal"),
|
||||
@@ -1541,6 +1549,8 @@ sealed class CIContent: ItemContent {
|
||||
@Serializable @SerialName("sndGroupFeature") class SndGroupFeature(val groupFeature: GroupFeature, val preference: GroupPreference, val param: Int? = null): CIContent() { override val msgContent: MsgContent? get() = null }
|
||||
@Serializable @SerialName("rcvChatFeatureRejected") class RcvChatFeatureRejected(val feature: ChatFeature): CIContent() { override val msgContent: MsgContent? get() = null }
|
||||
@Serializable @SerialName("rcvGroupFeatureRejected") class RcvGroupFeatureRejected(val groupFeature: GroupFeature): CIContent() { override val msgContent: MsgContent? get() = null }
|
||||
@Serializable @SerialName("sndModerated") object SndModerated: CIContent() { override val msgContent: MsgContent? get() = null }
|
||||
@Serializable @SerialName("rcvModerated") object RcvModerated: CIContent() { override val msgContent: MsgContent? get() = null }
|
||||
@Serializable @SerialName("invalidJSON") data class InvalidJSON(val json: String): CIContent() { override val msgContent: MsgContent? get() = null }
|
||||
|
||||
override val text: String get() = when (this) {
|
||||
@@ -1565,6 +1575,8 @@ sealed class CIContent: ItemContent {
|
||||
is SndGroupFeature -> featureText(groupFeature, preference.enable.text, param)
|
||||
is RcvChatFeatureRejected -> "${feature.text}: ${generalGetString(R.string.feature_received_prohibited)}"
|
||||
is RcvGroupFeatureRejected -> "${groupFeature.text}: ${generalGetString(R.string.feature_received_prohibited)}"
|
||||
is SndModerated -> generalGetString(R.string.moderated_description)
|
||||
is RcvModerated -> generalGetString(R.string.moderated_description)
|
||||
is InvalidJSON -> "invalid data"
|
||||
}
|
||||
|
||||
|
||||
@@ -44,11 +44,7 @@ class NtfManager(val context: Context, private val appPreferences: AppPreference
|
||||
private val msgNtfTimeoutMs = 30000L
|
||||
|
||||
init {
|
||||
manager.createNotificationChannel(NotificationChannel(MessageChannel, generalGetString(R.string.ntf_channel_messages), NotificationManager.IMPORTANCE_HIGH))
|
||||
manager.createNotificationChannel(callNotificationChannel(CallChannel, generalGetString(R.string.ntf_channel_calls)))
|
||||
// Remove old channels since they can't be edited
|
||||
manager.deleteNotificationChannel("chat.simplex.app.CALL_NOTIFICATION")
|
||||
manager.deleteNotificationChannel("chat.simplex.app.LOCK_SCREEN_CALL_NOTIFICATION")
|
||||
if (manager.areNotificationsEnabled()) createNtfChannelsMaybeShowAlert()
|
||||
}
|
||||
|
||||
enum class NotificationAction {
|
||||
@@ -156,7 +152,7 @@ class NtfManager(val context: Context, private val appPreferences: AppPreference
|
||||
.setGroup(MessageGroup)
|
||||
.setGroupAlertBehavior(NotificationCompat.GROUP_ALERT_CHILDREN)
|
||||
.setGroupSummary(true)
|
||||
.setContentIntent(chatPendingIntent(ShowChatsAction, user.userId))
|
||||
.setContentIntent(chatPendingIntent(ShowChatsAction, null))
|
||||
.build()
|
||||
|
||||
with(NotificationManagerCompat.from(context)) {
|
||||
@@ -250,7 +246,7 @@ class NtfManager(val context: Context, private val appPreferences: AppPreference
|
||||
}
|
||||
}
|
||||
|
||||
private fun chatPendingIntent(intentAction: String, userId: Long, chatId: String? = null, broadcast: Boolean = false): PendingIntent {
|
||||
private fun chatPendingIntent(intentAction: String, userId: Long?, chatId: String? = null, broadcast: Boolean = false): PendingIntent {
|
||||
Log.d(TAG, "chatPendingIntent for $intentAction")
|
||||
val uniqueInt = (System.currentTimeMillis() and 0xfffffff).toInt()
|
||||
var intent = Intent(context, if (!broadcast) MainActivity::class.java else NtfActionReceiver::class.java)
|
||||
@@ -268,6 +264,21 @@ class NtfManager(val context: Context, private val appPreferences: AppPreference
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function creates notifications channels. On Android 13+ calling it for the first time will trigger system alert,
|
||||
* The alert asks a user to allow or disallow to show notifications for the app. That's why it should be called only when the user
|
||||
* already saw such alert or when you want to trigger showing the alert.
|
||||
* On the first app launch the channels will be created after user profile is created. Subsequent calls will create new channels and delete
|
||||
* old ones if needed
|
||||
* */
|
||||
fun createNtfChannelsMaybeShowAlert() {
|
||||
manager.createNotificationChannel(NotificationChannel(MessageChannel, generalGetString(R.string.ntf_channel_messages), NotificationManager.IMPORTANCE_HIGH))
|
||||
manager.createNotificationChannel(callNotificationChannel(CallChannel, generalGetString(R.string.ntf_channel_calls)))
|
||||
// Remove old channels since they can't be edited
|
||||
manager.deleteNotificationChannel("chat.simplex.app.CALL_NOTIFICATION")
|
||||
manager.deleteNotificationChannel("chat.simplex.app.LOCK_SCREEN_CALL_NOTIFICATION")
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes every action specified by [NotificationCompat.Builder.addAction] that comes with [NotificationAction]
|
||||
* and [ChatInfo.id] as [ChatIdKey] in extra
|
||||
|
||||
@@ -21,8 +21,8 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.input.KeyboardCapitalization
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import chat.simplex.app.*
|
||||
import chat.simplex.app.R
|
||||
import chat.simplex.app.SimplexService
|
||||
import chat.simplex.app.model.ChatModel
|
||||
import chat.simplex.app.model.Profile
|
||||
import chat.simplex.app.ui.theme.*
|
||||
@@ -116,6 +116,7 @@ fun createProfile(chatModel: ChatModel, displayName: String, fullName: String, c
|
||||
if (chatModel.users.isEmpty()) {
|
||||
chatModel.controller.startChat(user)
|
||||
chatModel.onboardingStage.value = OnboardingStage.Step3_SetNotificationsMode
|
||||
SimplexApp.context.chatModel.controller.ntfManager.createNtfChannelsMaybeShowAlert()
|
||||
} else {
|
||||
val users = chatModel.controller.listUsers()
|
||||
chatModel.users.clear()
|
||||
|
||||
@@ -674,10 +674,18 @@ private fun ScrollToBottom(chatId: ChatId, listState: LazyListState, chatItems:
|
||||
.distinctUntilChanged()
|
||||
.filter { listState.layoutInfo.visibleItemsInfo.firstOrNull()?.key != it }
|
||||
.collect {
|
||||
if (listState.firstVisibleItemIndex == 0) {
|
||||
listState.animateScrollToItem(0)
|
||||
} else {
|
||||
listState.animateScrollBy(scrollDistance)
|
||||
try {
|
||||
if (listState.firstVisibleItemIndex == 0) {
|
||||
listState.animateScrollToItem(0)
|
||||
} else {
|
||||
listState.animateScrollBy(scrollDistance)
|
||||
}
|
||||
} catch (e: CancellationException) {
|
||||
/**
|
||||
* When you tap and hold a finger on a lazy column with chatItems, and then you receive a message,
|
||||
* this coroutine will be canceled with the message "Current mutation had a higher priority" because of animatedScroll.
|
||||
* Which breaks auto-scrolling to bottom. So just ignoring the exception
|
||||
* */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,14 +174,14 @@ fun CIFileView(
|
||||
class ChatItemProvider: PreviewParameterProvider<ChatItem> {
|
||||
private val sentFile = ChatItem(
|
||||
chatDir = CIDirection.DirectSnd(),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "", CIStatus.SndSent(), itemDeleted = false, itemEdited = true, editable = false),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "", CIStatus.SndSent(), itemEdited = true),
|
||||
content = CIContent.SndMsgContent(msgContent = MsgContent.MCFile("")),
|
||||
quotedItem = null,
|
||||
file = CIFile.getSample(fileStatus = CIFileStatus.SndComplete)
|
||||
)
|
||||
private val fileChatItemWtFile = ChatItem(
|
||||
chatDir = CIDirection.DirectRcv(),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "", CIStatus.RcvRead(), itemDeleted = false, itemEdited = false, editable = false),
|
||||
meta = CIMeta.getSample(1, Clock.System.now(), "", CIStatus.RcvRead(), ),
|
||||
content = CIContent.RcvMsgContent(msgContent = MsgContent.MCFile("")),
|
||||
quotedItem = null,
|
||||
file = null
|
||||
|
||||
@@ -98,7 +98,7 @@ fun ChatItemView(
|
||||
onDismissRequest = { showMenu.value = false },
|
||||
Modifier.width(220.dp)
|
||||
) {
|
||||
if (!cItem.meta.itemDeleted && !live) {
|
||||
if (cItem.meta.itemDeleted == null && !live) {
|
||||
ItemAction(stringResource(R.string.reply_verb), Icons.Outlined.Reply, onClick = {
|
||||
if (composeState.value.editing) {
|
||||
composeState.value = ComposeState(contextItem = ComposeContextItem.QuotedItem(cItem), useLinkPreviews = useLinkPreviews)
|
||||
@@ -140,7 +140,7 @@ fun ChatItemView(
|
||||
showMenu.value = false
|
||||
})
|
||||
}
|
||||
if (cItem.meta.itemDeleted && revealed.value) {
|
||||
if (cItem.meta.itemDeleted != null && revealed.value) {
|
||||
ItemAction(
|
||||
stringResource(R.string.hide_verb),
|
||||
Icons.Outlined.VisibilityOff,
|
||||
@@ -178,10 +178,10 @@ fun ChatItemView(
|
||||
@Composable
|
||||
fun ContentItem() {
|
||||
val mc = cItem.content.msgContent
|
||||
if (cItem.meta.itemDeleted && !revealed.value) {
|
||||
if (cItem.meta.itemDeleted != null && !revealed.value) {
|
||||
MarkedDeletedItemView(cItem, cInfo.timedMessagesTTL, showMember = showMember)
|
||||
MarkedDeletedItemDropdownMenu()
|
||||
} else if (cItem.quotedItem == null && !cItem.meta.itemDeleted && !cItem.meta.isLive) {
|
||||
} else if (cItem.quotedItem == null && cItem.meta.itemDeleted == null && !cItem.meta.isLive) {
|
||||
if (mc is MsgContent.MCText && isShortEmoji(cItem.content.text)) {
|
||||
EmojiItemView(cItem, cInfo.timedMessagesTTL)
|
||||
MsgContentItemDropdownMenu()
|
||||
@@ -238,6 +238,8 @@ fun ChatItemView(
|
||||
is CIContent.SndGroupFeature -> CIChatFeatureView(cItem, c.groupFeature, c.preference.enable.iconColor)
|
||||
is CIContent.RcvChatFeatureRejected -> CIChatFeatureView(cItem, c.feature, Color.Red)
|
||||
is CIContent.RcvGroupFeatureRejected -> CIChatFeatureView(cItem, c.groupFeature, Color.Red)
|
||||
is CIContent.SndModerated -> DeletedItem()
|
||||
is CIContent.RcvModerated -> DeletedItem()
|
||||
is CIContent.InvalidJSON -> CIInvalidJSONView(c.json)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package chat.simplex.app.views.chat.item
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -19,9 +18,10 @@ import chat.simplex.app.ui.theme.SimpleXTheme
|
||||
|
||||
@Composable
|
||||
fun DeletedItemView(ci: ChatItem, timedMessagesTTL: Int?, showMember: Boolean = false) {
|
||||
val sent = ci.chatDir.sent
|
||||
Surface(
|
||||
shape = RoundedCornerShape(18.dp),
|
||||
color = ReceivedColorLight,
|
||||
color = if (sent) SentColorLight else ReceivedColorLight,
|
||||
) {
|
||||
Row(
|
||||
Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
|
||||
|
||||
@@ -165,7 +165,7 @@ fun FramedItemView(
|
||||
Box(contentAlignment = Alignment.BottomEnd) {
|
||||
Column(Modifier.width(IntrinsicSize.Max)) {
|
||||
PriorityLayout(Modifier, CHAT_IMAGE_LAYOUT_ID) {
|
||||
if (ci.meta.itemDeleted) {
|
||||
if (ci.meta.itemDeleted != null) {
|
||||
FramedItemHeader(stringResource(R.string.marked_deleted_description), true, Icons.Outlined.Delete)
|
||||
} else if (ci.meta.isLive) {
|
||||
FramedItemHeader(stringResource(R.string.live), false)
|
||||
@@ -242,7 +242,12 @@ fun CIMarkdownText(
|
||||
}
|
||||
|
||||
const val CHAT_IMAGE_LAYOUT_ID = "chatImage"
|
||||
const val MAX_SAFE_WIDTH_HEIGHT = 100_000
|
||||
/**
|
||||
* Equal to [androidx.compose.ui.unit.Constraints.MaxFocusMask], which is 0x3FFFF - 1
|
||||
* Other values make a crash `java.lang.IllegalArgumentException: Can't represent a width of 123456 and height of 9909 in Constraints`
|
||||
* See [androidx.compose.ui.unit.Constraints.createConstraints]
|
||||
* */
|
||||
const val MAX_SAFE_WIDTH = 0x3FFFF - 1
|
||||
|
||||
@Composable
|
||||
fun PriorityLayout(
|
||||
@@ -250,6 +255,17 @@ fun PriorityLayout(
|
||||
priorityLayoutId: String,
|
||||
content: @Composable () -> Unit
|
||||
) {
|
||||
/**
|
||||
* Limiting max value for height + width in order to not crash the app, see [androidx.compose.ui.unit.Constraints.createConstraints]
|
||||
* */
|
||||
fun maxSafeHeight(width: Int) = when { // width bits + height bits should be <= 31
|
||||
width < 0x1FFF /*MaxNonFocusMask*/ -> 0x3FFFF - 1 /* MaxFocusMask */ // 13 bits width + 18 bits height
|
||||
width < 0x7FFF /*MinNonFocusMask*/ -> 0xFFFF - 1 /* MinFocusMask */ // 15 bits width + 16 bits height
|
||||
width < 0xFFFF /*MinFocusMask*/ -> 0x7FFF - 1 /* MinFocusMask */ // 16 bits width + 15 bits height
|
||||
width < 0x3FFFF /*MaxFocusMask*/ -> 0x1FFF - 1 /* MaxNonFocusMask */ // 18 bits width + 13 bits height
|
||||
else -> 0x1FFF // shouldn't happen since width is limited already
|
||||
}
|
||||
|
||||
Layout(
|
||||
content = content,
|
||||
modifier = modifier
|
||||
@@ -261,15 +277,11 @@ fun PriorityLayout(
|
||||
if (it.layoutId == priorityLayoutId)
|
||||
imagePlaceable!!
|
||||
else
|
||||
it.measure(constraints.copy(maxWidth = imagePlaceable?.width ?: min(MAX_SAFE_WIDTH_HEIGHT, constraints.maxWidth))) }
|
||||
/**
|
||||
* Limit width for every other element to width of important element and height for a sum of all elements.
|
||||
*
|
||||
* min(MAX_SAFE_WIDTH_HEIGHT, ...) is here because of exception (related to width of long text):
|
||||
* java.lang.IllegalArgumentException: Can't represent a size of 324314 in Constraints
|
||||
* at androidx.compose.ui.unit.Constraints$Companion.bitsNeedForSize(Constraints.kt:403)
|
||||
* */
|
||||
layout(imagePlaceable?.measuredWidth ?: min(MAX_SAFE_WIDTH_HEIGHT, placeables.maxOf { it.width }), min(MAX_SAFE_WIDTH_HEIGHT, placeables.sumOf { it.height })) {
|
||||
it.measure(constraints.copy(maxWidth = imagePlaceable?.width ?: min(MAX_SAFE_WIDTH, constraints.maxWidth))) }
|
||||
// Limit width for every other element to width of important element and height for a sum of all elements.
|
||||
val width = imagePlaceable?.measuredWidth ?: min(MAX_SAFE_WIDTH, placeables.maxOf { it.width })
|
||||
val height = minOf(maxSafeHeight(width), placeables.sumOf { it.height })
|
||||
layout(width, height) {
|
||||
var y = 0
|
||||
placeables.forEach {
|
||||
it.place(0, y)
|
||||
|
||||
@@ -14,6 +14,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import chat.simplex.app.R
|
||||
import chat.simplex.app.model.CIDeleted
|
||||
import chat.simplex.app.model.ChatItem
|
||||
import chat.simplex.app.ui.theme.HighOrLowlight
|
||||
import chat.simplex.app.ui.theme.SimpleXTheme
|
||||
@@ -51,7 +52,7 @@ fun MarkedDeletedItemView(ci: ChatItem, timedMessagesTTL: Int?, showMember: Bool
|
||||
fun PreviewMarkedDeletedItemView() {
|
||||
SimpleXTheme {
|
||||
DeletedItemView(
|
||||
ChatItem.getSampleData(itemDeleted = true),
|
||||
ChatItem.getSampleData(itemDeleted = CIDeleted.Deleted()),
|
||||
null
|
||||
)
|
||||
}
|
||||
|
||||
@@ -145,12 +145,12 @@ fun ChatPreviewView(
|
||||
if (ci != null) {
|
||||
val (text: CharSequence, inlineTextContent) = when {
|
||||
chatModelDraftChatId == chat.id && chatModelDraft != null -> remember(chatModelDraft) { messageDraft(chatModelDraft) }
|
||||
!ci.meta.itemDeleted -> ci.text to null
|
||||
ci.meta.itemDeleted == null -> ci.text to null
|
||||
else -> generalGetString(R.string.marked_deleted_description) to null
|
||||
}
|
||||
val formattedText = when {
|
||||
chatModelDraftChatId == chat.id && chatModelDraft != null -> null
|
||||
!ci.meta.itemDeleted -> ci.formattedText
|
||||
ci.meta.itemDeleted == null -> ci.formattedText
|
||||
else -> null
|
||||
}
|
||||
MarkdownText(
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.content.*
|
||||
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.*
|
||||
import android.graphics.ImageDecoder.DecodeException
|
||||
import android.net.Uri
|
||||
import android.provider.MediaStore
|
||||
import android.util.Base64
|
||||
@@ -205,21 +206,22 @@ fun GetImageBottomSheet(
|
||||
val processPickedImage = { uri: Uri? ->
|
||||
if (uri != null) {
|
||||
val source = ImageDecoder.createSource(context.contentResolver, uri)
|
||||
val bitmap = ImageDecoder.decodeBitmap(source)
|
||||
imageBitmap.value = uri
|
||||
onImageChange(bitmap)
|
||||
}
|
||||
}
|
||||
val galleryLauncher = rememberLauncherForActivityResult(contract = PickFromGallery()) { processPickedImage(it) }
|
||||
val galleryLauncherFallback = rememberGetContentLauncher { processPickedImage(it) }
|
||||
val cameraLauncher = rememberCameraLauncher { uri: Uri? ->
|
||||
if (uri != null) {
|
||||
imageBitmap.value = uri
|
||||
val source = ImageDecoder.createSource(SimplexApp.context.contentResolver, uri)
|
||||
val bitmap = ImageDecoder.decodeBitmap(source)
|
||||
onImageChange(bitmap)
|
||||
try {
|
||||
val bitmap = ImageDecoder.decodeBitmap(source)
|
||||
imageBitmap.value = uri
|
||||
onImageChange(bitmap)
|
||||
} catch (e: DecodeException) {
|
||||
Log.e(TAG, "Unable to decode the image: ${e.stackTraceToString()}")
|
||||
AlertManager.shared.showAlertMsg(
|
||||
title = generalGetString(R.string.image_decoding_exception_title),
|
||||
text = generalGetString(R.string.image_decoding_exception_desc)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
val galleryLauncher = rememberLauncherForActivityResult(contract = PickFromGallery(), processPickedImage)
|
||||
val galleryLauncherFallback = rememberGetContentLauncher(processPickedImage)
|
||||
val cameraLauncher = rememberCameraLauncher(processPickedImage)
|
||||
val permissionLauncher = rememberPermissionLauncher { isGranted: Boolean ->
|
||||
if (isGranted) {
|
||||
cameraLauncher.launchWithFallback()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package chat.simplex.app.views.helpers
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.res.Resources
|
||||
import android.graphics.*
|
||||
@@ -374,6 +375,24 @@ fun saveAnimImage(context: Context, uri: Uri): String? {
|
||||
}
|
||||
}
|
||||
|
||||
fun saveTempImageUncompressed(image: Bitmap, asPng: Boolean): File? {
|
||||
return try {
|
||||
val ext = if (asPng) "png" else "jpg"
|
||||
val tmpDir = SimplexApp.context.getDir("temp", Application.MODE_PRIVATE)
|
||||
return File(tmpDir.absolutePath + File.separator + generateNewFileName(SimplexApp.context, "IMG", ext)).apply {
|
||||
outputStream().use { out ->
|
||||
image.compress(if (asPng) Bitmap.CompressFormat.PNG else Bitmap.CompressFormat.JPEG, 85, out)
|
||||
out.flush()
|
||||
}
|
||||
deleteOnExit()
|
||||
SimplexApp.context.chatModel.filesToDelete.add(this)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Util.kt saveTempImageUncompressed error: ${e.message}")
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
fun saveFileFromUri(context: Context, uri: Uri): String? {
|
||||
return try {
|
||||
val inputStream = context.contentResolver.openInputStream(uri)
|
||||
|
||||
@@ -1,32 +1,100 @@
|
||||
package chat.simplex.app.views.newchat
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.asImageBitmap
|
||||
import androidx.compose.ui.graphics.*
|
||||
import androidx.compose.ui.platform.*
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import boofcv.alg.fiducial.qrcode.QrCodeEncoder
|
||||
import boofcv.alg.fiducial.qrcode.QrCodeGeneratorImage
|
||||
import androidx.core.graphics.*
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import boofcv.alg.drawing.FiducialImageEngine
|
||||
import boofcv.alg.fiducial.qrcode.*
|
||||
import boofcv.android.ConvertBitmap
|
||||
import chat.simplex.app.R
|
||||
import chat.simplex.app.SimplexApp
|
||||
import chat.simplex.app.ui.theme.SimpleXTheme
|
||||
import chat.simplex.app.views.helpers.*
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@Composable
|
||||
fun QRCode(connReq: String, modifier: Modifier = Modifier) {
|
||||
Image(
|
||||
bitmap = qrCodeBitmap(connReq, 1024).asImageBitmap(),
|
||||
contentDescription = stringResource(R.string.image_descr_qr_code),
|
||||
modifier = modifier
|
||||
)
|
||||
fun QRCode(
|
||||
connReq: String,
|
||||
modifier: Modifier = Modifier,
|
||||
tintColor: Color = Color(0xff062d56),
|
||||
withLogo: Boolean = true
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
BoxWithConstraints {
|
||||
val maxWidthInPx = with(LocalDensity.current) { maxWidth.roundToPx() }
|
||||
val qr = remember(maxWidthInPx, connReq, tintColor, withLogo) {
|
||||
qrCodeBitmap(connReq, maxWidthInPx).replaceColor(Color.Black.toArgb(), tintColor.toArgb())
|
||||
.let { if (withLogo) it.addLogo() else it }
|
||||
.asImageBitmap()
|
||||
}
|
||||
Image(
|
||||
bitmap = qr,
|
||||
contentDescription = stringResource(R.string.image_descr_qr_code),
|
||||
modifier
|
||||
.clickable {
|
||||
scope.launch {
|
||||
val image = qrCodeBitmap(connReq, 1024).replaceColor(Color.Black.toArgb(), tintColor.toArgb())
|
||||
.let { if (withLogo) it.addLogo() else it }
|
||||
val file = saveTempImageUncompressed(image, false)
|
||||
if (file != null) {
|
||||
shareFile(context, "", file.absolutePath)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun qrCodeBitmap(content: String, size: Int): Bitmap {
|
||||
val qrCode = QrCodeEncoder().addAutomatic(content).fixate()
|
||||
val renderer = QrCodeGeneratorImage(5)
|
||||
fun qrCodeBitmap(content: String, size: Int = 1024): Bitmap {
|
||||
val qrCode = QrCodeEncoder().addAutomatic(content).setError(QrCode.ErrorLevel.L).fixate()
|
||||
/** See [QrCodeGeneratorImage.initialize] and [FiducialImageEngine.configure] for size calculation */
|
||||
val numModules = QrCode.totalModules(qrCode.version)
|
||||
val borderModule = 1
|
||||
// val calculatedFinalWidth = (pixelsPerModule * numModules) + 2 * (borderModule * pixelsPerModule)
|
||||
// size = (x * numModules) + 2 * (borderModule * x)
|
||||
// size / x = numModules + 2 * borderModule
|
||||
// x = size / (numModules + 2 * borderModule)
|
||||
val pixelsPerModule = size / (numModules + 2 * borderModule)
|
||||
// + 1 to make it with better quality
|
||||
val renderer = QrCodeGeneratorImage(pixelsPerModule + 1)
|
||||
renderer.borderModule = borderModule
|
||||
renderer.render(qrCode)
|
||||
return ConvertBitmap.grayToBitmap(renderer.gray, Bitmap.Config.RGB_565)
|
||||
return ConvertBitmap.grayToBitmap(renderer.gray, Bitmap.Config.RGB_565).scale(size, size)
|
||||
}
|
||||
|
||||
fun Bitmap.replaceColor(from: Int, to: Int): Bitmap {
|
||||
val pixels = IntArray(width * height)
|
||||
getPixels(pixels, 0, width, 0, 0, width, height)
|
||||
var i = 0
|
||||
while (i < pixels.size) {
|
||||
if (pixels[i] == from) {
|
||||
pixels[i] = to
|
||||
}
|
||||
i++
|
||||
}
|
||||
setPixels(pixels, 0, width, 0, 0, width, height)
|
||||
return this
|
||||
}
|
||||
|
||||
fun Bitmap.addLogo(): Bitmap = applyCanvas {
|
||||
val radius = (width * 0.16f) / 2
|
||||
val paint = android.graphics.Paint()
|
||||
paint.color = android.graphics.Color.WHITE
|
||||
drawCircle(width / 2f, height / 2f, radius, paint)
|
||||
val logo = SimplexApp.context.resources.getDrawable(R.mipmap.icon_foreground, null).toBitmap()
|
||||
val logoSize = (width * 0.24).toInt()
|
||||
translate((width - logoSize) / 2f, (height - logoSize) / 2f)
|
||||
drawBitmap(logo, null, android.graphics.Rect(0, 0, logoSize, logoSize), null)
|
||||
}
|
||||
|
||||
@Preview
|
||||
|
||||
2
apps/android/app/src/main/res/values-bg/strings.xml
Normal file
2
apps/android/app/src/main/res/values-bg/strings.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
@@ -20,14 +20,14 @@
|
||||
<string name="about_simplex">O SimpleX</string>
|
||||
<string name="a_plus_b">a + b</string>
|
||||
<string name="accept_call_on_lock_screen">Přijmout</string>
|
||||
<string name="chat_item_ttl_day">1 den</string>
|
||||
<string name="chat_item_ttl_day">1 dni</string>
|
||||
<string name="group_member_role_admin">správce</string>
|
||||
<string name="users_add">Přidat profil</string>
|
||||
<string name="users_delete_all_chats_deleted">Všechny chaty a zprávy budou smazány – tuto akci nelze vrátit zpět!</string>
|
||||
<string name="allow_disappearing_messages_only_if">Povolte mizející zprávy, pouze pokud to váš kontakt povolí.</string>
|
||||
<string name="v4_3_improved_server_configuration_desc">Přidejte servery skenováním QR kódů.</string>
|
||||
<string name="chat_item_ttl_month">1 měsíc</string>
|
||||
<string name="chat_item_ttl_week">1 týden</string>
|
||||
<string name="chat_item_ttl_month">1 měsíci</string>
|
||||
<string name="chat_item_ttl_week">1 týdnu</string>
|
||||
<string name="callstatus_accepted">přijatý hovor</string>
|
||||
<string name="accept_contact_incognito_button">Přijmout inkognito</string>
|
||||
<string name="accept_connection_request__question">Přijmout žádost o připojení\?</string>
|
||||
@@ -46,7 +46,7 @@
|
||||
<string name="info_row_connection">Připojení</string>
|
||||
<string name="conn_level_desc_indirect">nepřímé (<xliff:g id="conn_level">%1$s</xliff:g>)</string>
|
||||
<string name="conn_stats_section_title_servers">SERVERY</string>
|
||||
<string name="receiving_via">Příjem prostřednictvím</string>
|
||||
<string name="receiving_via">Příjímáno přez</string>
|
||||
<string name="create_secret_group_title">Vytvoření tajné skupiny</string>
|
||||
<string name="group_display_name_field">Zobrazení názvu skupiny:</string>
|
||||
<string name="group_full_name_field">Úplný název skupiny:</string>
|
||||
@@ -59,15 +59,15 @@
|
||||
<string name="incognito_random_profile_description">Vašemu kontaktu bude zaslán náhodný profil</string>
|
||||
<string name="save_color">Uložit barvu</string>
|
||||
<string name="reset_color">Obnovení barev</string>
|
||||
<string name="color_primary">Akcent</string>
|
||||
<string name="chat_preferences_you_allow">Povolíte</string>
|
||||
<string name="color_primary">Zbarvení</string>
|
||||
<string name="chat_preferences_you_allow">Povolujete</string>
|
||||
<string name="chat_preferences_default">výchozí (%s)</string>
|
||||
<string name="chat_preferences_yes">ano</string>
|
||||
<string name="chat_preferences_no">ne</string>
|
||||
<string name="chat_preferences_always">vždy</string>
|
||||
<string name="set_group_preferences">Nastavení skupinových předvoleb</string>
|
||||
<string name="your_preferences">Vaše preference</string>
|
||||
<string name="timed_messages">Zmizení zpráv</string>
|
||||
<string name="timed_messages">Mizející zprávy</string>
|
||||
<string name="feature_enabled_for_contact">povoleno pro kontakt</string>
|
||||
<string name="feature_received_prohibited">přijaté, zakázané</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Vy i váš kontakt můžete posílat mizející zprávy.</string>
|
||||
@@ -132,7 +132,7 @@
|
||||
<string name="you_are_already_connected_to_vName_via_this_link">Jste již připojeni k <xliff:g id="contactName" example="Alice">%1$s!</xliff:g>.</string>
|
||||
<string name="invalid_connection_link">Neplatný odkaz na spojení</string>
|
||||
<string name="error_accepting_contact_request">Chyba příjmu požadavku od kontaktu</string>
|
||||
<string name="error_changing_address">Chuba změny adresy</string>
|
||||
<string name="error_changing_address">Chyba změny adresy</string>
|
||||
<string name="settings_notifications_mode_title">Služba oznamování</string>
|
||||
<string name="notifications_mode_service_desc">Služba na pozadí je spuštěna vždy - oznámení se zobrazí, jakmile jsou zprávy k dispozici.</string>
|
||||
<string name="notification_preview_mode_message">Text zprávy</string>
|
||||
@@ -140,7 +140,7 @@
|
||||
<string name="notification_preview_mode_hidden">Skryté</string>
|
||||
<string name="notification_preview_mode_message_desc">Zobrazit kontakt a zprávu</string>
|
||||
<string name="notification_contact_connected">Připojeno</string>
|
||||
<string name="la_notice_title_simplex_lock">SimpleX Lock</string>
|
||||
<string name="la_notice_title_simplex_lock">SimpleX Zámek</string>
|
||||
<string name="auth_log_in_using_credential">Přihlaste se pomocí svého pověření</string>
|
||||
<string name="auth_enable_simplex_lock">Zapnutí zámku SimpleX</string>
|
||||
<string name="reply_verb">Odpovězte na</string>
|
||||
@@ -172,7 +172,7 @@
|
||||
<string name="switch_receiving_address_desc">Tato funkce je experimentální! Bude fungovat pouze v případě, že druhý klient má nainstalovanou verzi 4.2. Po dokončení změny adresy by se měla v konverzaci zobrazit zpráva - zkontrolujte, zda můžete od tohoto kontaktu (nebo člena skupiny) stále přijímat zprávy.</string>
|
||||
<string name="switch_receiving_address_question">Přepnout přijímací adresu\?</string>
|
||||
<string name="send_verb">Poslat</string>
|
||||
<string name="you_need_to_allow_to_send_voice">Abyste mohli odesílat hlasové zprávy, musíte je povolit svému kontaktu.</string>
|
||||
<string name="you_need_to_allow_to_send_voice">Abyste mohli odesílat hlasové zprávy, musíte svému kontaktu odesílání hlasových zpráv povolit.</string>
|
||||
<string name="icon_descr_cancel_live_message">Zrušit živou zprávu</string>
|
||||
<string name="back">Zpět</string>
|
||||
<string name="cancel_verb">Zrušit</string>
|
||||
@@ -195,10 +195,10 @@
|
||||
<string name="add_new_contact_to_create_one_time_QR_code"><b>Přidat nový kontakt</b>: vytvořit jednorázový kód QR.</string>
|
||||
<string name="scan_QR_code_to_connect_to_contact_who_shows_QR_code"><b>Skenovat QR kód</b>: připojení ke kontaktu, který vám ukáže QR kód.</string>
|
||||
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code">💻 desktop: scan displayed QR code from the app, via <b>Scan QR code</b>.</string>
|
||||
<string name="clear_chat_question">Vyčistit konverzaci\?</string>
|
||||
<string name="clear_chat_question">Vyčistit chat\?</string>
|
||||
<string name="clear_verb">Čistý</string>
|
||||
<string name="mark_read">Označit přečtení</string>
|
||||
<string name="mark_unread">Označit jako nepřečtené</string>
|
||||
<string name="mark_read">Označit jako přečteno</string>
|
||||
<string name="mark_unread">Označit jako nepřečteno</string>
|
||||
<string name="mute_chat">Ztlumit</string>
|
||||
<string name="unmute_chat">Zrušit ztlumení</string>
|
||||
<string name="you_invited_your_contact">Pozvali jste svůj kontakt</string>
|
||||
@@ -215,7 +215,7 @@
|
||||
<string name="one_time_link">Vytvořit jednorázový zvací odkaz</string>
|
||||
<string name="security_code">Bezpečnostní kód</string>
|
||||
<string name="is_verified">\"%s je ověřeno</string>
|
||||
<string name="chat_console">Konzola pro chat</string>
|
||||
<string name="chat_console">Chat konzole</string>
|
||||
<string name="smp_servers">SMP servery</string>
|
||||
<string name="smp_servers_preset_address">Přednastavená adresa serveru</string>
|
||||
<string name="smp_servers_test_failed">Test serveru se nezdařil!</string>
|
||||
@@ -225,7 +225,7 @@
|
||||
<string name="smp_servers_invalid_address">Neplatná adresa serveru!</string>
|
||||
<string name="smp_servers_check_address">Zkontrolujte adresu serveru a zkuste to znovu.</string>
|
||||
<string name="smp_servers_delete_server">Smazat server</string>
|
||||
<string name="contribute">Přispějte na</string>
|
||||
<string name="contribute">Přispějte</string>
|
||||
<string name="how_to">Jak na to</string>
|
||||
<string name="how_to_use_your_servers">Jak používat servery</string>
|
||||
<string name="your_ICE_servers">Vaše servery ICE</string>
|
||||
@@ -235,7 +235,7 @@
|
||||
<string name="network_disable_socks">Použít přímé připojení k internetu\?</string>
|
||||
<string name="network_use_onion_hosts_no">Ne</string>
|
||||
<string name="network_use_onion_hosts_no_desc_in_alert">Onion hostitelé nebudou použiti.</string>
|
||||
<string name="network_session_mode_user">Profil chatu</string>
|
||||
<string name="network_session_mode_user">Chat profil</string>
|
||||
<string name="network_session_mode_entity">Připojení</string>
|
||||
<string name="core_simplexmq_version">simplexmq: v%s (%2s)</string>
|
||||
<string name="create_address">Vytvořit adresu</string>
|
||||
@@ -244,17 +244,17 @@
|
||||
<string name="save_and_notify_group_members">Uložit a upozornit členy skupiny</string>
|
||||
<string name="exit_without_saving">Ukončit bez uložení</string>
|
||||
<string name="the_messaging_and_app_platform_protecting_your_privacy_and_security">Platforma pro zasílání zpráv a aplikace chránící vaše soukromí a bezpečnost.</string>
|
||||
<string name="create_profile">Vytvoření profilu</string>
|
||||
<string name="create_profile">Vytvořit profil</string>
|
||||
<string name="profile_is_only_shared_with_your_contacts">Profil je sdílen pouze s vašimi kontakty.</string>
|
||||
<string name="display_name_cannot_contain_whitespace">Zobrazované jméno nesmí obsahovat bílé znaky.</string>
|
||||
<string name="display_name_cannot_contain_whitespace">Zobrazované jméno nesmí obsahovat prázdné znaky.</string>
|
||||
<string name="bold">tučně</string>
|
||||
<string name="callstatus_in_progress">probíhající hovor</string>
|
||||
<string name="decentralized">Decentralizované</string>
|
||||
<string name="decentralized">Decentralizovaná</string>
|
||||
<string name="how_it_works">Jak to funguje</string>
|
||||
<string name="how_simplex_works">Jak funguje <xliff:g id="appName">SimpleX</xliff:g></string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Pouze klientská zařízení ukládají uživatelské profily, kontakty, skupiny a zprávy odesílané pomocí <b>2vrstvého end-to-end šifrování</b>.</string>
|
||||
<string name="onboarding_notifications_mode_title">Soukromá oznámení</string>
|
||||
<string name="onboarding_notifications_mode_periodic">Pravidelný</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Pouze klientská zařízení ukládají uživatelské profily, kontakty, skupiny a zprávy odesílané pomocí <b>2 vrstvého end-to-end šifrování</b>.</string>
|
||||
<string name="onboarding_notifications_mode_title">Oznamování</string>
|
||||
<string name="onboarding_notifications_mode_periodic">Pravidelné</string>
|
||||
<string name="ignore">Ignorovat</string>
|
||||
<string name="call_already_ended">Hovor již skončil!</string>
|
||||
<string name="icon_descr_video_call">videohovor</string>
|
||||
@@ -266,13 +266,13 @@
|
||||
<string name="open_verb">Otevřete stránku</string>
|
||||
<string name="icon_descr_audio_on">Zvuk zapnut</string>
|
||||
<string name="icon_descr_speaker_off">Reproduktor vypnut</string>
|
||||
<string name="icon_descr_speaker_on">Zapnutý reproduktor</string>
|
||||
<string name="icon_descr_speaker_on">Reproduktor zapnut</string>
|
||||
<string name="icon_descr_call_progress">Probíhající hovor</string>
|
||||
<string name="auto_accept_images">Automatické přijímání obrázků</string>
|
||||
<string name="auto_accept_images">Automaticky přijímat obrázky</string>
|
||||
<string name="settings_section_title_settings">NASTAVENÍ</string>
|
||||
<string name="settings_section_title_help">NÁPOVĚDA</string>
|
||||
<string name="settings_section_title_device">ZAŘÍZENÍ</string>
|
||||
<string name="settings_section_title_chats">CHATS</string>
|
||||
<string name="settings_section_title_chats">CHAT</string>
|
||||
<string name="settings_experimental_features">Experimentální funkce</string>
|
||||
<string name="settings_section_title_socks">SOCKS PROXY</string>
|
||||
<string name="settings_section_title_icon">IKONA APLIKACE</string>
|
||||
@@ -281,18 +281,18 @@
|
||||
<string name="settings_section_title_calls">VOLÁNÍ</string>
|
||||
<string name="export_database">Export databáze</string>
|
||||
<string name="import_database">Import databáze</string>
|
||||
<string name="delete_database">Odstranění databáze</string>
|
||||
<string name="error_exporting_chat_database">Chyba při exportu databáze chatu</string>
|
||||
<string name="delete_database">Smazání databáze</string>
|
||||
<string name="error_exporting_chat_database">Chyba při exportu chat databáze</string>
|
||||
<string name="import_database_confirmation">Import</string>
|
||||
<string name="restart_the_app_to_use_imported_chat_database">Restartujte aplikaci, abyste mohli používat importovanou databázi chatu.</string>
|
||||
<string name="restart_the_app_to_use_imported_chat_database">Restartujte aplikaci, abyste mohli používat importovanou chat databázi.</string>
|
||||
<string name="delete_chat_profile_question">Smazat profil chatu\?</string>
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">Tuto akci nelze vzít zpět - váš profil, kontakty, zprávy a soubory budou nenávratně ztraceny.</string>
|
||||
<string name="restart_the_app_to_create_a_new_chat_profile">Restartujte aplikaci a vytvořte nový profil chatu.</string>
|
||||
<string name="you_must_use_the_most_recent_version_of_database">Nejnovější verzi databáze chatu musíte používat POUZE v jednom zařízení, jinak se může stát, že přestanete přijímat zprávy od některých kontaktů.</string>
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">Tuto akci nelze vzít zpět! Váš profil, kontakty, zprávy a soubory budou nenávratně ztraceny.</string>
|
||||
<string name="restart_the_app_to_create_a_new_chat_profile">Restartujte aplikaci a vytvořte nový chat profil.</string>
|
||||
<string name="you_must_use_the_most_recent_version_of_database">Nejnovější verzi chat databáze musíte používat POUZE v jednom zařízení, jinak se může stát, že přestanete přijímat zprávy od některých kontaktů.</string>
|
||||
<string name="stop_chat_to_enable_database_actions">Zastavte chat a povolte akce s databází.</string>
|
||||
<string name="files_and_media_section">Soubory a média</string>
|
||||
<string name="delete_files_and_media_question">Smazat soubory a média\?</string>
|
||||
<string name="delete_messages">Odstranění zpráv</string>
|
||||
<string name="delete_messages">Odstranit zprávy</string>
|
||||
<string name="remove_passphrase_from_keychain">Odstranit přístupovou frázi z úložiště klíčů\?</string>
|
||||
<string name="notifications_will_be_hidden">Oznámení budou doručována pouze do doby, než se aplikace zastaví!</string>
|
||||
<string name="remove_passphrase">Odstranit</string>
|
||||
@@ -300,10 +300,10 @@
|
||||
<string name="current_passphrase">Aktuální přístupová fráze…</string>
|
||||
<string name="update_database_passphrase">Aktualizovat přístupovou frázi databáze</string>
|
||||
<string name="enter_correct_current_passphrase">Zadejte prosím správnou aktuální přístupovou frázi.</string>
|
||||
<string name="database_is_not_encrypted">Váš databáze konverzace není zašifrována - nastavte přístupovou frázi pro její ochranu.</string>
|
||||
<string name="database_is_not_encrypted">Váš chat databáze není šifrována - nastavte přístupovou frázi pro její ochranu.</string>
|
||||
<string name="keychain_is_storing_securely">K bezpečnému uložení heslové fráze slouží úložiště klíčů Android - umožňuje fungování služby oznámení.</string>
|
||||
<string name="impossible_to_recover_passphrase"><b>Upozornění</b>: pokud přístupovou frázi ztratíte, NEBUDE možné ji obnovit ani změnit.</string>
|
||||
<string name="database_will_be_encrypted_and_passphrase_stored">Databáze bude zašifrována a přístupová fráze bude uložena v úložišti klíčů.</string>
|
||||
<string name="database_will_be_encrypted_and_passphrase_stored">Databáze bude šifrována a přístupová fráze bude uložena v úložišti klíčů.</string>
|
||||
<string name="store_passphrase_securely">Heslo uložte bezpečně, v případě jeho ztráty jej NEBUDE možné změnit.</string>
|
||||
<string name="file_with_path">Soubor: %s</string>
|
||||
<string name="database_passphrase_is_required">Pro otevření chatu je vyžadována přístupová fráze databáze.</string>
|
||||
@@ -313,7 +313,7 @@
|
||||
<string name="restore_database_alert_desc">Po obnovení zálohy databáze zadejte předchozí heslo. Tuto akci nelze vrátit zpět.</string>
|
||||
<string name="chat_is_stopped_indication">Chat je zastaven</string>
|
||||
<string name="chat_archive_header">Chat se archivuje</string>
|
||||
<string name="delete_chat_archive_question">Smazat archiv chatu\?</string>
|
||||
<string name="delete_chat_archive_question">Smazat chat archiv\?</string>
|
||||
<string name="join_group_question">Připojit se ke skupině\?</string>
|
||||
<string name="join_group_button">Připojte se na</string>
|
||||
<string name="leave_group_button">Opustit</string>
|
||||
@@ -327,7 +327,7 @@
|
||||
<string name="rcv_conn_event_switch_queue_phase_completed">změnila se vaše adresa</string>
|
||||
<string name="icon_descr_expand_role">Rozšířit výběr rolí</string>
|
||||
<string name="invite_prohibited">Nelze pozvat kontakt!</string>
|
||||
<string name="failed_to_create_user_duplicate_desc">Již máte profil chatu se stejným zobrazovacím názvem. Zvolte prosím jiné jméno.</string>
|
||||
<string name="failed_to_create_user_duplicate_desc">Již máte profil chatu se stejným názvem. Zvolte prosím jiné jméno.</string>
|
||||
<string name="smp_server_test_create_queue">Vytvořit frontu</string>
|
||||
<string name="smp_server_test_secure_queue">Zabezpečit frontu</string>
|
||||
<string name="service_notifications">Okamžitá oznámení!</string>
|
||||
@@ -336,7 +336,7 @@
|
||||
<string name="periodic_notifications_desc">Aplikace pravidelně načítá nové zprávy - denně spotřebuje několik procent baterie. Aplikace nepoužívá push oznámení - data ze zařízení nejsou odesílána na servery.</string>
|
||||
<string name="enter_passphrase_notification_title">Je vyžadována přístupová fráze</string>
|
||||
<string name="enter_passphrase_notification_desc">Chcete-li dostávat oznámení, zadejte přístupovou frázi do databáze.</string>
|
||||
<string name="database_initialization_error_title">Nelze inicializovat databázi</string>
|
||||
<string name="database_initialization_error_title">Nelze načíst databázi</string>
|
||||
<string name="hide_notification">Skrýt</string>
|
||||
<string name="ntf_channel_calls">Volání SimpleX Chat</string>
|
||||
<string name="notification_preview_new_message">nová zpráva</string>
|
||||
@@ -345,25 +345,25 @@
|
||||
<string name="confirm_verb">Potvrdit</string>
|
||||
<string name="send_us_an_email">Pošlete nám e-mail</string>
|
||||
<string name="chat_lock">Zámek SimpleX</string>
|
||||
<string name="install_simplex_chat_for_terminal">Instalace <xliff:g id="appNameFull">SimpleX Chat</xliff:g> pro terminál</string>
|
||||
<string name="star_on_github">Hvězda na GitHubu</string>
|
||||
<string name="install_simplex_chat_for_terminal">Instalovat <xliff:g id="appNameFull">SimpleX Chat</xliff:g> terminál</string>
|
||||
<string name="star_on_github">Hvězdu na GitHubu</string>
|
||||
<string name="rate_the_app">Ohodnoťte aplikaci</string>
|
||||
<string name="your_SMP_servers">Vaše servery SMP</string>
|
||||
<string name="network_disable_socks_info">Pokud potvrdíte, budou servery pro zasílání zpráv vidět vaši IP adresu a váš poskytovatel - ke kterým serverům se připojujete.</string>
|
||||
<string name="network_disable_socks_info">Pokud potvrdíte, budou servery zasílající zprávy vidět vaši IP adresu a váš poskytovatel - ke kterým serverům se připojujete.</string>
|
||||
<string name="colored">barevné</string>
|
||||
<string name="secret">secret</string>
|
||||
<string name="secret">tajné</string>
|
||||
<string name="callstatus_calling">volání…</string>
|
||||
<string name="callstate_connected">připojeno</string>
|
||||
<string name="callstate_ended">ukončeno</string>
|
||||
<string name="next_generation_of_private_messaging">Nová generace soukromých zpráv</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Lidé se s vámi mohou spojit pouze prostřednictvím odkazů, které sdílíte.</string>
|
||||
<string name="integrity_msg_bad_hash">špatný hash zprávy</string>
|
||||
<string name="chat_database_imported">Importovaná databáze chatu</string>
|
||||
<string name="callstate_connected">připojen</string>
|
||||
<string name="callstate_ended">ukončen</string>
|
||||
<string name="next_generation_of_private_messaging">Příští generace soukromé komunikace</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">Lidé se s vámi mohou spojit pouze prostřednictvím odkazu, který sdílíte.</string>
|
||||
<string name="integrity_msg_bad_hash">špatný kontrolní součet zprávy</string>
|
||||
<string name="chat_database_imported">Chat databáze importována</string>
|
||||
<string name="new_passphrase">Nová přístupová fráze…</string>
|
||||
<string name="save_passphrase_and_open_chat">Uložte heslo a otevřete chat</string>
|
||||
<string name="chat_archive_section">ARCHIV CHATU</string>
|
||||
<string name="chat_archive_section">CHAT ARCHIV</string>
|
||||
<string name="no_contacts_selected">Nebyl vybrán žádný kontakt</string>
|
||||
<string name="invite_prohibited_description">Snažíte se pozvat kontakt, se kterým jste sdíleli inkognito profil, do skupiny, ve které používáte svůj hlavní profil</string>
|
||||
<string name="invite_prohibited_description">Snažíte se pozvat kontakt se kterým jste sdíleli inkognito profil, do skupiny ve které používáte svůj hlavní profil</string>
|
||||
<string name="info_row_group">Skupina</string>
|
||||
<string name="network_options_revert">Vrátit</string>
|
||||
<string name="updating_settings_will_reconnect_client_to_all_servers">Aktualizací nastavení se klient znovu připojí ke všem serverům.</string>
|
||||
@@ -377,7 +377,7 @@
|
||||
<string name="icon_descr_settings">Nastavení</string>
|
||||
<string name="image_descr_qr_code">QR kód</string>
|
||||
<string name="show_QR_code_for_your_contact_to_scan_from_the_app__multiline">Váš kontakt může z aplikace naskenovat QR kód.</string>
|
||||
<string name="if_you_cannot_meet_in_person_show_QR_in_video_call_or_via_another_channel">Pokud se nemůžete setkat osobně, ukažte <b>ve videohovoru QR kód</b> nebo sdílejte odkaz.</string>
|
||||
<string name="if_you_cannot_meet_in_person_show_QR_in_video_call_or_via_another_channel">Pokud se nemůžete setkat osobně, ukažte ve <b>videohovoru QR kód</b> nebo sdílejte odkaz.</string>
|
||||
<string name="scan_code">Skenovat kód</string>
|
||||
<string name="incorrect_code">Nesprávný bezpečnostní kód!</string>
|
||||
<string name="scan_code_from_contacts_app">Naskenujte bezpečnostní kód z aplikace vašeho kontaktu.</string>
|
||||
@@ -385,21 +385,21 @@
|
||||
<string name="clear_verification">Zrušte ověření</string>
|
||||
<string name="to_verify_compare">Chcete-li ověřit koncové šifrování u svého kontaktu, porovnejte (nebo naskenujte) kód na svých zařízeních.</string>
|
||||
<string name="your_settings">Vaše nastavení</string>
|
||||
<string name="your_simplex_contact_address">Vaše <xliff:g id="appName">Adresa kontaktu SimpleX</xliff:g></string>
|
||||
<string name="database_passphrase_and_export">Databázová hesla a export</string>
|
||||
<string name="your_chat_profiles">Vaše profily v chatu</string>
|
||||
<string name="chat_with_the_founder">Zasílání otázek a nápadů</string>
|
||||
<string name="smp_servers_test_server">Testovací server</string>
|
||||
<string name="your_simplex_contact_address">Vaše <xliff:g id="appName">SimpleX</xliff:g> adresa</string>
|
||||
<string name="database_passphrase_and_export">Heslo databáze a export</string>
|
||||
<string name="your_chat_profiles">Vaše chat profily</string>
|
||||
<string name="chat_with_the_founder">Zaslat otázky a nápady</string>
|
||||
<string name="smp_servers_test_server">Test serveru</string>
|
||||
<string name="enter_one_ICE_server_per_line">Servery ICE (jeden na řádek)</string>
|
||||
<string name="network_use_onion_hosts_required_desc">Pro připojení budou vyžadováni Onion hostitelé.</string>
|
||||
<string name="update_network_session_mode_question">Aktualizovat režim izolace\?</string>
|
||||
<string name="app_version_code">Sestavení aplikace: %s</string>
|
||||
<string name="you_can_share_your_address_anybody_will_be_able_to_connect">Můžete sdílet svou adresu jako odkaz nebo jako QR kód - kdokoli se k vám bude moci připojit. O své kontakty nepřijdete, pokud ji později smažete.</string>
|
||||
<string name="share_link">Sdílet odkaz</string>
|
||||
<string name="delete_address">Odstranit adresu</string>
|
||||
<string name="delete_address">Smazat adresu</string>
|
||||
<string name="full_name__field">Celé jméno:</string>
|
||||
<string name="your_current_profile">Váš současný profil</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery">Pro zachování soukromí má aplikace místo push oznámení <b><xliff:g id="appName">SimpleX</xliff:g> službu na pozadí</b> - denně spotřebuje několik procent baterie.</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery">Pro zachování vašeho soukromí používá aplikace místo push oznámení <b><xliff:g id="appName">SimpleX</xliff:g> službu na pozadí</b> - denně využije několik procent baterie.</string>
|
||||
<string name="periodic_notifications">Pravidelná oznámení</string>
|
||||
<string name="simplex_service_notification_title"><xliff:g id="appNameFull">SimpleX Chat</xliff:g> služba</string>
|
||||
<string name="simplex_service_notification_text">Příjem zpráv…</string>
|
||||
@@ -409,27 +409,27 @@
|
||||
<string name="notifications_mode_off">Spustí se při otevření aplikace</string>
|
||||
<string name="notifications_mode_periodic">Spouští se pravidelně</string>
|
||||
<string name="notifications_mode_service">Vždy zapnuto</string>
|
||||
<string name="notifications_mode_periodic_desc">Kontroluje nové zprávy každých 10 minut po dobu až 1 minuty</string>
|
||||
<string name="notifications_mode_periodic_desc">Každých 10 minut kontroluje nové zprávy, po dobu až 1 minuty</string>
|
||||
<string name="notification_preview_mode_contact_desc">Zobrazit pouze kontakt</string>
|
||||
<string name="notification_preview_somebody">Skrytý kontakt:</string>
|
||||
<string name="la_notice_turn_on">Zapněte funkci</string>
|
||||
<string name="auth_simplex_lock_turned_on">Zapnutý zámek SimpleX Lock</string>
|
||||
<string name="auth_unlock">Odemknutí stránky</string>
|
||||
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">Ověřování zařízení není povoleno. Jakmile povolíte ověřování zařízení, můžete zámek SimpleX Lock zapnout prostřednictvím Nastavení.</string>
|
||||
<string name="auth_device_authentication_is_disabled_turning_off">Ověřování zařízení je zakázáno. Vypnutí zámku SimpleX Lock.</string>
|
||||
<string name="auth_device_authentication_is_disabled_turning_off">Ověřování zařízení je zakázáno. Zámek SimpleX je vypnut.</string>
|
||||
<string name="edit_verb">Upravit</string>
|
||||
<string name="delete_verb">Smazat</string>
|
||||
<string name="for_everybody">Pro všechny</string>
|
||||
<string name="icon_descr_sent_msg_status_sent">odesláno</string>
|
||||
<string name="contact_connection_pending">připojení…</string>
|
||||
<string name="contact_connection_pending">připojování…</string>
|
||||
<string name="images_limit_desc">Současně lze odeslat pouze 10 obrázků</string>
|
||||
<string name="image_decoding_exception_title">Chyba dekódování</string>
|
||||
<string name="image_saved">Obrázek uložen do galerie</string>
|
||||
<string name="icon_descr_file">Soubor</string>
|
||||
<string name="large_file">Velký soubor!</string>
|
||||
<string name="file_will_be_received_when_contact_is_online">Soubor bude přijat, až bude váš kontakt online, vyčkejte prosím nebo se podívejte později!</string>
|
||||
<string name="file_will_be_received_when_contact_is_online">Soubor bude přijat, až bude váš kontakt online, vyčkejte prosím, nebo se podívejte později!</string>
|
||||
<string name="file_saved">Soubor uložen</string>
|
||||
<string name="file_not_found">Soubor nebyl nalezen</string>
|
||||
<string name="file_not_found">Soubor nenalezen</string>
|
||||
<string name="voice_message_with_duration">Hlasová zpráva (<xliff:g id="duration">%1$s</xliff:g>)</string>
|
||||
<string name="delete_contact_all_messages_deleted_cannot_undo_warning">Kontakt a všechny zprávy budou smazány - nelze to vzít zpět!</string>
|
||||
<string name="button_delete_contact">Smazat kontakt</string>
|
||||
@@ -453,7 +453,7 @@
|
||||
<string name="status_contact_has_e2e_encryption">kontakt má šifrování e2e</string>
|
||||
<string name="status_contact_has_no_e2e_encryption">kontakt nemá šifrování e2e</string>
|
||||
<string name="call_connection_peer_to_peer">peer-to-peer</string>
|
||||
<string name="call_connection_via_relay">přes relé</string>
|
||||
<string name="call_connection_via_relay">přes relay</string>
|
||||
<string name="icon_descr_hang_up">Zavěsit</string>
|
||||
<string name="icon_descr_video_off">Video vypnuto</string>
|
||||
<string name="icon_descr_video_on">Video zapnuto</string>
|
||||
@@ -466,19 +466,19 @@
|
||||
<string name="protect_app_screen">Ochrana obrazovky aplikace</string>
|
||||
<string name="send_link_previews">Odesílání náhledů odkazů</string>
|
||||
<string name="full_backup">Zálohování dat aplikace</string>
|
||||
<string name="confirm_new_passphrase">Potvrdit novou heslovou frázi…</string>
|
||||
<string name="confirm_new_passphrase">Potvrdit novou frázi…</string>
|
||||
<string name="error_with_info">Chyba: %s</string>
|
||||
<string name="leave_group_question">Opustit skupinu\?</string>
|
||||
<string name="icon_descr_group_inactive">Skupina je neaktivní</string>
|
||||
<string name="rcv_group_event_member_left">left</string>
|
||||
<string name="rcv_group_event_member_left">Opustit</string>
|
||||
<string name="clear_contacts_selection_button">Vymazat</string>
|
||||
<string name="switch_verb">Přepnout</string>
|
||||
<string name="member_role_will_be_changed_with_notification">Role bude změněna na \"%s\". Všichni ve skupině budou informováni.</string>
|
||||
<string name="error_removing_member">Chyba při odebrání člena</string>
|
||||
<string name="error_saving_group_profile">Chyba při ukládání profilu skupiny</string>
|
||||
<string name="network_option_seconds_label">sec</string>
|
||||
<string name="incognito_info_allows">Umožňuje mít v jednom profilu chatu mnoho anonymních spojení bez jakýchkoli sdílených údajů mezi nimi.</string>
|
||||
<string name="incognito_info_share">Pokud s někým sdílíte inkognito profil, bude tento profil použit pro skupiny, do kterých vás pozve.</string>
|
||||
<string name="error_removing_member">Chyba odebírání člena</string>
|
||||
<string name="error_saving_group_profile">Chyba ukládání profilu skupiny</string>
|
||||
<string name="network_option_seconds_label">vteřin</string>
|
||||
<string name="incognito_info_allows">Umožňuje mít v jednom chat profilu mnoho anonymních spojení bez sdílení údajů mezi nimi.</string>
|
||||
<string name="incognito_info_share">Pokud s někým sdílíte inkognito profil, bude použit pro skupiny, do kterých vás pozve.</string>
|
||||
<string name="theme_system">Systém</string>
|
||||
<string name="voice_messages">Hlasové zprávy</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Vy i váš kontakt můžete nevratně mazat odeslané zprávy.</string>
|
||||
@@ -490,28 +490,28 @@
|
||||
<string name="v4_2_security_assessment">Posouzení bezpečnosti</string>
|
||||
<string name="v4_2_security_assessment_desc">Bezpečnost SimpleX Chat byla prověřena společností Trail of Bits.</string>
|
||||
<string name="v4_3_irreversible_message_deletion">Nevratné mazání zpráv</string>
|
||||
<string name="v4_3_improved_server_configuration">Vylepšená konfigurace serveru</string>
|
||||
<string name="v4_3_improved_privacy_and_security">Vylepšená ochrana soukromí a zabezpečení</string>
|
||||
<string name="v4_3_improved_privacy_and_security_desc">Skrytí obrazovky aplikace v posledních aplikacích.</string>
|
||||
<string name="v4_3_improved_server_configuration">Vylepšena konfigurace serveru</string>
|
||||
<string name="v4_3_improved_privacy_and_security">Vylepšena ochrana soukromí a zabezpečení</string>
|
||||
<string name="v4_3_improved_privacy_and_security_desc">Skryta obrazovka aplikace v posledních aplikacích.</string>
|
||||
<string name="v4_4_disappearing_messages_desc">Odeslané zprávy se po uplynutí nastavené doby odstraní.</string>
|
||||
<string name="v4_4_live_messages">Živé zprávy</string>
|
||||
<string name="v4_4_live_messages_desc">Příjemci uvidí aktualizace během jejich psaní.</string>
|
||||
<string name="v4_4_live_messages_desc">Příjemci uvidí aktualizaci během psaní.</string>
|
||||
<string name="v4_4_verify_connection_security">Ověření zabezpečení připojení</string>
|
||||
<string name="v4_4_french_interface">Francouzské rozhraní</string>
|
||||
<string name="v4_4_french_interface_descr">Díky uživatelům - přispívejte prostřednictvím Weblate!</string>
|
||||
<string name="v4_5_multiple_chat_profiles">Více chatovacích profilů</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">Různá jména, avatary a dopravní izolace.</string>
|
||||
<string name="v4_5_message_draft">Návrh zprávy</string>
|
||||
<string name="v4_4_french_interface_descr">Díky uživatelům - překládejte prostřednictvím Weblate!</string>
|
||||
<string name="v4_5_multiple_chat_profiles">Více chat profilů</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">Různá jména, avataři a izolace přenosu.</string>
|
||||
<string name="v4_5_message_draft">Návrh zpráv</string>
|
||||
<string name="v4_5_message_draft_descr">Zachování posledního návrhu zprávy s přílohami.</string>
|
||||
<string name="v4_5_transport_isolation">Izolace transportu</string>
|
||||
<string name="v4_5_transport_isolation_descr">Podle profilu chatu (výchozí) nebo podle připojení (BETA).</string>
|
||||
<string name="you_will_join_group">Připojíte se ke skupině, na kterou tento odkaz odkazuje, a spojíte se s jejími členy.</string>
|
||||
<string name="v4_5_transport_isolation">Izolace přenosu</string>
|
||||
<string name="v4_5_transport_isolation_descr">Podle chat profilu (výchozí) nebo podle připojení (BETA).</string>
|
||||
<string name="you_will_join_group">Připojíte se ke skupině, na kterou odkazuje tento odkaz, a spojíte se s jejími členy.</string>
|
||||
<string name="connect_via_link_verb">Připojení</string>
|
||||
<string name="connected_to_server_to_receive_messages_from_contact">Jste připojeni k serveru, který se používá k přijímání zpráv od tohoto kontaktu.</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages_with_error">Pokoušíte se připojit k serveru používanému pro příjem zpráv od tohoto kontaktu (chyba: <xliff:g id="errorMsg">%1$s</xliff:g>).</string>
|
||||
<string name="marked_deleted_description">označeno jako smazáno</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages_with_error">Pokoušíte se připojit k serveru používaném pro příjem zpráv od tohoto kontaktu (chyba: <xliff:g id="errorMsg">%1$s</xliff:g>).</string>
|
||||
<string name="marked_deleted_description">označit jako smazáno</string>
|
||||
<string name="sending_files_not_yet_supported">Odesílání souborů zatím není podporováno</string>
|
||||
<string name="receiving_files_not_yet_supported">přijímání souborů zatím není podporováno</string>
|
||||
<string name="receiving_files_not_yet_supported">Přijímání souborů zatím není podporováno</string>
|
||||
<string name="sender_you_pronoun">ty</string>
|
||||
<string name="unknown_message_format">neznámý formát zprávy</string>
|
||||
<string name="invalid_message_format">neplatný formát zprávy</string>
|
||||
@@ -524,10 +524,10 @@
|
||||
<string name="error_joining_group">Chyba při připojování ke skupině</string>
|
||||
<string name="cannot_receive_file">Nelze přijmout soubor</string>
|
||||
<string name="sender_cancelled_file_transfer">Odesílatel zrušil přenos souboru.</string>
|
||||
<string name="error_receiving_file">Chyba při příjmu souboru</string>
|
||||
<string name="error_creating_address">Chyba při vytváření adresy</string>
|
||||
<string name="error_receiving_file">Chyba příjmu souboru</string>
|
||||
<string name="error_creating_address">Chyba vytváření adresy</string>
|
||||
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">Zkontrolujte, zda jste použili správný odkaz, nebo požádejte kontakt, aby vám poslal jiný.</string>
|
||||
<string name="connection_error_auth_desc">Pokud váš kontakt spojení nesmazal nebo tento odkaz již byl použit, může se jednat o chybu - nahlaste ji prosím. Chcete-li se připojit, požádejte prosím svůj kontakt o vytvoření jiného odkazu pro připojení a zkontrolujte, zda máte stabilní připojení k síti.</string>
|
||||
<string name="connection_error_auth_desc">Pokud váš kontakt spojení nesmazal a tento odkaz ještě nebyl použit, může se jednat o chybu - nahlaste ji prosím. Chcete-li se připojit, požádejte prosím svůj kontakt o vytvoření jiného odkazu pro připojení a zkontrolujte, zda máte stabilní připojení k síti.</string>
|
||||
<string name="error_deleting_contact">Chyba mazání kontaktu</string>
|
||||
<string name="error_deleting_group">Chyba mazání skupiny</string>
|
||||
<string name="error_deleting_contact_request">Chyba mazání žádosti kontaktu</string>
|
||||
@@ -539,18 +539,18 @@
|
||||
<string name="error_deleting_user">Chyba mazání uživatelského profilu</string>
|
||||
<string name="icon_descr_instant_notifications">Okamžitá oznámení</string>
|
||||
<string name="service_notifications_disabled">Okamžitá oznámení jsou vypnutá!</string>
|
||||
<string name="turning_off_service_and_periodic">Je aktivní optimalizace baterie, která vypíná službu na pozadí a pravidelné požadavky na nové zprávy. Můžete je znovu povolit prostřednictvím nastavení.</string>
|
||||
<string name="turning_off_service_and_periodic">Je aktivní optimalizace baterie, která vypíná službu na pozadí a pravidelné požadavky na nové zprávy. Můžete ji znovu povolit prostřednictvím nastavení.</string>
|
||||
<string name="periodic_notifications_disabled">Pravidelná oznámení jsou vypnuta!</string>
|
||||
<string name="database_initialization_error_desc">Databáze nefunguje správně. Klepnutím na se dozvíte více</string>
|
||||
<string name="notifications_mode_off_desc">Aplikace může přijímat oznámení pouze při svém spuštění, žádná služba na pozadí se nespustí</string>
|
||||
<string name="database_initialization_error_desc">Databáze nefunguje správně. Klepnutím se dozvíte více</string>
|
||||
<string name="notifications_mode_off_desc">Aplikace může přijímat oznámení pouze při svém běhu, žádná služba na pozadí nebude spuštěna</string>
|
||||
<string name="notification_display_mode_hidden_desc">Skrýt kontakt a zprávu</string>
|
||||
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">Chcete-li chránit své informace, zapněte zámek SimpleX Lock. Před zapnutím této funkce budete vyzváni k dokončení ověření.</string>
|
||||
<string name="auth_you_will_be_required_to_authenticate_when_you_start_or_resume">Při spuštění nebo obnovení aplikace po 30 sekundách na pozadí budete vyzváni k ověření.</string>
|
||||
<string name="auth_disable_simplex_lock">Vypnutí zámku SimpleX</string>
|
||||
<string name="auth_disable_simplex_lock">Vypnout zámek SimpleX</string>
|
||||
<string name="auth_confirm_credential">Potvrďte své pověření</string>
|
||||
<string name="auth_unavailable">Ověřování není k dispozici</string>
|
||||
<string name="auth_stop_chat">Zastavení chatu</string>
|
||||
<string name="auth_open_chat_console">Otevřete konzolu chatu</string>
|
||||
<string name="auth_stop_chat">Zastavit chat</string>
|
||||
<string name="auth_open_chat_console">Otevřete chat konzoli</string>
|
||||
<string name="message_delivery_error_title">Chyba doručení zprávy</string>
|
||||
<string name="message_delivery_error_desc">Tento kontakt s největší pravděpodobností smazal spojení s vámi.</string>
|
||||
<string name="save_verb">Uložit</string>
|
||||
@@ -564,8 +564,8 @@
|
||||
<string name="group_preview_you_are_invited">jste pozváni do skupiny</string>
|
||||
<string name="group_preview_join_as">připojit jako %s</string>
|
||||
<string name="group_connection_pending">připojuje se…</string>
|
||||
<string name="tap_to_start_new_chat">Klepnutím na zahájíte nový chat</string>
|
||||
<string name="chat_with_developers">Chatujte s vývojáři</string>
|
||||
<string name="tap_to_start_new_chat">Začněte nový chat</string>
|
||||
<string name="chat_with_developers">Chat s vývojáři</string>
|
||||
<string name="you_have_no_chats">Nemáte žádné konverzace</string>
|
||||
<string name="icon_descr_cancel_image_preview">Zrušit náhled obrázku</string>
|
||||
<string name="share_message">Sdílet zprávu…</string>
|
||||
@@ -576,7 +576,7 @@
|
||||
<string name="notifications">Oznámení</string>
|
||||
<string name="delete_contact_question">Smazat kontakt\?</string>
|
||||
<string name="icon_descr_server_status_pending">Čeká na vyřízení</string>
|
||||
<string name="verify_security_code">Ověření bezpečnostního kódu</string>
|
||||
<string name="verify_security_code">Ověřit bezpečnostní kód</string>
|
||||
<string name="icon_descr_send_message">Odeslat zprávu</string>
|
||||
<string name="only_group_owners_can_enable_voice">Pouze majitelé skupin mohou povolit zasílání hlasových zpráv.</string>
|
||||
<string name="send_live_message">Odeslat živou zprávu</string>
|
||||
@@ -584,12 +584,12 @@
|
||||
<string name="connect_via_link_or_qr">Připojit se prostřednictvím odkazu / QR kódu</string>
|
||||
<string name="thank_you_for_installing_simplex">Děkujeme za instalaci <xliff:g id="appNameFull">SimpleX Chat</xliff:g>!</string>
|
||||
<string name="you_can_connect_to_simplex_chat_founder">Můžete se <font color="#0088ff">připojit k <xliff:g id="appNameFull">SimpleX Chat</xliff:g> vývojářům a položit jim případné dotazy a získat aktualizace</font>.</string>
|
||||
<string name="to_connect_via_link_title">K připojení prostřednictvím odkazu</string>
|
||||
<string name="if_you_received_simplex_invitation_link_you_can_open_in_browser">Pokud jste dostal <xliff:g id="appName">SimpleX Chat</xliff:g> zvací odkaz, Můžete ho otevřít v prohlížeči:</string>
|
||||
<string name="to_connect_via_link_title">Připojení prostřednictvím odkazu</string>
|
||||
<string name="if_you_received_simplex_invitation_link_you_can_open_in_browser">Pokud jste dostali <xliff:g id="appName">SimpleX Chat</xliff:g> zvací odkaz, Můžete ho otevřít v prohlížeči:</string>
|
||||
<string name="if_you_choose_to_reject_the_sender_will_not_be_notified">Pokud zvolíte odmítnutí, odesílatel NEBUDE upozorněn.</string>
|
||||
<string name="mobile_tap_open_in_mobile_app_then_tap_connect_in_app">📱 mobilní telefon: tap <b>Otevřete v mobilní aplikaci</b>, potom klikněte <b>Připojit</b>.</string>
|
||||
<string name="reject_contact_button">Odmítnout</string>
|
||||
<string name="clear_chat_button">Čistá konverzace</string>
|
||||
<string name="clear_chat_button">Smazat chat</string>
|
||||
<string name="clear_chat_menu_action">Čistý</string>
|
||||
<string name="delete_contact_menu_action">Smazat</string>
|
||||
<string name="set_contact_name">Nastavit jméno kontaktu</string>
|
||||
@@ -617,17 +617,17 @@
|
||||
<string name="this_string_is_not_a_connection_link">Tento řetězec není odkazem na připojení!</string>
|
||||
<string name="you_can_also_connect_by_clicking_the_link">Můžete se také připojit kliknutím na odkaz. Pokud se otevře v prohlížeči, klikněte na tlačítko <b>Otevřít v mobilní aplikaci</b>.</string>
|
||||
<string name="is_not_verified">\"%s není ověřeno</string>
|
||||
<string name="how_to_use_simplex_chat">Jak ji používat</string>
|
||||
<string name="how_to_use_simplex_chat">Návod k použití</string>
|
||||
<string name="markdown_help">Nápověda k markdown</string>
|
||||
<string name="smp_servers_save">Uložit servery</string>
|
||||
<string name="markdown_in_messages">Markdown ve zprávách</string>
|
||||
<string name="smp_servers_test_servers">Testovací servery</string>
|
||||
<string name="smp_servers_test_servers">Testovat servery</string>
|
||||
<string name="smp_servers_preset_server">Přednastavený server</string>
|
||||
<string name="smp_servers_your_server">Váš server</string>
|
||||
<string name="smp_servers_your_server_address">Adresa vašeho serveru</string>
|
||||
<string name="smp_servers_use_server">Použít server</string>
|
||||
<string name="smp_servers_use_server_for_new_conn">Použít pro nová připojení</string>
|
||||
<string name="smp_servers_per_user">Servery pro nová připojení vašeho aktuálního profilu chatu.</string>
|
||||
<string name="smp_servers_per_user">Servery pro nová připojení vašeho aktuálního chat profilu.</string>
|
||||
<string name="use_simplex_chat_servers__question">Použít <xliff:g id="appNameFull">SimpleX Chat</xliff:g> servery\?</string>
|
||||
<string name="using_simplex_chat_servers">Použití <xliff:g id="appNameFull">SimpleX Chat</xliff:g> serverů.</string>
|
||||
<string name="saved_ICE_servers_will_be_removed">Uložené servery WebRTC ICE budou odstraněny.</string>
|
||||
@@ -638,11 +638,11 @@
|
||||
<string name="network_socks_toggle">Použít proxy server SOCKS (port 9050)</string>
|
||||
<string name="update_onion_hosts_settings_question">Aktualizovat nastavení hostitelů .onion\?</string>
|
||||
<string name="network_use_onion_hosts">Použít hostitele .onion</string>
|
||||
<string name="network_use_onion_hosts_prefer">Když je k dispozici</string>
|
||||
<string name="network_use_onion_hosts_prefer">Pokud je k dispozici</string>
|
||||
<string name="network_use_onion_hosts_required">Povinné</string>
|
||||
<string name="network_use_onion_hosts_prefer_desc">Onion hostitelé se použijí, pokud jsou k dispozici.</string>
|
||||
<string name="network_use_onion_hosts_prefer_desc">Onion hostitelé budou použiti, pokud jsou k dispozici.</string>
|
||||
<string name="network_use_onion_hosts_no_desc">Onion hostitelé nebudou použiti.</string>
|
||||
<string name="network_use_onion_hosts_prefer_desc_in_alert">Onion hostitelé budou použiti, pokud budou k dispozici.</string>
|
||||
<string name="network_use_onion_hosts_prefer_desc_in_alert">Onion hostitelé budou použiti, pokud jsou k dispozici.</string>
|
||||
<string name="network_use_onion_hosts_required_desc_in_alert">Pro připojení budou vyžadováni Onion hostitelé.</string>
|
||||
<string name="network_session_mode_transport_isolation">Izolace přenosu</string>
|
||||
<string name="network_session_mode_user_description">A separate TCP connection (and SOCKS credential) will be used <b>for each chat profile you have in the app</b>.</string>
|
||||
@@ -656,11 +656,13 @@
|
||||
<string name="all_your_contacts_will_remain_connected">Všechny vaše kontakty zůstanou připojeny.</string>
|
||||
<string name="contact_requests">Žádosti o kontakt</string>
|
||||
<string name="display_name__field">Zobrazované jméno:</string>
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">Váš profil je uložen v zařízení a je sdílen pouze s vašimi kontakty. <xliff:g id="appName">SimpleX</xliff:g> servery váš profil nevidí.</string>
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">Váš profil je uložen v zařízení a je sdílen pouze s vašimi kontakty.
|
||||
\n
|
||||
\n<xliff:g id="appName">SimpleX</xliff:g> servery váš profil vidět nemohou.</string>
|
||||
<string name="save_preferences_question">Uložit předvolby\?</string>
|
||||
<string name="save_and_notify_contact">Uložit a upozornit kontakt</string>
|
||||
<string name="save_and_notify_contacts">Uložit a upozornit kontakty</string>
|
||||
<string name="you_control_your_chat">Chat máte pod kontrolou!</string>
|
||||
<string name="you_control_your_chat">Kontrolujete chat!</string>
|
||||
<string name="we_do_not_store_contacts_or_messages_on_servers">Na serverech neukládáme žádné vaše kontakty ani zprávy (po doručení).</string>
|
||||
<string name="your_profile_is_stored_on_your_device">Váš profil, kontakty a doručené zprávy jsou uloženy ve vašem zařízení.</string>
|
||||
<string name="display_name">Zobrazované jméno</string>
|
||||
@@ -681,49 +683,49 @@
|
||||
<string name="callstate_received_confirmation">obdržel potvrzení…</string>
|
||||
<string name="callstate_connecting">připojení…</string>
|
||||
<string name="privacy_redefined">Nové vymezení soukromí</string>
|
||||
<string name="first_platform_without_user_ids">1. Platforma bez identifikátorů uživatelů - soukromá už od záměru.</string>
|
||||
<string name="first_platform_without_user_ids">1. Platforma bez identifikátoru uživatelů - soukromá od základu.</string>
|
||||
<string name="immune_to_spam_and_abuse">Odolná vůči spamu a zneužití</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">K ochraně soukromí, místo uživatelských ID používaných všemi ostatními platformami, <xliff:g id="appName">SimpleX</xliff:g> má identifikátory pro fronty zpráv, zvlášť pro každý z vašich kontaktů.</string>
|
||||
<string name="many_people_asked_how_can_it_deliver">Mnoho lidí se ptalo: <i>if <xliff:g id="appName">SimpleX</xliff:g> nemá žádné identifikátory uživatelů, jak může doručovat zprávy\?</i></string>
|
||||
<string name="you_control_servers_to_receive_your_contacts_to_send">Vy kontrolujete přez který server(y) <b>přijímat</b> zprávy, vaše kontakty - servery které používáte pro konverzaci.</string>
|
||||
<string name="read_more_in_github">Další informace najdete v našem repozitáři GitHub.</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">K ochraně soukromí, místo uživatelských ID užívaných všemi ostatními platformami, <xliff:g id="appName">SimpleX</xliff:g> používá identifikátory pro fronty zpráv, zvlášť pro každý z vašich kontaktů.</string>
|
||||
<string name="many_people_asked_how_can_it_deliver">Mnoho lidí se ptá: <i>když <xliff:g id="appName">SimpleX</xliff:g> nemá žádný identifikátor uživatelů, jak může doručovat zprávy\?</i></string>
|
||||
<string name="you_control_servers_to_receive_your_contacts_to_send">Vy kontrolujete přez který server <b>přijímáte</b> zprávy a kontakty i server které používáte pro odchozí komunikaci.</string>
|
||||
<string name="read_more_in_github">Další informace najdete v našem repozitáři na GitHubu.</string>
|
||||
<string name="read_more_in_github_with_link">Další informace najdete v našem <font color="#0088ff">úložišti GitHub</font>.</string>
|
||||
<string name="use_chat">Konverzovat</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">Lze změnit později v nastavení.</string>
|
||||
<string name="onboarding_notifications_mode_off">Když je aplikace spuštěná</string>
|
||||
<string name="onboarding_notifications_mode_service">Okamžitý</string>
|
||||
<string name="onboarding_notifications_mode_off">Když aplikace běží</string>
|
||||
<string name="onboarding_notifications_mode_service">Okamžité</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><b>Nejlepší pro baterii</b>. Budete přijímat oznámení pouze když aplikace běží, služba na pozadí NEBUDE použita.</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><Dobré pro baterii</b>. Služba na pozadí kontroluje nové zprávy každých 10 minut. Můžete zmeškat hovory a naléhavé zprávy.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>Využívá více baterie</b>! Služba na pozadí je spuštěna vždy - oznámení se zobrazí, jakmile jsou zprávy k dispozici.</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><b>Dobré pro baterii</b>. Služba na pozadí bude kontrolovat nové zprávy každých 10 minut. Můžete zmeškat hovory a naléhavé zprávy.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>Využívá více baterie</b>! Služba na pozadí je vždy spuštěna - oznámení se zobrazí, jakmile jsou zprávy k dispozici.</string>
|
||||
<string name="paste_the_link_you_received">Vložení přijatého odkazu</string>
|
||||
<string name="incoming_video_call">Příchozí videohovor</string>
|
||||
<string name="incoming_audio_call">Příchozí zvukový hovor</string>
|
||||
<string name="contact_wants_to_connect_via_call"><xliff:g id="contactName" example="Alice">%1$s</xliff:g> se s vámi chce spojit prostřednictvím</string>
|
||||
<string name="video_call_no_encryption">videohovoru (nešifrovaného e2e).</string>
|
||||
<string name="audio_call_no_encryption">zvukový hovor (nešifrovaný e2e)</string>
|
||||
<string name="audio_call_no_encryption">hovoru (nešifrovaného e2e)</string>
|
||||
<string name="reject">Odmítnout</string>
|
||||
<string name="your_calls">Vaše hovory</string>
|
||||
<string name="connect_calls_via_relay">Spojení přes relé</string>
|
||||
<string name="connect_calls_via_relay">Spojení přes relay</string>
|
||||
<string name="show_call_on_lock_screen">Zobrazit</string>
|
||||
<string name="no_call_on_lock_screen">Zakázat</string>
|
||||
<string name="your_ice_servers">Vaše servery ICE</string>
|
||||
<string name="webrtc_ice_servers">WebRTC servery ICE</string>
|
||||
<string name="status_no_e2e_encryption">bez šifrování e2e</string>
|
||||
<string name="icon_descr_flip_camera">Flipová kamera</string>
|
||||
<string name="icon_descr_flip_camera">Otočit foťák</string>
|
||||
<string name="icon_descr_call_pending_sent">Probíhající hovor</string>
|
||||
<string name="icon_descr_call_missed">Zmeškaný hovor</string>
|
||||
<string name="icon_descr_call_rejected">Odmítnutý hovor</string>
|
||||
<string name="icon_descr_call_connecting">Spojení hovoru</string>
|
||||
<string name="icon_descr_call_connecting">Spojování hovoru</string>
|
||||
<string name="icon_descr_call_ended">Ukončený hovor</string>
|
||||
<string name="answer_call">Přijmout hovor</string>
|
||||
<string name="integrity_msg_skipped"><xliff:g id="connection ID" example="1">%1$d</xliff:g> přeskočená zpráva (zprávy)</string>
|
||||
<string name="alert_text_skipped_messages_it_can_happen_when">Může se to stát, když: 1. Zprávy na serveru vyprší, pokud nebyly přijaty po dobu 30 dnů, 2. Server, který používáte pro příjem zpráv od tohoto kontaktu, byl aktualizován a restartován. 3. Spojení je narušeno. Připojte se k vývojářům prostřednictvím Nastavení, abyste mohli dostávat aktualizace o serverech. Budeme přidávat redundantní servery, abychom zabránili ztrátě zpráv.</string>
|
||||
<string name="settings_section_title_you">VY</string>
|
||||
<string name="settings_section_title_support">PODPORA SIMPLEX CHAT</string>
|
||||
<string name="settings_section_title_develop">DEVELOP</string>
|
||||
<string name="settings_section_title_support">PODPOŘIT SIMPLEX CHAT</string>
|
||||
<string name="settings_section_title_develop">VÝVOJ</string>
|
||||
<string name="settings_developer_tools">Nástroje pro vývojáře</string>
|
||||
<string name="settings_section_title_incognito">Režim inkognito</string>
|
||||
<string name="your_chat_database">Vaše chatovací databáze</string>
|
||||
<string name="settings_section_title_incognito">Inkognito mód</string>
|
||||
<string name="your_chat_database">Vaše chat databáze</string>
|
||||
<string name="run_chat_section">SPUSTIT CHAT</string>
|
||||
<string name="chat_is_running">Chat je spuštěn</string>
|
||||
<string name="chat_is_stopped">Chat je zastaven</string>
|
||||
@@ -733,17 +735,18 @@
|
||||
<string name="old_database_archive">Archiv staré databáze</string>
|
||||
<string name="error_starting_chat">Chyba při spuštění chatu</string>
|
||||
<string name="stop_chat_question">Zastavit chat\?</string>
|
||||
<string name="stop_chat_to_export_import_or_delete_chat_database">Zastavení chatu pro export, import nebo smazání databáze chatu. Během zastavení chatu nebudete moci přijímat a odesílat zprávy.</string>
|
||||
<string name="stop_chat_to_export_import_or_delete_chat_database">Zastavte chat pro export, import nebo smazání chat databáze. Během zastavení, nebudete moci přijímat ani odesílat zprávy.</string>
|
||||
<string name="stop_chat_confirmation">Zastavit</string>
|
||||
<string name="set_password_to_export">Nastavení přístupové fráze pro export</string>
|
||||
<string name="set_password_to_export_desc">Databáze je šifrována pomocí náhodné přístupové fráze. Před exportem ji změňte.</string>
|
||||
<string name="error_stopping_chat">Chyba při zastavení chatu</string>
|
||||
<string name="import_database_question">Importovat databázi chatu\?</string>
|
||||
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">Vaše aktuální databáze chatu bude Smazána a Nahrazena importovanou databází. Tuto akci nelze vzít zpět - váš profil, kontakty, zprávy a soubory budou nenávratně ztraceny.</string>
|
||||
<string name="error_deleting_database">Chyba při mazání databáze chatu</string>
|
||||
<string name="error_importing_database">Chyba při importu databáze chatu</string>
|
||||
<string name="chat_database_deleted">Databáze chatu odstraněna</string>
|
||||
<string name="delete_files_and_media_for_all_users">Odstranění souborů pro všechny profily chatu</string>
|
||||
<string name="import_database_question">Importovat chat databázi\?</string>
|
||||
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">Vaše aktuální chat databáze bude SMAZÁNA a NAHRAZENA importovanou databází.
|
||||
\nTuto akci nelze vzít zpět - váš profily, kontakty, zprávy a soubory budou nenávratně ztraceny.</string>
|
||||
<string name="error_deleting_database">Chyba mazání chat databáze</string>
|
||||
<string name="error_importing_database">Chyba importu chat databáze</string>
|
||||
<string name="chat_database_deleted">Chat databáze odstraněna</string>
|
||||
<string name="delete_files_and_media_for_all_users">Odstranění souborů pro všechny chat profily</string>
|
||||
<string name="delete_files_and_media_all">Odstranit všechny soubory</string>
|
||||
<string name="delete_files_and_media_desc">Tuto akci nelze vrátit zpět - všechny přijaté a odeslané soubory a média budou smazány. Obrázky s nízkým rozlišením zůstanou zachovány.</string>
|
||||
<string name="no_received_app_files">Žádné přijaté ani odeslané soubory</string>
|
||||
@@ -751,30 +754,30 @@
|
||||
<string name="chat_item_ttl_none">nikdy</string>
|
||||
<string name="chat_item_ttl_seconds">\"%s vteřin(y)</string>
|
||||
<string name="messages_section_title">Zprávy</string>
|
||||
<string name="messages_section_description">Toto nastavení se vztahuje na zprávy ve vašem aktuálním profilu chatu.</string>
|
||||
<string name="messages_section_description">Toto nastavení se vztahuje na zprávy ve vašem aktuálním chat profilu.</string>
|
||||
<string name="delete_messages_after">Smazat zprávy po</string>
|
||||
<string name="enable_automatic_deletion_question">Povolit automatické mazání zpráv\?</string>
|
||||
<string name="enable_automatic_deletion_message">Tuto akci nelze vzít zpět - zprávy odeslané a přijaté dříve, než bylo zvoleno, budou smazány. Může to trvat několik minut.</string>
|
||||
<string name="error_changing_message_deletion">Chyba změny nastavení</string>
|
||||
<string name="save_passphrase_in_keychain">Uložit přístupovou frázi do úložiště klíčů</string>
|
||||
<string name="database_encrypted">Databáze zašifrována!</string>
|
||||
<string name="database_encrypted">Databáze šifrována!</string>
|
||||
<string name="error_encrypting_database">Chyba šifrování databáze</string>
|
||||
<string name="encrypt_database">Šifrovat</string>
|
||||
<string name="encrypted_with_random_passphrase">Databáze je zašifrována pomocí náhodné přístupové fráze, můžete ji změnit.</string>
|
||||
<string name="encrypted_with_random_passphrase">Databáze je šifrována pomocí náhodné přístupové fráze, můžete ji změnit.</string>
|
||||
<string name="keychain_allows_to_receive_ntfs">K bezpečnému uložení přístupové fráze se použije úložiště klíčů Android, po restartování aplikace nebo změně přístupové fráze - umožní přijímání oznámení.</string>
|
||||
<string name="you_have_to_enter_passphrase_every_time">Musíte zadat přístupovou frázi při každém spuštění aplikace - není uložena v zařízení.</string>
|
||||
<string name="encrypt_database_question">Šifrovat databázi\?</string>
|
||||
<string name="change_database_passphrase_question">Změnit přístupovou frázi databáze\?</string>
|
||||
<string name="database_will_be_encrypted">Databáze bude zašifrována.</string>
|
||||
<string name="database_encryption_will_be_updated">Šifrovací heslová fráze databáze bude aktualizována a uložena do úložiště klíčů.</string>
|
||||
<string name="database_passphrase_will_be_updated">Šifrovací heslová fráze databáze bude aktualizována.</string>
|
||||
<string name="database_will_be_encrypted">Databáze bude šifrována.</string>
|
||||
<string name="database_encryption_will_be_updated">Přístupová fráze databáze bude aktualizována a uložena do úložiště klíčů.</string>
|
||||
<string name="database_passphrase_will_be_updated">Přístupová fráze databáze bude aktualizována.</string>
|
||||
<string name="store_passphrase_securely_without_recover">Uložte prosím bezpečně přístupovou frázi, pokud ji ztratíte, NEBUDE možné přistupovat k chatu.</string>
|
||||
<string name="wrong_passphrase">Špatná přístupová fráze k databázi</string>
|
||||
<string name="encrypted_database">Zašifrovaná databáze</string>
|
||||
<string name="encrypted_database">Šifrovaná databáze</string>
|
||||
<string name="database_error">Chyba databáze</string>
|
||||
<string name="keychain_error">Chyba klíčenky</string>
|
||||
<string name="passphrase_is_different">Databázová heslová fráze se liší od uložené v klíčence.</string>
|
||||
<string name="cannot_access_keychain">Nelze získat přístup k úložišti klíčů pro uložení hesla k databázi.</string>
|
||||
<string name="passphrase_is_different">Přístupová fráze databáze se liší od té uložené v klíčence.</string>
|
||||
<string name="cannot_access_keychain">Nelze získat přístup k úložišti klíčů pro uložení přístupová fráze k databázi.</string>
|
||||
<string name="unknown_database_error_with_info">Neznámá chyba databáze: %s</string>
|
||||
<string name="wrong_passphrase_title">Špatná přístupová fráze!</string>
|
||||
<string name="enter_correct_passphrase">Zadejte správnou přístupovou frázi.</string>
|
||||
@@ -790,14 +793,14 @@
|
||||
<string name="group_invitation_item_description">pozvánka do skupiny <xliff:g id="group_name">%1$s</xliff:g></string>
|
||||
<string name="archive_created_on_ts">Vytvořeno dne <xliff:g id="archive_ts">%1$s</xliff:g></string>
|
||||
<string name="you_are_invited_to_group_join_to_connect_with_group_members">Jste zváni do skupiny. Připojte se a spojte se s členy skupiny.</string>
|
||||
<string name="join_group_incognito_button">Připojte se inkognito</string>
|
||||
<string name="joining_group">Připojení ke skupině</string>
|
||||
<string name="join_group_incognito_button">Připojit se inkognito</string>
|
||||
<string name="joining_group">Připojit ke skupině</string>
|
||||
<string name="youve_accepted_group_invitation_connecting_to_inviting_group_member">Připojili jste se k této skupině. Připojení k pozvání člena skupiny.</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_group_chat_history_will_be_preserved">Přestanete dostávat zprávy z této skupiny. Historie chatu bude zachována.</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_group_chat_history_will_be_preserved">Přestanete dostávat zprávy z této skupiny. Chat historie bude zachována.</string>
|
||||
<string name="alert_title_group_invitation_expired">Platnost pozvánky vypršela!</string>
|
||||
<string name="alert_message_group_invitation_expired">Pozvánka do skupiny již není platná, byla odstraněna odesílatelem.</string>
|
||||
<string name="alert_message_no_group">Tato skupina již neexistuje.</string>
|
||||
<string name="alert_title_cant_invite_contacts_descr">Pro tuto skupinu používáte inkognito profil - abyste zabránili sdílení svého hlavního profilu, není pozvání kontaktů povoleno.</string>
|
||||
<string name="alert_title_cant_invite_contacts_descr">Pro tuto skupinu používáte anonymní profil - abyste zabránili sdílení svého hlavního profilu, není pozvání kontaktů povoleno.</string>
|
||||
<string name="you_sent_group_invitation">Odeslali jste pozvánku do skupiny</string>
|
||||
<string name="you_are_invited_to_group">Jste pozváni do skupiny</string>
|
||||
<string name="group_invitation_tap_to_join">Klepnutím se připojíte</string>
|
||||
@@ -806,30 +809,30 @@
|
||||
<string name="you_rejected_group_invitation">Odmítli jste pozvánku do skupiny</string>
|
||||
<string name="group_invitation_expired">Platnost pozvánky do skupiny vypršela</string>
|
||||
<string name="rcv_group_event_member_added">pozvánka <xliff:g id="profil člena" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="rcv_group_event_member_connected">připojeno</string>
|
||||
<string name="rcv_group_event_member_connected">připojen</string>
|
||||
<string name="rcv_group_event_changed_member_role">změnil roli %s na %s</string>
|
||||
<string name="rcv_group_event_changed_your_role">změnil svou roli na %s</string>
|
||||
<string name="rcv_group_event_member_deleted">odstraněno <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="rcv_group_event_member_deleted">odstraněn <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="rcv_group_event_user_deleted">odstranil vás</string>
|
||||
<string name="rcv_group_event_group_deleted">odstraněna skupina</string>
|
||||
<string name="rcv_group_event_group_deleted">skupina odstraněna</string>
|
||||
<string name="rcv_group_event_updated_group_profile">aktualizoval profil skupiny</string>
|
||||
<string name="rcv_group_event_invited_via_your_group_link">pozváni prostřednictvím odkazu na vaši skupinu</string>
|
||||
<string name="snd_group_event_group_profile_updated">profil skupiny aktualizován</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_changing">změna adresy…</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed_for_member">jste změnili adresu pro %s</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed_for_member">změnili jste adresu pro %s</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing_for_member">změna adresy pro %s…</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed">změnili jste adresu</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing">změna adresy…</string>
|
||||
<string name="group_member_role_member">člen</string>
|
||||
<string name="group_member_role_owner">vlastník</string>
|
||||
<string name="group_member_status_removed">odstraněno</string>
|
||||
<string name="group_member_status_removed">odstraněn</string>
|
||||
<string name="group_member_status_left">opustil</string>
|
||||
<string name="group_member_status_group_deleted">skupina smazána</string>
|
||||
<string name="group_member_status_invited">pozvánka</string>
|
||||
<string name="group_member_status_introduced">připojující (zavedený)</string>
|
||||
<string name="group_member_status_intro_invitation">připojení (pozvánka na představení)</string>
|
||||
<string name="group_member_status_accepted">připojení (přijato)</string>
|
||||
<string name="group_member_status_announced">připojení (oznámeno)</string>
|
||||
<string name="group_member_status_accepted">přijat</string>
|
||||
<string name="group_member_status_announced">oznámen</string>
|
||||
<string name="group_member_status_connected">připojen</string>
|
||||
<string name="group_member_status_complete">kompletní</string>
|
||||
<string name="group_member_status_creator">tvůrce</string>
|
||||
@@ -854,8 +857,8 @@
|
||||
<string name="create_group_link">Vytvořit odkaz na skupinu</string>
|
||||
<string name="delete_link">Smazat odkaz</string>
|
||||
<string name="you_can_share_group_link_anybody_will_be_able_to_connect">Můžete sdílet odkaz nebo QR kód - ke skupině se bude moci připojit kdokoli. O členy skupiny nepřijdete, pokud ji později odstraníte.</string>
|
||||
<string name="error_creating_link_for_group">Chyba při vytváření odkazu skupiny</string>
|
||||
<string name="error_deleting_link_for_group">Chyba při odstraňování odkazu skupiny</string>
|
||||
<string name="error_creating_link_for_group">Chyba vytváření odkazu skupiny</string>
|
||||
<string name="error_deleting_link_for_group">Chyba odstraňování odkazu skupiny</string>
|
||||
<string name="only_group_owners_can_change_prefs">Předvolby skupiny mohou měnit pouze vlastníci skupiny.</string>
|
||||
<string name="section_title_for_console">PRO KONSOLE</string>
|
||||
<string name="info_row_local_name">Místní název</string>
|
||||
@@ -867,36 +870,36 @@
|
||||
<string name="change_role">Změnit roli</string>
|
||||
<string name="change_verb">Změnit</string>
|
||||
<string name="member_role_will_be_changed_with_invitation">Role bude změněna na \"%s\". Člen obdrží novou pozvánku.</string>
|
||||
<string name="error_changing_role">Chyba při změně role</string>
|
||||
<string name="error_changing_role">Chyba změny role</string>
|
||||
<string name="conn_level_desc_direct">přímo</string>
|
||||
<string name="sending_via">Odesílání přes</string>
|
||||
<string name="sending_via">Odesíláno přez</string>
|
||||
<string name="network_status">Stav sítě</string>
|
||||
<string name="switch_receiving_address">Přepínač přijímací adresy</string>
|
||||
<string name="group_is_decentralized">Skupina je plně decentralizovaná - je viditelná pouze pro členy.</string>
|
||||
<string name="group_is_decentralized">Skupina je plně decentralizovaná - viditelná pouze pro členy.</string>
|
||||
<string name="group_unsupported_incognito_main_profile_sent">Zde není podporován režim inkognito - členům skupiny bude zaslán váš hlavní profil.</string>
|
||||
<string name="save_group_profile">Uložení profilu skupiny</string>
|
||||
<string name="network_options_reset_to_defaults">Obnovení výchozího nastavení</string>
|
||||
<string name="network_options_reset_to_defaults">Obnovit výchozí nastavení</string>
|
||||
<string name="network_option_tcp_connection_timeout">Časový limit připojení TCP</string>
|
||||
<string name="network_option_protocol_timeout">Časový limit protokolu</string>
|
||||
<string name="network_option_ping_interval">Interval PING</string>
|
||||
<string name="network_option_ping_count">Počet PING</string>
|
||||
<string name="network_option_enable_tcp_keep_alive">Povolit TCP keep-alive</string>
|
||||
<string name="update_network_settings_confirmation">Aktualizovat</string>
|
||||
<string name="users_delete_question">Smazat profil chatu\?</string>
|
||||
<string name="users_delete_profile_for">Smazat profil chatu pro</string>
|
||||
<string name="users_delete_question">Smazat chat profil\?</string>
|
||||
<string name="users_delete_profile_for">Smazat chat profil pro</string>
|
||||
<string name="users_delete_with_connections">Profil a připojení k serveru</string>
|
||||
<string name="users_delete_data_only">Pouze lokální profilová data</string>
|
||||
<string name="users_delete_data_only">Pouze místní data profilu</string>
|
||||
<string name="incognito_random_profile_from_contact_description">Náhodný profil bude zaslán kontaktu, od kterého jste obdrželi tento odkaz.</string>
|
||||
<string name="incognito_info_protects">Režim inkognito chrání soukromí vašeho hlavního profilového jména a obrázku - pro každý nový kontakt je vytvořen nový náhodný profil.</string>
|
||||
<string name="incognito_info_find">Chcete-li najít profil použitý pro inkognito připojení, klepněte na název kontaktu nebo skupiny v horní části chatu.</string>
|
||||
<string name="theme_light">Světlo</string>
|
||||
<string name="theme_light">Světlý</string>
|
||||
<string name="theme_dark">Tmavý</string>
|
||||
<string name="theme">Téma</string>
|
||||
<string name="chat_preferences_contact_allows">Kontakt povoluje</string>
|
||||
<string name="chat_preferences_on">na</string>
|
||||
<string name="chat_preferences_contact_allows">Kontakt povolil</string>
|
||||
<string name="chat_preferences_on">zapnuto</string>
|
||||
<string name="chat_preferences_off">vypnuto</string>
|
||||
<string name="chat_preferences">Předvolby chatu</string>
|
||||
<string name="contact_preferences">Předvolby kontaktů</string>
|
||||
<string name="chat_preferences">Chat předvolby</string>
|
||||
<string name="contact_preferences">Předvolby kontaktu</string>
|
||||
<string name="group_preferences">Předvolby skupiny</string>
|
||||
<string name="direct_messages">Přímé zprávy</string>
|
||||
<string name="full_deletion">Smazat pro všechny</string>
|
||||
@@ -906,8 +909,8 @@
|
||||
<string name="prohibit_sending_disappearing_messages">Zakázat zasílání mizejících zpráv.</string>
|
||||
<string name="contacts_can_mark_messages_for_deletion">Kontakty mohou označit zprávy ke smazání; vy je budete moci zobrazit.</string>
|
||||
<string name="prohibit_sending_voice_messages">Zakázat odesílání hlasových zpráv.</string>
|
||||
<string name="only_you_can_send_disappearing">Mizící zprávy můžete odesílat pouze vy.</string>
|
||||
<string name="disappearing_prohibited_in_this_chat">Mizící zprávy jsou v tomto chatu zakázány.</string>
|
||||
<string name="only_you_can_send_disappearing">Mizející zprávy můžete odesílat pouze vy.</string>
|
||||
<string name="disappearing_prohibited_in_this_chat">Mizející zprávy jsou v tomto chatu zakázány.</string>
|
||||
<string name="only_your_contact_can_delete">Nevratně mazat zprávy může pouze váš kontakt (vy je můžete označit ke smazání).</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">Hlasové zprávy můžete posílat vy i váš kontakt.</string>
|
||||
<string name="only_you_can_send_voice">Hlasové zprávy můžete posílat pouze vy.</string>
|
||||
@@ -917,7 +920,7 @@
|
||||
<string name="prohibit_message_deletion">Zakázat nevratné mazání zpráv.</string>
|
||||
<string name="prohibit_sending_voice">Zakázat odesílání hlasových zpráv.</string>
|
||||
<string name="group_members_can_send_disappearing">Členové skupiny mohou posílat mizející zprávy.</string>
|
||||
<string name="disappearing_messages_are_prohibited">Mizící zprávy jsou v této skupině zakázány.</string>
|
||||
<string name="disappearing_messages_are_prohibited">Mizející zprávy jsou v této skupině zakázány.</string>
|
||||
<string name="group_members_can_send_dms">Členové skupiny mohou posílat přímé zprávy.</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">Přímé zprávy mezi členy jsou v této skupině zakázány.</string>
|
||||
<string name="group_members_can_delete">Členové skupiny mohou nevratně mazat odeslané zprávy.</string>
|
||||
@@ -944,10 +947,15 @@
|
||||
<string name="v4_5_reduced_battery_usage">Snížení spotřeby baterie</string>
|
||||
<string name="v4_5_reduced_battery_usage_descr">Další vylepšení se chystají již brzy!</string>
|
||||
<string name="v4_5_italian_interface">Italské rozhraní</string>
|
||||
<string name="v4_5_italian_interface_descr">Díky uživatelům - přispívejte prostřednictvím Weblate!</string>
|
||||
<string name="v4_5_italian_interface_descr">Díky uživatelům - překládejte prostřednictvím Weblate!</string>
|
||||
<string name="you_will_be_connected_when_your_contacts_device_is_online">Budete připojeni, až bude zařízení vašeho kontaktu online, vyčkejte prosím nebo se podívejte později!</string>
|
||||
<string name="your_contact_address">Vaše kontaktní adresa</string>
|
||||
<string name="your_chat_profile_will_be_sent_to_your_contact">Váš profil v chatu bude odeslán vašemu kontaktu</string>
|
||||
<string name="your_chat_profiles_stored_locally">Vaše profily v chatu jsou uloženy lokálně, pouze ve vašem zařízení.</string>
|
||||
<string name="your_chat_profile_will_be_sent_to_your_contact">Váš chat profil bude odeslán
|
||||
\nvašemu kontaktu</string>
|
||||
<string name="your_chat_profiles_stored_locally">Vaše chat profily jsou uloženy lokálně, pouze ve vašem zařízení.</string>
|
||||
<string name="your_chats">Vaše konverzace</string>
|
||||
<string name="paste_connection_link_below_to_connect">Do níže uvedeného pole vložte odkaz, který jste obdrželi pro spojení s kontaktem.</string>
|
||||
<string name="share_invitation_link">Sdílet zvací odkaz</string>
|
||||
<string name="status_e2e_encrypted">end-to-end šifrované</string>
|
||||
<string name="moderated_description">moderované</string>
|
||||
</resources>
|
||||
@@ -1040,4 +1040,5 @@
|
||||
<string name="v4_5_italian_interface_descr">Dank der Nutzer - Tragen Sie per Weblate bei!</string>
|
||||
<string name="v4_4_french_interface_descr">Dank der Nutzer - Tragen Sie per Weblate bei!</string>
|
||||
<string name="v4_5_private_filenames_descr">Bild- und Sprachdateinamen enthalten UTC, um Informationen zur Zeitzone zu schützen.</string>
|
||||
<string name="moderated_description">Moderiert</string>
|
||||
</resources>
|
||||
@@ -1,2 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="auth_unavailable">Autenticación no disponible</string>
|
||||
<string name="accept_contact_button">Aceptar</string>
|
||||
<string name="network_settings">Configuración de red avanzada</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><b>Mejor para la batería</b>. Recibirás notificaciones sólo cuando la aplicación se esté ejecutando, NO se utilizará el servicio en segundo plano.</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><b>Bueno para la batería</b>. El servicio en segundo plano comprueba si hay mensajes nuevos cada 10 minutos. Puedes perderte llamadas y mensajes urgentes.</string>
|
||||
<string name="accept_call_on_lock_screen">Aceptar</string>
|
||||
<string name="full_backup">Copia de seguridad de los datos de la aplicación</string>
|
||||
<string name="chat_item_ttl_day">un dia</string>
|
||||
<string name="chat_item_ttl_month">un mes</string>
|
||||
<string name="chat_item_ttl_week">una semana</string>
|
||||
<string name="allow_disappearing_messages_only_if">Permitir que desaparezcan los mensajes sólo si su contacto lo permite.</string>
|
||||
<string name="v4_3_improved_server_configuration_desc">Añadir servidores escaneando códigos QR.</string>
|
||||
<string name="smp_servers_preset_add">Añadir servidores predefinidos</string>
|
||||
<string name="all_group_members_will_remain_connected">Todos los miembros del grupo permanecerán conectados.</string>
|
||||
<string name="allow_irreversible_message_deletion_only_if">Permitir el borrado irreversible de mensajes sólo si su contacto se lo permite.</string>
|
||||
<string name="keychain_allows_to_receive_ntfs">Android Keystore se utilizará para almacenar de forma segura la frase de contraseña después de reiniciar la aplicación o cambiar la frase de contraseña - permitirá recibir notificaciones.</string>
|
||||
<string name="allow_your_contacts_to_send_disappearing_messages">Permitir a tus contactos enviar mensajes que desaparecen.</string>
|
||||
<string name="allow_your_contacts_to_send_voice_messages">Permitir a tus contactos enviar mensajes de voz.</string>
|
||||
<string name="chat_preferences_always">siempre</string>
|
||||
<string name="notifications_mode_off_desc">La aplicación sólo puede recibir notificaciones cuando se está ejecutando, no se iniciará ningún servicio en segundo plano.</string>
|
||||
<string name="settings_section_title_icon">ICONO DE LA APLICACIÓN</string>
|
||||
<string name="incognito_random_profile_from_contact_description">Se enviará un perfil aleatorio al contacto del que recibió este enlace</string>
|
||||
<string name="turning_off_service_and_periodic">La optimización de la batería está activa, desactivando el servicio en segundo plano y las solicitudes periódicas de nuevos mensajes. Puedes volver a activarlos a través de los ajustes.</string>
|
||||
<string name="notifications_mode_service_desc">El servicio en segundo plano está siempre en funcionamiento – las notificaciones se mostrarán en cuanto los mensajes estén disponibles.</string>
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><b>Se puede desactivar a través de los ajustes</b> – las notificaciones se seguirán mostrando mientras la app esté en funcionamiento.</string>
|
||||
<string name="notifications_mode_service">Siempre activo</string>
|
||||
<string name="allow_verb">Permitir</string>
|
||||
<string name="above_then_preposition_continuation">arriba, entonces:</string>
|
||||
<string name="add_new_contact_to_create_one_time_QR_code"><b>Añadir nuevo contacto</b>: para crear tu código QR de un solo uso para tu contacto.</string>
|
||||
<string name="accept_connection_request__question">¿Conectar mediante enlace de contacto\?</string>
|
||||
<string name="accept_contact_incognito_button">Aceptar incógnito</string>
|
||||
<string name="clear_chat_warning">Se borrarán todos los mensajes - ¡esto no se puede deshacer! Los mensajes se borrarán SOLO para ti.</string>
|
||||
<string name="smp_servers_add">Añadir servidor…</string>
|
||||
<string name="network_enable_socks_info">¿Acceder a los servidores a través del proxy SOCKS en el puerto 9050\? El proxy debe iniciarse antes de activar esta opción.</string>
|
||||
<string name="all_your_contacts_will_remain_connected">Todos tus contactos permanecerán conectados.</string>
|
||||
<string name="appearance_settings">Apariencia</string>
|
||||
<string name="app_version_title">Versión de la aplicación</string>
|
||||
<string name="network_session_mode_user_description">Se utilizará una conexión TCP independiente (y una credencial SOCKS) <b>para cada perfil de chat que tengas en la aplicación</b>.</string>
|
||||
<string name="network_session_mode_entity_description">Se utilizará una conexión TCP independiente (y una credencial SOCKS) <b>para cada contacto y miembro del grupo</b>.
|
||||
\n<b>Ten en cuenta</b>: si tienes muchas conexiones, tu consumo de batería y tráfico puede ser sustancialmente mayor y algunas conexiones pueden fallar.</string>
|
||||
<string name="a_plus_b">a + b</string>
|
||||
<string name="about_simplex">Sobre SimpleX</string>
|
||||
<string name="bold">negrita</string>
|
||||
<string name="callstatus_accepted">llamada aceptada</string>
|
||||
<string name="accept">Aceptar</string>
|
||||
<string name="audio_call_no_encryption">llamada de audio (sin cifrado e2e)</string>
|
||||
<string name="icon_descr_audio_call">llamada de audio</string>
|
||||
<string name="settings_audio_video_calls">Llamadas de audio y vídeo</string>
|
||||
<string name="icon_descr_audio_off">Audio desactivado</string>
|
||||
<string name="icon_descr_audio_on">Audio activado</string>
|
||||
<string name="integrity_msg_bad_id">ID de mensaje erróneo</string>
|
||||
<string name="auto_accept_images">Aceptar automáticamente imágenes</string>
|
||||
<string name="users_delete_all_chats_deleted">Se borrarán todos los chats y mensajes - ¡esto no se puede deshacer!</string>
|
||||
<string name="accept_feature">Aceptar</string>
|
||||
<string name="allow_to_send_disappearing">Permitir enviar mensajes que desaparecen.</string>
|
||||
<string name="keychain_is_storing_securely">Android Keystore se utiliza para almacenar de forma segura la frase de contraseña - permite que el servicio de notificación funcione.</string>
|
||||
<string name="users_add">Añadir perfil</string>
|
||||
<string name="incognito_random_profile_description">Se enviará un perfil aleatorio a tu contacto</string>
|
||||
<string name="color_primary">Acento</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">Permitir a tus contactos borrar irreversiblemente los mensajes enviados.</string>
|
||||
<string name="allow_voice_messages_only_if">Permitir mensajes de voz sólo si tu contacto lo permite.</string>
|
||||
<string name="allow_direct_messages">Permitir el envío de mensajes directos a los miembros.</string>
|
||||
<string name="allow_to_delete_messages">Permitir borrar irreversiblemente los mensajes enviados.</string>
|
||||
<string name="allow_to_send_voice">Permitir enviar mensajes de voz.</string>
|
||||
<string name="v4_2_group_links_desc">Los administradores pueden crear los enlaces para unirse a los grupos.</string>
|
||||
<string name="v4_2_auto_accept_contact_requests">Aceptar automáticamente solicitudes de contacto</string>
|
||||
<string name="attach">Adjuntar</string>
|
||||
<string name="integrity_msg_bad_hash">hash de mensaje erróneo</string>
|
||||
<string name="answer_call">Responder llamada</string>
|
||||
<string name="group_member_role_admin">admin</string>
|
||||
<string name="allow_voice_messages_question">¿Permitir mensajes de voz\?</string>
|
||||
<string name="back">Atrás</string>
|
||||
<string name="about_simplex_chat">Sobre <xliff:g id="appNameFull">SimpleX Chat</xliff:g></string>
|
||||
<string name="smp_servers_add_to_another_device">Añadir a otro dispositivo</string>
|
||||
<string name="app_version_name">Versión de la aplicación: v%s</string>
|
||||
<string name="accept_requests">Aceptar solicitudes</string>
|
||||
<string name="accept_automatically">Automáticamente</string>
|
||||
<string name="icon_descr_asked_to_receive">Solicita recibir la imagen</string>
|
||||
<string name="impossible_to_recover_passphrase"><b>Ten en cuenta</b>: NO podrás recuperar o cambiar la contraseña si la pierdes.</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">Tanto tú como tu contacto podéis enviar mensajes de voz.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>¡Usa más batería!</b> El servicio en segundo plano está siempre en funcionamiento - las notificaciones se mostrarán tan pronto como los mensajes estén disponibles.</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Tanto tú como tu contacto podéis borrar de forma irreversible los mensajes enviados.</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Tanto tú como tu contacto podéis enviar mensajes de desaparición.</string>
|
||||
<string name="scan_QR_code_to_connect_to_contact_who_shows_QR_code"><b>Escanear código QR</b>: para conectar con tu contacto que te muestre código QR.</string>
|
||||
</resources>
|
||||
@@ -966,4 +966,5 @@
|
||||
<string name="v4_5_private_filenames_descr">Pour préserver le fuseau horaire, les fichiers image/voix utilisent le système UTC.</string>
|
||||
<string name="v4_5_transport_isolation">Isolation du transport</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">Différents noms, avatars et mode d\'isolation de transport.</string>
|
||||
<string name="moderated_description">modéré</string>
|
||||
</resources>
|
||||
@@ -97,7 +97,7 @@
|
||||
<string name="invite_to_group_button">समूह में आमंत्रित करें</string>
|
||||
<string name="message_deletion_prohibited_in_chat">इस समूह में अपरिवर्तनीय संदेश हटाना प्रतिबंधित है।</string>
|
||||
<string name="italic">तिरछा</string>
|
||||
<string name="join_group_button">जोड़ना</string>
|
||||
<string name="join_group_button">प्रवेश लेना</string>
|
||||
<string name="join_group_incognito_button">गुप्त में शामिल हों</string>
|
||||
<string name="joining_group">समूह में शामिल होना</string>
|
||||
<string name="join_group_question">समूह में शामिल हों\?</string>
|
||||
@@ -107,7 +107,7 @@
|
||||
<string name="leave_group_question">समूह छोड़ दें</string>
|
||||
<string name="rcv_group_event_member_left">बाएं</string>
|
||||
<string name="group_member_status_left">बाएं</string>
|
||||
<string name="theme_light">रोशनी</string>
|
||||
<string name="theme_light">प्रकाश</string>
|
||||
<string name="info_row_local_name">स्थानीय नाम</string>
|
||||
<string name="users_delete_data_only">केवल स्थानीय प्रोफ़ाइल डेटा</string>
|
||||
<string name="auth_log_in_using_credential">अपने क्रेडेंशियल का उपयोग करके लॉग इन करें</string>
|
||||
@@ -121,7 +121,7 @@
|
||||
<string name="network_status">नेटवर्क की स्थिति</string>
|
||||
<string name="notification_new_contact_request">नया संपर्क अनुरोध</string>
|
||||
<string name="delete_files_and_media_all">सभी फाइलों को मिटा दें</string>
|
||||
<string name="delete_archive">संग्रह हटाएं</string>
|
||||
<string name="delete_archive">संग्रह हटा देना</string>
|
||||
<string name="new_database_archive">नया डेटाबेस संग्रह</string>
|
||||
<string name="new_member_role">नए सदस्य की भूमिका</string>
|
||||
<string name="settings_notifications_mode_title">अधिसूचना सेवा</string>
|
||||
@@ -133,7 +133,7 @@
|
||||
<string name="settings_notification_preview_title">अधिसूचना पूर्वावलोकन</string>
|
||||
<string name="notifications">सूचनाएं</string>
|
||||
<string name="full_deletion">सभी के लिए हटाएं</string>
|
||||
<string name="delete_chat_archive_question">चैट संग्रह मिटाएं\?</string>
|
||||
<string name="delete_chat_archive_question">लिखचीत संग्रह हटा दे\?</string>
|
||||
<string name="delete_chat_profile_question">चैट प्रोफ़ाइल हटाएं\?</string>
|
||||
<string name="users_delete_question">चैट प्रोफ़ाइल हटाएं\?</string>
|
||||
<string name="users_delete_profile_for">के लिए चैट प्रोफ़ाइल हटाएं</string>
|
||||
@@ -144,4 +144,40 @@
|
||||
<string name="delete_image">छवि हटाएं</string>
|
||||
<string name="button_delete_group">समूह हटाएं</string>
|
||||
<string name="for_me_only">मेरे लिए हटाएं</string>
|
||||
</resources>
|
||||
<string name="hide_verb">छिपाना</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">आप और आपका संपर्क दोनों भेजे गए संदेशों को अपरिवर्तनीय रूप से हटा सकते हैं।</string>
|
||||
<string name="message_deletion_prohibited">इस चैट में अपरिवर्तनीय संदेश हटाना प्रतिबंधित है।</string>
|
||||
<string name="chat_with_the_founder">प्रश्न और विचार भेजें</string>
|
||||
<string name="send_us_an_email">हमें ईमेल भेजें</string>
|
||||
<string name="display_name">प्रदर्शित होने वाला नाम</string>
|
||||
<string name="confirm_verb">पुष्टि करना</string>
|
||||
<string name="you_accepted_connection">आपने कनेक्शन स्वीकार किया</string>
|
||||
<string name="contribute">योगदान देना</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">आप और आपका संपर्क दोनों गायब होने वाले संदेश भेज सकते हैं।</string>
|
||||
<string name="allow_to_send_disappearing">गायब होने वाले संदेश भेजने की अनुमति दें।</string>
|
||||
<string name="prohibit_sending_disappearing">गायब होने वाले संदेश भेजने पर रोक लगाएं।</string>
|
||||
<string name="how_to_use_simplex_chat">इसका उपयोग कैसे करना है</string>
|
||||
<string name="group_member_status_group_deleted">समूह हटाया गया</string>
|
||||
<string name="delete_message_cannot_be_undone_warning">संदेश हटा दिया जाएगा - इसे पूर्ववत नहीं किया जा सकता!</string>
|
||||
<string name="message_delivery_error_title">संदेश वितरण त्रुटि</string>
|
||||
<string name="group_display_name_field">समूह प्रदर्शन नाम:</string>
|
||||
<string name="group_full_name_field">समूह का पूरा नाम:</string>
|
||||
<string name="group_invitation_expired">समूह आमंत्रण समाप्त हो गया</string>
|
||||
<string name="v4_3_irreversible_message_deletion_desc">आपके संपर्क पूर्ण संदेश को हटाने की अनुमति दे सकते हैं।</string>
|
||||
<string name="new_in_version">%s में नया</string>
|
||||
<string name="icon_descr_group_inactive">समूह निष्क्रिय</string>
|
||||
<string name="delete_group_menu_action">मिटाना</string>
|
||||
<string name="delete_contact_menu_action">मिटाना</string>
|
||||
<string name="create_your_profile">अपना प्रोफ़ाइल बनाए</string>
|
||||
<string name="set_contact_name">संपर्क नाम सेट करें</string>
|
||||
<string name="icon_descr_email">ईमेल</string>
|
||||
<string name="callstate_received_answer">जवाब मिला…</string>
|
||||
<string name="use_chat">चैट का प्रयोग करें</string>
|
||||
<string name="error_with_info">गलती: %s</string>
|
||||
<string name="delete_messages_after">संदेशों को बाद में हटाएं</string>
|
||||
<string name="image_descr">छवि</string>
|
||||
<string name="icon_descr_server_status_error">गलती</string>
|
||||
<string name="restore_database_alert_confirm">वापस लौटाना</string>
|
||||
<string name="a_plus_b">ए + बी</string>
|
||||
<string name="incognito_random_profile">आपका यादृच्छिक प्रोफ़ाइल</string>
|
||||
</resources>
|
||||
@@ -613,7 +613,7 @@
|
||||
<string name="your_contact_address">Il tuo indirizzo di contatto</string>
|
||||
<string name="smp_servers_your_server">Il tuo server</string>
|
||||
<string name="smp_servers_your_server_address">L\'indirizzo del tuo server</string>
|
||||
<string name="your_simplex_contact_address">Il tuo indirizzo di contatto di <xliff:g id="appName">SimpleX</xliff:g>.</string>
|
||||
<string name="your_simplex_contact_address">Il tuo indirizzo di contatto di <xliff:g id="appName">SimpleX</xliff:g></string>
|
||||
<string name="network_disable_socks_info">Se confermi, i server di messaggistica saranno in grado di vedere il tuo indirizzo IP e il tuo fornitore, a quali server ti stai connettendo.</string>
|
||||
<string name="install_simplex_chat_for_terminal">Installa <xliff:g id="appNameFull">SimpleX Chat</xliff:g> per terminale</string>
|
||||
<string name="ensure_ICE_server_address_are_correct_format_and_unique">Assicurati che gli indirizzi dei server WebRTC ICE siano nel formato corretto, uno per riga e non doppi.</string>
|
||||
@@ -966,4 +966,5 @@
|
||||
<string name="v4_5_transport_isolation">Isolamento del trasporto</string>
|
||||
<string name="v4_5_private_filenames_descr">Per proteggere il fuso orario, i file immagine/vocali usano UTC.</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">Nomi e avatar diversi, isolamento del trasporto.</string>
|
||||
<string name="moderated_description">moderato</string>
|
||||
</resources>
|
||||
@@ -83,4 +83,882 @@
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><b>設定メニューにてオフにできます。</b> アプリがアクティブ時に通知が出ます。</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">あなたと連絡相手が送信済みメッセージを永久削除できます。</string>
|
||||
<string name="scan_QR_code_to_connect_to_contact_who_shows_QR_code"><b>QRコードを読み込み</b>:連絡相手のQRコードをスキャンすると繋がります。</string>
|
||||
<string name="chat_archive_section">チャットのアーカイブ</string>
|
||||
<string name="delete_chat_archive_question">チャットのアーカイブを削除しますか?</string>
|
||||
<string name="join_group_incognito_button">シークレットモードで参加</string>
|
||||
<string name="group_member_status_intro_invitation">接続待ち (招待)</string>
|
||||
<string name="group_member_status_accepted">接続待ち (承諾済み)</string>
|
||||
<string name="group_member_status_creator">作成者</string>
|
||||
<string name="no_contacts_selected">連絡先が選択されてません</string>
|
||||
<string name="delete_link_question">リンクを削除しますか?</string>
|
||||
<string name="section_title_for_console">コンソール</string>
|
||||
<string name="info_row_local_name">ローカルネーム</string>
|
||||
<string name="member_info_section_title_member">メンバー</string>
|
||||
<string name="network_options_reset_to_defaults">既定に戻す</string>
|
||||
<string name="network_option_ping_count">PING回数</string>
|
||||
<string name="users_delete_profile_for">チャットのプロフィールを削除</string>
|
||||
<string name="reset_color">既定色に戻す</string>
|
||||
<string name="group_preferences">グループの設定</string>
|
||||
<string name="feature_off">オフ</string>
|
||||
<string name="prohibit_sending_voice_messages">音声メッセージを使用禁止にする。</string>
|
||||
<string name="only_you_can_send_voice">音声メッセージを送れるのはあなただけです。</string>
|
||||
<string name="delete_after">次の期間が経ったら削除:</string>
|
||||
<string name="ttl_sec">%d 秒</string>
|
||||
<string name="ttl_m">%d分</string>
|
||||
<string name="v4_2_group_links">グループのリンク</string>
|
||||
<string name="thousand_abbreviation">k</string>
|
||||
<string name="connect_via_link_verb">接続</string>
|
||||
<string name="server_connected">接続中</string>
|
||||
<string name="server_error">エラー</string>
|
||||
<string name="server_connecting">接続待ち</string>
|
||||
<string name="invalid_data">無効なデータ</string>
|
||||
<string name="invalid_chat">無効なチャット</string>
|
||||
<string name="live">ライブ (リアルタイム)</string>
|
||||
<string name="marked_deleted_description">削除済みとマークされました。</string>
|
||||
<string name="receiving_files_not_yet_supported">ファイルの受信機能はまだ対応されてません。</string>
|
||||
<string name="display_name_invited_to_connect">招待済み</string>
|
||||
<string name="failed_to_parse_chat_title">チャット読み込みに失敗</string>
|
||||
<string name="failed_to_parse_chats_title">チャット読み込みに失敗</string>
|
||||
<string name="contact_developers">アプリを更新し、開発者にご連絡ください。</string>
|
||||
<string name="service_notifications">即時通知!</string>
|
||||
<string name="service_notifications_disabled">即時通知が無効になってます!</string>
|
||||
<string name="enter_passphrase_notification_title">暗証フレーズが必要</string>
|
||||
<string name="notification_preview_mode_hidden">プライベート</string>
|
||||
<string name="notification_preview_mode_contact">連絡先の名前</string>
|
||||
<string name="notification_preview_somebody">連絡先が非表示:</string>
|
||||
<string name="auth_open_chat_console">チャットのコンソールを開く</string>
|
||||
<string name="delete_verb">削除する</string>
|
||||
<string name="file_saved">ファイルを保存しました</string>
|
||||
<string name="delete_contact_question">連絡先を削除しますか?</string>
|
||||
<string name="connect_via_link_or_qr">リンク・QRコード経由で繋がる</string>
|
||||
<string name="mark_code_verified">検証済みにマーク</string>
|
||||
<string name="how_to">使い方</string>
|
||||
<string name="network_use_onion_hosts_required">必須</string>
|
||||
<string name="incoming_video_call">ビデオ通話着信</string>
|
||||
<string name="paste_the_link_you_received">頂いたリンクを貼り付ける</string>
|
||||
<string name="icon_descr_hang_up">通話を切る</string>
|
||||
<string name="messages_section_title">メッセージ</string>
|
||||
<string name="rcv_group_event_invited_via_your_group_link">グループリンク経由で招待された</string>
|
||||
<string name="message_deletion_prohibited">このチャットではメッセージの完全削除が使用禁止です。</string>
|
||||
<string name="incognito_info_allows">一つのチャットプロフィールで複数の匿名な接続を立ち上げ、それぞれのデータを別々に共通を防ぐことができます。</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">後でも設定で変えられます。</string>
|
||||
<string name="error_changing_address">アドレス変更にエラー発生</string>
|
||||
<string name="error_creating_link_for_group">グループリンク発行にエラー発生</string>
|
||||
<string name="error_changing_role">役割変更にエラー発生</string>
|
||||
<string name="error_exporting_chat_database">チャットデータベースのエキスポートにエラー発生</string>
|
||||
<string name="error_saving_smp_servers">SMPサーバ保存にエラー発生</string>
|
||||
<string name="error_saving_ICE_servers">ICEサーバ保存にエラー発生</string>
|
||||
<string name="error_setting_network_config">ネットワーク設定の更新にエラー発生</string>
|
||||
<string name="icon_descr_file">ファイル</string>
|
||||
<string name="simplex_link_mode_full">フルリンク</string>
|
||||
<string name="group_full_name_field">グループのフルネーム:</string>
|
||||
<string name="group_invitation_expired">グループ招待が期限切れ</string>
|
||||
<string name="icon_descr_group_inactive">非アクティブなグループ</string>
|
||||
<string name="group_members_can_send_voice">グループのメンバーが音声メッセージを送信できます。</string>
|
||||
<string name="group_members_can_delete">グループのメンバーがメッセージを完全削除することができます。</string>
|
||||
<string name="group_profile_is_stored_on_members_devices">グループのプロフィールはサーバではなく、メンバーの端末に保存されます。</string>
|
||||
<string name="snd_group_event_group_profile_updated">グループのプロフィールが更新されました。</string>
|
||||
<string name="notification_display_mode_hidden_desc">連絡先とメッセージ内容をプライベートにする。</string>
|
||||
<string name="icon_descr_instant_notifications">即時通知</string>
|
||||
<string name="ensure_smp_server_address_are_correct_format_and_unique">SMPサーバのアドレスを正しく1行ずつに分けて、重複しないように、形式もご確認ください。</string>
|
||||
<string name="ensure_ICE_server_address_are_correct_format_and_unique">WebRTC ICEサーバのアドレスを正しく1行ずつに分けて、重複しないように、形式もご確認ください。</string>
|
||||
<string name="many_people_asked_how_can_it_deliver">よく聞かれるのは、 <i>if <xliff:g id="appName">SimpleX</xliff:g> にユーザIDがなければ、メッセージをどうやって届けるのでしょうかと。</i></string>
|
||||
<string name="how_simplex_works"><xliff:g id="appName">SimpleX</xliff:g> の仕様</string>
|
||||
<string name="icon_descr_call_progress">通話中</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>電池消費がより高い</b>!非アクティブ時でもバックグラウンドのサービスが常に稼働します(着信次第に通知がすぐに出ます)。</string>
|
||||
<string name="callstatus_calling">発信中</string>
|
||||
<string name="callstatus_ended">通話終了 <xliff:g id="duration" example="01:15">%1$s</xliff:g></string>
|
||||
<string name="icon_descr_call_ended">通話が終了しました。</string>
|
||||
<string name="if_you_cannot_meet_in_person_scan_QR_in_video_call_or_ask_for_invitation_link">直接会えない時は、 <b>ビデオ通話中にQRコードを見せてもらうか</b>、招待リンクを送ってもらえば相手に繋がります。</string>
|
||||
<string name="member_will_be_removed_from_group_cannot_be_undone">メンバーをグループから除名する (※元に戻せません※)!</string>
|
||||
<string name="message_delivery_error_title">メッセージ送信エラー</string>
|
||||
<string name="call_on_lock_screen">通話をロック画面に表示</string>
|
||||
<string name="icon_descr_cancel_link_preview">リンクのプレビューを中止</string>
|
||||
<string name="icon_descr_cancel_live_message">ライブメッセージを中止</string>
|
||||
<string name="change_member_role_question">グループの役割を変えますか?</string>
|
||||
<string name="cannot_receive_file">ファイル受信ができません。</string>
|
||||
<string name="invite_prohibited">連絡先を招待できません!</string>
|
||||
<string name="change_verb">変更</string>
|
||||
<string name="if_you_cannot_meet_in_person_show_QR_in_video_call_or_via_another_channel">直接会えない時は、 <b>ビデオ通話にてQRコードを見せるか</b>、招待リンクを送って、相手に繋がります。</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_completed">あなたのアドレスを変えました。</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing">アドレスを変更しています…</string>
|
||||
<string name="chat_database_section">チャットのデータベース</string>
|
||||
<string name="chat_is_stopped_indication">チャットが停止してます。</string>
|
||||
<string name="network_disable_socks_info">承諾すると、メッセージのサーバがIPアドレス、ISP、接続サーバを特定できます。</string>
|
||||
<string name="chat_preferences">チャット設定</string>
|
||||
<string name="clear_chat_button">消す</string>
|
||||
<string name="icon_descr_close_button">閉じるボタン</string>
|
||||
<string name="clear_verification">検証を消す</string>
|
||||
<string name="image_saved">画像をギャラリーに保存しました。</string>
|
||||
<string name="choose_file">ファイルを選ぶ</string>
|
||||
<string name="clear_chat_menu_action">消す</string>
|
||||
<string name="image_will_be_received_when_contact_is_online">連絡先がオンラインになったら受信されます。しばらくお待ちください。</string>
|
||||
<string name="v4_4_verify_connection_security_desc">連絡先とセキュリティコードを確認</string>
|
||||
<string name="install_simplex_chat_for_terminal">ターミナル版の <xliff:g id="appNameFull">SimpleX Chat</xliff:g> をインストール</string>
|
||||
<string name="v4_3_improved_server_configuration">サーバ設定の向上</string>
|
||||
<string name="v4_3_improved_privacy_and_security">プライバシーとセキュリティ強化</string>
|
||||
<string name="settings_section_title_incognito">シークレットモード</string>
|
||||
<string name="group_unsupported_incognito_main_profile_sent">ここではシークレットモードが無効です。メインのプロフィールがグループのメンバーに送られます。</string>
|
||||
<string name="new_in_version">%s バージョンアップで新しい</string>
|
||||
<string name="new_passphrase">新しい暗証フレーズ</string>
|
||||
<string name="chat_item_ttl_none">一度も</string>
|
||||
<string name="notification_preview_new_message">新しいメッセージ</string>
|
||||
<string name="network_use_onion_hosts_no">いいえ</string>
|
||||
<string name="notifications">通知</string>
|
||||
<string name="chat_preferences_off">オフ</string>
|
||||
<string name="callstate_connecting">接続待ち…</string>
|
||||
<string name="notification_contact_connected">接続中</string>
|
||||
<string name="contact_connection_pending">接続待ち…</string>
|
||||
<string name="display_name_connection_established">接続済み</string>
|
||||
<string name="connect_via_link">リンク経由で繋がる。</string>
|
||||
<string name="connection_error">接続エラー</string>
|
||||
<string name="network_use_onion_hosts_required_desc_in_alert">接続にオニオンのホストが必要となります。</string>
|
||||
<string name="group_member_status_introduced">接続待ち (紹介済み)</string>
|
||||
<string name="connection_error_auth">接続エラー (AUTH)</string>
|
||||
<string name="connection_timeout">接続タイムアウト</string>
|
||||
<string name="connection_request_sent">接続リクエストを送信しました!</string>
|
||||
<string name="connection_local_display_name">接続 <xliff:g id="connection ID" example="1">%1$d</xliff:g></string>
|
||||
<string name="connect_via_contact_link">連絡先リンク経由で繋がりますか?</string>
|
||||
<string name="connect_via_group_link">グループリンク経由で繋がりますか?</string>
|
||||
<string name="connect_via_invitation_link">招待リンク経由で繋がりますか?</string>
|
||||
<string name="status_contact_has_e2e_encryption">連絡先はエンドツーエンド暗号化があります。</string>
|
||||
<string name="description_via_group_link_incognito">グループリンク経由でシークレットモード</string>
|
||||
<string name="delete_contact_all_messages_deleted_cannot_undo_warning">連絡先と全メッセージが削除されます (※元に戻せません※)!</string>
|
||||
<string name="contact_preferences">連絡先の設定</string>
|
||||
<string name="status_contact_has_no_e2e_encryption">連絡先はエンドツーエンド暗号化がありません。</string>
|
||||
<string name="alert_title_contact_connection_pending">連絡先がまだ繋がってません!</string>
|
||||
<string name="contact_requests">連絡先のリクエスト</string>
|
||||
<string name="icon_descr_context">追加情報アイコン</string>
|
||||
<string name="network_use_onion_hosts_prefer_desc">オニオンのホストが利用可能時に使われます。</string>
|
||||
<string name="network_use_onion_hosts_no_desc">オニオンのホストが使われません。</string>
|
||||
<string name="network_use_onion_hosts_prefer_desc_in_alert">オニオンのホストが利用可能時に使われます。</string>
|
||||
<string name="images_limit_desc">画像を1回で最大10枚を送信できます。</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><b>2層エンドツーエンド暗号化</b>で送信されたプロフィール、連絡先、グループ、メッセージは、クライント端末にしか保存されません。</string>
|
||||
<string name="only_group_owners_can_change_prefs">グループ設定を変えられるのはグループのオーナーだけです。</string>
|
||||
<string name="only_group_owners_can_enable_voice">音声メッセージを利用可能に設定できるのはグループのオーナーだけです。</string>
|
||||
<string name="create_profile">プロフィールを作成する</string>
|
||||
<string name="only_you_can_delete_messages">メッセージの完全削除はあなたにしかできません (あなたの連絡先は削除対象とすることができます)。</string>
|
||||
<string name="create_your_profile">プロフィールを作成する</string>
|
||||
<string name="only_your_contact_can_delete">メッセージを完全削除できるのはあなたの連絡相手だけです (あなたは削除対象とすることができます)。</string>
|
||||
<string name="open_chat">チャットを開く</string>
|
||||
<string name="only_your_contact_can_send_voice">音声メッセージを送れるのはあなたの連絡相手だけです。</string>
|
||||
<string name="database_encryption_will_be_updated">データベース暗号化の暗号フレーズが更新され、キーストア (暗証キー保管庫)に保存されます。</string>
|
||||
<string name="database_error">データベースエラー</string>
|
||||
<string name="set_password_to_export_desc">データベースはランダムな暗証フレーズで暗号化済みです。エキスポートする前に更新してください。</string>
|
||||
<string name="passphrase_is_different">データベース暗証フレーズはキーストア (暗証キー保管庫) に保存された暗証フレーズと異なります。</string>
|
||||
<string name="ttl_d">%d日</string>
|
||||
<string name="ttl_day">%d 日</string>
|
||||
<string name="delete_group_menu_action">削除</string>
|
||||
<string name="incoming_audio_call">音声通話着信</string>
|
||||
<string name="button_delete_contact">連絡先を削除</string>
|
||||
<string name="open_simplex_chat_to_accept_call">通話を受けるには <xliff:g id="appNameFull">SimpleX Chat</xliff:g> を開きます。</string>
|
||||
<string name="deleted_description">削除完了</string>
|
||||
<string name="delete_files_and_media_for_all_users">全チャットプロフィールのファイルを削除</string>
|
||||
<string name="full_deletion">全員分を削除</string>
|
||||
<string name="for_me_only">自分側で削除</string>
|
||||
<string name="delete_image">画像を削除</string>
|
||||
<string name="group_invitation_item_description">グループへの招待 <xliff:g id="group_name">%1$s</xliff:g></string>
|
||||
<string name="invalid_connection_link">無効な繋がりリンク</string>
|
||||
<string name="smp_servers_invalid_address">無効なサーバアドレス</string>
|
||||
<string name="invalid_message_format">無効なメッセージのフォーマット</string>
|
||||
<string name="simplex_link_mode_description">説明</string>
|
||||
<string name="alert_title_group_invitation_expired">招待が期限切れました!</string>
|
||||
<string name="smp_servers_delete_server">サーバを削除</string>
|
||||
<string name="auth_device_authentication_is_disabled_turning_off">端末認証がオフです。SimpleXロックを解除します。</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">このグループではメンバー間のダイレクトメッセージが使用禁止です。</string>
|
||||
<string name="disappearing_messages_are_prohibited">このグループでは消えるメッセージが使用禁止です。</string>
|
||||
<string name="ttl_min">%d 分</string>
|
||||
<string name="ttl_weeks">%d 週</string>
|
||||
<string name="network_option_enable_tcp_keep_alive">TCP keep-aliveを有効にする</string>
|
||||
<string name="icon_descr_email">メール</string>
|
||||
<string name="allow_accepting_calls_from_lock_screen">設定メニューでロック画面からの通話を有効にできます。</string>
|
||||
<string name="people_can_connect_only_via_links_you_share">あなたと繋がることができるのは、あなたからリンクを頂いた方のみです。</string>
|
||||
<string name="icon_descr_profile_image_placeholder">仮のプロフィール画像</string>
|
||||
<string name="image_descr_qr_code">QRコード</string>
|
||||
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">リンクが正しいかどうかご確認ください。または、連絡相手にもう一度リンクをお求めください。</string>
|
||||
<string name="network_error_desc"><xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g> との接続を確認し、もう一度お試しください。</string>
|
||||
<string name="enter_correct_current_passphrase">現在の正しい暗証フレーズを入力してください。</string>
|
||||
<string name="smp_servers_preset_server">プレセットサーバ</string>
|
||||
<string name="smp_servers_preset_address">プレセットサーバのアドレス</string>
|
||||
<string name="display_name_connecting">接続待ち…</string>
|
||||
<string name="description_via_contact_address_link_incognito">連絡先リンク経由でシークレットモード</string>
|
||||
<string name="description_via_one_time_link_incognito">使い捨てリンク経由でシークレットモード</string>
|
||||
<string name="moderated_description">モデレーターによって介入済み</string>
|
||||
<string name="simplex_link_mode_browser_warning">ブラウザでリンクを開くと接続のプライバシーとセキュリティが下がる可能性があります。信頼されないSimpleXリンクは読み込まれません。</string>
|
||||
<string name="error_joining_group">グループ参加にエラー発生</string>
|
||||
<string name="error_sending_message">メッセージ送信にエラー発生</string>
|
||||
<string name="error_accepting_contact_request">連絡先リクエストの承諾にエラー発生</string>
|
||||
<string name="error_receiving_file">ファイル受信にエラー発生</string>
|
||||
<string name="error_deleting_contact">連絡先の削除にエラー発生</string>
|
||||
<string name="error_deleting_group">グループ削除にエラー発生</string>
|
||||
<string name="error_deleting_pending_contact_connection">接続待ちの連絡先削除にエラー発生</string>
|
||||
<string name="error_smp_test_certificate">サーバアドレスの証明証IDが正しくないかもしれません。</string>
|
||||
<string name="smp_server_test_connect">接続</string>
|
||||
<string name="error_deleting_user">ユーザのプロフィール削除にエラー発生</string>
|
||||
<string name="periodic_notifications">定期的な通知</string>
|
||||
<string name="periodic_notifications_disabled">定期的な通知が無効となってます!</string>
|
||||
<string name="auth_disable_simplex_lock">SimpleXロックを無効にする</string>
|
||||
<string name="auth_enable_simplex_lock">SimpleXロックを有効にする</string>
|
||||
<string name="auth_log_in_using_credential">ログイン情報でアクセス</string>
|
||||
<string name="auth_confirm_credential">アクセス情報を確認</string>
|
||||
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">端末認証が起動してません。起動したら、設定でSimpleXロックをオンにできます。</string>
|
||||
<string name="message_delivery_error_desc">恐らくこの連絡先があなたとの接続を削除されました。</string>
|
||||
<string name="for_everybody">全員用</string>
|
||||
<string name="error_saving_file">ファイル保存にエラー発生</string>
|
||||
<string name="icon_descr_server_status_connected">接続中</string>
|
||||
<string name="icon_descr_server_status_pending">確認待ち</string>
|
||||
<string name="cancel_verb">中止</string>
|
||||
<string name="add_contact">使い捨ての招待リンク</string>
|
||||
<string name="icon_descr_record_voice_message">音声メッセージを録音</string>
|
||||
<string name="from_gallery_button">ギャラリーから</string>
|
||||
<string name="delete_contact_menu_action">削除</string>
|
||||
<string name="icon_descr_help">ヘルプ</string>
|
||||
<string name="invalid_contact_link">無効なリンク!</string>
|
||||
<string name="invalid_QR_code">無効なQRコード</string>
|
||||
<string name="icon_descr_more_button">つづき</string>
|
||||
<string name="paste_connection_link_below_to_connect">連絡相手から頂いたリンクを以下の入力欄に貼り付けて繋がります。</string>
|
||||
<string name="incorrect_code">誤ったセキュリティコード!</string>
|
||||
<string name="paste_button">貼り付け</string>
|
||||
<string name="chat_console">チャットのコンソール</string>
|
||||
<string name="configure_ICE_servers">ICEサーバを設定</string>
|
||||
<string name="how_to_use_your_servers">自分のサーバの使い方</string>
|
||||
<string name="enter_one_ICE_server_per_line">ICEサーバ (1行に1サーバ)</string>
|
||||
<string name="network_and_servers">ネットワークとサーバ</string>
|
||||
<string name="network_settings_title">ネットワーク設定</string>
|
||||
<string name="network_use_onion_hosts_no_desc_in_alert">オニオンのホストが使われません。</string>
|
||||
<string name="delete_address">アドレスを削除</string>
|
||||
<string name="exit_without_saving">保存せずに閉じる</string>
|
||||
<string name="display_name_cannot_contain_whitespace">表示の名前には空白が使用できません。</string>
|
||||
<string name="how_to_use_markdown">マークダウン (書式) の使い方</string>
|
||||
<string name="italic">イタリック文字</string>
|
||||
<string name="callstatus_rejected">拒否した通話</string>
|
||||
<string name="callstatus_error">通話エラー</string>
|
||||
<string name="callstatus_in_progress">通話中</string>
|
||||
<string name="callstate_connected">接続中</string>
|
||||
<string name="callstatus_connecting">発信中…</string>
|
||||
<string name="callstate_ended">終了</string>
|
||||
<string name="opensource_protocol_and_code_anybody_can_run_servers">プロトコル技術とコードはオープンソースで、どなたでもご自分のサーバを運用できます。</string>
|
||||
<string name="privacy_redefined">プライバシーの基準を新境地に</string>
|
||||
<string name="how_it_works">技術の説明</string>
|
||||
<string name="make_private_connection">プライベートな接続をする</string>
|
||||
<string name="onboarding_notifications_mode_title">プライベートな通知</string>
|
||||
<string name="read_more_in_github_with_link"><font color="#0088ff">GitHubリポジトリ</font>で詳細をご確認ください。</string>
|
||||
<string name="read_more_in_github">GitHubリポジトリで詳細をご確認ください。</string>
|
||||
<string name="encrypted_video_call">エンドツーエンド暗号化済みビデオ通話</string>
|
||||
<string name="no_call_on_lock_screen">無効にする</string>
|
||||
<string name="status_no_e2e_encryption">エンドツーエンド暗号化がありません</string>
|
||||
<string name="open_verb">開く</string>
|
||||
<string name="icon_descr_call_connecting">発信中</string>
|
||||
<string name="icon_descr_flip_camera">カメラ切り替え</string>
|
||||
<string name="icon_descr_call_missed">不在着信</string>
|
||||
<string name="icon_descr_call_rejected">拒否した通話</string>
|
||||
<string name="settings_section_title_develop">開発</string>
|
||||
<string name="integrity_msg_duplicate">重複メッセージ</string>
|
||||
<string name="settings_section_title_help">ヘルプ</string>
|
||||
<string name="protect_app_screen">アプリ画面を守る</string>
|
||||
<string name="settings_section_title_chats">チャット</string>
|
||||
<string name="settings_developer_tools">開発ツール</string>
|
||||
<string name="settings_experimental_features">β機能</string>
|
||||
<string name="settings_section_title_messages">メッセージ</string>
|
||||
<string name="settings_section_title_calls">通話</string>
|
||||
<string name="chat_is_running">チャットは稼働中</string>
|
||||
<string name="chat_is_stopped">チャットが停止してます。</string>
|
||||
<string name="database_passphrase">データベース暗証フレーズ</string>
|
||||
<string name="export_database">データベースをエキスポート</string>
|
||||
<string name="delete_database">データベースを削除</string>
|
||||
<string name="import_database">データベースを読み込みますか?</string>
|
||||
<string name="new_database_archive">新しいデータベースのアーカイブ</string>
|
||||
<string name="old_database_archive">過去のデータベースアーカイブ</string>
|
||||
<string name="delete_files_and_media_all">ファイルを全て削除</string>
|
||||
<string name="delete_files_and_media_question">ファイルとメディアを削除しますか?</string>
|
||||
<string name="total_files_count_and_size">%d ファイル|合計: %s</string>
|
||||
<string name="encrypt_database">暗号化する</string>
|
||||
<string name="remove_passphrase">削除</string>
|
||||
<string name="current_passphrase">現在の暗証フレーズ</string>
|
||||
<string name="encrypted_with_random_passphrase">データベースはランダムな暗証フレーズで暗号化済みで、変更可能です。</string>
|
||||
<string name="change_database_passphrase_question">データベースの暗証フレーズを更新しますか?</string>
|
||||
<string name="database_will_be_encrypted">データベースが暗号化されます。</string>
|
||||
<string name="database_will_be_encrypted_and_passphrase_stored">データベースが暗号化され、暗証フレーズがキーストア (暗証キー保管庫) にほぞんされます。</string>
|
||||
<string name="cannot_access_keychain">キーストア (暗証キーの保管庫) にアクセスできないため、データベースのパスワードが保存できません。</string>
|
||||
<string name="database_passphrase_will_be_updated">データベース暗号化の暗号フレーズが更新されます。</string>
|
||||
<string name="database_passphrase_is_required">チャットを開くにはデータベース暗証フレーズが必要です。</string>
|
||||
<string name="file_with_path">ファイル: %s</string>
|
||||
<string name="archive_created_on_ts">作成日時 \u0020<xliff:g id="archive_ts">%1$s</xliff:g></string>
|
||||
<string name="delete_archive">アーカイブを削除</string>
|
||||
<string name="join_group_button">参加</string>
|
||||
<string name="join_group_question">グループに参加しますか?</string>
|
||||
<string name="joining_group">グループに参加</string>
|
||||
<string name="leave_group_button">脱退</string>
|
||||
<string name="leave_group_question">グループを脱退しますか?</string>
|
||||
<string name="alert_message_group_invitation_expired">グループ招待が無効となり、送信元によって取り消されました。</string>
|
||||
<string name="alert_title_no_group">グループが見つかりません!</string>
|
||||
<string name="alert_title_cant_invite_contacts">連絡先を招待できません!</string>
|
||||
<string name="rcv_group_event_group_deleted">削除されたグループ</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_changing">アドレスを変更しています…</string>
|
||||
<string name="clear_contacts_selection_button">選択を取り消す</string>
|
||||
<string name="group_member_status_complete">完了</string>
|
||||
<string name="group_member_status_connected">接続中</string>
|
||||
<string name="group_member_status_announced">接続待ち (アナウンス済み)</string>
|
||||
<string name="icon_descr_contact_checked">連絡先が確認済み</string>
|
||||
<string name="delete_group_question">グループを削除をしますか?</string>
|
||||
<string name="delete_link">リンクを削除</string>
|
||||
<string name="group_member_status_group_deleted">グループ削除済み</string>
|
||||
<string name="delete_group_for_all_members_cannot_undo_warning">全員にとってグループが削除されます (※元に戻せません※)!</string>
|
||||
<string name="group_member_status_invited">招待済み</string>
|
||||
<string name="button_add_members">メンバーを招待する</string>
|
||||
<string name="group_member_status_left">脱退しました。</string>
|
||||
<string name="group_member_role_member">メンバー</string>
|
||||
<string name="group_member_status_removed">除名されました</string>
|
||||
<string name="button_remove_member">メンバーを除名する</string>
|
||||
<string name="change_role">役割変更</string>
|
||||
<string name="info_row_connection">接続</string>
|
||||
<string name="conn_level_desc_direct">ダイレクト</string>
|
||||
<string name="receiving_via">経由で受信</string>
|
||||
<string name="create_secret_group_title">シークレットグループを作成する</string>
|
||||
<string name="group_display_name_field">グループの表示名前</string>
|
||||
<string name="network_status">ネットワーク状況</string>
|
||||
<string name="network_option_ping_interval">PING間合い</string>
|
||||
<string name="network_option_protocol_timeout">プロトコル・タイムアウト</string>
|
||||
<string name="theme_dark">ダークモード</string>
|
||||
<string name="chat_preferences_contact_allows">連絡先の任意で</string>
|
||||
<string name="feature_enabled_for_contact">連絡先に有効</string>
|
||||
<string name="feature_enabled_for_you">あなたに有効</string>
|
||||
<string name="only_your_contact_can_send_disappearing">消えるメッセージを送れるのはあなたの連絡相手だけです。</string>
|
||||
<string name="group_members_can_send_dms">グループのメンバーがダイレクトメッセージを送信できます。</string>
|
||||
<string name="message_deletion_prohibited_in_chat">このグループではメッセージの完全削除が使用禁止です。</string>
|
||||
<string name="ttl_days">%d 日</string>
|
||||
<string name="ttl_month">%d 月</string>
|
||||
<string name="ttl_w">%d週</string>
|
||||
<string name="ttl_week">%d 週</string>
|
||||
<string name="v4_4_live_messages_desc">あなたが入力しながら、送信先が更新に気づきます。</string>
|
||||
<string name="v4_5_italian_interface">イタリア語UI</string>
|
||||
<string name="contact_already_exists">連絡先が既に存在します。</string>
|
||||
<string name="error_creating_address">アドレス作成にエラー発生</string>
|
||||
<string name="error_deleting_contact_request">連絡先リクエスト削除にエラー発生</string>
|
||||
<string name="hide_notification">プライベートにする</string>
|
||||
<string name="settings_notifications_mode_title">通知サービス</string>
|
||||
<string name="notifications_mode_periodic_desc">10分毎に新しいメッセージを1分間確認する。</string>
|
||||
<string name="icon_descr_edited">編集済み</string>
|
||||
<string name="icon_descr_cancel_image_preview">画像のプレビューを中止</string>
|
||||
<string name="chat_with_developers">開発者とチャット</string>
|
||||
<string name="image_decoding_exception_title">デコードエラー</string>
|
||||
<string name="image_descr">画像</string>
|
||||
<string name="icon_descr_server_status_disconnected">切断されました。</string>
|
||||
<string name="icon_descr_server_status_error">エラー</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="toast_permission_denied">許可がありません!</string>
|
||||
<string name="clear_verb">消す</string>
|
||||
<string name="image_descr_link_preview">リンクプレビュー画像</string>
|
||||
<string name="image_descr_profile_image">プロフィール画像</string>
|
||||
<string name="markdown_in_messages">メッセージのマークダウン (書式編集)</string>
|
||||
<string name="smp_servers_check_address">サーバのアドレスを確認してから再度試してください。</string>
|
||||
<string name="contribute">貢献する</string>
|
||||
<string name="rate_the_app">アプリを評価</string>
|
||||
<string name="network_session_mode_user">チャットのプロフィール</string>
|
||||
<string name="network_session_mode_entity">接続</string>
|
||||
<string name="core_version">コアのバージョン: v%s</string>
|
||||
<string name="edit_image">画像を編集</string>
|
||||
<string name="callstatus_missed">不在着信</string>
|
||||
<string name="connect_calls_via_relay">リレー経由で繋がる。</string>
|
||||
<string name="status_e2e_encrypted">エンドツーエンド暗号化済み</string>
|
||||
<string name="chat_database_deleted">チャットのデータベースが削除されました。</string>
|
||||
<string name="delete_messages_after">次の期間が経ったら、メッセージを削除:</string>
|
||||
<string name="enable_automatic_deletion_question">自動メッセージ削除を有効にしますか?</string>
|
||||
<string name="remove_passphrase_from_keychain">キーストア (暗証キー保管庫) を削除しますか?</string>
|
||||
<string name="database_encrypted">データベースは暗号化済み!</string>
|
||||
<string name="error_encrypting_database">データベース暗号化ににエラー発生</string>
|
||||
<string name="confirm_new_passphrase">新しい暗証フレーズを確認…</string>
|
||||
<string name="encrypt_database_question">データベースを暗号化しますか?</string>
|
||||
<string name="store_passphrase_securely_without_recover">暗証フレーズを失くさないように保管してください。失くすとチャットにアクセスできなくなります。</string>
|
||||
<string name="enter_correct_passphrase">正しい暗証フレーズを入力</string>
|
||||
<string name="enter_passphrase">暗証フレーズを入力</string>
|
||||
<string name="restore_passphrase_not_found_desc">キーストア (暗証キー保管庫) に暗証フレーズが見つかりません。入力してください。アプリのデータをバックアップのツールで復元させると暗証フレーズが見つかりかねます。そうではない場合は開発者にご連絡ください。</string>
|
||||
<string name="button_create_group_link">リンクを発行する</string>
|
||||
<string name="info_row_group">グループ</string>
|
||||
<string name="error_saving_group_profile">グループのプロフィール保存にエラー発生</string>
|
||||
<string name="feature_enabled">有効</string>
|
||||
<string name="group_members_can_send_disappearing">グループのメンバーが消えるメッセージを送信できます。</string>
|
||||
<string name="ttl_mth">%d月</string>
|
||||
<string name="v4_3_irreversible_message_deletion">メッセージの完全削除</string>
|
||||
<string name="v4_3_voice_messages_desc">最大40秒、即受信。</string>
|
||||
<string name="v4_3_improved_privacy_and_security_desc">起動中アプリリストに出ないようにする。</string>
|
||||
<string name="v4_4_live_messages">ライブメッセージ</string>
|
||||
<string name="remove_member_confirmation">除名</string>
|
||||
<string name="rcv_group_event_member_deleted">除名されました: <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="reply_verb">返信する</string>
|
||||
<string name="failed_to_create_user_duplicate_title">表示の名前が重複してます!</string>
|
||||
<string name="failed_to_create_user_title">プロフィール作成にエラー発生</string>
|
||||
<string name="failed_to_active_user_title">プロフィール切り替えにエラー発生</string>
|
||||
<string name="error_adding_members">メンバー追加にエラー発生</string>
|
||||
<string name="smp_server_test_create_queue">サーバの待ち行列を作成する</string>
|
||||
<string name="smp_server_test_delete_queue">待ち行列を削除</string>
|
||||
<string name="smp_server_test_disconnect">切断</string>
|
||||
<string name="turn_off_battery_optimization">利用するには次の画面にてSimpleXに対する <b>電気省電力の設定をオフ</b> for <xliff:g id="appName">SimpleX</xliff:g> してください。そうしないと通知が無効になります。</string>
|
||||
<string name="database_initialization_error_title">データベースを起動できません。</string>
|
||||
<string name="settings_notification_preview_title">通知のプレビュー</string>
|
||||
<string name="simplex_service_notification_text">メッセージ受信中…</string>
|
||||
<string name="notification_preview_mode_message">メッセージ内容</string>
|
||||
<string name="notification_new_contact_request">新しい繋がりのリクエスト</string>
|
||||
<string name="copy_verb">コピー</string>
|
||||
<string name="delete_message__question">メッセージを削除しますか?</string>
|
||||
<string name="edit_verb">編集する</string>
|
||||
<string name="hide_verb">プライベートにする</string>
|
||||
<string name="delete_message_cannot_be_undone_warning">メッセージが削除されます (※元に戻せません※)!</string>
|
||||
<string name="delete_message_mark_deleted_warning">メッセージが削除対象となります。宛先にはメッセージの解読ができます。</string>
|
||||
<string name="icon_descr_cancel_file_preview">ファイルのプレビューを中止</string>
|
||||
<string name="group_connection_pending">接続待ち…</string>
|
||||
<string name="group_preview_join_as">%s として参加</string>
|
||||
<string name="icon_descr_image_snd_complete">画像送信済み</string>
|
||||
<string name="maximum_supported_file_size">現在、ファイルサイズの最上限は <xliff:g id="maxFileSize">%1$s</xliff:g>。</string>
|
||||
<string name="large_file">大型ファイル!</string>
|
||||
<string name="file_not_found">ファイルが見つかりません</string>
|
||||
<string name="file_will_be_received_when_contact_is_online">連絡先がオンラインになったら受信されます。しばらくお待ちください。</string>
|
||||
<string name="live_message">ライブメッセージ!</string>
|
||||
<string name="ask_your_contact_to_enable_voice">音声メッセージを有効にするように連絡相手に要求してください。</string>
|
||||
<string name="confirm_verb">確認</string>
|
||||
<string name="no_details">詳細がありません</string>
|
||||
<string name="reset_verb">戻す</string>
|
||||
<string name="copied">クリップボードにコピー完了</string>
|
||||
<string name="share_one_time_link">使い捨てリンクを発行する</string>
|
||||
<string name="create_group">シークレットグループを作成する</string>
|
||||
<string name="only_stored_on_members_devices">(グループのメンバーのみに保存されてます)</string>
|
||||
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code">💻 デスクトップ: <b>「QRコードを読み取る」</b>経由でアプリに表示されるQRコードを読み取る</string>
|
||||
<string name="if_you_received_simplex_invitation_link_you_can_open_in_browser"><xliff:g id="appName">SimpleX Chat</xliff:g> の招待リンクをもらったら、ブラウザで開けます:</string>
|
||||
<string name="mobile_tap_open_in_mobile_app_then_tap_connect_in_app">📱 携帯: <b>「アプリで開く」</b>をタップし、 アプリ内で<b>「接続」</b>をタップする。</string>
|
||||
<string name="if_you_choose_to_reject_the_sender_will_not_be_notified">拒否しても、相手には知らされません。</string>
|
||||
<string name="reject_contact_button">拒否</string>
|
||||
<string name="clear_chat_question">チャットを消しますか?</string>
|
||||
<string name="mark_read">既読にする</string>
|
||||
<string name="mark_unread">未読にする</string>
|
||||
<string name="mute_chat">ミュート</string>
|
||||
<string name="delete_pending_connection__question">接続待ちの繋がりを削除しますか?</string>
|
||||
<string name="connect_button">接続</string>
|
||||
<string name="create_one_time_link">使い捨てリンクを発行する</string>
|
||||
<string name="one_time_link">使い捨ての招待リンク</string>
|
||||
<string name="database_passphrase_and_export">データベース暗証フレーズとエキスポート</string>
|
||||
<string name="how_to_use_simplex_chat">使い方</string>
|
||||
<string name="markdown_help">マークダウン (書式編集) ガイド</string>
|
||||
<string name="smp_servers_enter_manually">サーバを手動で入力</string>
|
||||
<string name="network_use_onion_hosts_required_desc">接続にオニオンのホストが必要となります。</string>
|
||||
<string name="core_build_timestamp">コアのビルド@: %s</string>
|
||||
<string name="create_address">アドレスを作成</string>
|
||||
<string name="delete_address__question">アドレスを削除しますか?</string>
|
||||
<string name="display_name__field">表示の名前:</string>
|
||||
<string name="full_name__field">フルネーム:</string>
|
||||
<string name="create_profile_button">作成</string>
|
||||
<string name="display_name">表示の名前</string>
|
||||
<string name="full_name_optional__prompt">フルネーム (任意):</string>
|
||||
<string name="colored">色付き</string>
|
||||
<string name="callstate_received_answer">応答</string>
|
||||
<string name="decentralized">分散型</string>
|
||||
<string name="immune_to_spam_and_abuse">スパムや悪質送信を完全防止</string>
|
||||
<string name="onboarding_notifications_mode_service">即時</string>
|
||||
<string name="onboarding_notifications_mode_periodic">定期的</string>
|
||||
<string name="call_already_ended">通話は既に終了してます!</string>
|
||||
<string name="encrypted_audio_call">エンドツーエンド暗号化済みの音声通話</string>
|
||||
<string name="ignore">無視</string>
|
||||
<string name="reject">拒否</string>
|
||||
<string name="call_connection_peer_to_peer">P2P</string>
|
||||
<string name="privacy_and_security">プライバシーとセキュリティ</string>
|
||||
<string name="alert_text_skipped_messages_it_can_happen_when">次の場合に起こりうる:
|
||||
\n① メッセージが受信せずにサーバに溜まって30日が経つ場合
|
||||
\n② 連絡相手からメッセージが送信中に、ご利用の受信サーバが更新・再起動する場合
|
||||
\n③ 接続が不安定の場合
|
||||
\nサーバの更新情報をご希望でしたら、設定にて開発者とお繋ぎください。
|
||||
\nメッセージの喪失を防ぐために、サーバ冗長性を向上してまいります。</string>
|
||||
<string name="settings_section_title_device">端末</string>
|
||||
<string name="no_received_app_files">送受信済みのファイルがありません</string>
|
||||
<string name="delete_messages">メッセージを削除</string>
|
||||
<string name="chat_archive_header">チャットのアーカイブ</string>
|
||||
<string name="rcv_group_event_member_connected">接続中</string>
|
||||
<string name="rcv_group_event_user_deleted">あなたを除名しました。</string>
|
||||
<string name="group_link">グループのリンク</string>
|
||||
<string name="info_row_database_id">データベースID</string>
|
||||
<string name="error_deleting_link_for_group">グループリンク削除にエラー発生</string>
|
||||
<string name="users_delete_question">チャットのプロフィールを削除しますか?</string>
|
||||
<string name="users_delete_data_only">ローカルなプロフィールデータのみ</string>
|
||||
<string name="users_delete_with_connections">プロフィールとサーバ接続</string>
|
||||
<string name="theme_light">ライトテーマ</string>
|
||||
<string name="chat_preferences_default">デフォルト (%s)</string>
|
||||
<string name="prohibit_sending_disappearing_messages">消えるメッセージを使用禁止にする。</string>
|
||||
<string name="contacts_can_mark_messages_for_deletion">連絡先はメッセージを削除対象とすることができます。あなたには閲覧可能です。</string>
|
||||
<string name="only_you_can_send_disappearing">消えるメッセージを送れるのはあなただけです。</string>
|
||||
<string name="prohibit_message_deletion">メッセージの完全削除を使用禁止にする。</string>
|
||||
<string name="prohibit_sending_voice">音声メッセージを使用禁止にする。</string>
|
||||
<string name="feature_cancelled_item">中止されました %s</string>
|
||||
<string name="v4_4_disappearing_messages">消えるメッセージ</string>
|
||||
<string name="v4_5_transport_isolation_descr">チャットのプロフィール (既存設定)、または接続 (β機能設定) による</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">異なった名前、アバター、トランスポート隔離。</string>
|
||||
<string name="v4_4_french_interface">フランス語UI</string>
|
||||
<string name="v4_5_message_draft">メッセージの下書き</string>
|
||||
<string name="v4_5_reduced_battery_usage_descr">まだまだ改善してまいります!</string>
|
||||
<string name="v4_5_multiple_chat_profiles">複数チャットのプロフィール</string>
|
||||
<string name="v4_5_message_draft_descr">添付を含めて、下書きを保存する。</string>
|
||||
<string name="v4_5_private_filenames">プライベートなファイル名</string>
|
||||
<string name="v4_5_reduced_battery_usage">電池使用量低減</string>
|
||||
<string name="error_removing_member">メンバー除名にエラー発生</string>
|
||||
<string name="conn_level_desc_indirect">関節 (<xliff:g id="conn_level">%1$s</xliff:g>)</string>
|
||||
<string name="incognito">シークレットモード</string>
|
||||
<string name="incognito_info_protects">シークレットモードとは、メインのプロフィールとプロフィール画像を守るために、新しい連絡先を追加する時に、その連絡先に対してランダムなプロフィールが作成されるという対策です。</string>
|
||||
<string name="chat_preferences_no">いいえ</string>
|
||||
<string name="chat_preferences_on">オン</string>
|
||||
<string name="direct_messages">ダイレクトメッセージ</string>
|
||||
<string name="timed_messages">消えるメッセージ</string>
|
||||
<string name="disappearing_prohibited_in_this_chat">このチャットでは消えるメッセージが使用禁止です。</string>
|
||||
<string name="prohibit_direct_messages">メンバー間のダイレクトメッセージを使用禁止にする。</string>
|
||||
<string name="prohibit_sending_disappearing">消えるメッセージを使用禁止にする。</string>
|
||||
<string name="ttl_s">%d秒</string>
|
||||
<string name="ttl_months">%d 月</string>
|
||||
<string name="ttl_hour">%d 時</string>
|
||||
<string name="ttl_hours">%d 時</string>
|
||||
<string name="ttl_h">%d時</string>
|
||||
<string name="error_starting_chat">チャット開始にエラー発生</string>
|
||||
<string name="error_stopping_chat">チャット停止にエラー発生</string>
|
||||
<string name="import_database_question">チャットのデータベースを読み込みますか?</string>
|
||||
<string name="chat_database_imported">チャットのデータベースが読み込まれました。</string>
|
||||
<string name="error_deleting_database">チャットデータベース削除にエラー発生</string>
|
||||
<string name="error_importing_database">チャットデータベースの読み込みにエラー発生</string>
|
||||
<string name="import_database_confirmation">読み込む</string>
|
||||
<string name="restart_the_app_to_use_imported_chat_database">読み込んだデータベースを利用するにはアプリを再起動する必要があります。</string>
|
||||
<string name="delete_chat_profile_question">チャットのプロフィールを削除しますか?</string>
|
||||
<string name="restart_the_app_to_create_a_new_chat_profile">再起動して新しいチャットプロフィールを作る。</string>
|
||||
<string name="files_and_media_section">ファイルとメディア</string>
|
||||
<string name="error_changing_message_deletion">設定変更にエラー発生</string>
|
||||
<string name="notifications_will_be_hidden">アプリが起動中のみに通知が出ます!</string>
|
||||
<string name="encrypted_database">暗号化済みデータベース</string>
|
||||
<string name="keychain_error">キーチェーンのエラー</string>
|
||||
<string name="store_passphrase_securely">暗証フレーズを失くさないように保管してください。失くすと変更できなくなります。</string>
|
||||
<string name="error_with_info">エラー: %s</string>
|
||||
<string name="restore_database_alert_desc">データベースのバックアップで復旧する際に前の暗証フレーズを入力してください。行われたら元に戻せません。</string>
|
||||
<string name="icon_descr_add_members">メンバーを招待する</string>
|
||||
<string name="rcv_group_event_member_left">脱退しました。</string>
|
||||
<string name="rcv_group_event_changed_member_role">%s の役割を %s に変えました。</string>
|
||||
<string name="rcv_group_event_changed_your_role">役割を %s に変えました。</string>
|
||||
<string name="rcv_group_event_member_added">招待された <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing_for_member">アドレスを変更いたします: %s</string>
|
||||
<string name="group_member_role_owner">オーナー</string>
|
||||
<string name="group_member_status_connecting">接続待ち</string>
|
||||
<string name="icon_descr_expand_role">役割の選択を拡大</string>
|
||||
<string name="invite_to_group_button">グループに招待する</string>
|
||||
<string name="new_member_role">新しいメンバー役割</string>
|
||||
<string name="no_contacts_to_add">追加できる連絡先がありません</string>
|
||||
<string name="button_delete_group">グループを削除</string>
|
||||
<string name="create_group_link">グループのリンクを発行する</string>
|
||||
<string name="button_edit_group_profile">グループのプロフィールを編集</string>
|
||||
<string name="delete_group_for_self_cannot_undo_warning">あなたにとってグループが削除されます (※元に戻せません※)!</string>
|
||||
<string name="button_leave_group">グループを脱退</string>
|
||||
<string name="database_restore_error">データベース復元エラー</string>
|
||||
<string name="rcv_group_event_updated_group_profile">グループプロフィールを更新しました</string>
|
||||
<string name="snd_group_event_user_left">脱退しました。</string>
|
||||
<string name="invite_prohibited_description">あなたのメインプロフィールで参加してるグループにシークレットモードのプロフィールで繋がってる連絡先を招待しようとしてます。</string>
|
||||
<string name="group_info_member_you">あなた: <xliff:g id="group_info_you">%1$s</xliff:g></string>
|
||||
<string name="role_in_group">役割</string>
|
||||
<string name="sending_via">経由で送信</string>
|
||||
<string name="theme_system">システム</string>
|
||||
<string name="incognito_info_share">連絡相手にシークレットモードのプロフィールを共有すると、その連絡相手に招待されたグループでも同じプロフィールが使われます。</string>
|
||||
<string name="theme">テーマ</string>
|
||||
<string name="voice_messages">音声メッセージ</string>
|
||||
<string name="app_name"><xliff:g id="appName">SimpleX</xliff:g></string>
|
||||
<string name="you_will_join_group">このリンクのグループに参加し、そのメンバーに繋がります。</string>
|
||||
<string name="connected_to_server_to_receive_messages_from_contact">この連絡先から受信するメッセージのサーバに既に接続してます。</string>
|
||||
<string name="sending_files_not_yet_supported">ファイル送信機能がまだ実装されてません</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages">このコンタクトから受信するメッセージのサーバに接続しようとしてます。</string>
|
||||
<string name="unknown_message_format">不明なメッセージ形式</string>
|
||||
<string name="sender_you_pronoun">あなた</string>
|
||||
<string name="description_via_group_link">グループリンク経由</string>
|
||||
<string name="notification_preview_mode_contact_desc">連絡先のみ表示</string>
|
||||
<string name="auth_stop_chat">チャットを閉じる</string>
|
||||
<string name="icon_descr_received_msg_status_unread">未読</string>
|
||||
<string name="icon_descr_sent_msg_status_send_failed">送信失敗</string>
|
||||
<string name="personal_welcome">ようこそ <xliff:g>%1$s</xliff:g>!</string>
|
||||
<string name="voice_message">音声メッセージ</string>
|
||||
<string name="view_security_code">セキュリティコードを確認</string>
|
||||
<string name="send_live_message">ライブメッセージを送信</string>
|
||||
<string name="scan_QR_code">QRコードを読み込む</string>
|
||||
<string name="to_connect_via_link_title">リンク経由で接続</string>
|
||||
<string name="security_code">セキュリティコード</string>
|
||||
<string name="is_verified">%s は認証済み</string>
|
||||
<string name="smp_servers">SMPサーバ</string>
|
||||
<string name="save_servers_button">保存</string>
|
||||
<string name="update_network_session_mode_question">トランスポート隔離モードを更新しますか?</string>
|
||||
<string name="save_preferences_question">この設定でよろしいですか?</string>
|
||||
<string name="icon_descr_video_off">ビデオオフ</string>
|
||||
<string name="call_connection_via_relay">リレー経由</string>
|
||||
<string name="icon_descr_video_on">ビデオオン</string>
|
||||
<string name="icon_descr_speaker_off">スピーカーオフ</string>
|
||||
<string name="your_chat_database">あなたのチャットデータベース</string>
|
||||
<string name="stop_chat_confirmation">停止</string>
|
||||
<string name="stop_chat_to_enable_database_actions">データベース操作をするにはチャットを閉じてからです。</string>
|
||||
<string name="simplex_link_contact">SimpleX連絡先アドレス</string>
|
||||
<string name="simplex_link_invitation">SimpleX使い捨て招待リンク</string>
|
||||
<string name="description_via_contact_address_link">連絡先アドレスリンク経由</string>
|
||||
<string name="description_via_one_time_link">使い捨てリンク経由</string>
|
||||
<string name="description_you_shared_one_time_link_incognito">シークレットモードで使い捨てリンクを送りました</string>
|
||||
<string name="simplex_link_group">SimpleXグループリンク</string>
|
||||
<string name="simplex_link_mode_browser">ブラウザ経由</string>
|
||||
<string name="sender_cancelled_file_transfer">ファイル送信が中止されました。</string>
|
||||
<string name="sender_may_have_deleted_the_connection_request">送信元が繋がりリクエストを削除したかもしれません。</string>
|
||||
<string name="error_smp_test_server_auth">このサーバで待ち行列を作るには認証が必要です。パスワードをご確認ください。</string>
|
||||
<string name="periodic_notifications_desc">アプリが定期的に新しいメッセージを受信します。一日の電池使用量が約3%で、プッシュ通知に頼らずに、あなたの端末のデータをサーバに送ることはありません。</string>
|
||||
<string name="la_notice_title_simplex_lock">SimpleXロック</string>
|
||||
<string name="enter_passphrase_notification_desc">通知を受けるには、データベースの暗証フレーズを入力してください。</string>
|
||||
<string name="simplex_service_notification_title"><xliff:g id="appNameFull">SimpleX Chat</xliff:g> サービス</string>
|
||||
<string name="auth_simplex_lock_turned_on">SimpleXロック:オン</string>
|
||||
<string name="auth_you_will_be_required_to_authenticate_when_you_start_or_resume">起動時、または非アクティブ状態で30秒が経った後に戻ると、認証する必要となります。</string>
|
||||
<string name="share_verb">共有する</string>
|
||||
<string name="icon_descr_sent_msg_status_unauthorized_send">非認証の送信</string>
|
||||
<string name="this_text_is_available_in_settings">このテキストは設定にあります。</string>
|
||||
<string name="images_limit_title">画像数の上限を超えてます!</string>
|
||||
<string name="welcome">ようこそ!</string>
|
||||
<string name="group_preview_you_are_invited">グループ招待が届きました</string>
|
||||
<string name="your_chats">あなたのチャット</string>
|
||||
<string name="text_field_set_contact_placeholder">連絡先を設定…</string>
|
||||
<string name="waiting_for_file">ファイル待ち</string>
|
||||
<string name="switch_receiving_address_question">受信アドレスを変えますか?</string>
|
||||
<string name="send_verb">送信する</string>
|
||||
<string name="send_live_message_desc">ライブメッセージを送信 (入力しながら宛先の画面で更新される)</string>
|
||||
<string name="to_share_with_your_contact">(連絡先に共有)</string>
|
||||
<string name="connect_via_link_or_qr_from_clipboard_or_in_person">(クリップボードから読み込むか、貼り付ける)</string>
|
||||
<string name="thank_you_for_installing_simplex"><xliff:g id="appNameFull">SimpleX Chat</xliff:g>をご利用いただきありがとうございます!</string>
|
||||
<string name="use_camera_button">カメラ起動</string>
|
||||
<string name="you_accepted_connection">繋がりを承認しました</string>
|
||||
<string name="you_invited_your_contact">連絡先に招待を送りました</string>
|
||||
<string name="connection_you_accepted_will_be_cancelled">承認ずみの接続がキャンセルされます!</string>
|
||||
<string name="contact_you_shared_link_with_wont_be_able_to_connect">あなたからリンクを受けた連絡先が接続できなくなります!</string>
|
||||
<string name="icon_descr_address"><xliff:g id="appName">SimpleX</xliff:g>アドレス</string>
|
||||
<string name="show_QR_code">QRコードを表示</string>
|
||||
<string name="this_link_is_not_a_valid_connection_link">このリンクは有効な接続リンクではありません!</string>
|
||||
<string name="this_QR_code_is_not_a_link">このQRコードはリンクではありません!</string>
|
||||
<string name="you_will_be_connected_when_group_host_device_is_online">グループのホスト端末がオンラインになったら、接続されます。後でチェックするか、しばらくお待ちください。</string>
|
||||
<string name="show_QR_code_for_your_contact_to_scan_from_the_app__multiline">連絡相手がアプリからQRコードを読み込めます。</string>
|
||||
<string name="you_will_be_connected_when_your_contacts_device_is_online">連絡先がオンラインになったら、接続されます。後でチェックするか、しばらくお待ちください。</string>
|
||||
<string name="your_chat_profile_will_be_sent_to_your_contact">あなたのチャットプロフィールが
|
||||
\n連絡相手に送られます。</string>
|
||||
<string name="share_invitation_link">招待リンクを送る</string>
|
||||
<string name="your_profile_will_be_sent">あなたのチャットプロフィールが連絡相手に送られます。</string>
|
||||
<string name="scan_code">コードを読み込む</string>
|
||||
<string name="scan_code_from_contacts_app">連絡相手のアプリからセキュリティコードを読み込む</string>
|
||||
<string name="chat_lock">SimpleXロック</string>
|
||||
<string name="is_not_verified">%s は未認証</string>
|
||||
<string name="your_contact_address">あなたのチャットアドレス</string>
|
||||
<string name="your_settings">あなたの設定</string>
|
||||
<string name="smp_servers_test_server">テストサーバ</string>
|
||||
<string name="smp_servers_save">サーバを保存</string>
|
||||
<string name="smp_servers_test_failed">サーバテスト失敗!</string>
|
||||
<string name="smp_servers_use_server">サーバを使う</string>
|
||||
<string name="smp_servers_your_server">あなたのサーバ</string>
|
||||
<string name="smp_servers_your_server_address">あなたのサーバアドレス</string>
|
||||
<string name="smp_servers_per_user">現在のチャットプロフィールの新しい接続のサーバ</string>
|
||||
<string name="smp_servers_use_server_for_new_conn">新しい接続に使う</string>
|
||||
<string name="saved_ICE_servers_will_be_removed">保存されたWebRTC ICEサーバが削除されます。</string>
|
||||
<string name="your_ICE_servers">あなたのICEサーバ</string>
|
||||
<string name="network_disable_socks">直接にインタネットに繋がりますか?</string>
|
||||
<string name="network_enable_socks">SOCKSプロキシを使いますか?</string>
|
||||
<string name="network_socks_toggle">SOCKSプロキシ (ポート9050) を使う</string>
|
||||
<string name="update_onion_hosts_settings_question">.onionのホスト設定を更新しますか?</string>
|
||||
<string name="network_use_onion_hosts">.onionホストを使う</string>
|
||||
<string name="network_use_onion_hosts_prefer">利用可能時に</string>
|
||||
<string name="network_session_mode_transport_isolation">トランスポート隔離</string>
|
||||
<string name="save_and_notify_contact">保存して、連絡先にに知らせる</string>
|
||||
<string name="your_current_profile">現在のプロフィール</string>
|
||||
<string name="save_and_notify_contacts">保存して、連絡先にに知らせる</string>
|
||||
<string name="the_messaging_and_app_platform_protecting_your_privacy_and_security">あなたのプライバシーとセキュリティを守るメッセージとアプリのプラットフォーム</string>
|
||||
<string name="we_do_not_store_contacts_or_messages_on_servers">連絡先情報と届けたメッセージをサーバに保存することは一切ありません。</string>
|
||||
<string name="you_control_your_chat">あなたのチャットはあなたが決めます!</string>
|
||||
<string name="your_profile_is_stored_on_your_device">あなたのプロフィール、連絡先、送信したメッセージがご自分の端末に保存されます。</string>
|
||||
<string name="profile_is_only_shared_with_your_contacts">プロフィールは連絡先にしか共有されません。</string>
|
||||
<string name="you_can_use_markdown_to_format_messages__prompt">メッセージの書式をマークダウンで編集できます。</string>
|
||||
<string name="secret">シークレット</string>
|
||||
<string name="strikethrough">取り消し線</string>
|
||||
<string name="callstate_starting">接続中…</string>
|
||||
<string name="next_generation_of_private_messaging">次世代のプライバシー・メッセンジャー</string>
|
||||
<string name="you_control_servers_to_receive_your_contacts_to_send">あなたがメッセージの<b>受信</b>サーバを決められます。あなたの連絡先が同じく、自分に対する受信サーバを決められます。</string>
|
||||
<string name="icon_descr_video_call">ビデオ通話</string>
|
||||
<string name="onboarding_notifications_mode_off">アプリが稼働中に</string>
|
||||
<string name="webrtc_ice_servers">WebRTC ICEサーバ</string>
|
||||
<string name="your_ice_servers">あなたのICEサーバ</string>
|
||||
<string name="settings_section_title_settings">設定</string>
|
||||
<string name="alert_title_skipped_messages">飛ばしたメッセージ</string>
|
||||
<string name="settings_section_title_you">あなた</string>
|
||||
<string name="settings_section_title_themes">テーマ</string>
|
||||
<string name="run_chat_section">チャット起動</string>
|
||||
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">現在のチャットデータベースが読み込まれたデータベースに上書きされます。
|
||||
\n元に戻せません。プロフィール、連絡先、メッセージ、ファイルが置き換えられます。</string>
|
||||
<string name="chat_item_ttl_seconds">%s 秒</string>
|
||||
<string name="delete_files_and_media_desc">ファイルとメディアが全て削除されます (※元に戻せません※)。低解像度の画像が残ります。</string>
|
||||
<string name="enable_automatic_deletion_message">選択中の以前の送受信したメッセージが削除されます (※元に戻せません※)。数分かかります。</string>
|
||||
<string name="update_database">更新</string>
|
||||
<string name="database_is_not_encrypted">チャットデータベースが暗号化されてません。暗証フレーズを設定して保管してください。</string>
|
||||
<string name="restore_database">データベースを復元</string>
|
||||
<string name="you_can_start_chat_via_setting_or_by_restarting_the_app">アプリの設定・データベース経由で、またはアプリの再起動でチャットを始められます。</string>
|
||||
<string name="you_are_invited_to_group_join_to_connect_with_group_members">グループ招待が届きました。参加してグループのメンバーとお繋がりください。</string>
|
||||
<string name="youve_accepted_group_invitation_connecting_to_inviting_group_member">グループに入りました。招待をくれたメンバーに接続してます。</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_group_chat_history_will_be_preserved">このグループからのメッセージが届かなくなります。チャットの履歴が残ります。</string>
|
||||
<string name="alert_message_no_group">このグループはもう存在しません。</string>
|
||||
<string name="group_invitation_tap_to_join">タップして参加</string>
|
||||
<string name="group_invitation_tap_to_join_incognito">タップしてシークレットモードで参加</string>
|
||||
<string name="you_joined_this_group">グループに入りました。</string>
|
||||
<string name="you_rejected_group_invitation">グループの招待を拒否しました</string>
|
||||
<string name="you_sent_group_invitation">グループの招待を送りました</string>
|
||||
<string name="snd_group_event_changed_member_role">%sの役割を次に変えました:%s</string>
|
||||
<string name="button_send_direct_message">ダイレクトメッセージを送信</string>
|
||||
<string name="num_contacts_selected"><xliff:g id="num_contacts">%1$s</xliff:g>連絡先が選択中</string>
|
||||
<string name="snd_group_event_member_deleted">除名しました: <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="switch_verb">切り替える</string>
|
||||
<string name="member_role_will_be_changed_with_notification">役割が「%s」となります。グループの全員に通知が出ます。</string>
|
||||
<string name="conn_stats_section_title_servers">サーバ</string>
|
||||
<string name="member_role_will_be_changed_with_invitation">役割が「%s」となります。メンバーに新しい招待が届きます。</string>
|
||||
<string name="group_is_decentralized">グループは完全分散型で、メンバーしか内容を見れません。</string>
|
||||
<string name="network_options_save">保存</string>
|
||||
<string name="update_network_settings_question">ネットワーク設定を更新しますか?</string>
|
||||
<string name="updating_settings_will_reconnect_client_to_all_servers">設定を更新すると、全サーバにクライントの再接続が行われます。</string>
|
||||
<string name="your_chat_profiles_stored_locally">チャットプロフィールはローカルであなたの端末だけに保存されます。</string>
|
||||
<string name="save_color">色を保存</string>
|
||||
<string name="chat_preferences_you_allow">あなたが次を許可しています:</string>
|
||||
<string name="chat_preferences_yes">はい</string>
|
||||
<string name="set_group_preferences">グループ設定を行う</string>
|
||||
<string name="your_preferences">あなたの設定</string>
|
||||
<string name="voice_prohibited_in_this_chat">このチャットでは音声メッセージが使用禁止です。</string>
|
||||
<string name="voice_messages_are_prohibited">このグループでは音声メッセージが使用禁止です。</string>
|
||||
<string name="v4_2_security_assessment">セキュリティ評価</string>
|
||||
<string name="whats_new">新着情報</string>
|
||||
<string name="v4_2_security_assessment_desc">SimpleX ChatはTrail of Bitsによるセキュリティ監査を受けました。</string>
|
||||
<string name="v4_2_auto_accept_contact_requests_desc">任意的な歓迎メッセージで</string>
|
||||
<string name="v4_5_italian_interface_descr">ユーザーの皆様に感謝いたします!Weblateにて貢献できます!</string>
|
||||
<string name="v4_4_verify_connection_security">接続のセキュリティを確認</string>
|
||||
<string name="error_smp_test_failed_at_step">テストが次のステップで失敗しました:%s</string>
|
||||
<string name="ntf_channel_messages">SimpleX Chatメッセージ</string>
|
||||
<string name="ntf_channel_calls">SimpleX Chat通話</string>
|
||||
<string name="settings_notification_preview_mode_title">プレビューを表示</string>
|
||||
<string name="notifications_mode_periodic">定期的に起動</string>
|
||||
<string name="notifications_mode_off">アプリがアクティブ時に実行</string>
|
||||
<string name="icon_descr_sent_msg_status_sent">送信済み</string>
|
||||
<string name="you_have_no_chats">あなたはチャットがありません。</string>
|
||||
<string name="share_message">メッセージを送る…</string>
|
||||
<string name="share_file">ファイル共有…</string>
|
||||
<string name="voice_message_send_text">音声メッセージ…</string>
|
||||
<string name="voice_message_with_duration">音声メッセージ (<xliff:g id="duration">%1$s</xliff:g>)</string>
|
||||
<string name="icon_descr_send_message">メッセージを送信</string>
|
||||
<string name="icon_descr_settings">設定</string>
|
||||
<string name="icon_descr_simplex_team"><xliff:g id="appName">SimpleX</xliff:g>開発チーム</string>
|
||||
<string name="this_string_is_not_a_connection_link">このストリングは接続リンクではありません!</string>
|
||||
<string name="chat_with_the_founder">質問やアイデアを送る</string>
|
||||
<string name="star_on_github">GithubでStar</string>
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">あなたのプロフィールはご自分の端末に保存され、あなたの連絡先のみに共有されます。
|
||||
\n
|
||||
\n<xliff:g id="appName">SimpleX</xliff:g>のサーバには開示されません。</string>
|
||||
<string name="your_calls">あなたの通話</string>
|
||||
<string name="integrity_msg_skipped"><xliff:g id="connection ID" example="1">%1$d</xliff:g>飛ばしたメッセージ</string>
|
||||
<string name="send_link_previews">リンクのプレビューを送信</string>
|
||||
<string name="set_password_to_export">暗証フレーズを設定してからエキスポート</string>
|
||||
<string name="stop_chat_question">チャットを閉じますか?</string>
|
||||
<string name="save_passphrase_in_keychain">暗証フレーズをキーストア (暗証キー保管庫) に保存</string>
|
||||
<string name="wrong_passphrase">データベースの暗証フレーズが違います</string>
|
||||
<string name="unknown_error">不明なエラー</string>
|
||||
<string name="save_passphrase_and_open_chat">暗証フレーズをを保存して、チャットを開始</string>
|
||||
<string name="unknown_database_error_with_info">不明なデータベースのエラー: %s</string>
|
||||
<string name="wrong_passphrase_title">暗証フレーズが違います!</string>
|
||||
<string name="you_are_invited_to_group">グループ招待が届きました</string>
|
||||
<string name="network_option_seconds_label">秒</string>
|
||||
<string name="network_option_tcp_connection_timeout">TCP接続タイムアウト</string>
|
||||
<string name="save_group_profile">保存グループのプロフィール</string>
|
||||
<string name="v4_3_irreversible_message_deletion_desc">連絡先がメッセージの完全削除を許可できます。</string>
|
||||
<string name="failed_to_create_user_duplicate_desc">同じ表示名前のチャットプロフィールが既にあります。別のを選んでください。</string>
|
||||
<string name="smp_server_test_secure_queue">待ち行列セキュリティ確認</string>
|
||||
<string name="database_initialization_error_desc">データベースが正しく稼働してません。詳細はタップにて</string>
|
||||
<string name="notification_preview_mode_message_desc">連絡先とメッセージを表示</string>
|
||||
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">あなたのデータを守るために、SimpleXロックをオンにしてください。
|
||||
\nオンにするには、認証ステップが行われます。</string>
|
||||
<string name="la_notice_turn_on">オンにする</string>
|
||||
<string name="auth_unlock">ロック解除</string>
|
||||
<string name="save_verb">保存する</string>
|
||||
<string name="reveal_verb">開示する</string>
|
||||
<string name="tap_to_start_new_chat">タップして新しいチャットを始める</string>
|
||||
<string name="image_decoding_exception_desc">画像が解読できません。別のイメージで試すか、開発者に伝えてください。</string>
|
||||
<string name="icon_descr_waiting_for_image">画像待ち</string>
|
||||
<string name="waiting_for_image">画像待ち</string>
|
||||
<string name="contact_sent_large_file">向こうが最上限の大きさを超えるファイルを送ろうとしました (<xliff:g id="maxFileSize">%1$s</xliff:g>)。</string>
|
||||
<string name="voice_messages_prohibited">音声メッセージは使用禁止です!</string>
|
||||
<string name="add_contact_or_create_group">新しいチャットを始める</string>
|
||||
<string name="you_can_connect_to_simplex_chat_founder"><font color="#0088ff"><xliff:g id="appNameFull">SimpleX Chat</xliff:g>の開発者と繋がれば、質問したり、速報を受けたりすることができます</font>。</string>
|
||||
<string name="to_start_a_new_chat_help_header">新しいチャットを始めるには</string>
|
||||
<string name="chat_help_tap_button">ボタンをタップ</string>
|
||||
<string name="unmute_chat">ミュート解除</string>
|
||||
<string name="set_contact_name">連絡先を設定</string>
|
||||
<string name="contact_wants_to_connect_with_you">はあなたと繋がりたいです!</string>
|
||||
<string name="you_can_also_connect_by_clicking_the_link">リンクをクリックすることでも接続できます。ブラウザが起動すれば <b>Open in mobile app (アプリで開く)</b>ボタンをクリックしてください。</string>
|
||||
<string name="your_chat_profiles">あなたのチャットプロフィール</string>
|
||||
<string name="smp_servers_scan_qr">サーバのQRコードを読み込む</string>
|
||||
<string name="smp_servers_test_some_failed">テストに失敗したサーバがあります:</string>
|
||||
<string name="use_simplex_chat_servers__question"><xliff:g id="appNameFull">SimpleX Chat</xliff:g>サーバを使いますか?</string>
|
||||
<string name="using_simplex_chat_servers"><xliff:g id="appNameFull">SimpleX Chat</xliff:g>を使っています。</string>
|
||||
<string name="share_link">リンクを送る</string>
|
||||
<string name="core_simplexmq_version">simplexmq: バージョン%s (%2s)</string>
|
||||
<string name="you_can_share_your_address_anybody_will_be_able_to_connect">あなたと繋がるリンク、またはQRコードを共有できます。誰でも接続できます。後で削除しても、連絡先がそのままのこります。</string>
|
||||
<string name="section_title_welcome_message">歓迎メッセージ</string>
|
||||
<string name="callstate_waiting_for_answer">応答待ち…</string>
|
||||
<string name="callstate_waiting_for_confirmation">確認待ち…</string>
|
||||
<string name="first_platform_without_user_ids">世界初のユーザーIDのないプラットフォーム|設計も元からプライベート</string>
|
||||
<string name="use_chat">チャット</string>
|
||||
<string name="contact_wants_to_connect_via_call"><xliff:g id="contactName" example="Alice">%1$s</xliff:g>は次の方法であなたと繋がりたいです:</string>
|
||||
<string name="video_call_no_encryption">ビデオ通話 (非エンドツーエンド暗号化)</string>
|
||||
<string name="show_call_on_lock_screen">表示</string>
|
||||
<string name="icon_descr_speaker_on">スピーカーオン</string>
|
||||
<string name="your_privacy">あなたのプライバシー</string>
|
||||
<string name="messages_section_description">この設定は現在のチャットプロフィールのメッセージに適応されます。</string>
|
||||
<string name="you_have_to_enter_passphrase_every_time">アプリ起動時に暗証フレーズを入力しなければなりません。端末に保存されてません。</string>
|
||||
<string name="database_backup_can_be_restored">データベースの暗証フレーズ変更が完了してません。</string>
|
||||
<string name="you_can_share_group_link_anybody_will_be_able_to_connect">リンク、またはQRコードを共有できます。誰でもグループに参加できます。後で削除しても、グループのメンバーがそのままのこります。</string>
|
||||
<string name="network_options_revert">元に戻す</string>
|
||||
<string name="update_network_settings_confirmation">更新</string>
|
||||
<string name="accept_feature_set_1_day">1日に設定</string>
|
||||
<string name="v4_4_disappearing_messages_desc">一定時間が経ったら送信されたメッセージが削除されます。</string>
|
||||
<string name="v4_4_french_interface_descr">ユーザーの皆様に感謝いたします!Weblateにて貢献できます!</string>
|
||||
<string name="v4_5_private_filenames_descr">時間帯を漏らさないために、画像と音声ファイルはUTCを使います。</string>
|
||||
<string name="v4_5_transport_isolation">トランスポート隔離</string>
|
||||
<string name="restore_database_alert_confirm">復元</string>
|
||||
<string name="restore_database_alert_title">データベースを復元しますか?</string>
|
||||
<string name="save_and_notify_group_members">保存して、グループのメンバーにに知らせる</string>
|
||||
<string name="send_us_an_email">メールを送る</string>
|
||||
<string name="share_image">画像共有…</string>
|
||||
<string name="simplex_link_mode">SimpleXリンク</string>
|
||||
<string name="settings_section_title_support">SIMPLEX CHATを支援</string>
|
||||
<string name="smp_servers_test_servers">テストサーバ</string>
|
||||
<string name="switch_receiving_address_desc">開発中の機能です!相手のクライアントが4.2でなければ機能しません。アドレス変更が完了すると、会話にメッセージが出ます。連絡相手 (またはグループのメンバー) からメッセージを受信できないかをご確認ください。</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery">あなたのプライバシーを守るために、このアプリはプッシュ通知の変わりに <b><xliff:g id="appName">SimpleX</xliff:g> バックグラウンド・サービス</b> を使ってます。一日の電池使用量は約3%です。</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">あなたのプライバシーを守るために、他のアプリと違って、ユーザーIDの変わりに <xliff:g id="appName">SimpleX</xliff:g> メッセージ束毎にIDを配布し、各連絡先が別々と扱います。</string>
|
||||
<string name="group_main_profile_sent">あなたのチャットプロフィールが他のグループメンバーに送られます。</string>
|
||||
<string name="to_verify_compare">エンドツーエンド暗号化を確認するには、ご自分の端末と連絡先の端末のコードを比べます (スキャンします)。</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages_with_error">このコンタクトから受信するメッセージのサーバに接続しようとしてます。(エラー: <xliff:g id="errorMsg">%1$s</xliff:g>)。</string>
|
||||
<string name="connection_error_auth_desc">使用済みリンク、または連絡先による接続の削除ではなければ、バッグの可能性があります。開発者にお伝えください。
|
||||
\n繋がるには、連絡先に新しくリンクを発行してもらって、電波が安定かどうかご確認ください。</string>
|
||||
<string name="alert_text_connection_pending_they_need_to_be_online_can_delete_and_retry">接続を完了するには、連絡相手がオンラインになる必要があります。
|
||||
\nこの接続をキャンセルして、連絡先を削除をすることもできます (後でやり直すこともできます)。</string>
|
||||
<string name="verify_security_code">セキュリティコードを確認</string>
|
||||
<string name="simplex_link_connection"><xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g>経由</string>
|
||||
<string name="image_descr_simplex_logo"><xliff:g id="appName">SimpleX</xliff:g>ロゴ</string>
|
||||
<string name="you_need_to_allow_to_send_voice">音声メッセージを送るには、連絡相手からの音声メッセージを許可しなければなりません。</string>
|
||||
<string name="you_must_use_the_most_recent_version_of_database">あなたの最新データベースを1つの端末にしか使わなければ、一部の連絡先からメッセージが届きかねます。</string>
|
||||
<string name="you_are_already_connected_to_vName_via_this_link">既に繋がってます: <xliff:g id="contactName" example="Alice">%1$s!</xliff:g></string>
|
||||
<string name="alert_title_cant_invite_contacts_descr">シークレットモードのプロフィールでこのグループに参加しています。メインのプロフィールを守るために、招待することができません。</string>
|
||||
<string name="description_you_shared_one_time_link">使い捨てリンクを送りました</string>
|
||||
<string name="profile_will_be_sent_to_contact_sending_link">リンクを送ってくれた連絡先にあなたのプロフィールを送ります。</string>
|
||||
<string name="your_SMP_servers">あなたのSMPサーバ</string>
|
||||
<string name="your_simplex_contact_address">あなたの<xliff:g id="appName">SimpleX</xliff:g>アドレス</string>
|
||||
<string name="you_will_be_connected_when_your_connection_request_is_accepted">連絡先が繋がりリクエストを承認したら、接続されます。後でチェックするか、しばらくお待ちください。</string>
|
||||
<string name="switch_receiving_address">受信アドレスを変える</string>
|
||||
<string name="incognito_random_profile">あなたのランダム・プロフィール</string>
|
||||
<string name="incognito_info_find">シークレットモード接続のプロフィールを確認するには、チャットの上部の連絡先、またはグループ名をタップします。</string>
|
||||
<string name="v4_3_voice_messages">音声メッセージ</string>
|
||||
<string name="settings_section_title_socks">SOCKSプロキシ</string>
|
||||
<string name="stop_chat_to_export_import_or_delete_chat_database">データベースのエキスポート、読み込み、削除するにはチャットを閉じてからです。チャットを閉じると送受信ができなくなります。</string>
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">あなたのプロフィール、連絡先、メッセージ、ファイルが完全削除されます (※元に戻せません※)。</string>
|
||||
<string name="update_database_passphrase">データベース暗証フレーズを更新</string>
|
||||
<string name="save_archive">アーカイブを保存</string>
|
||||
<string name="snd_group_event_changed_role_for_yourself">あなたが自分の役割を次に変えました:%s</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed">アドレスを変えました</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed_for_member">%sのアドレスを変えました</string>
|
||||
<string name="select_contacts">連絡先を選択</string>
|
||||
<string name="skip_inviting_button">今はメンバーを招待しません</string>
|
||||
<string name="group_info_section_title_num_members"><xliff:g id="num_members">%1$s</xliff:g>メンバー</string>
|
||||
</resources>
|
||||
2
apps/android/app/src/main/res/values-nb-rNO/strings.xml
Normal file
2
apps/android/app/src/main/res/values-nb-rNO/strings.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
@@ -2,32 +2,32 @@
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="callstatus_error">oproepfout</string>
|
||||
<string name="callstatus_calling">bellen…</string>
|
||||
<string name="call_on_lock_screen">Oproepen op het vergrendelingsscherm:</string>
|
||||
<string name="callstatus_in_progress">gesprek gaande</string>
|
||||
<string name="icon_descr_call_progress">Gesprek gaande</string>
|
||||
<string name="call_on_lock_screen">Oproepen op vergrendelscherm:</string>
|
||||
<string name="callstatus_in_progress">oproep bezig</string>
|
||||
<string name="icon_descr_call_progress">Gesprek bezig</string>
|
||||
<string name="settings_section_title_calls">OPROEPEN</string>
|
||||
<string name="cancel_verb">Annuleren</string>
|
||||
<string name="icon_descr_cancel_file_preview">Bestandsvoorbeeld annuleren</string>
|
||||
<string name="icon_descr_cancel_image_preview">Afbeeldingsvoorbeeld annuleren</string>
|
||||
<string name="icon_descr_cancel_image_preview">Annuleer afbeeldingsvoorbeeld</string>
|
||||
<string name="feature_cancelled_item">geannuleerd %s</string>
|
||||
<string name="icon_descr_cancel_live_message">Live bericht annuleren</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing">veranderen van adres…</string>
|
||||
<string name="notifications_mode_service">altijd aan</string>
|
||||
<string name="notifications_mode_service">Altijd aan</string>
|
||||
<string name="icon_descr_asked_to_receive">Gevraagd om de afbeelding te ontvangen</string>
|
||||
<string name="change_verb">Wijzig</string>
|
||||
<string name="change_verb">Wijziging</string>
|
||||
<string name="network_settings">Geavanceerde netwerkinstellingen</string>
|
||||
<string name="network_enable_socks_info">Toegang tot de servers via SOCKS proxy op poort 9050\? De proxy moet worden gestart voordat u deze optie inschakelt.</string>
|
||||
<string name="alert_title_cant_invite_contacts">Kan contacten niet uitnodigen</string>
|
||||
<string name="allow_direct_messages">Directe berichten sturen naar leden toestaan.</string>
|
||||
<string name="allow_to_delete_messages">Onherroepelijk wissen van verzonden berichten toestaan.</string>
|
||||
<string name="allow_to_send_voice">Sta toe om spraakberichten te versturen.</string>
|
||||
<string name="alert_title_cant_invite_contacts">Kan geen contacten uitnodigen!</string>
|
||||
<string name="allow_direct_messages">Sta het verzenden van directe berichten naar leden toe.</string>
|
||||
<string name="allow_to_delete_messages">Sta toe om verzonden berichten onomkeerbaar te verwijderen.</string>
|
||||
<string name="allow_to_send_voice">Sta toe om spraakberichten te verzenden.</string>
|
||||
<string name="chat_is_running">Chat is aktief</string>
|
||||
<string name="clear_chat_menu_action">Clear</string>
|
||||
<string name="clear_chat_menu_action">Wissen</string>
|
||||
<string name="chat_database_section">CHAT DATABASE</string>
|
||||
<string name="chat_archive_section">CHAT ARCHIEF</string>
|
||||
<string name="chat_console">Chat console</string>
|
||||
<string name="chat_database_imported">Chat database geïmporteerd</string>
|
||||
<string name="chat_database_deleted">Chat database verwijderd</string>
|
||||
<string name="chat_database_imported">Chatdatabase geïmporteerd</string>
|
||||
<string name="chat_database_deleted">Chatdatabase verwijderd</string>
|
||||
<string name="chat_item_ttl_week">1 week</string>
|
||||
<string name="a_plus_b">a + b</string>
|
||||
<string name="accept_contact_button">Accepteer</string>
|
||||
@@ -35,42 +35,42 @@
|
||||
<string name="color_primary">Accent</string>
|
||||
<string name="accept">Accepteer</string>
|
||||
<string name="accept_connection_request__question">Verbindingsverzoek accepteren\?</string>
|
||||
<string name="callstatus_accepted">aanvaarde oproep</string>
|
||||
<string name="callstatus_accepted">geaccepteerde oproep</string>
|
||||
<string name="accept_contact_incognito_button">Accepteer incognito</string>
|
||||
<string name="smp_servers_preset_add">Vooraf ingestelde servers toevoegen</string>
|
||||
<string name="users_add">Profiel toevoegen</string>
|
||||
<string name="smp_servers_add">Server toevoegen…</string>
|
||||
<string name="smp_servers_add_to_another_device">Toevoegen aan een ander apparaat</string>
|
||||
<string name="v4_2_group_links_desc">Admins kunnen de links naar groepen aanmaken.</string>
|
||||
<string name="v4_2_group_links_desc">Beheerders kunnen de uitnodigingslinks naar groepen aanmaken.</string>
|
||||
<string name="v4_3_improved_server_configuration_desc">Servers toevoegen door QR-codes te scannen.</string>
|
||||
<string name="group_member_role_admin">admin</string>
|
||||
<string name="group_member_role_admin">Beheerder</string>
|
||||
<string name="all_group_members_will_remain_connected">Alle groepsleden blijven verbonden.</string>
|
||||
<string name="allow_verb">"Sta toe."</string>
|
||||
<string name="allow_verb">Toestaan</string>
|
||||
<string name="chat_item_ttl_day">1 dag</string>
|
||||
<string name="accept_feature">Accepteer</string>
|
||||
<string name="incognito_random_profile_from_contact_description">Een willekeurig profiel wordt gestuurd naar het contact waarvan u deze link heeft ontvangen.</string>
|
||||
<string name="network_session_mode_entity_description">Er wordt een aparte TCP-verbinding (en SOCKS-credential) gebruikt <b>voor elk contact en groepslid</b>.
|
||||
\n<b>Let op</b>: als u veel verbindingen hebt, kan uw batterij- en verkeersverbruik aanzienlijk hoger zijn en kunnen sommige verbindingen mislukken.</string>
|
||||
<string name="incognito_random_profile_from_contact_description">Er wordt een willekeurig profiel verzonden naar het contact van wie je deze link hebt ontvangen</string>
|
||||
<string name="network_session_mode_entity_description">Er wordt een afzonderlijke TCP-verbinding (en SOCKS-referentie) gebruikt <b> voor elk contact en groepslid </b>.
|
||||
\n<b>Let op</b>: als u veel verbindingen heeft, kan uw batterij- en verkeersverbruik aanzienlijk hoger zijn en kunnen sommige verbindingen uitvallen.</string>
|
||||
<string name="icon_descr_audio_call">audio-oproep</string>
|
||||
<string name="icon_descr_audio_on">Geluid aan</string>
|
||||
<string name="settings_audio_video_calls">Audio- en videogesprekken</string>
|
||||
<string name="settings_audio_video_calls">Audio- en Videogesprekken</string>
|
||||
<string name="auto_accept_images">Afbeeldingen automatisch accepteren</string>
|
||||
<string name="auth_unavailable">Verificatie niet beschikbaar</string>
|
||||
<string name="back">Terug</string>
|
||||
<string name="v4_2_auto_accept_contact_requests">Automatisch contactverzoeken accepteren</string>
|
||||
<string name="bold">vet</string>
|
||||
<string name="incognito_random_profile_description">Een willekeurig profiel wordt naar uw contactpersoon gestuurd</string>
|
||||
<string name="attach">Voeg toe</string>
|
||||
<string name="allow_irreversible_message_deletion_only_if">Laat onomkeerbare verwijdering van berichten alleen toe als uw contactpersoon u dat toestaat.</string>
|
||||
<string name="allow_to_send_disappearing">Laat verdwijnende berichten toe.</string>
|
||||
<string name="allow_your_contacts_to_send_voice_messages">Laat uw contacten spraakberichten versturen.</string>
|
||||
<string name="v4_2_auto_accept_contact_requests">Contactverzoeken automatisch accepteren</string>
|
||||
<string name="bold">vetgedrukt</string>
|
||||
<string name="incognito_random_profile_description">Er wordt een willekeurig profiel naar uw contactpersoon verzonden</string>
|
||||
<string name="attach">Bijvoegen</string>
|
||||
<string name="allow_irreversible_message_deletion_only_if">Sta het onomkeerbaar verwijderen van berichten alleen toe als uw contactpersoon dit toestaat.</string>
|
||||
<string name="allow_to_send_disappearing">Sta toe om verdwijnende berichten te verzenden.</string>
|
||||
<string name="allow_your_contacts_to_send_voice_messages">Sta toe dat uw contacten spraakberichten verzenden.</string>
|
||||
<string name="all_your_contacts_will_remain_connected">Al uw contacten blijven verbonden.</string>
|
||||
<string name="allow_voice_messages_question">Spraakberichten toestaan\?</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><b>Goed voor de batterij</b>. De achtergronddienst controleert elke 10 minuten op nieuwe berichten. U kunt oproepen en dringende berichten missen.</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><b>Goed voor batterij</b>. Achtergrondservice controleert elke 10 minuten op nieuwe berichten. U kunt oproepen en dringende berichten missen.</string>
|
||||
<string name="integrity_msg_bad_hash">Onjuiste bericht-hash</string>
|
||||
<string name="scan_QR_code_to_connect_to_contact_who_shows_QR_code"><b>Scan QR code</b>: om verbinding te maken met uw contactpersoon die de QR code aan u toont.</string>
|
||||
<string name="scan_QR_code_to_connect_to_contact_who_shows_QR_code"><b>Scan QR-code</b>: om verbinding te maken met uw contactpersoon die u de QR-code laat zien.</string>
|
||||
<string name="integrity_msg_bad_id">Onjuiste bericht-ID</string>
|
||||
<string name="call_already_ended">De oproep is al beëindigd!</string>
|
||||
<string name="call_already_ended">Oproep al beëindigd!</string>
|
||||
<string name="chat_item_ttl_month">1 maand</string>
|
||||
<string name="about_simplex">Over SimpleX</string>
|
||||
<string name="about_simplex_chat">About <xliff:g id="appNameFull">SimpleX Chat</xliff:g></string>
|
||||
@@ -78,53 +78,53 @@
|
||||
<string name="accept_requests">Verzoeken accepteren</string>
|
||||
<string name="users_delete_all_chats_deleted">Alle chats en berichten worden verwijderd - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="clear_chat_warning">Alle berichten worden verwijderd - dit kan niet ongedaan worden gemaakt! De berichten worden ALLEEN voor jou verwijderd.</string>
|
||||
<string name="allow_disappearing_messages_only_if">Laat verdwijnende berichten alleen toe als uw contact dat toestaat.</string>
|
||||
<string name="allow_disappearing_messages_only_if">Sta verdwijnende berichten alleen toe als uw contactpersoon dit toestaat.</string>
|
||||
<string name="allow_voice_messages_only_if">Sta spraakberichten alleen toe als uw contactpersoon ze toestaat.</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">Laat uw contacten onherroepelijk verzonden berichten verwijderen.</string>
|
||||
<string name="allow_your_contacts_to_send_disappearing_messages">Laat uw contacten verdwijnende berichten sturen.</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">Laat uw contacten verzonden berichten onomkeerbaar verwijderen.</string>
|
||||
<string name="allow_your_contacts_to_send_disappearing_messages">Sta toe dat uw contacten verdwijnende berichten verzenden.</string>
|
||||
<string name="chat_preferences_always">altijd</string>
|
||||
<string name="icon_descr_audio_off">Geluid uit</string>
|
||||
<string name="full_backup">App gegevens back-up</string>
|
||||
<string name="answer_call">Beantwoord de oproep</string>
|
||||
<string name="keychain_is_storing_securely">Android Keystore wordt gebruikt om passphrase veilig op te slaan - het laat notificatiedienst werken.</string>
|
||||
<string name="keychain_allows_to_receive_ntfs">Android Keystore wordt gebruikt om de passphrase veilig op te slaan nadat u de app opnieuw hebt opgestart of de passphrase hebt gewijzigd - hiermee kunt u meldingen ontvangen.</string>
|
||||
<string name="full_backup">Back-up van app-gegevens</string>
|
||||
<string name="answer_call">Beantwoord oproep</string>
|
||||
<string name="keychain_is_storing_securely">Android Keychain wordt gebruikt om het wachtwoord veilig op te slaan - hierdoor kan de meldingsservice werken.</string>
|
||||
<string name="keychain_allows_to_receive_ntfs">Android Keychain wordt gebruikt om het wachtwoord veilig op te slaan nadat u de app opnieuw hebt opgestart of het wachtwoord heeft gewijzigd - hiermee kunt u meldingen ontvangen.</string>
|
||||
<string name="app_version_code">App build: %s</string>
|
||||
<string name="notifications_mode_off_desc">App kan alleen meldingen ontvangen als hij draait, er wordt geen achtergronddienst gestart.</string>
|
||||
<string name="notifications_mode_off_desc">App kan alleen meldingen ontvangen wanneer deze actief is, er wordt geen achtergrondservice gestart</string>
|
||||
<string name="appearance_settings">Uiterlijk</string>
|
||||
<string name="settings_section_title_icon">APP ICON</string>
|
||||
<string name="app_version_title">App versie</string>
|
||||
<string name="app_version_name">App-versie: v%s</string>
|
||||
<string name="network_session_mode_user_description">Er wordt een aparte TCP-verbinding (en SOCKS-credential) gebruikt <b>voor elk chatprofiel dat u in de app hebt</b>.</string>
|
||||
<string name="network_session_mode_user_description">Er wordt een aparte TCP-verbinding (en SOCKS-referentie) gebruikt <b> voor elk chatprofiel dat je in de app hebt </b>.</string>
|
||||
<string name="audio_call_no_encryption">audio oproep (niet e2e versleuteld)</string>
|
||||
<string name="accept_automatically">Automatisch</string>
|
||||
<string name="notifications_mode_service_desc">De achtergronddienst draait altijd - meldingen worden getoond zodra de berichten beschikbaar zijn.</string>
|
||||
<string name="add_new_contact_to_create_one_time_QR_code"><b>Nieuw contact toevoegen</b>: om uw eenmalige QR-code voor uw contactpersoon aan te maken.</string>
|
||||
<string name="notifications_mode_service_desc">Achtergrondservice is altijd actief - meldingen worden weergegeven zodra de berichten beschikbaar zijn.</string>
|
||||
<string name="add_new_contact_to_create_one_time_QR_code"><b>Nieuw contact toevoegen</b>: om uw eenmalige QR-code voor uw contact te maken.</string>
|
||||
<string name="icon_descr_call_ended">Oproep beëindigd</string>
|
||||
<string name="turning_off_service_and_periodic">Batterijoptimalisatie is actief en schakelt de achtergronddienst en periodieke verzoeken om nieuwe berichten uit. U kunt ze opnieuw inschakelen via de instellingen.</string>
|
||||
<string name="turning_off_service_and_periodic">Batterijoptimalisatie is actief, waardoor achtergrondservice en periodieke verzoeken om nieuwe berichten worden uitgeschakeld. Je kunt ze weer inschakelen via instellingen.</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><b>Beste voor de batterij</b>. U ontvangt alleen meldingen als de app draait, de achtergronddienst wordt NIET gebruikt.</string>
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><b>Het kan worden uitgeschakeld via instellingen</b> - meldingen worden nog steeds getoond terwijl de app draait.</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Zowel u als uw contactpersoon kunnen verzonden berichten onherroepelijk verwijderen.</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Zowel jij als je contact kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">Zowel u als uw contactpersoon kunnen spraakberichten versturen.</string>
|
||||
<string name="impossible_to_recover_passphrase"><b>Let op</b>: u kunt de wachtwoordzin NIET herstellen of wijzigen als u deze verliest.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>Verbruikt meer batterij</b>! Achtergronddienst draait altijd - meldingen worden getoond zodra de berichten beschikbaar zijn.</string>
|
||||
<string name="icon_descr_cancel_link_preview">link preview annuleren</string>
|
||||
<string name="callstatus_ended">Oproep beëindigd <xliff:g id="duration" example="01:15">%1$s</xliff:g></string>
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><b>Het kan worden uitgeschakeld via instellingen</b> - meldingen worden nog steeds weergegeven terwijl de app actief is.</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">Zowel jij als je contactpersoon kunnen verzonden berichten onherroepelijk verwijderen.</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">Zowel jij als je contactpersoon kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">Zowel jij als je contactpersoon kunnen spraakberichten verzenden.</string>
|
||||
<string name="impossible_to_recover_passphrase"><b>Let op</b>: u kunt het wachtwoord NIET herstellen of wijzigen als u het kwijt raakt.</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>Gebruikt meer batterij</b>! Achtergrondservice is altijd actief - meldingen worden weergegeven zodra de berichten beschikbaar zijn.</string>
|
||||
<string name="icon_descr_cancel_link_preview">linkvoorbeeld annuleren</string>
|
||||
<string name="callstatus_ended">oproep beëindigd <xliff:g id="duration" example="01:15">%1$s</xliff:g></string>
|
||||
<string name="database_initialization_error_title">Kan de database niet initialiseren</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing_for_member">adres wijzigen voor %s…</string>
|
||||
<string name="invite_prohibited">Kan contact niet uitnodigen!</string>
|
||||
<string name="cannot_access_keychain">Kan geen toegang krijgen tot Keystore om database wachtwoord op te slaan</string>
|
||||
<string name="cannot_receive_file">Kan het bestand niet ontvangen</string>
|
||||
<string name="cannot_access_keychain">Geen toegang tot Keychain om databasewachtwoord op te slaan</string>
|
||||
<string name="cannot_receive_file">Kan bestand niet ontvangen</string>
|
||||
<string name="change_role">Rol wijzigen</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_changing">veranderen van adres…</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_completed">veranderd adres voor jou</string>
|
||||
<string name="rcv_group_event_changed_member_role">rol van %s veranderd in %s</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_completed">adres voor u gewijzigd</string>
|
||||
<string name="rcv_group_event_changed_member_role">veranderde rol van %s naar %s</string>
|
||||
<string name="change_member_role_question">Groepsrol wijzigen\?</string>
|
||||
<string name="chat_is_stopped">Chat is gestopt</string>
|
||||
<string name="notifications_mode_periodic_desc">Controleert nieuwe berichten elke 10 minuten gedurende maximaal 1 minuut</string>
|
||||
<string name="rcv_group_event_changed_your_role">uw rol veranderd in %s</string>
|
||||
<string name="chat_archive_header">Chat archief</string>
|
||||
<string name="change_database_passphrase_question">Database wachtwoord wijzigen\?</string>
|
||||
<string name="rcv_group_event_changed_your_role">je rol gewijzigd in %s</string>
|
||||
<string name="chat_archive_header">Chats archief</string>
|
||||
<string name="change_database_passphrase_question">Wachtwoord database wijzigen\?</string>
|
||||
<string name="chat_is_stopped_indication">Chat is gestopt</string>
|
||||
<string name="chat_preferences">Chat voorkeuren</string>
|
||||
<string name="network_session_mode_user">Chat profiel</string>
|
||||
@@ -132,7 +132,7 @@
|
||||
<string name="chat_with_developers">Chat met de ontwikkelaars</string>
|
||||
<string name="smp_servers_check_address">Controleer het serveradres en probeer het opnieuw.</string>
|
||||
<string name="choose_file">Kies bestand</string>
|
||||
<string name="clear_verb">Clear</string>
|
||||
<string name="clear_verb">Wissen</string>
|
||||
<string name="v4_4_verify_connection_security_desc">Vergelijk beveiligingscodes met je contacten.</string>
|
||||
<string name="icon_descr_contact_checked">Contact gecontroleerd</string>
|
||||
<string name="notification_contact_connected">Verbonden</string>
|
||||
@@ -144,24 +144,24 @@
|
||||
<string name="display_name_connection_established">verbinding gemaakt</string>
|
||||
<string name="connection_request_sent">Verbindingsverzoek verzonden!</string>
|
||||
<string name="connection_timeout">Time-out verbinding</string>
|
||||
<string name="share_one_time_link">"Maak een eenmalige uitnodigings link"</string>
|
||||
<string name="share_one_time_link">Maak een eenmalige uitnodigingslink</string>
|
||||
<string name="create_address">Adres aanmaken</string>
|
||||
<string name="create_group_link">Groeps link maken</string>
|
||||
<string name="create_group_link">Groepslink maken</string>
|
||||
<string name="create_group">Maak een geheime groep aan</string>
|
||||
<string name="database_will_be_encrypted">Database wordt versleuteld.</string>
|
||||
<string name="group_member_status_creator">Starter</string>
|
||||
<string name="delete_address__question">Adres verwijderen\?</string>
|
||||
<string name="database_passphrase_and_export">Database wachtwoord zin & exporteren</string>
|
||||
<string name="passphrase_is_different">De wachtwoord zin van de database verschilt van de wachtwoord zin die is opgeslagen in de keystore.</string>
|
||||
<string name="database_passphrase_and_export">Database wachtwoord & Exporteren</string>
|
||||
<string name="passphrase_is_different">Het wachtwoord van de database verschilt van het wachtwoord dat is opgeslagen in de keychain.</string>
|
||||
<string name="ttl_d">%dd</string>
|
||||
<string name="delete_verb">Verwijderen</string>
|
||||
<string name="delete_after">Verwijderen na</string>
|
||||
<string name="connect_via_link_verb">Verbind</string>
|
||||
<string name="server_connected">verbonden</string>
|
||||
<string name="server_connecting">Verbinden</string>
|
||||
<string name="connect_via_contact_link">Verbinden via contact link\?</string>
|
||||
<string name="connect_via_group_link">Verbinden via groeps link\?</string>
|
||||
<string name="connect_via_invitation_link">Verbinden via uitnodigings link\?</string>
|
||||
<string name="connect_via_contact_link">Verbinden via contactlink\?</string>
|
||||
<string name="connect_via_group_link">Verbinden via groepslink\?</string>
|
||||
<string name="connect_via_invitation_link">Verbinden via uitnodigingslink\?</string>
|
||||
<string name="notification_preview_mode_contact">Contact naam</string>
|
||||
<string name="notification_preview_somebody">Contact verborgen:</string>
|
||||
<string name="image_decoding_exception_title">Decodeerfout</string>
|
||||
@@ -179,15 +179,15 @@
|
||||
<string name="callstate_connected">verbonden</string>
|
||||
<string name="callstate_connecting">Verbinden…</string>
|
||||
<string name="decentralized">Gedecentraliseerd</string>
|
||||
<string name="create_your_profile">Maak je profiel aan</string>
|
||||
<string name="create_your_profile">Maak mijn profiel aan</string>
|
||||
<string name="ttl_day">%d dag</string>
|
||||
<string name="ttl_days">%d dagen</string>
|
||||
<string name="encrypted_with_random_passphrase">De database is versleuteld met een willekeurige wachtwoord zin, u kunt deze wijzigen.</string>
|
||||
<string name="database_encryption_will_be_updated">De wachtwoord zin voor database codering wordt bijgewerkt en opgeslagen in de sleutel kluis.</string>
|
||||
<string name="database_will_be_encrypted_and_passphrase_stored">De database wordt gecodeerd en de wachtwoord zin wordt opgeslagen in de Keystore.</string>
|
||||
<string name="database_passphrase_will_be_updated">De wachtwoordzin voor databasecodering wordt bijgewerkt.</string>
|
||||
<string name="encrypted_with_random_passphrase">De database is versleuteld met een willekeurig wachtwoord, u kunt deze wijzigen.</string>
|
||||
<string name="database_encryption_will_be_updated">Het wachtwoord voor database versleuteling wordt bijgewerkt en opgeslagen in de keychain.</string>
|
||||
<string name="database_will_be_encrypted_and_passphrase_stored">"De database wordt versleuteld en het wachtwoord wordt opgeslagen in de Keychain."</string>
|
||||
<string name="database_passphrase_will_be_updated">Het wachtwoord voor database versleuteling wordt bijgewerkt.</string>
|
||||
<string name="database_error">Database fout</string>
|
||||
<string name="database_passphrase_is_required">Databases wachtwoord zin is vereist om de chat te openen.</string>
|
||||
<string name="database_passphrase_is_required">Database-wachtwoord is vereist om de chat te openen.</string>
|
||||
<string name="contact_already_exists">Contact bestaat al</string>
|
||||
<string name="icon_descr_call_connecting">Oproep verbinden</string>
|
||||
<string name="button_create_group_link">Maak link</string>
|
||||
@@ -208,7 +208,7 @@
|
||||
<string name="clear_verification">Verwijderd verificatie</string>
|
||||
<string name="connect_button">Verbind</string>
|
||||
<string name="connect_via_link">Maak verbinding via link</string>
|
||||
<string name="create_one_time_link">Maak een eenmalige uitnodigings link</string>
|
||||
<string name="create_one_time_link">Maak een eenmalige uitnodigingslink</string>
|
||||
<string name="colored">gekleurd</string>
|
||||
<string name="callstatus_connecting">Oproep verbinden…</string>
|
||||
<string name="contact_requests">Contact verzoeken</string>
|
||||
@@ -216,17 +216,17 @@
|
||||
<string name="create_profile">Maak een profiel aan</string>
|
||||
<string name="delete_address">Adres verwijderen</string>
|
||||
<string name="connect_calls_via_relay">Verbinden via relais</string>
|
||||
<string name="status_contact_has_e2e_encryption">contact heeft e2e encryptie</string>
|
||||
<string name="status_contact_has_e2e_encryption">contact heeft e2e-codering</string>
|
||||
<string name="status_contact_has_no_e2e_encryption">contact heeft geen e2e-encryptie</string>
|
||||
<string name="set_password_to_export_desc">De database is versleuteld met een willekeurige wachtwoordzin. Wijzig dit voordat u exporteert.</string>
|
||||
<string name="database_passphrase">Database-wachtwoordzin</string>
|
||||
<string name="confirm_new_passphrase">Bevestig nieuwe wachtwoordzin…</string>
|
||||
<string name="current_passphrase">Huidige wachtwoordzin…</string>
|
||||
<string name="set_password_to_export_desc">De database is versleuteld met een willekeurige wachtwoord. Wijzig dit voordat u exporteert.</string>
|
||||
<string name="database_passphrase">Database-wachtwoord</string>
|
||||
<string name="confirm_new_passphrase">Bevestig nieuw wachtwoord…</string>
|
||||
<string name="current_passphrase">Huidige wachtwoord…</string>
|
||||
<string name="database_encrypted">Database versleuteld!</string>
|
||||
<string name="rcv_group_event_member_connected">verbonden</string>
|
||||
<string name="rcv_group_event_member_connected">is toegetreden</string>
|
||||
<string name="archive_created_on_ts">Gemaakt op <xliff:g id="archive_ts">%1$s</xliff:g></string>
|
||||
<string name="group_member_status_complete">compleet</string>
|
||||
<string name="clear_contacts_selection_button">Duidelijk</string>
|
||||
<string name="clear_contacts_selection_button">Wissen</string>
|
||||
<string name="group_member_status_connected">verbonden</string>
|
||||
<string name="group_member_status_connecting">Verbinden</string>
|
||||
<string name="group_member_status_accepted">verbinden (geaccepteerd)</string>
|
||||
@@ -234,15 +234,15 @@
|
||||
<string name="info_row_connection">Verbinding</string>
|
||||
<string name="create_secret_group_title">Maak een geheime groep aan</string>
|
||||
<string name="info_row_database_id">Database ID</string>
|
||||
<string name="chat_preferences_contact_allows">Contact staat toe</string>
|
||||
<string name="chat_preferences_contact_allows">Contact maakt het mogelijk</string>
|
||||
<string name="contact_preferences">Contact voorkeuren</string>
|
||||
<string name="contacts_can_mark_messages_for_deletion">Contact personen kunnen berichten markeren voor verwijdering; u kunt ze wel bekijken.</string>
|
||||
<string name="theme_dark">Donker</string>
|
||||
<string name="chat_preferences_default">standaard (%s)</string>
|
||||
<string name="delete_chat_archive_question">Chat archief verwijderen\?</string>
|
||||
<string name="delete_chat_archive_question">Chatarchief verwijderen\?</string>
|
||||
<string name="delete_archive">Archief verwijderen</string>
|
||||
<string name="delete_contact_question">Verwijder contact\?</string>
|
||||
<string name="delete_chat_profile_question">Chat profiel verwijderen\?</string>
|
||||
<string name="delete_chat_profile_question">Chatprofiel verwijderen\?</string>
|
||||
<string name="full_deletion">Verwijderen voor iedereen</string>
|
||||
<string name="delete_link">Link verwijderen</string>
|
||||
<string name="conn_level_desc_direct">direct</string>
|
||||
@@ -250,7 +250,7 @@
|
||||
<string name="settings_section_title_device">APPARAAT</string>
|
||||
<string name="delete_files_and_media_all">Verwijder alle bestanden</string>
|
||||
<string name="delete_messages_after">Berichten verwijderen na</string>
|
||||
<string name="direct_messages">Privéberichten</string>
|
||||
<string name="direct_messages">Directe berichten</string>
|
||||
<string name="ttl_month">%d maand</string>
|
||||
<string name="delete_image">Verwijder afbeelding</string>
|
||||
<string name="delete_database">Database verwijderen</string>
|
||||
@@ -270,7 +270,7 @@
|
||||
<string name="auth_device_authentication_is_disabled_turning_off">Apparaatverificatie is uitgeschakeld. SimpleX Lock uitschakelen.</string>
|
||||
<string name="display_name">Weergavenaam</string>
|
||||
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">Apparaatverificatie is niet ingeschakeld. Je kunt SimpleX Lock inschakelen via Instellingen zodra je apparaatverificatie hebt ingeschakeld.</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">Privéberichten tussen leden zijn in deze groep verboden.</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">Directe berichten tussen leden zijn verboden in deze groep.</string>
|
||||
<string name="total_files_count_and_size">%d bestand(en) met een totale grootte van %s</string>
|
||||
<string name="ttl_hour">%d uur</string>
|
||||
<string name="no_call_on_lock_screen">Uitzetten</string>
|
||||
@@ -294,8 +294,8 @@
|
||||
<string name="ttl_mth">%dmth</string>
|
||||
<string name="ttl_hours">%d uren</string>
|
||||
<string name="ttl_h">%dh</string>
|
||||
<string name="users_delete_question">Chat profiel verwijderen\?</string>
|
||||
<string name="users_delete_profile_for">Chat profiel verwijderen voor</string>
|
||||
<string name="users_delete_question">Chatprofiel verwijderen\?</string>
|
||||
<string name="users_delete_profile_for">Chatprofiel verwijderen voor</string>
|
||||
<string name="deleted_description">verwijderd</string>
|
||||
<string name="simplex_link_mode_description">Beschrijving</string>
|
||||
<string name="error_receiving_file">Fout bij ontvangen van bestand</string>
|
||||
@@ -337,46 +337,46 @@
|
||||
<string name="error_changing_message_deletion">Fout bij wijzigen van instelling</string>
|
||||
<string name="error_encrypting_database">Fout bij het versleutelen van de database</string>
|
||||
<string name="file_with_path">Bestand: %s</string>
|
||||
<string name="enter_passphrase">Voer wachtwoordzin in…</string>
|
||||
<string name="enter_passphrase">Voer wachtwoord in…</string>
|
||||
<string name="icon_descr_group_inactive">Groep inactief</string>
|
||||
<string name="alert_message_group_invitation_expired">Groeps uitnodiging is niet meer geldig, deze is verwijderd door de afzender.</string>
|
||||
<string name="snd_group_event_group_profile_updated">groeps profiel bijgewerkt</string>
|
||||
<string name="alert_message_group_invitation_expired">Groepsuitnodiging is niet meer geldig, deze is verwijderd door de afzender.</string>
|
||||
<string name="snd_group_event_group_profile_updated">groepsprofiel bijgewerkt</string>
|
||||
<string name="group_member_status_group_deleted">groep verwijderd</string>
|
||||
<string name="icon_descr_expand_role">Vouw de rolselectie uit</string>
|
||||
<string name="delete_group_for_all_members_cannot_undo_warning">Groep wordt verwijderd voor alle leden - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="error_creating_link_for_group">Fout bij maken van groeps link</string>
|
||||
<string name="error_deleting_link_for_group">Fout bij verwijderen groeps link</string>
|
||||
<string name="group_link">Groeps link</string>
|
||||
<string name="error_creating_link_for_group">Fout bij maken van groepslink</string>
|
||||
<string name="error_deleting_link_for_group">Fout bij verwijderen groepslink</string>
|
||||
<string name="group_link">Groepslink</string>
|
||||
<string name="error_changing_role">Fout bij wisselen van rol</string>
|
||||
<string name="error_removing_member">Fout bij verwijderen van lid</string>
|
||||
<string name="error_removing_member">Fout bij verwijderen van gebruiker</string>
|
||||
<string name="info_row_group">Groep</string>
|
||||
<string name="group_full_name_field">Volledige naam groep:</string>
|
||||
<string name="group_preferences">Groeps voorkeuren</string>
|
||||
<string name="feature_enabled">ingeschakeld</string>
|
||||
<string name="feature_enabled_for_contact">ingeschakeld voor contact</string>
|
||||
<string name="feature_enabled_for_you">voor u ingeschakeld</string>
|
||||
<string name="group_members_can_delete">Groeps leden kunnen verzonden berichten onherroepelijk verwijderen.</string>
|
||||
<string name="group_members_can_send_dms">Groeps leden kunnen directe berichten sturen.</string>
|
||||
<string name="group_members_can_send_voice">Groeps leden kunnen spraak berichten verzenden.</string>
|
||||
<string name="group_members_can_delete">Groepsleden kunnen verzonden berichten onherroepelijk verwijderen.</string>
|
||||
<string name="group_members_can_send_dms">Groepsleden kunnen directe berichten sturen.</string>
|
||||
<string name="group_members_can_send_voice">Groepsleden kunnen spraak berichten verzenden.</string>
|
||||
<string name="v4_5_transport_isolation_descr">Per chatprofiel (standaard) of per verbinding (BETA).</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">Verschillende namen, avatars en transportisolatie.</string>
|
||||
<string name="v4_4_french_interface">Franse interface</string>
|
||||
<string name="error_saving_group_profile">Fout bij opslaan van groeps profiel</string>
|
||||
<string name="error_saving_group_profile">Fout bij opslaan van groepsprofiel</string>
|
||||
<string name="encrypted_audio_call">e2e versleutelde audio-oproep</string>
|
||||
<string name="status_e2e_encrypted">e2e versleuteld</string>
|
||||
<string name="edit_verb">Bewerk</string>
|
||||
<string name="enable_automatic_deletion_question">Automatisch verwijderen van berichten aanzetten\?</string>
|
||||
<string name="enter_correct_passphrase">Voer de juiste wachtwoordzin in.</string>
|
||||
<string name="enter_correct_passphrase">Voer het juiste wachtwoord in.</string>
|
||||
<string name="button_edit_group_profile">Groepsprofiel bewerken</string>
|
||||
<string name="network_option_enable_tcp_keep_alive">Schakel TCP-keep-alive in</string>
|
||||
<string name="encrypt_database">Versleutelen</string>
|
||||
<string name="error_adding_members">Fout bij het toevoegen van lid (leden)</string>
|
||||
<string name="error_adding_members">Fout bij het toevoegen van gebruiker(s)</string>
|
||||
<string name="smp_servers_enter_manually">Voer de server handmatig in</string>
|
||||
<string name="error_accepting_contact_request">Fout bij het accepteren van een contactverzoek</string>
|
||||
<string name="group_invitation_expired">Groeps uitnodiging verlopen</string>
|
||||
<string name="group_invitation_expired">Groepsuitnodiging verlopen</string>
|
||||
<string name="icon_descr_file">Bestand</string>
|
||||
<string name="section_title_for_console">VOOR CONSOLE</string>
|
||||
<string name="group_profile_is_stored_on_members_devices">Groeps proces wordt opgeslagen op de apparaten van de leden, niet op de servers.</string>
|
||||
<string name="group_profile_is_stored_on_members_devices">Groepsprofiel wordt opgeslagen op de apparaten van de leden, niet op de servers.</string>
|
||||
<string name="notification_preview_mode_hidden">Verborgen</string>
|
||||
<string name="delete_group_for_self_cannot_undo_warning">De groep wordt voor u verwijderd - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="hide_notification">Verbergen</string>
|
||||
@@ -388,7 +388,7 @@
|
||||
<string name="from_gallery_button">Van Galerij</string>
|
||||
<string name="error_saving_ICE_servers">Fout bij opslaan van ICE-servers</string>
|
||||
<string name="callstate_ended">geëindigd</string>
|
||||
<string name="group_members_can_send_disappearing">Groeps leden kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="group_members_can_send_disappearing">Groepsleden kunnen verdwijnende berichten sturen.</string>
|
||||
<string name="ttl_week">%d week</string>
|
||||
<string name="ttl_w">%dw</string>
|
||||
<string name="ttl_weeks">%d weken</string>
|
||||
@@ -424,7 +424,7 @@
|
||||
<string name="large_file">Groot bestand!</string>
|
||||
<string name="mark_read">Markeer gelezen</string>
|
||||
<string name="mark_unread">Markeer als ongelezen</string>
|
||||
<string name="mute_chat">Stom</string>
|
||||
<string name="mute_chat">Dempen</string>
|
||||
<string name="if_you_cannot_meet_in_person_scan_QR_in_video_call_or_ask_for_invitation_link">Als u elkaar niet persoonlijk kunt ontmoeten, kunt u <b> de QR-code scannen in het videogesprek </b>, of uw contactpersoon kan een uitnodigingslink delen.</string>
|
||||
<string name="if_you_cannot_meet_in_person_show_QR_in_video_call_or_via_another_channel">Als je elkaar niet persoonlijk kunt ontmoeten, <b>toon je de QR-code in het videogesprek</b> of deel je de link.</string>
|
||||
<string name="invalid_QR_code">Ongeldige QR-code</string>
|
||||
@@ -434,7 +434,7 @@
|
||||
<string name="how_to_use_simplex_chat">Hoe te gebruiken</string>
|
||||
<string name="markdown_help">Markdown-hulp</string>
|
||||
<string name="markdown_in_messages">Markdown in berichten</string>
|
||||
<string name="network_settings_title">Netwerkinstellingen</string>
|
||||
<string name="network_settings_title">Netwerk instellingen</string>
|
||||
<string name="how_to_use_markdown">Markdown gebruiken</string>
|
||||
<string name="italic">cursief</string>
|
||||
<string name="how_it_works">Hoe het werkt</string>
|
||||
@@ -449,7 +449,7 @@
|
||||
<string name="chat_item_ttl_none">nooit</string>
|
||||
<string name="no_received_app_files">Geen ontvangen of verzonden bestanden</string>
|
||||
<string name="alert_title_group_invitation_expired">Uitnodiging verlopen!</string>
|
||||
<string name="rcv_group_event_member_left">Verlaten</string>
|
||||
<string name="rcv_group_event_member_left">groep verlaten</string>
|
||||
<string name="group_member_status_left">Verlaten</string>
|
||||
<string name="group_member_status_invited">uitgenodigd</string>
|
||||
<string name="button_leave_group">Groep verlaten</string>
|
||||
@@ -460,7 +460,7 @@
|
||||
<string name="v4_3_improved_privacy_and_security_desc">App-scherm verbergen in de recente apps.</string>
|
||||
<string name="settings_section_title_incognito">Incognito modus</string>
|
||||
<string name="messages_section_title">Berichten</string>
|
||||
<string name="new_passphrase">Nieuwe wachtwoordzin…</string>
|
||||
<string name="new_passphrase">Nieuw wachtwoord…</string>
|
||||
<string name="keychain_error">Keychain fout</string>
|
||||
<string name="join_group_button">Word lid van</string>
|
||||
<string name="leave_group_question">Groep verlaten\?</string>
|
||||
@@ -478,7 +478,7 @@
|
||||
<string name="turn_off_battery_optimization">Om het te gebruiken <b xmlns:xliff=\"urn:oasis:names:tc:xliff:document:1.2\">batterijoptimalisatie uitschakelen</b> voor <xliff:g xmlns:xliff=\"urn:oasis: names:tc:xliff:document:1.2\" id=\"appName\">SimpleX</xliff:g> in het volgende dialoogvenster. Anders worden de meldingen uitgeschakeld.</string>
|
||||
<string name="if_you_choose_to_reject_the_sender_will_not_be_notified">Als u ervoor kiest om te weigeren, wordt de afzender NIET op de hoogte gesteld.</string>
|
||||
<string name="onboarding_notifications_mode_service">Onmiddellijk</string>
|
||||
<string name="rcv_group_event_member_added">uitgenodigd <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="rcv_group_event_member_added">heeft <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g> uitgenodigd</string>
|
||||
<string name="group_invitation_item_description">uitnodiging voor groep <xliff:g id="group_name">%1$s</xliff:g></string>
|
||||
<string name="invite_to_group_button">Uitnodigen voor groep</string>
|
||||
<string name="join_group_incognito_button">Doe incognito mee</string>
|
||||
@@ -491,12 +491,12 @@
|
||||
\nWe zullen serverredundantie toevoegen om verloren berichten te voorkomen.</string>
|
||||
<string name="joining_group">Deel nemen aan groep</string>
|
||||
<string name="leave_group_button">Verlaten</string>
|
||||
<string name="group_member_role_member">lid</string>
|
||||
<string name="group_member_role_member">gebruiker</string>
|
||||
<string name="image_descr_link_preview">link voorbeeldafbeelding</string>
|
||||
<string name="member_info_section_title_member">LID</string>
|
||||
<string name="member_info_section_title_member">GEBRUIKER</string>
|
||||
<string name="settings_section_title_messages">BERICHTEN</string>
|
||||
<string name="mobile_tap_open_in_mobile_app_then_tap_connect_in_app">📱 mobiel: tik op <b>Openen in mobiele app</b> en tik vervolgens op <b>Verbinden</b> in de app.</string>
|
||||
<string name="member_will_be_removed_from_group_cannot_be_undone">Lid wordt uit de groep verwijderd - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="member_will_be_removed_from_group_cannot_be_undone">Gebruiker wordt uit de groep verwijderd - dit kan niet ongedaan worden gemaakt!</string>
|
||||
<string name="message_delivery_error_title">Fout bij bezorging van bericht</string>
|
||||
<string name="delete_message_mark_deleted_warning">Bericht wordt gemarkeerd voor verwijdering. De ontvanger(s) kunnen dit bericht onthullen.</string>
|
||||
<string name="network_status">Netwerk status</string>
|
||||
@@ -520,7 +520,7 @@
|
||||
<string name="install_simplex_chat_for_terminal">Installeer <xliff:g id="appNameFull">SimpleX Chat</xliff:g> voor terminal</string>
|
||||
<string name="how_to">Hoe</string>
|
||||
<string name="how_to_use_your_servers">Hoe u uw servers gebruikt</string>
|
||||
<string name="network_and_servers">Netwerk & servers</string>
|
||||
<string name="network_and_servers">Netwerk & Servers</string>
|
||||
<string name="enter_one_ICE_server_per_line">ICE-servers (één per lijn)</string>
|
||||
<string name="ensure_ICE_server_address_are_correct_format_and_unique">Zorg ervoor dat WebRTC ICE-serveradressen de juiste indeling hebben, regelgescheiden zijn en niet gedupliceerd zijn.</string>
|
||||
<string name="network_disable_socks_info">Als u bevestigt, kunnen de berichtenservers uw IP-adres zien en uw provider - met welke servers u verbinding maakt.</string>
|
||||
@@ -548,7 +548,7 @@
|
||||
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">Controleer of u de juiste link heeft gebruikt of vraag uw contactpersoon om u een andere te sturen.</string>
|
||||
<string name="image_descr_profile_image">profielfoto</string>
|
||||
<string name="privacy_redefined">Privacy opnieuw gedefinieerd</string>
|
||||
<string name="privacy_and_security">Privacy en beveiliging</string>
|
||||
<string name="privacy_and_security">Privacy en Beveiliging</string>
|
||||
<string name="network_error_desc">Controleer uw netwerkverbinding met <xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g> en probeer het opnieuw.</string>
|
||||
<string name="error_smp_test_certificate">Mogelijk is de certificaatvingerafdruk in het serveradres onjuist</string>
|
||||
<string name="periodic_notifications">Periodieke meldingen</string>
|
||||
@@ -566,7 +566,7 @@
|
||||
<string name="open_simplex_chat_to_accept_call">Open <xliff:g id="appNameFull">SimpleX Chat</xliff:g> om de oproep te accepteren</string>
|
||||
<string name="call_connection_peer_to_peer">peer-to-peer</string>
|
||||
<string name="notifications_will_be_hidden">Meldingen worden alleen afgeleverd totdat de app stopt!</string>
|
||||
<string name="restore_passphrase_not_found_desc">Wachtwoordzin niet gevonden in Keystore, voer deze handmatig in. Dit kan zijn gebeurd als u de gegevens van de app hebt hersteld met een back-uptool. Als dit niet het geval is, neem dan contact op met de ontwikkelaars.</string>
|
||||
<string name="restore_passphrase_not_found_desc">Wachtwoord niet gevonden in de Keychain, voer deze handmatig in. Dit kan zijn gebeurd als u de gegevens van de app hebt hersteld met een back-up tool. Als dit niet het geval is, neem dan contact op met de ontwikkelaars.</string>
|
||||
<string name="users_delete_with_connections">Profiel- en serververbindingen</string>
|
||||
<string name="chat_preferences_off">uit</string>
|
||||
<string name="chat_preferences_on">aan</string>
|
||||
@@ -575,14 +575,14 @@
|
||||
<string name="only_you_can_delete_messages">Alleen jij kunt berichten onomkeerbaar verwijderen (je contactpersoon kan ze markeren voor verwijdering).</string>
|
||||
<string name="feature_offered_item_with_param">aangeboden %s: %2s</string>
|
||||
<string name="old_database_archive">Oud database-archief</string>
|
||||
<string name="enter_correct_current_passphrase">Voer de juiste huidige wachtwoordzin in.</string>
|
||||
<string name="enter_correct_current_passphrase">Voer het juiste huidige wachtwoord in.</string>
|
||||
<string name="group_member_role_owner">eigenaar</string>
|
||||
<string name="network_option_ping_count">PING-telling</string>
|
||||
<string name="network_option_ping_interval">PING-interval</string>
|
||||
<string name="v4_5_message_draft_descr">Bewaar het laatste berichtconcept, met bijlagen.</string>
|
||||
<string name="v4_5_private_filenames">Privé bestandsnamen</string>
|
||||
<string name="images_limit_desc">Er kunnen slechts 10 afbeeldingen tegelijk worden verzonden</string>
|
||||
<string name="enter_passphrase_notification_title">Wachtwoordzin is nodig</string>
|
||||
<string name="enter_passphrase_notification_title">Wachtwoord is nodig</string>
|
||||
<string name="feature_off">uit</string>
|
||||
<string name="add_contact">Eenmalige uitnodigingslink</string>
|
||||
<string name="network_use_onion_hosts_required_desc_in_alert">Onion hosts zijn vereist voor verbinding.</string>
|
||||
@@ -606,12 +606,364 @@
|
||||
<string name="only_your_contact_can_send_voice">Alleen uw contactpersoon kan spraakberichten verzenden.</string>
|
||||
<string name="prohibit_message_deletion">Verbied het onomkeerbaar verwijderen van berichten.</string>
|
||||
<string name="feature_offered_item">aangeboden %s</string>
|
||||
<string name="store_passphrase_securely_without_recover">Sla de wachtwoordzin veilig op. Als u deze kwijtraakt, heeft u GEEN toegang tot de chat.</string>
|
||||
<string name="store_passphrase_securely">Bewaar de wachtwoordzin veilig, u kunt deze NIET wijzigen als u deze kwijtraakt.</string>
|
||||
<string name="store_passphrase_securely_without_recover">Sla het wachtwoord veilig op. Als u deze kwijtraakt, heeft u GEEN toegang tot de chat.</string>
|
||||
<string name="store_passphrase_securely">Bewaar het wachtwoord veilig, u kunt deze NIET wijzigen als u deze kwijtraakt.</string>
|
||||
<string name="open_chat">Chat openen</string>
|
||||
<string name="restore_database_alert_desc">Voer het vorige wachtwoord in na het herstellen van de databaseback-up. Deze actie kan niet ongedaan gemaakt worden.</string>
|
||||
<string name="restore_database_alert_desc">Voer het vorige wachtwoord in na het herstellen van de database back-up. Deze actie kan niet ongedaan gemaakt worden.</string>
|
||||
<string name="icon_descr_call_pending_sent">Oproep in behandeling</string>
|
||||
<string name="simplex_link_mode_browser_warning">Het openen van de link in de browser kan de privacy en beveiliging van de verbinding verminderen. Niet-vertrouwde SimpleX-links worden rood weergegeven.</string>
|
||||
<string name="contact_developers">Werk de app bij en neem contact op met de ontwikkelaars.</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Alleen client-apparaten slaan gebruikersprofielen, contacten, groepen en berichten op die zijn verzonden met <b>2-laags end-to-end-codering</b>.</string>
|
||||
<string name="sender_may_have_deleted_the_connection_request">De afzender heeft mogelijk het verbindingsverzoek verwijderd.</string>
|
||||
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">Schakel SimpleX Lock in om uw informatie te beschermen.
|
||||
\nU wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingeschakeld.</string>
|
||||
<string name="la_notice_turn_on">Aanzetten</string>
|
||||
<string name="auth_unlock">Ontgrendelen</string>
|
||||
<string name="waiting_for_image">Wachten op afbeelding</string>
|
||||
<string name="send_live_message">Stuur een livebericht</string>
|
||||
<string name="to_start_a_new_chat_help_header">Om een nieuwe chat te starten</string>
|
||||
<string name="unmute_chat">Dempen opheffen</string>
|
||||
<string name="icon_descr_simplex_team"><xliff:g id="appName">SimpleX</xliff:g>-team</string>
|
||||
<string name="this_QR_code_is_not_a_link">Deze QR-code is geen link!</string>
|
||||
<string name="this_link_is_not_a_valid_connection_link">Deze link is geen geldige link!</string>
|
||||
<string name="show_QR_code_for_your_contact_to_scan_from_the_app__multiline">Uw contactpersoon kan de QR-code vanuit de app scannen.</string>
|
||||
<string name="share_invitation_link">Uitnodigingslink delen</string>
|
||||
<string name="scan_code">Code scannen</string>
|
||||
<string name="your_contact_address">Mijn contact adres</string>
|
||||
<string name="your_settings">Mijn instellingen</string>
|
||||
<string name="share_link">Deel link</string>
|
||||
<string name="you_control_your_chat">Jij beheert je chat!</string>
|
||||
<string name="your_profile_is_stored_on_your_device">Uw profiel, contacten en afgeleverde berichten worden op uw apparaat opgeslagen.</string>
|
||||
<string name="callstate_starting">beginnen…</string>
|
||||
<string name="you_control_servers_to_receive_your_contacts_to_send">U bepaalt via welke server(s) je de berichten <b>ontvangt</b>, uw contacten – de servers die u gebruikt om ze berichten te sturen.</string>
|
||||
<string name="icon_descr_video_on">Video aan</string>
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">Deze actie kan niet ongedaan worden gemaakt - uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</string>
|
||||
<string name="messages_section_description">Deze instelling is van toepassing op berichten in jou huidige chatprofiel</string>
|
||||
<string name="save_archive">Bewaar archief</string>
|
||||
<string name="rcv_group_event_updated_group_profile">bijgewerkt groepsprofiel</string>
|
||||
<string name="group_member_status_removed">verwijderd</string>
|
||||
<string name="group_main_profile_sent">Uw chatprofiel wordt verzonden naar groepsleden</string>
|
||||
<string name="failed_to_create_user_duplicate_desc">Je hebt al een chatprofiel met dezelfde weergavenaam. Kies een andere naam.</string>
|
||||
<string name="you_are_already_connected_to_vName_via_this_link">U bent al verbonden met <xliff:g id="contactName" example="Alice">%1$s!</xliff:g>.</string>
|
||||
<string name="error_smp_test_failed_at_step">Test mislukt bij stap %s.</string>
|
||||
<string name="smp_server_test_secure_queue">Veilige wachtrij</string>
|
||||
<string name="database_initialization_error_desc">De database werkt niet goed. Tik voor meer informatie</string>
|
||||
<string name="enter_passphrase_notification_desc">Voer het wachtwoord van de database in om meldingen te ontvangen</string>
|
||||
<string name="simplex_service_notification_title"><xliff:g id="appNameFull">SimpleX Chat</xliff:g> service</string>
|
||||
<string name="simplex_service_notification_text">Berichten ontvangen…</string>
|
||||
<string name="notification_preview_mode_message_desc">Toon contact en bericht</string>
|
||||
<string name="notification_preview_mode_contact_desc">Toon alleen contactpersoon</string>
|
||||
<string name="ntf_channel_messages">SimpleX Chat-berichten</string>
|
||||
<string name="auth_simplex_lock_turned_on">SimpleX Lock ingeschakeld</string>
|
||||
<string name="auth_stop_chat">Stop chat</string>
|
||||
<string name="reply_verb">Antwoord</string>
|
||||
<string name="save_verb">Opslaan</string>
|
||||
<string name="share_verb">Deel</string>
|
||||
<string name="reveal_verb">Onthullen</string>
|
||||
<string name="icon_descr_sent_msg_status_send_failed">versturen mislukt</string>
|
||||
<string name="icon_descr_sent_msg_status_sent">verstuurd</string>
|
||||
<string name="icon_descr_sent_msg_status_unauthorized_send">ongeoorloofd verzenden</string>
|
||||
<string name="icon_descr_received_msg_status_unread">Ongelezen</string>
|
||||
<string name="tap_to_start_new_chat">Tik om een nieuwe chat te starten</string>
|
||||
<string name="this_text_is_available_in_settings">Deze tekst is beschikbaar in instellingen</string>
|
||||
<string name="welcome">Welkom!</string>
|
||||
<string name="group_preview_you_are_invited">je bent uitgenodigd voor de groep</string>
|
||||
<string name="you_have_no_chats">Je hebt geen chats</string>
|
||||
<string name="your_chats">Mijn chats</string>
|
||||
<string name="share_file">Deel bestand…</string>
|
||||
<string name="share_image">Afbeelding delen…</string>
|
||||
<string name="icon_descr_waiting_for_image">Wachten op afbeelding</string>
|
||||
<string name="waiting_for_file">Wachten op bestand</string>
|
||||
<string name="icon_descr_record_voice_message">Neem spraakbericht op</string>
|
||||
<string name="scan_QR_code">Scan QR-code</string>
|
||||
<string name="icon_descr_send_message">Bericht versturen</string>
|
||||
<string name="add_contact_or_create_group">Begin een nieuwe chat</string>
|
||||
<string name="switch_receiving_address_question">Ontvangstadres wijzigen\?</string>
|
||||
<string name="verify_security_code">Controleer de beveiligingscode</string>
|
||||
<string name="view_security_code">Beveiligingscode bekijken</string>
|
||||
<string name="you_need_to_allow_to_send_voice">U moet uw contact toestemming geven om spraakberichten te verzenden om ze te kunnen verzenden.</string>
|
||||
<string name="connect_via_link_or_qr_from_clipboard_or_in_person">(scannen of plakken vanaf klembord)</string>
|
||||
<string name="to_connect_via_link_title">Om verbinding te maken via een link</string>
|
||||
<string name="reject_contact_button">Afwijzen</string>
|
||||
<string name="set_contact_name">Stel de naam van de contactpersoon in</string>
|
||||
<string name="connection_you_accepted_will_be_cancelled">De door u geaccepteerde verbinding wordt geannuleerd!</string>
|
||||
<string name="contact_you_shared_link_with_wont_be_able_to_connect">Het contact met wie je deze link hebt gedeeld, kan GEEN verbinding maken!</string>
|
||||
<string name="you_accepted_connection">Je hebt de verbinding geaccepteerd</string>
|
||||
<string name="you_invited_your_contact">Je hebt je contactpersoon uitgenodigd</string>
|
||||
<string name="alert_text_connection_pending_they_need_to_be_online_can_delete_and_retry">Uw contactpersoon moet online zijn om de verbinding te voltooien.
|
||||
\nU kunt deze verbinding verbreken en het contact verwijderen (en later proberen met een nieuwe link).</string>
|
||||
<string name="image_descr_qr_code">QR code</string>
|
||||
<string name="icon_descr_settings">Instellingen</string>
|
||||
<string name="contact_wants_to_connect_with_you">wil met je in contact komen!</string>
|
||||
<string name="icon_descr_address"><xliff:g id="appName">SimpleX</xliff:g> Adres</string>
|
||||
<string name="show_QR_code">Toon QR-code</string>
|
||||
<string name="image_descr_simplex_logo"><xliff:g id="appName">SimpleX</xliff:g>-logo</string>
|
||||
<string name="your_chat_profile_will_be_sent_to_your_contact">Je chatprofiel wordt verzonden
|
||||
\naan uw contactpersoon</string>
|
||||
<string name="you_will_be_connected_when_group_host_device_is_online">Je wordt verbonden met de groep wanneer het apparaat van de groepshost online is, even geduld a.u.b. of controleer het later!</string>
|
||||
<string name="you_will_be_connected_when_your_connection_request_is_accepted">U wordt verbonden wanneer uw verbindingsverzoek wordt geaccepteerd, even geduld a.u.b. of controleer later!</string>
|
||||
<string name="you_will_be_connected_when_your_contacts_device_is_online">Je wordt verbonden wanneer het apparaat van je contact online is, even geduld a.u.b. of controleer het later!</string>
|
||||
<string name="scan_code_from_contacts_app">Scan de beveiligingscode van de app van uw contactpersoon.</string>
|
||||
<string name="security_code">Beveiligingscode</string>
|
||||
<string name="is_not_verified">%s is niet geverifieerd</string>
|
||||
<string name="is_verified">%s is geverifieerd</string>
|
||||
<string name="to_verify_compare">Vergelijk (of scan) de code op uw apparaten om end-to-end-codering met uw contactpersoon te verifiëren.</string>
|
||||
<string name="you_can_also_connect_by_clicking_the_link">U kunt ook verbinding maken door op de link te klikken. Als het in de browser wordt geopend, klikt u op de knop <b> Openen in mobiele app </b>.</string>
|
||||
<string name="your_profile_will_be_sent">Uw chatprofiel wordt naar uw contactpersoon verzonden</string>
|
||||
<string name="your_chat_profiles">Mijn chat profielen</string>
|
||||
<string name="your_simplex_contact_address">Uw <xliff:g id="appName">SimpleX</xliff:g> contactadres</string>
|
||||
<string name="chat_with_the_founder">Stuur vragen en ideeën</string>
|
||||
<string name="send_us_an_email">Stuur ons een e-mail</string>
|
||||
<string name="chat_lock">SimpleX Lock</string>
|
||||
<string name="smp_servers">SMP servers</string>
|
||||
<string name="smp_servers_save">Bewaar servers</string>
|
||||
<string name="smp_servers_test_failed">Servertest mislukt!</string>
|
||||
<string name="smp_servers_test_some_failed">Sommige servers hebben de test niet doorstaan:</string>
|
||||
<string name="smp_servers_test_servers">Servers testen</string>
|
||||
<string name="smp_servers_test_server">Server test</string>
|
||||
<string name="rate_the_app">Beoordeel de app</string>
|
||||
<string name="smp_servers_use_server">Gebruik server</string>
|
||||
<string name="using_simplex_chat_servers">Gebruik van <xliff:g id="appNameFull">SimpleX Chat</xliff:g>-servers.</string>
|
||||
<string name="smp_servers_your_server_address">Mijn server adres</string>
|
||||
<string name="smp_servers_your_server">Mijn server</string>
|
||||
<string name="network_session_mode_transport_isolation">Transport isolation</string>
|
||||
<string name="network_socks_toggle">SOCKS-proxy gebruiken (poort 9050)</string>
|
||||
<string name="save_preferences_question">Voorkeuren opslaan\?</string>
|
||||
<string name="save_and_notify_contact">Opslaan en Contact melden</string>
|
||||
<string name="section_title_welcome_message">WELKOMS BERICHT</string>
|
||||
<string name="your_current_profile">Mijn huidige profiel</string>
|
||||
<string name="save_and_notify_contacts">Opslaan en Contacten melden</string>
|
||||
<string name="save_and_notify_group_members">Opslaan en Groepleden melden</string>
|
||||
<string name="strikethrough">Doorstrepen</string>
|
||||
<string name="the_messaging_and_app_platform_protecting_your_privacy_and_security">Het berichten- en applicatieplatform dat uw privacy en veiligheid beschermt.</string>
|
||||
<string name="profile_is_only_shared_with_your_contacts">Het profiel wordt alleen gedeeld met uw contacten.</string>
|
||||
<string name="we_do_not_store_contacts_or_messages_on_servers">We slaan geen van uw contacten of berichten (eenmaal afgeleverd) op de servers op.</string>
|
||||
<string name="you_can_use_markdown_to_format_messages__prompt">U kunt markdown gebruiken voor opmaak in berichten:</string>
|
||||
<string name="callstatus_rejected">geweigerde oproep</string>
|
||||
<string name="secret">geheim</string>
|
||||
<string name="next_generation_of_private_messaging">De volgende generatie berichten versturen</string>
|
||||
<string name="callstate_waiting_for_answer">wachten op antwoord…</string>
|
||||
<string name="to_protect_privacy_simplex_has_ids_for_queues">Om de privacy te beschermen, heeft <xliff:g id="appName">SimpleX</xliff:g> in plaats van gebruikers-ID\'s die door alle andere platforms worden gebruikt, ID\'s voor berichtenwachtrijen, afzonderlijk voor elk van uw contacten.</string>
|
||||
<string name="use_chat">Gebruik chat</string>
|
||||
<string name="onboarding_notifications_mode_off">Wanneer de app actief is</string>
|
||||
<string name="video_call_no_encryption">videogesprek (niet e2e versleuteld)</string>
|
||||
<string name="contact_wants_to_connect_via_call"><xliff:g id="contactName" example="Alice">%1$s</xliff:g> wil met je in contact komen via</string>
|
||||
<string name="reject">Afwijzen</string>
|
||||
<string name="icon_descr_video_call">video-oproep</string>
|
||||
<string name="your_calls">Mijn oproepen</string>
|
||||
<string name="show_call_on_lock_screen">Toon</string>
|
||||
<string name="webrtc_ice_servers">WebRTC ICE-servers</string>
|
||||
<string name="your_ice_servers">Mijn ICE servers</string>
|
||||
<string name="alert_title_skipped_messages">Overgeslagen berichten</string>
|
||||
<string name="call_connection_via_relay">via relais</string>
|
||||
<string name="icon_descr_video_off">Video uit</string>
|
||||
<string name="protect_app_screen">Voorkom scherm afbeeldingen</string>
|
||||
<string name="your_privacy">Mijn privacy</string>
|
||||
<string name="send_link_previews">Linkvoorbeelden verzenden</string>
|
||||
<string name="settings_section_title_settings">INSTELLINGEN</string>
|
||||
<string name="settings_section_title_support">ONDERSTEUNING SIMPLEX CHAT</string>
|
||||
<string name="settings_section_title_you">JIJ</string>
|
||||
<string name="run_chat_section">CHAT UITVOEREN</string>
|
||||
<string name="your_chat_database">Mijn chat database</string>
|
||||
<string name="set_password_to_export">Wachtwoord instellen om te exporteren</string>
|
||||
<string name="restart_the_app_to_create_a_new_chat_profile">Start de app opnieuw om een nieuw chatprofiel aan te maken.</string>
|
||||
<string name="you_must_use_the_most_recent_version_of_database">U mag de meest recente versie van uw chatdatabase ALLEEN op één apparaat gebruiken, anders ontvangt u mogelijk geen berichten meer van sommige contacten.</string>
|
||||
<string name="restart_the_app_to_use_imported_chat_database">Start de app opnieuw om de geïmporteerde chatdatabase te gebruiken.</string>
|
||||
<string name="stop_chat_to_enable_database_actions">Stop de chat om databaseacties mogelijk te maken.</string>
|
||||
<string name="delete_files_and_media_desc">Deze actie kan niet ongedaan worden gemaakt - alle ontvangen en verzonden bestanden en media worden verwijderd. Foto\'s met een lage resolutie blijven behouden.</string>
|
||||
<string name="remove_passphrase_from_keychain">Wachtwoord verwijderen uit Keychain\?</string>
|
||||
<string name="remove_passphrase">Verwijderen</string>
|
||||
<string name="update_database">Update</string>
|
||||
<string name="unknown_database_error_with_info">Onbekende databasefout: %s</string>
|
||||
<string name="you_will_stop_receiving_messages_from_this_group_chat_history_will_be_preserved">Je ontvangt geen berichten meer van deze groep. De chatgeschiedenis blijft behouden.</string>
|
||||
<string name="alert_message_no_group">Deze groep bestaat niet meer.</string>
|
||||
<string name="alert_title_cant_invite_contacts_descr">Je gebruikt een incognitoprofiel voor deze groep. Om te voorkomen dat je je hoofdprofiel deelt, is het niet toegestaan om contacten uit te nodigen</string>
|
||||
<string name="you_rejected_group_invitation">Je hebt de groepsuitnodiging afgewezen</string>
|
||||
<string name="you_joined_this_group">Je bent lid geworden van deze groep</string>
|
||||
<string name="rcv_group_event_member_deleted">verwijderd <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="rcv_group_event_user_deleted">heeft je verwijderd</string>
|
||||
<string name="group_info_member_you">jij: <xliff:g id="group_info_you">%1$s</xliff:g></string>
|
||||
<string name="group_info_section_title_num_members"><xliff:g id="num_members">%1$s</xliff:g> LEDEN</string>
|
||||
<string name="you_can_share_group_link_anybody_will_be_able_to_connect">U kunt een link of een QR-code delen - iedereen kan lid worden van de groep. U verliest geen leden van de groep als u deze later verwijdert.</string>
|
||||
<string name="switch_verb">Wijzig</string>
|
||||
<string name="member_role_will_be_changed_with_notification">De rol wordt gewijzigd in \"%s\". Iedereen in de groep wordt op de hoogte gebracht.</string>
|
||||
<string name="receiving_via">Ontvang via</string>
|
||||
<string name="save_group_profile">Groepsprofiel opslaan</string>
|
||||
<string name="group_is_decentralized">De groep is volledig gedecentraliseerd – het is alleen zichtbaar voor de leden.</string>
|
||||
<string name="network_option_tcp_connection_timeout">Time-out van TCP-verbinding</string>
|
||||
<string name="voice_messages">Spraakberichten</string>
|
||||
<string name="voice_prohibited_in_this_chat">Spraakberichten zijn verboden in deze chat.</string>
|
||||
<string name="prohibit_sending_disappearing">Verbied het verzenden van verdwijnende berichten.</string>
|
||||
<string name="v4_5_reduced_battery_usage">Verminderd batterijgebruik</string>
|
||||
<string name="v4_5_private_filenames_descr">Om de tijdzone te beschermen, gebruiken afbeeldings-/spraakbestanden UTC.</string>
|
||||
<string name="stop_chat_confirmation">Stop</string>
|
||||
<string name="stop_chat_question">Stop chat\?</string>
|
||||
<string name="stop_chat_to_export_import_or_delete_chat_database">Stop de chat om de chatdatabase te exporteren, importeren of verwijderen. U kunt geen berichten ontvangen en verzenden terwijl de chat is gestopt.</string>
|
||||
<string name="chat_item_ttl_seconds">%s seconde(n)</string>
|
||||
<string name="update_database_passphrase">Database-wachtwoord bijwerken</string>
|
||||
<string name="database_is_not_encrypted">Uw chatdatabase is niet versleuteld - stel een wachtwoord in om deze te beschermen.</string>
|
||||
<string name="database_restore_error">Databasefout herstellen</string>
|
||||
<string name="unknown_error">Onbekende fout</string>
|
||||
<string name="wrong_passphrase_title">Verkeerd wachtwoord!</string>
|
||||
<string name="you_are_invited_to_group_join_to_connect_with_group_members">U bent uitgenodigd voor de groep. Word lid om in contact te komen met groepsleden.</string>
|
||||
<string name="group_invitation_tap_to_join">Tik om mee te doen</string>
|
||||
<string name="group_invitation_tap_to_join_incognito">Tik om incognito deel te nemen</string>
|
||||
<string name="youve_accepted_group_invitation_connecting_to_inviting_group_member">Je bent lid geworden van deze groep. Verbinding maken met uitnodigend groepslid.</string>
|
||||
<string name="you_sent_group_invitation">Je hebt een groepsuitnodiging verzonden</string>
|
||||
<string name="snd_group_event_user_left">jij bent vertrokken</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed">je bent van adres veranderd</string>
|
||||
<string name="select_contacts">Selecteer contacten</string>
|
||||
<string name="skip_inviting_button">Sla het uitnodigen van leden over</string>
|
||||
<string name="num_contacts_selected"><xliff:g id="num_contacts">%1$s</xliff:g> contact(en) geselecteerd</string>
|
||||
<string name="remove_member_confirmation">Verwijderen</string>
|
||||
<string name="button_remove_member">Gebruiker verwijderen</string>
|
||||
<string name="role_in_group">Rol</string>
|
||||
<string name="button_send_direct_message">Direct bericht sturen</string>
|
||||
<string name="member_role_will_be_changed_with_invitation">De rol wordt gewijzigd in \"%s\". De gebruiker ontvangt een nieuwe uitnodiging.</string>
|
||||
<string name="sending_via">Verzenden via</string>
|
||||
<string name="conn_stats_section_title_servers">SERVERS</string>
|
||||
<string name="network_options_reset_to_defaults">Resetten naar standaardwaarden</string>
|
||||
<string name="switch_receiving_address">Ontvangstadres wijzigen</string>
|
||||
<string name="network_option_protocol_timeout">Protocol time-out</string>
|
||||
<string name="network_options_revert">Terugdraaien</string>
|
||||
<string name="network_options_save">Opslaan</string>
|
||||
<string name="network_option_seconds_label">sec</string>
|
||||
<string name="incognito_info_find">Om het profiel te vinden dat wordt gebruikt voor een incognitoverbinding, tikt u op de naam van het contact of de groep bovenaan de chat.</string>
|
||||
<string name="incognito_info_share">Wanneer je een incognitoprofiel met iemand deelt, wordt dit profiel gebruikt voor de groepen waarvoor ze je uitnodigen.</string>
|
||||
<string name="theme">Thema</string>
|
||||
<string name="reset_color">Kleuren resetten</string>
|
||||
<string name="save_color">Kleur opslaan</string>
|
||||
<string name="theme_system">Systeem</string>
|
||||
<string name="chat_preferences_yes">Ja</string>
|
||||
<string name="feature_received_prohibited">gekregen, verboden</string>
|
||||
<string name="your_preferences">Mijn voorkeuren</string>
|
||||
<string name="accept_feature_set_1_day">Stel 1 dag in</string>
|
||||
<string name="whats_new">Wat is er nieuw</string>
|
||||
<string name="v4_4_live_messages_desc">Ontvangers zien updates terwijl u ze typt.</string>
|
||||
<string name="v4_4_verify_connection_security">Controleer de verbindingsbeveiliging</string>
|
||||
<string name="v4_4_french_interface_descr">Dank aan de gebruikers – draag bij via Weblate!</string>
|
||||
<string name="v4_5_transport_isolation">Transport isolation</string>
|
||||
<string name="app_name"><xliff:g id="appName">SimpleX</xliff:g></string>
|
||||
<string name="connected_to_server_to_receive_messages_from_contact">U bent verbonden met de server die wordt gebruikt om berichten van dit contact te ontvangen.</string>
|
||||
<string name="profile_will_be_sent_to_contact_sending_link">Je profiel wordt verzonden naar het contact van wie je deze link hebt ontvangen.</string>
|
||||
<string name="you_will_join_group">U wordt lid van een groep waarnaar deze link verwijst en maakt verbinding met de groepsleden.</string>
|
||||
<string name="notifications_mode_off">Wordt uitgevoerd wanneer de app is geopend</string>
|
||||
<string name="settings_notification_preview_mode_title">Toon voorbeeld</string>
|
||||
<string name="ntf_channel_calls">SimpleX Chat-oproepen</string>
|
||||
<string name="notifications_mode_periodic">Start periodiek</string>
|
||||
<string name="voice_message">Spraakbericht</string>
|
||||
<string name="voice_message_send_text">Spraakbericht…</string>
|
||||
<string name="voice_message_with_duration">Spraakbericht (<xliff:g id="duration">%1$s</xliff:g>)</string>
|
||||
<string name="text_field_set_contact_placeholder">Contactnaam instellen…</string>
|
||||
<string name="voice_messages_prohibited">Spraakberichten verboden!</string>
|
||||
<string name="reset_verb">Resetten</string>
|
||||
<string name="send_verb">Verstuur</string>
|
||||
<string name="send_live_message_desc">Stuur een live bericht - het wordt bijgewerkt voor de ontvanger(s) terwijl u het typt</string>
|
||||
<string name="to_share_with_your_contact">(om te delen met uw contact)</string>
|
||||
<string name="thank_you_for_installing_simplex">Bedankt voor het installeren van <xliff:g id="appNameFull">SimpleX Chat</xliff:g>!</string>
|
||||
<string name="use_camera_button">Gebruik camera</string>
|
||||
<string name="smp_servers_use_server_for_new_conn">Gebruik voor nieuwe verbindingen</string>
|
||||
<string name="star_on_github">Star on GitHub</string>
|
||||
<string name="smp_servers_per_user">De servers voor nieuwe verbindingen van je huidige chatprofiel</string>
|
||||
<string name="your_SMP_servers">Mijn SMP servers</string>
|
||||
<string name="saved_ICE_servers_will_be_removed">Opgeslagen WebRTC ICE-servers worden verwijderd.</string>
|
||||
<string name="your_ICE_servers">Mijn ICE servers</string>
|
||||
<string name="save_servers_button">Opslaan</string>
|
||||
<string name="network_enable_socks">SOCKS-proxy gebruiken\?</string>
|
||||
<string name="network_use_onion_hosts">Gebruik .onion-hosts</string>
|
||||
<string name="network_disable_socks">Directe internetverbinding gebruiken\?</string>
|
||||
<string name="network_use_onion_hosts_prefer">Wanneer beschikbaar</string>
|
||||
<string name="network_use_onion_hosts_required">Vereist</string>
|
||||
<string name="core_simplexmq_version">simplexmq: v%s (%2s)</string>
|
||||
<string name="update_network_session_mode_question">Transportisolatiemodus updaten\?</string>
|
||||
<string name="callstate_received_confirmation">bevestiging ontvangen…</string>
|
||||
<string name="callstate_waiting_for_confirmation">Wachten op bevestiging…</string>
|
||||
<string name="first_platform_without_user_ids">Het eerste platform zonder gebruikers-ID\'s - privé door ontwerp.</string>
|
||||
<string name="prohibit_direct_messages">Verbied het sturen van directe berichten naar leden.</string>
|
||||
<string name="prohibit_sending_voice">Verbieden het verzenden van spraakberichten.</string>
|
||||
<string name="v4_2_security_assessment_desc">De beveiliging van SimpleX Chat is gecontroleerd door Trail of Bits.</string>
|
||||
<string name="v4_2_auto_accept_contact_requests_desc">Met optioneel welkomstbericht.</string>
|
||||
<string name="v4_3_voice_messages">Spraakberichten</string>
|
||||
<string name="v4_3_irreversible_message_deletion_desc">Uw contacten kunnen volledige verwijdering van berichten toestaan.</string>
|
||||
<string name="you_have_to_enter_passphrase_every_time">U moet elke keer dat de app start het wachtwoord invoeren - deze wordt niet op het apparaat opgeslagen.</string>
|
||||
<string name="wrong_passphrase">Verkeerd wachtwoord voor de database</string>
|
||||
<string name="save_passphrase_and_open_chat">Bewaar het wachtwoord en open de chat</string>
|
||||
<string name="database_backup_can_be_restored">De poging om het wachtwoord van de database te wijzigen is niet voltooid.</string>
|
||||
<string name="restore_database">Databaseback-up terugzetten</string>
|
||||
<string name="restore_database_alert_title">Databaseback-up terugzetten\?</string>
|
||||
<string name="restore_database_alert_confirm">Herstellen</string>
|
||||
<string name="snd_group_event_changed_member_role">je veranderde de rol van %s in %s</string>
|
||||
<string name="snd_group_event_changed_role_for_yourself">je veranderde de rol voor jezelf naar %s</string>
|
||||
<string name="update_network_settings_question">Netwerkinstellingen bijwerken\?</string>
|
||||
<string name="updating_settings_will_reconnect_client_to_all_servers">Door de instellingen bij te werken, wordt de client opnieuw verbonden met alle servers.</string>
|
||||
<string name="update_network_settings_confirmation">Update</string>
|
||||
<string name="your_chat_profiles_stored_locally">Uw chatprofielen worden lokaal opgeslagen, alleen op uw apparaat</string>
|
||||
<string name="incognito_random_profile">Mijn willekeurige profiel</string>
|
||||
<string name="prohibit_sending_disappearing_messages">Verbied het verzenden van verdwijnende berichten.</string>
|
||||
<string name="prohibit_sending_voice_messages">Verbieden het verzenden van spraakberichten.</string>
|
||||
<string name="callstate_received_answer">antwoord gekregen…</string>
|
||||
<string name="v4_2_security_assessment">Beveiligingsbeoordeling</string>
|
||||
<string name="v4_4_disappearing_messages_desc">Verzonden berichten worden na ingestelde tijd verwijderd.</string>
|
||||
<string name="error_smp_test_server_auth">Server vereist autorisatie om wachtrijen te maken, controleer wachtwoord</string>
|
||||
<string name="set_group_preferences">Groepsvoorkeuren instellen</string>
|
||||
<string name="share_message">Bericht delen…</string>
|
||||
<string name="la_notice_title_simplex_lock">SimpleX Lock</string>
|
||||
<string name="save_passphrase_in_keychain">Sla het wachtwoord op in Keychain</string>
|
||||
<string name="settings_section_title_socks">SOCKS PROXY</string>
|
||||
<string name="v4_5_italian_interface_descr">Dank aan de gebruikers – draag bij via Weblate!</string>
|
||||
<string name="periodic_notifications_desc">De app haalt regelmatig nieuwe berichten op - het gebruikt een paar procent van de batterij per dag. De app maakt geen gebruik van pushmeldingen - gegevens van uw apparaat worden niet naar de servers verzonden.</string>
|
||||
<string name="image_decoding_exception_desc">De afbeelding kan niet worden gedecodeerd. Probeer een andere afbeelding of neem contact op met de ontwikkelaars.</string>
|
||||
<string name="settings_section_title_themes">THEMA\'S</string>
|
||||
<string name="smp_servers_scan_qr">Scan server QR-code</string>
|
||||
<string name="this_string_is_not_a_connection_link">Deze string is geen verbindingslink!</string>
|
||||
<string name="enable_automatic_deletion_message">Deze actie kan niet ongedaan worden gemaakt - de berichten die eerder zijn verzonden en ontvangen dan geselecteerd, worden verwijderd. Het kan enkele minuten duren.</string>
|
||||
<string name="switch_receiving_address_desc">Deze functie is experimenteel! Het werkt alleen als op de andere client versie 4.2 is geïnstalleerd. U zou het bericht in het gesprek moeten zien zodra de adreswijziging is voltooid. Controleer of u nog steeds berichten van dit contact (of groepslid) kunt ontvangen.</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery">Om je privacy te behouden, heeft de app in plaats van pushmeldingen een <b><xliff:g id="appName">SimpleX</xliff:g> achtergrondservice</b> – deze gebruikt een paar procent van de batterij per dag.</string>
|
||||
<string name="chat_preferences_you_allow">Jij staat toe</string>
|
||||
<string name="you_are_invited_to_group">Je bent uitgenodigd voor de groep</string>
|
||||
<string name="you_can_connect_to_simplex_chat_founder">U kunt <font color="#0088ff">verbinding maken met <xliff:g id="appNameFull">SimpleX Chat</xliff:g> ontwikkelaars om vragen te stellen en updates te ontvangen</font>.</string>
|
||||
<string name="connection_error_auth_desc">Tenzij uw contactpersoon de verbinding heeft verwijderd of deze link al is gebruikt, kan het een bug zijn - meld het alstublieft.
|
||||
\nOm verbinding te maken, vraagt u uw contactpersoon om een andere verbindingslink te maken en te controleren of u een stabiele netwerkverbinding heeft.</string>
|
||||
<string name="update_onion_hosts_settings_question">.onion hosts-instelling updaten\?</string>
|
||||
<string name="use_simplex_chat_servers__question"><xliff:g id="appNameFull">SimpleX Chat</xliff:g>-servers gebruiken\?</string>
|
||||
<string name="voice_messages_are_prohibited">Spraakberichten zijn verboden in deze groep.</string>
|
||||
<string name="personal_welcome">Welkom <xliff:g>%1$s</xliff:g>!</string>
|
||||
<string name="you_can_share_your_address_anybody_will_be_able_to_connect">U kunt uw adres delen als een link of als een QR-code - iedereen kan verbinding met u maken. U verliest uw contacten niet als u deze later verwijdert.</string>
|
||||
<string name="you_can_start_chat_via_setting_or_by_restarting_the_app">U kunt de chat starten via app Instellingen / Database of door de app opnieuw op te starten.</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_completed_for_member">je hebt het adres gewijzigd voor %s</string>
|
||||
<string name="snd_group_event_member_deleted">je hebt <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g> verwijderd</string>
|
||||
<string name="contact_sent_large_file">Je contactpersoon heeft een bestand verzonden dat groter is dan de momenteel ondersteunde maximale grootte (<xliff:g id="maxFileSize">%1$s</xliff:g>).</string>
|
||||
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">Uw huidige chatdatabase wordt VERWIJDERD en VERVANGEN door de geïmporteerde.
|
||||
\nDeze actie kan niet ongedaan worden gemaakt - uw profiel, contacten, berichten en bestanden gaan onomkeerbaar verloren.</string>
|
||||
<string name="invite_prohibited_description">Je probeert een contact met wie je een incognitoprofiel hebt gedeeld, uit te nodigen voor de groep waarin je je hoofdprofiel gebruikt</string>
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">Uw profiel wordt op uw apparaat opgeslagen en alleen gedeeld met uw contacten.
|
||||
\n
|
||||
\n<xliff:g id="appName">SimpleX</xliff:g>-servers kunnen uw profiel niet zien.</string>
|
||||
<string name="auth_you_will_be_required_to_authenticate_when_you_start_or_resume">U moet zich authenticeren wanneer u de app na 30 seconden op de achtergrond start of hervat.</string>
|
||||
<string name="images_limit_title">Te veel afbeeldingen!</string>
|
||||
<string name="icon_descr_speaker_off">Luidspreker uit</string>
|
||||
<string name="icon_descr_speaker_on">Luidspreker aan</string>
|
||||
<string name="icon_descr_call_rejected">Geweigerde oproep</string>
|
||||
<string name="sender_cancelled_file_transfer">Afzender heeft bestandsoverdracht geannuleerd.</string>
|
||||
<string name="receiving_files_not_yet_supported">het ontvangen van bestanden wordt nog niet ondersteund</string>
|
||||
<string name="sending_files_not_yet_supported">het verzenden van bestanden wordt nog niet ondersteund</string>
|
||||
<string name="simplex_link_contact">SimpleX-contactadres</string>
|
||||
<string name="simplex_link_group">SimpleX-groepslink</string>
|
||||
<string name="simplex_link_mode">SimpleX links</string>
|
||||
<string name="simplex_link_invitation">Eenmalige SimpleX-uitnodiging</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages">Proberen verbinding te maken met de server die wordt gebruikt om berichten van dit contact te ontvangen.</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages_with_error">Er wordt geprobeerd verbinding te maken met de server die wordt gebruikt om berichten van dit contact te ontvangen (fout: <xliff:g id="errorMsg">%1$s</xliff:g>).</string>
|
||||
<string name="unknown_message_format">onbekend berichtformaat</string>
|
||||
<string name="simplex_link_mode_browser">Via browser</string>
|
||||
<string name="description_via_contact_address_link">via contactadres link</string>
|
||||
<string name="description_via_group_link">via groepslink</string>
|
||||
<string name="description_via_one_time_link">via een eenmalige link</string>
|
||||
<string name="simplex_link_connection">via <xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g></string>
|
||||
<string name="sender_you_pronoun">jij</string>
|
||||
<string name="description_you_shared_one_time_link">je hebt een eenmalige link gedeeld</string>
|
||||
<string name="description_you_shared_one_time_link_incognito">je hebt een eenmalige link incognito gedeeld</string>
|
||||
<string name="chat_help_tap_button">Tik op de knop</string>
|
||||
<string name="read_more_in_github_with_link">Lees meer in onze <font color="#0088ff">GitHub-repository</font>.</string>
|
||||
<string name="read_more_in_github">Lees meer in onze GitHub-repository.</string>
|
||||
<string name="integrity_msg_skipped"><xliff:g id="connection ID" example="1">%1$d</xliff:g> bericht(en) overgeslagen</string>
|
||||
</resources>
|
||||
@@ -1038,4 +1038,5 @@
|
||||
<string name="v4_5_reduced_battery_usage_descr">Дополнительные улучшения скоро!</string>
|
||||
<string name="v4_5_reduced_battery_usage">Уменьшенное потребление батареи</string>
|
||||
<string name="v4_5_transport_isolation">Отдельные транспортные сессии</string>
|
||||
<string name="moderated_description">удалено</string>
|
||||
</resources>
|
||||
@@ -15,7 +15,7 @@
|
||||
<string name="callstatus_accepted">已接受通话</string>
|
||||
<string name="accept">接受</string>
|
||||
<string name="network_enable_socks_info">通过 SOCKS 代理访问服务器在端口9050?允许该选项前必须开始代理。</string>
|
||||
<string name="smp_servers_add">添加服务器…</string>
|
||||
<string name="smp_servers_add">添加服务器……</string>
|
||||
<string name="smp_servers_add_to_another_device">添加另一设备</string>
|
||||
<string name="group_member_role_admin">管理员</string>
|
||||
<string name="v4_3_improved_server_configuration_desc">扫描二维码来添加服务器。</string>
|
||||
@@ -67,7 +67,7 @@
|
||||
<string name="connect_via_contact_link">通过联系人链接连接?</string>
|
||||
<string name="connect_via_group_link">通过群组链接连接?</string>
|
||||
<string name="connect_via_link_or_qr">通过群组链接/二维码连接</string>
|
||||
<string name="connect_calls_via_relay">通过继电器连接</string>
|
||||
<string name="connect_calls_via_relay">通过中继连接</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">允许您的联系人不可撤回地删除已发送消息。</string>
|
||||
<string name="chat_preferences_contact_allows">联系人允许</string>
|
||||
<string name="allow_voice_messages_only_if">仅有您的联系人许可后才允许语音消息。</string>
|
||||
@@ -138,14 +138,14 @@
|
||||
<string name="invite_prohibited">无法邀请联系人!</string>
|
||||
<string name="cancel_verb">取消</string>
|
||||
<string name="callstatus_ended">通话结束 <xliff:g id="duration" example="01:15">%1$s</xliff:g></string>
|
||||
<string name="change_verb">更换</string>
|
||||
<string name="change_verb">更改</string>
|
||||
<string name="icon_descr_call_ended">通话结束</string>
|
||||
<string name="change_database_passphrase_question">更改数据库密码?</string>
|
||||
<string name="callstatus_error">通话错误</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_completed">为您更改地址</string>
|
||||
<string name="callstatus_in_progress">通话中</string>
|
||||
<string name="icon_descr_call_progress">通话进行中</string>
|
||||
<string name="callstatus_calling">呼叫中…</string>
|
||||
<string name="callstatus_calling">呼叫中……</string>
|
||||
<string name="icon_descr_cancel_live_message">取消实时消息</string>
|
||||
<string name="settings_section_title_calls">通话</string>
|
||||
<string name="call_on_lock_screen">在锁定屏幕上通话:</string>
|
||||
@@ -160,9 +160,9 @@
|
||||
<string name="change_role">改变角色</string>
|
||||
<string name="change_member_role_question">更改群组角色?</string>
|
||||
<string name="icon_descr_cancel_link_preview">取消链接预览</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing_for_member">为 %s 更改地址…</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_changing">更改地址…</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing">更改地址…</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing_for_member">为 %s 更改地址中……</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_changing">更改地址中……</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing">更改地址……</string>
|
||||
<string name="create_your_profile">创建您的资料</string>
|
||||
<string name="chat_database_deleted">聊天数据库已删除</string>
|
||||
<string name="chat_database_imported">聊天数据库已导入</string>
|
||||
@@ -223,37 +223,425 @@
|
||||
<string name="save_passphrase_in_keychain">在密钥库中保存密码</string>
|
||||
<string name="simplex_service_notification_title"><xliff:g id="appNameFull">SimpleX Chat</xliff:g> 服务</string>
|
||||
<string name="settings_notifications_mode_title">通知服务</string>
|
||||
<string name="confirm_new_passphrase">确认新口令…</string>
|
||||
<string name="confirm_new_passphrase">确认新密码……</string>
|
||||
<string name="group_member_status_complete">完整的</string>
|
||||
<string name="group_member_status_connected">连接的</string>
|
||||
<string name="chat_preferences">聊天偏好</string>
|
||||
<string name="group_member_status_connected">已连接</string>
|
||||
<string name="chat_preferences">聊天偏好设置</string>
|
||||
<string name="settings_section_title_chats">聊天</string>
|
||||
<string name="clear_verb">清空</string>
|
||||
<string name="clear_chat_menu_action">清空</string>
|
||||
<string name="clear_chat_button">清除聊天记录</string>
|
||||
<string name="clear_verb">清除</string>
|
||||
<string name="clear_chat_menu_action">清除</string>
|
||||
<string name="clear_chat_button">清除聊天</string>
|
||||
<string name="clear_chat_question">清除聊天记录?</string>
|
||||
<string name="chat_with_developers">与开发者聊天</string>
|
||||
<string name="clear_contacts_selection_button">清除</string>
|
||||
<string name="colored">有色</string>
|
||||
<string name="callstate_connected">连接的</string>
|
||||
<string name="callstate_connected">已连接</string>
|
||||
<string name="connect_button">连接</string>
|
||||
<string name="connect_via_link_verb">连接</string>
|
||||
<string name="choose_file">选择文件</string>
|
||||
<string name="network_session_mode_user">聊天资料</string>
|
||||
<string name="v4_5_transport_isolation_descr">按聊天资料(默认)或按连接(BETA)。</string>
|
||||
<string name="smp_servers_check_address">检查服务器地址并再试一次。</string>
|
||||
<string name="clear_verification">清晰的验证</string>
|
||||
<string name="icon_descr_close_button">关闭键</string>
|
||||
<string name="configure_ICE_servers">配置ICE服务器</string>
|
||||
<string name="clear_verification">清除验证</string>
|
||||
<string name="icon_descr_close_button">关闭按键</string>
|
||||
<string name="configure_ICE_servers">配置 ICE 服务器</string>
|
||||
<string name="confirm_verb">确认</string>
|
||||
<string name="auth_confirm_credential">确认您的证书</string>
|
||||
<string name="server_connected">连接的</string>
|
||||
<string name="icon_descr_server_status_connected">连接的</string>
|
||||
<string name="server_connected">已连接</string>
|
||||
<string name="icon_descr_server_status_connected">已连接</string>
|
||||
<string name="smp_server_test_connect">连接</string>
|
||||
<string name="notification_contact_connected">连接的</string>
|
||||
<string name="server_connecting">连接的</string>
|
||||
<string name="group_member_status_connecting">连接的</string>
|
||||
<string name="notification_contact_connected">已连接</string>
|
||||
<string name="server_connecting">连接中</string>
|
||||
<string name="group_member_status_connecting">连接中</string>
|
||||
<string name="notifications_mode_periodic_desc">每10分钟检查一次新消息,最长1分钟</string>
|
||||
<string name="rcv_group_event_member_connected">连接的</string>
|
||||
<string name="v4_4_verify_connection_security_desc">与你的联系人比较安全码</string>
|
||||
<string name="rcv_group_event_member_connected">已连接</string>
|
||||
<string name="v4_4_verify_connection_security_desc">与您的联系人比较安全码。</string>
|
||||
<string name="incoming_audio_call">语音通话来电</string>
|
||||
<string name="error_changing_message_deletion">更改设置错误</string>
|
||||
<string name="alert_message_group_invitation_expired">群组邀请不再有效,已被发件人删除。</string>
|
||||
<string name="failed_to_create_user_duplicate_title">重复的显示名!</string>
|
||||
<string name="failed_to_create_user_title">创建资料错误!</string>
|
||||
<string name="error_accepting_contact_request">接受联系人请求错误</string>
|
||||
<string name="error_deleting_group">删除群组错误</string>
|
||||
<string name="error_deleting_pending_contact_connection">删除待定的联系人连接错误</string>
|
||||
<string name="error_receiving_file">接收文件错误</string>
|
||||
<string name="failed_to_active_user_title">切换资料错误!</string>
|
||||
<string name="notification_preview_mode_hidden">已隐藏</string>
|
||||
<string name="edit_verb">编辑</string>
|
||||
<string name="notification_display_mode_hidden_desc">隐藏联系人和消息</string>
|
||||
<string name="icon_descr_edited">已编辑</string>
|
||||
<string name="for_everybody">对于每个人</string>
|
||||
<string name="image_decoding_exception_title">解码错误</string>
|
||||
<string name="image_saved">图片保存到相册</string>
|
||||
<string name="image_will_be_received_when_contact_is_online">图片将在您的联系人在线时收到,请稍等或稍后查看!</string>
|
||||
<string name="error_saving_file">保存文件错误</string>
|
||||
<string name="icon_descr_file">文件</string>
|
||||
<string name="file_not_found">未找到文件</string>
|
||||
<string name="file_saved">文件已保存</string>
|
||||
<string name="icon_descr_server_status_disconnected">已断开连接</string>
|
||||
<string name="icon_descr_server_status_error">错误</string>
|
||||
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code">💻 桌面:通过 <b>扫描二维码</b> 从应用程序扫描显示的二维码。</string>
|
||||
<string name="delete_pending_connection__question">删除待定连接?</string>
|
||||
<string name="how_to_use_markdown">如何使用 markdown</string>
|
||||
<string name="create_profile_button">创建</string>
|
||||
<string name="display_name_cannot_contain_whitespace">显示名不能包含空格。</string>
|
||||
<string name="decentralized">分散式</string>
|
||||
<string name="immune_to_spam_and_abuse">不受垃圾和骚扰消息影响</string>
|
||||
<string name="encrypted_video_call">端到端加密语音通话</string>
|
||||
<string name="ignore">忽视</string>
|
||||
<string name="incoming_video_call">视频通话来电</string>
|
||||
<string name="no_call_on_lock_screen">禁用</string>
|
||||
<string name="status_e2e_encrypted">端到端加密</string>
|
||||
<string name="status_contact_has_e2e_encryption">联系人具有端到端加密</string>
|
||||
<string name="allow_accepting_calls_from_lock_screen">通过设置启用在锁定屏幕上通话。</string>
|
||||
<string name="icon_descr_call_connecting">连接通话中</string>
|
||||
<string name="status_contact_has_no_e2e_encryption">联系人没有端到端加密</string>
|
||||
<string name="icon_descr_hang_up">挂断电话</string>
|
||||
<string name="integrity_msg_duplicate">重复的消息</string>
|
||||
<string name="settings_section_title_help">帮助</string>
|
||||
<string name="settings_experimental_features">实验性功能</string>
|
||||
<string name="settings_section_title_device">设备</string>
|
||||
<string name="settings_developer_tools">开发者工具</string>
|
||||
<string name="export_database">导出数据库</string>
|
||||
<string name="database_passphrase">数据库密码</string>
|
||||
<string name="import_database">导入数据库</string>
|
||||
<string name="files_and_media_section">文件和媒体</string>
|
||||
<string name="current_passphrase">现有密码……</string>
|
||||
<string name="encrypt_database">加密</string>
|
||||
<string name="encrypted_database">加密的数据库</string>
|
||||
<string name="enter_correct_passphrase">输入正确密码。</string>
|
||||
<string name="icon_descr_group_inactive">不活跃群组</string>
|
||||
<string name="group_member_status_creator">创建者</string>
|
||||
<string name="group_member_status_accepted">连接中(已接受)</string>
|
||||
<string name="group_member_status_announced">连接中(已宣布)</string>
|
||||
<string name="icon_descr_expand_role">扩展角色选择</string>
|
||||
<string name="group_link">群组链接</string>
|
||||
<string name="error_deleting_link_for_group">删除群组链接错误</string>
|
||||
<string name="info_row_database_id">数据库 ID</string>
|
||||
<string name="error_removing_member">删除成员错误</string>
|
||||
<string name="error_changing_role">更改角色错误</string>
|
||||
<string name="info_row_group">群组</string>
|
||||
<string name="timed_messages">限时消息</string>
|
||||
<string name="ttl_day">%d 天</string>
|
||||
<string name="group_connection_pending">连接中……</string>
|
||||
<string name="callstatus_connecting">连接通话中……</string>
|
||||
<string name="delete_contact_all_messages_deleted_cannot_undo_warning">联系人和所有的消息都将被删除——这是不可逆回的!</string>
|
||||
<string name="notification_preview_mode_contact">联系人姓名</string>
|
||||
<string name="group_member_status_intro_invitation">连接(介绍邀请)</string>
|
||||
<string name="contact_requests">联系人请求</string>
|
||||
<string name="callstate_connecting">连接中……</string>
|
||||
<string name="contacts_can_mark_messages_for_deletion">联系人可以将信息标记为删除;您将可以查看这些信息。</string>
|
||||
<string name="contribute">贡献</string>
|
||||
<string name="icon_descr_contact_checked">已检查联系人</string>
|
||||
<string name="notification_preview_somebody">联系人已隐藏:</string>
|
||||
<string name="alert_title_contact_connection_pending">联系人尚未连接!</string>
|
||||
<string name="icon_descr_context">背景图标</string>
|
||||
<string name="copied">复制到剪贴板</string>
|
||||
<string name="contact_connection_pending">连接中……</string>
|
||||
<string name="create_group_link">创建群组链接</string>
|
||||
<string name="create_group">创建私密群组</string>
|
||||
<string name="button_create_group_link">创建链接</string>
|
||||
<string name="share_one_time_link">创建一次性邀请链接</string>
|
||||
<string name="smp_server_test_create_queue">创建队列</string>
|
||||
<string name="create_secret_group_title">创建私密群组</string>
|
||||
<string name="v4_5_multiple_chat_profiles_descr">不同的名字、头像和传输隔离。</string>
|
||||
<string name="v4_4_french_interface">法语界面</string>
|
||||
<string name="create_one_time_link">创建一次性邀请链接</string>
|
||||
<string name="how_to_use_simplex_chat">如何使用它</string>
|
||||
<string name="server_error">错误</string>
|
||||
<string name="display_name_connecting">连接中……</string>
|
||||
<string name="failed_to_parse_chat_title">加载聊天失败</string>
|
||||
<string name="failed_to_parse_chats_title">无法加载聊天</string>
|
||||
<string name="error_adding_members">添加成员错误</string>
|
||||
<string name="hide_notification">隐藏</string>
|
||||
<string name="copy_verb">复制</string>
|
||||
<string name="hide_verb">隐藏</string>
|
||||
<string name="how_to">如何</string>
|
||||
<string name="icon_descr_help">帮助</string>
|
||||
<string name="ttl_d">%dd</string>
|
||||
<string name="database_will_be_encrypted">数据库将被加密。</string>
|
||||
<string name="encrypted_audio_call">端到端加密语音通话</string>
|
||||
<string name="enter_one_ICE_server_per_line">ICE 服务器(每行一个)</string>
|
||||
<string name="create_address">创建地址</string>
|
||||
<string name="core_build_timestamp">核心构建于:%s</string>
|
||||
<string name="core_version">核心版本: v%s</string>
|
||||
<string name="display_name__field">显示名:</string>
|
||||
<string name="full_name__field">全名:</string>
|
||||
<string name="display_name">显示名。</string>
|
||||
<string name="full_name_optional__prompt">全名(可选)</string>
|
||||
<string name="callstate_ended">已结束</string>
|
||||
<string name="group_member_status_group_deleted">群组已删除</string>
|
||||
<string name="delete_group_for_all_members_cannot_undo_warning">将为所有成员删除群组——此操作无法撤消!</string>
|
||||
<string name="conn_level_desc_direct">直接</string>
|
||||
<string name="direct_messages">私聊</string>
|
||||
<string name="feature_enabled">已启用</string>
|
||||
<string name="group_members_can_send_voice">群组成员可以发送语音消息。</string>
|
||||
<string name="v4_2_group_links">群组链接</string>
|
||||
<string name="error_starting_chat">启动聊天错误</string>
|
||||
<string name="database_encrypted">数据库已加密!</string>
|
||||
<string name="encrypt_database_question">加密数据库?</string>
|
||||
<string name="encrypted_with_random_passphrase">数据库使用随机密码进行加密,您可以更改它。</string>
|
||||
<string name="database_passphrase_is_required">打开聊天需要数据库密码。</string>
|
||||
<string name="settings_section_title_develop">开发</string>
|
||||
<string name="error_stopping_chat">停止聊天错误</string>
|
||||
<string name="import_database_question">导入聊天数据库?</string>
|
||||
<string name="error_deleting_database">删除聊天数据库错误</string>
|
||||
<string name="import_database_confirmation">导入</string>
|
||||
<string name="enter_passphrase">输入密码……</string>
|
||||
<string name="database_passphrase_will_be_updated">数据库加密密码将被更新。</string>
|
||||
<string name="database_error">数据库错误</string>
|
||||
<string name="snd_group_event_group_profile_updated">群组资料已更新</string>
|
||||
<string name="group_full_name_field">群组全名:</string>
|
||||
<string name="theme_dark">深色</string>
|
||||
<string name="feature_enabled_for_contact">已为联系人启用</string>
|
||||
<string name="feature_enabled_for_you">为您启用</string>
|
||||
<string name="group_members_can_send_disappearing">群组成员可以发送限时消息。</string>
|
||||
<string name="create_profile">创建个人资料</string>
|
||||
<string name="how_it_works">工作原理</string>
|
||||
<string name="alert_title_no_group">未找到群组!</string>
|
||||
<string name="error_creating_link_for_group">创建群组链接错误</string>
|
||||
<string name="group_member_status_introduced">连接中(已介绍)</string>
|
||||
<string name="set_password_to_export_desc">数据库使用随机密码进行加密。请在导出前更改它。</string>
|
||||
<string name="database_passphrase_and_export">数据库密码和导出</string>
|
||||
<string name="smp_server_test_delete_queue">删除队列</string>
|
||||
<string name="smp_servers_delete_server">删除服务器</string>
|
||||
<string name="simplex_link_mode_description">描述</string>
|
||||
<string name="disappearing_prohibited_in_this_chat">此聊天中禁止显示限时消息。</string>
|
||||
<string name="smp_server_test_disconnect">断开连接</string>
|
||||
<string name="error_changing_address">更改地址错误</string>
|
||||
<string name="auth_enable_simplex_lock">启用 SimpleX 锁定</string>
|
||||
<string name="error_creating_address">创建地址错误</string>
|
||||
<string name="network_option_enable_tcp_keep_alive">启用 TCP 保持活跃状态</string>
|
||||
<string name="smp_servers_enter_manually">手动输入服务器</string>
|
||||
<string name="error_deleting_contact">删除联系人错误</string>
|
||||
<string name="error_setting_network_config">更新网络配置错误</string>
|
||||
<string name="error_deleting_contact_request">删除联系人请求错误</string>
|
||||
<string name="error_saving_group_profile">保存群组资料错误</string>
|
||||
<string name="error_saving_smp_servers">保存 SMP 服务器错误</string>
|
||||
<string name="error_saving_ICE_servers">保存 ICE 服务器错误</string>
|
||||
<string name="error_sending_message">发送消息错误</string>
|
||||
<string name="simplex_link_mode_full">完整链接</string>
|
||||
<string name="group_display_name_field">群组显示名称:</string>
|
||||
<string name="group_invitation_expired">群组邀请已过期</string>
|
||||
<string name="delete_group_for_self_cannot_undo_warning">将为您删除群组——此操作无法撤消!</string>
|
||||
<string name="group_profile_is_stored_on_members_devices">群组资料存储在成员的设备上,而不是服务器上。</string>
|
||||
<string name="if_you_choose_to_reject_the_sender_will_not_be_notified">如果您选择拒绝发件人,将不会收到通知。</string>
|
||||
<string name="how_to_use_your_servers">如何使用您的服务器</string>
|
||||
<string name="network_disable_socks_info">如果您确认,消息服务器将能够看到您的 IP 地址和您的提供商——以及您正在连接的服务器。</string>
|
||||
<string name="image_descr">图片</string>
|
||||
<string name="icon_descr_image_snd_complete">图片已发送</string>
|
||||
<string name="auth_device_authentication_is_disabled_turning_off">设备认证被禁用。关闭 SimpleX 锁定。</string>
|
||||
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">没有启用设备认证。一旦启用设备认证,您可以通过设置打开 SimpleX 锁定。</string>
|
||||
<string name="auth_disable_simplex_lock">禁用 SimpleX 锁定</string>
|
||||
<string name="maximum_supported_file_size">目前支持的最大文件尺寸是 <xliff:g id="maxFileSize">%1$s</xliff:g>。</string>
|
||||
<string name="file_will_be_received_when_contact_is_online">文件将在您的联系人在线时收到,请稍等或稍后再查看!</string>
|
||||
<string name="from_gallery_button">从图库</string>
|
||||
<string name="exit_without_saving">退出而不保存</string>
|
||||
<string name="icon_descr_flip_camera">翻转相机</string>
|
||||
<string name="enable_automatic_deletion_question">启用自动删除消息?</string>
|
||||
<string name="section_title_for_console">用于控制台</string>
|
||||
<string name="direct_messages_are_prohibited_in_chat">此群中禁止成员之间私聊。</string>
|
||||
<string name="disappearing_messages_are_prohibited">此群组中禁止显示限时消息。</string>
|
||||
<string name="group_members_can_delete">群组成员可以不可撤回地删除已发送的消息。</string>
|
||||
<string name="group_members_can_send_dms">群组成员可以私信。</string>
|
||||
<string name="v4_4_disappearing_messages">限时消息</string>
|
||||
<string name="v4_3_improved_privacy_and_security_desc">在最近的应用程序中隐藏应用程序屏幕。</string>
|
||||
<string name="leave_group_button">离开</string>
|
||||
<string name="alert_title_group_invitation_expired">邀请已过期!</string>
|
||||
<string name="live_message">实时消息!</string>
|
||||
<string name="image_descr_link_preview">链接预览图片</string>
|
||||
<string name="invalid_QR_code">无效的二维码</string>
|
||||
<string name="onboarding_notifications_mode_subtitle">以后可以通过设置进行更改。</string>
|
||||
<string name="alert_text_skipped_messages_it_can_happen_when">它可以在以下情况下发生:
|
||||
\n1. 如果消息在30天内没有被收到,就会在服务器上过期。
|
||||
\n2. 您用于接收来自此联系人的消息的服务器已更新并重新启动。
|
||||
\n3. 连接受损。
|
||||
\n请通过设置与开发者联系,以接收有关服务器的更新。
|
||||
\n我们将添加服务器冗余以防止丢失消息。</string>
|
||||
<string name="leave_group_question">离开群组?</string>
|
||||
<string name="rcv_group_event_invited_via_your_group_link">通过您的群组链接邀请</string>
|
||||
<string name="info_row_local_name">本地名称</string>
|
||||
<string name="invalid_message_format">无效的消息格式</string>
|
||||
<string name="invalid_data">无效数据</string>
|
||||
<string name="live">LIVE</string>
|
||||
<string name="display_name_invited_to_connect">已邀请连接</string>
|
||||
<string name="invalid_connection_link">无效的连接链接</string>
|
||||
<string name="italic">斜体</string>
|
||||
<string name="group_member_status_invited">已邀请</string>
|
||||
<string name="invite_to_group_button">邀请加入群组</string>
|
||||
<string name="join_group_button">加入</string>
|
||||
<string name="join_group_question">加入群组?</string>
|
||||
<string name="icon_descr_add_members">邀请成员</string>
|
||||
<string name="group_member_status_left">已离开</string>
|
||||
<string name="theme_light">浅色</string>
|
||||
<string name="message_deletion_prohibited">此聊天中禁止不可撤回消息移除。</string>
|
||||
<string name="v4_5_italian_interface">意大利语界面</string>
|
||||
<string name="incorrect_code">安全码不正确!</string>
|
||||
<string name="service_notifications_disabled">即时通知被禁用!</string>
|
||||
<string name="invalid_chat">无效聊天</string>
|
||||
<string name="smp_servers_invalid_address">无效的服务器地址!</string>
|
||||
<string name="button_add_members">邀请成员</string>
|
||||
<string name="button_leave_group">离开群组</string>
|
||||
<string name="users_delete_data_only">仅本地配置文件数据</string>
|
||||
<string name="icon_descr_instant_notifications">即时通知</string>
|
||||
<string name="service_notifications">即时通知!</string>
|
||||
<string name="auth_log_in_using_credential">使用您的凭据登录</string>
|
||||
<string name="large_file">大文件!</string>
|
||||
<string name="invalid_contact_link">链接无效!</string>
|
||||
<string name="rcv_group_event_member_left">已离开</string>
|
||||
<string name="message_deletion_prohibited_in_chat">此群组中禁止不可撤回消息移除。</string>
|
||||
<string name="v4_3_irreversible_message_deletion">不可撤回消息移除</string>
|
||||
<string name="v4_4_live_messages">实时消息</string>
|
||||
<string name="notification_preview_mode_message">消息正文</string>
|
||||
<string name="callstate_waiting_for_confirmation">等待确认中……</string>
|
||||
<string name="onboarding_notifications_mode_service">即时</string>
|
||||
<string name="only_your_contact_can_send_disappearing">只有您的联系人才可以发送限时消息。</string>
|
||||
<string name="notification_preview_mode_message_desc">显示联系人和消息</string>
|
||||
<string name="notification_preview_mode_contact_desc">只显示联系人</string>
|
||||
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">为保护您的信息,请打开 SimpleX 锁定。
|
||||
\n在启用此功能之前,系统将提示您完成身份验证。</string>
|
||||
<string name="your_chats">您的聊天</string>
|
||||
<string name="share_file">分享文件……</string>
|
||||
<string name="share_image">分享图片……</string>
|
||||
<string name="share_message">分享消息……</string>
|
||||
<string name="text_field_set_contact_placeholder">设置联系人姓名……</string>
|
||||
<string name="callstate_received_answer">已收到回复……</string>
|
||||
<string name="callstate_received_confirmation">已受到确认……</string>
|
||||
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">只有客户端设备存储用户配置文件、联系人、群组和使用 <b>双层端到端加密 </b> 发送的消息。</string>
|
||||
<string name="video_call_no_encryption">视频通话(非端到端加密)</string>
|
||||
<string name="onboarding_notifications_mode_periodic">定期</string>
|
||||
<string name="onboarding_notifications_mode_title">私人通知</string>
|
||||
<string name="onboarding_notifications_mode_off">应用程序运行时</string>
|
||||
<string name="status_no_e2e_encryption">无端到端加密</string>
|
||||
<string name="show_call_on_lock_screen">显示</string>
|
||||
<string name="you_must_use_the_most_recent_version_of_database">您只能在一台设备上使用最新版本的聊天数据库,否则您可能会停止接收来自某些联系人的消息。</string>
|
||||
<string name="new_passphrase">新密码……</string>
|
||||
<string name="member_role_will_be_changed_with_notification">该角色将更改为“%s”。群组中每个人都会收到通知。</string>
|
||||
<string name="your_contact_address">您的联系人地址</string>
|
||||
<string name="chat_lock">SimpleX 锁定</string>
|
||||
<string name="periodic_notifications">定期通知</string>
|
||||
<string name="notifications_mode_periodic">定期启动</string>
|
||||
<string name="notification_preview_new_message">新消息</string>
|
||||
<string name="auth_unlock">解锁</string>
|
||||
<string name="voice_message_send_text">语音消息……</string>
|
||||
<string name="network_use_onion_hosts_no">否</string>
|
||||
<string name="callstate_starting">启动中……</string>
|
||||
<string name="prohibit_sending_disappearing_messages">禁止发送限时消息。</string>
|
||||
<string name="only_you_can_send_disappearing">只有您可以发送限时消息。</string>
|
||||
<string name="only_your_contact_can_delete">只有您的联系人才能不可撤回地删除消息(您可以将它们标记为删除)。</string>
|
||||
<string name="prohibit_sending_disappearing">禁止发送限时消息。</string>
|
||||
<string name="notifications_will_be_hidden">通知只会在应用程序停止之前发送!</string>
|
||||
<string name="chat_preferences_no">否</string>
|
||||
<string name="prohibit_message_deletion">禁止不可撤回消息删除。</string>
|
||||
<string name="notification_new_contact_request">新联系人请求</string>
|
||||
<string name="callstate_waiting_for_answer">等待答复中……</string>
|
||||
<string name="la_notice_title_simplex_lock">SimpleX 锁定</string>
|
||||
<string name="auth_simplex_lock_turned_on">已开启 SimpleX 锁定</string>
|
||||
<string name="notifications">通知</string>
|
||||
<string name="simplex_service_notification_text">正在接收消息……</string>
|
||||
<string name="enter_passphrase_notification_desc">要接收通知,请输入数据库密码</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery">为了保护您的隐私,该应用程序没有推送通知,而是一个 <b><xliff:g id="appName">SimpleX</xliff:g> 后台服务 </b>——它每天使用百分之几的电池。</string>
|
||||
<string name="your_settings">您的设置</string>
|
||||
<string name="turn_off_battery_optimization">为了使用它,请 <b>禁用电池优化</b>为<xliff:g id="appName">SimpleX</xliff:g>在下一个对话框。否则通知将被禁用。</string>
|
||||
<string name="settings_notification_preview_title">通知预览</string>
|
||||
<string name="enter_passphrase_notification_title">需要密码</string>
|
||||
<string name="periodic_notifications_disabled">定期通知被禁用!</string>
|
||||
<string name="notifications_mode_off">在应用程序打开时运行</string>
|
||||
<string name="settings_notification_preview_mode_title">显示预览</string>
|
||||
<string name="periodic_notifications_desc">该应用程序会定期获取新消息——它每天会消耗百分之几的电量。该应用程序不使用推送通知——您设备中的数据不会发送到服务器。</string>
|
||||
<string name="v4_3_irreversible_message_deletion_desc">你的联系人可以允许完全删除消息。</string>
|
||||
<string name="v4_4_disappearing_messages_desc">已发送的消息将在设定的时间后被删除。</string>
|
||||
<string name="your_chat_database">您的聊天数据库</string>
|
||||
<string name="wrong_passphrase_title">密码错误!</string>
|
||||
<string name="save_verb">保存</string>
|
||||
<string name="open_verb">打开</string>
|
||||
<string name="update_database">更新</string>
|
||||
<string name="save_passphrase_and_open_chat">保存密码并打开聊天</string>
|
||||
<string name="open_chat">打开聊天</string>
|
||||
<string name="database_backup_can_be_restored">更改数据库密码的尝试未完成。</string>
|
||||
<string name="remove_member_confirmation">移除</string>
|
||||
<string name="sender_you_pronoun">您</string>
|
||||
<string name="save_servers_button">保存</string>
|
||||
<string name="settings_section_title_you">您</string>
|
||||
<string name="remove_passphrase">移除</string>
|
||||
<string name="you_have_to_enter_passphrase_every_time">您必须在每次应用程序启动时输入密码——它不存储在设备上。</string>
|
||||
<string name="set_password_to_export">设置密码来导出</string>
|
||||
<string name="enter_correct_current_passphrase">请输入正确的当前密码。</string>
|
||||
<string name="update_database_passphrase">更新数据库密码</string>
|
||||
<string name="database_is_not_encrypted">您的聊天数据库未加密——设置密码来保护它。</string>
|
||||
<string name="store_passphrase_securely_without_recover">请安全地保存密码,如果您丢失了密码,您将无法访问聊天。</string>
|
||||
<string name="store_passphrase_securely">请安全地保存密码,如果您丢失了密码,您将无法更改它。</string>
|
||||
<string name="wrong_passphrase">数据库密码错误</string>
|
||||
<string name="network_options_save">保存</string>
|
||||
<string name="update_network_settings_confirmation">更新</string>
|
||||
<string name="open_simplex_chat_to_accept_call">打开 <xliff:g id="appNameFull">SimpleX Chat</xliff:g> 来接听电话</string>
|
||||
<string name="icon_descr_video_call">视频通话</string>
|
||||
<string name="contact_wants_to_connect_via_call"><xliff:g id="contactName" example="Alice">%1$s</xliff:g> 想通过该方式与您联系</string>
|
||||
<string name="icon_descr_call_rejected">拒接来电</string>
|
||||
<string name="call_connection_peer_to_peer">点对点</string>
|
||||
<string name="error_with_info">错误:%s</string>
|
||||
<string name="if_you_cannot_meet_in_person_scan_QR_in_video_call_or_ask_for_invitation_link">如果您不能亲自见面,您可以 <b>扫描视频通话中的二维码</b>,或者您的联系人可以分享邀请链接。</string>
|
||||
<string name="your_calls">您的通话</string>
|
||||
<string name="call_connection_via_relay">通过中继</string>
|
||||
<string name="callstatus_missed">未接来电</string>
|
||||
<string name="callstatus_rejected">拒接来电</string>
|
||||
<string name="v4_3_voice_messages">语音消息</string>
|
||||
<string name="voice_messages">语音消息</string>
|
||||
<string name="ntf_channel_calls">SimpleX Chat 通话</string>
|
||||
<string name="if_you_cannot_meet_in_person_show_QR_in_video_call_or_via_another_channel">如果您不能亲自见面,<b>在视频通话</b>中出示二维码,或分享链接。</string>
|
||||
<string name="your_chat_profiles">您的聊天资料</string>
|
||||
<string name="icon_descr_call_missed">未接来电</string>
|
||||
<string name="icon_descr_call_pending_sent">待定来电</string>
|
||||
<string name="your_chat_profiles_stored_locally">您的聊天资料存储在本地,只在您的设备上</string>
|
||||
<string name="connection_error_auth_desc">除非您的联系人已删除此连接或此链接已被使用,否则它可能是一个错误——请报告。
|
||||
\n如果要连接,请让您的联系人创建另一个连接链接,并检查您的网络连接是否稳定。</string>
|
||||
<string name="you_are_already_connected_to_vName_via_this_link">您已经连接到 <xliff:g id="contactName" example="Alice">%1$s!</xliff:g>。</string>
|
||||
<string name="your_chat_profile_will_be_sent_to_your_contact">您的聊天资料将被发送
|
||||
\n给你的联系人</string>
|
||||
<string name="users_delete_with_connections">资料和服务器连接</string>
|
||||
<string name="update_network_settings_question">更新网络设置?</string>
|
||||
<string name="only_you_can_delete_messages">只有您可以不可撤回地删除消息(您的联系人可以将它们标记为删除)。</string>
|
||||
<string name="restart_the_app_to_create_a_new_chat_profile">重新启动应用程序以创建新的聊天资料。</string>
|
||||
<string name="error_smp_test_server_auth">服务器需要授权才能创建队列,检查密码</string>
|
||||
<string name="error_smp_test_failed_at_step">测试在步骤 %s 失败。</string>
|
||||
<string name="failed_to_create_user_duplicate_desc">您已经有一个显示名相同的聊天资料。请选择另一个名字。</string>
|
||||
<string name="icon_descr_sent_msg_status_sent">已发送</string>
|
||||
<string name="mute_chat">静音</string>
|
||||
<string name="image_descr_profile_image">资料图片</string>
|
||||
<string name="icon_descr_settings">设置</string>
|
||||
<string name="settings_section_title_settings">设置</string>
|
||||
<string name="unknown_error">未知错误</string>
|
||||
<string name="unknown_database_error_with_info">未知数据库错误:%s</string>
|
||||
<string name="rcv_group_event_updated_group_profile">已更新的群组资料</string>
|
||||
<string name="rcv_group_event_member_deleted">已删除 <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="snd_group_event_member_deleted">您删除了 <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="profile_will_be_sent_to_contact_sending_link">您的资料将被发送到收到您链接的联系人那里。</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages_with_error">正在尝试连接到用于从该联系人接收消息的服务器(错误:<xliff:g id="errorMsg">%1$s</xliff:g>)。</string>
|
||||
<string name="connected_to_server_to_receive_messages_from_contact">您已连接到用于接收该联系人消息的服务器。</string>
|
||||
<string name="description_you_shared_one_time_link">您分享了一次性链接</string>
|
||||
<string name="message_delivery_error_desc">很可能此联系人已经删除了与您的联系。</string>
|
||||
<string name="icon_descr_profile_image_placeholder">资料图片占位符</string>
|
||||
<string name="smp_servers_per_user">您当前聊天资料的新连接服务器</string>
|
||||
<string name="your_current_profile">您当前的资料</string>
|
||||
<string name="your_profile_is_stored_on_device_and_shared_only_with_contacts_simplex_cannot_see_it">您的资料存储在您的设备上并且仅与您的联系人共享。
|
||||
\n
|
||||
\n<xliff:g id="appName">SimpleX</xliff:g> 服务器无法看见您的资料。</string>
|
||||
<string name="your_profile_is_stored_on_your_device">您的资料、联系人和发送的消息存储在您的设备上。</string>
|
||||
<string name="profile_is_only_shared_with_your_contacts">该资料仅与您的联系人共享。</string>
|
||||
<string name="chat_preferences_on">在</string>
|
||||
<string name="delete_chat_profile_action_cannot_be_undone_warning">此操作无法撤消——您的个人资料、联系人、消息和文件将不可撤回地丢失。</string>
|
||||
<string name="messages_section_description">此设置适用于您当前聊天资料中的消息</string>
|
||||
<string name="database_restore_error">恢复数据库错误</string>
|
||||
<string name="restore_database_alert_confirm">恢复</string>
|
||||
<string name="you_sent_group_invitation">您发送了群组邀请</string>
|
||||
<string name="you_rejected_group_invitation">您拒绝了群组邀请</string>
|
||||
<string name="your_current_chat_database_will_be_deleted_and_replaced_with_the_imported_one">您当前的聊天数据库将被删除并替换为导入的数据库。
|
||||
\n此操作无法撤消——您的个人资料、联系人、消息和文件将不可撤回地丢失。</string>
|
||||
<string name="rcv_group_event_member_added">已邀请 <xliff:g id="member profile" example="alice (Alice)">%1$s</xliff:g></string>
|
||||
<string name="save_group_profile">保存群组资料</string>
|
||||
<string name="error_smp_test_certificate">服务器地址中的证书指纹可能不正确</string>
|
||||
<string name="network_error_desc">请使用 <xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g> 检查您的网络连接,然后重试。</string>
|
||||
<string name="v4_5_multiple_chat_profiles">多个聊天资料</string>
|
||||
<string name="database_initialization_error_desc">数据库不能正常工作。点击了解更多</string>
|
||||
<string name="message_delivery_error_title">消息传递错误</string>
|
||||
</resources>
|
||||
@@ -9,13 +9,405 @@
|
||||
<string name="chat_item_ttl_day">1 天</string>
|
||||
<string name="chat_item_ttl_month">1 個月</string>
|
||||
<string name="accept_contact_button">接受</string>
|
||||
<string name="about_simplex_chat">關於<xliff:g id="appNameFull">SimpleX Chat</xliff:g></string>
|
||||
<string name="accept_connection_request__question">接受新連線要求\?</string>
|
||||
<string name="callstatus_accepted">已接受電話</string>
|
||||
<string name="network_enable_socks_info">要在端口 9050 啟動 SOCKS 代理伺服器嗎\? 在啟用這個選項之前,必須先啟動代理伺服器。</string>
|
||||
<string name="about_simplex_chat">關於
|
||||
\n<xliff:g id="appNameFull">SimpleX Chat</xliff:g></string>
|
||||
<string name="accept_connection_request__question">接受連線請求 \?</string>
|
||||
<string name="callstatus_accepted">通話已接納</string>
|
||||
<string name="network_enable_socks_info">要在端口 9050 啟動 SOCKS 代理伺服器嗎?在啟用這個選項之前,必須先啟動代理伺服器。</string>
|
||||
<string name="group_member_role_admin">管理員</string>
|
||||
<string name="above_then_preposition_continuation">以上,然後:</string>
|
||||
<string name="above_then_preposition_continuation">然後選按:</string>
|
||||
<string name="smp_servers_preset_add">加入預設伺服器</string>
|
||||
<string name="smp_servers_add">新增伺服器…</string>
|
||||
<string name="accept">接受</string>
|
||||
<string name="auth_unavailable">認證無效</string>
|
||||
<string name="allow_verb">允許</string>
|
||||
<string name="display_name__field">顯示名稱:</string>
|
||||
<string name="full_name__field">全名:</string>
|
||||
<string name="onboarding_notifications_mode_service_desc"><b>使用更多電量</b>!通知服務會長期在背景中運行 – 一但有訊息就會顯示在通知內。</string>
|
||||
<string name="onboarding_notifications_mode_periodic_desc"><b>對電池好</b>。通知服務會每十分鐘檢查一次。你可能會錯過電話通話或訊息。</string>
|
||||
<string name="answer_call">回應電話請求</string>
|
||||
<string name="clear_contacts_selection_button">清除</string>
|
||||
<string name="allow_direct_messages">允許在群組內選擇成員後傳送訊息</string>
|
||||
<string name="ttl_sec">%d 秒</string>
|
||||
<string name="feature_cancelled_item">已取消 %s</string>
|
||||
<string name="v4_2_auto_accept_contact_requests">自動接受聯絡人請求</string>
|
||||
<string name="group_unsupported_incognito_main_profile_sent">匿名者模式在這𥚃是不支援 - 你的真實帳號名稱會顯示於群組內</string>
|
||||
<string name="chat_preferences_no">不要</string>
|
||||
<string name="allow_to_send_disappearing">允許傳送自動銷毀的訊息</string>
|
||||
<string name="database_initialization_error_title">無法初始化數據庫</string>
|
||||
<string name="notifications_mode_service">一直開啟</string>
|
||||
<string name="auth_disable_simplex_lock">關閉 SimpleX 鎖定</string>
|
||||
<string name="auth_enable_simplex_lock">啟動 SimpleX 鎖定</string>
|
||||
<string name="copy_verb">複製</string>
|
||||
<string name="reply_verb">回覆</string>
|
||||
<string name="share_verb">分享</string>
|
||||
<string name="attach">附件</string>
|
||||
<string name="chat_with_developers">和開發者對話</string>
|
||||
<string name="your_chats">你的對話</string>
|
||||
<string name="share_file">分享檔案…</string>
|
||||
<string name="share_message">分享訊息</string>
|
||||
<string name="icon_descr_cancel_image_preview">取消圖片預覽</string>
|
||||
<string name="allow_voice_messages_question">允許使用語音訊息?</string>
|
||||
<string name="cancel_verb">取消</string>
|
||||
<string name="icon_descr_cancel_live_message">取消即時顯示訊息</string>
|
||||
<string name="add_new_contact_to_create_one_time_QR_code"><b>新增新的聯絡人</b>:新增新的聯絡人可以使用二維碼建立你的一次性二維碼。</string>
|
||||
<string name="scan_QR_code_to_connect_to_contact_who_shows_QR_code"><b>掃描二維碼</b>:連接到向你出示二維碼的聯絡人。</string>
|
||||
<string name="choose_file">選擇檔案</string>
|
||||
<string name="use_camera_button">使用相機</string>
|
||||
<string name="from_gallery_button">選擇來自圖片庫</string>
|
||||
<string name="accept_contact_incognito_button">接受匿名者的對話</string>
|
||||
<string name="clear_chat_warning">所有訊息記錄會刪除 - 這不能還原!這些訊息只會在你裝置中刪除。</string>
|
||||
<string name="clear_verb">清除</string>
|
||||
<string name="clear_chat_question">要清除對話記錄?</string>
|
||||
<string name="icon_descr_cancel_link_preview">取消連結預覽</string>
|
||||
<string name="clear_chat_menu_action">清除</string>
|
||||
<string name="clear_chat_button">清除對話記錄</string>
|
||||
<string name="share_invitation_link">分享邀請連結</string>
|
||||
<string name="chat_with_the_founder">傳送問題和想法</string>
|
||||
<string name="how_to_use_simplex_chat">如何使用</string>
|
||||
<string name="install_simplex_chat_for_terminal">使用終端機安裝 <xliff:g id="appNameFull">SimpleX Chat</xliff:g></string>
|
||||
<string name="app_version_title">應用程式版本</string>
|
||||
<string name="all_your_contacts_will_remain_connected">你的所有聯絡人會保持連接。</string>
|
||||
<string name="app_version_code">程式建構:%s</string>
|
||||
<string name="app_version_name">應用程式版本:v%s</string>
|
||||
<string name="share_link">分享連結</string>
|
||||
<string name="accept_automatically">自動化</string>
|
||||
<string name="your_current_profile">你目前的帳號</string>
|
||||
<string name="display_name_cannot_contain_whitespace">顯示的名稱字與字中間不能有空白。</string>
|
||||
<string name="save_preferences_question">儲存設定?</string>
|
||||
<string name="display_name">顯示名稱</string>
|
||||
<string name="full_name_optional__prompt">全名(可選)</string>
|
||||
<string name="callstatus_error">通話有錯誤</string>
|
||||
<string name="callstatus_calling">打電話中…</string>
|
||||
<string name="callstatus_in_progress">通話中</string>
|
||||
<string name="secret">私密</string>
|
||||
<string name="callstate_connected">已連接</string>
|
||||
<string name="onboarding_notifications_mode_off_desc"><b>對電池最好</b>。只有在應用程式運行時才收到通知,這樣背景就不會運行通知服務</string>
|
||||
<string name="encrypted_video_call">端對端加密視像通話</string>
|
||||
<string name="video_call_no_encryption">視像通話(沒有端對端加密)</string>
|
||||
<string name="call_already_ended">通話已經結束了。</string>
|
||||
<string name="icon_descr_audio_off">關閉語音</string>
|
||||
<string name="icon_descr_audio_on">開啟語音</string>
|
||||
<string name="icon_descr_call_ended">通話已經取消了。</string>
|
||||
<string name="icon_descr_call_progress">通話中</string>
|
||||
<string name="icon_descr_speaker_on">開啟喇叭</string>
|
||||
<string name="settings_section_title_calls">通話</string>
|
||||
<string name="appearance_settings">主題</string>
|
||||
<string name="audio_call_no_encryption">語音通話(沒有端對端加密)</string>
|
||||
<string name="icon_descr_audio_call">語音通話</string>
|
||||
<string name="settings_audio_video_calls">語音 & 視像通話</string>
|
||||
<string name="icon_descr_video_call">視像通話</string>
|
||||
<string name="bold">粗體</string>
|
||||
<string name="auto_accept_images">圖片自動接受</string>
|
||||
<string name="full_backup">備份資料數據</string>
|
||||
<string name="settings_section_title_icon">應用程式圖示</string>
|
||||
<string name="chat_database_imported">已匯入對話資料庫</string>
|
||||
<string name="keychain_is_storing_securely">Android Keystore 是用於安全地儲存密碼 - 確保通知服務的運作</string>
|
||||
<string name="impossible_to_recover_passphrase"><b>請注意</b>:如果你忘記了密碼你將不能再次復原或更改密碼。</string>
|
||||
<string name="keychain_allows_to_receive_ntfs">當你重新啟動應用程式或更改密碼後, Android Keystore 將會用來安全地儲存密碼 - 確保收到通知。</string>
|
||||
<string name="chat_is_stopped_indication">聊天室已停止運作</string>
|
||||
<string name="only_group_owners_can_change_prefs">只有這個群組的創建人才能更改群組內的設定。</string>
|
||||
<string name="change_verb">修改</string>
|
||||
<string name="users_add">加入新帳號</string>
|
||||
<string name="users_delete_all_chats_deleted">所有聊天室和聊天記錄會刪除 - 這不能還原!</string>
|
||||
<string name="incognito">匿名者</string>
|
||||
<string name="chat_preferences_always">經常</string>
|
||||
<string name="chat_preferences_on">開啟</string>
|
||||
<string name="your_preferences">你的設定</string>
|
||||
<string name="allow_your_contacts_to_send_voice_messages">允許你的聯絡人傳送語音訊息。</string>
|
||||
<string name="allow_voice_messages_only_if">只能在你的聯絡人允許使用語言訊息的時候才能使用語音訊息。</string>
|
||||
<string name="both_you_and_your_contact_can_send_disappearing">你和你的聯絡人都可以傳送自動銷毀的訊息。</string>
|
||||
<string name="only_you_can_send_disappearing">只有你能傳送可以自動銷毀的訊息。</string>
|
||||
<string name="both_you_and_your_contact_can_send_voice">你和你的聯絡人都可以傳送語音訊息。</string>
|
||||
<string name="v4_2_group_links_desc">管理員可以建立可以加入群組的連結。</string>
|
||||
<string name="v4_3_improved_server_configuration_desc">使用二維碼掃描並新增伺服器。</string>
|
||||
<string name="chat_is_running">聊天室運行中</string>
|
||||
<string name="chat_database_section">聊天室數據庫</string>
|
||||
<string name="chat_is_stopped">聊天室已經停止</string>
|
||||
<string name="stop_chat_confirmation">停止</string>
|
||||
<string name="chat_database_deleted">已刪除數據庫的對話內容</string>
|
||||
<string name="stop_chat_to_enable_database_actions">停止聊天室以啟用數據庫功能。</string>
|
||||
<string name="change_database_passphrase_question">更改數據庫密碼?</string>
|
||||
<string name="leave_group_question">確定要退出群組?</string>
|
||||
<string name="leave_group_button">退出</string>
|
||||
<string name="alert_title_cant_invite_contacts">無法邀請該聯絡人!</string>
|
||||
<string name="rcv_group_event_member_connected">已連接</string>
|
||||
<string name="rcv_group_event_member_left">已離開</string>
|
||||
<string name="invite_prohibited">無法邀請該聯絡人!</string>
|
||||
<string name="create_secret_group_title">建立私密群組</string>
|
||||
<string name="button_leave_group">退出群組</string>
|
||||
<string name="group_member_status_connected">已連接</string>
|
||||
<string name="group_display_name_field">群組顯示名稱:</string>
|
||||
<string name="group_full_name_field">群組全名:</string>
|
||||
<string name="chat_preferences">對話設定</string>
|
||||
<string name="chat_preferences_off">關閉</string>
|
||||
<string name="chat_preferences_yes">好</string>
|
||||
<string name="timed_messages">自動銷毀訊息</string>
|
||||
<string name="group_members_can_send_dms">群組內的會員可以傳送私人訊息。</string>
|
||||
<string name="ttl_min">%d 分鐘</string>
|
||||
<string name="ttl_month">%d 月</string>
|
||||
<string name="callstatus_ended">通話結束 <xliff:g id="duration" example="01:15">%1$s</xliff:g></string>
|
||||
<string name="icon_descr_cancel_file_preview">取消檔案預覽</string>
|
||||
<string name="cannot_receive_file">無法接收文件</string>
|
||||
<string name="failed_to_create_user_duplicate_title">重複的顯示名稱!</string>
|
||||
<string name="network_session_mode_entity_description">一個單獨的 TCP 連接(和 SOCKS 憑證)將用於<b>每個聯絡人和群組內的成員</b>。
|
||||
\n<b>請注意</b>:如果你有很多連接,你的電話電量和數據流量的消耗率會大大增加,一些連接有機會會連接失敗。</string>
|
||||
<string name="network_session_mode_user_description">一個單獨的 TCP 連接(和 SOCKS 憑證)將用於<b>每個聊天室的設定<b>。</string>
|
||||
<string name="back">返回</string>
|
||||
<string name="turning_off_service_and_periodic">省電模式運行中,關閉了背景通知服務和新訊息的定期檢查。你可以在通知設定內重新啟用。</string>
|
||||
<string name="settings_section_title_incognito">匿名者模式</string>
|
||||
<string name="chat_preferences_default">預設 (%s)</string>
|
||||
<string name="group_preferences">群組設定</string>
|
||||
<string name="contact_preferences">聯絡人設定</string>
|
||||
<string name="share_image">分享圖片…</string>
|
||||
<string name="both_you_and_your_contacts_can_delete">你和你的聯絡人都可以不可逆的刪除已經傳送的訊息</string>
|
||||
<string name="server_connected">已連接</string>
|
||||
<string name="simplex_link_mode_description">簡介</string>
|
||||
<string name="simplex_link_mode_full">完整連結</string>
|
||||
<string name="it_can_disabled_via_settings_notifications_still_shown"><b>你可以通過設定關閉</b> - 當應用程式運行時,通知服務會仍然運行。</string>
|
||||
<string name="notifications_mode_service_desc">背景通知服務會一直運行 - 一但有新訊息就會顯示在通知。</string>
|
||||
<string name="notifications_mode_off_desc">程式只會在運行中的時候才會收到訊息的通知,不會在背景中運行通知服務。</string>
|
||||
<string name="icon_descr_asked_to_receive">要求接收圖片</string>
|
||||
<string name="network_settings">進階網路設定</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_completed">將你的地址修改</string>
|
||||
<string name="rcv_conn_event_switch_queue_phase_changing">更改地址中…</string>
|
||||
<string name="snd_conn_event_switch_queue_phase_changing">更改地址中…</string>
|
||||
<string name="v4_4_disappearing_messages">自動銷毀訊息</string>
|
||||
<string name="add_contact_or_create_group">開始新對話</string>
|
||||
<string name="create_group">建立私密群組</string>
|
||||
<string name="share_one_time_link">建立一次性邀請連結</string>
|
||||
<string name="to_share_with_your_contact">(分享給你的聯絡人)</string>
|
||||
<string name="chat_help_tap_button">點擊按鈕</string>
|
||||
<string name="thank_you_for_installing_simplex">感謝你安裝 <xliff:g id="appNameFull">SimpleX Chat</xliff:g>!</string>
|
||||
<string name="mute_chat">靜音</string>
|
||||
<string name="unmute_chat">解除靜音</string>
|
||||
<string name="your_settings">你的設定</string>
|
||||
<string name="smp_servers_add_to_another_device">加入到另一個裝置上</string>
|
||||
<string name="smp_servers_check_address">檢查輸入的伺服器地址然後再試一次。</string>
|
||||
<string name="chat_console">終端機對話</string>
|
||||
<string name="star_on_github">於 Github 給個星星</string>
|
||||
<string name="incognito_info_protects">匿名者模式會保護你的真實帳號名稱和頭像 — 當有新聯絡人的時候會自動建立一個隨機性的名字。</string>
|
||||
<string name="incognito_info_allows">這樣就會每一個對話中也擁有不同的顯示名稱並且沒有任何的個人資料可用於分享或有機會外洩</string>
|
||||
<string name="incognito_info_find">要找到用於匿名連接的個人資料,請點擊上方的聯絡人或群組名稱。</string>
|
||||
<string name="allow_disappearing_messages_only_if">只有在你的聯絡人允許的情況下才允許自動銷毀訊息。</string>
|
||||
<string name="allow_your_contacts_to_send_disappearing_messages">允許你的聯絡人傳送自動銷毀的訊息。</string>
|
||||
<string name="allow_irreversible_message_deletion_only_if">只有在你的聯絡人允許的情況下,才允許將不可撤銷的訊息刪除。</string>
|
||||
<string name="allow_your_contacts_irreversibly_delete">允許你的聯絡人可以不可逆的刪除已發送的訊息。</string>
|
||||
<string name="allow_to_delete_messages">允許將不可撤銷的訊息刪除。</string>
|
||||
<string name="allow_to_send_voice">允許傳送語音訊息。</string>
|
||||
<string name="delete_after">多久後刪除</string>
|
||||
<string name="all_group_members_will_remain_connected">群組內所有成員會保持連接</string>
|
||||
<string name="color_primary">自訂顏色</string>
|
||||
<string name="moderated_description">即時顯示訊息</string>
|
||||
<string name="simplex_link_group">SimpleX 群組連結</string>
|
||||
<string name="v4_5_private_filenames">私人檔案名稱</string>
|
||||
<string name="error_adding_members">傳送訊息時出錯</string>
|
||||
<string name="failed_to_create_user_title">建立帳號失敗!</string>
|
||||
<string name="failed_to_create_user_duplicate_desc">你已經有一個帳號的顯示名稱和現在選擇建立的帳號名稱相同。請顯示其他名稱。</string>
|
||||
<string name="failed_to_active_user_title">切換帳號失敗!</string>
|
||||
<string name="error_joining_group">在群組新增成員時出錯</string>
|
||||
<string name="sender_cancelled_file_transfer">傳送者已取消傳送檔案。</string>
|
||||
<string name="error_receiving_file">接收檔案時出錯</string>
|
||||
<string name="error_creating_address">建立地址時出錯</string>
|
||||
<string name="v4_5_private_filenames_descr">為了保護時區,圖片或語音文件使用 UTC。</string>
|
||||
<string name="sending_files_not_yet_supported">目前還不支援傳送檔案</string>
|
||||
<string name="receiving_files_not_yet_supported">目前還不技援接收檔案</string>
|
||||
<string name="sender_you_pronoun">你</string>
|
||||
<string name="unknown_message_format">未知的訊息格式</string>
|
||||
<string name="invalid_message_format">無效的訊息格式</string>
|
||||
<string name="live">直播</string>
|
||||
<string name="invalid_chat">無效聊天</string>
|
||||
<string name="invalid_data">無效數據</string>
|
||||
<string name="connection_local_display_name">連接 <xliff:g id="connection ID" example="1">%1$d</xliff:g></string>
|
||||
<string name="display_name_connection_established">已建立連線</string>
|
||||
<string name="display_name_invited_to_connect">邀請連線</string>
|
||||
<string name="display_name_connecting">連接中…</string>
|
||||
<string name="description_you_shared_one_time_link">你建立了一次性的連接連結</string>
|
||||
<string name="description_you_shared_one_time_link_incognito">你建立了使用匿名者模式的一次性連接連結</string>
|
||||
<string name="simplex_link_contact">SimpleX 聯絡人連結</string>
|
||||
<string name="simplex_link_invitation">SimpleX 一次性連結</string>
|
||||
<string name="simplex_link_mode">SimpleX 連結</string>
|
||||
<string name="simplex_link_connection">通過 <xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g></string>
|
||||
<string name="simplex_link_mode_browser">通過瀏覽器</string>
|
||||
<string name="error_sending_message">請使用 <xliff:g id="serverHost" example="smp.simplex.im">%1$s</xliff:g> 檢查你的網路連線並且再試一次。</string>
|
||||
<string name="contact_already_exists">聯絡人已存在</string>
|
||||
<string name="you_are_already_connected_to_vName_via_this_link">你已經連接到 <xliff:g id="contactName" example="Alice">%1$s!</xliff:g>。</string>
|
||||
<string name="v4_5_transport_isolation_descr">通過帳號文件(默認)或通過連接(測試版)。</string>
|
||||
<string name="v4_5_reduced_battery_usage">減少電量使用</string>
|
||||
<string name="v4_5_reduced_battery_usage_descr">更多功能即將推出!</string>
|
||||
<string name="v4_5_italian_interface">意大利語言界面</string>
|
||||
<string name="v4_5_italian_interface_descr">感謝用戶 - 使用 Weblate 的翻譯貢獻!</string>
|
||||
<string name="app_name"><xliff:g id="appName">SimpleX</xliff:g></string>
|
||||
<string name="thousand_abbreviation">k</string>
|
||||
<string name="connect_via_contact_link">使用連結連接聯絡人 \?</string>
|
||||
<string name="connect_via_invitation_link">通過邀請的</string>
|
||||
<string name="connect_via_group_link">通過使用邀請連結連接 \?</string>
|
||||
<string name="profile_will_be_sent_to_contact_sending_link">你的個人資料將發送給你收到此連結的聯絡人。</string>
|
||||
<string name="you_will_join_group">你將會加入此連結內的群組並且連接到此群組成為群組內的成員。</string>
|
||||
<string name="connect_via_link_verb">連接</string>
|
||||
<string name="server_error">錯誤</string>
|
||||
<string name="server_connecting">連接中</string>
|
||||
<string name="connected_to_server_to_receive_messages_from_contact">你已連線到用於接收來自此聯絡人的訊息伺服器。</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages_with_error">正在嘗試連接到這聯絡人接收的訊息伺服器 (錯誤: <xliff:g id="errorMsg">%1$s</xliff:g>).</string>
|
||||
<string name="trying_to_connect_to_server_to_receive_messages">正在嘗試連接到這聯絡人接收的訊息伺服器。</string>
|
||||
<string name="deleted_description">己刪除</string>
|
||||
<string name="marked_deleted_description">已標記為刪除</string>
|
||||
<string name="simplex_link_mode_browser_warning">在瀏覽器中開啟連結可能會降低私隱和安全性。不受 SimpleX 信任的連結會顯示紅色。</string>
|
||||
<string name="error_saving_smp_servers">儲存 SMP 伺服器時出錯</string>
|
||||
<string name="ensure_smp_server_address_are_correct_format_and_unique">請確保 SMP 伺服器連結格式正確,行分隔且不重複。</string>
|
||||
<string name="error_setting_network_config">更新網路配置時出錯</string>
|
||||
<string name="failed_to_parse_chat_title">聯絡人載入失敗</string>
|
||||
<string name="failed_to_parse_chats_title">多個聯絡人載入失敗</string>
|
||||
<string name="contact_developers">請更新應用程式或聯絡開發者。</string>
|
||||
<string name="connection_timeout">連線超時</string>
|
||||
<string name="connection_error">連線失敗</string>
|
||||
<string name="network_error_desc">請檢查你的網路</string>
|
||||
<string name="smp_server_test_connect">連接</string>
|
||||
<string name="periodic_notifications_disabled">定期通知已禁用!</string>
|
||||
<string name="enter_passphrase_notification_title">需要使用密碼</string>
|
||||
<string name="notification_preview_mode_contact_desc">只顯示聯絡人名稱</string>
|
||||
<string name="auth_device_authentication_is_disabled_turning_off">裝置內的身份認證已關閉。已關閉 SimpleX 鎖定。</string>
|
||||
<string name="save_verb">儲存</string>
|
||||
<string name="images_limit_title">太多圖片!</string>
|
||||
<string name="error_saving_file">儲存檣案的時候有錯誤</string>
|
||||
<string name="notification_new_contact_request">有新的聯絡人連線請求</string>
|
||||
<string name="auth_confirm_credential">登入以使用憑據</string>
|
||||
<string name="hide_verb">隱藏</string>
|
||||
<string name="file_saved">檔案己儲存</string>
|
||||
<string name="invalid_connection_link">無效連線連結</string>
|
||||
<string name="sender_may_have_deleted_the_connection_request">傳送者似乎已經刪除了連接的請求。</string>
|
||||
<string name="error_deleting_contact">刪除聯絡人時出錯</string>
|
||||
<string name="error_deleting_group">刪除群組時出錯</string>
|
||||
<string name="error_deleting_contact_request">刪除聯絡人</string>
|
||||
<string name="error_smp_test_failed_at_step">測試在步驟 %s 失敗。</string>
|
||||
<string name="error_smp_test_server_auth">伺服器需要投權才能建立佇列,請檢查密碼</string>
|
||||
<string name="error_smp_test_certificate">伺服器地址的憑證指紋可能不正確</string>
|
||||
<string name="icon_descr_instant_notifications">即時收到通知</string>
|
||||
<string name="service_notifications">即時收到通知!</string>
|
||||
<string name="service_notifications_disabled">即時收到通知已禁用!</string>
|
||||
<string name="database_initialization_error_desc">數據庫目前沒有正常運作。點擊查看更多</string>
|
||||
<string name="ntf_channel_calls">SimpleX Chat 電話</string>
|
||||
<string name="settings_notifications_mode_title">通知服務</string>
|
||||
<string name="settings_notification_preview_mode_title">顯示預覽</string>
|
||||
<string name="settings_notification_preview_title">通知預覽</string>
|
||||
<string name="auth_you_will_be_required_to_authenticate_when_you_start_or_resume">如果你解鎖程式後三十秒後再次啟動或返回應用程式,你將需要進行多一次解鎖程式</string>
|
||||
<string name="auth_unlock">已解鎖</string>
|
||||
<string name="auth_log_in_using_credential">登入</string>
|
||||
<string name="auth_open_chat_console">使用終端機開啟對話</string>
|
||||
<string name="message_delivery_error_title">傳送訊息有錯誤</string>
|
||||
<string name="message_delivery_error_desc">大概你的聯絡人已經刪除了和你的對話並且已經沒有和你有連線。</string>
|
||||
<string name="for_me_only">只為我刪除</string>
|
||||
<string name="for_everybody">為所有人刪除</string>
|
||||
<string name="icon_descr_edited">已修改</string>
|
||||
<string name="icon_descr_sent_msg_status_sent">已傳送</string>
|
||||
<string name="icon_descr_sent_msg_status_unauthorized_send">未經授權傳送</string>
|
||||
<string name="icon_descr_sent_msg_status_send_failed">傳送失敗</string>
|
||||
<string name="personal_welcome">歡迎 <xliff:g>%1$s</xliff:g>!</string>
|
||||
<string name="welcome">歡迎!</string>
|
||||
<string name="this_text_is_available_in_settings">這文字在設定中可用</string>
|
||||
<string name="contact_connection_pending">連接中…</string>
|
||||
<string name="group_preview_you_are_invited">你被邀請加入至群組</string>
|
||||
<string name="group_preview_join_as">加入為 %s</string>
|
||||
<string name="group_connection_pending">連接中…</string>
|
||||
<string name="tap_to_start_new_chat">點擊開始新對話</string>
|
||||
<string name="file_not_found">檔案找不到</string>
|
||||
<string name="voice_message_with_duration">語音訊息 (<xliff:g id="duration">%1$s</xliff:g>)</string>
|
||||
<string name="voice_message_send_text">語音訊息…</string>
|
||||
<string name="icon_descr_record_voice_message">錄製語音訊息</string>
|
||||
<string name="you_need_to_allow_to_send_voice">你需要允許你的聯絡人傳送語音訊息才能使他們可以傳送給你。</string>
|
||||
<string name="voice_messages_prohibited">禁止語音訊息!</string>
|
||||
<string name="ask_your_contact_to_enable_voice">請詢問你的聯絡人啟用語音訊息</string>
|
||||
<string name="only_group_owners_can_enable_voice">只有群組的創建人才能啟用語音訊息</string>
|
||||
<string name="send_verb">傳送</string>
|
||||
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">請確定你使用了正確的連結或者叫你的聯絡人傳送一個新的連結給你。</string>
|
||||
<string name="connection_error_auth">連接錯誤 (AUTH)</string>
|
||||
<string name="connection_error_auth_desc">除非你的聯絡人刪除了連結或此連結已經被使用,否則它可能是一個錯誤 - 請匯報問題。
|
||||
\n要連線,請詢問你的聯絡人建立新的連結和確保你的網路是隱定的。</string>
|
||||
<string name="error_accepting_contact_request">接受聯絡人的連接時出錯</string>
|
||||
<string name="error_deleting_pending_contact_connection">刪除聯絡人請求時出錯</string>
|
||||
<string name="error_changing_address">更改地址時出錯</string>
|
||||
<string name="smp_server_test_create_queue">建立佇列</string>
|
||||
<string name="smp_server_test_secure_queue">安全佇列</string>
|
||||
<string name="smp_server_test_delete_queue">刪除佇列</string>
|
||||
<string name="smp_server_test_disconnect">斷開連接</string>
|
||||
<string name="turn_off_battery_optimization">為了使用它,請 <b>禁用電量優化</b> <xliff:g id="appName">SimpleX</xliff:g> 在下一個對話中。否則,通知將會禁用。</string>
|
||||
<string name="enter_passphrase_notification_desc">在接收通知之前,請你確入數據庫的密碼</string>
|
||||
<string name="periodic_notifications_desc">應用程式會定期推送新訊息 — 它每天會消耗百分之幾的電量。 應用程式將不使用推送通知 — 你裝置中的數據不會傳送至伺服器。</string>
|
||||
<string name="simplex_service_notification_title"><xliff:g id="appNameFull">SimpleX Chat</xliff:g> 服務</string>
|
||||
<string name="simplex_service_notification_text">正在接收訊息…</string>
|
||||
<string name="hide_notification">隱藏</string>
|
||||
<string name="ntf_channel_messages">SimpleX Chat 訊息</string>
|
||||
<string name="notifications_mode_off">當應用程式是開啟</string>
|
||||
<string name="notifications_mode_periodic">定期啟用</string>
|
||||
<string name="notification_preview_mode_message_desc">顯示聯絡人名稱和訊息內容</string>
|
||||
<string name="notification_display_mode_hidden_desc">隱藏聯絡人名稱和訊息內容</string>
|
||||
<string name="notification_preview_somebody">聯絡人隱藏:</string>
|
||||
<string name="notification_preview_new_message">有新訊息</string>
|
||||
<string name="notification_contact_connected">已連線</string>
|
||||
<string name="la_notice_title_simplex_lock">SimpleX 鎖定</string>
|
||||
<string name="la_notice_to_protect_your_information_turn_on_simplex_lock_you_will_be_prompted_to_complete_authentication_before_this_feature_is_enabled">為了保護你的個人訊息,開啟 SimpleX Lock。
|
||||
\n在啟用此功能之前,系統將提示您完成身份驗證。</string>
|
||||
<string name="la_notice_turn_on">打開</string>
|
||||
<string name="auth_simplex_lock_turned_on">SimpleX 鎖定已開啟</string>
|
||||
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">你的裝置沒有可用的身份認證。您可以通過設定內啟動身份認證,當你啟動後就可以使用 SimpleX 鎖定</string>
|
||||
<string name="edit_verb">修改</string>
|
||||
<string name="delete_verb">刪除</string>
|
||||
<string name="reveal_verb">透露</string>
|
||||
<string name="delete_message__question">確定要刪除訊息?</string>
|
||||
<string name="delete_message_cannot_be_undone_warning">訊息會刪除 - 並且不能撤消!</string>
|
||||
<string name="delete_message_mark_deleted_warning">訊息將被標記為刪除。 接收訊息的人(多個) 能夠透露此訊息。</string>
|
||||
<string name="icon_descr_received_msg_status_unread">未讀取</string>
|
||||
<string name="you_have_no_chats">你沒有聯絡人</string>
|
||||
<string name="image_decoding_exception_title">解碼錯誤</string>
|
||||
<string name="contact_sent_large_file">你的的聯絡人傳送的檔案大於目前支持的最大大小 (<xliff:g id="maxFileSize">%1$s</xliff:g>).</string>
|
||||
<string name="images_limit_desc">只能同一時間傳送十張圖片</string>
|
||||
<string name="maximum_supported_file_size">目前支援的最大檣案大小為 <xliff:g id="maxFileSize">%1$s</xliff:g>。</string>
|
||||
<string name="file_will_be_received_when_contact_is_online">下載檔案需要傳送者上線的時候才能下載檣案,請等待對方上線!</string>
|
||||
<string name="voice_message">語音訊息</string>
|
||||
<string name="send_live_message">傳送即時顯示的訊息</string>
|
||||
<string name="live_message">即時顯示的訊息!</string>
|
||||
<string name="send_live_message_desc">傳送即時顯示的訊息 - 這會即時顯示你在輸入中的文字</string>
|
||||
<string name="connect_via_link_or_qr_from_clipboard_or_in_person">(掃描或使用剪貼薄貼上)</string>
|
||||
<string name="toast_permission_denied">沒有權限</string>
|
||||
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery">為了保護你的私隱,即時推送通知沒有使用 <b xmlns:xliff=\"urn:oasis:names:tc:xliff:document:1.2\"><xliff:g id=\"appName\">SimpleX</xliff:g> 後台通知 - 它每天會使用你電量的百分之幾。</string>
|
||||
<string name="periodic_notifications">定期通知</string>
|
||||
<string name="notifications_mode_periodic_desc">每十分鐘會檢查一次訊息,最多一分鐘</string>
|
||||
<string name="notification_preview_mode_message">訊息文字</string>
|
||||
<string name="notification_preview_mode_contact">聯絡人名稱</string>
|
||||
<string name="notification_preview_mode_hidden">隱藏</string>
|
||||
<string name="image_descr">圖片</string>
|
||||
<string name="icon_descr_waiting_for_image">等待圖片</string>
|
||||
<string name="icon_descr_image_snd_complete">圖片已傳送</string>
|
||||
<string name="waiting_for_image">等待圖片</string>
|
||||
<string name="image_will_be_received_when_contact_is_online">下載圖片需要傳送者上線的時候才能下載圖片,請等待對方上線!</string>
|
||||
<string name="image_saved">圖片已儲存至圖片庫</string>
|
||||
<string name="notifications">通知</string>
|
||||
<string name="delete_contact_question">刪除聯給人?</string>
|
||||
<string name="delete_contact_all_messages_deleted_cannot_undo_warning">此聯絡人和此聯絡人的訊息會全部刪除 - 這不能還原!</string>
|
||||
<string name="button_delete_contact">刪除聯絡人</string>
|
||||
<string name="text_field_set_contact_placeholder">設置聯絡人名稱…</string>
|
||||
<string name="icon_descr_server_status_connected">已連接</string>
|
||||
<string name="icon_descr_server_status_disconnected">已斷開連接</string>
|
||||
<string name="icon_descr_server_status_error">錯誤</string>
|
||||
<string name="icon_descr_server_status_pending">待處理</string>
|
||||
<string name="switch_receiving_address_question">切換接收位置?</string>
|
||||
<string name="switch_receiving_address_desc">此功能目前還是實驗階段! 對方需要使用 4.2 版本或更高的版本才能成功生效。 地址更改後,你會在對話中看到新訊息 - 請測試你更改地址後是否仍然能夠收到來自這聯絡人(或群組內的成員)的訊息。</string>
|
||||
<string name="view_security_code">查看安全碼</string>
|
||||
<string name="verify_security_code">驗證安全碼</string>
|
||||
<string name="icon_descr_send_message">傳送訊息</string>
|
||||
<string name="error_deleting_user">刪除帳號時出現錯誤</string>
|
||||
<string name="auth_stop_chat">停止對話</string>
|
||||
<string name="image_decoding_exception_desc">圖片不能解碼,嘗試其他圖片或聯絡開發者。</string>
|
||||
<string name="icon_descr_file">檔案</string>
|
||||
<string name="large_file">大型檔案</string>
|
||||
<string name="waiting_for_file">等待檔案中</string>
|
||||
<string name="confirm_verb">確定</string>
|
||||
<string name="reset_verb">重設</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="no_details">沒有詳細資料</string>
|
||||
<string name="add_contact">一次性邀請連結</string>
|
||||
<string name="copied">已複製至你的剪貼薄</string>
|
||||
<string name="connect_via_link_or_qr">使用連結連接 / 使用二維碼</string>
|
||||
<string name="scan_QR_code">掃描二維碼</string>
|
||||
<string name="only_stored_on_members_devices">(僅由群組成員存儲)</string>
|
||||
</resources>
|
||||
@@ -28,6 +28,7 @@
|
||||
<string name="unknown_message_format">unknown message format</string>
|
||||
<string name="invalid_message_format">invalid message format</string>
|
||||
<string name="live">LIVE</string>
|
||||
<string name="moderated_description">moderated</string>
|
||||
<string name="invalid_chat">invalid chat</string>
|
||||
<string name="invalid_data">invalid data</string>
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<paths>
|
||||
<files-path name="my_files" path="/"/>
|
||||
<files-path name="app_temp" path="../app_temp"/>
|
||||
</paths>
|
||||
|
||||
1
apps/ios/README.md
Normal file
1
apps/ios/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# SimpleX Chat iOS app
|
||||
@@ -133,7 +133,7 @@ func imageHasAlpha(_ img: UIImage) -> Bool {
|
||||
context.draw(cgImage, in: CGRect(x: 0, y: 0, width: cgImage.width, height: cgImage.height))
|
||||
if let data = context.data {
|
||||
let data = data.assumingMemoryBound(to: UInt8.self)
|
||||
let size = cgImage.width * cgImage.height
|
||||
let size = cgImage.width * cgImage.height * 4
|
||||
var i = 0
|
||||
while i < size {
|
||||
if data[i] < 255 { return true }
|
||||
@@ -203,3 +203,51 @@ func dropImagePrefix(_ s: String) -> String {
|
||||
private func dropPrefix(_ s: String, _ prefix: String) -> String {
|
||||
s.hasPrefix(prefix) ? String(s.dropFirst(prefix.count)) : s
|
||||
}
|
||||
|
||||
extension UIImage {
|
||||
func replaceColor(_ from: UIColor, _ to: UIColor) -> UIImage {
|
||||
if let cgImage = cgImage {
|
||||
let colorSpace = CGColorSpaceCreateDeviceRGB()
|
||||
let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedFirst.rawValue)
|
||||
if let context = CGContext(data: nil, width: cgImage.width, height: cgImage.height, bitsPerComponent: 8, bytesPerRow: cgImage.width * 4, space: colorSpace, bitmapInfo: bitmapInfo.rawValue) {
|
||||
context.draw(cgImage, in: CGRect(x: 0, y: 0, width: cgImage.width, height: cgImage.height))
|
||||
if let data = context.data {
|
||||
var fromAlpha: CGFloat = 0
|
||||
var fromRed: CGFloat = 0
|
||||
var fromGreen: CGFloat = 0
|
||||
var fromBlue: CGFloat = 0
|
||||
var toAlpha: CGFloat = 0
|
||||
var toRed: CGFloat = 0
|
||||
var toGreen: CGFloat = 0
|
||||
var toBlue: CGFloat = 0
|
||||
from.getRed(&fromRed, green: &fromGreen, blue: &fromBlue, alpha: &fromAlpha)
|
||||
to.getRed(&toRed, green: &toGreen, blue: &toBlue, alpha: &toAlpha)
|
||||
let fAlpha = UInt8(UInt8(fromAlpha * 255))
|
||||
let fRed = UInt8(fromRed * 255)
|
||||
let fGreen = UInt8(fromGreen * 255)
|
||||
let fBlue = UInt8(fromBlue * 255)
|
||||
let tAlpha = UInt8(toAlpha * 255)
|
||||
let tRed = UInt8(toRed * 255)
|
||||
let tGreen = UInt8(toGreen * 255)
|
||||
let tBlue = UInt8(toBlue * 255)
|
||||
let data = data.assumingMemoryBound(to: UInt8.self)
|
||||
let size = cgImage.width * cgImage.height * 4
|
||||
var i = 0
|
||||
while i < size {
|
||||
if data[i] == fAlpha && data[i + 1] == fRed && data[i + 2] == fGreen && data[i + 3] == fBlue {
|
||||
data[i + 0] = tAlpha
|
||||
data[i + 1] = tRed
|
||||
data[i + 2] = tGreen
|
||||
data[i + 3] = tBlue
|
||||
}
|
||||
i += 4
|
||||
}
|
||||
}
|
||||
if let img = context.makeImage() {
|
||||
return UIImage(cgImage: img)
|
||||
}
|
||||
}
|
||||
}
|
||||
return self
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ struct CIFeaturePreferenceView_Previews: PreviewProvider {
|
||||
let content = CIContent.rcvChatPreference(feature: .timedMessages, allowed: .yes, param: 30)
|
||||
let chatItem = ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, content.text, .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(1, .now, content.text, .rcvRead),
|
||||
content: content,
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
|
||||
@@ -138,14 +138,14 @@ struct CIFileView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
let sentFile: ChatItem = ChatItem(
|
||||
chatDir: .directSnd,
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, false, true, false),
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, itemEdited: true),
|
||||
content: .sndMsgContent(msgContent: .file("")),
|
||||
quotedItem: nil,
|
||||
file: CIFile.getSample(fileStatus: .sndComplete)
|
||||
)
|
||||
let fileChatItemWtFile = ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "", .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "", .rcvRead),
|
||||
content: .rcvMsgContent(msgContent: .file("")),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
|
||||
@@ -52,7 +52,7 @@ struct CIMetaView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
Group {
|
||||
CIMetaView(chatItem: ChatItem.getSample(2, .directSnd, .now, "https://simplex.chat", .sndSent))
|
||||
CIMetaView(chatItem: ChatItem.getSample(2, .directSnd, .now, "https://simplex.chat", .sndSent, false, true))
|
||||
CIMetaView(chatItem: ChatItem.getSample(2, .directSnd, .now, "https://simplex.chat", .sndSent, itemEdited: true))
|
||||
CIMetaView(chatItem: ChatItem.getDeletedContentSample())
|
||||
}
|
||||
.previewLayout(.fixed(width: 360, height: 100))
|
||||
|
||||
@@ -221,14 +221,14 @@ struct CIVoiceView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
let sentVoiceMessage: ChatItem = ChatItem(
|
||||
chatDir: .directSnd,
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, false, true, false),
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, itemEdited: true),
|
||||
content: .sndMsgContent(msgContent: .voice(text: "", duration: 30)),
|
||||
quotedItem: nil,
|
||||
file: CIFile.getSample(fileStatus: .sndComplete)
|
||||
)
|
||||
let voiceMessageWtFile = ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "", .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "", .rcvRead),
|
||||
content: .rcvMsgContent(msgContent: .voice(text: "", duration: 30)),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
|
||||
@@ -10,6 +10,7 @@ import SwiftUI
|
||||
import SimpleXChat
|
||||
|
||||
struct DeletedItemView: View {
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
var chatItem: ChatItem
|
||||
var showMember = false
|
||||
|
||||
@@ -26,7 +27,7 @@ struct DeletedItemView: View {
|
||||
}
|
||||
.padding(.leading, 12)
|
||||
.padding(.vertical, 6)
|
||||
.background(Color(uiColor: .tertiarySystemGroupedBackground))
|
||||
.background(chatItemFrameColor(chatItem, colorScheme))
|
||||
.cornerRadius(18)
|
||||
.textSelection(.disabled)
|
||||
}
|
||||
|
||||
@@ -47,14 +47,14 @@ struct FramedCIVoiceView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
let sentVoiceMessage: ChatItem = ChatItem(
|
||||
chatDir: .directSnd,
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, false, true, false),
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, itemEdited: true),
|
||||
content: .sndMsgContent(msgContent: .voice(text: "Hello there", duration: 30)),
|
||||
quotedItem: nil,
|
||||
file: CIFile.getSample(fileStatus: .sndComplete)
|
||||
)
|
||||
let voiceMessageWithQuote: ChatItem = ChatItem(
|
||||
chatDir: .directSnd,
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, false, true, false),
|
||||
meta: CIMeta.getSample(1, .now, "", .sndSent, itemEdited: true),
|
||||
content: .sndMsgContent(msgContent: .voice(text: "", duration: 30)),
|
||||
quotedItem: CIQuote.getSample(1, .now, "Hi", chatDir: .directRcv),
|
||||
file: CIFile.getSample(fileStatus: .sndComplete)
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -37,7 +37,7 @@ struct MarkedDeletedItemView: View {
|
||||
struct MarkedDeletedItemView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
Group {
|
||||
MarkedDeletedItemView(chatItem: ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, true, false))
|
||||
MarkedDeletedItemView(chatItem: ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, itemDeleted: .deleted))
|
||||
}
|
||||
.previewLayout(.fixed(width: 360, height: 200))
|
||||
}
|
||||
|
||||
@@ -19,9 +19,9 @@ struct ChatItemView: View {
|
||||
|
||||
var body: some View {
|
||||
let ci = chatItem
|
||||
if chatItem.meta.itemDeleted && !revealed {
|
||||
if chatItem.meta.itemDeleted != nil && !revealed {
|
||||
MarkedDeletedItemView(chatItem: chatItem, showMember: showMember)
|
||||
} else if ci.quotedItem == nil && !ci.meta.itemDeleted && !ci.meta.isLive {
|
||||
} else if ci.quotedItem == nil && ci.meta.itemDeleted == nil && !ci.meta.isLive {
|
||||
if let mc = ci.content.msgContent, mc.isText && isShortEmoji(ci.content.text) {
|
||||
EmojiItemView(chatItem: ci)
|
||||
} else if ci.content.text.isEmpty, case let .voice(_, duration) = ci.content.msgContent {
|
||||
@@ -72,6 +72,8 @@ struct ChatItemContentView<Content: View>: View {
|
||||
case let .sndGroupFeature(feature, preference, _): chatFeatureView(feature, preference.enable.iconColor)
|
||||
case let .rcvChatFeatureRejected(feature): chatFeatureView(feature, .red)
|
||||
case let .rcvGroupFeatureRejected(feature): chatFeatureView(feature, .red)
|
||||
case .sndModerated: deletedItemView()
|
||||
case .rcvModerated: deletedItemView()
|
||||
case let .invalidJSON(json): CIInvalidJSONView(json: json)
|
||||
}
|
||||
}
|
||||
@@ -106,9 +108,9 @@ struct ChatItemView_Previews: PreviewProvider {
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(2, .directRcv, .now, "🙂🙂🙂🙂🙂"), revealed: Binding.constant(false))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(2, .directRcv, .now, "🙂🙂🙂🙂🙂🙂"), revealed: Binding.constant(false))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getDeletedContentSample(), revealed: Binding.constant(false))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, true, false), revealed: Binding.constant(false))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(1, .directSnd, .now, "🙂", .sndSent, false, false, true), revealed: Binding.constant(true))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, false, false, true), revealed: Binding.constant(true))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, itemDeleted: .deleted), revealed: Binding.constant(false))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(1, .directSnd, .now, "🙂", .sndSent, itemLive: true), revealed: Binding.constant(true))
|
||||
ChatItemView(chatInfo: ChatInfo.sampleData.direct, chatItem: ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, itemLive: true), revealed: Binding.constant(true))
|
||||
}
|
||||
.previewLayout(.fixed(width: 360, height: 70))
|
||||
.environmentObject(Chat.sampleData)
|
||||
@@ -123,7 +125,7 @@ struct ChatItemView_NonMsgContentDeleted_Previews: PreviewProvider {
|
||||
chatInfo: ChatInfo.sampleData.direct,
|
||||
chatItem: ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "1 skipped message", .rcvRead, true, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "1 skipped message", .rcvRead, itemDeleted: .deleted),
|
||||
content: .rcvIntegrityError(msgError: .msgSkipped(fromMsgId: 1, toMsgId: 2)),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -134,7 +136,7 @@ struct ChatItemView_NonMsgContentDeleted_Previews: PreviewProvider {
|
||||
chatInfo: ChatInfo.sampleData.direct,
|
||||
chatItem: ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "received invitation to join group team as admin", .rcvRead, true, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "received invitation to join group team as admin", .rcvRead, itemDeleted: .deleted),
|
||||
content: .rcvGroupInvitation(groupInvitation: CIGroupInvitation.getSample(status: .pending), memberRole: .admin),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -145,7 +147,7 @@ struct ChatItemView_NonMsgContentDeleted_Previews: PreviewProvider {
|
||||
chatInfo: ChatInfo.sampleData.direct,
|
||||
chatItem: ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "group event text", .rcvRead, true, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "group event text", .rcvRead, itemDeleted: .deleted),
|
||||
content: .rcvGroupEvent(rcvGroupEvent: .memberAdded(groupMemberId: 1, profile: Profile.sampleData)),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -156,7 +158,7 @@ struct ChatItemView_NonMsgContentDeleted_Previews: PreviewProvider {
|
||||
chatInfo: ChatInfo.sampleData.direct,
|
||||
chatItem: ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, ciFeatureContent.text, .rcvRead, true, false, false),
|
||||
meta: CIMeta.getSample(1, .now, ciFeatureContent.text, .rcvRead, itemDeleted: .deleted),
|
||||
content: ciFeatureContent,
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
|
||||
@@ -16,6 +16,7 @@ struct ChatView: View {
|
||||
@EnvironmentObject var chatModel: ChatModel
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
@Environment(\.dismiss) var dismiss
|
||||
@Environment(\.presentationMode) var presentationMode
|
||||
@State @ObservedObject var chat: Chat
|
||||
@State private var showChatInfoSheet: Bool = false
|
||||
@State private var showAddMembersSheet: Bool = false
|
||||
@@ -77,7 +78,7 @@ struct ChatView: View {
|
||||
if chatModel.chatId == nil { dismiss() }
|
||||
}
|
||||
.onDisappear {
|
||||
if chatModel.chatId == cInfo.id {
|
||||
if chatModel.chatId == cInfo.id && !presentationMode.wrappedValue.isPresented {
|
||||
chatModel.chatId = nil
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.35) {
|
||||
if chatModel.chatId == nil {
|
||||
@@ -465,8 +466,8 @@ struct ChatView: View {
|
||||
|
||||
private func menu(live: Bool) -> [UIAction] {
|
||||
var menu: [UIAction] = []
|
||||
if let mc = ci.content.msgContent, !ci.meta.itemDeleted || revealed {
|
||||
if !ci.meta.itemDeleted && !ci.isLiveDummy && !live {
|
||||
if let mc = ci.content.msgContent, ci.meta.itemDeleted == nil || revealed {
|
||||
if ci.meta.itemDeleted == nil && !ci.isLiveDummy && !live {
|
||||
menu.append(replyUIAction())
|
||||
}
|
||||
menu.append(shareUIAction())
|
||||
@@ -491,7 +492,7 @@ struct ChatView: View {
|
||||
if !live || !ci.meta.isLive {
|
||||
menu.append(deleteUIAction())
|
||||
}
|
||||
} else if ci.meta.itemDeleted {
|
||||
} else if ci.meta.itemDeleted != nil {
|
||||
menu.append(revealUIAction())
|
||||
menu.append(deleteUIAction())
|
||||
} else if ci.isDeletedContent {
|
||||
|
||||
@@ -151,8 +151,8 @@ struct ChatPreviewView: View {
|
||||
}
|
||||
|
||||
func chatItemPreview(_ cItem: ChatItem) -> Text {
|
||||
let itemText = !cItem.meta.itemDeleted ? cItem.text : NSLocalizedString("marked deleted", comment: "marked deleted chat item preview text")
|
||||
let itemFormattedText = !cItem.meta.itemDeleted ? cItem.formattedText : nil
|
||||
let itemText = cItem.meta.itemDeleted == nil ? cItem.text : NSLocalizedString("marked deleted", comment: "marked deleted chat item preview text")
|
||||
let itemFormattedText = cItem.meta.itemDeleted == nil ? cItem.formattedText : nil
|
||||
return messageText(itemText, itemFormattedText, cItem.memberDisplayName, icon: attachment(), preview: true)
|
||||
|
||||
func attachment() -> String? {
|
||||
@@ -259,7 +259,7 @@ struct ChatPreviewView_Previews: PreviewProvider {
|
||||
))
|
||||
ChatPreviewView(chat: Chat(
|
||||
chatInfo: ChatInfo.sampleData.direct,
|
||||
chatItems: [ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, true, false)]
|
||||
chatItems: [ChatItem.getSample(1, .directSnd, .now, "hello", .sndSent, itemDeleted: .deleted)]
|
||||
))
|
||||
ChatPreviewView(chat: Chat(
|
||||
chatInfo: ChatInfo.sampleData.direct,
|
||||
|
||||
@@ -15,6 +15,16 @@ enum LAResult {
|
||||
case unavailable(authError: String?)
|
||||
}
|
||||
|
||||
func authorize(_ text: String, _ authorized: Binding<Bool>) {
|
||||
authenticate(reason: text) { laResult in
|
||||
switch laResult {
|
||||
case .success: authorized.wrappedValue = true
|
||||
case .unavailable: authorized.wrappedValue = true
|
||||
case .failed: authorized.wrappedValue = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func authenticate(reason: String, completed: @escaping (LAResult) -> Void) {
|
||||
let laContext = LAContext()
|
||||
var authAvailabilityError: NSError?
|
||||
|
||||
@@ -30,17 +30,42 @@ struct MutableQRCode: View {
|
||||
|
||||
struct QRCode: View {
|
||||
let uri: String
|
||||
@State private var image: UIImage?
|
||||
var withLogo: Bool = true
|
||||
var tintColor = UIColor(red: 0.023, green: 0.176, blue: 0.337, alpha: 1)
|
||||
@State private var image: UIImage? = nil
|
||||
@State private var makeScreenshotBinding: () -> Void = {}
|
||||
|
||||
var body: some View {
|
||||
ZStack {
|
||||
if let image = image {
|
||||
qrCodeImage(image)
|
||||
}
|
||||
GeometryReader { geo in
|
||||
ZStack {
|
||||
if withLogo {
|
||||
let w = geo.size.width
|
||||
Image("icon-light")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: w * 0.16, height: w * 0.16)
|
||||
.frame(width: w * 0.165, height: w * 0.165)
|
||||
.background(.white)
|
||||
.clipShape(Circle())
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
makeScreenshotBinding = {
|
||||
let size = CGSizeMake(1024 / UIScreen.main.scale, 1024 / UIScreen.main.scale)
|
||||
showShareSheet(items: [makeScreenshot(geo.frame(in: .local).origin, size)])}
|
||||
}
|
||||
.frame(width: geo.size.width, height: geo.size.height)
|
||||
}
|
||||
}
|
||||
.onTapGesture(perform: makeScreenshotBinding)
|
||||
.onAppear {
|
||||
image = image ?? generateImage(uri)
|
||||
image = image ?? generateImage(uri)?.replaceColor(UIColor.black, tintColor)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +88,20 @@ private func generateImage(_ uri: String) -> UIImage? {
|
||||
return nil
|
||||
}
|
||||
|
||||
extension View {
|
||||
func makeScreenshot(_ origin: CGPoint? = nil, _ targetSize: CGSize? = nil) -> UIImage {
|
||||
let controller = UIHostingController(rootView: self.edgesIgnoringSafeArea(.all))
|
||||
let targetSize = targetSize ?? controller.view.intrinsicContentSize
|
||||
let view = controller.view
|
||||
view?.bounds = CGRect(origin: origin ?? .zero, size: targetSize)
|
||||
view?.backgroundColor = .clear
|
||||
let renderer = UIGraphicsImageRenderer(size: targetSize)
|
||||
return renderer.image { _ in
|
||||
view?.drawHierarchy(in: controller.view.bounds, afterScreenUpdates: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct QRCode_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
QRCode(uri: "https://simplex.chat/invitation#/?v=1&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FFe5ICmvrm4wkrr6X1LTMii-lhBqLeB76%23MCowBQYDK2VuAyEAdhZZsHpuaAk3Hh1q0uNb_6hGTpuwBIrsp2z9U2T0oC0%3D&e2e=v%3D1%26x3dh%3DMEIwBQYDK2VvAzkAcz6jJk71InuxA0bOX7OUhddfB8Ov7xwQIlIDeXBRZaOntUU4brU5Y3rBzroZBdQJi0FKdtt_D7I%3D%2CMEIwBQYDK2VvAzkA-hDvk1duBi1hlOr08VWSI-Ou4JNNSQjseY69QyKm7Kgg1zZjbpGfyBqSZ2eqys6xtoV4ZtoQUXQ%3D")
|
||||
|
||||
@@ -30,15 +30,7 @@ struct TerminalView: View {
|
||||
}
|
||||
}
|
||||
|
||||
private func runAuth() {
|
||||
authenticate(reason: NSLocalizedString("Open chat console", comment: "authentication reason")) { laResult in
|
||||
switch laResult {
|
||||
case .success: authorized = true
|
||||
case .unavailable: authorized = true
|
||||
case .failed: authorized = false
|
||||
}
|
||||
}
|
||||
}
|
||||
private func runAuth() { authorize(NSLocalizedString("Open chat console", comment: "authentication reason"), $authorized) }
|
||||
|
||||
private func terminalView() -> some View {
|
||||
VStack {
|
||||
|
||||
@@ -121,7 +121,6 @@ struct SettingsView: View {
|
||||
|
||||
NavigationLink {
|
||||
UserProfilesView()
|
||||
.navigationTitle("Your chat profiles")
|
||||
} label: {
|
||||
settingsRow("person.crop.rectangle.stack") { Text("Your chat profiles") }
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ struct UserProfilesView: View {
|
||||
@State private var showDeleteConfirmation = false
|
||||
@State private var userToDelete: Int?
|
||||
@State private var alert: UserProfilesAlert?
|
||||
@State var authorized = !UserDefaults.standard.bool(forKey: DEFAULT_PERFORM_LA)
|
||||
|
||||
private enum UserProfilesAlert: Identifiable {
|
||||
case deleteUser(index: Int, delSMPQueues: Bool)
|
||||
@@ -28,6 +29,17 @@ struct UserProfilesView: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
if authorized {
|
||||
userProfilesView()
|
||||
} else {
|
||||
Button(action: runAuth) { Label("Unlock", systemImage: "lock") }
|
||||
.onAppear(perform: runAuth)
|
||||
}
|
||||
}
|
||||
|
||||
private func runAuth() { authorize(NSLocalizedString("Open user profiles", comment: "authentication reason"), $authorized) }
|
||||
|
||||
private func userProfilesView() -> some View {
|
||||
List {
|
||||
Section {
|
||||
ForEach(m.users) { u in
|
||||
@@ -52,6 +64,7 @@ struct UserProfilesView: View {
|
||||
}
|
||||
}
|
||||
.toolbar { EditButton() }
|
||||
.navigationTitle("Your chat profiles")
|
||||
.confirmationDialog("Delete chat profile?", isPresented: $showDeleteConfirmation, titleVisibility: .visible) {
|
||||
deleteModeButton("Profile and server connections", true)
|
||||
deleteModeButton("Local profile data only", false)
|
||||
|
||||
3606
apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff
Normal file
3606
apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2380,6 +2380,10 @@ Wir werden Serverredundanzen hinzufügen, um verloren gegangene Nachrichten zu v
|
||||
<target>Chat-Konsole öffnen</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open user profiles" xml:space="preserve">
|
||||
<source>Open user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open-source protocol and code – anybody can run the servers." xml:space="preserve">
|
||||
<source>Open-source protocol and code – anybody can run the servers.</source>
|
||||
<target>Open-Source-Protokoll und -Code – Jede Person kann ihre eigenen Server aufsetzen und nutzen.</target>
|
||||
@@ -4228,6 +4232,10 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
|
||||
<target>Anruf verpasst</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="moderated" xml:space="preserve">
|
||||
<source>moderated</source>
|
||||
<note>moderated chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="never" xml:space="preserve">
|
||||
<source>never</source>
|
||||
<target>nie</target>
|
||||
|
||||
@@ -2380,6 +2380,11 @@ We will be adding server redundancy to prevent lost messages.</target>
|
||||
<target>Open chat console</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open user profiles" xml:space="preserve">
|
||||
<source>Open user profiles</source>
|
||||
<target>Open user profiles</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open-source protocol and code – anybody can run the servers." xml:space="preserve">
|
||||
<source>Open-source protocol and code – anybody can run the servers.</source>
|
||||
<target>Open-source protocol and code – anybody can run the servers.</target>
|
||||
@@ -4228,6 +4233,11 @@ SimpleX servers cannot see your profile.</target>
|
||||
<target>missed call</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="moderated" xml:space="preserve">
|
||||
<source>moderated</source>
|
||||
<target>moderated</target>
|
||||
<note>moderated chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="never" xml:space="preserve">
|
||||
<source>never</source>
|
||||
<target>never</target>
|
||||
|
||||
@@ -2072,7 +2072,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message
|
||||
</trans-unit>
|
||||
<trans-unit id="Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" xml:space="preserve">
|
||||
<source>Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*</source>
|
||||
<target>Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages ?*</target>
|
||||
<target>Beaucoup se demandent : *si SimpleX n'a pas d'identifiant d'utilisateur, comment peut-il délivrer des messages ?*</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Mark deleted for everyone" xml:space="preserve">
|
||||
@@ -2380,6 +2380,10 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message
|
||||
<target>Ouvrir la console du chat</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open user profiles" xml:space="preserve">
|
||||
<source>Open user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open-source protocol and code – anybody can run the servers." xml:space="preserve">
|
||||
<source>Open-source protocol and code – anybody can run the servers.</source>
|
||||
<target>Protocole et code open-source – n'importe qui peut heberger un serveur.</target>
|
||||
@@ -4228,6 +4232,10 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
|
||||
<target>appel manqué</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="moderated" xml:space="preserve">
|
||||
<source>moderated</source>
|
||||
<note>moderated chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="never" xml:space="preserve">
|
||||
<source>never</source>
|
||||
<target>jamais</target>
|
||||
|
||||
@@ -5,121 +5,151 @@
|
||||
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="14.0" build-num="14A309"/>
|
||||
</header>
|
||||
<body>
|
||||
<trans-unit id=" " xml:space="preserve">
|
||||
<trans-unit id=" " xml:space="preserve" approved="no">
|
||||
<source>
|
||||
</source>
|
||||
<target state="translated">
|
||||
</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id=" " xml:space="preserve">
|
||||
<trans-unit id=" " xml:space="preserve" approved="no">
|
||||
<source> </source>
|
||||
<target state="translated"> </target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id=" " xml:space="preserve">
|
||||
<trans-unit id=" " xml:space="preserve" approved="no">
|
||||
<source> </source>
|
||||
<target state="translated"> </target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id=" " xml:space="preserve">
|
||||
<trans-unit id=" " xml:space="preserve" approved="no">
|
||||
<source> </source>
|
||||
<target state="translated"> </target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id=" (" xml:space="preserve">
|
||||
<trans-unit id=" (" xml:space="preserve" approved="no">
|
||||
<source> (</source>
|
||||
<target state="translated"> (</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id=" (can be copied)" xml:space="preserve">
|
||||
<trans-unit id=" (can be copied)" xml:space="preserve" approved="no">
|
||||
<source> (can be copied)</source>
|
||||
<target state="translated"> (može se kopirati)</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="!1 colored!" xml:space="preserve">
|
||||
<trans-unit id="!1 colored!" xml:space="preserve" approved="no">
|
||||
<source>!1 colored!</source>
|
||||
<target state="translated">!1 u boji!</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="#secret#" xml:space="preserve">
|
||||
<trans-unit id="#secret#" xml:space="preserve" approved="no">
|
||||
<source>#secret#</source>
|
||||
<target state="translated">#tajna#</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@" xml:space="preserve">
|
||||
<trans-unit id="%@" xml:space="preserve" approved="no">
|
||||
<source>%@</source>
|
||||
<target state="translated">%@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ %@" xml:space="preserve">
|
||||
<trans-unit id="%@ %@" xml:space="preserve" approved="no">
|
||||
<source>%@ %@</source>
|
||||
<target state="translated">%@ %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ / %@" xml:space="preserve">
|
||||
<trans-unit id="%@ / %@" xml:space="preserve" approved="no">
|
||||
<source>%@ / %@</source>
|
||||
<target state="translated">%@ / %@</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ is connected!" xml:space="preserve">
|
||||
<trans-unit id="%@ is connected!" xml:space="preserve" approved="no">
|
||||
<source>%@ is connected!</source>
|
||||
<target state="needs-translation">%@ je povezan!</target>
|
||||
<note>notification title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ is not verified" xml:space="preserve">
|
||||
<trans-unit id="%@ is not verified" xml:space="preserve" approved="no">
|
||||
<source>%@ is not verified</source>
|
||||
<target state="translated">%@ nije verificiran</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ is verified" xml:space="preserve">
|
||||
<trans-unit id="%@ is verified" xml:space="preserve" approved="no">
|
||||
<source>%@ is verified</source>
|
||||
<target state="translated">%@ je verificiran</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%@ wants to connect!" xml:space="preserve">
|
||||
<trans-unit id="%@ wants to connect!" xml:space="preserve" approved="no">
|
||||
<source>%@ wants to connect!</source>
|
||||
<target state="needs-translation">%@ se želi povezati!</target>
|
||||
<note>notification title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%d days" xml:space="preserve">
|
||||
<trans-unit id="%d days" xml:space="preserve" approved="no">
|
||||
<source>%d days</source>
|
||||
<target state="needs-translation">%d dana</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%d hours" xml:space="preserve">
|
||||
<trans-unit id="%d hours" xml:space="preserve" approved="no">
|
||||
<source>%d hours</source>
|
||||
<target state="needs-translation">%d sati</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%d min" xml:space="preserve">
|
||||
<trans-unit id="%d min" xml:space="preserve" approved="no">
|
||||
<source>%d min</source>
|
||||
<target state="needs-translation">%d min</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%d months" xml:space="preserve">
|
||||
<trans-unit id="%d months" xml:space="preserve" approved="no">
|
||||
<source>%d months</source>
|
||||
<target state="needs-translation">%d mjeseci</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%d sec" xml:space="preserve">
|
||||
<trans-unit id="%d sec" xml:space="preserve" approved="no">
|
||||
<source>%d sec</source>
|
||||
<target state="needs-translation">%d s</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%d skipped message(s)" xml:space="preserve">
|
||||
<trans-unit id="%d skipped message(s)" xml:space="preserve" approved="no">
|
||||
<source>%d skipped message(s)</source>
|
||||
<target state="needs-translation">%d preskočena poruka(e)</target>
|
||||
<note>integrity error chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld" xml:space="preserve">
|
||||
<source>%lld</source>
|
||||
<target></target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld %@" xml:space="preserve">
|
||||
<source>%lld %@</source>
|
||||
<target></target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld contact(s) selected" xml:space="preserve">
|
||||
<trans-unit id="%lld contact(s) selected" xml:space="preserve" approved="no">
|
||||
<source>%lld contact(s) selected</source>
|
||||
<target state="needs-translation">Odabrano je %lld kontakata</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld file(s) with total size of %@" xml:space="preserve">
|
||||
<trans-unit id="%lld file(s) with total size of %@" xml:space="preserve" approved="no">
|
||||
<source>%lld file(s) with total size of %@</source>
|
||||
<target state="needs-translation">%lld datoteka ukupne veličine % @</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld members" xml:space="preserve">
|
||||
<trans-unit id="%lld members" xml:space="preserve" approved="no">
|
||||
<source>%lld members</source>
|
||||
<target state="needs-translation">%lld članova</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lld second(s)" xml:space="preserve">
|
||||
<trans-unit id="%lld second(s)" xml:space="preserve" approved="no">
|
||||
<source>%lld second(s)</source>
|
||||
<target state="needs-translation">%lld sekundi</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lldd" xml:space="preserve">
|
||||
<source>%lldd</source>
|
||||
<target></target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lldh" xml:space="preserve">
|
||||
<source>%lldh</source>
|
||||
<target></target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lldk" xml:space="preserve">
|
||||
@@ -128,6 +158,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="%lldm" xml:space="preserve">
|
||||
<source>%lldm</source>
|
||||
<target></target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="%lldmth" xml:space="preserve">
|
||||
@@ -150,146 +181,182 @@
|
||||
<source>)</source>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</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" approved="no">
|
||||
<source>**Add new contact**: to create your one-time QR Code or link for your contact.</source>
|
||||
<target state="needs-translation">**Dodajte novi kontakt**: da biste stvorili svoj jednokratni QR kôd ili vezu za svoj kontakt.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="**Create link / QR code** for your contact to use." xml:space="preserve">
|
||||
<trans-unit id="**Create link / QR code** for your contact to use." xml:space="preserve" approved="no">
|
||||
<source>**Create link / QR code** for your contact to use.</source>
|
||||
<target state="needs-translation">**Stvorite vezu / QR kôd** za vaš kontakt.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</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" approved="no">
|
||||
<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 state="needs-translation">**Privatnije**: provjeravajte nove poruke svakih 20 minuta. Token uređaja dijeli se s SimpleX Chat poslužiteljem, ali ne i s brojem kontakata ili poruka koje imate.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</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" approved="no">
|
||||
<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 state="needs-translation">**Najprivatniji**: nemojte koristiti SimpleX Chat poslužitelj obavijesti, povremeno provjeravajte poruke u pozadini (ovisi o tome koliko često koristite aplikaciju).</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="**Paste received link** or open it in the browser and tap **Open in mobile app**." xml:space="preserve">
|
||||
<trans-unit id="**Paste received link** or open it in the browser and tap **Open in mobile app**." xml:space="preserve" approved="no">
|
||||
<source>**Paste received link** or open it in the browser and tap **Open in mobile app**.</source>
|
||||
<target state="needs-translation">**Zalijepi primljenu vezu** ili je otvorite u pregledniku i dodirnite **Otvori u mobilnoj aplikaciji**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</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" approved="no">
|
||||
<source>**Please note**: you will NOT be able to recover or change passphrase if you lose it.</source>
|
||||
<target state="needs-translation">**Imajte na umu**: NEĆETE moći oporaviti ili promijeniti pristupni izraz ako ga izgubite.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</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" approved="no">
|
||||
<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 state="needs-translation">**Preporučeno**: token uređaja i obavijesti šalju se na poslužitelj obavijesti SimpleX Chata, ali ne i sadržaj poruke, veličinu ili od koga je.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="**Scan QR code**: to connect to your contact in person or via video call." xml:space="preserve">
|
||||
<trans-unit id="**Scan QR code**: to connect to your contact in person or via video call." xml:space="preserve" approved="no">
|
||||
<source>**Scan QR code**: to connect to your contact in person or via video call.</source>
|
||||
<target state="needs-translation">**Skenirajte QR kôd**: da biste se osobno povezali s kontaktom ili putem videopoziva.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</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" approved="no">
|
||||
<source>**Warning**: Instant push notifications require passphrase saved in Keychain.</source>
|
||||
<target state="needs-translation">**Upozorenje**: Za automatske push obavijesti potreban je pristupni izraz spremljen u privjesku ključeva.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve">
|
||||
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve" approved="no">
|
||||
<source>**e2e encrypted** audio call</source>
|
||||
<target state="needs-translation">**e2e šifrirani** audiopoziv</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="**e2e encrypted** video call" xml:space="preserve">
|
||||
<trans-unit id="**e2e encrypted** video call" xml:space="preserve" approved="no">
|
||||
<source>**e2e encrypted** video call</source>
|
||||
<target state="needs-translation">**e2e šifrirani** videopoziv</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="*bold*" xml:space="preserve">
|
||||
<trans-unit id="*bold*" xml:space="preserve" approved="no">
|
||||
<source>\*bold*</source>
|
||||
<target state="needs-translation">\*podebljano*</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id=", " xml:space="preserve">
|
||||
<trans-unit id=", " xml:space="preserve" approved="no">
|
||||
<source>, </source>
|
||||
<target state="translated">, </target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="." xml:space="preserve">
|
||||
<trans-unit id="." xml:space="preserve" approved="no">
|
||||
<source>.</source>
|
||||
<target state="translated">.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="1 day" xml:space="preserve">
|
||||
<trans-unit id="1 day" xml:space="preserve" approved="no">
|
||||
<source>1 day</source>
|
||||
<target state="needs-translation">1 dan</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="1 hour" xml:space="preserve">
|
||||
<trans-unit id="1 hour" xml:space="preserve" approved="no">
|
||||
<source>1 hour</source>
|
||||
<target state="needs-translation">1 sat</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="1 month" xml:space="preserve">
|
||||
<trans-unit id="1 month" xml:space="preserve" approved="no">
|
||||
<source>1 month</source>
|
||||
<target state="needs-translation">1 mjesec</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="1 week" xml:space="preserve">
|
||||
<trans-unit id="1 week" xml:space="preserve" approved="no">
|
||||
<source>1 week</source>
|
||||
<target state="needs-translation">1 tjedan</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="2 weeks" xml:space="preserve">
|
||||
<trans-unit id="2 weeks" xml:space="preserve" approved="no">
|
||||
<source>2 weeks</source>
|
||||
<target state="needs-translation">2 tjedna</target>
|
||||
<note>message ttl</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="6" xml:space="preserve">
|
||||
<trans-unit id="6" xml:space="preserve" approved="no">
|
||||
<source>6</source>
|
||||
<target state="translated">6</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id=": " xml:space="preserve">
|
||||
<trans-unit id=": " xml:space="preserve" approved="no">
|
||||
<source>: </source>
|
||||
<target state="translated">: </target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A new contact" xml:space="preserve">
|
||||
<trans-unit id="A new contact" xml:space="preserve" approved="no">
|
||||
<source>A new contact</source>
|
||||
<target state="needs-translation">Novi kontakt</target>
|
||||
<note>notification title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A random profile will be sent to the contact that you received this link from" xml:space="preserve">
|
||||
<trans-unit id="A random profile will be sent to the contact that you received this link from" xml:space="preserve" approved="no">
|
||||
<source>A random profile will be sent to the contact that you received this link from</source>
|
||||
<target state="needs-translation">Slučajni profil bit će poslan kontaktu od kojeg ste primili ovu vezu</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A random profile will be sent to your contact" xml:space="preserve">
|
||||
<trans-unit id="A random profile will be sent to your contact" xml:space="preserve" approved="no">
|
||||
<source>A random profile will be sent to your contact</source>
|
||||
<target state="needs-translation">Slučajni profil bit će poslan vašem kontaktu</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A separate TCP connection will be used **for each chat profile you have in the app**." xml:space="preserve">
|
||||
<trans-unit id="A separate TCP connection will be used **for each chat profile you have in the app**." xml:space="preserve" approved="no">
|
||||
<source>A separate TCP connection will be used **for each chat profile you have in the app**.</source>
|
||||
<target state="needs-translation">Koristit će se zasebna TCP veza **za svaki profil chata koji imate u aplikaciji**.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="A separate TCP connection will be used **for each contact and group member**. **Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." xml:space="preserve">
|
||||
<trans-unit id="A separate TCP connection will be used **for each contact and group member**. **Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." xml:space="preserve" approved="no">
|
||||
<source>A separate TCP connection will be used **for each contact and group member**.
|
||||
**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail.</source>
|
||||
<target state="needs-translation">Koristit će se zasebna TCP veza **za svakog kontakta i člana grupe**.
|
||||
**Imajte na umu**: ako imate mnogo priključaka, potrošnja baterije i prometa može biti znatno veća, a neke veze mogu propasti.</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About SimpleX" xml:space="preserve">
|
||||
<trans-unit id="About SimpleX" xml:space="preserve" approved="no">
|
||||
<source>About SimpleX</source>
|
||||
<target state="needs-translation">O SimpleX-u</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="About SimpleX Chat" xml:space="preserve">
|
||||
<trans-unit id="About SimpleX Chat" xml:space="preserve" approved="no">
|
||||
<source>About SimpleX Chat</source>
|
||||
<target state="translated">O SimpleX chatu</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accent color" xml:space="preserve">
|
||||
<trans-unit id="Accent color" xml:space="preserve" approved="no">
|
||||
<source>Accent color</source>
|
||||
<target state="needs-translation">Boja isticanja</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept" xml:space="preserve">
|
||||
<trans-unit id="Accept" xml:space="preserve" approved="no">
|
||||
<source>Accept</source>
|
||||
<target state="needs-translation">Prihvatiti</target>
|
||||
<note>accept contact request via notification
|
||||
accept incoming call via notification</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept contact" xml:space="preserve">
|
||||
<trans-unit id="Accept contact" xml:space="preserve" approved="no">
|
||||
<source>Accept contact</source>
|
||||
<target state="needs-translation">Prihvati kontakt</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept contact request from %@?" xml:space="preserve">
|
||||
<trans-unit id="Accept contact request from %@?" xml:space="preserve" approved="no">
|
||||
<source>Accept contact request from %@?</source>
|
||||
<target state="needs-translation">Prihvatite zahtjev za kontakt od %@?</target>
|
||||
<note>notification body</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept incognito" xml:space="preserve">
|
||||
<trans-unit id="Accept incognito" xml:space="preserve" approved="no">
|
||||
<source>Accept incognito</source>
|
||||
<target state="needs-translation">Prihvati anonimno</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Accept requests" xml:space="preserve">
|
||||
<trans-unit id="Accept requests" xml:space="preserve" approved="no">
|
||||
<source>Accept requests</source>
|
||||
<target state="needs-translation">Prihvaćanje zahtjeva</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add preset servers" xml:space="preserve">
|
||||
<trans-unit id="Add preset servers" xml:space="preserve" approved="no">
|
||||
<source>Add preset servers</source>
|
||||
<target state="needs-translation">Dodavanje unaprijed postavljenih poslužitelja</target>
|
||||
<note>No comment provided by engineer.</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Add profile" xml:space="preserve">
|
||||
|
||||
@@ -2380,6 +2380,10 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.</tar
|
||||
<target>Apri la console della chat</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open user profiles" xml:space="preserve">
|
||||
<source>Open user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open-source protocol and code – anybody can run the servers." xml:space="preserve">
|
||||
<source>Open-source protocol and code – anybody can run the servers.</source>
|
||||
<target>Protocollo e codice open source: chiunque può gestire i server.</target>
|
||||
@@ -4228,6 +4232,10 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
|
||||
<target>chiamata persa</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="moderated" xml:space="preserve">
|
||||
<source>moderated</source>
|
||||
<note>moderated chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="never" xml:space="preserve">
|
||||
<source>never</source>
|
||||
<target>mai</target>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"locale" : "nl"
|
||||
}
|
||||
],
|
||||
"properties" : {
|
||||
"localizable" : true
|
||||
},
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"red" : "0.000",
|
||||
"alpha" : "1.000",
|
||||
"blue" : "1.000",
|
||||
"green" : "0.533"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"properties" : {
|
||||
"localizable" : true
|
||||
},
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
/* Bundle display name */
|
||||
"CFBundleDisplayName" = "SimpleX NSE";
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "SimpleX NSE";
|
||||
/* Copyright (human-readable) */
|
||||
"NSHumanReadableCopyright" = "Copyright © 2022 SimpleX Chat. All rights reserved.";
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/* No comment provided by engineer. */
|
||||
"_italic_" = "\\_italic_";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"**Add new contact**: to create your one-time QR Code for your contact." = "**Add new contact**: to create your one-time QR Code or link for your contact.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"*bold*" = "\\*bold*";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"`a + b`" = "\\`a + b`";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"~strike~" = "\\~strike~";
|
||||
|
||||
/* call status */
|
||||
"connecting call" = "connecting call…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting server…" = "Connecting to server…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connecting server… (error: %@)" = "Connecting to server… (error: %@)";
|
||||
|
||||
/* rcv group event chat item */
|
||||
"member connected" = "connected";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No group!" = "Group not found!";
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "SimpleX";
|
||||
/* Privacy - Camera Usage Description */
|
||||
"NSCameraUsageDescription" = "SimpleX needs camera access to scan QR codes to connect to other users and for video calls.";
|
||||
/* Privacy - Face ID Usage Description */
|
||||
"NSFaceIDUsageDescription" = "SimpleX uses Face ID for local authentication";
|
||||
/* Privacy - Microphone Usage Description */
|
||||
"NSMicrophoneUsageDescription" = "SimpleX needs microphone access for audio and video calls, and to record voice messages.";
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "SimpleX needs access to Photo Library for saving captured and received media";
|
||||
12
apps/ios/SimpleX Localizations/nl.xcloc/contents.json
Normal file
12
apps/ios/SimpleX Localizations/nl.xcloc/contents.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"developmentRegion" : "en",
|
||||
"project" : "SimpleX.xcodeproj",
|
||||
"targetLocale" : "nl",
|
||||
"toolInfo" : {
|
||||
"toolBuildNumber" : "14A309",
|
||||
"toolID" : "com.apple.dt.xcode",
|
||||
"toolName" : "Xcode",
|
||||
"toolVersion" : "14.0"
|
||||
},
|
||||
"version" : "1.0"
|
||||
}
|
||||
@@ -2380,6 +2380,10 @@ We will be adding server redundancy to prevent lost messages.</source>
|
||||
<target>Открыть консоль</target>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open user profiles" xml:space="preserve">
|
||||
<source>Open user profiles</source>
|
||||
<note>authentication reason</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="Open-source protocol and code – anybody can run the servers." xml:space="preserve">
|
||||
<source>Open-source protocol and code – anybody can run the servers.</source>
|
||||
<target>Открытый протокол и код - кто угодно может запустить сервер.</target>
|
||||
@@ -4228,6 +4232,10 @@ SimpleX серверы не могут получить доступ к ваше
|
||||
<target>пропущенный звонок</target>
|
||||
<note>call status</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="moderated" xml:space="preserve">
|
||||
<source>moderated</source>
|
||||
<note>moderated chat item</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="never" xml:space="preserve">
|
||||
<source>never</source>
|
||||
<target>никогда</target>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
9
apps/ios/SimpleX NSE/nl.lproj/InfoPlist.strings
Normal file
9
apps/ios/SimpleX NSE/nl.lproj/InfoPlist.strings
Normal file
@@ -0,0 +1,9 @@
|
||||
/* Bundle display name */
|
||||
"CFBundleDisplayName" = "SimpleX NSE";
|
||||
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "SimpleX NSE";
|
||||
|
||||
/* Copyright (human-readable) */
|
||||
"NSHumanReadableCopyright" = "Copyright © 2022 SimpleX Chat. Alle rechten voorbehouden.";
|
||||
|
||||
1
apps/ios/SimpleX NSE/nl.lproj/Localizable.strings
Normal file
1
apps/ios/SimpleX NSE/nl.lproj/Localizable.strings
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
@@ -27,11 +27,6 @@
|
||||
5C116CDC27AABE0400E66D01 /* ContactRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */; };
|
||||
5C13730B28156D2700F43030 /* ContactConnectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C13730A28156D2700F43030 /* ContactConnectionView.swift */; };
|
||||
5C1A4C1E27A715B700EAD5AD /* ChatItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */; };
|
||||
5C1E430B2990650400042FC4 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1E43062990650400042FC4 /* libgmpxx.a */; };
|
||||
5C1E430C2990650400042FC4 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1E43072990650400042FC4 /* libffi.a */; };
|
||||
5C1E430D2990650400042FC4 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1E43082990650400042FC4 /* libgmp.a */; };
|
||||
5C1E430E2990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1E43092990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn-ghc8.10.7.a */; };
|
||||
5C1E430F2990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1E430A2990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn.a */; };
|
||||
5C2E260727A2941F00F70299 /* SimpleXAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260627A2941F00F70299 /* SimpleXAPI.swift */; };
|
||||
5C2E260B27A30CFA00F70299 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260A27A30CFA00F70299 /* ChatListView.swift */; };
|
||||
5C2E260F27A30FDC00F70299 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260E27A30FDC00F70299 /* ChatView.swift */; };
|
||||
@@ -64,6 +59,11 @@
|
||||
5C7505A527B679EE00BE3227 /* NavLinkPlain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C7505A427B679EE00BE3227 /* NavLinkPlain.swift */; };
|
||||
5C7505A827B6D34800BE3227 /* ChatInfoToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C7505A727B6D34800BE3227 /* ChatInfoToolbar.swift */; };
|
||||
5C764E89279CBCB3000C6508 /* ChatModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C764E88279CBCB3000C6508 /* ChatModel.swift */; };
|
||||
5C84FE9A29A2520600D95B1A /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C84FE9529A2520600D95B1A /* libgmp.a */; };
|
||||
5C84FE9B29A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C84FE9629A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN-ghc8.10.7.a */; };
|
||||
5C84FE9C29A2520600D95B1A /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C84FE9729A2520600D95B1A /* libffi.a */; };
|
||||
5C84FE9D29A2520600D95B1A /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C84FE9829A2520600D95B1A /* libgmpxx.a */; };
|
||||
5C84FE9E29A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C84FE9929A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN.a */; };
|
||||
5C8F01CD27A6F0D8007D2C8D /* CodeScanner in Frameworks */ = {isa = PBXBuildFile; productRef = 5C8F01CC27A6F0D8007D2C8D /* CodeScanner */; };
|
||||
5C93292F29239A170090FFF9 /* SMPServersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C93292E29239A170090FFF9 /* SMPServersView.swift */; };
|
||||
5C93293129239BED0090FFF9 /* SMPServerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C93293029239BED0090FFF9 /* SMPServerView.swift */; };
|
||||
@@ -246,11 +246,6 @@
|
||||
5C13730A28156D2700F43030 /* ContactConnectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactConnectionView.swift; sourceTree = "<group>"; };
|
||||
5C13730C2815740A00F43030 /* DebugJSON.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = DebugJSON.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
|
||||
5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemView.swift; sourceTree = "<group>"; };
|
||||
5C1E43062990650400042FC4 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
5C1E43072990650400042FC4 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
5C1E43082990650400042FC4 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
5C1E43092990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn-ghc8.10.7.a"; sourceTree = "<group>"; };
|
||||
5C1E430A2990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn.a"; sourceTree = "<group>"; };
|
||||
5C2E260627A2941F00F70299 /* SimpleXAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleXAPI.swift; sourceTree = "<group>"; };
|
||||
5C2E260A27A30CFA00F70299 /* ChatListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListView.swift; sourceTree = "<group>"; };
|
||||
5C2E260E27A30FDC00F70299 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = "<group>"; };
|
||||
@@ -285,6 +280,15 @@
|
||||
5C7505A427B679EE00BE3227 /* NavLinkPlain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavLinkPlain.swift; sourceTree = "<group>"; };
|
||||
5C7505A727B6D34800BE3227 /* ChatInfoToolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatInfoToolbar.swift; sourceTree = "<group>"; };
|
||||
5C764E88279CBCB3000C6508 /* ChatModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatModel.swift; sourceTree = "<group>"; };
|
||||
5C84FE9129A216C800D95B1A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
5C84FE9229A216C800D95B1A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
5C84FE9329A2179C00D95B1A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = "nl.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = "<group>"; };
|
||||
5C84FE9429A2179C00D95B1A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
5C84FE9529A2520600D95B1A /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
|
||||
5C84FE9629A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN-ghc8.10.7.a"; sourceTree = "<group>"; };
|
||||
5C84FE9729A2520600D95B1A /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
|
||||
5C84FE9829A2520600D95B1A /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
|
||||
5C84FE9929A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN.a"; sourceTree = "<group>"; };
|
||||
5C93292E29239A170090FFF9 /* SMPServersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SMPServersView.swift; sourceTree = "<group>"; };
|
||||
5C93293029239BED0090FFF9 /* SMPServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SMPServerView.swift; sourceTree = "<group>"; };
|
||||
5C93293E2928E0FD0090FFF9 /* AudioRecPlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioRecPlay.swift; sourceTree = "<group>"; };
|
||||
@@ -432,13 +436,13 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5C1E430B2990650400042FC4 /* libgmpxx.a in Frameworks */,
|
||||
5C1E430D2990650400042FC4 /* libgmp.a in Frameworks */,
|
||||
5C1E430E2990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn-ghc8.10.7.a in Frameworks */,
|
||||
5C1E430F2990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn.a in Frameworks */,
|
||||
5C84FE9D29A2520600D95B1A /* libgmpxx.a in Frameworks */,
|
||||
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
|
||||
5C84FE9A29A2520600D95B1A /* libgmp.a in Frameworks */,
|
||||
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
|
||||
5C1E430C2990650400042FC4 /* libffi.a in Frameworks */,
|
||||
5C84FE9C29A2520600D95B1A /* libffi.a in Frameworks */,
|
||||
5C84FE9B29A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN-ghc8.10.7.a in Frameworks */,
|
||||
5C84FE9E29A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -496,11 +500,11 @@
|
||||
5C764E5C279C70B7000C6508 /* Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5C1E43072990650400042FC4 /* libffi.a */,
|
||||
5C1E43082990650400042FC4 /* libgmp.a */,
|
||||
5C1E43062990650400042FC4 /* libgmpxx.a */,
|
||||
5C1E43092990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn-ghc8.10.7.a */,
|
||||
5C1E430A2990650400042FC4 /* libHSsimplex-chat-4.5.1.0-DvV3IH6KL6RG02Gg2E0cGn.a */,
|
||||
5C84FE9729A2520600D95B1A /* libffi.a */,
|
||||
5C84FE9529A2520600D95B1A /* libgmp.a */,
|
||||
5C84FE9829A2520600D95B1A /* libgmpxx.a */,
|
||||
5C84FE9629A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN-ghc8.10.7.a */,
|
||||
5C84FE9929A2520600D95B1A /* libHSsimplex-chat-4.5.3.0-GcaIy3Rt9ti6mEyNPF1mSN.a */,
|
||||
);
|
||||
path = Libraries;
|
||||
sourceTree = "<group>";
|
||||
@@ -907,6 +911,7 @@
|
||||
de,
|
||||
fr,
|
||||
it,
|
||||
nl,
|
||||
);
|
||||
mainGroup = 5CA059BD279559F40002BEB4;
|
||||
packageReferences = (
|
||||
@@ -1162,6 +1167,7 @@
|
||||
5CE1330428E118CC00FFFD8C /* de */,
|
||||
5CBD285829565D2600EC2CF4 /* fr */,
|
||||
5CA85D0D297219EF0095AF72 /* it */,
|
||||
5C84FE9429A2179C00D95B1A /* nl */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1174,6 +1180,7 @@
|
||||
5CB2085528DE647400D024EC /* de */,
|
||||
5CBD285629565CAE00EC2CF4 /* fr */,
|
||||
5CA85D0B297218AA0095AF72 /* it */,
|
||||
5C84FE9229A216C800D95B1A /* nl */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1186,6 +1193,7 @@
|
||||
5CB2085428DE647400D024EC /* de */,
|
||||
5CBD285529565CAE00EC2CF4 /* fr */,
|
||||
5CA85D0A297218AA0095AF72 /* it */,
|
||||
5C84FE9129A216C800D95B1A /* nl */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1197,6 +1205,7 @@
|
||||
5CE1330328E118CC00FFFD8C /* de */,
|
||||
5CBD285729565D2600EC2CF4 /* fr */,
|
||||
5CA85D0C297219EF0095AF72 /* it */,
|
||||
5C84FE9329A2179C00D95B1A /* nl */,
|
||||
);
|
||||
name = "SimpleX--iOS--InfoPlist.strings";
|
||||
sourceTree = "<group>";
|
||||
@@ -1330,7 +1339,7 @@
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 124;
|
||||
CURRENT_PROJECT_VERSION = 126;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@@ -1351,7 +1360,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 4.5.1;
|
||||
MARKETING_VERSION = 4.5.3;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
|
||||
PRODUCT_NAME = SimpleX;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -1372,7 +1381,7 @@
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 124;
|
||||
CURRENT_PROJECT_VERSION = 126;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@@ -1393,7 +1402,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 4.5.1;
|
||||
MARKETING_VERSION = 4.5.3;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
|
||||
PRODUCT_NAME = SimpleX;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -1451,7 +1460,7 @@
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 124;
|
||||
CURRENT_PROJECT_VERSION = 126;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@@ -1464,7 +1473,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 4.5.1;
|
||||
MARKETING_VERSION = 4.5.3;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -1481,7 +1490,7 @@
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 124;
|
||||
CURRENT_PROJECT_VERSION = 126;
|
||||
DEVELOPMENT_TEAM = 5NN7GUYB6T;
|
||||
ENABLE_BITCODE = NO;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@@ -1494,7 +1503,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 4.5.1;
|
||||
MARKETING_VERSION = 4.5.3;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
|
||||
@@ -1762,6 +1762,8 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
case .sndGroupFeature: return showNtfDir
|
||||
case .rcvChatFeatureRejected: return showNtfDir
|
||||
case .rcvGroupFeatureRejected: return showNtfDir
|
||||
case .sndModerated: return true
|
||||
case .rcvModerated: return true
|
||||
case .invalidJSON: return false
|
||||
}
|
||||
}
|
||||
@@ -1784,10 +1786,10 @@ 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: Bool = false, _ itemEdited: Bool = false, _ itemLive: Bool = false, _ editable: Bool = true) -> ChatItem {
|
||||
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 {
|
||||
ChatItem(
|
||||
chatDir: dir,
|
||||
meta: CIMeta.getSample(id, ts, text, status, itemDeleted, itemEdited, itemLive, editable),
|
||||
meta: CIMeta.getSample(id, ts, text, status, itemDeleted: itemDeleted, itemEdited: itemEdited, itemLive: itemLive, editable: editable),
|
||||
content: .sndMsgContent(msgContent: .text(text)),
|
||||
quotedItem: quotedItem,
|
||||
file: file
|
||||
@@ -1797,7 +1799,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
public static func getVoiceMsgContentSample (id: Int64 = 1, text: String = "", fileName: String = "voice.m4a", fileSize: Int64 = 65536, fileStatus: CIFileStatus = .rcvComplete) -> ChatItem {
|
||||
ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(id, .now, text, .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(id, .now, text, .rcvRead),
|
||||
content: .rcvMsgContent(msgContent: .voice(text: text, duration: 30)),
|
||||
quotedItem: nil,
|
||||
file: CIFile.getSample(fileName: fileName, fileSize: fileSize, fileStatus: fileStatus)
|
||||
@@ -1807,7 +1809,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
public static func getFileMsgContentSample (id: Int64 = 1, text: String = "", fileName: String = "test.txt", fileSize: Int64 = 100, fileStatus: CIFileStatus = .rcvComplete) -> ChatItem {
|
||||
ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(id, .now, text, .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(id, .now, text, .rcvRead),
|
||||
content: .rcvMsgContent(msgContent: .file(text)),
|
||||
quotedItem: nil,
|
||||
file: CIFile.getSample(fileName: fileName, fileSize: fileSize, fileStatus: fileStatus)
|
||||
@@ -1817,7 +1819,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
public static func getDeletedContentSample (_ id: Int64 = 1, dir: CIDirection = .directRcv, _ ts: Date = .now, _ text: String = "this item is deleted", _ status: CIStatus = .rcvRead) -> ChatItem {
|
||||
ChatItem(
|
||||
chatDir: dir,
|
||||
meta: CIMeta.getSample(id, ts, text, status, false, false, false),
|
||||
meta: CIMeta.getSample(id, ts, text, status),
|
||||
content: .rcvDeleted(deleteMode: .cidmBroadcast),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -1827,7 +1829,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
public static func getIntegrityErrorSample (_ status: CIStatus = .rcvRead, fromMsgId: Int64 = 1, toMsgId: Int64 = 2) -> ChatItem {
|
||||
ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "1 skipped message", status, false, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "1 skipped message", status),
|
||||
content: .rcvIntegrityError(msgError: .msgSkipped(fromMsgId: fromMsgId, toMsgId: toMsgId)),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -1837,7 +1839,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
public static func getGroupInvitationSample (_ status: CIGroupInvitationStatus = .pending) -> ChatItem {
|
||||
ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "received invitation to join group team as admin", .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "received invitation to join group team as admin", .rcvRead),
|
||||
content: .rcvGroupInvitation(groupInvitation: CIGroupInvitation.getSample(status: status), memberRole: .admin),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -1847,7 +1849,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
public static func getGroupEventSample () -> ChatItem {
|
||||
ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, "group event text", .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(1, .now, "group event text", .rcvRead),
|
||||
content: .rcvGroupEvent(rcvGroupEvent: .memberAdded(groupMemberId: 1, profile: Profile.sampleData)),
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -1858,7 +1860,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
let content = CIContent.rcvChatFeature(feature: feature, enabled: enabled, param: nil)
|
||||
return ChatItem(
|
||||
chatDir: .directRcv,
|
||||
meta: CIMeta.getSample(1, .now, content.text, .rcvRead, false, false, false),
|
||||
meta: CIMeta.getSample(1, .now, content.text, .rcvRead),
|
||||
content: content,
|
||||
quotedItem: nil,
|
||||
file: nil
|
||||
@@ -1875,7 +1877,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
itemStatus: .rcvRead,
|
||||
createdAt: .now,
|
||||
updatedAt: .now,
|
||||
itemDeleted: false,
|
||||
itemDeleted: nil,
|
||||
itemEdited: false,
|
||||
itemLive: false,
|
||||
editable: false
|
||||
@@ -1896,7 +1898,7 @@ public struct ChatItem: Identifiable, Decodable {
|
||||
itemStatus: .rcvRead,
|
||||
createdAt: .now,
|
||||
updatedAt: .now,
|
||||
itemDeleted: false,
|
||||
itemDeleted: nil,
|
||||
itemEdited: false,
|
||||
itemLive: true,
|
||||
editable: false
|
||||
@@ -1945,7 +1947,7 @@ public struct CIMeta: Decodable {
|
||||
public var itemStatus: CIStatus
|
||||
var createdAt: Date
|
||||
public var updatedAt: Date
|
||||
public var itemDeleted: Bool
|
||||
public var itemDeleted: CIDeleted?
|
||||
public var itemEdited: Bool
|
||||
public var itemTimed: CITimed?
|
||||
public var itemLive: Bool?
|
||||
@@ -1971,7 +1973,7 @@ public struct CIMeta: Decodable {
|
||||
}
|
||||
}
|
||||
|
||||
public static func getSample(_ id: Int64, _ ts: Date, _ text: String, _ status: CIStatus = .sndNew, _ itemDeleted: Bool = false, _ 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, editable: Bool = true) -> CIMeta {
|
||||
CIMeta(
|
||||
itemId: id,
|
||||
itemTs: ts,
|
||||
@@ -1994,7 +1996,7 @@ public struct CIMeta: Decodable {
|
||||
itemStatus: .sndNew,
|
||||
createdAt: .now,
|
||||
updatedAt: .now,
|
||||
itemDeleted: false,
|
||||
itemDeleted: nil,
|
||||
itemEdited: false,
|
||||
itemLive: false,
|
||||
editable: false
|
||||
@@ -2037,6 +2039,18 @@ public enum CIStatus: Decodable {
|
||||
}
|
||||
}
|
||||
|
||||
public enum CIDeleted: Decodable {
|
||||
case deleted
|
||||
case moderated(byGroupMember: GroupMember)
|
||||
|
||||
var id: String {
|
||||
switch self {
|
||||
case .deleted: return "deleted"
|
||||
case .moderated: return "moderated"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum CIDeleteMode: String, Decodable {
|
||||
case cidmBroadcast = "broadcast"
|
||||
case cidmInternal = "internal"
|
||||
@@ -2068,6 +2082,8 @@ public enum CIContent: Decodable, ItemContent {
|
||||
case sndGroupFeature(groupFeature: GroupFeature, preference: GroupPreference, param: Int?)
|
||||
case rcvChatFeatureRejected(feature: ChatFeature)
|
||||
case rcvGroupFeatureRejected(groupFeature: GroupFeature)
|
||||
case sndModerated
|
||||
case rcvModerated
|
||||
case invalidJSON(json: String)
|
||||
|
||||
public var text: String {
|
||||
@@ -2094,6 +2110,8 @@ public enum CIContent: Decodable, ItemContent {
|
||||
case let .sndGroupFeature(feature, preference, param): return CIContent.featureText(feature, preference.enable.text, param)
|
||||
case let .rcvChatFeatureRejected(feature): return String.localizedStringWithFormat("%@: received, prohibited", feature.text)
|
||||
case let .rcvGroupFeatureRejected(groupFeature): return String.localizedStringWithFormat("%@: received, prohibited", groupFeature.text)
|
||||
case .sndModerated: return NSLocalizedString("moderated", comment: "moderated chat item")
|
||||
case .rcvModerated: return NSLocalizedString("moderated", comment: "moderated chat item")
|
||||
case .invalidJSON: return NSLocalizedString("invalid data", comment: "invalid chat item")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,3 +22,5 @@ extern char *chat_recv_msg(chat_ctrl ctl);
|
||||
extern char *chat_recv_msg_wait(chat_ctrl ctl, int wait);
|
||||
extern char *chat_parse_markdown(char *str);
|
||||
extern char *chat_parse_server(char *str);
|
||||
extern void chat_encrypt_media(char *key, char *frame, int len);
|
||||
extern void chat_decrypt_media(char *key, char *frame, int len);
|
||||
|
||||
@@ -1434,7 +1434,7 @@
|
||||
"Make sure WebRTC ICE server addresses are in correct format, line separated and are not duplicated." = "Assurez-vous que les adresses des serveurs WebRTC ICE sont au bon format et ne sont pas dupliquées, un par ligne.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages ?*";
|
||||
"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Beaucoup se demandent : *si SimpleX n'a pas d'identifiant d'utilisateur, comment peut-il délivrer des messages ?*";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Mark deleted for everyone" = "Marquer comme supprimé pour tout le monde";
|
||||
|
||||
2651
apps/ios/nl.lproj/Localizable.strings
Normal file
2651
apps/ios/nl.lproj/Localizable.strings
Normal file
File diff suppressed because it is too large
Load Diff
15
apps/ios/nl.lproj/SimpleX--iOS--InfoPlist.strings
Normal file
15
apps/ios/nl.lproj/SimpleX--iOS--InfoPlist.strings
Normal file
@@ -0,0 +1,15 @@
|
||||
/* Bundle name */
|
||||
"CFBundleName" = "SimpleX";
|
||||
|
||||
/* Privacy - Camera Usage Description */
|
||||
"NSCameraUsageDescription" = "SimpleX heeft cameratoegang nodig om QR-codes te scannen om verbinding te maken met andere gebruikers en voor videogesprekken.";
|
||||
|
||||
/* Privacy - Face ID Usage Description */
|
||||
"NSFaceIDUsageDescription" = "SimpleX gebruikt Face ID voor lokale authenticatie";
|
||||
|
||||
/* Privacy - Microphone Usage Description */
|
||||
"NSMicrophoneUsageDescription" = "SimpleX heeft microfoontoegang nodig voor audio- en video-oproepen en om spraakberichten op te nemen.";
|
||||
|
||||
/* Privacy - Photo Library Additions Usage Description */
|
||||
"NSPhotoLibraryAddUsageDescription" = "SimpleX heeft toegang tot Fotobibliotheek nodig om vastgelegde en ontvangen media op te slaan";
|
||||
|
||||
@@ -28,11 +28,14 @@ main = do
|
||||
welcomeGetOpts :: IO ChatOpts
|
||||
welcomeGetOpts = do
|
||||
appDir <- getAppUserDataDirectory "simplex"
|
||||
opts@ChatOpts {dbFilePrefix} <- getChatOpts appDir "simplex_bot"
|
||||
opts@ChatOpts {coreOptions = CoreChatOpts {dbFilePrefix}} <- getChatOpts appDir "simplex_bot"
|
||||
putStrLn $ "SimpleX Chat Bot v" ++ versionNumber
|
||||
putStrLn $ "db: " <> dbFilePrefix <> "_chat.db, " <> dbFilePrefix <> "_agent.db"
|
||||
pure opts
|
||||
|
||||
welcomeMessage :: String
|
||||
welcomeMessage = "Hello! I am a simple squaring bot.\nIf you send me a number, I will calculate its square"
|
||||
|
||||
mySquaringBot :: User -> ChatController -> IO ()
|
||||
mySquaringBot _user cc = do
|
||||
initializeBotAddress cc
|
||||
@@ -41,14 +44,13 @@ mySquaringBot _user cc = do
|
||||
case resp of
|
||||
CRContactConnected _ contact _ -> do
|
||||
contactConnected contact
|
||||
void . sendMsg contact $ "Hello! I am a simple squaring bot - if you send me a number, I will calculate its square"
|
||||
CRNewChatItem _ (AChatItem _ SMDRcv (DirectChat contact) ChatItem {content}) -> do
|
||||
let msg = T.unpack $ ciContentToText content
|
||||
sendMessage cc contact welcomeMessage
|
||||
CRNewChatItem _ (AChatItem _ SMDRcv (DirectChat contact) ChatItem {content = mc@CIRcvMsgContent {}}) -> do
|
||||
let msg = T.unpack $ ciContentToText mc
|
||||
number_ = readMaybe msg :: Maybe Integer
|
||||
void . sendMsg contact $ case number_ of
|
||||
Nothing -> "\"" <> msg <> "\" is not a number"
|
||||
sendMessage cc contact $ case number_ of
|
||||
Just n -> msg <> " * " <> msg <> " = " <> show (n * n)
|
||||
_ -> "\"" <> msg <> "\" is not a number"
|
||||
_ -> pure ()
|
||||
where
|
||||
sendMsg Contact {contactId} msg = sendChatCmd cc $ "/_send @" <> show contactId <> " text " <> msg
|
||||
contactConnected Contact {localDisplayName} = putStrLn $ T.unpack localDisplayName <> " connected"
|
||||
|
||||
13
apps/simplex-bot-advanced/README.md
Normal file
13
apps/simplex-bot-advanced/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Advanced SimpleX Chat bot example
|
||||
|
||||
In most cases [a simple REPL bot](../simplex-bot/) is sufficient, but in cases you want to program more advanced communication scenarios you may take a more complex event-based approach, as in this example.
|
||||
|
||||
Event-based approach allows you:
|
||||
|
||||
- decide whether to connect to a user or not depending on any factors, e.g. user display name.
|
||||
- disconnect from users who send too many messages or send messages that bot finds inappropriate.
|
||||
- react to message deletions and editing.
|
||||
- process reply messages differently, taking the original message into account.
|
||||
- process and send images and voice messages.
|
||||
- create groups of users, e.g. to connect 2 users.
|
||||
- etc.
|
||||
@@ -14,15 +14,18 @@ main :: IO ()
|
||||
main = do
|
||||
opts <- welcomeGetOpts
|
||||
simplexChatCore terminalChatConfig opts Nothing $
|
||||
chatBotRepl "Hello! I am a simple squaring bot - if you send me a number, I will calculate its square" $ \msg ->
|
||||
case readMaybe msg :: Maybe Integer of
|
||||
chatBotRepl welcomeMessage $ \_contact msg ->
|
||||
pure $ case readMaybe msg :: Maybe Integer of
|
||||
Just n -> msg <> " * " <> msg <> " = " <> show (n * n)
|
||||
_ -> "\"" <> msg <> "\" is not a number"
|
||||
|
||||
welcomeMessage :: String
|
||||
welcomeMessage = "Hello! I am a simple squaring bot.\nIf you send me a number, I will calculate its square"
|
||||
|
||||
welcomeGetOpts :: IO ChatOpts
|
||||
welcomeGetOpts = do
|
||||
appDir <- getAppUserDataDirectory "simplex"
|
||||
opts@ChatOpts {dbFilePrefix} <- getChatOpts appDir "simplex_bot"
|
||||
opts@ChatOpts {coreOptions = CoreChatOpts {dbFilePrefix}} <- getChatOpts appDir "simplex_bot"
|
||||
putStrLn $ "SimpleX Chat Bot v" ++ versionNumber
|
||||
putStrLn $ "db: " <> dbFilePrefix <> "_chat.db, " <> dbFilePrefix <> "_agent.db"
|
||||
pure opts
|
||||
|
||||
17
apps/simplex-bot/README.md
Normal file
17
apps/simplex-bot/README.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Simple SimpleX Chat bot example
|
||||
|
||||
This chat bot is a Haskell implementation of a REPL chat bot.
|
||||
|
||||
All you have to do to create your bot based on this example is to provide a welcome message for connecting users and a function of type `Contact -> String -> IO String`. This function should transform the sent message into a reply message, ignoring any system messages related to preferences and user profile changes.
|
||||
|
||||
This bot example calculates the square of the number that is sent to it, but you can program it to do other things, simply by changing REPL function:
|
||||
|
||||
- a more advanced calculator (e.g., based on [this one](https://github.com/jonathanknowles/haskell-calculator)).
|
||||
- translation to/from any language.
|
||||
- lookup of market quotes.
|
||||
- search of the information.
|
||||
- AI-powered dialogue – the bot can maintain any conversation state based on the contact.
|
||||
- provide any other online service via chat UI.
|
||||
- etc.
|
||||
|
||||
Please share any bots you create with us, we will add to this page and can host them if you like!
|
||||
74
apps/simplex-broadcast-bot/Main.hs
Normal file
74
apps/simplex-broadcast-bot/Main.hs
Normal file
@@ -0,0 +1,74 @@
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE GADTs #-}
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
{-# LANGUAGE NamedFieldPuns #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
module Main where
|
||||
|
||||
import Control.Concurrent.Async
|
||||
import Control.Concurrent.STM
|
||||
import Control.Monad.Reader
|
||||
import qualified Data.Text as T
|
||||
import Options
|
||||
import Simplex.Chat.Bot
|
||||
import Simplex.Chat.Controller
|
||||
import Simplex.Chat.Core
|
||||
import Simplex.Chat.Messages
|
||||
import Simplex.Chat.Options
|
||||
import Simplex.Chat.Protocol (MsgContent (..))
|
||||
import Simplex.Chat.Terminal (terminalChatConfig)
|
||||
import Simplex.Chat.Types
|
||||
import System.Directory (getAppUserDataDirectory)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
opts <- welcomeGetOpts
|
||||
simplexChatCore terminalChatConfig (mkChatOpts opts) Nothing $ broadcastBot opts
|
||||
|
||||
welcomeGetOpts :: IO BroadcastBotOpts
|
||||
welcomeGetOpts = do
|
||||
appDir <- getAppUserDataDirectory "simplex"
|
||||
opts@BroadcastBotOpts {coreOptions = CoreChatOpts {dbFilePrefix}} <- getBroadcastBotOpts appDir "simplex_status_bot"
|
||||
putStrLn $ "SimpleX Chat Bot v" ++ versionNumber
|
||||
putStrLn $ "db: " <> dbFilePrefix <> "_chat.db, " <> dbFilePrefix <> "_agent.db"
|
||||
pure opts
|
||||
|
||||
broadcastBot :: BroadcastBotOpts -> User -> ChatController -> IO ()
|
||||
broadcastBot BroadcastBotOpts {publishers, welcomeMessage, prohibitedMessage} _user cc = do
|
||||
initializeBotAddress cc
|
||||
race_ (forever $ void getLine) . forever $ do
|
||||
(_, resp) <- atomically . readTBQueue $ outputQ cc
|
||||
case resp of
|
||||
CRContactConnected _ ct _ -> do
|
||||
contactConnected ct
|
||||
sendMessage cc ct welcomeMessage
|
||||
CRNewChatItem _ (AChatItem _ SMDRcv (DirectChat ct) ci@ChatItem {content = CIRcvMsgContent mc})
|
||||
| publisher `elem` publishers ->
|
||||
if allowContent mc
|
||||
then do
|
||||
sendChatCmd cc "/contacts" >>= \case
|
||||
CRContactsList _ cts -> do
|
||||
let cts' = filter broadcastTo cts
|
||||
forM_ cts' $ \ct' -> sendComposedMessage cc ct' Nothing mc
|
||||
sendReply $ "Forwarded to " <> show (length cts') <> " contact(s)"
|
||||
r -> putStrLn $ "Error getting contacts list: " <> show r
|
||||
else sendReply "!1 Message is not supported!"
|
||||
| otherwise -> do
|
||||
sendReply prohibitedMessage
|
||||
deleteMessage cc ct $ chatItemId' ci
|
||||
where
|
||||
sendReply = sendComposedMessage cc ct (Just $ chatItemId' ci) . textMsgContent
|
||||
publisher = Publisher {contactId = contactId' ct, localDisplayName = localDisplayName' ct}
|
||||
allowContent = \case
|
||||
MCText _ -> True
|
||||
MCLink {} -> True
|
||||
MCImage {} -> True
|
||||
_ -> False
|
||||
broadcastTo ct'@Contact {activeConn = conn@Connection {connStatus}} =
|
||||
(connStatus == ConnSndReady || connStatus == ConnReady)
|
||||
&& not (connDisabled conn)
|
||||
&& contactId' ct' /= contactId' ct
|
||||
_ -> pure ()
|
||||
where
|
||||
contactConnected ct = putStrLn $ T.unpack (localDisplayName' ct) <> " connected"
|
||||
109
apps/simplex-broadcast-bot/Options.hs
Normal file
109
apps/simplex-broadcast-bot/Options.hs
Normal file
@@ -0,0 +1,109 @@
|
||||
{-# LANGUAGE ApplicativeDo #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE NamedFieldPuns #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
|
||||
module Options where
|
||||
|
||||
import qualified Data.Attoparsec.ByteString.Char8 as A
|
||||
import Data.Int (Int64)
|
||||
import Data.Maybe (fromMaybe)
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import Data.Text.Encoding (encodeUtf8)
|
||||
import Options.Applicative
|
||||
import Simplex.Chat.Controller (updateStr, versionNumber, versionString)
|
||||
import Simplex.Chat.Options (ChatOpts (..), CoreChatOpts, coreChatOptsP)
|
||||
import Simplex.Messaging.Parsers (parseAll)
|
||||
import Simplex.Messaging.Util (safeDecodeUtf8)
|
||||
|
||||
data Publisher = Publisher
|
||||
{ contactId :: Int64,
|
||||
localDisplayName :: Text
|
||||
}
|
||||
deriving (Eq)
|
||||
|
||||
data BroadcastBotOpts = BroadcastBotOpts
|
||||
{ coreOptions :: CoreChatOpts,
|
||||
publishers :: [Publisher],
|
||||
welcomeMessage :: String,
|
||||
prohibitedMessage :: String
|
||||
}
|
||||
|
||||
defaultWelcomeMessage :: [Publisher] -> String
|
||||
defaultWelcomeMessage ps = "Hello! I am a broadcast bot.\nI broadcast messages to all connected users from " <> publisherNames ps <> "."
|
||||
|
||||
defaultProhibitedMessage :: [Publisher] -> String
|
||||
defaultProhibitedMessage ps = "Sorry, only these users can broadcast messages: " <> publisherNames ps <> ". Your message is deleted."
|
||||
|
||||
publisherNames :: [Publisher] -> String
|
||||
publisherNames = T.unpack . T.intercalate ", " . map (("@" <>) . localDisplayName)
|
||||
|
||||
broadcastBotOpts :: FilePath -> FilePath -> Parser BroadcastBotOpts
|
||||
broadcastBotOpts appDir defaultDbFileName = do
|
||||
coreOptions <- coreChatOptsP appDir defaultDbFileName
|
||||
publishers <-
|
||||
option
|
||||
parsePublishers
|
||||
( long "publishers"
|
||||
<> metavar "PUBLISHERS"
|
||||
<> help "Comma-separated list of publishers in the format CONTACT_ID:DISPLAY_NAME whose messages will be broadcasted"
|
||||
<> value []
|
||||
)
|
||||
welcomeMessage_ <-
|
||||
optional $
|
||||
strOption
|
||||
( long "welcome"
|
||||
<> metavar "WELCOME"
|
||||
<> help "Welcome message to be sent to all connecting users (default message will list allowed publishers)"
|
||||
)
|
||||
prohibitedMessage_ <-
|
||||
optional $
|
||||
strOption
|
||||
( long "prohibited"
|
||||
<> metavar "PROHIBITED"
|
||||
<> help "Reply to non-publishers who try to send messages (default reply will list allowed publishers)"
|
||||
<> showDefault
|
||||
)
|
||||
pure
|
||||
BroadcastBotOpts
|
||||
{ coreOptions,
|
||||
publishers,
|
||||
welcomeMessage = fromMaybe (defaultWelcomeMessage publishers) welcomeMessage_,
|
||||
prohibitedMessage = fromMaybe (defaultProhibitedMessage publishers) prohibitedMessage_
|
||||
}
|
||||
|
||||
parsePublishers :: ReadM [Publisher]
|
||||
parsePublishers = eitherReader $ parseAll publishersP . encodeUtf8 . T.pack
|
||||
|
||||
publishersP :: A.Parser [Publisher]
|
||||
publishersP = publisherP `A.sepBy1` A.char ','
|
||||
where
|
||||
publisherP = do
|
||||
contactId <- A.decimal <* A.char ':'
|
||||
localDisplayName <- safeDecodeUtf8 <$> A.takeTill (A.inClass ", ")
|
||||
pure Publisher {contactId, localDisplayName}
|
||||
|
||||
getBroadcastBotOpts :: FilePath -> FilePath -> IO BroadcastBotOpts
|
||||
getBroadcastBotOpts appDir defaultDbFileName =
|
||||
execParser $
|
||||
info
|
||||
(helper <*> versionOption <*> broadcastBotOpts appDir defaultDbFileName)
|
||||
(header versionStr <> fullDesc <> progDesc "Start chat bot with DB_FILE file and use SERVER as SMP server")
|
||||
where
|
||||
versionStr = versionString versionNumber
|
||||
versionOption = infoOption versionAndUpdate (long "version" <> short 'v' <> help "Show version")
|
||||
versionAndUpdate = versionStr <> "\n" <> updateStr
|
||||
|
||||
mkChatOpts :: BroadcastBotOpts -> ChatOpts
|
||||
mkChatOpts BroadcastBotOpts {coreOptions} =
|
||||
ChatOpts
|
||||
{ coreOptions,
|
||||
chatCmd = "",
|
||||
chatCmdDelay = 3,
|
||||
chatServerPort = Nothing,
|
||||
optFilesFolder = Nothing,
|
||||
allowInstantFiles = True,
|
||||
maintenance = False
|
||||
}
|
||||
9
apps/simplex-broadcast-bot/README.md
Normal file
9
apps/simplex-broadcast-bot/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# SimpleX broadcast bot
|
||||
|
||||
The bot allows anybody to connect to it and re-broadcasts all messages received from specified users configured via CLI options (publishers) to all users.
|
||||
|
||||
Welcome message and reply to the users who are not set as publishers can also be configured via CLI options.
|
||||
|
||||
It's a poor man's feed, until we have a better support for feeds in SimpleX Chat.
|
||||
|
||||
We use it to broadcast status notifications for SimpleX Chat servers when we do any maintenance or in case they become unavailable.
|
||||
@@ -33,7 +33,7 @@ main = do
|
||||
threadDelay $ chatCmdDelay opts * 1000000
|
||||
|
||||
welcome :: ChatOpts -> IO ()
|
||||
welcome ChatOpts {dbFilePrefix, networkConfig} =
|
||||
welcome ChatOpts {coreOptions = CoreChatOpts {dbFilePrefix, networkConfig}} =
|
||||
mapM_
|
||||
putStrLn
|
||||
[ versionString versionNumber,
|
||||
|
||||
3
apps/simplex-chat/README.md
Normal file
3
apps/simplex-chat/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# SimpleX Chat CLI app
|
||||
|
||||
See [repo REAMDE](../../README.md#zap-quick-installation-of-a-terminal-app) for installation and usage instructions.
|
||||
@@ -72,7 +72,7 @@ Battery usage is one of the biggest complaints of SimpleX Chat users. The main r
|
||||
|
||||
This version makes retries for exceeded queue capacity 10x less frequent and adds SMP protocol extension that will allow to reduce retries even further by the next version. It works in the following way:
|
||||
- when the sender encounters "queue quota exceeded" error, the sender stops trying to send the message.
|
||||
- the server also takes not of that error.
|
||||
- the server also takes note of that error.
|
||||
- once recipient receives all messages from this queue, the server will notify the recipient that the sender had "queue quota exceeded" error.
|
||||
- the recipient will then send a special message to the sender client to instruct it that it can resume delivery.
|
||||
- the sender can still occasionally try sending the message, e.g. once every hours, but it won't need to retry once every few minutes as it does now.
|
||||
|
||||
115
blog/lang/fr-fr/README_fr.md
Normal file
115
blog/lang/fr-fr/README_fr.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# Blog
|
||||
|
||||
4 févr. 2023 [SimpleX Chat v4.5 publié](./20230103-simplex-chat-v4.4-disappearing-messages.md)
|
||||
|
||||
- profils de chat multiples.
|
||||
- brouillon de message.
|
||||
- isolation du transport.
|
||||
- réduction de l'utilisation de la batterie.
|
||||
- noms de fichiers privés.
|
||||
|
||||
Nous avons également ajouté [l'interface en italien](#french-language-interface), grâce à nos utilisateurs et à Weblate !
|
||||
|
||||
3 janv. 2023 [SimpleX Chat v4.4 publié](./20230103-simplex-chat-v4.4-disappearing-messages.md)
|
||||
|
||||
- messages éphèméres.
|
||||
- messages "en direct" (dynamique).
|
||||
- vérification de la sécurité de la connexion.
|
||||
- images animées et autocollants - maintenant aussi sur iOS.
|
||||
|
||||
Nous avons également ajouté [l'interface en français](#french-language-interface), grâce à nos utilisateurs et à Weblate !
|
||||
|
||||
6 déc. 2022 [SimpleX Chat : révision et sortie de la v4.3](./20221206-simplex-chat-v4.3-voice-messages.md)
|
||||
|
||||
Critiques de novembre :
|
||||
|
||||
- Recommandations de [Privacy Guides](https://www.privacyguides.org/real-time-communication/#simplex-chat).
|
||||
- [Revue par Mike Kuketz](https://www.kuketz-blog.de/simplex-eindruecke-vom-messenger-ohne-identifier/).
|
||||
- [La matrice des messageries](https://www.messenger-matrix.de).
|
||||
- [Revue de Supernova](https://supernova.tilde.team/detailed_reviews.html#simplex) et [évaluations des messageries](https://supernova.tilde.team/messengers.html).
|
||||
|
||||
Sortie de la v4.3 :
|
||||
|
||||
- messages vocaux instantanés !
|
||||
- suppression irréversible des messages envoyés pour tous les destinataires
|
||||
- amélioration de la configuration du serveur SMP et du support des mots de passe du serveur
|
||||
- améliorations de la confidentialité et de la sécurité : protection de l'écran de l'application, sécurité des liens SimpleX, etc.
|
||||
|
||||
8 nov. 2022 [Audit de sécurité par Trail of Bits, nouveau site web et sortie de la v4.2](./20221108-simplex-chat-v4.2-security-audit-new-website.md)
|
||||
|
||||
_"Avez-vous été audité ou devons-nous simplement vous ignorer ?"_
|
||||
|
||||
SimpleX Chat a été audité par [Trail of Bits](https://www.trailofbits.com/about), 4 problèmes ont été identifiés, et 3 d'entre eux sont corrigés dans la version 4.2.
|
||||
|
||||
Le nouveau site web est en ligne : https://simplex.chat
|
||||
|
||||
Sortie de la v4.2 :
|
||||
|
||||
- liens de groupes - les administrateurs de groupes peuvent créer les liens pour que les nouveaux membres puissent les rejoindre
|
||||
- acceptation automatique des demandes de contact + configuration de l'acceptation de l'incognito et du message de bienvenue
|
||||
- petites nouveautés : changer un rôle de membre du groupe, marquer le chat comme non lu, envoyer des autocollants et des GIFs depuis les claviers Android.
|
||||
- changer manuellement de contact ou de membre vers une autre adresse / serveur (BETA)
|
||||
- recevoir des fichiers plus rapidement (BETA)
|
||||
|
||||
28 sept. 2022 [v4 : chiffrement de la base de données locale](./20220928-simplex-chat-v4-encrypted-database.md)
|
||||
|
||||
- base de données locale de chat chiffrée - si vous utilisez déjà l'application, vous pouvez chiffrer la base de données dans les paramètres de l'application.
|
||||
- support pour les serveurs WebRTC ICE auto-hébergés
|
||||
- amélioration de la stabilité de la création de nouvelles connexions : groupes, fichiers et contacts plus fiables
|
||||
- suppression des fichiers et des médias - par sécurité et pour économiser de l'espace de stockage
|
||||
- Pour les développeurs - TypeScript SDK pour l'intégration avec SimpleX Chat
|
||||
- support des images animées dans l'application Android
|
||||
- Interface utilisateur en allemand pour les applications mobiles
|
||||
|
||||
1 sept. 2022 [v3.2 : Mode Incognito](./20220901-simplex-chat-v3.2-incognito-mode.md)
|
||||
|
||||
- Mode Incognito - utiliser un nouveau nom de profil aléatoire pour chaque contact
|
||||
- utiliser des adresses de serveur .onion avec Tor
|
||||
- défilement et recherche sans fin
|
||||
- choix d'une couleur secondaire et du mode sombre
|
||||
- réduction de la taille des APK pour le téléchargement direct et dans le repo F-Droid de 200 à 46Mb !
|
||||
|
||||
L'audit d'implémentation est prévu pour Octobre !
|
||||
|
||||
8 août 2022 [v3.1 : groupes de discussion](./20220808-simplex-chat-v3.1-chat-groups.md)
|
||||
|
||||
- enfin, des groupes de chat secrets - personne d'autre que les membres ne sait qu'ils existent !
|
||||
- accès aux serveurs de messagerie via Tor sur toutes les plateformes
|
||||
- paramètres réseau avancés pour optimiser l'utilisation du trafic
|
||||
- protocole de chat publié
|
||||
- nouvelles icônes d'application
|
||||
|
||||
23 juil. 2022 [v3.1-beta : accès aux serveurs via Tor](./20220723-simplex-chat-v3.1-tor-groups-efficiency.md)
|
||||
|
||||
- application terminale : accès aux serveurs de messagerie via un proxy SOCKS5 (par exemple, Tor).
|
||||
- applications mobiles : rejoindre et quitter des groupes de discussion.
|
||||
- utilisation optimisée de la batterie et du trafic - réduction jusqu'à 90x !
|
||||
- deux configurations docker pour les serveurs SMP auto-hébergés.
|
||||
|
||||
11 juil. 2022 [v3 : notifications push instantanées pour iOS et appels audio/vidéo](./20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.md) :
|
||||
|
||||
- exportation et importation de la base de données de chat
|
||||
- appels audio/vidéo chiffrés de bout en bout
|
||||
- amélioration de la confidentialité du protocole et des performances
|
||||
|
||||
4 juin 2022 [v2.2 : nouveaux paramètres de confidentialité et de sécurité](./20220604-simplex-chat-new-privacy-security-settings.md)
|
||||
|
||||
24 mai 2022 [v2.1 : effacement des messages pour une meilleure confidentialité des conversations](./20220524-simplex-chat-better-privacy.md)
|
||||
|
||||
11 mai 2022 [Publication de la v2.0 - envoi d'images et de fichiers dans les applications mobiles](./20220511-simplex-chat-v2-images-files.md)
|
||||
|
||||
04 avr. 2022 [Notifications instantanées pour les applications mobiles SimpleX Chat](./20220404-simplex-chat-instant-notifications.md)
|
||||
|
||||
08 mars 2022 [Applications mobiles pour iOS et Android](./20220308-simplex-chat-mobile-apps.md)
|
||||
|
||||
14 févr. 2022. [SimpleX Chat : rejoignez notre version bêta publique pour iOS](./20220214-simplex-chat-ios-public-beta.md)
|
||||
|
||||
12 janv. 2022. [SimpleX Chat v1 : la plateforme de chat et d'application la plus privée et la plus sécurisée](./20220112-simplex-chat-v1-released.md)
|
||||
|
||||
08 déc. 2021. [Sortie de SimpleX Chat v0.5 : la première plateforme de chat 100% privée par définition - aucun accès à votre graphe de connexions](./20211208-simplex-chat-v0.5-released.md)
|
||||
|
||||
14 septembre 2021. [SimpleX Chat v0.4 publié : chat open-source qui utilise un protocole de routage de messages préservant la confidentialité](./20210914-simplex-chat-v0.4-released.md)
|
||||
|
||||
12 mai 2021. [Prototype de chat SimpleX](./20210512-simplex-chat-terminal-ui.md)
|
||||
|
||||
22 oct. 2020. [SimpleX Chat](./20201022-simplex-chat.md)
|
||||
@@ -7,7 +7,7 @@ constraints: zip +disable-bzip2 +disable-zstd
|
||||
source-repository-package
|
||||
type: git
|
||||
location: https://github.com/simplex-chat/simplexmq.git
|
||||
tag: ee2a764f93a8b5af485949699d6a64ebbbaf2557
|
||||
tag: 44535628a5babefec838ab346546208fbe6501b4
|
||||
|
||||
source-repository-package
|
||||
type: git
|
||||
|
||||
39
docs/ANDROID.md
Normal file
39
docs/ANDROID.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Accessing files in Android app
|
||||
|
||||
SimpleX uses databases and stores its preferences inside private data directory in Android. The directory contains:
|
||||
- databases
|
||||
- sent and received files
|
||||
- temporary files that will be deleted when not needed
|
||||
- user preferences.
|
||||
|
||||
|
||||
If you want to view what's stored inside SimpleX data directory you need to have:
|
||||
- Unix-based operating system (or [MinGW](https://www.mingw-w64.org/downloads/) on Windows)
|
||||
- ADB (Android Debug Bridge) tool installed on a computer ([download it here](https://developer.android.com/studio/releases/platform-tools) and install)
|
||||
- your device connected via USB or Wi-Fi to the computer.
|
||||
|
||||
## The process:
|
||||
- open SimpleX, go to `Database passphrase & export`, enable `App data backup`. This will make other steps working
|
||||
- _optional_: if you want to view database contents, change database passphrase from random to yours. To do this, stop a chat in `Database passphrase & export` screen, open `Database passphrase`, enter new passphrase and confirm it, then update it. Do not forget it, otherwise you'll lose all your data in case passphrase will be asked again later
|
||||
- open a terminal emulator (Windows CMD/Powershell will not work) and change directory to the one you want to use for storing the backup:
|
||||
|
||||
```bash
|
||||
cd /tmp # just an example
|
||||
```
|
||||
Then run the following:
|
||||
```bash
|
||||
adb -d backup -f chat.ab -noapk chat.simplex.app &&
|
||||
tail -n +5 chat.ab > chat.dat &&
|
||||
printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - chat.dat > chat.gz &&
|
||||
tar -xvzf chat.gz
|
||||
```
|
||||
|
||||
Now unlock the device and confirm a backup operation without using a password for encryption, otherwise the commands will not work.
|
||||
|
||||
After that the backup should be ended. If you see an error saying `tar: Error is not recoverable: exiting now` but before that you have printed some file names, don't worry, it's ok.
|
||||
|
||||
Now the backed-up files will be inside `./apps/chat.simplex.app/`.
|
||||
|
||||
Please, note, that if you use a modern version of SimpleX, the databases will be encrypted, and you'll not be able to view contents of them without using `sqlcipher` application and without knowing decryption passphrase (you need to change it to yours from randomly generated in the app firstly).
|
||||
|
||||
Please, follow [SQL.md](./SQL.md) guide for more info of how to decrypt your databases and to make queries to them.
|
||||
@@ -1,3 +1,5 @@
|
||||
| Updated 31.01.2023 | Languages: EN, [FR](/docs/lang/fr/CLI.md) |
|
||||
|
||||
# SimpleX Chat terminal (console) app for Linux/MacOS/Windows
|
||||
|
||||
## Table of contents
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
| Updated 31.01.2023 | Languages: EN, [FR](/docs/lang/fr/CONTRIBUTING.md) |
|
||||
|
||||
# Contributing guide
|
||||
|
||||
## Compiling with SQLCipher encryption enabled
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
| Updated 31.01.2023 | Languages: EN, [FR](/docs/lang/fr/SERVER.md) |
|
||||
|
||||
# Hosting your own SMP Server
|
||||
|
||||
## Overview
|
||||
@@ -152,7 +154,7 @@ For example, run:
|
||||
sudo su smp -c "smp-server init -y -l --ip 192.168.1.5 --password test"
|
||||
```
|
||||
|
||||
to initilize your `smp-server` configuration with:
|
||||
to initialize your `smp-server` configuration with:
|
||||
|
||||
- restoring connections and messages when the server is restarted (`-l` flag),
|
||||
- IP address `192.168.1.5`,
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
| Updated 07.02.2023 | Languages: EN, [FR](/docs/lang/fr/SIMPLEX.md) |
|
||||
|
||||
# SimpleX platform - motivation and comparison
|
||||
|
||||
## Problems
|
||||
@@ -83,7 +85,7 @@ There are several P2P chat/messaging protocols and implementations that aim to s
|
||||
|
||||
5. All known P2P networks are likely to be vulnerable to [Sybil attack][12], because each node is discoverable, and the network operates as a whole. Known measures to reduce the probability of the Sybil attack either require a centralized component or expensive [proof of work][13]. The proposed design, on the opposite, has no server discoverability - servers are not connected, not known to each other and to all clients. The SimpleX network is fragmented and operates as multiple isolated connections. It makes network-wide attacks on SimpleX network impossible - even if some servers are compromised, other parts of the network can operate normally, and affected clients can switch to using other servers without losing contacts or messages.
|
||||
|
||||
6. P2P networks are likely to be vulnerable to [DRDoS attack][14]. In the proposed design clients only relay traffic from known trusted connection and cannot be used to reflect and amplify the traffic in the whole network.
|
||||
6. P2P networks are likely to be [vulnerable][14] to [DRDoS attack][15]. In the proposed design clients only relay traffic from known trusted connection and cannot be used to reflect and amplify the traffic in the whole network.
|
||||
|
||||
[1]: https://en.wikipedia.org/wiki/End-to-end_encryption
|
||||
[2]: https://en.wikipedia.org/wiki/Man-in-the-middle_attack
|
||||
@@ -93,3 +95,4 @@ There are several P2P chat/messaging protocols and implementations that aim to s
|
||||
[12]: https://en.wikipedia.org/wiki/Sybil_attack
|
||||
[13]: https://en.wikipedia.org/wiki/Proof_of_work
|
||||
[14]: https://www.usenix.org/conference/woot15/workshop-program/presentation/p2p-file-sharing-hell-exploiting-bittorrent
|
||||
[15]: https://en.wikipedia.org/wiki/Denial-of-service_attack#Reflected_attack
|
||||
|
||||
18
docs/SQL.md
18
docs/SQL.md
@@ -1,4 +1,20 @@
|
||||
# Accessing message history via SQL queries
|
||||
| Updated 31.01.2023 | Languages: EN, [FR](/docs/lang/fr/SQL.md) |
|
||||
|
||||
# Accessing messages in the database
|
||||
|
||||
## Decrypting databases
|
||||
|
||||
In order to view database data you need to decrypt it first. Install `sqlcipher` using your favorite package manager and run the following commands in the directory with databases:
|
||||
```bash
|
||||
sqlcipher files_chat.db
|
||||
pragma key="youDecryptionPassphrase";
|
||||
# Ensure it works fine
|
||||
select * from users;
|
||||
```
|
||||
|
||||
If you see `Parse error: no such table: users`, make sure you entered correct passphrase, and you have changed passphrase from random in Android app (if you got this database from Android device, of course).
|
||||
|
||||
## SQL queries
|
||||
|
||||
You can run queries against `direct_messages`, `group_messages` and `all_messages` (or their simpler alternatives `direct_messages_plain`, `group_messages_plain` and `all_messages_plain`), for example:
|
||||
|
||||
|
||||
57
docs/TRANSLATIONS.md
Normal file
57
docs/TRANSLATIONS.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Contributing translations to SimpleX Chat
|
||||
|
||||
Huge thanks for your interest in translating SimpleX Chat - it helps a lot to make it accessible to a wider range of users, and we really appreciate your help.
|
||||
|
||||
It requires a substantial time investment - most people underestimate it initially - and ongoing maintenance as we develop the application.
|
||||
|
||||
This document is created to speed up this process, and share some important "gotchas" we've discovered while working with Weblate - the platform we use for interface translations.
|
||||
|
||||
## Before you start translation
|
||||
|
||||
1. Create an account in Weblate, using the same email that you use in GitHub - it will make your contributions associated with your GitHub account, and might help you in some cases. Once translation is released to the users we will add your account name to the [list of translators](https://github.com/simplex-chat/simplex-chat#translate-the-apps).
|
||||
|
||||
2. Before you start the translation there is a simple contributor agreement to sign via Weblate - this is to avoid any conflicts around IP rights.
|
||||
|
||||
3. We can also add you to the group of translators for any questions and updates - please connect to me via chat.
|
||||
|
||||
## Translation progress
|
||||
|
||||
1. Please start from [Android app](https://hosted.weblate.org/projects/simplex-chat/android/), both when you do the most time-consuming initial translation, and add any strings later. Firstly, iOS strings can be a bit delayed from appearing in Weblate, as it requires a manual step from us before they are visible. Secondary, Android app is set up as a glossary for iOS app, and 2/3 of all strings require just to clicks to transfer them from Android to iOS (it still takes some time, Weblate doesn't automate it, unfortunately).
|
||||
|
||||
2. Some of the strings do not need translations, but they still need to be copied over - there is a button in weblate UI for that:
|
||||
|
||||
<img src="./images/weblate_1.png" alt="weblate: copy source to translation" width="100%">
|
||||
|
||||
3. Weblate also has automatic suggestions that can speed up the process. Sometimes they can be used as is, sometimes they need some editing - click to use them in translations.
|
||||
|
||||
4. Once all strings in Android app are translated, please review it to ensure consistent style and language, so that the same words are consistently used for similar user actions, same as in English. Sometimes, you will have to use different words in cases when English has just one, please try to use these choices consistently in similar contexts, to make it easier for the end users.
|
||||
|
||||
5. When you translate [iOS app](https://hosted.weblate.org/projects/simplex-chat/ios/), a large part of the strings are exactly the same - they can be copied over in one click in glossary section. The visual hint that it can be done is that the whole source string is highlighted in yellow. Many other strings are very similar, they only differ in interpolation syntax or how bold font is used - they require minimal editing. There are some strings that are unique to iOS platform - they need to be translated separately.
|
||||
|
||||
<img src="./images/weblate_2.png" alt="weblate: automatic suggestions" width="100%">
|
||||
|
||||
## Once translation is completed
|
||||
|
||||
Once both Android and iOS apps are translated, please let us know.
|
||||
|
||||
We will then:
|
||||
- review all the translations and suggest any corrections - it also takes a bit of time :)
|
||||
- merge them to the source code - while we do it weblate will be locked for changes.
|
||||
- create beta releases of both iOS and Android apps - we can also add you to the internal tester groups, so you can install the apps before anybody else.
|
||||
- release it to our beta users - it's more than a thousand people who use our beta versions.
|
||||
- release the app and include the new language in the announcement.
|
||||
|
||||
*Please note*: we aim to keep app functions consistent between Android and iOS platforms, when possible, so we will release and announce a new language once both platforms have been translated. It doesn't mean you have to do it, but we will have to wait until somebody else translates the second platform. But if you start from Android, iOS usually takes 3-4x less time to add.
|
||||
|
||||
## What is next
|
||||
|
||||
1. As we update the app, we post the updates in the group of translators. You are absolutely under no obligation to translate these additional strings. We hugely appreciate if you do though, as it makes the users experience so much better when they depend on your translations, than if some new part of the app is not translated.
|
||||
|
||||
2. You can also help adoption in your country / language group by translating our documents - we have just started it - and also our website content. There have been many requests to do it and we are currently adding the translation framework for the website.
|
||||
|
||||
3. Also, if you want to be a moderator/admin of the users group in your language, once the app is translated we can host such group - we are preparing community guidelines and adding some moderation tools to the app to be released in v5 in March.
|
||||
|
||||
|
||||
Thank you very much again for helping us grow SimpleX Chat!
|
||||
|
||||
Evgeny, SimpleX Chat founder.
|
||||
@@ -1,3 +1,5 @@
|
||||
| Updated 31.01.2023 | Languages: EN, [FR](/docs/lang/fr/WEBRTC.md) |
|
||||
|
||||
# Using custom WebRTC ICE servers in SimpleX Chat
|
||||
|
||||
## Deploy STUN/TURN server
|
||||
@@ -87,7 +89,7 @@ stun:stun.example.com:5349
|
||||
turn:username:password@turn.example.com:5349
|
||||
```
|
||||
|
||||
This is it - you now can make audio and video calls via your own server, without sharing any data with our servers (other than the key excange with your contact in E2E encrypted messages).
|
||||
This is it - you now can make audio and video calls via your own server, without sharing any data with our servers (other than the key exchange with your contact in E2E encrypted messages).
|
||||
|
||||
## Troubleshoot
|
||||
|
||||
@@ -116,7 +118,7 @@ This is it - you now can make audio and video calls via your own server, without
|
||||
Connection to <your_ip_or_domain> 5349 port [tcp/*] succeeded!
|
||||
```
|
||||
|
||||
- **Test STUN/TURN connectivity:**
|
||||
- **Test STUN/TURN connectivity**:
|
||||
|
||||
1. Go to [IceTest](https://icetest.info/).
|
||||
|
||||
|
||||
BIN
docs/images/weblate_1.png
Normal file
BIN
docs/images/weblate_1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
BIN
docs/images/weblate_2.png
Normal file
BIN
docs/images/weblate_2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user