Merge branch 'master' into fix-bluetooth-receiver-not-exported

This commit is contained in:
Marcel Hibbe 2025-04-04 12:27:19 +00:00 committed by GitHub
commit ba88f23f39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
49 changed files with 1508 additions and 176 deletions

View File

@ -34,7 +34,7 @@ jobs:
java-version: 17
- name: Gradle validate
uses: gradle/actions/wrapper-validation@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0
uses: gradle/actions/wrapper-validation@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4.3.1
- name: Build ${{ matrix.flavor }}
run: |

View File

@ -43,7 +43,7 @@ jobs:
with:
swap-size-gb: 10
- name: Initialize CodeQL
uses: github/codeql-action/init@5f8171a638ada777af81d42b55959a643bb29017 # v3.28.12
uses: github/codeql-action/init@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3.28.13
with:
languages: ${{ matrix.language }}
- name: Set up JDK 17
@ -57,4 +57,4 @@ jobs:
echo "org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" > "$HOME/.gradle/gradle.properties"
./gradlew assembleDebug
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5f8171a638ada777af81d42b55959a643bb29017 # v3.28.12
uses: github/codeql-action/analyze@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3.28.13

View File

@ -42,6 +42,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@5f8171a638ada777af81d42b55959a643bb29017 # v3.28.12
uses: github/codeql-action/upload-sarif@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3.28.13
with:
sarif_file: results.sarif

View File

@ -33,7 +33,7 @@ jobs:
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4.3.1
- name: Run unit tests with coverage
run: ./gradlew testGplayDebugUnit

View File

@ -15,7 +15,7 @@ import com.github.spotbugs.snom.SpotBugsTask
plugins {
id "org.jetbrains.kotlin.plugin.compose" version "2.1.20"
id "org.jetbrains.kotlin.kapt"
id 'com.google.devtools.ksp' version '2.1.10-1.0.31'
id 'com.google.devtools.ksp' version '2.1.20-1.0.32'
}
apply plugin: 'com.android.application'
@ -39,8 +39,8 @@ android {
// mayor.minor.hotfix.increment (for increment: 01-50=Alpha / 51-89=RC / 90-99=stable)
// xx .xxx .xx .xx
versionCode 210010011
versionName "21.1.0 Alpha 11"
versionCode 210010012
versionName "21.1.0 Alpha 12"
flavorDimensions "default"
renderscriptTargetApi 19
@ -150,9 +150,9 @@ kapt {
}
ext {
androidxCameraVersion = "1.4.1"
androidxCameraVersion = "1.4.2"
coilKtVersion = "2.7.0"
daggerVersion = "2.56"
daggerVersion = "2.56.1"
emojiVersion = "1.5.0"
fidoVersion = "4.1.0-patch2"
lifecycleVersion = '2.8.7'

View File

@ -47,6 +47,8 @@ import android.widget.PopupMenu
import android.widget.TextView
import androidx.activity.OnBackPressedCallback
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.PickVisualMediaRequest
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.view.ContextThemeWrapper
import androidx.cardview.widget.CardView
@ -213,6 +215,7 @@ import java.util.concurrent.ExecutionException
import javax.inject.Inject
import kotlin.collections.set
import kotlin.math.roundToInt
import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia
@AutoInjector(NextcloudTalkApplication::class)
class ChatActivity :
@ -334,6 +337,8 @@ class ChatActivity :
private var videoURI: Uri? = null
private lateinit var pickMultipleMedia: ActivityResultLauncher<PickVisualMediaRequest>
private val onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
val intent = Intent(this@ChatActivity, ConversationsListActivity::class.java)
@ -429,6 +434,14 @@ class ChatActivity :
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
initObservers()
pickMultipleMedia = registerForActivityResult(
ActivityResultContracts.PickMultipleVisualMedia(5)
) { uris ->
if (uris.isNotEmpty()) {
onChooseFileResult(uris)
}
}
}
private fun getMessageInputFragment(): MessageInputFragment {
@ -1943,33 +1956,47 @@ class ChatActivity :
}
}
@Throws(IllegalStateException::class)
private fun onChooseFileResult(intent: Intent?) {
try {
checkNotNull(intent)
filesToUpload.clear()
val fileUris = mutableListOf<Uri>()
intent.clipData?.let {
for (index in 0 until it.itemCount) {
filesToUpload.add(it.getItemAt(index).uri.toString())
fileUris.add(it.getItemAt(index).uri)
}
} ?: run {
checkNotNull(intent.data)
intent.data.let {
filesToUpload.add(intent.data.toString())
fileUris.add(intent.data!!)
}
}
onChooseFileResult(fileUris)
} catch (e: IllegalStateException) {
context.resources?.getString(R.string.nc_upload_failed)?.let {
Snackbar.make(
binding.root,
it,
Snackbar.LENGTH_LONG
).show()
}
Log.e(javaClass.simpleName, "Something went wrong when trying to upload file", e)
}
}
private fun onChooseFileResult(filesToUpload: List<Uri>) {
try {
require(filesToUpload.isNotEmpty())
val filenamesWithLineBreaks = StringBuilder("\n")
for (file in filesToUpload) {
val filename = FileUtils.getFileName(file.toUri(), context)
val filename = FileUtils.getFileName(file, context)
filenamesWithLineBreaks.append(filename).append("\n")
}
val newFragment = FileAttachmentPreviewFragment.newInstance(
filenamesWithLineBreaks.toString(),
filesToUpload
filesToUpload.map { it.toString() }.toMutableList()
)
newFragment.setListener { files, caption ->
uploadFiles(files, caption)
@ -2223,6 +2250,10 @@ class ChatActivity :
chatViewModel.uploadFile(fileUri, room, currentConversation?.displayName!!, metaData)
}
fun showGalleryPicker() {
pickMultipleMedia.launch(PickVisualMediaRequest(PickVisualMedia.ImageAndVideo))
}
private fun showLocalFilePicker() {
val action = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
type = "*/*"

View File

@ -402,6 +402,11 @@ class MessageInputFragment : Fragment() {
AttachmentDialog(requireActivity(), requireActivity() as ChatActivity).show()
}
binding.fragmentMessageInputView.attachmentButton.setOnLongClickListener {
chatActivity.showGalleryPicker()
true
}
binding.fragmentMessageInputView.button?.setOnClickListener {
submitMessage(false)
}

View File

@ -89,16 +89,6 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
override fun doWork(): Result {
NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
if (!platformPermissionUtil.isFilesPermissionGranted()) {
Log.w(
TAG,
"Storage permission is not granted. As a developer please make sure you check for" +
"permissions via UploadAndShareFilesWorker.isStoragePermissionGranted() and " +
"UploadAndShareFilesWorker.requestStoragePermission() beforehand. If you already " +
"did but end up with this warning, the user most likely revoked the permission"
)
}
return try {
currentUser = currentUserProvider.currentUser.blockingGet()
val sourceFile = inputData.getString(DEVICE_SOURCE_FILE)

View File

@ -20,8 +20,8 @@ import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.chat.ChatActivity
import com.nextcloud.talk.databinding.DialogAttachmentBinding
import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.SpreedFeatures
import javax.inject.Inject
@AutoInjector(NextcloudTalkApplication::class)
@ -92,6 +92,11 @@ class AttachmentDialog(val activity: Activity, var chatActivity: ChatActivity) :
dismiss()
}
dialogAttachmentBinding.menuAttachFileFromGallery.setOnClickListener {
chatActivity.showGalleryPicker()
dismiss()
}
dialogAttachmentBinding.menuAttachFileFromLocal.setOnClickListener {
chatActivity.sendSelectLocalFileIntent()
dismiss()

View File

@ -17,7 +17,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.databinding.DialogFileAttachmentPreviewBinding
import com.nextcloud.talk.jobs.UploadAndShareFilesWorker
import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.permissions.PlatformPermissionUtil
import javax.inject.Inject
@ -70,12 +69,8 @@ class FileAttachmentPreviewFragment : DialogFragment() {
}
binding.buttonSend.setOnClickListener {
if (permissionUtil.isFilesPermissionGranted()) {
val caption: String = binding.dialogFileAttachmentPreviewCaption.text.toString()
uploadFiles(filesList, caption)
} else {
UploadAndShareFilesWorker.requestStoragePermission(requireActivity())
}
val caption: String = binding.dialogFileAttachmentPreviewCaption.text.toString()
uploadFiles(filesList, caption)
dismiss()
}
}

View File

@ -0,0 +1,15 @@
<!--
~ Nextcloud Talk - Android Client
~
~ SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
~ SPDX-License-Identifier: GPL-3.0-or-later
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#000000"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="@android:color/white"
android:pathData="M22,16L22,4c0,-1.1 -0.9,-2 -2,-2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2zM11,12l2.03,2.71L16,11l4,5L8,16l3,-4zM2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6L2,6z"/>
</vector>

View File

@ -210,41 +210,6 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/settings_show_notification_warning"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nc_show_notification_warning_title"
android:textSize="@dimen/headline_text_size"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/settings_show_notification_warning_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nc_show_notification_warning_description"/>
</LinearLayout>
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/settings_show_notification_warning_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:gravity="center_vertical"/>
</LinearLayout>
<LinearLayout
android:id="@+id/settings_server_notification_app_wrapper"
android:layout_width="match_parent"
@ -370,6 +335,41 @@
android:text="@string/nc_settings_default_ringtone"
android:textSize="@dimen/supporting_text_text_size"/>
</LinearLayout>
<LinearLayout
android:id="@+id/settings_show_notification_warning"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nc_show_notification_warning_title"
android:textSize="@dimen/headline_text_size"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/settings_show_notification_warning_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nc_show_notification_warning_description"/>
</LinearLayout>
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/settings_show_notification_warning_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:gravity="center_vertical"/>
</LinearLayout>
</LinearLayout>
<LinearLayout

View File

@ -31,105 +31,6 @@
android:textColor="@color/medium_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
<LinearLayout
android:id="@+id/menu_attach_poll"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/standard_padding"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_attach_poll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_baseline_bar_chart_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_attach_poll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/zero"
android:text="@string/nc_create_poll"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_attach_contact"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/standard_padding"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_share_contact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_baseline_person_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/shareContactText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/zero"
android:text="@string/nc_share_contact"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_share_location"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/standard_padding"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_share_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_baseline_location_on_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_share_location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/zero"
android:text="@string/nc_share_location"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_attach_picture_from_cam"
android:layout_width="match_parent"
@ -196,6 +97,39 @@
</LinearLayout>
<LinearLayout
android:id="@+id/menu_attach_file_from_gallery"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/standard_padding"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_attach_file_from_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/baseline_photo_library_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_attach_file_from_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/zero"
android:text="@string/nc_gallery"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_attach_file_from_local"
android:layout_width="match_parent"
@ -262,4 +196,110 @@
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="@color/low_emphasis_text"/>
<LinearLayout
android:id="@+id/menu_attach_poll"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/standard_padding"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_attach_poll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_baseline_bar_chart_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_attach_poll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/zero"
android:text="@string/nc_create_poll"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_share_location"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/standard_padding"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_share_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_baseline_location_on_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_share_location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/zero"
android:text="@string/nc_share_location"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/menu_attach_contact"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/standard_padding"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_share_contact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_baseline_person_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/shareContactText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/zero"
android:text="@string/nc_share_contact"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
</LinearLayout>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">You: %1$s</string>
<string name="nc_forward_message">Forward</string>
<string name="nc_forward_to_three_dots">Forward to …</string>
<string name="nc_gallery">Gallery</string>
<string name="nc_get_from_provider">Do you not have a server yet?\nClick here to get one from a provider</string>
<string name="nc_get_source_code">Get source code</string>
<string name="nc_group">Group</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Dig: %1$s</string>
<string name="nc_forward_message">Videresend</string>
<string name="nc_forward_to_three_dots">Forward til ...</string>
<string name="nc_gallery">Galleri</string>
<string name="nc_get_from_provider">Har du ikke en server endnu?\nKlik her for at skaffe en udbyder</string>
<string name="nc_get_source_code">Hent kildekode</string>
<string name="nc_group">Gruppe</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Sie: %1$s</string>
<string name="nc_forward_message">Weiterleiten</string>
<string name="nc_forward_to_three_dots">Weiterleiten an …</string>
<string name="nc_gallery">Galerie</string>
<string name="nc_get_from_provider">Sie haben noch keinen Server?\nKlicken Sie hier, um Anbieter zu finden</string>
<string name="nc_get_source_code">Zum Programmcode</string>
<string name="nc_group">Gruppe</string>

View File

@ -148,6 +148,7 @@
<string name="nc_formatted_message_you">Εσείς: %1$s</string>
<string name="nc_forward_message">Προώθηση</string>
<string name="nc_forward_to_three_dots">Προώθηση σε …</string>
<string name="nc_gallery">Εκθεσιακός χώρος</string>
<string name="nc_get_from_provider">Δεν έχετε ακόμα διακομιστή;\nΚάντε κλικ εδώ για να αποκτήσετε έναν από κάποιον πάροχο</string>
<string name="nc_get_source_code">Λήψη πηγαίου κώδικα</string>
<string name="nc_group">Ομάδα</string>

View File

@ -246,6 +246,7 @@
<string name="nc_formatted_message_you">Tu: %1$s</string>
<string name="nc_forward_message">Reenviar</string>
<string name="nc_forward_to_three_dots">Reenviar a …</string>
<string name="nc_gallery">Galería</string>
<string name="nc_get_from_provider">¿No tienes todavía un servidor?\nClic aquí para conseguir uno de un proveedor</string>
<string name="nc_get_source_code">Obtener el código fuente</string>
<string name="nc_group">Grupo</string>

View File

@ -0,0 +1,351 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name= "nc_edit">Muuda</string>
<string name="add_to_notes">Lisa Märkmetesse</string>
<string name="added_to_favorites">Lisa %1$s vestlus lemmikuks</string>
<string name="appbar_search_in">Otsi siin: %s</string>
<string name="archive_conversation">Arhiveeri vestlus</string>
<string name="archived">Arhiveeritud</string>
<string name="archived_conversation">Arhiveeritud %1$s</string>
<string name="audio_call">Häälkõne</string>
<string name="audio_output_bluetooth">Bluetooth</string>
<string name="audio_output_dialog_headline">Heliväljund</string>
<string name="audio_output_phone">Telefon</string>
<string name="audio_output_speaker">Valjuhääldi</string>
<string name="audio_output_wired_headset">Kaabliga kõrvaklapid</string>
<string name="automatic_status_set">Su staatus määrati automaatselt</string>
<string name="avatar">Tunnuspilt ehk avatar</string>
<string name="away">Eemal</string>
<string name="back_button">Tagasi-nupp</string>
<string name="ban">Sea suhtluskeeld</string>
<string name="ban_participant">Sea osalejale suhtluskeeld</string>
<string name="bans_list">Suhtluskeelu saanute loend</string>
<string name="calendar">Kalender</string>
<string name="choose_avatar_from_cloud">Vali tunnuspilt pilvest</string>
<string name="clear_status_message">Tühjenda staatuseteade</string>
<string name="clear_status_message_after">Tühjenda staatuseteade pärast</string>
<string name="close">Sulge</string>
<string name="close_icon">Sulgemise ikoon</string>
<string name="connection_established">Saadi ühendus</string>
<string name="connection_lost">Ühendus on katkenud</string>
<string name="connection_lost_sent_messages_are_queued">Ühendus on katkenud - saadetud sõnumid on edasisaatmise ootejärjekorras</string>
<string name="conversations">Vestlused</string>
<string name="create_conversation">Loo vestlus</string>
<string name="custom">Kohandatud</string>
<string name="delete_avatar">Kustuta tunnuspilt</string>
<string name="deleted_conversation">%1$s vestlus on kustutatud</string>
<string name="dnd">Ära sega</string>
<string name="dontClear">Ära tühjenda</string>
<string name="edit">Muuda</string>
<string name="edit_error_24_hours_old_message">Sa ei saa muuta sõnumeid, mis on vanemad, kui 24 tundi</string>
<string name="edit_message_icon_description">Sõnumi muutmise ikoon</string>
<string name="emoji_category_recent">Hiljutised</string>
<string name="encrypted">Krüptitud</string>
<string name="end_call_for_everyone">Lõpeta kõne kõigi jaoks</string>
<string name="error_loading_chats">Sinu vestluste laadimisel tekkis viga</string>
<string name="error_unbanning">Osaleja suhtluskeelu eemaldamisel tekkis viga</string>
<string name="failed_to_save">„%1$s“ salvestamine ei õnnestunud</string>
<string name="file_list_folder">kaust</string>
<string name="file_list_loading">Laadimisel...</string>
<string name="fourHours">4 tundi</string>
<string name="get_invitations_error">Ootel kutsete laadimine ei õnnestunud</string>
<string name="hint_edited_message">(muudetud)</string>
<string name="internal_note">Sisemine märge</string>
<string name="invisible">Nähtamatu</string>
<string name="later_today">Täna hiljem</string>
<string name="leave_call">Lahku kõnest</string>
<string name="left_conversation">Sa lahkusid %1$s vestlusest</string>
<string name="load_more_results">Laadi veel tulemusi</string>
<string name="lock_conversation">Lukusta vestlus</string>
<string name="lower_hand">Lase käsi alla</string>
<string name="menu_item_sort_by_date_newest_first">Uuemad eespool</string>
<string name="menu_item_sort_by_date_oldest_first">Vanemad eespool</string>
<string name="menu_item_sort_by_name_a_z">A - Z</string>
<string name="menu_item_sort_by_name_z_a">Z - A</string>
<string name="menu_item_sort_by_size_biggest_first">Suuremad esimesena</string>
<string name="menu_item_sort_by_size_smallest_first">Väiksemad esimesenaa</string>
<string name="message_deleted_by_you">Sina kustutasid sõnumi</string>
<string name="message_last_edited_by">%1$s muutis sõnumit</string>
<string name="message_search_begin_empty">Otsingul pole tulemusi</string>
<string name="messages">Sõnumid</string>
<string name="nc_about">Info</string>
<string name="nc_account_chooser_active_user">Aktiivne kasutaja</string>
<string name="nc_account_chooser_add_account">Lisa konto</string>
<string name="nc_action_open_main_menu">Ava põhimenüü</string>
<string name="nc_add_attachment">Lisa manus</string>
<string name="nc_add_emojis">Lisa emojisid</string>
<string name="nc_add_file">Lisa vestlusele</string>
<string name="nc_add_participants">Lisa osalejaid</string>
<string name="nc_add_to_favorites">Lisa lemmikutesse</string>
<string name="nc_attendee_pin">PIN-kood: %1$s</string>
<string name="nc_call_button_content_description_answer_video_call">Vasta videokõnena</string>
<string name="nc_call_button_content_description_answer_voice_only">Vasta vaid häälkõnena</string>
<string name="nc_call_button_content_description_audio_output">Muuda heliväljundit</string>
<string name="nc_call_button_content_description_camera">Lülita kaamera sisse/välja</string>
<string name="nc_call_button_content_description_hangup">Lõpeta kõne</string>
<string name="nc_call_button_content_description_microphone">Lülita mikrofon sisse/välja</string>
<string name="nc_call_name">Vestluse nimi</string>
<string name="nc_cancel">Loobu</string>
<string name="nc_change_password">Muuda salasõna</string>
<string name="nc_common_copy">Kopeeri</string>
<string name="nc_common_copy_success">Kopeeritud lõikepuhvrisse</string>
<string name="nc_common_create">Lisa</string>
<string name="nc_common_disabled">Keelatud</string>
<string name="nc_common_dismiss">Jäta vahele</string>
<string name="nc_common_more_options">Täiendavad valikud</string>
<string name="nc_common_skip">Jäta vahele</string>
<string name="nc_common_unknown">Teadmata</string>
<string name="nc_contacts_done">Valmis</string>
<string name="nc_conversation_description">Vestluse kirjeldus</string>
<string name="nc_conversation_menu_video_call">Videokõne</string>
<string name="nc_conversation_menu_voice_call">Häälkõne</string>
<string name="nc_conversation_not_found">Vestlust ei leidu</string>
<string name="nc_copy_message">Kopeeri</string>
<string name="nc_create_new_conversation">Loo uus vestlus</string>
<string name="nc_create_poll">Loo küsitlus</string>
<string name="nc_date_header_today">Täna</string>
<string name="nc_date_header_yesterday">Eile</string>
<string name="nc_delete">Kustuta</string>
<string name="nc_delete_all">Kustuta kõik</string>
<string name="nc_delete_call">Kustuta vestlus</string>
<string name="nc_delete_message">Kustuta</string>
<string name="nc_description_record_voice">Salvesta häälsõnum</string>
<string name="nc_description_send_message_button">Saada sõnum</string>
<string name="nc_diagnose_account_server">Server</string>
<string name="nc_diagnose_account_user_name">Kasutaja</string>
<string name="nc_diagnose_android_version_title">Androidi versioon</string>
<string name="nc_diagnose_app_category_title">Rakendus</string>
<string name="nc_diagnose_app_name_title">Rakenduse nimi</string>
<string name="nc_diagnose_app_version_title">Rakenduse versioon</string>
<string name="nc_diagnose_battery_optimization_title">Akuseaded</string>
<string name="nc_diagnose_device_name_title">Seade</string>
<string name="nc_diagnose_firebase_push_token_latest_fetch">Firebase\'i tõuketeenuste tunnusloa viimane laadimine</string>
<string name="nc_diagnose_firebase_push_token_latest_generated">Firebase\'i tõuketeenuste tunnusloa viimane loomine</string>
<string name="nc_diagnose_firebase_push_token_missing">Firebase\'i tõuketeenuste tunnusluba on puudu. Palun koosta asjakohane veateade.</string>
<string name="nc_diagnose_firebase_push_token_title">Firebase\'i tõuketeenuste tunnusluba</string>
<string name="nc_diagnose_latest_push_registration_at_push_proxy">Viimane registreerimine tõuketeenuste vahendajas</string>
<string name="nc_diagnose_latest_push_registration_at_push_proxy_fail">Pole veel registreeritud tõuketeenuste vahendajas</string>
<string name="nc_diagnose_latest_push_registration_at_server">Tõuketeenuste viimane registreerimine serveris</string>
<string name="nc_dialog_invalid_password">Vale salasõna</string>
<string name="nc_dialog_maintenance_mode">Hooldusrežiim</string>
<string name="nc_dialog_maintenance_mode_description">Server on hetkel hooldusrežiimis.</string>
<string name="nc_dialog_outdated_client">Rakendus on aegunud</string>
<string name="nc_dialog_outdated_client_description">See rakendus on liiga vana ja pole serveri poolt enam toetatud. Palun uuenda rakendust.</string>
<string name="nc_dialog_outdated_client_option_update">Uuenda</string>
<string name="nc_dialog_save_to_storage_no">Ei</string>
<string name="nc_dialog_save_to_storage_yes">Ja</string>
<string name="nc_edit_message">Redigeeri</string>
<string name="nc_email">Epost</string>
<string name="nc_expire_message_one_day">1 päev</string>
<string name="nc_expire_message_one_hour">1 tund</string>
<string name="nc_expire_message_one_week">1 nädal</string>
<string name="nc_federation_invitation_accept">Nõustu</string>
<string name="nc_federation_invitation_reject">Keeldu</string>
<string name="nc_file_browser_back">Tagasi</string>
<string name="nc_forward_message">Edasi</string>
<string name="nc_gallery">Galerii</string>
<string name="nc_get_from_provider">Kas sul ei ole veel oma serverit?\nVajuta siia, et tutvuda teenusepakkujatega</string>
<string name="nc_get_source_code">Vaata lähtekoodi</string>
<string name="nc_group">Grupp</string>
<string name="nc_groups">Grupid</string>
<string name="nc_guest">Külaline</string>
<string name="nc_guest_access_password_dialog_hint">Sisesta salasõna</string>
<string name="nc_guest_access_password_dialog_title">Salasõna külalisele</string>
<string name="nc_guest_access_password_failed">Viga salasõna salvestamisel või eemaldamisel.</string>
<string name="nc_guest_access_password_summary">Määra salasõna, millega saad piirata avaliku lingi kasutajaid.</string>
<string name="nc_guest_access_password_title">Kaitstud salasõnaga</string>
<string name="nc_guest_access_password_weak_alert_title">Nõrk salasõna</string>
<string name="nc_last_moderator_leaving_room_warning">Pead määrtama uue moderaatori enne, kui saad siis vestlusest lahkuda</string>
<string name="nc_license_title">Litsents</string>
<string name="nc_mark_as_read">Märgi loetuks</string>
<string name="nc_mark_as_unread">Märgi mitteloetuks</string>
<string name="nc_message_failed">Ebaõnnestus</string>
<string name="nc_message_offline">Offline</string>
<string name="nc_message_sending">Saatmisel</string>
<string name="nc_message_sent">Sõnum on saadetud</string>
<string name="nc_missed_call">Vastamata kõne kasutajalt %s</string>
<string name="nc_moderator">Moderaator</string>
<string name="nc_new_conversation_visibility">Nähtavus</string>
<string name="nc_new_messages">Lugemata sõnumid</string>
<string name="nc_nick_guest">Külaline</string>
<string name="nc_no">Ei</string>
<string name="nc_not_now">Mitte praegu</string>
<string name="nc_notification_channel_calls">Kõned</string>
<string name="nc_notification_channel_messages">Sõnumid</string>
<string name="nc_notification_channel_uploads">Üleslaadimised</string>
<string name="nc_notification_settings">Teavituse seadistused</string>
<string name="nc_ok">OK</string>
<string name="nc_open_conversation_to_registered_users">Ava vestlus registreeritud kasutajatele</string>
<string name="nc_open_to_guest_app_users">Lisaks ava ka külalisrakenduse kasutajatele</string>
<string name="nc_owner">Omanik</string>
<string name="nc_participants">Osalejad</string>
<string name="nc_participants_add">Lisa osalejaid</string>
<string name="nc_password">Salasõna</string>
<string name="nc_plain_old_messages">Sõnumid</string>
<string name="nc_privacy">Privaatsus</string>
<string name="nc_promote">Määra moderaatoriks</string>
<string name="nc_public_call_status">Avalik vestlus</string>
<string name="nc_push_disabled">Tõuketeavitused pole kasutusel</string>
<string name="nc_push_to_talk">Raadiosaatja režiim</string>
<string name="nc_refresh">Värskenda</string>
<string name="nc_remove_from_favorites">Eemalda lemmikutest</string>
<string name="nc_remove_group_and_members">Eemalda gruppe ja liikmeid</string>
<string name="nc_remove_participant">Eemalda osalejaid</string>
<string name="nc_remove_password">Eemalda salasõna</string>
<string name="nc_remove_team_and_members">Eemalda tiime ja liikmeid</string>
<string name="nc_rename_confirm">Muuda nime</string>
<string name="nc_reply">Vasta</string>
<string name="nc_reply_privately">Vasta privaatselt</string>
<string name="nc_save_message">Salvesta</string>
<string name="nc_save_success">Salvestamine õnnestus</string>
<string name="nc_screen_lock_timeout_30">30 sekundit</string>
<string name="nc_screen_lock_timeout_300">5 minutit</string>
<string name="nc_screen_lock_timeout_60">1 minut</string>
<string name="nc_screen_lock_timeout_600">10 minutit</string>
<string name="nc_screen_lock_timeout_immediate">Kohene</string>
<string name="nc_screen_lock_timeout_six_hundred">600</string>
<string name="nc_screen_lock_timeout_sixty">60</string>
<string name="nc_screen_lock_timeout_thirty">30</string>
<string name="nc_screen_lock_timeout_three_hundred">300</string>
<string name="nc_search">Otsi</string>
<string name="nc_select_an_account">Otsi kasutajakontot</string>
<string name="nc_select_participants">Vali osalejaid</string>
<string name="nc_sent_a_gif" formatted="true">%1$s saatis gif-faili.</string>
<string name="nc_sent_a_gif_you">Sina saatsid gif-faili.</string>
<string name="nc_sent_a_video" formatted="true">%1$s saatis video.</string>
<string name="nc_sent_a_video_you">Sina saatsid video.</string>
<string name="nc_sent_an_attachment" formatted="true">%1$s saatis manuse.</string>
<string name="nc_sent_an_attachment_you">Sina saatsid manuse.</string>
<string name="nc_sent_an_audio" formatted="true">%1$s saatis helifaili.</string>
<string name="nc_sent_an_audio_you">Sina saatsid helifaili.</string>
<string name="nc_sent_an_image" formatted="true">%1$s saatis pildi.</string>
<string name="nc_sent_an_image_you">Sina saatsid pildi.</string>
<string name="nc_sent_deck_card" formatted="true">%1$s saatis kanbani kaardi</string>
<string name="nc_sent_deck_card_you">Sina saatsid kanbani kaardi</string>
<string name="nc_sent_location" formatted="true">%1$s saatis asukoha.</string>
<string name="nc_sent_location_you">Sina saatsid asukoha.</string>
<string name="nc_sent_poll" formatted="true">%1$s saatis küsitluse.</string>
<string name="nc_sent_poll_you">Sina saatsid küsitluse.</string>
<string name="nc_sent_voice" formatted="true">%1$s saatis häälsõnumi.</string>
<string name="nc_sent_voice_you">Sina saatsid häälsõnumi.</string>
<string name="nc_server_connect">Testi ühendust serveriga</string>
<string name="nc_server_import_account_plain">Impordi kasutajakonto</string>
<string name="nc_server_import_accounts">Impordi kasutajakontod rakendusest %1$s</string>
<string name="nc_server_import_accounts_plain">Impordi kasutajakontod</string>
<string name="nc_server_testing_connection">Ühenduse testimine</string>
<string name="nc_server_url">Serveri aadress https://…</string>
<string name="nc_set_new_password">Määra uus salasõna</string>
<string name="nc_set_password">Määra salasõna</string>
<string name="nc_settings">Seadistused</string>
<string name="nc_settings_advanced_title">Täiendavad seadistused</string>
<string name="nc_settings_appearance">Välimus</string>
<string name="nc_settings_call_ringtone">Kõned</string>
<string name="nc_settings_notification_sounds_post_oreo">Teavitused</string>
<string name="nc_settings_other_notifications_ringtone">Sõnumid</string>
<string name="nc_settings_phone_book_integration_phone_number_dialog_title">Telefoninumber</string>
<string name="nc_settings_privacy">Privaatsus</string>
<string name="nc_settings_proxy_host_title">Proksiserveri aadress</string>
<string name="nc_settings_proxy_password_title">Proksiserveri salasõna</string>
<string name="nc_settings_proxy_port_title">Proksiserveri port</string>
<string name="nc_settings_proxy_type_title">Proksiserveri tüüp</string>
<string name="nc_settings_proxy_username_title">Proksiserveri kasutajanimi</string>
<string name="nc_settings_remove">Eemalda</string>
<string name="nc_settings_remove_account">Eemalda konto</string>
<string name="nc_settings_theme_dark">Hele</string>
<string name="nc_settings_theme_light">Tume</string>
<string name="nc_settings_theme_title">Teema</string>
<string name="nc_settings_warning">Hoiatus</string>
<string name="nc_share_link">Jaga linki</string>
<string name="nc_share_to_choose_account">Vali konto</string>
<string name="nc_shared_items_location">Asukoht</string>
<string name="nc_sort_by">Sorteeri</string>
<string name="nc_start_group_chat">Alusta rühmavestlust</string>
<string name="nc_switch_account">Vaheta kasutajakontot</string>
<string name="nc_team">Tiim</string>
<string name="nc_teams">Tiimid</string>
<string name="nc_upload_from_device">Laadi üles seadmest</string>
<string name="nc_upload_in_progess">Üleslaadimine</string>
<string name="nc_user">Kasutaja</string>
<string name="nc_video_filename">Videosalvestus kasutajalt %1$s</string>
<string name="nc_visible">Nähtav</string>
<string name="nc_yes">Jah</string>
<string name="next_week">Järgmine nädal</string>
<string name="no_conversations_archived">Ühtegi vestlust pole arhiveeritud</string>
<string name="oneHour">1 tund</string>
<string name="online">Online</string>
<string name="online_status">Võrgus staatus</string>
<string name="playback_speed_control">Taasesituse kiiruse juhtimine</string>
<string name="polls_option_delete">Kustuta %1$d valik</string>
<string name="polls_option_hint">%1$d valik</string>
<string name="polls_options">Sätted</string>
<string name="polls_question">Küsimus</string>
<string name="polls_results_subtitle">Tulemused</string>
<string name="polls_settings">Seaded</string>
<string name="previously_set">Varasemalt seatud</string>
<string name="reactions_tab_all">Kõik</string>
<string name="resend_message">Saada uuesti</string>
<string name="reset_status">Lähesta olek</string>
<string name="save">Salvesta</string>
<string name="scope_federated_title">Federated</string>
<string name="scope_local_title">Kohalik</string>
<string name="scope_private_title">Privaatne</string>
<string name="secondsAgo">sekundit tagasi</string>
<string name="selected_list_item">Valitud</string>
<string name="send_email">Saada e-kiri</string>
<string name="set_avatar_from_camera">Lisa tunnuspilt kaamera abil</string>
<string name="set_status">Määra staatus</string>
<string name="set_status_message">Sea staatuse sõnum</string>
<string name="share">Jaga</string>
<string name="shared_items_audio">Helid</string>
<string name="shared_items_file">Fail</string>
<string name="shared_items_media">Meedia</string>
<string name="shared_items_other">Muu</string>
<string name="shared_items_voice">Hääl</string>
<string name="show_ban_reason">Näita suhtluskeelu seadmise põhjus</string>
<string name="show_banned_participants">Näita suhtluskeelu saanud osalejaid</string>
<string name="starred">Lemmik</string>
<string name="status_message">Staatuse teade</string>
<string name="status_reverted">Olek on tagasi pööratud</string>
<string name="take_photo_send">Saada</string>
<string name="thirtyMinutes">30 minutit</string>
<string name="thisWeek">Käesolev nädal</string>
<string name="this_weekend">See nädalavahetus</string>
<string name="today">Täna</string>
<string name="tomorrow">Homme</string>
<string name="translate">Tõlgi</string>
<string name="translation">Tõlge</string>
<string name="translation_copy_translated_text">Kopeeri tõlgitud tekst</string>
<string name="translation_detect_language">Tuvasta keel</string>
<string name="translation_device_settings">Seadme seaded</string>
<string name="translation_error_message">Ei suutnud keelt tuvastada</string>
<string name="translation_error_title">Tõlkimine ebaõnnestus</string>
<string name="translation_from">Saatja</string>
<string name="translation_to">Saaja</string>
<string name="typing_1_other">ja veel 1 osaleja kirjutab…</string>
<string name="typing_are_typing">kirjutavad…</string>
<string name="typing_is_typing">kirjutab…</string>
<string name="typing_x_others">ja veel %1$s osalejat kirjutavad…</string>
<string name="unarchive_conversation">Võta vestlus arhiivist välja</string>
<string name="unarchive_hint">Kui vestlus on arhiivist välja võetud, siis on ta jälle vaikimisi näha.</string>
<string name="unarchived_conversation">%1$s on arhiivist välja võetud</string>
<string name="unban">Eemalda suhtluskeeld</string>
<string name="unread">Lugemata</string>
<string name="upload_new_avatar_from_device">Lisa uus tunnuspilt arvutist või nutiseadmest</string>
<string name="user_absence">%1$s pole kohal ja ei pruugi vastata</string>
<string name="user_absence_for_one_day">%1$s pole täna kohal</string>
<string name="user_absence_replacement">Asendus:</string>
<string name="user_avatar">Kasutaja tunnuspilt</string>
<string name="user_info_address">Aadress</string>
<string name="user_info_displayname">Täisnimi</string>
<string name="user_info_email">Epost</string>
<string name="user_info_phone">Telefoninumber</string>
<string name="user_info_twitter">Twitter</string>
<string name="user_info_website">Veebileht</string>
<string name="user_status">Staatus</string>
<string name="userinfo_no_info_headline">Isiklikud andmed on kirjeldamata</string>
<string name="whats_your_status">Mis on su staatus?</string>
<plurals name="see_similar_system_messages">
<item quantity="one">Vaata %d sarnast sõnumit</item>
<item quantity="other">Vaata %d sarnast sõnumit</item>
</plurals>
</resources>

View File

@ -217,6 +217,7 @@
<string name="nc_formatted_message_you">Zu: %1$s</string>
<string name="nc_forward_message">Birbidali</string>
<string name="nc_forward_to_three_dots">Birbidali …</string>
<string name="nc_gallery">Galeria</string>
<string name="nc_get_from_provider">Oraindik zerbitzaririk gabe?\n Egin klik hemen hornitzailetik bat lortzeko</string>
<string name="nc_get_source_code">Iturburu kodea eskuratu</string>
<string name="nc_group">Taldea</string>

View File

@ -163,6 +163,7 @@
<string name="nc_formatted_message_you">شما: %1$s</string>
<string name="nc_forward_message">ارسال کردن</string>
<string name="nc_forward_to_three_dots">ارسال کردن به …</string>
<string name="nc_gallery">گالری</string>
<string name="nc_get_from_provider">"آیا هیچ سروری در دسترس ندارید؟ برای گرفتن سرور از یک ارائه دهنده کلیک کنید "</string>
<string name="nc_get_source_code">دریافت کد منبع</string>
<string name="nc_group">گروه</string>

View File

@ -148,6 +148,7 @@
<string name="nc_formatted_message_you">Sinä: %1$s</string>
<string name="nc_forward_message">Välitä</string>
<string name="nc_forward_to_three_dots">Välitä viesti …</string>
<string name="nc_gallery">Galleria</string>
<string name="nc_get_from_provider">Ei palvelinta?\nNapsauta tästä ja hanki palveluntarjoajalta</string>
<string name="nc_get_source_code">Lataa lähdekoodi</string>
<string name="nc_group">Ryhmä</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Vous : %1$s</string>
<string name="nc_forward_message">Transférer</string>
<string name="nc_forward_to_three_dots">Transférer à...</string>
<string name="nc_gallery">Galerie</string>
<string name="nc_get_from_provider">Vous n\'avez pas encore de serveur ?\nCliquez-ici pour en obtenir un chez un fournisseur.</string>
<string name="nc_get_source_code">Obtenir le code source</string>
<string name="nc_group">Groupe</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Tusa: %1$s</string>
<string name="nc_forward_message">Ar aghaidh</string>
<string name="nc_forward_to_three_dots">Ar aghaidh chuig…</string>
<string name="nc_gallery">Gailearaí</string>
<string name="nc_get_from_provider">Nach bhfuil freastalaí agat fós?\nCliceáil anseo chun ceann a fháil ó sholáthraí</string>
<string name="nc_get_source_code">Faigh cód foinse</string>
<string name="nc_group">Grúpa</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Vde.: %1$s</string>
<string name="nc_forward_message">Reenviar</string>
<string name="nc_forward_to_three_dots">Reenviar a…</string>
<string name="nc_gallery">Galería</string>
<string name="nc_get_from_provider">Aínda non ten un servidor? \nPrema aquí para obter un dun provedor</string>
<string name="nc_get_source_code">Obter o código fonte</string>
<string name="nc_group">Grupo</string>

View File

@ -145,6 +145,7 @@
<string name="nc_formatted_message_you">Vi: %1$s</string>
<string name="nc_forward_message">Proslijedi</string>
<string name="nc_forward_to_three_dots">Proslijedi…</string>
<string name="nc_gallery">Galerija</string>
<string name="nc_get_from_provider">Nemate poslužitelj?\nKliknite ovdje kako biste ga dobili od davatelja usluge</string>
<string name="nc_get_source_code">Preuzmi izvorni kod</string>
<string name="nc_group">Grupa</string>

View File

@ -198,6 +198,7 @@
<string name="nc_formatted_message_you">Ön: %1$s</string>
<string name="nc_forward_message">Továbbítás</string>
<string name="nc_forward_to_three_dots">Továbbítás…</string>
<string name="nc_gallery">Galéria</string>
<string name="nc_get_from_provider">Nincs még saját kiszolgálója?\nKattintson ide a beszerzéshez az egyik szolgáltatótól</string>
<string name="nc_get_source_code">Forráskód letöltése</string>
<string name="nc_group">Csoport</string>

View File

@ -170,6 +170,7 @@
<string name="nc_formatted_message_you">Tu: %1$s</string>
<string name="nc_forward_message">Inoltra</string>
<string name="nc_forward_to_three_dots">Inoltra a …</string>
<string name="nc_gallery">Galleria</string>
<string name="nc_get_from_provider">Non hai ancora un server?\nFai clic qui per ottenerne uno da un fornitore</string>
<string name="nc_get_source_code">Ottieni codice sorgente</string>
<string name="nc_group">Gruppo</string>

View File

@ -245,6 +245,7 @@
<string name="nc_formatted_message_you">あなた:%1$s</string>
<string name="nc_forward_message">転送</string>
<string name="nc_forward_to_three_dots">次に転送 …</string>
<string name="nc_gallery">ギャラリー</string>
<string name="nc_get_from_provider">まだサーバーがありませんか?\ nプロバイダーから取得するにはここをクリックしてください</string>
<string name="nc_get_source_code">ソースコードを入手</string>
<string name="nc_group">グループ</string>

View File

@ -167,6 +167,7 @@
<string name="nc_formatted_message_you">나: %1$s</string>
<string name="nc_forward_message">전달</string>
<string name="nc_forward_to_three_dots">...에 전달</string>
<string name="nc_gallery">갤러리</string>
<string name="nc_get_from_provider">서버가 없으신가요?\n공급자를 알아보려면 누르십시오</string>
<string name="nc_get_source_code">소스 코드 얻기</string>
<string name="nc_group">그룹</string>

View File

@ -151,6 +151,7 @@
<string name="nc_formatted_message_you">Jūs: %1$s</string>
<string name="nc_forward_message">Persiųsti</string>
<string name="nc_forward_to_three_dots">Persiunčiama į …</string>
<string name="nc_gallery">Galerija</string>
<string name="nc_get_from_provider">Neturite serverio? Spauskite čia, kad galėtumėte pasirinkti vieną iš paslaugų teikėjų</string>
<string name="nc_get_source_code">Gauti išeities kodą</string>
<string name="nc_group">Grupė</string>

View File

@ -255,6 +255,7 @@
<string name="nc_formatted_message_you">Du: %1$s</string>
<string name="nc_forward_message">Fremover</string>
<string name="nc_forward_to_three_dots">Videresender til …</string>
<string name="nc_gallery">Galleri</string>
<string name="nc_get_from_provider">Har du ingen server enda?\nKlikk her for å opprette en hos en tilbyder</string>
<string name="nc_get_source_code">Få kildekoden</string>
<string name="nc_group">Gruppe</string>

View File

@ -259,6 +259,7 @@
<string name="nc_formatted_message_you">Jij: %1$s</string>
<string name="nc_forward_message">Doorsturen</string>
<string name="nc_forward_to_three_dots">Doorsturen aan …</string>
<string name="nc_gallery">Galerij</string>
<string name="nc_get_from_provider">Heb je nog geen server?\n
Kies er eentje van een provider.</string>
<string name="nc_get_source_code">Download sourcecode</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Ty: %1$s</string>
<string name="nc_forward_message">Przekaż dalej</string>
<string name="nc_forward_to_three_dots">Przekaż do…</string>
<string name="nc_gallery">Galeria</string>
<string name="nc_get_from_provider">Nie masz jeszcze serwera?\nKliknij tutaj, aby uzyskać jeden od dostawcy</string>
<string name="nc_get_source_code">Pobierz kod źródłowy</string>
<string name="nc_group">Grupa</string>

View File

@ -94,7 +94,7 @@
<string name="nc_Server_account_imported">A conta selecionada agora está importada e disponível</string>
<string name="nc_about">Sobre</string>
<string name="nc_account_chooser_active_user">Usuário ativo </string>
<string name="nc_account_chooser_add_account">Adicionar Conta</string>
<string name="nc_account_chooser_add_account">Adicionar conta</string>
<string name="nc_account_scheduled_for_deletion">A conta está agendada para exclusão e não pode ser alterada</string>
<string name="nc_action_open_main_menu">Abrir menu principal</string>
<string name="nc_add_attachment">Adicionar anexo</string>
@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Você: %1$s</string>
<string name="nc_forward_message">Enviar</string>
<string name="nc_forward_to_three_dots">Enviar para …</string>
<string name="nc_gallery">Galeria</string>
<string name="nc_get_from_provider">Não tem servidor ainda?\nClique aqui para obter um</string>
<string name="nc_get_source_code">Obtenha o código-fonte</string>
<string name="nc_group">Grupo</string>
@ -409,8 +410,8 @@
<string name="nc_sent_an_audio_you">Você enviou um áudio.</string>
<string name="nc_sent_an_image" formatted="true">%1$s enviou uma imagem.</string>
<string name="nc_sent_an_image_you">Você enviou uma imagem.</string>
<string name="nc_sent_deck_card" formatted="true">%1$s enviei uma carta deck</string>
<string name="nc_sent_deck_card_you">Você enviou uma carta de deck</string>
<string name="nc_sent_deck_card" formatted="true">%1$s enviei um cartão de Deck</string>
<string name="nc_sent_deck_card_you">Você enviou um cartão de Deck</string>
<string name="nc_sent_location" formatted="true">%1$s enviou uma localização.</string>
<string name="nc_sent_location_you">Você enviou um local.</string>
<string name="nc_sent_poll" formatted="true">%1$s enviou uma enquete.</string>
@ -499,7 +500,7 @@
<string name="nc_share_this_location">Compartilhe este local</string>
<string name="nc_share_to_choose_account">Escolha a conta </string>
<string name="nc_shared_items">Itens compartilhados</string>
<string name="nc_shared_items_deck_card">Cartão de deck</string>
<string name="nc_shared_items_deck_card">Cartão de Deck</string>
<string name="nc_shared_items_description">Imagens, arquivos, mensagens de voz …</string>
<string name="nc_shared_items_empty">Nenhum item compartilhado</string>
<string name="nc_shared_items_location">Localização</string>
@ -535,6 +536,7 @@
<string name="nc_yes">Sim</string>
<string name="new_conversation_creation_icon">Novo ícone de criação de conversa</string>
<string name="next_week">Próxima semana</string>
<string name="no_conversations_archived">Nenhuma conversa arquivada</string>
<string name="no_offline_messages_saved">Nenhuma mensagem offline foi salva</string>
<string name="no_phone_book_integration_due_to_permissions">Sem integração de número de telefone devido à falta de permissões</string>
<string name="oneHour">1 hora</string>
@ -675,6 +677,11 @@
<string name="userinfo_no_info_text">Adicione nome, foto e detalhes de contato em sua página de perfil.</string>
<string name="video_call">Video Chamada</string>
<string name="whats_your_status">Qual é o seu status?</string>
<plurals name="see_similar_system_messages">
<item quantity="one">Veja %d mensagem semelhante</item>
<item quantity="many">Veja %d mensagens semelhantes</item>
<item quantity="other">Veja %d mensagens semelhantes</item>
</plurals>
<plurals name="polls_amount_voters">
<item quantity="one">%d votos</item>
<item quantity="many">%d voto</item>

View File

@ -223,6 +223,7 @@
<string name="nc_formatted_message_you">Вы: %1$s</string>
<string name="nc_forward_message">Переслать</string>
<string name="nc_forward_to_three_dots">Вперёд к …</string>
<string name="nc_gallery">Галерея</string>
<string name="nc_get_from_provider">Нет своего сервера?\nНажмите здесь чтобы заказать у провайдера</string>
<string name="nc_get_source_code">Исходный код</string>
<string name="nc_group">Группа</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Vy: %1$s</string>
<string name="nc_forward_message">Preposlať</string>
<string name="nc_forward_to_three_dots">Preposlať na …</string>
<string name="nc_gallery">Galéria</string>
<string name="nc_get_from_provider">Ešte nemáte server? \nKliknite sem a získajte jeden od poskytovateľa</string>
<string name="nc_get_source_code">Získajte zdrojový kód</string>
<string name="nc_group">Skupina</string>

View File

@ -179,6 +179,7 @@
<string name="nc_formatted_message_you">→ %1$s</string>
<string name="nc_forward_message">Posreduj</string>
<string name="nc_forward_to_three_dots">Posreduj za …</string>
<string name="nc_gallery">Galerija</string>
<string name="nc_get_from_provider">Še nimate izbranega oziroma nameščenega strežnika? Kliknite in si pridobite dostop.</string>
<string name="nc_get_source_code">Pridobi izvorno kodo</string>
<string name="nc_group">Skupina</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Ти: %1$s</string>
<string name="nc_forward_message">Проследи</string>
<string name="nc_forward_to_three_dots">Прослеђивање на …</string>
<string name="nc_gallery">Галерија</string>
<string name="nc_get_from_provider">Имате ли сервер?nКликните овде да направите један код провајдера</string>
<string name="nc_get_source_code">Изворни кôд</string>
<string name="nc_group">Група</string>

View File

@ -258,6 +258,7 @@
<string name="nc_formatted_message_you">Du: %1$s</string>
<string name="nc_forward_message">Vidarebefordra</string>
<string name="nc_forward_to_three_dots">Vidarebefordrar till …</string>
<string name="nc_gallery">Galleri</string>
<string name="nc_get_from_provider">Har du inte en server än?\nKlicka här för att få en från en leverantör</string>
<string name="nc_get_source_code">Hämta källkod</string>
<string name="nc_group">Grupp</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">Siz: %1$s</string>
<string name="nc_forward_message">İlet</string>
<string name="nc_forward_to_three_dots">Şuraya ilet …</string>
<string name="nc_gallery">Galeri</string>
<string name="nc_get_from_provider">Henüz bir sunucunuz yok mu?\Listeden bir hizmet sağlayıcısı seçebilirsiniz</string>
<string name="nc_get_source_code">Kaynak kodu alın</string>
<string name="nc_group">Grup</string>

View File

@ -257,6 +257,7 @@
<string name="nc_formatted_message_you">سىز:%1$s</string>
<string name="nc_forward_message">ئالدىغا</string>
<string name="nc_forward_to_three_dots">ئالدىغا…</string>
<string name="nc_gallery">Gallery</string>
<string name="nc_get_from_provider">مۇلازىمېتىرىڭىز يوقمۇ؟ \ n تەمىنلىگۈچىدىن بىرنى ئېلىش ئۈچۈن بۇ يەرنى چېكىڭ</string>
<string name="nc_get_source_code">مەنبە كودىغا ئېرىشىش</string>
<string name="nc_group">گۇرۇپپا</string>

View File

@ -143,7 +143,7 @@
<string name="nc_diagnose_account_server">Сервер</string>
<string name="nc_diagnose_account_user_name">Користувач</string>
<string name="nc_diagnose_app_category_title">Застосунок</string>
<string name="nc_diagnose_app_name_title">Дайте назву застосунку</string>
<string name="nc_diagnose_app_name_title">Зазначте назву застосунку</string>
<string name="nc_diagnose_battery_optimization_title">Налаштування батареї</string>
<string name="nc_diagnose_device_name_title">Пристрій</string>
<string name="nc_diagnose_signaling_mode_extern">Зовнішнє</string>
@ -175,6 +175,7 @@
<string name="nc_formatted_message_you">Ви: %1$s</string>
<string name="nc_forward_message">Переслати</string>
<string name="nc_forward_to_three_dots">Переслати …</string>
<string name="nc_gallery">Галерея</string>
<string name="nc_get_from_provider">Ще не маєте сервера?\nНатисніть тут щоб отримати в провайдера</string>
<string name="nc_get_source_code">Отримати вихідний код</string>
<string name="nc_group">Група</string>

View File

@ -200,6 +200,7 @@
<string name="nc_formatted_message_you">您:%1$s</string>
<string name="nc_forward_message">转发</string>
<string name="nc_forward_to_three_dots">转发至 …</string>
<string name="nc_gallery">相册</string>
<string name="nc_get_from_provider">还没有服务器吗?\n点此查看供应商</string>
<string name="nc_get_source_code">获取源代码</string>
<string name="nc_group">群组</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">你: %1$s</string>
<string name="nc_forward_message">轉寄</string>
<string name="nc_forward_to_three_dots">轉寄給 …</string>
<string name="nc_gallery">相簿</string>
<string name="nc_get_from_provider">您沒有自己的伺服器嗎?\n點這裡向服務供應商購買</string>
<string name="nc_get_source_code">取得原始碼</string>
<string name="nc_group">群組</string>

View File

@ -261,6 +261,7 @@
<string name="nc_formatted_message_you">你: %1$s</string>
<string name="nc_forward_message">轉貼</string>
<string name="nc_forward_to_three_dots">轉貼到…</string>
<string name="nc_gallery">相簿</string>
<string name="nc_get_from_provider">您沒有自己的伺服器嗎?\n點這裡向服務供應商購買</string>
<string name="nc_get_source_code">取得原始碼</string>
<string name="nc_group">群組</string>

View File

@ -541,6 +541,7 @@ How to translate with transifex:
<string name="nc_upload_confirm_send_single">Send this file to %1$s?</string>
<string name="nc_upload_in_progess">Uploading</string>
<string name="nc_upload_from_device">Upload from device</string>
<string name="nc_gallery">Gallery</string>
<string name="nc_upload_notification_text">%1$s to %2$s - %3$s\%%</string>
<string name="nc_upload_failed_notification_title">Failure</string>

View File

@ -11,7 +11,7 @@
buildscript {
ext {
kotlinVersion = '2.1.10'
kotlinVersion = '2.1.20'
}
repositories {
@ -21,7 +21,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:8.9.0'
classpath 'com.android.tools.build:gradle:8.9.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}"
classpath "org.jetbrains.kotlin:kotlin-serialization:${kotlinVersion}"
classpath 'com.github.spotbugs.snom:spotbugs-gradle-plugin:6.1.7'

File diff suppressed because it is too large Load Diff