Unverified Commit 38c960d8 authored by Ergashev Adizbek's avatar Ergashev Adizbek Committed by GitHub

Merge branch 'develop' into swipe-to-reply

parents 3b355afd 521f0a8b
...@@ -18,8 +18,8 @@ android { ...@@ -18,8 +18,8 @@ android {
applicationId "chat.rocket.android" applicationId "chat.rocket.android"
minSdkVersion versions.minSdk minSdkVersion versions.minSdk
targetSdkVersion versions.targetSdk targetSdkVersion versions.targetSdk
versionCode 2060 versionCode 2061
versionName "3.3.0" versionName "3.4.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true multiDexEnabled true
......
...@@ -27,4 +27,5 @@ sealed class ScreenViewEvent(val screenName: String) { ...@@ -27,4 +27,5 @@ sealed class ScreenViewEvent(val screenName: String) {
object Preferences : ScreenViewEvent("PreferencesFragment") object Preferences : ScreenViewEvent("PreferencesFragment")
object Profile : ScreenViewEvent("ProfileFragment") object Profile : ScreenViewEvent("ProfileFragment")
object Settings : ScreenViewEvent("SettingsFragment") object Settings : ScreenViewEvent("SettingsFragment")
object Directory : ScreenViewEvent("DirectoryFragment")
} }
...@@ -4,7 +4,7 @@ import androidx.lifecycle.Lifecycle ...@@ -4,7 +4,7 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent import androidx.lifecycle.OnLifecycleEvent
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.common.model.UserStatus import chat.rocket.common.model.UserStatus
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
......
...@@ -24,7 +24,7 @@ import chat.rocket.android.server.domain.GetCurrentServerInteractor ...@@ -24,7 +24,7 @@ import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.domain.GetSettingsInteractor import chat.rocket.android.server.domain.GetSettingsInteractor
import chat.rocket.android.server.domain.SITE_URL import chat.rocket.android.server.domain.SITE_URL
import chat.rocket.android.server.domain.TokenRepository import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.android.util.setupFabric import chat.rocket.android.util.setupFabric
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
......
package chat.rocket.android.authentication.infraestructure package chat.rocket.android.authentication.infrastructure
import chat.rocket.android.authentication.domain.model.TokenModel import chat.rocket.android.authentication.domain.model.TokenModel
import chat.rocket.android.dagger.scope.PerActivity import chat.rocket.android.dagger.scope.PerActivity
......
package chat.rocket.android.authentication.infraestructure package chat.rocket.android.authentication.infrastructure
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.core.content.edit import androidx.core.content.edit
......
...@@ -16,7 +16,7 @@ import chat.rocket.android.server.domain.isLdapAuthenticationEnabled ...@@ -16,7 +16,7 @@ import chat.rocket.android.server.domain.isLdapAuthenticationEnabled
import chat.rocket.android.server.domain.isPasswordResetEnabled import chat.rocket.android.server.domain.isPasswordResetEnabled
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.server.domain.wideTile import chat.rocket.android.server.domain.wideTile
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.android.util.extensions.isEmail import chat.rocket.android.util.extensions.isEmail
......
...@@ -15,7 +15,7 @@ import chat.rocket.android.server.domain.TokenRepository ...@@ -15,7 +15,7 @@ import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.domain.favicon import chat.rocket.android.server.domain.favicon
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.server.domain.wideTile import chat.rocket.android.server.domain.wideTile
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.android.util.extensions.serverLogoUrl import chat.rocket.android.util.extensions.serverLogoUrl
......
...@@ -25,18 +25,18 @@ interface LoginOptionsView : LoadingView, MessageView { ...@@ -25,18 +25,18 @@ interface LoginOptionsView : LoadingView, MessageView {
fun setupFacebookButtonListener(facebookOauthUrl: String, state: String) fun setupFacebookButtonListener(facebookOauthUrl: String, state: String)
/** /**
* Shows the "login by Github" view if it is enabled by the server settings. * Shows the "login by GitHub" view if it is enabled by the server settings.
* *
* REMARK: We must set up the Github button listener before enabling it * REMARK: We must set up the GitHub button listener before enabling it
* [setupGithubButtonListener]. * [setupGithubButtonListener].
* @see [showAccountsView] * @see [showAccountsView]
*/ */
fun enableLoginByGithub() fun enableLoginByGithub()
/** /**
* Setups the Github button. * Setups the GitHub button.
* *
* @param githubUrl The Github OAuth URL to authenticate with. * @param githubUrl The GitHub OAuth URL to authenticate with.
* @param state A random string generated by the app, which you'll verify later * @param state A random string generated by the app, which you'll verify later
* (to protect against forgery attacks). * (to protect against forgery attacks).
*/ */
...@@ -61,36 +61,36 @@ interface LoginOptionsView : LoadingView, MessageView { ...@@ -61,36 +61,36 @@ interface LoginOptionsView : LoadingView, MessageView {
fun setupGoogleButtonListener(googleUrl: String, state: String) fun setupGoogleButtonListener(googleUrl: String, state: String)
/** /**
* Shows the "login by Linkedin" view if it is enabled by the server settings. * Shows the "login by LinkedIn" view if it is enabled by the server settings.
* *
* REMARK: We must set up the Linkedin button listener before enabling it * REMARK: We must set up the LinkedIn button listener before enabling it
* [setupLinkedinButtonListener]. * [setupLinkedinButtonListener].
* @see [showAccountsView] * @see [showAccountsView]
*/ */
fun enableLoginByLinkedin() fun enableLoginByLinkedin()
/** /**
* Setups the Linkedin button. * Setups the LinkedIn button.
* *
* @param linkedinUrl The Linkedin OAuth URL to authenticate with. * @param linkedinUrl The LinkedIn OAuth URL to authenticate with.
* @param state A random string generated by the app, which you'll verify later * @param state A random string generated by the app, which you'll verify later
* (to protect against forgery attacks). * (to protect against forgery attacks).
*/ */
fun setupLinkedinButtonListener(linkedinUrl: String, state: String) fun setupLinkedinButtonListener(linkedinUrl: String, state: String)
/** /**
* Shows the "login by Gitlab" view if it is enabled by the server settings. * Shows the "login by GitLab" view if it is enabled by the server settings.
* *
* REMARK: We must set up the Gitlab button listener before enabling it * REMARK: We must set up the GitLab button listener before enabling it
* [setupGitlabButtonListener]. * [setupGitlabButtonListener].
* @see [showAccountsView] * @see [showAccountsView]
*/ */
fun enableLoginByGitlab() fun enableLoginByGitlab()
/** /**
* Setups the Gitlab button. * Setups the GitLab button.
* *
* @param gitlabUrl The Gitlab OAuth URL to authenticate with. * @param gitlabUrl The GitLab OAuth URL to authenticate with.
* @param state A random string generated by the app, which you'll verify later * @param state A random string generated by the app, which you'll verify later
* (to protect against forgery attacks). * (to protect against forgery attacks).
*/ */
...@@ -99,7 +99,7 @@ interface LoginOptionsView : LoadingView, MessageView { ...@@ -99,7 +99,7 @@ interface LoginOptionsView : LoadingView, MessageView {
/** /**
* Shows the "login by WordPress" view if it is enabled by the server settings. * Shows the "login by WordPress" view if it is enabled by the server settings.
* *
* REMARK: We must set up the Gitlab button listener before enabling it [setupWordpressButtonListener]. * REMARK: We must set up the GitLab button listener before enabling it [setupWordpressButtonListener].
*/ */
fun enableLoginByWordpress() fun enableLoginByWordpress()
......
package chat.rocket.android.authentication.loginoptions.ui package chat.rocket.android.authentication.loginoptions.ui
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.animation.ValueAnimator
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.PorterDuff import android.graphics.PorterDuff
...@@ -7,10 +10,13 @@ import android.os.Bundle ...@@ -7,10 +10,13 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.animation.AlphaAnimation
import android.view.animation.Animation
import android.widget.Button import android.widget.Button
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.appcompat.view.ContextThemeWrapper import androidx.appcompat.view.ContextThemeWrapper
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.marginTop
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.analytics.AnalyticsManager import chat.rocket.android.analytics.AnalyticsManager
...@@ -28,6 +34,7 @@ import chat.rocket.android.webview.sso.ui.ssoWebViewIntent ...@@ -28,6 +34,7 @@ import chat.rocket.android.webview.sso.ui.ssoWebViewIntent
import dagger.android.support.AndroidSupportInjection import dagger.android.support.AndroidSupportInjection
import kotlinx.android.synthetic.main.app_bar.* import kotlinx.android.synthetic.main.app_bar.*
import kotlinx.android.synthetic.main.fragment_authentication_login_options.* import kotlinx.android.synthetic.main.fragment_authentication_login_options.*
import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
private const val SERVER_NAME = "server_name" private const val SERVER_NAME = "server_name"
...@@ -61,6 +68,8 @@ internal const val REQUEST_CODE_FOR_OAUTH = 1 ...@@ -61,6 +68,8 @@ internal const val REQUEST_CODE_FOR_OAUTH = 1
internal const val REQUEST_CODE_FOR_CAS = 2 internal const val REQUEST_CODE_FOR_CAS = 2
internal const val REQUEST_CODE_FOR_SAML = 3 internal const val REQUEST_CODE_FOR_SAML = 3
private const val DEFAULT_ANIMATION_DURATION = 400L
fun newInstance( fun newInstance(
serverName: String, serverName: String,
state: String? = null, state: String? = null,
...@@ -238,7 +247,6 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView { ...@@ -238,7 +247,6 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView {
enableLoginByLinkedin() enableLoginByLinkedin()
} }
if (gitlabOauthUrl != null && state != null) { if (gitlabOauthUrl != null && state != null) {
setupGitlabButtonListener(gitlabOauthUrl.toString(), state.toString()) setupGitlabButtonListener(gitlabOauthUrl.toString(), state.toString())
enableLoginByGitlab() enableLoginByGitlab()
...@@ -390,11 +398,11 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView { ...@@ -390,11 +398,11 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView {
var isAccountsCollapsed = true var isAccountsCollapsed = true
button_expand_collapse_accounts.setOnClickListener { button_expand_collapse_accounts.setOnClickListener {
isAccountsCollapsed = if (isAccountsCollapsed) { isAccountsCollapsed = if (isAccountsCollapsed) {
button_expand_collapse_accounts.rotateBy(180F, 400) button_expand_collapse_accounts.rotateBy(180F, DEFAULT_ANIMATION_DURATION)
expandAccountsView() expandAccountsView()
false false
} else { } else {
button_expand_collapse_accounts.rotateBy(180F, 400) button_expand_collapse_accounts.rotateBy(180F, DEFAULT_ANIMATION_DURATION)
collapseAccountsView() collapseAccountsView()
true true
} }
...@@ -532,17 +540,73 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView { ...@@ -532,17 +540,73 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView {
} }
private fun expandAccountsView() { private fun expandAccountsView() {
(0..accounts_container.childCount) val buttons = (0..accounts_container.childCount)
.mapNotNull { accounts_container.getChildAt(it) as? Button } .mapNotNull { accounts_container.getChildAt(it) as? Button }
.filter { it.isClickable && !it.isVisible } .filter { it.isClickable && !it.isVisible }
.forEach { it.isVisible = true } val optionHeight = accounts_container.getChildAt(1).height +
accounts_container.getChildAt(1).marginTop
val collapsedHeight = accounts_container.height
val expandedHeight = collapsedHeight + optionHeight * buttons.size
with(ValueAnimator.ofInt(collapsedHeight, expandedHeight)) {
addUpdateListener {
val params = accounts_container.layoutParams
params.height = animatedValue as Int
accounts_container.layoutParams = params
}
addListener(object : AnimatorListenerAdapter() {
override fun onAnimationStart(animator: Animator) {
buttons.forEach {
it.isVisible = true
val anim = AlphaAnimation(0.0f, 1.0f)
anim.duration = DEFAULT_ANIMATION_DURATION
it.startAnimation(anim)
}
}
})
setDuration(DEFAULT_ANIMATION_DURATION).start()
}
} }
private fun collapseAccountsView() { private fun collapseAccountsView() {
(0..accounts_container.childCount) val buttons = (0..accounts_container.childCount)
.mapNotNull { accounts_container.getChildAt(it) as? Button } .mapNotNull { accounts_container.getChildAt(it) as? Button }
.filter { it.isClickable && it.isVisible } .filter { it.isClickable && it.isVisible }
.drop(3) .drop(3)
.forEach { it.isVisible = false } val optionHeight = accounts_container.getChildAt(1).height +
accounts_container.getChildAt(1).marginTop
val expandedHeight = accounts_container.height
val collapsedHeight = expandedHeight - optionHeight * buttons.size
with(ValueAnimator.ofInt(expandedHeight, collapsedHeight)) {
addUpdateListener {
val params = accounts_container.layoutParams
params.height = animatedValue as Int
accounts_container.layoutParams = params
}
addListener(object : AnimatorListenerAdapter() {
override fun onAnimationStart(animator: Animator) {
buttons.forEach {
val anim = AlphaAnimation(1.0f, 0.0f)
anim.duration = DEFAULT_ANIMATION_DURATION
anim.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(animation: Animation) {
Timber.d("Animation starts: $animation")
}
override fun onAnimationEnd(animation: Animation) {
it.isVisible = false
}
override fun onAnimationRepeat(animation: Animation) {
Timber.d("Animation repeats: $animation")
}
})
it.startAnimation(anim)
}
}
})
setDuration(DEFAULT_ANIMATION_DURATION).start()
}
} }
} }
...@@ -7,7 +7,7 @@ import chat.rocket.android.server.domain.GetAccountsInteractor ...@@ -7,7 +7,7 @@ import chat.rocket.android.server.domain.GetAccountsInteractor
import chat.rocket.android.server.domain.GetSettingsInteractor import chat.rocket.android.server.domain.GetSettingsInteractor
import chat.rocket.android.server.domain.RefreshSettingsInteractor import chat.rocket.android.server.domain.RefreshSettingsInteractor
import chat.rocket.android.server.domain.SaveConnectingServerInteractor import chat.rocket.android.server.domain.SaveConnectingServerInteractor
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.server.presentation.CheckServerPresenter import chat.rocket.android.server.presentation.CheckServerPresenter
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
......
...@@ -13,7 +13,7 @@ import chat.rocket.android.server.domain.TokenRepository ...@@ -13,7 +13,7 @@ import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.domain.favicon import chat.rocket.android.server.domain.favicon
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.server.domain.wideTile import chat.rocket.android.server.domain.wideTile
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.android.util.extensions.serverLogoUrl import chat.rocket.android.util.extensions.serverLogoUrl
......
...@@ -3,7 +3,7 @@ package chat.rocket.android.authentication.resetpassword.presentation ...@@ -3,7 +3,7 @@ package chat.rocket.android.authentication.resetpassword.presentation
import chat.rocket.android.authentication.presentation.AuthenticationNavigator import chat.rocket.android.authentication.presentation.AuthenticationNavigator
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.server.domain.GetConnectingServerInteractor import chat.rocket.android.server.domain.GetConnectingServerInteractor
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
......
...@@ -8,7 +8,7 @@ import chat.rocket.android.server.domain.GetAccountsInteractor ...@@ -8,7 +8,7 @@ import chat.rocket.android.server.domain.GetAccountsInteractor
import chat.rocket.android.server.domain.GetSettingsInteractor import chat.rocket.android.server.domain.GetSettingsInteractor
import chat.rocket.android.server.domain.RefreshSettingsInteractor import chat.rocket.android.server.domain.RefreshSettingsInteractor
import chat.rocket.android.server.domain.SaveConnectingServerInteractor import chat.rocket.android.server.domain.SaveConnectingServerInteractor
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.server.presentation.CheckServerPresenter import chat.rocket.android.server.presentation.CheckServerPresenter
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.isValidUrl import chat.rocket.android.util.extensions.isValidUrl
......
...@@ -13,7 +13,7 @@ import chat.rocket.android.server.domain.SaveCurrentServerInteractor ...@@ -13,7 +13,7 @@ import chat.rocket.android.server.domain.SaveCurrentServerInteractor
import chat.rocket.android.server.domain.favicon import chat.rocket.android.server.domain.favicon
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.server.domain.wideTile import chat.rocket.android.server.domain.wideTile
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.android.util.extensions.privacyPolicyUrl import chat.rocket.android.util.extensions.privacyPolicyUrl
......
...@@ -14,7 +14,7 @@ import chat.rocket.android.server.domain.TokenRepository ...@@ -14,7 +14,7 @@ import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.domain.favicon import chat.rocket.android.server.domain.favicon
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.server.domain.wideTile import chat.rocket.android.server.domain.wideTile
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.android.util.extensions.isEmail import chat.rocket.android.util.extensions.isEmail
......
...@@ -4,7 +4,7 @@ import chat.rocket.android.chatdetails.domain.ChatDetails ...@@ -4,7 +4,7 @@ import chat.rocket.android.chatdetails.domain.ChatDetails
import chat.rocket.android.chatroom.presentation.ChatRoomNavigator import chat.rocket.android.chatroom.presentation.ChatRoomNavigator
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
......
...@@ -3,7 +3,7 @@ package chat.rocket.android.chatinformation.presentation ...@@ -3,7 +3,7 @@ package chat.rocket.android.chatinformation.presentation
import chat.rocket.android.chatroom.uimodel.UiModelMapper import chat.rocket.android.chatroom.uimodel.UiModelMapper
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
......
...@@ -33,8 +33,8 @@ import chat.rocket.android.server.domain.UsersRepository ...@@ -33,8 +33,8 @@ import chat.rocket.android.server.domain.UsersRepository
import chat.rocket.android.server.domain.uploadMaxFileSize import chat.rocket.android.server.domain.uploadMaxFileSize
import chat.rocket.android.server.domain.uploadMimeTypeFilter import chat.rocket.android.server.domain.uploadMimeTypeFilter
import chat.rocket.android.server.domain.useRealName import chat.rocket.android.server.domain.useRealName
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.server.infraestructure.state import chat.rocket.android.server.infrastructure.state
import chat.rocket.android.util.extension.getByteArray import chat.rocket.android.util.extension.getByteArray
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
......
...@@ -4,9 +4,9 @@ import android.app.job.JobParameters ...@@ -4,9 +4,9 @@ import android.app.job.JobParameters
import android.app.job.JobService import android.app.job.JobService
import chat.rocket.android.db.DatabaseManagerFactory import chat.rocket.android.db.DatabaseManagerFactory
import chat.rocket.android.server.domain.GetAccountsInteractor import chat.rocket.android.server.domain.GetAccountsInteractor
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.server.infraestructure.DatabaseMessageMapper import chat.rocket.android.server.infrastructure.DatabaseMessageMapper
import chat.rocket.android.server.infraestructure.DatabaseMessagesRepository import chat.rocket.android.server.infrastructure.DatabaseMessagesRepository
import chat.rocket.core.internal.rest.sendMessage import chat.rocket.core.internal.rest.sendMessage
import chat.rocket.core.model.Message import chat.rocket.core.model.Message
import dagger.android.AndroidInjection import dagger.android.AndroidInjection
......
...@@ -10,7 +10,7 @@ import androidx.fragment.app.Fragment ...@@ -10,7 +10,7 @@ import androidx.fragment.app.Fragment
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.chatroom.presentation.ChatRoomNavigator import chat.rocket.android.chatroom.presentation.ChatRoomNavigator
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.util.extensions.addFragment import chat.rocket.android.util.extensions.addFragment
import chat.rocket.android.util.extensions.textContent import chat.rocket.android.util.extensions.textContent
import dagger.android.AndroidInjection import dagger.android.AndroidInjection
......
...@@ -74,6 +74,7 @@ import chat.rocket.android.helper.AndroidPermissionsHelper.hasCameraPermission ...@@ -74,6 +74,7 @@ import chat.rocket.android.helper.AndroidPermissionsHelper.hasCameraPermission
import chat.rocket.android.helper.AndroidPermissionsHelper.hasWriteExternalStoragePermission import chat.rocket.android.helper.AndroidPermissionsHelper.hasWriteExternalStoragePermission
import chat.rocket.android.util.extension.asObservable import chat.rocket.android.util.extension.asObservable
import chat.rocket.android.util.extension.createImageFile import chat.rocket.android.util.extension.createImageFile
import chat.rocket.android.util.extension.orFalse
import chat.rocket.android.util.extensions.circularRevealOrUnreveal import chat.rocket.android.util.extensions.circularRevealOrUnreveal
import chat.rocket.android.util.extensions.clearLightStatusBar import chat.rocket.android.util.extensions.clearLightStatusBar
import chat.rocket.android.util.extensions.fadeIn import chat.rocket.android.util.extensions.fadeIn
...@@ -150,14 +151,10 @@ private const val BUNDLE_CHAT_ROOM_MESSAGE = "chat_room_message" ...@@ -150,14 +151,10 @@ private const val BUNDLE_CHAT_ROOM_MESSAGE = "chat_room_message"
class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiReactionListener, class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiReactionListener,
ChatRoomAdapter.OnActionSelected, Drawable.Callback { ChatRoomAdapter.OnActionSelected, Drawable.Callback {
@Inject @Inject lateinit var presenter: ChatRoomPresenter
lateinit var presenter: ChatRoomPresenter @Inject lateinit var parser: MessageParser
@Inject @Inject lateinit var analyticsManager: AnalyticsManager
lateinit var parser: MessageParser @Inject lateinit var navigator: ChatRoomNavigator
@Inject
lateinit var analyticsManager: AnalyticsManager
@Inject
lateinit var navigator: ChatRoomNavigator
private lateinit var adapter: ChatRoomAdapter private lateinit var adapter: ChatRoomAdapter
internal lateinit var chatRoomId: String internal lateinit var chatRoomId: String
private lateinit var chatRoomName: String private lateinit var chatRoomName: String
...@@ -470,6 +467,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -470,6 +467,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
setupToolbar(roomUiModel.name.toString()) setupToolbar(roomUiModel.name.toString())
setupMessageComposer(roomUiModel) setupMessageComposer(roomUiModel)
isBroadcastChannel = roomUiModel.broadcast isBroadcastChannel = roomUiModel.broadcast
isFavorite = roomUiModel.favorite.orFalse()
if (isBroadcastChannel && !roomUiModel.canModerate) { if (isBroadcastChannel && !roomUiModel.canModerate) {
disableMenu = true disableMenu = true
activity?.invalidateOptionsMenu() activity?.invalidateOptionsMenu()
...@@ -606,45 +604,31 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -606,45 +604,31 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
} }
override fun showMessage(message: String) { override fun showMessage(message: String) {
ui { ui { showToast(message) }
showToast(message)
}
} }
override fun showMessage(resId: Int) { override fun showMessage(resId: Int) {
ui { ui { showToast(resId) }
showToast(resId)
}
} }
override fun showGenericErrorMessage() { override fun showGenericErrorMessage() {
ui { ui { showMessage(getString(R.string.msg_generic_error)) }
showMessage(getString(R.string.msg_generic_error))
}
} }
override fun populatePeopleSuggestions(members: List<PeopleSuggestionUiModel>) { override fun populatePeopleSuggestions(members: List<PeopleSuggestionUiModel>) {
ui { ui { suggestions_view.addItems("@", members) }
suggestions_view.addItems("@", members)
}
} }
override fun populateRoomSuggestions(chatRooms: List<ChatRoomSuggestionUiModel>) { override fun populateRoomSuggestions(chatRooms: List<ChatRoomSuggestionUiModel>) {
ui { ui { suggestions_view.addItems("#", chatRooms) }
suggestions_view.addItems("#", chatRooms)
}
} }
override fun populateCommandSuggestions(commands: List<CommandSuggestionUiModel>) { override fun populateCommandSuggestions(commands: List<CommandSuggestionUiModel>) {
ui { ui { suggestions_view.addItems("/", commands) }
suggestions_view.addItems("/", commands)
}
} }
override fun populateEmojiSuggestions(emojis: List<EmojiSuggestionUiModel>) { override fun populateEmojiSuggestions(emojis: List<EmojiSuggestionUiModel>) {
ui { ui { suggestions_view.addItems(":", emojis) }
suggestions_view.addItems(":", emojis)
}
} }
override fun copyToClipboard(message: String) { override fun copyToClipboard(message: String) {
......
...@@ -30,7 +30,7 @@ import chat.rocket.android.server.domain.baseUrl ...@@ -30,7 +30,7 @@ import chat.rocket.android.server.domain.baseUrl
import chat.rocket.android.server.domain.messageReadReceiptEnabled import chat.rocket.android.server.domain.messageReadReceiptEnabled
import chat.rocket.android.server.domain.messageReadReceiptStoreUsers import chat.rocket.android.server.domain.messageReadReceiptStoreUsers
import chat.rocket.android.server.domain.useRealName import chat.rocket.android.server.domain.useRealName
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.util.extension.isImage import chat.rocket.android.util.extension.isImage
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.android.util.extensions.ifNotNullNorEmpty import chat.rocket.android.util.extensions.ifNotNullNorEmpty
......
...@@ -167,7 +167,7 @@ class RoomUiModelMapper( ...@@ -167,7 +167,7 @@ class RoomUiModelMapper(
private fun roomType(type: String): String = with(context.resources) { private fun roomType(type: String): String = with(context.resources) {
when (type) { when (type) {
RoomType.CHANNEL -> getString(R.string.header_channel) RoomType.CHANNEL -> getString(R.string.msg_channels)
RoomType.PRIVATE_GROUP -> getString(R.string.header_private_groups) RoomType.PRIVATE_GROUP -> getString(R.string.header_private_groups)
RoomType.DIRECT_MESSAGE -> getString(R.string.header_direct_messages) RoomType.DIRECT_MESSAGE -> getString(R.string.header_direct_messages)
RoomType.LIVECHAT -> getString(R.string.header_live_chats) RoomType.LIVECHAT -> getString(R.string.header_live_chats)
......
...@@ -15,9 +15,9 @@ import chat.rocket.android.server.domain.PermissionsInteractor ...@@ -15,9 +15,9 @@ import chat.rocket.android.server.domain.PermissionsInteractor
import chat.rocket.android.server.domain.PublicSettings import chat.rocket.android.server.domain.PublicSettings
import chat.rocket.android.server.domain.SettingsRepository import chat.rocket.android.server.domain.SettingsRepository
import chat.rocket.android.server.domain.TokenRepository import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.infraestructure.ConnectionManager import chat.rocket.android.server.infrastructure.ConnectionManager
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.core.RocketChatClient import chat.rocket.core.RocketChatClient
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
......
...@@ -13,7 +13,7 @@ import chat.rocket.android.server.domain.SettingsRepository ...@@ -13,7 +13,7 @@ import chat.rocket.android.server.domain.SettingsRepository
import chat.rocket.android.server.domain.SortingAndGroupingInteractor import chat.rocket.android.server.domain.SortingAndGroupingInteractor
import chat.rocket.android.server.domain.useRealName import chat.rocket.android.server.domain.useRealName
import chat.rocket.android.server.domain.useSpecialCharsOnRoom import chat.rocket.android.server.domain.useSpecialCharsOnRoom
import chat.rocket.android.server.infraestructure.ConnectionManager import chat.rocket.android.server.infrastructure.ConnectionManager
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.retryDB import chat.rocket.android.util.retryDB
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
...@@ -50,6 +50,8 @@ class ChatRoomsPresenter @Inject constructor( ...@@ -50,6 +50,8 @@ class ChatRoomsPresenter @Inject constructor(
fun toSettings() = navigator.toSettings() fun toSettings() = navigator.toSettings()
fun toDirectory() = navigator.toDirectory()
fun getCurrentServerName() = view.setupToolbar(currentServer) fun getCurrentServerName() = view.setupToolbar(currentServer)
fun getSortingAndGroupingPreferences() { fun getSortingAndGroupingPreferences() {
......
...@@ -9,6 +9,7 @@ import android.view.View ...@@ -9,6 +9,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.core.view.isGone
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
...@@ -44,7 +45,6 @@ internal const val TAG_CHAT_ROOMS_FRAGMENT = "ChatRoomsFragment" ...@@ -44,7 +45,6 @@ internal const val TAG_CHAT_ROOMS_FRAGMENT = "ChatRoomsFragment"
private const val BUNDLE_CHAT_ROOM_ID = "BUNDLE_CHAT_ROOM_ID" private const val BUNDLE_CHAT_ROOM_ID = "BUNDLE_CHAT_ROOM_ID"
fun newInstance(chatRoomId: String?): Fragment = ChatRoomsFragment().apply { fun newInstance(chatRoomId: String?): Fragment = ChatRoomsFragment().apply {
arguments = Bundle(1).apply { arguments = Bundle(1).apply {
putString(BUNDLE_CHAT_ROOM_ID, chatRoomId) putString(BUNDLE_CHAT_ROOM_ID, chatRoomId)
...@@ -103,6 +103,7 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -103,6 +103,7 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
with((activity as AppCompatActivity)) { with((activity as AppCompatActivity)) {
with(toolbar) { with(toolbar) {
setSupportActionBar(this) setSupportActionBar(this)
supportActionBar?.setDisplayShowTitleEnabled(false)
setNavigationOnClickListener { presenter.toSettings() } setNavigationOnClickListener { presenter.toSettings() }
} }
} }
...@@ -122,10 +123,10 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -122,10 +123,10 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
if (isSortByName) { if (isSortByName) {
text_sort_by.text = text_sort_by.text =
getString(R.string.msg_sort_by, getString(R.string.msg_sort_by_name).toLowerCase()) getString(R.string.msg_sort_by_placeholder, getString(R.string.msg_sort_by_name).toLowerCase())
} else { } else {
text_sort_by.text = getString( text_sort_by.text = getString(
R.string.msg_sort_by, R.string.msg_sort_by_placeholder,
getString(R.string.msg_sort_by_activity).toLowerCase() getString(R.string.msg_sort_by_activity).toLowerCase()
) )
} }
...@@ -149,12 +150,14 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -149,12 +150,14 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
// We need to show all the menu items here by invalidating the options to recreate the entire menu. // We need to show all the menu items here by invalidating the options to recreate the entire menu.
activity?.invalidateOptionsMenu() activity?.invalidateOptionsMenu()
queryChatRoomsByName(null) queryChatRoomsByName(null)
hideDirectoryView()
return true return true
} }
override fun onMenuItemActionExpand(item: MenuItem): Boolean { override fun onMenuItemActionExpand(item: MenuItem): Boolean {
// We need to hide the all the menu items here. // We need to hide the all the menu items here.
menu.findItem(R.id.action_new_channel).isVisible = false menu.findItem(R.id.action_new_channel).isVisible = false
showDirectoryView()
return true return true
} }
}) })
...@@ -282,6 +285,8 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -282,6 +285,8 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
chat.rocket.android.sortingandgrouping.ui.TAG chat.rocket.android.sortingandgrouping.ui.TAG
) )
} }
text_directory.setOnClickListener { presenter.toDirectory() }
} }
fun sortChatRoomsList( fun sortChatRoomsList(
...@@ -305,7 +310,7 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -305,7 +310,7 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
} }
private fun changeSortByTitle(text: String) { private fun changeSortByTitle(text: String) {
text_sort_by.text = getString(R.string.msg_sort_by, text.toLowerCase()) text_sort_by.text = getString(R.string.msg_sort_by_placeholder, text.toLowerCase())
} }
private fun queryChatRoomsByName(name: String?): Boolean { private fun queryChatRoomsByName(name: String?): Boolean {
...@@ -324,4 +329,14 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -324,4 +329,14 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
viewModel.setQuery(Query.ByActivity(isGroupByType)) viewModel.setQuery(Query.ByActivity(isGroupByType))
} }
} }
private fun showDirectoryView() {
text_directory.isVisible = true
text_sort_by.isGone = true
}
private fun hideDirectoryView() {
text_directory.isGone = true
text_sort_by.isVisible = true
}
} }
...@@ -9,7 +9,7 @@ import chat.rocket.android.chatrooms.adapter.LoadingItemHolder ...@@ -9,7 +9,7 @@ import chat.rocket.android.chatrooms.adapter.LoadingItemHolder
import chat.rocket.android.chatrooms.adapter.RoomUiModelMapper import chat.rocket.android.chatrooms.adapter.RoomUiModelMapper
import chat.rocket.android.chatrooms.domain.FetchChatRoomsInteractor import chat.rocket.android.chatrooms.domain.FetchChatRoomsInteractor
import chat.rocket.android.chatrooms.infrastructure.ChatRoomsRepository import chat.rocket.android.chatrooms.infrastructure.ChatRoomsRepository
import chat.rocket.android.server.infraestructure.ConnectionManager import chat.rocket.android.server.infrastructure.ConnectionManager
import chat.rocket.android.util.livedata.transform import chat.rocket.android.util.livedata.transform
import chat.rocket.android.util.livedata.wrap import chat.rocket.android.util.livedata.wrap
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
......
...@@ -5,7 +5,7 @@ import androidx.lifecycle.ViewModelProvider ...@@ -5,7 +5,7 @@ import androidx.lifecycle.ViewModelProvider
import chat.rocket.android.chatrooms.adapter.RoomUiModelMapper import chat.rocket.android.chatrooms.adapter.RoomUiModelMapper
import chat.rocket.android.chatrooms.domain.FetchChatRoomsInteractor import chat.rocket.android.chatrooms.domain.FetchChatRoomsInteractor
import chat.rocket.android.chatrooms.infrastructure.ChatRoomsRepository import chat.rocket.android.chatrooms.infrastructure.ChatRoomsRepository
import chat.rocket.android.server.infraestructure.ConnectionManager import chat.rocket.android.server.infrastructure.ConnectionManager
import javax.inject.Inject import javax.inject.Inject
class ChatRoomsViewModelFactory @Inject constructor( class ChatRoomsViewModelFactory @Inject constructor(
......
package chat.rocket.android.core.behaviours
interface AppLanguageView {
/**
* Updates the app language
*
* @param language The app language to be updated.
* @param country Opcional. The country code to be updated.
*/
fun updateLanguage(language: String, country: String? = null)
}
\ No newline at end of file
...@@ -4,7 +4,7 @@ import chat.rocket.android.core.lifecycle.CancelStrategy ...@@ -4,7 +4,7 @@ import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.main.presentation.MainNavigator import chat.rocket.android.main.presentation.MainNavigator
import chat.rocket.android.members.uimodel.MemberUiModelMapper import chat.rocket.android.members.uimodel.MemberUiModelMapper
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
import chat.rocket.common.model.RoomType import chat.rocket.common.model.RoomType
......
...@@ -14,9 +14,15 @@ import dagger.android.support.AndroidSupportInjectionModule ...@@ -14,9 +14,15 @@ import dagger.android.support.AndroidSupportInjectionModule
import javax.inject.Singleton import javax.inject.Singleton
@Singleton @Singleton
@Component(modules = [AndroidSupportInjectionModule::class, @Component(
AppModule::class, ActivityBuilder::class, ServiceBuilder::class, ReceiverBuilder::class, modules = [
AndroidWorkerInjectionModule::class]) AndroidSupportInjectionModule::class,
AppModule::class,
ActivityBuilder::class,
ServiceBuilder::class,
ReceiverBuilder::class,
AndroidWorkerInjectionModule::class]
)
interface AppComponent { interface AppComponent {
@Component.Builder @Component.Builder
......
...@@ -19,6 +19,7 @@ import chat.rocket.android.chatroom.ui.ChatRoomActivity ...@@ -19,6 +19,7 @@ import chat.rocket.android.chatroom.ui.ChatRoomActivity
import chat.rocket.android.chatrooms.di.ChatRoomsFragmentProvider import chat.rocket.android.chatrooms.di.ChatRoomsFragmentProvider
import chat.rocket.android.createchannel.di.CreateChannelProvider import chat.rocket.android.createchannel.di.CreateChannelProvider
import chat.rocket.android.dagger.scope.PerActivity import chat.rocket.android.dagger.scope.PerActivity
import chat.rocket.android.directory.di.DirectoryFragmentProvider
import chat.rocket.android.draw.main.di.DrawModule import chat.rocket.android.draw.main.di.DrawModule
import chat.rocket.android.draw.main.ui.DrawingActivity import chat.rocket.android.draw.main.ui.DrawingActivity
import chat.rocket.android.favoritemessages.di.FavoriteMessagesFragmentProvider import chat.rocket.android.favoritemessages.di.FavoriteMessagesFragmentProvider
...@@ -70,7 +71,8 @@ abstract class ActivityBuilder { ...@@ -70,7 +71,8 @@ abstract class ActivityBuilder {
CreateChannelProvider::class, CreateChannelProvider::class,
ProfileFragmentProvider::class, ProfileFragmentProvider::class,
SettingsFragmentProvider::class, SettingsFragmentProvider::class,
AdminPanelWebViewFragmentProvider::class AdminPanelWebViewFragmentProvider::class,
DirectoryFragmentProvider::class
] ]
) )
abstract fun bindMainActivity(): MainActivity abstract fun bindMainActivity(): MainActivity
......
...@@ -12,8 +12,8 @@ import chat.rocket.android.R ...@@ -12,8 +12,8 @@ import chat.rocket.android.R
import chat.rocket.android.analytics.AnalyticsManager import chat.rocket.android.analytics.AnalyticsManager
import chat.rocket.android.analytics.AnswersAnalytics import chat.rocket.android.analytics.AnswersAnalytics
import chat.rocket.android.analytics.GoogleAnalyticsForFirebase import chat.rocket.android.analytics.GoogleAnalyticsForFirebase
import chat.rocket.android.authentication.infraestructure.SharedPreferencesMultiServerTokenRepository import chat.rocket.android.authentication.infrastructure.SharedPreferencesMultiServerTokenRepository
import chat.rocket.android.authentication.infraestructure.SharedPreferencesTokenRepository import chat.rocket.android.authentication.infrastructure.SharedPreferencesTokenRepository
import chat.rocket.android.chatroom.service.MessageService import chat.rocket.android.chatroom.service.MessageService
import chat.rocket.android.dagger.qualifier.ForAuthentication import chat.rocket.android.dagger.qualifier.ForAuthentication
import chat.rocket.android.dagger.qualifier.ForMessages import chat.rocket.android.dagger.qualifier.ForMessages
...@@ -44,19 +44,21 @@ import chat.rocket.android.server.domain.SettingsRepository ...@@ -44,19 +44,21 @@ import chat.rocket.android.server.domain.SettingsRepository
import chat.rocket.android.server.domain.SortingAndGroupingRepository import chat.rocket.android.server.domain.SortingAndGroupingRepository
import chat.rocket.android.server.domain.TokenRepository import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.domain.UsersRepository import chat.rocket.android.server.domain.UsersRepository
import chat.rocket.android.server.infraestructure.DatabaseMessageMapper import chat.rocket.android.server.infrastructure.CurrentLanguageRepository
import chat.rocket.android.server.infraestructure.DatabaseMessagesRepository import chat.rocket.android.server.infrastructure.SharedPrefsCurrentLanguageRepository
import chat.rocket.android.server.infraestructure.JobSchedulerInteractorImpl import chat.rocket.android.server.infrastructure.DatabaseMessageMapper
import chat.rocket.android.server.infraestructure.MemoryChatRoomsRepository import chat.rocket.android.server.infrastructure.DatabaseMessagesRepository
import chat.rocket.android.server.infraestructure.MemoryUsersRepository import chat.rocket.android.server.infrastructure.JobSchedulerInteractorImpl
import chat.rocket.android.server.infraestructure.SharedPreferencesAccountsRepository import chat.rocket.android.server.infrastructure.MemoryChatRoomsRepository
import chat.rocket.android.server.infraestructure.SharedPreferencesPermissionsRepository import chat.rocket.android.server.infrastructure.MemoryUsersRepository
import chat.rocket.android.server.infraestructure.SharedPreferencesSettingsRepository import chat.rocket.android.server.infrastructure.SharedPreferencesAccountsRepository
import chat.rocket.android.server.infraestructure.SharedPrefsAnalyticsTrackingRepository import chat.rocket.android.server.infrastructure.SharedPreferencesPermissionsRepository
import chat.rocket.android.server.infraestructure.SharedPrefsBasicAuthRepository import chat.rocket.android.server.infrastructure.SharedPreferencesSettingsRepository
import chat.rocket.android.server.infraestructure.SharedPrefsConnectingServerRepository import chat.rocket.android.server.infrastructure.SharedPrefsAnalyticsTrackingRepository
import chat.rocket.android.server.infraestructure.SharedPrefsCurrentServerRepository import chat.rocket.android.server.infrastructure.SharedPrefsBasicAuthRepository
import chat.rocket.android.server.infraestructure.SharedPrefsSortingAndGroupingRepository import chat.rocket.android.server.infrastructure.SharedPrefsConnectingServerRepository
import chat.rocket.android.server.infrastructure.SharedPrefsCurrentServerRepository
import chat.rocket.android.server.infrastructure.SharedPrefsSortingAndGroupingRepository
import chat.rocket.android.util.AppJsonAdapterFactory import chat.rocket.android.util.AppJsonAdapterFactory
import chat.rocket.android.util.BasicAuthenticatorInterceptor import chat.rocket.android.util.BasicAuthenticatorInterceptor
import chat.rocket.android.util.HttpLoggingInterceptor import chat.rocket.android.util.HttpLoggingInterceptor
...@@ -175,7 +177,6 @@ class AppModule { ...@@ -175,7 +177,6 @@ class AppModule {
fun provideSharedPreferences(context: Application) = fun provideSharedPreferences(context: Application) =
context.getSharedPreferences("rocket.chat", Context.MODE_PRIVATE) context.getSharedPreferences("rocket.chat", Context.MODE_PRIVATE)
@Provides @Provides
@ForMessages @ForMessages
fun provideMessagesSharedPreferences(context: Application) = fun provideMessagesSharedPreferences(context: Application) =
...@@ -211,6 +212,12 @@ class AppModule { ...@@ -211,6 +212,12 @@ class AppModule {
return SharedPrefsConnectingServerRepository(prefs) return SharedPrefsConnectingServerRepository(prefs)
} }
@Provides
@Singleton
fun provideCurrentLanguageRepository(prefs: SharedPreferences): CurrentLanguageRepository {
return SharedPrefsCurrentLanguageRepository(prefs)
}
@Provides @Provides
@Singleton @Singleton
fun provideSettingsRepository(localRepository: LocalRepository): SettingsRepository { fun provideSettingsRepository(localRepository: LocalRepository): SettingsRepository {
......
...@@ -6,7 +6,7 @@ import chat.rocket.android.infrastructure.LocalRepository ...@@ -6,7 +6,7 @@ import chat.rocket.android.infrastructure.LocalRepository
import chat.rocket.android.infrastructure.SharedPreferencesLocalRepository import chat.rocket.android.infrastructure.SharedPreferencesLocalRepository
import chat.rocket.android.server.domain.CurrentServerRepository import chat.rocket.android.server.domain.CurrentServerRepository
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.infraestructure.SharedPrefsCurrentServerRepository import chat.rocket.android.server.infrastructure.SharedPrefsCurrentServerRepository
import chat.rocket.android.util.AppJsonAdapterFactory import chat.rocket.android.util.AppJsonAdapterFactory
import chat.rocket.android.util.TimberLogger import chat.rocket.android.util.TimberLogger
import chat.rocket.common.internal.FallbackSealedClassJsonAdapter import chat.rocket.common.internal.FallbackSealedClassJsonAdapter
......
...@@ -69,7 +69,7 @@ abstract class ChatRoomDao : BaseDao<ChatRoomEntity> { ...@@ -69,7 +69,7 @@ abstract class ChatRoomDao : BaseDao<ChatRoomEntity> {
@Query(""" @Query("""
$BASE_QUERY $BASE_QUERY
$FILTER_NOT_OPENED $FILTER_NOT_OPENED
ORDER BY name ORDER BY name COLLATE NOCASE
""") """)
abstract fun getAllAlphabetically(): LiveData<List<ChatRoom>> abstract fun getAllAlphabetically(): LiveData<List<ChatRoom>>
...@@ -79,7 +79,7 @@ abstract class ChatRoomDao : BaseDao<ChatRoomEntity> { ...@@ -79,7 +79,7 @@ abstract class ChatRoomDao : BaseDao<ChatRoomEntity> {
$FILTER_NOT_OPENED $FILTER_NOT_OPENED
ORDER BY ORDER BY
$TYPE_ORDER, $TYPE_ORDER,
name name COLLATE NOCASE
""") """)
abstract fun getAllAlphabeticallyGrouped(): LiveData<List<ChatRoom>> abstract fun getAllAlphabeticallyGrouped(): LiveData<List<ChatRoom>>
......
package chat.rocket.android.directory.adapter
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.R
import chat.rocket.android.directory.uimodel.DirectoryUiModel
import chat.rocket.android.util.extensions.inflate
private const val VIEW_TYPE_CHANNELS = 0
private const val VIEW_TYPE_USERS = 1
private const val VIEW_TYPE_GLOBAL_USERS = 2
class DirectoryAdapter(private val selector: Selector) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var isSortByChannels: Boolean = true
private var isSearchForGlobalUsers: Boolean = true
private var dataSet: List<DirectoryUiModel> = ArrayList()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder =
when (viewType) {
VIEW_TYPE_CHANNELS -> DirectoryChannelViewHolder(
parent.inflate(R.layout.item_directory_channel)
)
VIEW_TYPE_USERS -> DirectoryUsersViewHolder(
parent.inflate(R.layout.item_directory_user)
)
VIEW_TYPE_GLOBAL_USERS -> DirectoryGlobalUsersViewHolder(
parent.inflate(R.layout.item_directory_user)
)
else -> throw IllegalStateException("viewType must be either VIEW_TYPE_CHANNELS, VIEW_TYPE_USERS or VIEW_TYPE_GLOBAL_USERS")
}
override fun getItemCount(): Int = dataSet.size
override fun getItemViewType(position: Int): Int {
return if (isSortByChannels) {
VIEW_TYPE_CHANNELS
} else {
if (isSearchForGlobalUsers) {
VIEW_TYPE_GLOBAL_USERS
} else {
VIEW_TYPE_USERS
}
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) =
when (holder) {
is DirectoryChannelViewHolder -> bindDirectoryChannelViewHolder(holder, position)
is DirectoryUsersViewHolder -> bindDirectoryUsersViewHolder(holder, position)
is DirectoryGlobalUsersViewHolder -> bindDirectoryGlobalUsersViewHolder(
holder,
position
)
else -> throw IllegalStateException("Unable to bind ViewHolder. ViewHolder must be either DirectoryChannelViewHolder, DirectoryUsersViewHolder or DirectoryGlobalUsersViewHolder")
}
private fun bindDirectoryChannelViewHolder(holder: DirectoryChannelViewHolder, position: Int) {
with(dataSet[position]) {
holder.bind(this)
holder.itemView.setOnClickListener { selector.onChannelSelected(id, name) }
}
}
private fun bindDirectoryUsersViewHolder(holder: DirectoryUsersViewHolder, position: Int) {
with(dataSet[position]) {
holder.bind(this)
holder.itemView.setOnClickListener { selector.onUserSelected(username, name) }
}
}
private fun bindDirectoryGlobalUsersViewHolder(
holder: DirectoryGlobalUsersViewHolder,
position: Int
) {
with(dataSet[position]) {
holder.bind(this)
holder.itemView.setOnClickListener { selector.onGlobalUserSelected(username, name) }
}
}
fun clearData() {
dataSet = emptyList()
notifyDataSetChanged()
}
fun setSorting(isSortByChannels: Boolean, isSearchForGlobalUsers: Boolean) {
this.isSortByChannels = isSortByChannels
this.isSearchForGlobalUsers = isSearchForGlobalUsers
}
fun prependData(dataSet: List<DirectoryUiModel>) {
this.dataSet = dataSet
notifyItemRangeInserted(0, dataSet.size)
}
fun appendData(dataSet: List<DirectoryUiModel>) {
val previousDataSetSize = this.dataSet.size
this.dataSet += dataSet
notifyItemRangeInserted(previousDataSetSize, dataSet.size)
}
}
interface Selector {
fun onChannelSelected(channelId: String, channelName: String)
fun onUserSelected(username: String, name: String)
fun onGlobalUserSelected(username: String, name: String)
}
\ No newline at end of file
package chat.rocket.android.directory.adapter
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.directory.uimodel.DirectoryUiModel
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.item_directory_channel.view.*
class DirectoryChannelViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(directoryChannelUiModel: DirectoryUiModel) = with(itemView) {
Glide.with(image_avatar).load(directoryChannelUiModel.channelAvatarUri).into(image_avatar)
text_channel_name.text = directoryChannelUiModel.name
text_channel_description.text = directoryChannelUiModel.description
text_channel_total_members.text = directoryChannelUiModel.totalMembers
}
}
\ No newline at end of file
package chat.rocket.android.directory.adapter
import android.view.View
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.directory.uimodel.DirectoryUiModel
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.item_directory_user.view.*
class DirectoryGlobalUsersViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(directoryChannelUiModel: DirectoryUiModel) = with(itemView) {
Glide.with(image_avatar).load(directoryChannelUiModel.userAvatarUri).into(image_avatar)
text_user_name.text = directoryChannelUiModel.name
text_user_username.text = directoryChannelUiModel.username
with(text_server_url) {
text = directoryChannelUiModel.serverUrl
isVisible = true
}
}
}
\ No newline at end of file
package chat.rocket.android.directory.adapter
import android.view.View
import androidx.core.view.isGone
import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.directory.uimodel.DirectoryUiModel
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.item_directory_user.view.*
class DirectoryUsersViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(directoryChannelUiModel: DirectoryUiModel) = with(itemView) {
Glide.with(image_avatar).load(directoryChannelUiModel.userAvatarUri).into(image_avatar)
text_user_name.text = directoryChannelUiModel.name
text_user_username.text = directoryChannelUiModel.username
text_server_url.isGone = true
}
}
\ No newline at end of file
package chat.rocket.android.directory.di
import chat.rocket.android.dagger.scope.PerFragment
import chat.rocket.android.directory.presentation.DirectoryView
import chat.rocket.android.directory.ui.DirectoryFragment
import dagger.Module
import dagger.Provides
@Module
class DirectoryFragmentModule {
@Provides
@PerFragment
fun directoryView(frag: DirectoryFragment): DirectoryView = frag
}
\ No newline at end of file
package chat.rocket.android.directory.di
import chat.rocket.android.dagger.scope.PerFragment
import chat.rocket.android.directory.ui.DirectoryFragment
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class DirectoryFragmentProvider {
@ContributesAndroidInjector(modules = [DirectoryFragmentModule::class])
@PerFragment
abstract fun provideDirectoryFragment(): DirectoryFragment
}
\ No newline at end of file
package chat.rocket.android.directory.presentation
import chat.rocket.android.chatrooms.domain.FetchChatRoomsInteractor
import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.db.DatabaseManager
import chat.rocket.android.db.model.ChatRoomEntity
import chat.rocket.android.directory.uimodel.DirectoryUiModelMapper
import chat.rocket.android.helper.UserHelper
import chat.rocket.android.main.presentation.MainNavigator
import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.model.RoomType
import chat.rocket.common.model.roomTypeOf
import chat.rocket.common.util.ifNull
import chat.rocket.core.RocketChatClient
import chat.rocket.core.internal.rest.DirectoryRequestType
import chat.rocket.core.internal.rest.DirectoryWorkspaceType
import chat.rocket.core.internal.rest.createDirectMessage
import chat.rocket.core.internal.rest.directory
import chat.rocket.core.internal.rest.getInfo
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Named
class DirectoryPresenter @Inject constructor(
private val view: DirectoryView,
private val navigator: MainNavigator,
private val strategy: CancelStrategy,
@Named("currentServer") private val currentServer: String,
private val dbManager: DatabaseManager,
private val userHelper: UserHelper,
val factory: RocketChatClientFactory,
private val mapper: DirectoryUiModelMapper
) {
private val client: RocketChatClient = factory.get(currentServer)
private var offset: Long = 0
fun loadAllDirectoryChannels(query: String? = null) {
launchUI(strategy) {
try {
view.showLoading()
val directoryResult = client.directory(
text = query,
directoryRequestType = DirectoryRequestType.Channels(),
offset = offset,
count = 60
)
val directoryUiModels = mapper.mapToUiModelList(directoryResult.result)
view.showChannels(directoryUiModels)
offset += 1 * 60L
} catch (exception: Exception) {
exception.message?.let {
view.showMessage(it)
}.ifNull {
view.showGenericErrorMessage()
}
} finally {
view.hideLoading()
}
}
}
fun loadAllDirectoryUsers(isSearchForGlobalUsers: Boolean, query: String? = null) {
launchUI(strategy) {
try {
view.showLoading()
val directoryResult = client.directory(
text = query,
directoryRequestType = DirectoryRequestType.Users(),
directoryWorkspaceType = if (isSearchForGlobalUsers) {
DirectoryWorkspaceType.All()
} else {
DirectoryWorkspaceType.Local()
},
offset = offset,
count = 60
)
val directoryUiModels = mapper.mapToUiModelList(directoryResult.result)
view.showUsers(directoryUiModels)
offset += 1 * 60L
} catch (exception: Exception) {
exception.message?.let {
view.showMessage(it)
}.ifNull {
view.showGenericErrorMessage()
}
} finally {
view.hideLoading()
}
}
}
fun updateSorting(
isSortByChannels: Boolean,
isSearchForGlobalUsers: Boolean,
query: String? = null
) {
resetOffset()
if (isSortByChannels) {
loadAllDirectoryChannels(query)
} else {
loadAllDirectoryUsers(isSearchForGlobalUsers, query)
}
}
fun toChannel(channelId: String, name: String) {
launchUI(strategy) {
try {
view.showLoading()
withContext(Dispatchers.Default) {
val chatRoom = client.getInfo(channelId, name, roomTypeOf(RoomType.CHANNEL))
navigator.toChatRoom(
chatRoomId = channelId,
chatRoomName = name,
chatRoomType = RoomType.CHANNEL,
isReadOnly = chatRoom.readonly,
chatRoomLastSeen = -1,
isSubscribed = false,
isCreator = false,
isFavorite = false
)
}
} catch (ex: Exception) {
Timber.e(ex)
ex.message?.let {
view.showMessage(it)
}.ifNull {
view.showGenericErrorMessage()
}
} finally {
view.hideLoading()
}
}
}
fun tiDirectMessage(username: String, name: String) {
launchUI(strategy) {
try {
view.showLoading()
withContext(Dispatchers.Default) {
val directMessage = client.createDirectMessage(username)
val chatRoomEntity = ChatRoomEntity(
id = directMessage.id,
name = username,
description = null,
type = RoomType.DIRECT_MESSAGE,
fullname = name,
subscriptionId = "",
updatedAt = directMessage.updatedAt
)
dbManager.insertOrReplaceRoom(chatRoomEntity)
FetchChatRoomsInteractor(client, dbManager).refreshChatRooms()
navigator.toChatRoom(
chatRoomId = chatRoomEntity.id,
chatRoomName = chatRoomEntity.name,
chatRoomType = chatRoomEntity.type,
isReadOnly = false,
chatRoomLastSeen = -1,
isSubscribed = chatRoomEntity.open,
isCreator = true,
isFavorite = false
)
}
} catch (ex: Exception) {
Timber.e(ex)
ex.message?.let {
view.showMessage(it)
}.ifNull {
view.showGenericErrorMessage()
}
} finally {
view.hideLoading()
}
}
}
private fun resetOffset() {
offset = 0
}
}
\ No newline at end of file
package chat.rocket.android.directory.presentation
import chat.rocket.android.core.behaviours.LoadingView
import chat.rocket.android.core.behaviours.MessageView
import chat.rocket.android.directory.uimodel.DirectoryUiModel
interface DirectoryView : MessageView, LoadingView {
/**
* Shows the list of directory channels.
*
* @param dataSet The data set to show.
*/
fun showChannels(dataSet: List<DirectoryUiModel>)
/**
* Shows the list of directory users.
*
* @param dataSet The data set to show.
*/
fun showUsers(dataSet: List<DirectoryUiModel>)
}
\ No newline at end of file
package chat.rocket.android.directory.ui
import android.os.Bundle
import android.view.LayoutInflater
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SearchView
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.R
import chat.rocket.android.analytics.AnalyticsManager
import chat.rocket.android.analytics.event.ScreenViewEvent
import chat.rocket.android.directory.adapter.DirectoryAdapter
import chat.rocket.android.directory.adapter.Selector
import chat.rocket.android.directory.presentation.DirectoryPresenter
import chat.rocket.android.directory.presentation.DirectoryView
import chat.rocket.android.directory.uimodel.DirectoryUiModel
import chat.rocket.android.helper.EndlessRecyclerViewScrollListener
import chat.rocket.android.util.extension.onQueryTextListener
import chat.rocket.android.util.extensions.inflate
import chat.rocket.android.util.extensions.isNotNullNorBlank
import chat.rocket.android.util.extensions.showToast
import chat.rocket.android.util.extensions.ui
import dagger.android.support.AndroidSupportInjection
import kotlinx.android.synthetic.main.app_bar.*
import kotlinx.android.synthetic.main.fragment_directory.*
import kotlinx.android.synthetic.main.fragment_settings.view_loading
import javax.inject.Inject
internal const val TAG_DIRECTORY_FRAGMENT = "DirectoryFragment"
fun newInstance(): Fragment = DirectoryFragment()
class DirectoryFragment : Fragment(), DirectoryView {
@Inject lateinit var analyticsManager: AnalyticsManager
@Inject lateinit var presenter: DirectoryPresenter
private var isSortByChannels: Boolean = true
private var isSearchForGlobalUsers: Boolean = false
private val linearLayoutManager = LinearLayoutManager(context)
private val directoryAdapter = DirectoryAdapter(object : Selector {
override fun onChannelSelected(channelId: String, channelName: String) {
presenter.toChannel(channelId, channelName)
}
override fun onUserSelected(username: String, name: String) {
presenter.tiDirectMessage(username, name)
}
override fun onGlobalUserSelected(username: String, name: String) {
presenter.tiDirectMessage(username, name)
}
})
private val hashtagDrawable by lazy {
DrawableHelper.getDrawableFromId(R.drawable.ic_hashtag_16dp, text_sort_by.context)
}
private val userDrawable by lazy {
DrawableHelper.getDrawableFromId(R.drawable.ic_user_16dp, text_sort_by.context)
}
private val arrowDownDrawable by lazy {
DrawableHelper.getDrawableFromId(R.drawable.ic_arrow_down, text_sort_by.context)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
AndroidSupportInjection.inject(this)
setHasOptionsMenu(true)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? = container?.inflate(R.layout.fragment_directory)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setupToolbar()
setupRecyclerView()
setupListeners()
presenter.loadAllDirectoryChannels()
analyticsManager.logScreenView(ScreenViewEvent.Directory)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.directory, menu)
val searchMenuItem = menu.findItem(R.id.action_search)
val searchView = searchMenuItem?.actionView as SearchView
with(searchView) {
setIconifiedByDefault(false)
maxWidth = Integer.MAX_VALUE
onQueryTextListener { updateSorting(isSortByChannels, isSearchForGlobalUsers, it) }
}
searchMenuItem.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
updateSorting(isSortByChannels, isSearchForGlobalUsers, reload = true)
return true
}
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
return true
}
})
}
override fun showChannels(dataSet: List<DirectoryUiModel>) {
ui {
if (directoryAdapter.itemCount == 0) {
directoryAdapter.prependData(dataSet)
if (dataSet.size >= 60) {
recycler_view.addOnScrollListener(object :
EndlessRecyclerViewScrollListener(linearLayoutManager) {
override fun onLoadMore(
page: Int,
totalItemsCount: Int,
recyclerView: RecyclerView
) {
presenter.loadAllDirectoryChannels()
}
})
}
} else {
directoryAdapter.appendData(dataSet)
}
}
}
override fun showUsers(dataSet: List<DirectoryUiModel>) {
ui {
if (directoryAdapter.itemCount == 0) {
directoryAdapter.prependData(dataSet)
if (dataSet.size >= 60) {
recycler_view.addOnScrollListener(object :
EndlessRecyclerViewScrollListener(linearLayoutManager) {
override fun onLoadMore(
page: Int,
totalItemsCount: Int,
recyclerView: RecyclerView
) {
presenter.loadAllDirectoryUsers(isSearchForGlobalUsers)
}
})
}
} else {
directoryAdapter.appendData(dataSet)
}
}
}
override fun showMessage(resId: Int) {
ui { showToast(resId) }
}
override fun showMessage(message: String) {
ui { showToast(message) }
}
override fun showGenericErrorMessage() = showMessage(getString(R.string.msg_generic_error))
override fun showLoading() {
view_loading.isVisible = true
}
override fun hideLoading() {
view_loading.isVisible = false
}
fun updateSorting(
isSortByChannels: Boolean,
isSearchForGlobalUsers: Boolean,
query: String? = null,
reload: Boolean = false
) {
if (query.isNotNullNorBlank() || reload) {
directoryAdapter.clearData()
presenter.updateSorting(isSortByChannels, isSearchForGlobalUsers, query)
}
if (this.isSortByChannels != isSortByChannels ||
this.isSearchForGlobalUsers != isSearchForGlobalUsers
) {
this.isSortByChannels = isSortByChannels
this.isSearchForGlobalUsers = isSearchForGlobalUsers
updateSortByTitle()
with(directoryAdapter) {
clearData()
setSorting(isSortByChannels, isSearchForGlobalUsers)
}
presenter.updateSorting(isSortByChannels, isSearchForGlobalUsers, query)
}
}
private fun setupToolbar() {
with((activity as AppCompatActivity)) {
with(toolbar) {
setSupportActionBar(this)
title = getString(R.string.msg_directory)
setNavigationIcon(R.drawable.ic_arrow_back_white_24dp)
setNavigationOnClickListener { activity?.onBackPressed() }
}
}
}
private fun setupRecyclerView() {
ui {
with(recycler_view) {
layoutManager = linearLayoutManager
addItemDecoration(DividerItemDecoration(it, DividerItemDecoration.HORIZONTAL))
adapter = directoryAdapter
}
}
}
private fun setupListeners() {
text_sort_by.setOnClickListener {
activity?.supportFragmentManager?.let {
showDirectorySortingBottomSheetFragment(isSortByChannels, isSearchForGlobalUsers, it)
}
}
}
private fun updateSortByTitle() {
if (isSortByChannels) {
text_sort_by.text = getString(R.string.msg_channels)
DrawableHelper.compoundLeftAndRightDrawable(
text_sort_by,
hashtagDrawable,
arrowDownDrawable
)
} else {
text_sort_by.text = getString(R.string.msg_users)
DrawableHelper.compoundLeftAndRightDrawable(
text_sort_by,
userDrawable,
arrowDownDrawable
)
}
}
}
\ No newline at end of file
package chat.rocket.android.directory.ui
import DrawableHelper
import android.content.DialogInterface
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.FragmentManager
import chat.rocket.android.R
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.synthetic.main.bottom_seet_fragment_directory_sorting.*
fun showDirectorySortingBottomSheetFragment(
isSortByChannels: Boolean,
isSearchForGlobalUsers: Boolean,
supportFragmentManager: FragmentManager
) = DirectorySortingBottomSheetFragment().apply {
arguments = Bundle(2).apply {
putBoolean(BUNDLE_IS_SORT_BY_CHANNELS, isSortByChannels)
putBoolean(BUNDLE_IS_SEARCH_FOR_GLOBAL_USERS, isSearchForGlobalUsers)
}
}.show(supportFragmentManager, TAG)
internal const val TAG = "DirectorySortingBottomSheetFragment"
private const val BUNDLE_IS_SORT_BY_CHANNELS = "is_sort_by_channels"
private const val BUNDLE_IS_SEARCH_FOR_GLOBAL_USERS = "is_search_for_global_users"
class DirectorySortingBottomSheetFragment : BottomSheetDialogFragment() {
private var isSortByChannels = true
private var isSearchForGlobalUsers = false
private val hashtagDrawable by lazy {
DrawableHelper.getDrawableFromId(R.drawable.ic_hashtag_16dp, requireContext())
}
private val userDrawable by lazy {
DrawableHelper.getDrawableFromId(R.drawable.ic_user_16dp, requireContext())
}
private val checkDrawable by lazy {
DrawableHelper.getDrawableFromId(R.drawable.ic_check, requireContext())
}
private val directoryFragment by lazy {
activity?.supportFragmentManager?.findFragmentByTag(TAG_DIRECTORY_FRAGMENT) as DirectoryFragment
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.run {
isSortByChannels = getBoolean(BUNDLE_IS_SORT_BY_CHANNELS)
isSearchForGlobalUsers = getBoolean(BUNDLE_IS_SEARCH_FOR_GLOBAL_USERS)
}
?: requireNotNull(arguments) { "no arguments supplied when the bottom sheet fragment was instantiated" }
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? =
inflater.inflate(R.layout.bottom_seet_fragment_directory_sorting, container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setupView()
setupListeners()
}
override fun onCancel(dialog: DialogInterface?) {
super.onCancel(dialog)
directoryFragment.updateSorting(isSortByChannels, isSearchForGlobalUsers)
}
private fun setupView() {
if (isSortByChannels) {
checkSelection(text_channels, hashtagDrawable)
} else {
checkSelection(text_users, userDrawable)
}
switch_global_users.isChecked = isSearchForGlobalUsers
}
private fun setupListeners() {
text_channels.setOnClickListener {
checkSelection(text_channels, hashtagDrawable)
uncheckSelection(text_users, userDrawable)
isSortByChannels = true
}
text_users.setOnClickListener {
checkSelection(text_users, userDrawable)
uncheckSelection(text_channels, hashtagDrawable)
isSortByChannels = false
}
switch_global_users.setOnCheckedChangeListener { _, isChecked ->
isSearchForGlobalUsers = isChecked
}
}
private fun checkSelection(textView: TextView, leftDrawable: Drawable) {
context?.let {
DrawableHelper.compoundLeftAndRightDrawable(
textView,
leftDrawable,
checkDrawable
)
}
}
private fun uncheckSelection(textView: TextView, leftDrawable: Drawable) {
context?.let {
DrawableHelper.compoundLeftDrawable(
textView,
leftDrawable
)
}
}
}
\ No newline at end of file
package chat.rocket.android.directory.uimodel
import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.core.model.DirectoryResult
class DirectoryUiModel(
private val directoryResult: DirectoryResult,
private val baseUrl: String?
) {
val id: String = directoryResult.id
val channelAvatarUri: String?
val userAvatarUri: String?
val name: String = directoryResult.name
val username: String = "@${directoryResult.username}"
val serverUrl: String = "" // TODO
val description: String = "" // TODO
val totalMembers: String = "" // TODO
init {
channelAvatarUri = getChannelAvatar()
userAvatarUri = getUserAvatar()
}
private fun getChannelAvatar(): String? {
return baseUrl?.avatarUrl(name, isGroupOrChannel = true)
}
private fun getUserAvatar(): String? {
return directoryResult.username?.let {
baseUrl?.avatarUrl(it)
}
}
}
package chat.rocket.android.directory.uimodel
import chat.rocket.android.server.domain.GetSettingsInteractor
import chat.rocket.android.server.domain.baseUrl
import chat.rocket.core.model.DirectoryResult
import chat.rocket.core.model.Value
import javax.inject.Inject
import javax.inject.Named
class DirectoryUiModelMapper @Inject constructor(
getSettingsInteractor: GetSettingsInteractor,
@Named("currentServer") private val currentServer: String
) {
private var settings: Map<String, Value<Any>> = getSettingsInteractor.get(currentServer)
private val baseUrl = settings.baseUrl()
fun mapToUiModelList(directoryList: List<DirectoryResult>): List<DirectoryUiModel> {
return directoryList.map { DirectoryUiModel(it, baseUrl) }
}
}
\ No newline at end of file
...@@ -3,7 +3,7 @@ package chat.rocket.android.favoritemessages.presentation ...@@ -3,7 +3,7 @@ package chat.rocket.android.favoritemessages.presentation
import chat.rocket.android.chatroom.uimodel.UiModelMapper import chat.rocket.android.chatroom.uimodel.UiModelMapper
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.db.DatabaseManager import chat.rocket.android.db.DatabaseManager
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
import chat.rocket.common.model.roomTypeOf import chat.rocket.common.model.roomTypeOf
......
...@@ -5,7 +5,7 @@ import chat.rocket.android.core.lifecycle.CancelStrategy ...@@ -5,7 +5,7 @@ import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.db.DatabaseManager import chat.rocket.android.db.DatabaseManager
import chat.rocket.android.files.uimodel.FileUiModel import chat.rocket.android.files.uimodel.FileUiModel
import chat.rocket.android.files.uimodel.FileUiModelMapper import chat.rocket.android.files.uimodel.FileUiModelMapper
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
import chat.rocket.common.model.roomTypeOf import chat.rocket.common.model.roomTypeOf
......
...@@ -3,7 +3,7 @@ package chat.rocket.android.helper ...@@ -3,7 +3,7 @@ package chat.rocket.android.helper
object JitsiHelper { object JitsiHelper {
/** /**
* Returns the for the Jitsi video conferencing URL. * Returns the Jitsi video conferencing URL.
* *
* @param isSecureProtocol True if using SSL, false otherwise - from the public settings. * @param isSecureProtocol True if using SSL, false otherwise - from the public settings.
* @param domain The Jitsi domain - from public settings. * @param domain The Jitsi domain - from public settings.
......
...@@ -94,10 +94,16 @@ class MessageParser @Inject constructor( ...@@ -94,10 +94,16 @@ class MessageParser @Inject constructor(
} }
private fun getMention(user: SimpleUser): String { private fun getMention(user: SimpleUser): String {
user.id?.let {
if (SYSTEM_MENTIONS.contains(it)) {
return "@$it"
}
}
return if (settings.useRealName()) { return if (settings.useRealName()) {
user.name ?: "@${user.username}" user.name ?: user.username.orEmpty()
} else { } else {
"@${user.username}" user.username.orEmpty()
} }
} }
...@@ -527,5 +533,7 @@ class MessageParser @Inject constructor( ...@@ -527,5 +533,7 @@ class MessageParser @Inject constructor(
*/ */
private val WEB_URL = Pattern.compile( private val WEB_URL = Pattern.compile(
"($WEB_URL_WITH_PROTOCOL|$WEB_URL_WITHOUT_PROTOCOL)") "($WEB_URL_WITH_PROTOCOL|$WEB_URL_WITHOUT_PROTOCOL)")
private val SYSTEM_MENTIONS = arrayOf("all", "here")
} }
} }
...@@ -15,11 +15,11 @@ object OauthHelper { ...@@ -15,11 +15,11 @@ object OauthHelper {
"\"isCordova\":true}").encodeToBase64() "\"isCordova\":true}").encodeToBase64()
/** /**
* Returns the Github Oauth URL. * Returns the GitHub Oauth URL.
* *
* @param clientId The GitHub client ID. * @param clientId The GitHub client ID.
* @param state An unguessable random string used to protect against forgery attacks. * @param state An unguessable random string used to protect against forgery attacks.
* @return The Github Oauth URL. * @return The GitHub Oauth URL.
*/ */
fun getGithubOauthUrl(clientId: String, state: String): String { fun getGithubOauthUrl(clientId: String, state: String): String {
return "https://github.com/login/oauth/authorize" + return "https://github.com/login/oauth/authorize" +
...@@ -46,12 +46,12 @@ object OauthHelper { ...@@ -46,12 +46,12 @@ object OauthHelper {
} }
/** /**
* Returns the Linkedin Oauth URL. * Returns the LinkedIn Oauth URL.
* *
* @param clientId The Linkedin client ID. * @param clientId The LinkedIn client ID.
* @param serverUrl The server URL. * @param serverUrl The server URL.
* @param state An unguessable random string used to protect against forgery attacks. * @param state An unguessable random string used to protect against forgery attacks.
* @return The Linkedin Oauth URL. * @return The LinkedIn Oauth URL.
*/ */
fun getLinkedinOauthUrl(clientId: String, serverUrl: String, state: String): String { fun getLinkedinOauthUrl(clientId: String, serverUrl: String, state: String): String {
return "https://linkedin.com/oauth/v2/authorization" + return "https://linkedin.com/oauth/v2/authorization" +
...@@ -62,13 +62,13 @@ object OauthHelper { ...@@ -62,13 +62,13 @@ object OauthHelper {
} }
/** /**
* Returns the Gitlab Oauth URL. * Returns the GitLab Oauth URL.
* *
* @param host The Gitlab host. * @param host The GitLab host.
* @param clientId The Gitlab client ID. * @param clientId The GitLab client ID.
* @param serverUrl The server URL. * @param serverUrl The server URL.
* @param state An unguessable random string used to protect against forgery attacks. * @param state An unguessable random string used to protect against forgery attacks.
* @return The Gitlab Oauth URL. * @return The GitLab Oauth URL.
*/ */
fun getGitlabOauthUrl( fun getGitlabOauthUrl(
host: String? = "https://gitlab.com", host: String? = "https://gitlab.com",
......
package chat.rocket.android.main.di package chat.rocket.android.main.di
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import chat.rocket.android.core.behaviours.AppLanguageView
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.dagger.scope.PerActivity import chat.rocket.android.dagger.scope.PerActivity
import chat.rocket.android.main.presentation.MainNavigator import chat.rocket.android.main.presentation.MainNavigator
...@@ -16,6 +17,12 @@ class MainModule { ...@@ -16,6 +17,12 @@ class MainModule {
@PerActivity @PerActivity
fun provideMainNavigator(activity: MainActivity) = MainNavigator(activity) fun provideMainNavigator(activity: MainActivity) = MainNavigator(activity)
@Provides
@PerActivity
fun appLanguageView(activity: MainActivity): AppLanguageView {
return activity
}
@Provides @Provides
@PerActivity @PerActivity
fun provideJob() = Job() fun provideJob() = Job()
......
...@@ -5,6 +5,7 @@ import chat.rocket.android.authentication.ui.newServerIntent ...@@ -5,6 +5,7 @@ import chat.rocket.android.authentication.ui.newServerIntent
import chat.rocket.android.chatroom.ui.chatRoomIntent import chat.rocket.android.chatroom.ui.chatRoomIntent
import chat.rocket.android.chatrooms.ui.TAG_CHAT_ROOMS_FRAGMENT import chat.rocket.android.chatrooms.ui.TAG_CHAT_ROOMS_FRAGMENT
import chat.rocket.android.createchannel.ui.TAG_CREATE_CHANNEL_FRAGMENT import chat.rocket.android.createchannel.ui.TAG_CREATE_CHANNEL_FRAGMENT
import chat.rocket.android.directory.ui.TAG_DIRECTORY_FRAGMENT
import chat.rocket.android.main.ui.MainActivity import chat.rocket.android.main.ui.MainActivity
import chat.rocket.android.profile.ui.TAG_PROFILE_FRAGMENT import chat.rocket.android.profile.ui.TAG_PROFILE_FRAGMENT
import chat.rocket.android.server.ui.changeServerIntent import chat.rocket.android.server.ui.changeServerIntent
...@@ -28,6 +29,12 @@ class MainNavigator(internal val activity: MainActivity) { ...@@ -28,6 +29,12 @@ class MainNavigator(internal val activity: MainActivity) {
} }
} }
fun toDirectory() {
activity.addFragmentBackStack(TAG_DIRECTORY_FRAGMENT, R.id.fragment_container) {
chat.rocket.android.directory.ui.newInstance()
}
}
fun toCreateChannel() { fun toCreateChannel() {
activity.addFragmentBackStack(TAG_CREATE_CHANNEL_FRAGMENT, R.id.fragment_container) { activity.addFragmentBackStack(TAG_CREATE_CHANNEL_FRAGMENT, R.id.fragment_container) {
chat.rocket.android.createchannel.ui.newInstance() chat.rocket.android.createchannel.ui.newInstance()
......
package chat.rocket.android.main.presentation package chat.rocket.android.main.presentation
import chat.rocket.android.core.behaviours.AppLanguageView
import chat.rocket.android.push.GroupedPush import chat.rocket.android.push.GroupedPush
import chat.rocket.android.server.domain.GetCurrentLanguageInteractor
import chat.rocket.android.server.domain.RefreshPermissionsInteractor import chat.rocket.android.server.domain.RefreshPermissionsInteractor
import chat.rocket.android.server.domain.RefreshSettingsInteractor import chat.rocket.android.server.domain.RefreshSettingsInteractor
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Named import javax.inject.Named
class MainPresenter @Inject constructor( class MainPresenter @Inject constructor(
@Named("currentServer") private val currentServerUrl: String, @Named("currentServer") private val currentServerUrl: String,
private val mainNavigator: MainNavigator, private val mainNavigator: MainNavigator,
private val appLanguageView: AppLanguageView,
private val refreshSettingsInteractor: RefreshSettingsInteractor, private val refreshSettingsInteractor: RefreshSettingsInteractor,
private val refreshPermissionsInteractor: RefreshPermissionsInteractor, private val refreshPermissionsInteractor: RefreshPermissionsInteractor,
private val connectionManagerFactory: ConnectionManagerFactory, private val connectionManagerFactory: ConnectionManagerFactory,
private var getLanguageInteractor: GetCurrentLanguageInteractor,
private val groupedPush: GroupedPush private val groupedPush: GroupedPush
) { ) {
...@@ -31,4 +35,13 @@ class MainPresenter @Inject constructor( ...@@ -31,4 +35,13 @@ class MainPresenter @Inject constructor(
} }
fun showChatList(chatRoomId: String? = null) = mainNavigator.toChatList(chatRoomId) fun showChatList(chatRoomId: String? = null) = mainNavigator.toChatList(chatRoomId)
fun getAppLanguage() {
with(getLanguageInteractor) {
getLanguage()?.let { language ->
appLanguageView.updateLanguage(language, getCountry())
}
}
}
} }
\ No newline at end of file
...@@ -3,10 +3,14 @@ package chat.rocket.android.main.ui ...@@ -3,10 +3,14 @@ package chat.rocket.android.main.ui
import android.app.Activity import android.app.Activity
import android.app.NotificationManager import android.app.NotificationManager
import android.content.Context import android.content.Context
import android.content.res.Configuration
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.LocaleList
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.core.behaviours.AppLanguageView
import chat.rocket.android.main.presentation.MainPresenter import chat.rocket.android.main.presentation.MainPresenter
import chat.rocket.android.push.refreshPushToken import chat.rocket.android.push.refreshPushToken
import chat.rocket.android.server.ui.INTENT_CHAT_ROOM_ID import chat.rocket.android.server.ui.INTENT_CHAT_ROOM_ID
...@@ -15,10 +19,11 @@ import dagger.android.AndroidInjector ...@@ -15,10 +19,11 @@ import dagger.android.AndroidInjector
import dagger.android.DispatchingAndroidInjector import dagger.android.DispatchingAndroidInjector
import dagger.android.HasActivityInjector import dagger.android.HasActivityInjector
import dagger.android.support.HasSupportFragmentInjector import dagger.android.support.HasSupportFragmentInjector
import java.util.*
import javax.inject.Inject import javax.inject.Inject
class MainActivity : AppCompatActivity(), HasActivityInjector, class MainActivity : AppCompatActivity(), HasActivityInjector,
HasSupportFragmentInjector { HasSupportFragmentInjector, AppLanguageView {
@Inject @Inject
lateinit var activityDispatchingAndroidInjector: DispatchingAndroidInjector<Activity> lateinit var activityDispatchingAndroidInjector: DispatchingAndroidInjector<Activity>
@Inject @Inject
...@@ -30,11 +35,11 @@ class MainActivity : AppCompatActivity(), HasActivityInjector, ...@@ -30,11 +35,11 @@ class MainActivity : AppCompatActivity(), HasActivityInjector,
AndroidInjection.inject(this) AndroidInjection.inject(this)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
refreshPushToken() refreshPushToken()
with(presenter) { with(presenter) {
connect() connect()
getAppLanguage()
intent.getStringExtra(INTENT_CHAT_ROOM_ID).let { intent.getStringExtra(INTENT_CHAT_ROOM_ID).let {
clearNotificationsForChatRoom(it) clearNotificationsForChatRoom(it)
showChatList(it) showChatList(it)
...@@ -53,6 +58,28 @@ class MainActivity : AppCompatActivity(), HasActivityInjector, ...@@ -53,6 +58,28 @@ class MainActivity : AppCompatActivity(), HasActivityInjector,
override fun supportFragmentInjector(): AndroidInjector<Fragment> = override fun supportFragmentInjector(): AndroidInjector<Fragment> =
fagmentDispatchingAndroidInjector fagmentDispatchingAndroidInjector
override fun updateLanguage(language: String, country: String?) {
val locale: Locale = if (country != null) {
Locale(language, country)
} else {
Locale(language)
}
Locale.setDefault(locale)
val config = Configuration()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
config.locales = LocaleList(locale)
} else {
config.locale = locale
}
// TODO We need to check out a better way to use createConfigurationContext
// instead of updateConfiguration here since it is deprecated.
resources.updateConfiguration(config, resources.displayMetrics)
}
private fun clearAppNotifications() = private fun clearAppNotifications() =
(getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).cancelAll() (getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).cancelAll()
} }
...@@ -15,10 +15,10 @@ class MembersAdapter( ...@@ -15,10 +15,10 @@ class MembersAdapter(
) : RecyclerView.Adapter<MembersAdapter.ViewHolder>() { ) : RecyclerView.Adapter<MembersAdapter.ViewHolder>() {
private var dataSet: List<MemberUiModel> = ArrayList() private var dataSet: List<MemberUiModel> = ArrayList()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MembersAdapter.ViewHolder = override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder =
ViewHolder(parent.inflate(R.layout.item_member)) ViewHolder(parent.inflate(R.layout.item_member))
override fun onBindViewHolder(holder: MembersAdapter.ViewHolder, position: Int) = override fun onBindViewHolder(holder: ViewHolder, position: Int) =
holder.bind(dataSet[position], listener) holder.bind(dataSet[position], listener)
override fun getItemCount(): Int = dataSet.size override fun getItemCount(): Int = dataSet.size
......
...@@ -6,7 +6,7 @@ import chat.rocket.android.db.DatabaseManager ...@@ -6,7 +6,7 @@ import chat.rocket.android.db.DatabaseManager
import chat.rocket.android.helper.UserHelper import chat.rocket.android.helper.UserHelper
import chat.rocket.android.members.uimodel.MemberUiModel import chat.rocket.android.members.uimodel.MemberUiModel
import chat.rocket.android.members.uimodel.MemberUiModelMapper import chat.rocket.android.members.uimodel.MemberUiModelMapper
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
import chat.rocket.common.model.roomTypeOf import chat.rocket.common.model.roomTypeOf
......
...@@ -102,15 +102,11 @@ class MembersFragment : Fragment(), MembersView { ...@@ -102,15 +102,11 @@ class MembersFragment : Fragment(), MembersView {
} }
override fun showMessage(resId: Int) { override fun showMessage(resId: Int) {
ui { ui { showToast(resId) }
showToast(resId)
}
} }
override fun showMessage(message: String) { override fun showMessage(message: String) {
ui { ui { showToast(message) }
showToast(message)
}
} }
override fun showGenericErrorMessage() = showMessage(getString(R.string.msg_generic_error)) override fun showGenericErrorMessage() = showMessage(getString(R.string.msg_generic_error))
......
...@@ -2,7 +2,7 @@ package chat.rocket.android.mentions.presentention ...@@ -2,7 +2,7 @@ package chat.rocket.android.mentions.presentention
import chat.rocket.android.chatroom.uimodel.UiModelMapper import chat.rocket.android.chatroom.uimodel.UiModelMapper
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
import chat.rocket.common.util.ifNull import chat.rocket.common.util.ifNull
......
...@@ -3,7 +3,7 @@ package chat.rocket.android.pinnedmessages.presentation ...@@ -3,7 +3,7 @@ package chat.rocket.android.pinnedmessages.presentation
import chat.rocket.android.chatroom.uimodel.UiModelMapper import chat.rocket.android.chatroom.uimodel.UiModelMapper
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.db.DatabaseManager import chat.rocket.android.db.DatabaseManager
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
import chat.rocket.common.model.roomTypeOf import chat.rocket.common.model.roomTypeOf
......
...@@ -11,8 +11,8 @@ import chat.rocket.android.main.presentation.MainNavigator ...@@ -11,8 +11,8 @@ import chat.rocket.android.main.presentation.MainNavigator
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.domain.RemoveAccountInteractor import chat.rocket.android.server.domain.RemoveAccountInteractor
import chat.rocket.android.server.domain.TokenRepository import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.server.presentation.CheckServerPresenter import chat.rocket.android.server.presentation.CheckServerPresenter
import chat.rocket.android.util.extension.compressImageAndGetByteArray import chat.rocket.android.util.extension.compressImageAndGetByteArray
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
......
...@@ -141,7 +141,7 @@ class ProfileFragment : Fragment(), ProfileView, ActionMode.Callback { ...@@ -141,7 +141,7 @@ class ProfileFragment : Fragment(), ProfileView, ActionMode.Callback {
} }
override fun showProfileUpdateSuccessfullyMessage() { override fun showProfileUpdateSuccessfullyMessage() {
showMessage(getString(R.string.msg_profile_update_successfully)) showMessage(getString(R.string.msg_profile_updated_successfully))
} }
override fun invalidateToken(token: String) = invalidateFirebaseToken(token) override fun invalidateToken(token: String) = invalidateFirebaseToken(token)
...@@ -267,8 +267,8 @@ class ProfileFragment : Fragment(), ProfileView, ActionMode.Callback { ...@@ -267,8 +267,8 @@ class ProfileFragment : Fragment(), ProfileView, ActionMode.Callback {
text_email.asObservable() text_email.asObservable()
) { text_name, text_username, text_email -> ) { text_name, text_username, text_email ->
return@combineLatest (text_name.toString() != currentName || return@combineLatest (text_name.toString() != currentName ||
text_username.toString() != currentUsername || text_username.toString() != currentUsername ||
text_email.toString() != currentEmail) text_email.toString() != currentEmail)
}.subscribe { isValid -> }.subscribe { isValid ->
activity?.invalidateOptionsMenu() activity?.invalidateOptionsMenu()
if (isValid) { if (isValid) {
......
...@@ -7,7 +7,7 @@ import android.content.Intent ...@@ -7,7 +7,7 @@ import android.content.Intent
import androidx.core.app.RemoteInput import androidx.core.app.RemoteInput
import android.widget.Toast import android.widget.Toast
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
import chat.rocket.core.internal.rest.sendMessage import chat.rocket.core.internal.rest.sendMessage
import dagger.android.AndroidInjection import dagger.android.AndroidInjection
......
package chat.rocket.android.server.domain
import chat.rocket.android.server.infrastructure.CurrentLanguageRepository
import javax.inject.Inject
class GetCurrentLanguageInteractor @Inject constructor(
private val repository: CurrentLanguageRepository
) {
fun getLanguage(): String? = repository.getLanguage()
fun getCountry(): String? = repository.getCountry()
}
\ No newline at end of file
package chat.rocket.android.server.domain package chat.rocket.android.server.domain
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.core.internal.rest.permissions import chat.rocket.core.internal.rest.permissions
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
......
package chat.rocket.android.server.domain package chat.rocket.android.server.domain
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.core.internal.rest.settings import chat.rocket.core.internal.rest.settings
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
......
package chat.rocket.android.server.domain
import chat.rocket.android.server.infrastructure.CurrentLanguageRepository
import javax.inject.Inject
class SaveCurrentLanguageInteractor @Inject constructor(
private val repository: CurrentLanguageRepository
) {
fun save(language: String, country: String?) = repository.save(language, country)
}
\ No newline at end of file
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import chat.rocket.android.db.DatabaseManager import chat.rocket.android.db.DatabaseManager
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import chat.rocket.android.db.DatabaseManagerFactory import chat.rocket.android.db.DatabaseManagerFactory
import timber.log.Timber import timber.log.Timber
......
package chat.rocket.android.server.infrastructure
interface CurrentLanguageRepository {
fun save(language: String, country: String? = null)
fun getLanguage(): String?
fun getCountry(): String?
}
\ No newline at end of file
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import chat.rocket.android.db.DatabaseManager import chat.rocket.android.db.DatabaseManager
import chat.rocket.android.db.model.* import chat.rocket.android.db.model.*
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import chat.rocket.android.db.DatabaseManager import chat.rocket.android.db.DatabaseManager
import chat.rocket.android.db.Operation import chat.rocket.android.db.Operation
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.app.job.JobInfo import android.app.job.JobInfo
import android.app.job.JobScheduler import android.app.job.JobScheduler
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import chat.rocket.android.server.domain.ChatRoomsRepository import chat.rocket.android.server.domain.ChatRoomsRepository
import chat.rocket.core.model.ChatRoom import chat.rocket.core.model.ChatRoom
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import chat.rocket.android.server.domain.UsersRepository import chat.rocket.android.server.domain.UsersRepository
import chat.rocket.android.server.domain.UsersRepository.Query import chat.rocket.android.server.domain.UsersRepository.Query
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.os.Build import android.os.Build
import chat.rocket.android.BuildConfig import chat.rocket.android.BuildConfig
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.core.content.edit import androidx.core.content.edit
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import chat.rocket.android.infrastructure.LocalRepository import chat.rocket.android.infrastructure.LocalRepository
import chat.rocket.android.server.domain.PermissionsRepository import chat.rocket.android.server.domain.PermissionsRepository
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import chat.rocket.android.infrastructure.LocalRepository import chat.rocket.android.infrastructure.LocalRepository
import chat.rocket.android.infrastructure.LocalRepository.Companion.SETTINGS_KEY import chat.rocket.android.infrastructure.LocalRepository.Companion.SETTINGS_KEY
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.content.SharedPreferences import android.content.SharedPreferences
import chat.rocket.android.server.domain.AnalyticsTrackingRepository import chat.rocket.android.server.domain.AnalyticsTrackingRepository
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.core.content.edit import androidx.core.content.edit
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.content.SharedPreferences import android.content.SharedPreferences
import chat.rocket.android.server.domain.CurrentServerRepository import chat.rocket.android.server.domain.CurrentServerRepository
......
package chat.rocket.android.server.infrastructure
import android.content.SharedPreferences
private const val CURRENT_LANGUAGE = "current_language"
private const val CURRENT_LANGUAGE_COUNTRY = "current_language_country"
class SharedPrefsCurrentLanguageRepository(private val preferences: SharedPreferences) :
CurrentLanguageRepository {
override fun save(language: String, country: String?) {
with(preferences) {
edit().putString(CURRENT_LANGUAGE, language).apply()
edit().putString(CURRENT_LANGUAGE_COUNTRY, country).apply()
}
}
override fun getLanguage(): String? {
return preferences.getString(CURRENT_LANGUAGE, "")
}
override fun getCountry(): String? {
return preferences.getString(CURRENT_LANGUAGE_COUNTRY, "")
}
}
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.content.SharedPreferences import android.content.SharedPreferences
import chat.rocket.android.server.domain.CurrentServerRepository import chat.rocket.android.server.domain.CurrentServerRepository
......
package chat.rocket.android.server.infraestructure package chat.rocket.android.server.infrastructure
import android.content.SharedPreferences import android.content.SharedPreferences
import chat.rocket.android.server.domain.SortingAndGroupingRepository import chat.rocket.android.server.domain.SortingAndGroupingRepository
......
...@@ -9,7 +9,7 @@ import chat.rocket.android.server.domain.GetCurrentServerInteractor ...@@ -9,7 +9,7 @@ import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.domain.SaveCurrentServerInteractor import chat.rocket.android.server.domain.SaveCurrentServerInteractor
import chat.rocket.android.server.domain.SettingsRepository import chat.rocket.android.server.domain.SettingsRepository
import chat.rocket.android.server.domain.TokenRepository import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.util.ifNull import chat.rocket.common.util.ifNull
import javax.inject.Inject import javax.inject.Inject
......
...@@ -26,9 +26,9 @@ import chat.rocket.android.server.domain.GetCurrentServerInteractor ...@@ -26,9 +26,9 @@ import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.domain.RemoveAccountInteractor import chat.rocket.android.server.domain.RemoveAccountInteractor
import chat.rocket.android.server.domain.TokenRepository import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.domain.RefreshSettingsInteractor import chat.rocket.android.server.domain.RefreshSettingsInteractor
import chat.rocket.android.server.infraestructure.ConnectionManager import chat.rocket.android.server.infrastructure.ConnectionManager
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.VersionInfo import chat.rocket.android.util.VersionInfo
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.casUrl import chat.rocket.android.util.extensions.casUrl
...@@ -452,7 +452,7 @@ abstract class CheckServerPresenter constructor( ...@@ -452,7 +452,7 @@ abstract class CheckServerPresenter constructor(
/** /**
* Returns the OAuth client ID of a [serviceMap]. * Returns the OAuth client ID of a [serviceMap].
* REMARK: This function works for common OAuth providers (Google, Facebook, Github and so on) * REMARK: This function works for common OAuth providers (Google, Facebook, GitHub and so on)
* as well as custom OAuth. * as well as custom OAuth.
* *
* @param serviceMap The service map to get the OAuth client ID. * @param serviceMap The service map to get the OAuth client ID.
......
...@@ -40,7 +40,6 @@ class ServersAdapter( ...@@ -40,7 +40,6 @@ class ServersAdapter(
} }
} }
private fun bindServerViewHolder(holder: ServerViewHolder, position: Int) { private fun bindServerViewHolder(holder: ServerViewHolder, position: Int) {
val account = servers[position] val account = servers[position]
holder.bind(account) holder.bind(account)
......
...@@ -4,7 +4,7 @@ import chat.rocket.android.analytics.AnalyticsManager ...@@ -4,7 +4,7 @@ import chat.rocket.android.analytics.AnalyticsManager
import chat.rocket.android.core.lifecycle.CancelStrategy import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.helper.UserHelper import chat.rocket.android.helper.UserHelper
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.common.RocketChatException import chat.rocket.common.RocketChatException
......
...@@ -5,12 +5,14 @@ import chat.rocket.android.db.DatabaseManagerFactory ...@@ -5,12 +5,14 @@ import chat.rocket.android.db.DatabaseManagerFactory
import chat.rocket.android.helper.UserHelper import chat.rocket.android.helper.UserHelper
import chat.rocket.android.main.presentation.MainNavigator import chat.rocket.android.main.presentation.MainNavigator
import chat.rocket.android.server.domain.AnalyticsTrackingInteractor import chat.rocket.android.server.domain.AnalyticsTrackingInteractor
import chat.rocket.android.server.domain.GetCurrentLanguageInteractor
import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.domain.PermissionsInteractor import chat.rocket.android.server.domain.PermissionsInteractor
import chat.rocket.android.server.domain.RemoveAccountInteractor import chat.rocket.android.server.domain.RemoveAccountInteractor
import chat.rocket.android.server.domain.SaveCurrentLanguageInteractor
import chat.rocket.android.server.domain.TokenRepository import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.server.presentation.CheckServerPresenter import chat.rocket.android.server.presentation.CheckServerPresenter
import chat.rocket.android.util.extension.gethash import chat.rocket.android.util.extension.gethash
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
...@@ -41,7 +43,8 @@ class SettingsPresenter @Inject constructor( ...@@ -41,7 +43,8 @@ class SettingsPresenter @Inject constructor(
getCurrentServerInteractor: GetCurrentServerInteractor, getCurrentServerInteractor: GetCurrentServerInteractor,
removeAccountInteractor: RemoveAccountInteractor, removeAccountInteractor: RemoveAccountInteractor,
databaseManagerFactory: DatabaseManagerFactory, databaseManagerFactory: DatabaseManagerFactory,
connectionManagerFactory: ConnectionManagerFactory connectionManagerFactory: ConnectionManagerFactory,
private val saveLanguageInteractor: SaveCurrentLanguageInteractor
) : CheckServerPresenter( ) : CheckServerPresenter(
strategy = strategy, strategy = strategy,
factory = rocketChatClientFactory, factory = rocketChatClientFactory,
...@@ -123,6 +126,10 @@ class SettingsPresenter @Inject constructor( ...@@ -123,6 +126,10 @@ class SettingsPresenter @Inject constructor(
} }
} }
fun saveLocale(language: String, country: String? = null) {
saveLanguageInteractor.save(language, country)
}
fun toProfile() = navigator.toProfile() fun toProfile() = navigator.toProfile()
fun toAdmin() = tokenRepository.get(currentServer)?.let { fun toAdmin() = tokenRepository.get(currentServer)?.let {
......
...@@ -17,6 +17,7 @@ import chat.rocket.android.BuildConfig ...@@ -17,6 +17,7 @@ import chat.rocket.android.BuildConfig
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.analytics.AnalyticsManager import chat.rocket.android.analytics.AnalyticsManager
import chat.rocket.android.analytics.event.ScreenViewEvent import chat.rocket.android.analytics.event.ScreenViewEvent
import chat.rocket.android.core.behaviours.AppLanguageView
import chat.rocket.android.helper.TextHelper.getDeviceAndAppInformation import chat.rocket.android.helper.TextHelper.getDeviceAndAppInformation
import chat.rocket.android.settings.presentation.SettingsPresenter import chat.rocket.android.settings.presentation.SettingsPresenter
import chat.rocket.android.settings.presentation.SettingsView import chat.rocket.android.settings.presentation.SettingsView
...@@ -33,7 +34,7 @@ internal const val TAG_SETTINGS_FRAGMENT = "SettingsFragment" ...@@ -33,7 +34,7 @@ internal const val TAG_SETTINGS_FRAGMENT = "SettingsFragment"
fun newInstance(): Fragment = SettingsFragment() fun newInstance(): Fragment = SettingsFragment()
class SettingsFragment : Fragment(), SettingsView { class SettingsFragment : Fragment(), SettingsView, AppLanguageView {
@Inject lateinit var analyticsManager: AnalyticsManager @Inject lateinit var analyticsManager: AnalyticsManager
@Inject lateinit var presenter: SettingsPresenter @Inject lateinit var presenter: SettingsPresenter
...@@ -74,14 +75,14 @@ class SettingsFragment : Fragment(), SettingsView { ...@@ -74,14 +75,14 @@ class SettingsFragment : Fragment(), SettingsView {
text_contact_us.setOnClickListener { contactSupport() } text_contact_us.setOnClickListener { contactSupport() }
text_language.setOnClickListener {} text_language.setOnClickListener { changeLanguage() }
text_review_this_app.setOnClickListener { showAppOnStore() } text_review_this_app.setOnClickListener { showAppOnStore() }
text_share_this_app.setOnClickListener { shareApp() } text_share_this_app.setOnClickListener { shareApp() }
text_license.setOnClickListener { text_license.setOnClickListener {
presenter.toLicense(getString(R.string.license_url), getString(R.string.title_licence)) presenter.toLicense(getString(R.string.license_url), getString(R.string.title_license))
} }
text_app_version.text = getString(R.string.msg_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE) text_app_version.text = getString(R.string.msg_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)
...@@ -109,6 +110,11 @@ class SettingsFragment : Fragment(), SettingsView { ...@@ -109,6 +110,11 @@ class SettingsFragment : Fragment(), SettingsView {
} }
} }
override fun updateLanguage(language: String, country: String?) {
presenter.saveLocale(language, country)
activity?.recreate()
}
override fun invalidateToken(token: String) = invalidateFirebaseToken(token) override fun invalidateToken(token: String) = invalidateFirebaseToken(token)
override fun showLoading() { override fun showLoading() {
...@@ -155,6 +161,38 @@ class SettingsFragment : Fragment(), SettingsView { ...@@ -155,6 +161,38 @@ class SettingsFragment : Fragment(), SettingsView {
} }
} }
private fun changeLanguage() {
context?.let {
AlertDialog.Builder(it)
.setTitle(R.string.title_choose_language)
.setSingleChoiceItems(
resources.getStringArray(R.array.languages), -1
) { dialog, option ->
when (option) {
0 -> updateLanguage("en")
1 -> updateLanguage("ar")
2 -> updateLanguage("de")
3 -> updateLanguage("es")
4 -> updateLanguage("fa")
5 -> updateLanguage("fr")
6 -> updateLanguage("hi", "IN")
7 -> updateLanguage("it")
8 -> updateLanguage("ja")
9 -> updateLanguage("pt", "BR")
10 -> updateLanguage("pt", "PT")
11 -> updateLanguage("ru", "RU")
12 -> updateLanguage("tr")
13 -> updateLanguage("uk")
14 -> updateLanguage("zh", "CN")
15 -> updateLanguage("zh", "TW")
}
dialog.dismiss()
}
.create()
.show()
}
}
private fun showAppOnStore() { private fun showAppOnStore() {
try { try {
startActivity(Intent(Intent.ACTION_VIEW, getString(R.string.market_link).toUri())) startActivity(Intent(Intent.ACTION_VIEW, getString(R.string.market_link).toUri()))
......
...@@ -140,7 +140,7 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti ...@@ -140,7 +140,7 @@ class SortingAndGroupingBottomSheetFragment : BottomSheetDialogFragment(), Sorti
} }
private fun changeSortByTitle(text: String) { private fun changeSortByTitle(text: String) {
text_sort_by.text = getString(R.string.msg_sort_by, text.toLowerCase()) text_sort_by.text = getString(R.string.msg_sort_by_placeholder, text.toLowerCase())
} }
private fun checkSelection(textView: TextView, @DrawableRes leftDrawable: Int) { private fun checkSelection(textView: TextView, @DrawableRes leftDrawable: Int) {
......
...@@ -9,7 +9,7 @@ import chat.rocket.android.db.model.UserEntity ...@@ -9,7 +9,7 @@ import chat.rocket.android.db.model.UserEntity
import chat.rocket.android.server.domain.CurrentServerRepository import chat.rocket.android.server.domain.CurrentServerRepository
import chat.rocket.android.server.domain.GetSettingsInteractor import chat.rocket.android.server.domain.GetSettingsInteractor
import chat.rocket.android.server.domain.isJitsiEnabled import chat.rocket.android.server.domain.isJitsiEnabled
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
......
...@@ -2,7 +2,7 @@ package chat.rocket.android.util.extensions ...@@ -2,7 +2,7 @@ package chat.rocket.android.util.extensions
import chat.rocket.android.db.model.MessageEntity import chat.rocket.android.db.model.MessageEntity
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.retryIO import chat.rocket.android.util.retryIO
import chat.rocket.core.internal.rest.registerPushToken import chat.rocket.core.internal.rest.registerPushToken
import chat.rocket.core.model.Message import chat.rocket.core.model.Message
......
...@@ -75,6 +75,8 @@ fun String.lowercaseUrl(): String? = HttpUrl.parse(this)?.run { ...@@ -75,6 +75,8 @@ fun String.lowercaseUrl(): String? = HttpUrl.parse(this)?.run {
fun String?.isNotNullNorEmpty(): Boolean = this != null && this.isNotEmpty() fun String?.isNotNullNorEmpty(): Boolean = this != null && this.isNotEmpty()
fun String?.isNotNullNorBlank(): Boolean = this != null && this.isNotBlank()
inline fun String?.ifNotNullNotEmpty(block: (String) -> Unit) { inline fun String?.ifNotNullNotEmpty(block: (String) -> Unit) {
if (this != null && this.isNotEmpty()) { if (this != null && this.isNotEmpty()) {
block(this) block(this)
......
...@@ -6,7 +6,7 @@ import chat.rocket.android.core.lifecycle.CancelStrategy ...@@ -6,7 +6,7 @@ import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.helper.JitsiHelper import chat.rocket.android.helper.JitsiHelper
import chat.rocket.android.helper.UserHelper import chat.rocket.android.helper.UserHelper
import chat.rocket.android.server.domain.* import chat.rocket.android.server.domain.*
import chat.rocket.android.server.infraestructure.ConnectionManagerFactory import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.model.RoomType import chat.rocket.common.model.RoomType
import chat.rocket.common.model.roomTypeOf import chat.rocket.common.model.roomTypeOf
......
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12dp"
android:height="7dp"
android:viewportWidth="12"
android:viewportHeight="7">
<path
android:fillColor="#EFEFEF"
android:fillType="nonZero"
android:pathData="M6,4.9512L10.4571,0.5122C10.7415,0.229 11.2013,0.229 11.4857,0.5122L11.4857,0.5122C11.7686,0.7939 11.7695,1.2516 11.4878,1.5345C11.4871,1.5352 11.4864,1.5359 11.4857,1.5366L6.7057,6.2972C6.3155,6.6858 5.6845,6.6858 5.2943,6.2972L0.5143,1.5366C0.2314,1.2549 0.2305,0.7972 0.5122,0.5143C0.5129,0.5136 0.5136,0.5129 0.5143,0.5122L0.5143,0.5122C0.7987,0.229 1.2585,0.229 1.5429,0.5122L3.5143,2.4756L6,4.9512Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:fillColor="#E8F2FF"
android:fillType="evenOdd"
android:pathData="M4,0L44,0A4,4 0,0 1,48 4L48,44A4,4 0,0 1,44 48L4,48A4,4 0,0 1,0 44L0,4A4,4 0,0 1,4 0z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
<path
android:fillColor="#1D74F5"
android:fillType="nonZero"
android:pathData="M20.4021,27.5L18.3698,27.5C19.0883,28.6535 20.1515,29.57 21.4153,30.1057C20.9935,29.3908 20.6468,28.5043 20.4021,27.5ZM20.126,26C20.0438,25.3608 20,24.6906 20,24C20,23.4873 20.0241,22.9859 20.0702,22.5L17.5419,22.5C17.4304,22.982 17.3714,23.4841 17.3714,24C17.3714,24.697 17.479,25.3689 17.6785,26L20.126,26ZM20.2908,21C20.5358,19.7892 20.9248,18.7257 21.4153,17.8943C19.9739,18.5052 18.7934,19.6117 18.0876,21L20.2908,21ZM27.7092,21L29.9124,21C29.2066,19.6117 28.0261,18.5052 26.5847,17.8943C27.0752,18.7257 27.4642,19.7892 27.7092,21ZM27.9298,22.5C27.9759,22.9859 28,23.4873 28,24C28,24.6906 27.9562,25.3608 27.874,26L30.3215,26C30.521,25.3689 30.6286,24.697 30.6286,24C30.6286,23.4841 30.5696,22.982 30.4581,22.5L27.9298,22.5ZM27.5979,27.5C27.3532,28.5043 27.0065,29.3908 26.5847,30.1057C27.8485,29.57 28.9117,28.6535 29.6302,27.5L27.5979,27.5ZM21.8745,27.5C22.3155,29.3609 23.1025,30.6 24,30.6C24.8975,30.6 25.6845,29.3609 26.1255,27.5L21.8745,27.5ZM21.6127,26L26.3873,26C26.4606,25.3841 26.5,24.7291 26.5,24.05C26.5,23.516 26.4756,22.9969 26.4296,22.5L21.5704,22.5C21.5244,22.9969 21.5,23.516 21.5,24.05C21.5,24.7291 21.5394,25.3841 21.6127,26ZM21.787,21L26.213,21C25.7943,18.9188 24.9604,17.5 24,17.5C23.0396,17.5 22.2057,18.9188 21.787,21ZM24,32C19.5822,32 16,28.4178 16,24C16,19.5813 19.5822,16 24,16C28.4187,16 32,19.5813 32,24C32,28.4178 28.4187,32 24,32Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<path
android:pathData="M3.7143,10.5714L3.7143,5.4286L0.8571,5.4286C0.3838,5.4286 0,5.0448 0,4.5714L0,4.5714C0,4.098 0.3838,3.7143 0.8571,3.7143L3.7143,3.7143L3.7143,0.8571C3.7143,0.3838 4.098,0 4.5714,0L4.5714,0C5.0448,0 5.4286,0.3838 5.4286,0.8571L5.4286,3.7143L10.5714,3.7143L10.5714,0.8571C10.5714,0.3838 10.9552,0 11.4286,0L11.4286,0C11.902,0 12.2857,0.3838 12.2857,0.8571L12.2857,3.7143L15.1429,3.7143C15.6162,3.7143 16,4.098 16,4.5714L16,4.5714C16,5.0448 15.6162,5.4286 15.1429,5.4286L12.2857,5.4286L12.2857,10.5714L15.1429,10.5714C15.6162,10.5714 16,10.9552 16,11.4286L16,11.4286C16,11.902 15.6162,12.2857 15.1429,12.2857L12.2857,12.2857L12.2857,15.1429C12.2857,15.6162 11.902,16 11.4286,16L11.4286,16C10.9552,16 10.5714,15.6162 10.5714,15.1429L10.5714,12.2857L5.4286,12.2857L5.4286,15.1429C5.4286,15.6162 5.0448,16 4.5714,16L4.5714,16C4.098,16 3.7143,15.6162 3.7143,15.1429L3.7143,12.2857L0.8571,12.2857C0.3838,12.2857 0,11.902 0,11.4286L0,11.4286C0,10.9552 0.3838,10.5714 0.8571,10.5714L3.7143,10.5714ZM5.4286,10.5714L10.5714,10.5714L10.5714,5.4286L5.4286,5.4286L5.4286,10.5714Z"
android:strokeWidth="1"
android:fillColor="#CBCBCC"
android:fillType="nonZero"
android:strokeColor="#00000000"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="15dp"
android:height="16dp"
android:viewportWidth="15"
android:viewportHeight="16">
<path
android:fillColor="#CBCBCC"
android:fillType="nonZero"
android:pathData="M1.5248,13.3289C1.7124,13.3993 1.9453,13.471 2.2276,13.5407C3.3824,13.8259 5.0297,14 7.25,14C9.4703,14 11.1176,13.8259 12.2724,13.5407C12.5547,13.471 12.7876,13.3993 12.9752,13.3289C12.8483,12.2275 12.2304,11.6229 11.0233,11.1185C10.8562,11.0486 10.6821,10.9818 10.4514,10.8975C10.5051,10.9171 10.0041,10.7357 9.8749,10.6871C8.6886,10.2409 8.125,9.817 8.1271,8.9552C8.1257,8.9352 8.1257,8.9352 8.1232,8.8835C8.1089,8.5412 8.1341,8.1482 8.2352,7.7544C8.3357,7.3629 8.5018,7.0212 8.7796,6.7313C9.4429,6.0859 9.75,5.4186 9.75,4.4169C9.75,2.7871 8.6092,1.5 7.25,1.5C5.8908,1.5 4.75,2.7871 4.75,4.4169C4.75,5.4177 5.0499,6.0675 5.7166,6.7436C5.9791,7.0111 6.1513,7.3472 6.2566,7.7298C6.3671,8.1314 6.3941,8.5324 6.3773,8.8838C6.3741,8.9408 6.3741,8.9408 6.375,8.8986C6.375,9.817 5.8114,10.2409 4.6251,10.6871C4.4959,10.7357 3.9949,10.9171 4.0486,10.8975C3.8179,10.9818 3.6438,11.0486 3.4767,11.1185C2.2696,11.6229 1.6517,12.2275 1.5248,13.3289ZM0,13.7878C0,11.6909 1.029,10.5156 2.8983,9.7344C3.0901,9.6543 3.2836,9.58 3.5339,9.4886C3.4888,9.505 3.978,9.3279 4.0971,9.2831C4.7164,9.0502 4.875,8.9309 4.8778,8.834C4.8775,8.8383 4.8775,8.8383 4.879,8.8121C4.8889,8.6053 4.8718,8.351 4.8104,8.1279C4.7676,7.9725 4.7093,7.8588 4.6472,7.7955C3.7195,6.8547 3.25,5.8375 3.25,4.4169C3.25,1.9963 5.0194,0 7.25,0C9.4806,0 11.25,1.9963 11.25,4.4169C11.25,5.8419 10.7679,6.8896 9.8447,7.7872C9.7867,7.8479 9.7298,7.9649 9.6881,8.1274C9.6297,8.3548 9.6132,8.6125 9.6219,8.8209C9.6231,8.8456 9.6231,8.8456 9.625,8.8986C9.625,8.9309 9.7836,9.0502 10.4029,9.2831C10.522,9.3279 11.0112,9.505 10.9661,9.4886C11.2164,9.58 11.4099,9.6543 11.6017,9.7344C13.471,10.5156 14.5,11.6909 14.5,13.7878L14.5,14.1647L14.1975,14.3896C13.9508,14.573 13.4546,14.7939 12.6319,14.997C11.351,15.3133 9.5847,15.5 7.25,15.5C4.9153,15.5 3.149,15.3133 1.8681,14.997C1.0454,14.7939 0.5492,14.573 0.3025,14.3896L0,14.1647L0,13.7878Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".directory.ui.DirectorySortingBottomSheetFragment">
<TextView
android:id="@+id/text_sort_by"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/msg_sort_by"
android:textColor="#9EA2A8"
android:textSize="17sp"
android:textStyle="normal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_divider_one"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="#1F000000"
app:layout_constraintTop_toBottomOf="@+id/text_sort_by" />
<TextView
android:id="@+id/text_channels"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_hashtag_16dp"
android:drawablePadding="16dp"
android:paddingStart="16dp"
android:paddingTop="16dp"
android:paddingEnd="16dp"
android:paddingBottom="16dp"
android:text="@string/msg_channels"
android:textColor="#2F343D"
android:textSize="16sp"
android:textStyle="normal"
app:layout_constraintTop_toBottomOf="@+id/view_divider_one" />
<TextView
android:id="@+id/text_users"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_user_16dp"
android:drawablePadding="16dp"
android:paddingStart="16dp"
android:paddingTop="16dp"
android:paddingEnd="16dp"
android:paddingBottom="16dp"
android:text="@string/msg_users"
android:textColor="#2F343D"
android:textSize="16sp"
android:textStyle="normal"
app:layout_constraintTop_toBottomOf="@+id/text_channels" />
<View
android:id="@+id/view_divider_two"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="#1F000000"
app:layout_constraintTop_toBottomOf="@+id/text_users" />
<TextView
android:id="@+id/text_search_for_global_users"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="16dp"
android:paddingEnd="16dp"
android:text="@string/msg_search_for_global_users"
android:textColor="#2F343D"
android:textSize="16sp"
android:textStyle="normal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view_divider_two" />
<Switch
android:id="@+id/switch_global_users"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:checked="false"
app:layout_constraintBottom_toBottomOf="@+id/text_search_for_global_users"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/text_search_for_global_users" />
<TextView
android:id="@+id/text_search_for_global_users_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingBottom="16dp"
android:text="@string/msg_search_for_global_users_description"
android:textColor="#9EA2A8"
android:textSize="14sp"
android:textStyle="normal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text_search_for_global_users" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:text="@string/msg_sort_by" android:text="@string/msg_sort_by_placeholder"
android:textColor="#9EA2A8" android:textColor="#9EA2A8"
android:textSize="17sp" android:textSize="17sp"
android:textStyle="normal" /> android:textStyle="normal" />
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
android:id="@+id/button_forgot_your_password" android:id="@+id/button_forgot_your_password"
style="@style/Authentication.Button.Borderless" style="@style/Authentication.Button.Borderless"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:text="@string/msg_forgot__your_password" android:text="@string/msg_forgot_your_password"
android:visibility="gone" android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
......
...@@ -11,6 +11,27 @@ ...@@ -11,6 +11,27 @@
layout="@layout/app_bar_chat_rooms" layout="@layout/app_bar_chat_rooms"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text_directory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_directory_48dp"
android:drawablePadding="10dp"
android:fontFamily="sans-serif"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingTop="32dp"
android:paddingEnd="16dp"
android:paddingBottom="32dp"
android:text="@string/msg_directory"
android:textColor="#0c0d0f"
android:textSize="17sp"
android:textStyle="bold"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/layout_app_bar_chat_room" />
<TextView <TextView
android:id="@+id/text_sort_by" android:id="@+id/text_sort_by"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -21,13 +42,13 @@ ...@@ -21,13 +42,13 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingStart="@dimen/screen_edge_left_and_right_margins" android:paddingStart="@dimen/screen_edge_left_and_right_margins"
android:paddingEnd="@dimen/screen_edge_left_and_right_margins" android:paddingEnd="@dimen/screen_edge_left_and_right_margins"
android:text="@string/msg_sort_by" android:text="@string/msg_sort_by_placeholder"
android:textColor="#CBCED1" android:textColor="#CBCED1"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="normal" android:textStyle="normal"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/layout_app_bar_chat_room" /> app:layout_constraintTop_toBottomOf="@+id/text_directory" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view" android:id="@+id/recycler_view"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".directory.ui.DirectoryFragment">
<include
android:id="@+id/layout_app_bar"
layout="@layout/app_bar"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text_sort_by"
android:layout_width="match_parent"
android:layout_height="42dp"
android:background="#54585E"
android:drawableStart="@drawable/ic_hashtag_16dp"
android:drawableEnd="@drawable/ic_arrow_down"
android:drawablePadding="10dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_vertical"
android:paddingStart="@dimen/screen_edge_left_and_right_margins"
android:paddingEnd="@dimen/screen_edge_left_and_right_margins"
android:text="@string/msg_channels"
android:textColor="#CBCED1"
android:textSize="14sp"
android:textStyle="normal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/layout_app_bar" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:scrollbars="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text_sort_by" />
<com.wang.avi.AVLoadingIndicatorView
android:id="@+id/view_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:indicatorColor="@color/colorBlack"
app:indicatorName="BallPulseIndicator"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text_sort_by"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -13,14 +13,15 @@ ...@@ -13,14 +13,15 @@
<ScrollView <ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="0dp"
android:layout_below="@+id/layout_app_bar" android:layout_below="@+id/layout_app_bar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/layout_app_bar"> app:layout_constraintTop_toBottomOf="@+id/layout_app_bar">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp"> android:paddingTop="20dp">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/profile_container" android:id="@+id/profile_container"
...@@ -182,7 +183,7 @@ ...@@ -182,7 +183,7 @@
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingEnd="16dp" android:paddingEnd="16dp"
android:paddingBottom="8dp" android:paddingBottom="8dp"
android:text="@string/msg_licence" android:text="@string/msg_license"
android:textColor="#DE000000" android:textColor="#DE000000"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="normal" android:textStyle="normal"
......
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/screen_edge_left_and_right_margins" android:layout_marginStart="@dimen/screen_edge_left_and_right_margins"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:text="@string/status" android:text="@string/user_detail_status"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text_message" /> app:layout_constraintTop_toBottomOf="@+id/text_message" />
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
app:layout_constraintEnd_toStartOf="@+id/layout_unread_messages_badge" app:layout_constraintEnd_toStartOf="@+id/layout_unread_messages_badge"
app:layout_constraintStart_toStartOf="@+id/image_chat_icon" app:layout_constraintStart_toStartOf="@+id/image_chat_icon"
app:layout_constraintTop_toBottomOf="@+id/text_chat_name" app:layout_constraintTop_toBottomOf="@+id/text_chat_name"
tools:text="Filipe de Lima Brito: Type something that is very big and need at least to lines, or maybe even more" /> tools:text="Filipe de Lima Brito: Type something that is very long and need at least two lines, or maybe even more" />
<include <include
android:id="@+id/layout_unread_messages_badge" android:id="@+id/layout_unread_messages_badge"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:paddingStart="@dimen/screen_edge_left_and_right_padding"
android:paddingTop="8dp"
android:paddingEnd="@dimen/screen_edge_left_and_right_padding"
android:paddingBottom="8dp">
<ImageView
android:id="@+id/image_avatar"
android:layout_width="40dp"
android:layout_height="40dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@tools:sample/avatars[6]" />
<TextView
android:id="@+id/text_channel_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:fontFamily="sans-serif-medium"
android:maxLines="1"
android:textColor="#0c0d0f"
android:textSize="17sp"
android:textStyle="normal"
app:layout_constraintEnd_toStartOf="@+id/text_channel_total_members"
app:layout_constraintLeft_toRightOf="@+id/image_avatar"
app:layout_constraintStart_toEndOf="@+id/image_avatar"
app:layout_constraintTop_toTopOf="@+id/image_avatar"
tools:text="General" />
<TextView
android:id="@+id/text_channel_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:fontFamily="sans-serif"
android:maxLines="1"
android:textColor="#9ea2a8"
android:textSize="15sp"
android:textStyle="normal"
app:layout_constraintEnd_toStartOf="@+id/text_channel_total_members"
app:layout_constraintStart_toStartOf="@+id/text_channel_name"
app:layout_constraintTop_toBottomOf="@+id/text_channel_name"
tools:text="Community support" />
<TextView
android:id="@+id/text_channel_total_members"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:maxLines="1"
android:textColor="#9da2a9"
android:textSize="12sp"
android:textStyle="normal"
app:layout_constraintBottom_toBottomOf="@+id/text_channel_description"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/text_channel_name"
tools:text="230K members" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:paddingStart="@dimen/screen_edge_left_and_right_padding"
android:paddingTop="8dp"
android:paddingEnd="@dimen/screen_edge_left_and_right_padding"
android:paddingBottom="8dp">
<ImageView
android:id="@+id/image_avatar"
android:layout_width="40dp"
android:layout_height="40dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@tools:sample/avatars[6]" />
<TextView
android:id="@+id/text_user_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:fontFamily="sans-serif-medium"
android:maxLines="1"
android:textColor="#0c0d0f"
android:textSize="17sp"
android:textStyle="normal"
app:layout_constraintEnd_toStartOf="@+id/text_server_url"
app:layout_constraintLeft_toRightOf="@+id/image_avatar"
app:layout_constraintStart_toEndOf="@+id/image_avatar"
app:layout_constraintTop_toTopOf="@+id/image_avatar"
tools:text="User" />
<TextView
android:id="@+id/text_user_username"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:fontFamily="sans-serif"
android:maxLines="1"
android:textColor="#9ea2a8"
android:textSize="15sp"
android:textStyle="normal"
app:layout_constraintEnd_toStartOf="@+id/text_server_url"
app:layout_constraintStart_toStartOf="@+id/text_user_name"
app:layout_constraintTop_toBottomOf="@+id/text_user_name"
tools:text="Username" />
<!-- We only show the server url if the user is searching for global users-->
<TextView
android:id="@+id/text_server_url"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:maxLines="1"
android:textColor="#9da2a9"
android:textSize="12sp"
android:textStyle="normal"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/text_user_username"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/text_user_name"
tools:text="230K members" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:cropToPadding="true" android:cropToPadding="true"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/quote_bar"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_close_gray_24dp" /> app:srcCompat="@drawable/ic_close_gray_24dp" />
...@@ -65,4 +64,4 @@ ...@@ -65,4 +64,4 @@
app:layout_constraintStart_toEndOf="@+id/quote_bar" app:layout_constraintStart_toEndOf="@+id/quote_bar"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="Edit message" /> tools:text="Edit message" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_search_white_24dp"
android:title="@string/action_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView" />
</menu>
...@@ -21,7 +21,8 @@ ...@@ -21,7 +21,8 @@
<string name="title_password">تغيير كلمة السر</string> <string name="title_password">تغيير كلمة السر</string>
<string name="title_update_profile">تحديث الملف الشخصي</string> <string name="title_update_profile">تحديث الملف الشخصي</string>
<string name="title_create_channel">إنشاء قناة</string> <string name="title_create_channel">إنشاء قناة</string>
<string name="title_licence">الترخيص</string> <string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_license">الترخيص</string>
<string name="title_are_you_sure">هل أنت متأكد؟</string> <string name="title_are_you_sure">هل أنت متأكد؟</string>
<string name="title_channel_details">تفاصيل القناة</string> <string name="title_channel_details">تفاصيل القناة</string>
<string name="title_topic">موضوع</string> <string name="title_topic">موضوع</string>
...@@ -60,27 +61,45 @@ ...@@ -60,27 +61,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Translate --> <string name="action_favorite">Favorite</string> <!-- TODO Translate -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Translate --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Translate -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">نأسف حدث خطأ ما حاول مرة أخرى</string> <string name="msg_generic_error">نأسف حدث خطأ ما حاول مرة أخرى</string>
<string name="msg_no_data_to_display">لا يوجد بيانات للعرض</string> <string name="msg_no_data_to_display">لا يوجد بيانات للعرض</string>
<string name="msg_check_this_out">تحقق من هذا</string> <string name="msg_check_this_out">تحقق من هذا</string>
<string name="msg_share_using">نشر بواسطة</string> <string name="msg_share_using">نشر بواسطة</string>
<string name="msg_profile_update_successfully">تم تحديث الملف الشخصي بنجاح</string> <string name="msg_profile_updated_successfully">تم تحديث الملف الشخصي بنجاح</string>
<string name="msg_username">اسم المستخدم</string> <string name="msg_username">اسم المستخدم</string>
<string name="msg_username_or_email">اسم المستخدم أو عنوان بريد</string> <string name="msg_username_or_email">اسم المستخدم أو عنوان بريد</string>
<string name="msg_password">كلمة السر</string> <string name="msg_password">كلمة السر</string>
...@@ -89,7 +108,7 @@ ...@@ -89,7 +108,7 @@
<string name="msg_avatar_url">رابط الشخصية</string> <string name="msg_avatar_url">رابط الشخصية</string>
<string name="msg_or_continue_using_social_accounts">استمرار باستخدام حساب التواصل الاجتماعي</string> <string name="msg_or_continue_using_social_accounts">استمرار باستخدام حساب التواصل الاجتماعي</string>
<string name="msg_new_user">مستخدم جديد؟ %1$s</string> <string name="msg_new_user">مستخدم جديد؟ %1$s</string>
<string name="msg_forgot__your_password">نسيت كلمة السر؟</string> <string name="msg_forgot_your_password">نسيت كلمة السر؟</string>
<string name="msg_reset">إعادة تعيين</string> <string name="msg_reset">إعادة تعيين</string>
<string name="msg_check_your_email_to_reset_your_password">تم إرسال الإيميل راجع إيميلك لتحديث كلمة السر</string> <string name="msg_check_your_email_to_reset_your_password">تم إرسال الإيميل راجع إيميلك لتحديث كلمة السر</string>
<string name="msg_invalid_email">من فضلك أدخل عنوان بريد صحيح</string> <string name="msg_invalid_email">من فضلك أدخل عنوان بريد صحيح</string>
...@@ -104,12 +123,12 @@ ...@@ -104,12 +123,12 @@
<string name="msg_invalid_file">ملف غير صالح</string> <string name="msg_invalid_file">ملف غير صالح</string>
<string name="msg_invalid_server_url">رابط خادم غير صحيح</string> <string name="msg_invalid_server_url">رابط خادم غير صحيح</string>
<string name="msg_content_description_log_in_using_facebook">تسجيل باستخدام فيسبوك</string> <string name="msg_content_description_log_in_using_facebook">تسجيل باستخدام فيسبوك</string>
<string name="msg_content_description_log_in_using_github">تسجيل باستخدام Github</string> <string name="msg_content_description_log_in_using_github">تسجيل باستخدام GitHub</string>
<string name="msg_content_description_log_in_using_google">تسجيل باستخدام Google</string> <string name="msg_content_description_log_in_using_google">تسجيل باستخدام Google</string>
<string name="msg_content_description_log_in_using_linkedin">تسجيل باستخدام LinkedIn</string> <string name="msg_content_description_log_in_using_linkedin">تسجيل باستخدام LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">تسجيل باستخدام Meteor</string> <string name="msg_content_description_log_in_using_meteor">تسجيل باستخدام Meteor</string>
<string name="msg_content_description_log_in_using_twitter">تسجيل باستخدام Twitter</string> <string name="msg_content_description_log_in_using_twitter">تسجيل باستخدام Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">تسجيل باستخدام Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">تسجيل باستخدام GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">تسجيل باستخدام WordPress</string> <string name="msg_content_description_log_in_using_wordpress">تسجيل باستخدام WordPress</string>
<string name="msg_content_description_send_message">ارسال رسالة</string> <string name="msg_content_description_send_message">ارسال رسالة</string>
<string name="msg_content_description_show_more_login_options">إظهار طرق تسجيل أخرى</string> <string name="msg_content_description_show_more_login_options">إظهار طرق تسجيل أخرى</string>
...@@ -130,11 +149,8 @@ ...@@ -130,11 +149,8 @@
<string name="msg_no_messages_yet">ليس هناك رسائل بعد</string> <string name="msg_no_messages_yet">ليس هناك رسائل بعد</string>
<string name="msg_build">Build %1$d - %2$s - %3$s</string> <string name="msg_build">Build %1$d - %2$s - %3$s</string>
<string name="msg_update_app_version_in_order_to_continue">خادم منتهي برجاء التواصل مع مدير الخادم للاستمرار</string> <string name="msg_update_app_version_in_order_to_continue">خادم منتهي برجاء التواصل مع مدير الخادم للاستمرار</string>
<string name="msg_ver_not_recommended"> <string name="msg_ver_not_recommended">يبدو أن خادمك قديم %1$s يمكنك الاستمرار لكن ليس بكامل الفعالية</string>
يبدو أن خادمك قديم %1$s يمكنك الاستمرار لكن ليس بكامل الفعالية</string> <string name="msg_ver_not_minimum">يبدو أن خادمك قديم %1$s من فضلك حدث الخادم للاستمرار</string>
<string name="msg_ver_not_minimum">
يبدو أن خادمك قديم %1$s من فضلك حدث الخادم للاستمرار
</string>
<string name="msg_no_chat_title">لا توجد رسائل</string> <string name="msg_no_chat_title">لا توجد رسائل</string>
<string name="msg_no_chat_description">إبدأ المحادثة لترى الرسائل هنا</string> <string name="msg_no_chat_description">إبدأ المحادثة لترى الرسائل هنا</string>
<string name="msg_http_insecure">أنت تستخدم HTTP وهو غير آمن ونحن لا نحبذ ذلك.</string> <string name="msg_http_insecure">أنت تستخدم HTTP وهو غير آمن ونحن لا نحبذ ذلك.</string>
...@@ -155,16 +171,16 @@ ...@@ -155,16 +171,16 @@
<string name="msg_sent_attachment">إرسال مرفق</string> <string name="msg_sent_attachment">إرسال مرفق</string>
<string name="msg_welcome_to_rocket_chat">أهلا بك في Rocket.Chat</string> <string name="msg_welcome_to_rocket_chat">أهلا بك في Rocket.Chat</string>
<string name="msg_team_communication">التواصل مع الفريق</string> <string name="msg_team_communication">التواصل مع الفريق</string>
<string name="msg_login_with_email">تسجيل ب <b>عنوان البريد </b></string> <string name="msg_login_with_email">تسجيل ب <b>عنوان البريد</b></string>
<string name="msg_create_account">إنشاء حساب</string> <string name="msg_create_account">إنشاء حساب</string>
<string name="msg_continue_with_facebook">استمرار ب <b>Facebook</b></string> <string name="msg_continue_with_facebook">استمرار ب <b>Facebook</b></string>
<string name="msg_continue_with_github">استمرار ب <b>Github</b></string> <string name="msg_continue_with_github">استمرار ب <b>GitHub</b></string>
<string name="msg_continue_with_google">استمرار ب <b>Google</b></string> <string name="msg_continue_with_google">استمرار ب <b>Google</b></string>
<string name="msg_continue_with_linkedin">استمرار ب <b>Linkedin</b></string> <string name="msg_continue_with_linkedin">استمرار ب <b>LinkedIn</b></string>
<string name="msg_continue_with_gitlab">استمرار ب <b>GitLab</b></string> <string name="msg_continue_with_gitlab">استمرار ب <b>GitLab</b></string>
<string name="msg_continue_with_wordpress">استمرار ب <b>WordPress</b></string> <string name="msg_continue_with_wordpress">استمرار ب <b>WordPress</b></string>
<string name="msg_two_factor_authentication">مصادقة مزدوجة</string> <string name="msg_two_factor_authentication">مصادقة مزدوجة</string>
<string name="msg__your_2fa_code">ما هو رمز 2FA?</string> <string name="msg_your_2fa_code">ما هو رمز 2FA؟</string>
<string name="msg_permalink_copied">الرابط الثابت المنسوخ</string> <string name="msg_permalink_copied">الرابط الثابت المنسوخ</string>
<string name="msg_no_topic">لا يوجد موضوع مضاف</string> <string name="msg_no_topic">لا يوجد موضوع مضاف</string>
<string name="msg_no_announcement">لا يوجد ملف مضاف</string> <string name="msg_no_announcement">لا يوجد ملف مضاف</string>
...@@ -186,6 +202,7 @@ ...@@ -186,6 +202,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">خاص</string> <string name="msg_private_channel">خاص</string>
...@@ -199,8 +216,8 @@ ...@@ -199,8 +216,8 @@
<string name="msg_member_not_found">عضو غير موجود</string> <string name="msg_member_not_found">عضو غير موجود</string>
<string name="msg_channel_created_successfully">تم انشاء القناة بنجاح</string> <string name="msg_channel_created_successfully">تم انشاء القناة بنجاح</string>
<string name="msg_message_copied">تم نسخ الرسالة</string> <string name="msg_message_copied">تم نسخ الرسالة</string>
<string name="msg_delete_message">تم حذف الرسالة</string> <string name="msg_delete_message">حذف الرسالة</string>
<string name="msg_delete_description">هل أنت متأكد من حذف هذه الرسالة</string> <string name="msg_delete_description">هل أنت متأكد من حذف هذه الرسالة؟</string>
<string name="msg_view_more">رؤية المزيد</string> <string name="msg_view_more">رؤية المزيد</string>
<string name="msg_view_less">رؤية أقل</string> <string name="msg_view_less">رؤية أقل</string>
<string name="msg_muted_on_this_channel">لقد جعلت هذه القناة صامتة</string> <string name="msg_muted_on_this_channel">لقد جعلت هذه القناة صامتة</string>
...@@ -277,7 +294,7 @@ ...@@ -277,7 +294,7 @@
<string name="msg_all_files_appear_here">الملفات تظهر هنا</string> <string name="msg_all_files_appear_here">الملفات تظهر هنا</string>
<!-- Upload Messages --> <!-- Upload Messages -->
<string name="max_file_size_exceeded">ملف كبير</string> <string name="max_file_size_exceeded">تجاوز حجم الملف %1$d بايت الحد الأقصى لحجم التحميل وهو %2$d بايت</string>
<!-- Socket status --> <!-- Socket status -->
<string name="status_connected">اتصال</string> <string name="status_connected">اتصال</string>
...@@ -319,7 +336,8 @@ ...@@ -319,7 +336,8 @@
<string name="alert_title_default_skin_tone">نغمة الجلد الافتراضية</string> <string name="alert_title_default_skin_tone">نغمة الجلد الافتراضية</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -328,7 +346,10 @@ ...@@ -328,7 +346,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string> <!-- TODO Translate --> <string name="header_favorite">Favorites</string> <!-- TODO Translate -->
<string name="header_channel">القنوات</string> <string name="msg_channels">القنوات</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">المجموعات الخاصة</string> <string name="header_private_groups">المجموعات الخاصة</string>
<string name="header_direct_messages">الرسائل المباشرة</string> <string name="header_direct_messages">الرسائل المباشرة</string>
<string name="header_live_chats">محادثات حية</string> <string name="header_live_chats">محادثات حية</string>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<string name="title_authentication">Login Daten prüfen</string> <string name="title_authentication">Login Daten prüfen</string>
<string name="title_legal_terms">Legal Terms</string> <string name="title_legal_terms">Legal Terms</string>
<string name="title_chats">Chats</string> <string name="title_chats">Chats</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_profile">Profil</string> <string name="title_profile">Profil</string>
<string name="title_members">Benutzer</string> <string name="title_members">Benutzer</string>
<string name="title_counted_members">Benutzer (%d)</string> <string name="title_counted_members">Benutzer (%d)</string>
...@@ -25,14 +26,14 @@ ...@@ -25,14 +26,14 @@
<string name="title_topic">Thema</string> <string name="title_topic">Thema</string>
<string name="title_announcement">Ankündigung</string> <string name="title_announcement">Ankündigung</string>
<string name="title_description">Beschreibung</string> <string name="title_description">Beschreibung</string>
<string name="title_licence">Lizenz</string> <string name="title_license">Lizenz</string>
<!-- Actions --> <!-- Actions -->
<string name="action_connect">Verbinde</string> <string name="action_connect">Verbinde</string>
<string name="action_use_this_username">Benutze den Benutzernamen</string> <string name="action_use_this_username">Benutze den Benutzernamen</string>
<string name="action_terms_of_service">Nutzungsbedingungen</string> <string name="action_terms_of_service">Nutzungsbedingungen</string>
<string name="action_privacy_policy">Datenschutz</string> <string name="action_privacy_policy">Datenschutz</string>
<string name="action_new_channel">New channel</string> <!-- TODO Translate --> <string name="action_new_channel">Neuer Kanal</string>
<string name="action_search">Suche</string> <string name="action_search">Suche</string>
<string name="action_update">Updaten</string> <string name="action_update">Updaten</string>
<string name="action_settings">Einstellungen</string> <string name="action_settings">Einstellungen</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favoriten</string> <string name="action_favorite">Favoriten</string>
<string name="action_remove_favorite">Favoriten entfernen</string> <string name="action_remove_favorite">Favoriten entfernen</string>
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Kontaktiere uns</string>
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Sprache</string>
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Bewerte diese App</string>
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Teile diese App</string>
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string>
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">Lizenz</string>
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string>
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Serverversion: %1$s</string>
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Analysesaten senden</string>
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout von Rocket.Chat</string>
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Konto löschen</string>
<string name="msg_change_status">Status ändern</string>
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Entschuldigung, ein Fehler ist aufgetreten, bitte versuchen Sie es noch einmal.</string> <string name="msg_generic_error">Entschuldigung, ein Fehler ist aufgetreten, bitte versuchen Sie es noch einmal.</string>
<string name="msg_no_data_to_display">Keine Anzeigedaten vorhanden</string> <string name="msg_no_data_to_display">Keine Anzeigedaten vorhanden</string>
<string name="msg_check_this_out">Schau dir das an</string> <string name="msg_check_this_out">Schau dir das an</string>
<string name="msg_share_using">Teilen Sie mit</string> <string name="msg_share_using">Teilen Sie mit</string>
<string name="msg_profile_update_successfully">Profil update erfolgreich</string> <string name="msg_profile_updated_successfully">Profil update erfolgreich</string>
<string name="msg_username">Benutzername</string> <string name="msg_username">Benutzername</string>
<string name="msg_username_or_email">Benutzername oder E-Mail</string> <string name="msg_username_or_email">Benutzername oder E-Mail</string>
<string name="msg_password">Passwort</string> <string name="msg_password">Passwort</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">Avatar URL</string> <string name="msg_avatar_url">Avatar URL</string>
<string name="msg_or_continue_using_social_accounts">Oder weiter mit einem Social Account</string> <string name="msg_or_continue_using_social_accounts">Oder weiter mit einem Social Account</string>
<string name="msg_new_user">Neuer Benutzer? %1$s</string> <string name="msg_new_user">Neuer Benutzer? %1$s</string>
<string name="msg_forgot__your_password">Passwort vergessen?</string> <string name="msg_forgot_your_password">Passwort vergessen?</string>
<string name="msg_reset">Zurücksetzen</string> <string name="msg_reset">Zurücksetzen</string>
<string name="msg_check_your_email_to_reset_your_password">E-Mail gesendet! Prüfe dein E-Mail Posteingang um dein Passwort zurückzusetzen.</string> <string name="msg_check_your_email_to_reset_your_password">E-Mail gesendet! Prüfe dein E-Mail Posteingang um dein Passwort zurückzusetzen.</string>
<string name="msg_invalid_email">Bitte eine korrekte E-Mail Adresse eingeben</string> <string name="msg_invalid_email">Bitte eine korrekte E-Mail Adresse eingeben</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">Falsche Datei</string> <string name="msg_invalid_file">Falsche Datei</string>
<string name="msg_invalid_server_url">Falsche Server URL</string> <string name="msg_invalid_server_url">Falsche Server URL</string>
<string name="msg_content_description_log_in_using_facebook">Login mit Facebook</string> <string name="msg_content_description_log_in_using_facebook">Login mit Facebook</string>
<string name="msg_content_description_log_in_using_github">Login mit Github</string> <string name="msg_content_description_log_in_using_github">Login mit GitHub</string>
<string name="msg_content_description_log_in_using_google">Login mit Google</string> <string name="msg_content_description_log_in_using_google">Login mit Google</string>
<string name="msg_content_description_log_in_using_linkedin">Login mit Linkedin</string> <string name="msg_content_description_log_in_using_linkedin">Login mit LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Login mit Meteor</string> <string name="msg_content_description_log_in_using_meteor">Login mit Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Login mit Twitter</string> <string name="msg_content_description_log_in_using_twitter">Login mit Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Login mit Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Login mit GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Login mit WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Login mit WordPress</string>
<string name="msg_content_description_send_message">Sende Nachricht</string> <string name="msg_content_description_send_message">Sende Nachricht</string>
<string name="msg_content_description_show_more_login_options">Zeige mehr Login-Optionen</string> <string name="msg_content_description_show_more_login_options">Zeige mehr Login-Optionen</string>
...@@ -155,13 +174,13 @@ ...@@ -155,13 +174,13 @@
<string name="msg_login_with_email">Mit <b>e-mail</b> einloggen</string> <string name="msg_login_with_email">Mit <b>e-mail</b> einloggen</string>
<string name="msg_create_account">Einen Account erstellen</string> <string name="msg_create_account">Einen Account erstellen</string>
<string name="msg_continue_with_facebook">Mit <b>Facebook</b> einloggen</string> <string name="msg_continue_with_facebook">Mit <b>Facebook</b> einloggen</string>
<string name="msg_continue_with_github">Mit <b>Github</b> einloggen</string> <string name="msg_continue_with_github">Mit <b>GitHub</b> einloggen</string>
<string name="msg_continue_with_google">Mit <b>Google</b> einloggen</string> <string name="msg_continue_with_google">Mit <b>Google</b> einloggen</string>
<string name="msg_continue_with_linkedin">Mit <b>Linkedin</b> einloggen</string> <string name="msg_continue_with_linkedin">Mit <b>LinkedIn</b> einloggen</string>
<string name="msg_continue_with_gitlab">Mit <b>GitLab</b> einloggen</string> <string name="msg_continue_with_gitlab">Mit <b>GitLab</b> einloggen</string>
<string name="msg_continue_with_wordpress">Mit <b>WordPress</b> einloggen</string> <string name="msg_continue_with_wordpress">Mit <b>WordPress</b> einloggen</string>
<string name="msg_two_factor_authentication">Zwei-Faktor-Authentifizierung</string> <string name="msg_two_factor_authentication">Zwei-Faktor-Authentifizierung</string>
<string name="msg__your_2fa_code">Wie lautet Ihr F2A Code?</string> <string name="msg_your_2fa_code">Wie lautet Ihr F2A Code?</string>
<string name="msg_muted_on_this_channel">Sie sind auf diesem Kanal stummgeschaltet</string> <string name="msg_muted_on_this_channel">Sie sind auf diesem Kanal stummgeschaltet</string>
<string name="msg_no_topic">Keine Überschrift</string> <string name="msg_no_topic">Keine Überschrift</string>
<string name="msg_no_announcement">Keine Ankündigung</string> <string name="msg_no_announcement">Keine Ankündigung</string>
...@@ -173,10 +192,11 @@ ...@@ -173,10 +192,11 @@
<item quantity="other">%1$s reagierte mit %2$s</item> <item quantity="other">%1$s reagierte mit %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Login-Daten erfolgreich gespeichert</string> <string name="msg_credentials_saved_successfully">Login-Daten erfolgreich gespeichert</string>
<string name="msg_camera_permission_denied">Camera permission is needed to open camera.</string> <!-- TODO Add translation --> <string name="msg_camera_permission_denied">Zum Öffnen der Kamera ist eine Kamera-Berechtigung erforderlich.</string>
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Zum Öffnen der Zeichnung ist eine Speicher-Berechtigung erforderlich.</string>
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string>
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Neuen Server hinzufügen</string>
<string name="msg_directory">Verzeichnis</string>
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privat</string> <string name="msg_private_channel">Privat</string>
...@@ -314,16 +334,20 @@ ...@@ -314,16 +334,20 @@
<string name="alert_title_default_skin_tone">Standard Hautton</string> <string name="alert_title_default_skin_tone">Standard Hautton</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sortiere nach %1$s</string>
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by">Sortiert nach</string>
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Aktivität</string>
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string>
<string name="msg_group_by_type">Group by type</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Ungelesen oben</string>
<string name="msg_group_by_favorites">Group by favorites</string> <!-- TODO Translate --> <string name="msg_group_by_type">Gruppieren nach Typ</string>
<string name="msg_group_by_favorites">Gruppieren nach Favoriten</string>
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favoriten</string> <string name="header_favorite">Favoriten</string>
<string name="header_channel">Räume</string> <string name="msg_channels">Räume</string>
<string name="msg_users">Benutzer</string>
<string name="msg_search_for_global_users">Suche nach globalen Benutzern</string>
<string name="msg_search_for_global_users_description">Wenn Sie dies einschalten, können Sie nach Benutzern von anderen Unternehmen oder Servern suchen.</string>
<string name="header_private_groups">Private Räume</string> <string name="header_private_groups">Private Räume</string>
<string name="header_direct_messages">Direkt Nachrichten</string> <string name="header_direct_messages">Direkt Nachrichten</string>
<string name="header_live_chats">Live Chats</string> <string name="header_live_chats">Live Chats</string>
......
...@@ -19,8 +19,9 @@ ...@@ -19,8 +19,9 @@
<string name="title_admin_panel">Admin panel</string> <!-- TODO Add translation --> <string name="title_admin_panel">Admin panel</string> <!-- TODO Add translation -->
<string name="title_password">Cambia la contraseña</string> <string name="title_password">Cambia la contraseña</string>
<string name="title_update_profile">Actualización del perfil</string> <string name="title_update_profile">Actualización del perfil</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_create_channel">Crear canal</string> <string name="title_create_channel">Crear canal</string>
<string name="title_licence">Licence</string> <!-- TODO Add translation --> <string name="title_license">License</string> <!-- TODO Add translation -->
<string name="title_are_you_sure">Are you sure?</string> <!-- TODO Add translation --> <string name="title_are_you_sure">Are you sure?</string> <!-- TODO Add translation -->
<string name="title_channel_details">Channel Details</string> <!-- TODO add translation --> <string name="title_channel_details">Channel Details</string> <!-- TODO add translation -->
<string name="title_topic">Tema</string> <string name="title_topic">Tema</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Lo sentimos, ha ocurrido un error, por favor intente de nuevo</string> <string name="msg_generic_error">Lo sentimos, ha ocurrido un error, por favor intente de nuevo</string>
<string name="msg_no_data_to_display">No hay información para mostrar</string> <string name="msg_no_data_to_display">No hay información para mostrar</string>
<string name="msg_check_this_out">Mira esto</string> <string name="msg_check_this_out">Mira esto</string>
<string name="msg_share_using">Compartir usando</string> <string name="msg_share_using">Compartir usando</string>
<string name="msg_profile_update_successfully">Actualización de perfil con éxito</string> <string name="msg_profile_updated_successfully">Actualización de perfil con éxito</string>
<string name="msg_username">usuario</string> <string name="msg_username">usuario</string>
<string name="msg_username_or_email">Nombre de usuario o correo electrónico</string> <string name="msg_username_or_email">Nombre de usuario o correo electrónico</string>
<string name="msg_password">Contraseña</string> <string name="msg_password">Contraseña</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">URL del avatar</string> <string name="msg_avatar_url">URL del avatar</string>
<string name="msg_or_continue_using_social_accounts">O continuar usando cuentas sociales</string> <string name="msg_or_continue_using_social_accounts">O continuar usando cuentas sociales</string>
<string name="msg_new_user">Nuevo usuario? %1$s</string> <string name="msg_new_user">Nuevo usuario? %1$s</string>
<string name="msg_forgot__your_password">Se te olvidó tu contraseña?</string> <string name="msg_forgot_your_password">Se te olvidó tu contraseña?</string>
<string name="msg_reset">reiniciar</string> <string name="msg_reset">reiniciar</string>
<string name="msg_check_your_email_to_reset_your_password">¡Email enviado! Verifique su bandeja de entrada para restablecer su contraseña.</string> <string name="msg_check_your_email_to_reset_your_password">¡Email enviado! Verifique su bandeja de entrada para restablecer su contraseña.</string>
<string name="msg_invalid_email">Por favor escriba un correo electrónico válido</string> <string name="msg_invalid_email">Por favor escriba un correo electrónico válido</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">Archivo inválido</string> <string name="msg_invalid_file">Archivo inválido</string>
<string name="msg_invalid_server_url">URL del servidor inválido</string> <string name="msg_invalid_server_url">URL del servidor inválido</string>
<string name="msg_content_description_log_in_using_facebook">Inicia sesión usando Facebook</string> <string name="msg_content_description_log_in_using_facebook">Inicia sesión usando Facebook</string>
<string name="msg_content_description_log_in_using_github">Inicia sesión usando Github</string> <string name="msg_content_description_log_in_using_github">Inicia sesión usando GitHub</string>
<string name="msg_content_description_log_in_using_google">Inicia sesión usando Google</string> <string name="msg_content_description_log_in_using_google">Inicia sesión usando Google</string>
<string name="msg_content_description_log_in_using_linkedin">Inicia sesión usando Linkedin</string> <string name="msg_content_description_log_in_using_linkedin">Inicia sesión usando LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Inicia sesión usando Meteor</string> <string name="msg_content_description_log_in_using_meteor">Inicia sesión usando Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Inicia sesión usando Twitter</string> <string name="msg_content_description_log_in_using_twitter">Inicia sesión usando Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Inicia sesión usando Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Inicia sesión usando GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Inicia sesión usando WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Inicia sesión usando WordPress</string>
<string name="msg_content_description_send_message">Enviar mensaje</string> <string name="msg_content_description_send_message">Enviar mensaje</string>
<string name="msg_content_description_show_more_login_options">Show more login options</string> <!-- TODO Translate--> <string name="msg_content_description_show_more_login_options">Show more login options</string> <!-- TODO Translate-->
...@@ -148,22 +167,23 @@ ...@@ -148,22 +167,23 @@
<string name="msg_search">Buscar</string> <string name="msg_search">Buscar</string>
<string name="msg_message_copied">Mensaje copiado</string> <string name="msg_message_copied">Mensaje copiado</string>
<string name="msg_delete_message">Borrar mensaje</string> <string name="msg_delete_message">Borrar mensaje</string>
<string name="msg_delete_description">Seguro que quieres borrar este mensaje</string> <string name="msg_delete_description">¿Seguro que quieres borrar este mensaje?</string>
<string name="msg_no_search_found">No se han encontrado resultados</string> <string name="msg_no_search_found">No se han encontrado resultados</string>
<string name="msg_welcome_to_rocket_chat">Welcome to Rocket.Chat</string> <!-- TODO Add translation --> <string name="msg_welcome_to_rocket_chat">Welcome to Rocket.Chat</string> <!-- TODO Add translation -->
<string name="msg_team_communication">Team Communication</string> <!-- TODO Translate --> <string name="msg_team_communication">Team Communication</string> <!-- TODO Translate -->
<string name="msg_login_with_email">Login with <b>e-mail</b></string> <!-- TODO Add translation --> <string name="msg_login_with_email">Login with <b>e-mail</b></string> <!-- TODO Add translation -->
<string name="msg_create_account">Create an account</string> <!-- TODO Add translation --> <string name="msg_create_account">Create an account</string> <!-- TODO Add translation -->
<string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_github">Continue with <b>Github</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_github">Continue with <b>GitHub</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_google">Continue with <b>Google</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_google">Continue with <b>Google</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_linkedin">Continue with <b>Linkedin</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_linkedin">Continue with <b>LinkedIn</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation -->
<string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation --> <string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation -->
<string name="msg__your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation --> <string name="msg_your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privado</string> <string name="msg_private_channel">Privado</string>
...@@ -196,10 +216,10 @@ ...@@ -196,10 +216,10 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<!-- Preferences messages --> <!-- Preferences messages -->
<string name="msg_analytics_tracking">Analytics tracking</string> <!-- TODO Add translation --> <string name="msg_analytics_tracking">Seguimiento analítico</string>
<string name="msg_send_analytics_tracking">Send anonymous statics to help improving this app</string> <!-- TODO Add translation --> <string name="msg_send_analytics_tracking">Envía estadísticas anónimas para ayudar a mejorar esta aplicación</string>
<string name="msg_do_not_send_analytics_tracking">Do not send anonymous statics to help improving this app</string> <!-- TODO Add translation --> <string name="msg_do_not_send_analytics_tracking">No envíe estadísticas anónimas para ayudar a mejorar esta aplicación</string>
<string name="msg_not_applicable_since_it_is_a_foss_version">Not applicable since it is a FOSS version</string> <!-- TODO Add translation --> <string name="msg_not_applicable_since_it_is_a_foss_version">No aplica ya que es una versión FOSS</string>
<!-- System messages --> <!-- System messages -->
<string name="message_room_name_changed">Nombre de la sala cambiado para: %1$s por %2$s</string> <string name="message_room_name_changed">Nombre de la sala cambiado para: %1$s por %2$s</string>
...@@ -311,7 +331,8 @@ ...@@ -311,7 +331,8 @@
<string name="alert_title_default_skin_tone">Tono de piel predeterminado</string> <string name="alert_title_default_skin_tone">Tono de piel predeterminado</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -320,7 +341,10 @@ ...@@ -320,7 +341,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">Canales</string> <string name="msg_channels">Canales</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">Grupos privados</string> <string name="header_private_groups">Grupos privados</string>
<string name="header_direct_messages">Mensajes directos</string> <string name="header_direct_messages">Mensajes directos</string>
<string name="header_live_chats">Chats en vivo</string> <string name="header_live_chats">Chats en vivo</string>
......
...@@ -18,9 +18,10 @@ ...@@ -18,9 +18,10 @@
<string name="title_rate_us">به ما امتیاز دهید</string> <string name="title_rate_us">به ما امتیاز دهید</string>
<string name="title_admin_panel">Admin panel</string> <!-- TODO Add translation --> <string name="title_admin_panel">Admin panel</string> <!-- TODO Add translation -->
<string name="title_password">تغییر گذرواژه</string> <string name="title_password">تغییر گذرواژه</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_update_profile">به روزرسانی نمایه</string> <string name="title_update_profile">به روزرسانی نمایه</string>
<string name="title_create_channel">ایجاد کانال</string> <string name="title_create_channel">ایجاد کانال</string>
<string name="title_licence">مجوز</string> <string name="title_license">مجوز</string>
<string name="title_are_you_sure">آیا مطمئن هستید؟</string> <string name="title_are_you_sure">آیا مطمئن هستید؟</string>
<string name="title_channel_details">جزئیات کانال</string> <string name="title_channel_details">جزئیات کانال</string>
<string name="title_topic">موضوع</string> <string name="title_topic">موضوع</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">متاسفانه مشکلی رخ داد، لطفا دوباره تلاش کنید</string> <string name="msg_generic_error">متاسفانه مشکلی رخ داد، لطفا دوباره تلاش کنید</string>
<string name="msg_no_data_to_display">اطلاعاتی برای نمایش وجود نداد</string> <string name="msg_no_data_to_display">اطلاعاتی برای نمایش وجود نداد</string>
<string name="msg_check_this_out">اینجا را ببینید</string> <string name="msg_check_this_out">اینجا را ببینید</string>
<string name="msg_share_using">تغییر کاربری</string> <string name="msg_share_using">تغییر کاربری</string>
<string name="msg_profile_update_successfully">نمایه با موفقیت به روزرسانی شد</string> <string name="msg_profile_updated_successfully">نمایه با موفقیت به روزرسانی شد</string>
<string name="msg_username">شناسه‌ی کاربری</string> <string name="msg_username">شناسه‌ی کاربری</string>
<string name="msg_username_or_email">حساب‌کاربری یا ایمیل</string> <string name="msg_username_or_email">حساب‌کاربری یا ایمیل</string>
<string name="msg_password">گذرواژه</string> <string name="msg_password">گذرواژه</string>
...@@ -87,8 +106,8 @@ ...@@ -87,8 +106,8 @@
<string name="msg_email">ایمیل</string> <string name="msg_email">ایمیل</string>
<string name="msg_avatar_url">URL تصویر نمایه</string> <string name="msg_avatar_url">URL تصویر نمایه</string>
<string name="msg_or_continue_using_social_accounts">یا به استفاده از سرورهای اجتماعی ادامه دهید</string> <string name="msg_or_continue_using_social_accounts">یا به استفاده از سرورهای اجتماعی ادامه دهید</string>
<string name="msg_new_user">%1$s کاربر جدید?</string> <string name="msg_new_user">%1$s کاربر جدید؟</string>
<string name="msg_forgot__your_password">گذرواژه‌تان را فراموش کردید؟</string> <string name="msg_forgot_your_password">گذرواژه‌تان را فراموش کردید؟</string>
<string name="msg_reset">راه اندازی مجدد</string> <string name="msg_reset">راه اندازی مجدد</string>
<string name="msg_check_your_email_to_reset_your_password">ایمیل فرستاده شد. صندوق ورودی خود را برای تعویض گذرواژه چک کنید</string> <string name="msg_check_your_email_to_reset_your_password">ایمیل فرستاده شد. صندوق ورودی خود را برای تعویض گذرواژه چک کنید</string>
<string name="msg_invalid_email">لطفا یک ایمیل معتبر را بنویسید</string> <string name="msg_invalid_email">لطفا یک ایمیل معتبر را بنویسید</string>
...@@ -163,7 +182,7 @@ ...@@ -163,7 +182,7 @@
<string name="msg_continue_with_gitlab">ادامه دادن با <b>گیت‌لب</b></string> <string name="msg_continue_with_gitlab">ادامه دادن با <b>گیت‌لب</b></string>
<string name="msg_continue_with_wordpress">ادامه دادن با <b>وردپرس</b></string> <string name="msg_continue_with_wordpress">ادامه دادن با <b>وردپرس</b></string>
<string name="msg_two_factor_authentication">تایید هویت دو فاکتوره</string> <string name="msg_two_factor_authentication">تایید هویت دو فاکتوره</string>
<string name="msg__your_2fa_code">کد 2FA تان چیست؟</string> <string name="msg_your_2fa_code">کد 2FA تان چیست؟</string>
<string name="msg_permalink_copied">پیوند کپی شد</string> <string name="msg_permalink_copied">پیوند کپی شد</string>
<string name="msg_no_topic">No topic</string> <!-- TODO Add translation --> <string name="msg_no_topic">No topic</string> <!-- TODO Add translation -->
<string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation --> <string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation -->
...@@ -181,6 +200,7 @@ ...@@ -181,6 +200,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">خصوصی</string> <string name="msg_private_channel">خصوصی</string>
...@@ -314,7 +334,8 @@ ...@@ -314,7 +334,8 @@
<string name="alert_title_default_skin_tone">مدل پوسته‌ی پیش‌فرض</string> <string name="alert_title_default_skin_tone">مدل پوسته‌ی پیش‌فرض</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -323,7 +344,10 @@ ...@@ -323,7 +344,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">کانال‌ها</string> <string name="msg_channels">کانال‌ها</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">گروه‌های خصوصی</string> <string name="header_private_groups">گروه‌های خصوصی</string>
<string name="header_direct_messages">پیام‌های خصوصی</string> <string name="header_direct_messages">پیام‌های خصوصی</string>
<string name="header_live_chats">گفت‌وگوهای زنده</string> <string name="header_live_chats">گفت‌وگوهای زنده</string>
......
...@@ -14,13 +14,14 @@ ...@@ -14,13 +14,14 @@
<string name="title_counted_members">Membres (%d)</string> <string name="title_counted_members">Membres (%d)</string>
<string name="title_settings">Paramètres</string> <string name="title_settings">Paramètres</string>
<string name="title_preferences">Préférences</string> <string name="title_preferences">Préférences</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_change_password">Changer le mot de passe</string> <string name="title_change_password">Changer le mot de passe</string>
<string name="title_rate_us">évaluez nous</string> <string name="title_rate_us">évaluez nous</string>
<string name="title_admin_panel">l\' administration</string> <string name="title_admin_panel">l\' administration</string>
<string name="title_password">Changer le mot de passe</string> <string name="title_password">Changer le mot de passe</string>
<string name="title_update_profile">Mettre à jour le profil</string> <string name="title_update_profile">Mettre à jour le profil</string>
<string name="title_create_channel">Créer salon</string> <string name="title_create_channel">Créer salon</string>
<string name="title_licence">les permis</string> <string name="title_license">les permis</string>
<string name="title_are_you_sure">Êtes-vous sûr?</string> <string name="title_are_you_sure">Êtes-vous sûr?</string>
<string name="title_channel_details">Détails de la chaîne</string> <string name="title_channel_details">Détails de la chaîne</string>
<string name="title_topic">Sujet</string> <string name="title_topic">Sujet</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Désolé, une erreur s\'est produite. Veuillez réessayer</string> <string name="msg_generic_error">Désolé, une erreur s\'est produite. Veuillez réessayer</string>
<string name="msg_no_data_to_display">Aucune donnée à afficher</string> <string name="msg_no_data_to_display">Aucune donnée à afficher</string>
<string name="msg_check_this_out">regarde ça</string> <string name="msg_check_this_out">regarde ça</string>
<string name="msg_share_using">Partager en utilisant</string> <string name="msg_share_using">Partager en utilisant</string>
<string name="msg_profile_update_successfully">Mise à jour du profil avec succès</string> <string name="msg_profile_updated_successfully">Mise à jour du profil avec succès</string>
<string name="msg_username">nom d\'utilisateur</string> <string name="msg_username">nom d\'utilisateur</string>
<string name="msg_username_or_email">Nom d\'utilisateur ou email</string> <string name="msg_username_or_email">Nom d\'utilisateur ou email</string>
<string name="msg_password">Mot de passe</string> <string name="msg_password">Mot de passe</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">URL de l\'avatar</string> <string name="msg_avatar_url">URL de l\'avatar</string>
<string name="msg_or_continue_using_social_accounts">Ou continuer en utilisant les comptes sociaux</string> <string name="msg_or_continue_using_social_accounts">Ou continuer en utilisant les comptes sociaux</string>
<string name="msg_new_user">Nouvel utilisateur? %1$s</string> <string name="msg_new_user">Nouvel utilisateur? %1$s</string>
<string name="msg_forgot__your_password">Mot de passe oublié ? %1$s</string> <string name="msg_forgot_your_password">Mot de passe oublié? %1$s</string>
<string name="msg_reset">Réinitialiser</string> <string name="msg_reset">Réinitialiser</string>
<string name="msg_check_your_email_to_reset_your_password">Email envoyé ! Consultez votre boîte mail pour réinitialiser votre mot de passe.</string> <string name="msg_check_your_email_to_reset_your_password">Email envoyé ! Consultez votre boîte mail pour réinitialiser votre mot de passe.</string>
<string name="msg_invalid_email">Veuillez entrer une adresse valide</string> <string name="msg_invalid_email">Veuillez entrer une adresse valide</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">Fichier non valide</string> <string name="msg_invalid_file">Fichier non valide</string>
<string name="msg_invalid_server_url">URL de serveur non valide</string> <string name="msg_invalid_server_url">URL de serveur non valide</string>
<string name="msg_content_description_log_in_using_facebook">Connectez-vous en utilisant Facebook</string> <string name="msg_content_description_log_in_using_facebook">Connectez-vous en utilisant Facebook</string>
<string name="msg_content_description_log_in_using_github">Connectez-vous en utilisant Github</string> <string name="msg_content_description_log_in_using_github">Connectez-vous en utilisant GitHub</string>
<string name="msg_content_description_log_in_using_google">Connectez-vous en utilisant Google</string> <string name="msg_content_description_log_in_using_google">Connectez-vous en utilisant Google</string>
<string name="msg_content_description_log_in_using_linkedin">Connectez-vous en utilisant Linkedin</string> <string name="msg_content_description_log_in_using_linkedin">Connectez-vous en utilisant LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Connectez-vous en utilisant Meteor</string> <string name="msg_content_description_log_in_using_meteor">Connectez-vous en utilisant Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Connectez-vous en utilisant Twitter</string> <string name="msg_content_description_log_in_using_twitter">Connectez-vous en utilisant Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Connectez-vous en utilisant Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Connectez-vous en utilisant GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Connectez-vous en utilisant WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Connectez-vous en utilisant WordPress</string>
<string name="msg_content_description_send_message">Envoyer message</string> <string name="msg_content_description_send_message">Envoyer message</string>
<string name="msg_content_description_show_more_login_options">montrer plus d\'options le login</string> <string name="msg_content_description_show_more_login_options">montrer plus d\'options le login</string>
...@@ -152,19 +171,19 @@ ...@@ -152,19 +171,19 @@
<string name="msg_file_description">Description du fichier</string> <string name="msg_file_description">Description du fichier</string>
<string name="msg_send">envoyer</string> <string name="msg_send">envoyer</string>
<string name="msg_delete_message">Supprimer Message</string> <string name="msg_delete_message">Supprimer Message</string>
<string name="msg_delete_description">Êtes-vous sûr de vouloir supprimer ce message</string> <string name="msg_delete_description">Êtes-vous sûr de vouloir supprimer ce message?</string>
<string name="msg_welcome_to_rocket_chat">Bienvenue à Rocket.Chat</string> <string name="msg_welcome_to_rocket_chat">Bienvenue à Rocket.Chat</string>
<string name="msg_team_communication">Communication d\'équipe</string> <string name="msg_team_communication">Communication d\'équipe</string>
<string name="msg_login_with_email">le login avec <b>e-mail</b></string> <string name="msg_login_with_email">le login avec <b>e-mail</b></string>
<string name="msg_create_account">Créer un compte</string> <string name="msg_create_account">Créer un compte</string>
<string name="msg_continue_with_facebook">Continuer avec <b>Facebook</b></string> <string name="msg_continue_with_facebook">Continuer avec <b>Facebook</b></string>
<string name="msg_continue_with_github">Continuer avec <b>Github</b></string> <string name="msg_continue_with_github">Continuer avec <b>GitHub</b></string>
<string name="msg_continue_with_google">Continuer avec <b>Google</b></string> <string name="msg_continue_with_google">Continuer avec <b>Google</b></string>
<string name="msg_continue_with_linkedin">Continuer avec <b>Linkedin</b></string> <string name="msg_continue_with_linkedin">Continuer avec <b>LinkedIn</b></string>
<string name="msg_continue_with_gitlab">Continuer avec <b>GitLab</b></string> <string name="msg_continue_with_gitlab">Continuer avec <b>GitLab</b></string>
<string name="msg_continue_with_wordpress">Continuer avec <b>WordPress</b></string> <string name="msg_continue_with_wordpress">Continuer avec <b>WordPress</b></string>
<string name="msg_two_factor_authentication">authentification à deux facteurs</string> <string name="msg_two_factor_authentication">authentification à deux facteurs</string>
<string name="msg__your_2fa_code">Quel est votre code 2FA?</string> <string name="msg_your_2fa_code">Quel est votre code 2FA?</string>
<string name="msg_view_more">voir de plus</string> <string name="msg_view_more">voir de plus</string>
<string name="msg_view_less">voir de plus</string> <string name="msg_view_less">voir de plus</string>
<string name="msg_permalink_copied">Permalink copié</string> <string name="msg_permalink_copied">Permalink copié</string>
...@@ -185,6 +204,7 @@ ...@@ -185,6 +204,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privé</string> <string name="msg_private_channel">Privé</string>
...@@ -312,7 +332,8 @@ ...@@ -312,7 +332,8 @@
<string name="alert_title_default_skin_tone">Tonalité de peau par défaut</string> <string name="alert_title_default_skin_tone">Tonalité de peau par défaut</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -321,7 +342,10 @@ ...@@ -321,7 +342,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favoris</string> <string name="header_favorite">Favoris</string>
<string name="header_channel">Salons</string> <string name="msg_channels">Salons</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">Groupes privés</string> <string name="header_private_groups">Groupes privés</string>
<string name="header_direct_messages">Messages directs</string> <string name="header_direct_messages">Messages directs</string>
<string name="header_live_chats">Chats en direct</string> <string name="header_live_chats">Chats en direct</string>
......
...@@ -19,8 +19,9 @@ ...@@ -19,8 +19,9 @@
<string name="title_admin_panel">एडमिन पैनल</string> <string name="title_admin_panel">एडमिन पैनल</string>
<string name="title_password">पासवर्ड बदलें</string> <string name="title_password">पासवर्ड बदलें</string>
<string name="title_update_profile">प्रोफ़ाइल अपडेट करें</string> <string name="title_update_profile">प्रोफ़ाइल अपडेट करें</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_create_channel">चैनल बनाएं</string> <string name="title_create_channel">चैनल बनाएं</string>
<string name="title_licence">लाइसेंस</string> <string name="title_license">लाइसेंस</string>
<string name="title_are_you_sure">क्या आपको यकीन है?</string> <string name="title_are_you_sure">क्या आपको यकीन है?</string>
<string name="title_channel_details">चैनल विवरण</string> <string name="title_channel_details">चैनल विवरण</string>
<string name="title_topic">विषय</string> <string name="title_topic">विषय</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">क्षमा करें, एक त्रुटि हुई है, कृपया पुनः प्रयास करें</string> <string name="msg_generic_error">क्षमा करें, एक त्रुटि हुई है, कृपया पुनः प्रयास करें</string>
<string name="msg_no_data_to_display">डेटा प्रदर्शित करने के लिए उपलब्ध नहीं हैं</string> <string name="msg_no_data_to_display">डेटा प्रदर्शित करने के लिए उपलब्ध नहीं हैं</string>
<string name="msg_check_this_out">इसकी जांच करें</string> <string name="msg_check_this_out">इसकी जांच करें</string>
<string name="msg_share_using">उपयोग कर साझा करें</string> <string name="msg_share_using">उपयोग कर साझा करें</string>
<string name="msg_profile_update_successfully">प्रोफ़ाइल सफलतापूर्वक अपडेट हो गया है</string> <string name="msg_profile_updated_successfully">प्रोफ़ाइल सफलतापूर्वक अपडेट हो गया है</string>
<string name="msg_username">यूजरनेम</string> <string name="msg_username">यूजरनेम</string>
<string name="msg_username_or_email">यूजरनेम या ईमेल</string> <string name="msg_username_or_email">यूजरनेम या ईमेल</string>
<string name="msg_password">पासवर्ड</string> <string name="msg_password">पासवर्ड</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">अवतार यूआरएल</string> <string name="msg_avatar_url">अवतार यूआरएल</string>
<string name="msg_or_continue_using_social_accounts">या सामाजिक खाते का उपयोग करना जारी रखें</string> <string name="msg_or_continue_using_social_accounts">या सामाजिक खाते का उपयोग करना जारी रखें</string>
<string name="msg_new_user">नया उपयोगकर्ता? %1$s</string> <string name="msg_new_user">नया उपयोगकर्ता? %1$s</string>
<string name="msg_forgot__your_password">पासवर्ड भूल गए?</string> <string name="msg_forgot_your_password">पासवर्ड भूल गए?</string>
<string name="msg_reset">रीसेट करें</string> <string name="msg_reset">रीसेट करें</string>
<string name="msg_check_your_email_to_reset_your_password">ईमेल गया गया है! अपना पासवर्ड रीसेट करने के लिए अपने इनबॉक्स की जांच करें।</string> <string name="msg_check_your_email_to_reset_your_password">ईमेल गया गया है! अपना पासवर्ड रीसेट करने के लिए अपने इनबॉक्स की जांच करें।</string>
<string name="msg_invalid_email">कृपया एक वैध ई-मेल टाइप करें</string> <string name="msg_invalid_email">कृपया एक वैध ई-मेल टाइप करें</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">अवैध फाइल</string> <string name="msg_invalid_file">अवैध फाइल</string>
<string name="msg_invalid_server_url">अमान्य सर्वर यूआरL</string> <string name="msg_invalid_server_url">अमान्य सर्वर यूआरL</string>
<string name="msg_content_description_log_in_using_facebook">Facebook द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_facebook">Facebook द्वारा लॉगिन करें</string>
<string name="msg_content_description_log_in_using_github">Github द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_github">GitHub द्वारा लॉगिन करें</string>
<string name="msg_content_description_log_in_using_google">Google द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_google">Google द्वारा लॉगिन करें</string>
<string name="msg_content_description_log_in_using_linkedin">Linkedin द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_linkedin">LinkedIn द्वारा लॉगिन करें</string>
<string name="msg_content_description_log_in_using_meteor">Meteor द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_meteor">Meteor द्वारा लॉगिन करें</string>
<string name="msg_content_description_log_in_using_twitter">Twitter द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_twitter">Twitter द्वारा लॉगिन करें</string>
<string name="msg_content_description_log_in_using_gitlab">Gitlab द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_gitlab">GitLab द्वारा लॉगिन करें</string>
<string name="msg_content_description_log_in_using_wordpress">WordPress द्वारा लॉगिन करें</string> <string name="msg_content_description_log_in_using_wordpress">WordPress द्वारा लॉगिन करें</string>
<string name="msg_content_description_send_message">मेसेज भेजें</string> <string name="msg_content_description_send_message">मेसेज भेजें</string>
<string name="msg_content_description_show_more_login_options">अधिक लॉगिन विकल्प दिखाएं</string> <string name="msg_content_description_show_more_login_options">अधिक लॉगिन विकल्प दिखाएं</string>
...@@ -154,19 +173,19 @@ ...@@ -154,19 +173,19 @@
<string name="msg_send">भेजें</string> <string name="msg_send">भेजें</string>
<string name="msg_sent_attachment">एक अनुलग्नक भेजा</string> <string name="msg_sent_attachment">एक अनुलग्नक भेजा</string>
<string name="msg_delete_message">संदेश को हटाएं</string> <string name="msg_delete_message">संदेश को हटाएं</string>
<string name="msg_delete_description">क्या आप निश्चित रूप से यह संदेश हटाना चाहते हैं</string> <string name="msg_delete_description">क्या आप निश्चित रूप से यह संदेश हटाना चाहते हैं?</string>
<string name="msg_welcome_to_rocket_chat">Rocket.Chat में आपका स्वागत है</string> <string name="msg_welcome_to_rocket_chat">Rocket.Chat में आपका स्वागत है</string>
<string name="msg_team_communication">टीम संचार</string> <string name="msg_team_communication">टीम संचार</string>
<string name="msg_login_with_email">ई-मेल के साथ लॉगिन करें</string> <string name="msg_login_with_email">ई-मेल के साथ लॉगिन करें</string>
<string name="msg_create_account">खाता बनाएं</string> <string name="msg_create_account">खाता बनाएं</string>
<string name="msg_continue_with_facebook"><b>Facebook</b> के साथ जारी रखें</string> <string name="msg_continue_with_facebook"><b>Facebook</b> के साथ जारी रखें</string>
<string name="msg_continue_with_github"><b>Github</b> के साथ जारी रखें</string> <string name="msg_continue_with_github"><b>GitHub</b> के साथ जारी रखें</string>
<string name="msg_continue_with_google"><b>Google</b> के साथ जारी रखें</string> <string name="msg_continue_with_google"><b>Google</b> के साथ जारी रखें</string>
<string name="msg_continue_with_linkedin"><b>Linkedin</b> के साथ जारी रखें</string> <string name="msg_continue_with_linkedin"><b>LinkedIn</b> के साथ जारी रखें</string>
<string name="msg_continue_with_gitlab"><b>GitLab</b> के साथ जारी रखें</string> <string name="msg_continue_with_gitlab"><b>GitLab</b> के साथ जारी रखें</string>
<string name="msg_continue_with_wordpress"><b>WordPress</b> के साथ जारी रखें</string> <string name="msg_continue_with_wordpress"><b>WordPress</b> के साथ जारी रखें</string>
<string name="msg_two_factor_authentication">दो तरीकों से प्रमाणीकरण</string> <string name="msg_two_factor_authentication">दो तरीकों से प्रमाणीकरण</string>
<string name="msg__your_2fa_code">आपका 2FA कोड क्या है?</string> <string name="msg_your_2fa_code">आपका 2FA कोड क्या है?</string>
<string name="msg_camera_permission_denied">Camera permission is needed to open camera.</string> <!-- TODO Add translation --> <string name="msg_camera_permission_denied">Camera permission is needed to open camera.</string> <!-- TODO Add translation -->
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
...@@ -200,6 +219,7 @@ ...@@ -200,6 +219,7 @@
<string name="msg_credentials_saved_successfully">प्रमाण पत्र सफलतापूर्वक सहेजे गए</string> <string name="msg_credentials_saved_successfully">प्रमाण पत्र सफलतापूर्वक सहेजे गए</string>
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Preferences messages --> <!-- Preferences messages -->
<string name="msg_analytics_tracking">एनालिटिक्स ट्रैकिंग</string> <string name="msg_analytics_tracking">एनालिटिक्स ट्रैकिंग</string>
...@@ -315,7 +335,8 @@ ...@@ -315,7 +335,8 @@
<string name="alert_title_default_skin_tone">डिफ़ॉल्ट त्वचा टोन</string> <string name="alert_title_default_skin_tone">डिफ़ॉल्ट त्वचा टोन</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -324,8 +345,11 @@ ...@@ -324,8 +345,11 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">पसंदीदा</string> <string name="header_favorite">पसंदीदा</string>
<string name="header_channel">चैनलों</string> <string name="msg_channels">चैनलों</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="header_private_groups">निजी समूहों</string> <string name="header_private_groups">निजी समूहों</string>
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_direct_messages">प्रत्यक्ष संदेश</string> <string name="header_direct_messages">प्रत्यक्ष संदेश</string>
<string name="header_live_chats">लाइव चैट</string> <string name="header_live_chats">लाइव चैट</string>
<string name="header_unknown">अज्ञात</string> <string name="header_unknown">अज्ञात</string>
......
...@@ -20,8 +20,9 @@ ...@@ -20,8 +20,9 @@
<string name="title_password">Password</string> <string name="title_password">Password</string>
<string name="title_update_profile">Aggiorna Profilo</string> <string name="title_update_profile">Aggiorna Profilo</string>
<string name="title_create_channel">Crea Canale</string> <string name="title_create_channel">Crea Canale</string>
<string name="title_licence">licenza</string> <string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_are_you_sure">Sei sicuro che vuoi uscire ?</string> <string name="title_license">licenza</string>
<string name="title_are_you_sure">Sei sicuro che vuoi uscire?</string>
<string name="title_channel_details">Allegare un file</string> <string name="title_channel_details">Allegare un file</string>
<string name="title_topic">Argomento</string> <string name="title_topic">Argomento</string>
<string name="title_announcement">Annuncio</string> <string name="title_announcement">Annuncio</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Mi dispiace, si è verificato un errore, per favore riprova</string> <string name="msg_generic_error">Mi dispiace, si è verificato un errore, per favore riprova</string>
<string name="msg_no_data_to_display">Nessun dato da visualizzare</string> <string name="msg_no_data_to_display">Nessun dato da visualizzare</string>
<string name="msg_check_this_out">Controllalo</string> <string name="msg_check_this_out">Controllalo</string>
<string name="msg_share_using">Condividi utilizzando</string> <string name="msg_share_using">Condividi utilizzando</string>
<string name="msg_profile_update_successfully">Aggiornamento del profilo con successo</string> <string name="msg_profile_updated_successfully">Aggiornamento del profilo con successo</string>
<string name="msg_username">Nome utente</string> <string name="msg_username">Nome utente</string>
<string name="msg_username_or_email">Nome utente o e-mail</string> <string name="msg_username_or_email">Nome utente o e-mail</string>
<string name="msg_password">Password</string> <string name="msg_password">Password</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">Avatar URL</string> <string name="msg_avatar_url">Avatar URL</string>
<string name="msg_or_continue_using_social_accounts">O continuare utilizzando un account social</string> <string name="msg_or_continue_using_social_accounts">O continuare utilizzando un account social</string>
<string name="msg_new_user">Nuovo utente? %1$s</string> <string name="msg_new_user">Nuovo utente? %1$s</string>
<string name="msg_forgot__your_password">Hai dimenticato la tua password?</string> <string name="msg_forgot_your_password">Hai dimenticato la tua password?</string>
<string name="msg_reset">Reimposta</string> <string name="msg_reset">Reimposta</string>
<string name="msg_check_your_email_to_reset_your_password">E-mail inviata! Controlla la tua casella di posta per reimpostare la password.</string> <string name="msg_check_your_email_to_reset_your_password">E-mail inviata! Controlla la tua casella di posta per reimpostare la password.</string>
<string name="msg_invalid_email">Per favore digita una e-mail valida</string> <string name="msg_invalid_email">Per favore digita una e-mail valida</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">Documento non valido</string> <string name="msg_invalid_file">Documento non valido</string>
<string name="msg_invalid_server_url">URL del server non valido</string> <string name="msg_invalid_server_url">URL del server non valido</string>
<string name="msg_content_description_log_in_using_facebook">Accedi usando Facebook</string> <string name="msg_content_description_log_in_using_facebook">Accedi usando Facebook</string>
<string name="msg_content_description_log_in_using_github">Accedi usando Github</string> <string name="msg_content_description_log_in_using_github">Accedi usando GitHub</string>
<string name="msg_content_description_log_in_using_google">Accedi usando Google</string> <string name="msg_content_description_log_in_using_google">Accedi usando Google</string>
<string name="msg_content_description_log_in_using_linkedin">Accedi usando Linkedin</string> <string name="msg_content_description_log_in_using_linkedin">Accedi usando LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Accedi usando Meteor</string> <string name="msg_content_description_log_in_using_meteor">Accedi usando Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Accedi usando Twitter</string> <string name="msg_content_description_log_in_using_twitter">Accedi usando Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Accedi usando Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Accedi usando GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Accedi usando WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Accedi usando WordPress</string>
<string name="msg_content_description_send_message">Invia messaggio</string> <string name="msg_content_description_send_message">Invia messaggio</string>
<string name="msg_content_description_show_more_login_options">Mostra ulteriori opzioni di accesso</string> <string name="msg_content_description_show_more_login_options">Mostra ulteriori opzioni di accesso</string>
...@@ -154,13 +173,13 @@ ...@@ -154,13 +173,13 @@
<string name="msg_login_with_email">Accedi con <b>e-mail</b></string> <string name="msg_login_with_email">Accedi con <b>e-mail</b></string>
<string name="msg_create_account">Crea un utente</string> <string name="msg_create_account">Crea un utente</string>
<string name="msg_continue_with_facebook">Continua con <b>Facebook</b></string> <string name="msg_continue_with_facebook">Continua con <b>Facebook</b></string>
<string name="msg_continue_with_github">Continua con <b>Github</b></string> <string name="msg_continue_with_github">Continua con <b>GitHub</b></string>
<string name="msg_continue_with_google">Continua con <b>Google</b></string> <string name="msg_continue_with_google">Continua con <b>Google</b></string>
<string name="msg_continue_with_linkedin">Continua con <b>Linkedin</b></string> <string name="msg_continue_with_linkedin">Continua con <b>LinkedIn</b></string>
<string name="msg_continue_with_gitlab">Continua con <b>GitLab</b></string> <string name="msg_continue_with_gitlab">Continua con <b>GitLab</b></string>
<string name="msg_continue_with_wordpress">Continua con <b>WordPress</b></string> <string name="msg_continue_with_wordpress">Continua con <b>WordPress</b></string>
<string name="msg_two_factor_authentication">Autenticazione a 2 fattori (2FA)</string> <string name="msg_two_factor_authentication">Autenticazione a 2 fattori (2FA)</string>
<string name="msg__your_2fa_code">Qual è il tuo codice 2FA ?</string> <string name="msg_your_2fa_code">Qual è il tuo codice 2FA?</string>
<string name="msg_permalink_copied">Permalink copiato</string> <string name="msg_permalink_copied">Permalink copiato</string>
<string name="msg_no_topic">No topic</string> <!-- TODO Add translation --> <string name="msg_no_topic">No topic</string> <!-- TODO Add translation -->
<string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation --> <string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation -->
...@@ -178,6 +197,7 @@ ...@@ -178,6 +197,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privato</string> <string name="msg_private_channel">Privato</string>
...@@ -192,7 +212,7 @@ ...@@ -192,7 +212,7 @@
<string name="msg_channel_created_successfully">Canale creato con successo</string> <string name="msg_channel_created_successfully">Canale creato con successo</string>
<string name="msg_message_copied">Messaggio copiato</string> <string name="msg_message_copied">Messaggio copiato</string>
<string name="msg_delete_message">Cancellare Messaggio</string> <string name="msg_delete_message">Cancellare Messaggio</string>
<string name="msg_delete_description">Sei sicuro di voler eliminare questo messaggio ?</string> <string name="msg_delete_description">Sei sicuro di voler eliminare questo messaggio?</string>
<string name="msg_view_more">vedere di più</string> <string name="msg_view_more">vedere di più</string>
<string name="msg_view_less">vedere di meno</string> <string name="msg_view_less">vedere di meno</string>
<string name="msg_muted_on_this_channel">Sei disattivato su questo canale</string> <string name="msg_muted_on_this_channel">Sei disattivato su questo canale</string>
...@@ -311,7 +331,8 @@ ...@@ -311,7 +331,8 @@
<string name="alert_title_default_skin_tone">Default skin tone</string> <string name="alert_title_default_skin_tone">Default skin tone</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -320,7 +341,10 @@ ...@@ -320,7 +341,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">Canali</string> <string name="msg_channels">Canali</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">Gruppi Privati</string> <string name="header_private_groups">Gruppi Privati</string>
<string name="header_direct_messages">Messaggi Diretti</string> <string name="header_direct_messages">Messaggi Diretti</string>
<string name="header_live_chats">Stanza in diretta</string> <string name="header_live_chats">Stanza in diretta</string>
......
...@@ -19,7 +19,8 @@ ...@@ -19,7 +19,8 @@
<string name="title_admin_panel">管理パネル</string> <string name="title_admin_panel">管理パネル</string>
<string name="title_password">パスワードの変更</string> <string name="title_password">パスワードの変更</string>
<string name="title_update_profile">プロフィールの更新</string> <string name="title_update_profile">プロフィールの更新</string>
<string name="title_licence">Licence</string> <!-- TODO Add translation --> <string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_license">License</string> <!-- TODO Add translation -->
<string name="title_create_channel">新しいチャネルを作成</string> <string name="title_create_channel">新しいチャネルを作成</string>
<string name="title_are_you_sure">本気ですか?</string> <string name="title_are_you_sure">本気ですか?</string>
<string name="title_channel_details">Channel Details</string> <!-- TODO add translation --> <string name="title_channel_details">Channel Details</string> <!-- TODO add translation -->
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">エラーが発生しました。もう一度お試しください。</string> <string name="msg_generic_error">エラーが発生しました。もう一度お試しください。</string>
<string name="msg_no_data_to_display">表示するデータがありません</string> <string name="msg_no_data_to_display">表示するデータがありません</string>
<string name="msg_check_this_out">これをチェックする</string> <string name="msg_check_this_out">これをチェックする</string>
<string name="msg_share_using">共有する</string> <string name="msg_share_using">共有する</string>
<string name="msg_profile_update_successfully">プロフィールの更新に成功しました</string> <string name="msg_profile_updated_successfully">プロフィールの更新に成功しました</string>
<string name="msg_username">ユーザー名</string> <string name="msg_username">ユーザー名</string>
<string name="msg_username_or_email">メールアドレスまたはユーザー名</string> <string name="msg_username_or_email">メールアドレスまたはユーザー名</string>
<string name="msg_password">パスワード</string> <string name="msg_password">パスワード</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">アバター URL</string> <string name="msg_avatar_url">アバター URL</string>
<string name="msg_or_continue_using_social_accounts">またはソーシャルアカウントを使用する</string> <string name="msg_or_continue_using_social_accounts">またはソーシャルアカウントを使用する</string>
<string name="msg_new_user">新規ユーザー? %1$s</string> <string name="msg_new_user">新規ユーザー? %1$s</string>
<string name="msg_forgot__your_password">パスワードをお忘れですか?</string> <string name="msg_forgot_your_password">パスワードをお忘れですか?</string>
<string name="msg_reset">リセット</string> <string name="msg_reset">リセット</string>
<string name="msg_check_your_email_to_reset_your_password">メールが送信されました! パスワードを変更するためには、受信ボックスを確認してください。</string> <string name="msg_check_your_email_to_reset_your_password">メールが送信されました! パスワードを変更するためには、受信ボックスを確認してください。</string>
<string name="msg_invalid_email">有効なメールアドレスを入力してください</string> <string name="msg_invalid_email">有効なメールアドレスを入力してください</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">無効なファイル</string> <string name="msg_invalid_file">無効なファイル</string>
<string name="msg_invalid_server_url">無効なサーバー URL</string> <string name="msg_invalid_server_url">無効なサーバー URL</string>
<string name="msg_content_description_log_in_using_facebook">Facebookでログイン</string> <string name="msg_content_description_log_in_using_facebook">Facebookでログイン</string>
<string name="msg_content_description_log_in_using_github">Githubでログイン</string> <string name="msg_content_description_log_in_using_github">GitHubでログイン</string>
<string name="msg_content_description_log_in_using_google">Googleでログイン</string> <string name="msg_content_description_log_in_using_google">Googleでログイン</string>
<string name="msg_content_description_log_in_using_linkedin">Linkedinでログイン</string> <string name="msg_content_description_log_in_using_linkedin">LinkedInでログイン</string>
<string name="msg_content_description_log_in_using_meteor">Meteorでログイン</string> <string name="msg_content_description_log_in_using_meteor">Meteorでログイン</string>
<string name="msg_content_description_log_in_using_twitter">Twitterでログイン</string> <string name="msg_content_description_log_in_using_twitter">Twitterでログイン</string>
<string name="msg_content_description_log_in_using_gitlab">Gitlabでログイン</string> <string name="msg_content_description_log_in_using_gitlab">GitLabでログイン</string>
<string name="msg_content_description_log_in_using_wordpress">WordPressでログイン</string> <string name="msg_content_description_log_in_using_wordpress">WordPressでログイン</string>
<string name="msg_content_description_send_message">メッセージを送信</string> <string name="msg_content_description_send_message">メッセージを送信</string>
<string name="msg_content_description_show_more_login_options">その他ログインオプション</string> <string name="msg_content_description_show_more_login_options">その他ログインオプション</string>
...@@ -157,13 +176,13 @@ ...@@ -157,13 +176,13 @@
<string name="msg_login_with_email"><b>e-mail</b>でログイン</string> <string name="msg_login_with_email"><b>e-mail</b>でログイン</string>
<string name="msg_create_account">アカウントを作成</string> <string name="msg_create_account">アカウントを作成</string>
<string name="msg_continue_with_facebook"><b>Facebook</b>でログイン</string> <string name="msg_continue_with_facebook"><b>Facebook</b>でログイン</string>
<string name="msg_continue_with_github"><b>Github</b>でログイン</string> <string name="msg_continue_with_github"><b>GitHub</b>でログイン</string>
<string name="msg_continue_with_google"><b>Google</b>でログイン</string> <string name="msg_continue_with_google"><b>Google</b>でログイン</string>
<string name="msg_continue_with_linkedin"><b>Linkedin</b>でログイン</string> <string name="msg_continue_with_linkedin"><b>LinkedIn</b>でログイン</string>
<string name="msg_continue_with_gitlab"><b>GitLab</b>でログイン</string> <string name="msg_continue_with_gitlab"><b>GitLab</b>でログイン</string>
<string name="msg_continue_with_wordpress"><b>WordPress</b>でログイン</string> <string name="msg_continue_with_wordpress"><b>WordPress</b>でログイン</string>
<string name="msg_two_factor_authentication">二要素認証</string> <string name="msg_two_factor_authentication">二要素認証</string>
<string name="msg__your_2fa_code">あなたの 2FA コードは何ですか?</string> <string name="msg_your_2fa_code">あなたの 2FA コードは何ですか?</string>
<string name="msg_view_more">更に表示</string> <string name="msg_view_more">更に表示</string>
<string name="msg_view_less">隠す</string> <string name="msg_view_less">隠す</string>
<string name="msg_muted_on_this_channel">あなたはこのチャンネルでミュートされています</string> <string name="msg_muted_on_this_channel">あなたはこのチャンネルでミュートされています</string>
...@@ -181,6 +200,7 @@ ...@@ -181,6 +200,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">プライベート</string> <string name="msg_private_channel">プライベート</string>
...@@ -314,7 +334,8 @@ ...@@ -314,7 +334,8 @@
<string name="alert_title_default_skin_tone">デフォルトスキントークン</string> <string name="alert_title_default_skin_tone">デフォルトスキントークン</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -323,7 +344,10 @@ ...@@ -323,7 +344,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">チャンネル</string> <string name="msg_channels">チャンネル</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">プライベートグループ</string> <string name="header_private_groups">プライベートグループ</string>
<string name="header_direct_messages">ダイレクトメッセージ</string> <string name="header_direct_messages">ダイレクトメッセージ</string>
<string name="header_live_chats">ライブチャット</string> <string name="header_live_chats">ライブチャット</string>
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
<string name="title_preferences">Preferencias</string> <string name="title_preferences">Preferencias</string>
<string name="title_change_password">Alterar senha</string> <string name="title_change_password">Alterar senha</string>
<string name="title_rate_us">nos avalie</string> <string name="title_rate_us">nos avalie</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_admin_panel">Painel administrativo</string> <string name="title_admin_panel">Painel administrativo</string>
<string name="title_password">Alterar senha</string> <string name="title_password">Alterar senha</string>
<string name="title_update_profile">Editar perfil</string> <string name="title_update_profile">Editar perfil</string>
<string name="title_create_channel">Criar chat</string> <string name="title_create_channel">Criar chat</string>
<string name="title_licence">Licença</string> <string name="title_license">Licença</string>
<string name="title_are_you_sure">Você tem certeza?</string> <string name="title_are_you_sure">Você tem certeza?</string>
<string name="title_channel_details">Detalhes do canal</string> <string name="title_channel_details">Detalhes do canal</string>
<string name="title_topic">Tópico</string> <string name="title_topic">Tópico</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favoritar</string> <string name="action_favorite">Favoritar</string>
<string name="action_remove_favorite">Remover favorito</string> <string name="action_remove_favorite">Remover favorito</string>
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Desculpe, ocorreu um erro, tente novamente</string> <string name="msg_generic_error">Desculpe, ocorreu um erro, tente novamente</string>
<string name="msg_no_data_to_display">Nenhum dado para exibir</string> <string name="msg_no_data_to_display">Nenhum dado para exibir</string>
<string name="msg_check_this_out">Veja isso</string> <string name="msg_check_this_out">Veja isso</string>
<string name="msg_share_using">compartilhar usando</string> <string name="msg_share_using">compartilhar usando</string>
<string name="msg_profile_update_successfully">Perfil atualizado com sucesso</string> <string name="msg_profile_updated_successfully">Perfil atualizado com sucesso</string>
<string name="msg_username">nome de usuário</string> <string name="msg_username">nome de usuário</string>
<string name="msg_username_or_email">Nome de usuário ou email</string> <string name="msg_username_or_email">Nome de usuário ou email</string>
<string name="msg_password">Senha</string> <string name="msg_password">Senha</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">URL do avatar</string> <string name="msg_avatar_url">URL do avatar</string>
<string name="msg_or_continue_using_social_accounts">Ou continue através de contas sociais</string> <string name="msg_or_continue_using_social_accounts">Ou continue através de contas sociais</string>
<string name="msg_new_user">Novo usuário? %1$s</string> <string name="msg_new_user">Novo usuário? %1$s</string>
<string name="msg_forgot__your_password">Esqueceu sua senha?</string> <string name="msg_forgot_your_password">Esqueceu sua senha?</string>
<string name="msg_reset">Redefinir</string> <string name="msg_reset">Redefinir</string>
<string name="msg_check_your_email_to_reset_your_password">Email enviado! Verifique sua caixa de entrada para redefinir sua senha.</string> <string name="msg_check_your_email_to_reset_your_password">Email enviado! Verifique sua caixa de entrada para redefinir sua senha.</string>
<string name="msg_invalid_email">Por favor informe um e-mail válido</string> <string name="msg_invalid_email">Por favor informe um e-mail válido</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">Arquivo inválido</string> <string name="msg_invalid_file">Arquivo inválido</string>
<string name="msg_invalid_server_url">URL de servidor inválido</string> <string name="msg_invalid_server_url">URL de servidor inválido</string>
<string name="msg_content_description_log_in_using_facebook">Fazer login através do Facebook</string> <string name="msg_content_description_log_in_using_facebook">Fazer login através do Facebook</string>
<string name="msg_content_description_log_in_using_github">Fazer login através do Github</string> <string name="msg_content_description_log_in_using_github">Fazer login através do GitHub</string>
<string name="msg_content_description_log_in_using_google">Fazer login através do Google</string> <string name="msg_content_description_log_in_using_google">Fazer login através do Google</string>
<string name="msg_content_description_log_in_using_linkedin">Fazer login através do Linkedin</string> <string name="msg_content_description_log_in_using_linkedin">Fazer login através do LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Fazer login através do Meteor</string> <string name="msg_content_description_log_in_using_meteor">Fazer login através do Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Fazer login através do Twitter</string> <string name="msg_content_description_log_in_using_twitter">Fazer login através do Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Fazer login através do Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Fazer login através do GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Fazer login através do WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Fazer login através do WordPress</string>
<string name="msg_content_description_send_message">Enviar mensagem</string> <string name="msg_content_description_send_message">Enviar mensagem</string>
<string name="msg_content_description_show_more_login_options">Mostrar mais opções de login</string> <string name="msg_content_description_show_more_login_options">Mostrar mais opções de login</string>
...@@ -159,13 +178,13 @@ ...@@ -159,13 +178,13 @@
<string name="msg_login_with_email">Fazer login com <b>e-mail</b></string> <string name="msg_login_with_email">Fazer login com <b>e-mail</b></string>
<string name="msg_create_account">Criar conta</string> <string name="msg_create_account">Criar conta</string>
<string name="msg_continue_with_facebook">Continuar com <b>Facebook</b></string> <string name="msg_continue_with_facebook">Continuar com <b>Facebook</b></string>
<string name="msg_continue_with_github">Continuar com <b>Github</b></string> <string name="msg_continue_with_github">Continuar com <b>GitHub</b></string>
<string name="msg_continue_with_google">Continuar com <b>Google</b></string> <string name="msg_continue_with_google">Continuar com <b>Google</b></string>
<string name="msg_continue_with_linkedin">Continuar com <b>Linkedin</b></string> <string name="msg_continue_with_linkedin">Continuar com <b>LinkedIn</b></string>
<string name="msg_continue_with_gitlab">Continuar com <b>GitLab</b></string> <string name="msg_continue_with_gitlab">Continuar com <b>GitLab</b></string>
<string name="msg_continue_with_wordpress">Continuar com <b>WordPress</b></string> <string name="msg_continue_with_wordpress">Continuar com <b>WordPress</b></string>
<string name="msg_two_factor_authentication">Autenticação de dois fatores</string> <string name="msg_two_factor_authentication">Autenticação de dois fatores</string>
<string name="msg__your_2fa_code">Qual é o seu código da autenticação de dois fatores?</string> <string name="msg_your_2fa_code">Qual é o seu código da autenticação de dois fatores?</string>
<string name="msg_view_more">visualizar mais</string> <string name="msg_view_more">visualizar mais</string>
<string name="msg_view_less">visualizar menos</string> <string name="msg_view_less">visualizar menos</string>
<string name="msg_permalink_copied">Permalink copiado</string> <string name="msg_permalink_copied">Permalink copiado</string>
...@@ -182,10 +201,11 @@ ...@@ -182,10 +201,11 @@
<item quantity="other">%1$s reagiram com %2$s</item> <item quantity="other">%1$s reagiram com %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Credenciais salvas com sucesso</string> <string name="msg_credentials_saved_successfully">Credenciais salvas com sucesso</string>
<string name="msg_camera_permission_denied">Camera permission is needed to open camera.</string> <!-- TODO Add translation --> <string name="msg_server">Servidor</string>
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_add_new_server">Adicionar Novo Servidor</string>
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_directory">Diretório</string>
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_camera_permission_denied">A permissão da câmera é necessária</string>
<string name="msg_storage_permission_denied">A permissão de armazenamento é necessária</string>
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privado</string> <string name="msg_private_channel">Privado</string>
...@@ -313,7 +333,8 @@ ...@@ -313,7 +333,8 @@
<string name="alert_title_default_skin_tone">Tom de pele padrão</string> <string name="alert_title_default_skin_tone">Tom de pele padrão</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Ordenar por %1$s</string> <string name="msg_sort_by_placeholder">Ordenar por %1$s</string>
<string name="msg_sort_by">Ordernar por</string>
<string name="msg_sort_by_activity">Atividade</string> <string name="msg_sort_by_activity">Atividade</string>
<string name="msg_sort_by_name">Nome</string> <string name="msg_sort_by_name">Nome</string>
<string name="msg_group_by_unread_on_top">Não lidas no topo</string> <string name="msg_group_by_unread_on_top">Não lidas no topo</string>
...@@ -322,7 +343,10 @@ ...@@ -322,7 +343,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favoritos</string> <string name="header_favorite">Favoritos</string>
<string name="header_channel">Canais</string> <string name="msg_channels">Canais</string>
<string name="msg_users">Usuários</string>
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">Grupos Privados</string> <string name="header_private_groups">Grupos Privados</string>
<string name="header_direct_messages">Mensagens diretas</string> <string name="header_direct_messages">Mensagens diretas</string>
<string name="header_live_chats">Live Chats</string> <string name="header_live_chats">Live Chats</string>
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
<string name="title_preferences">Preferências</string> <string name="title_preferences">Preferências</string>
<string name="title_change_password">Alterar palavra-passe</string> <string name="title_change_password">Alterar palavra-passe</string>
<string name="title_rate_us">Avalie-nos</string> <string name="title_rate_us">Avalie-nos</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_admin_panel">Painel de Administração</string> <string name="title_admin_panel">Painel de Administração</string>
<string name="title_password">Alterar palavra-passe</string> <string name="title_password">Alterar palavra-passe</string>
<string name="title_update_profile">Actualizar perfil</string> <string name="title_update_profile">Actualizar perfil</string>
<string name="title_create_channel">Criar Canal</string> <string name="title_create_channel">Criar Canal</string>
<string name="title_licence">Licença</string> <string name="title_license">Licença</string>
<string name="title_are_you_sure">Tem a certeza?</string> <string name="title_are_you_sure">Tem a certeza?</string>
<string name="title_channel_details">Detalhes do Canal</string> <string name="title_channel_details">Detalhes do Canal</string>
<string name="title_topic">Tópico</string> <string name="title_topic">Tópico</string>
...@@ -57,27 +58,44 @@ ...@@ -57,27 +58,44 @@
<string name="action_register">Registar</string> <string name="action_register">Registar</string>
<string name="action_confirm">Confirmar</string> <string name="action_confirm">Confirmar</string>
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Lamentamos, ocorreu um erro, tente novamente</string> <string name="msg_generic_error">Lamentamos, ocorreu um erro, tente novamente</string>
<string name="msg_no_data_to_display">Sem dados para mostrar</string> <string name="msg_no_data_to_display">Sem dados para mostrar</string>
<string name="msg_check_this_out">Experimente isto</string> <string name="msg_check_this_out">Experimente isto</string>
<string name="msg_share_using">Partilhe usando</string> <string name="msg_share_using">Partilhe usando</string>
<string name="msg_profile_update_successfully">Perfil actualizado com sucesso</string> <string name="msg_profile_updated_successfully">Perfil actualizado com sucesso</string>
<string name="msg_username">utilizador</string> <string name="msg_username">utilizador</string>
<string name="msg_username_or_email">Utilizador ou e-mail</string> <string name="msg_username_or_email">Utilizador ou e-mail</string>
<string name="msg_password">Palavra-passe</string> <string name="msg_password">Palavra-passe</string>
...@@ -86,7 +104,7 @@ ...@@ -86,7 +104,7 @@
<string name="msg_avatar_url">URL do avatar</string> <string name="msg_avatar_url">URL do avatar</string>
<string name="msg_or_continue_using_social_accounts">Ou continue utilizando uma conta social</string> <string name="msg_or_continue_using_social_accounts">Ou continue utilizando uma conta social</string>
<string name="msg_new_user">Novo utilizador? %1$s</string> <string name="msg_new_user">Novo utilizador? %1$s</string>
<string name="msg_forgot__your_password">Esqueceu a sua palavra-passe?</string> <string name="msg_forgot_your_password">Esqueceu a sua palavra-passe?</string>
<string name="msg_reset">Repor</string> <string name="msg_reset">Repor</string>
<string name="msg_check_your_email_to_reset_your_password">E-mail enviado! Verifique a sua caixa de entrada para repor a sua palavra-passe.</string> <string name="msg_check_your_email_to_reset_your_password">E-mail enviado! Verifique a sua caixa de entrada para repor a sua palavra-passe.</string>
<string name="msg_invalid_email">Por favor introduza um endereço de e-mail válido</string> <string name="msg_invalid_email">Por favor introduza um endereço de e-mail válido</string>
...@@ -100,12 +118,12 @@ ...@@ -100,12 +118,12 @@
<string name="msg_invalid_file">Ficheiro inválido</string> <string name="msg_invalid_file">Ficheiro inválido</string>
<string name="msg_invalid_server_url">URL de servidor inválido</string> <string name="msg_invalid_server_url">URL de servidor inválido</string>
<string name="msg_content_description_log_in_using_facebook">Entre utilizando Facebook</string> <string name="msg_content_description_log_in_using_facebook">Entre utilizando Facebook</string>
<string name="msg_content_description_log_in_using_github">Entre utilizando Github</string> <string name="msg_content_description_log_in_using_github">Entre utilizando GitHub</string>
<string name="msg_content_description_log_in_using_google">Entre utilizando Google</string> <string name="msg_content_description_log_in_using_google">Entre utilizando Google</string>
<string name="msg_content_description_log_in_using_linkedin">Entre utilizando LinkedIn</string> <string name="msg_content_description_log_in_using_linkedin">Entre utilizando LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Entre utilizando Meteor</string> <string name="msg_content_description_log_in_using_meteor">Entre utilizando Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Entre utilizando Twitter</string> <string name="msg_content_description_log_in_using_twitter">Entre utilizando Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Entre utilizando Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Entre utilizando GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Entre utilizando WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Entre utilizando WordPress</string>
<string name="msg_content_description_send_message">Enviar mensagem</string> <string name="msg_content_description_send_message">Enviar mensagem</string>
<string name="msg_content_description_show_more_login_options">Mostrar mais opções de entrada</string> <string name="msg_content_description_show_more_login_options">Mostrar mais opções de entrada</string>
...@@ -154,13 +172,13 @@ ...@@ -154,13 +172,13 @@
<string name="msg_login_with_email">Entre com <b>e-mail</b></string> <string name="msg_login_with_email">Entre com <b>e-mail</b></string>
<string name="msg_create_account">Crie uma conta</string> <string name="msg_create_account">Crie uma conta</string>
<string name="msg_continue_with_facebook">Continue com <b>Facebook</b></string> <string name="msg_continue_with_facebook">Continue com <b>Facebook</b></string>
<string name="msg_continue_with_github">Continue com <b>Github</b></string> <string name="msg_continue_with_github">Continue com <b>GitHub</b></string>
<string name="msg_continue_with_google">Continue com <b>Google</b></string> <string name="msg_continue_with_google">Continue com <b>Google</b></string>
<string name="msg_continue_with_linkedin">Continue com <b>Linkedin</b></string> <string name="msg_continue_with_linkedin">Continue com <b>LinkedIn</b></string>
<string name="msg_continue_with_gitlab">Continue com <b>GitLab</b></string> <string name="msg_continue_with_gitlab">Continue com <b>GitLab</b></string>
<string name="msg_continue_with_wordpress">Continue com <b>WordPress</b></string> <string name="msg_continue_with_wordpress">Continue com <b>WordPress</b></string>
<string name="msg_two_factor_authentication">Autenticação 2FA</string> <string name="msg_two_factor_authentication">Autenticação 2FA</string>
<string name="msg__your_2fa_code">Qual é o seu código 2FA?</string> <string name="msg_your_2fa_code">Qual é o seu código 2FA?</string>
<string name="msg_permalink_copied">Link permanente copiado</string> <string name="msg_permalink_copied">Link permanente copiado</string>
<string name="msg_no_topic">Nenhum tópico adicionado</string> <string name="msg_no_topic">Nenhum tópico adicionado</string>
<string name="msg_no_announcement">Nenhum anúncio adicionado</string> <string name="msg_no_announcement">Nenhum anúncio adicionado</string>
...@@ -177,6 +195,7 @@ ...@@ -177,6 +195,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privado</string> <string name="msg_private_channel">Privado</string>
...@@ -311,7 +330,8 @@ ...@@ -311,7 +330,8 @@
<string name="alert_title_default_skin_tone">Tom de pele padrão</string> <string name="alert_title_default_skin_tone">Tom de pele padrão</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -320,7 +340,10 @@ ...@@ -320,7 +340,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favoritos</string> <string name="header_favorite">Favoritos</string>
<string name="header_channel">Canais</string> <string name="msg_channels">Canais</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">Grupos Privados</string> <string name="header_private_groups">Grupos Privados</string>
<string name="header_direct_messages">Mensagens Directas</string> <string name="header_direct_messages">Mensagens Directas</string>
<string name="header_live_chats">Chats ao Vivo</string> <string name="header_live_chats">Chats ao Vivo</string>
......
...@@ -19,12 +19,13 @@ ...@@ -19,12 +19,13 @@
<string name="title_admin_panel">Панель админа</string> <string name="title_admin_panel">Панель админа</string>
<string name="title_password">Изменить пароль</string> <string name="title_password">Изменить пароль</string>
<string name="title_update_profile">Обновить профиль</string> <string name="title_update_profile">Обновить профиль</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_create_channel">Создать новый канал</string> <string name="title_create_channel">Создать новый канал</string>
<string name="title_channel_details">О канале</string> <string name="title_channel_details">О канале</string>
<string name="title_topic">Тема</string> <string name="title_topic">Тема</string>
<string name="title_announcement">Объявление</string> <string name="title_announcement">Объявление</string>
<string name="title_description">Описание</string> <string name="title_description">Описание</string>
<string name="title_licence">Лицензия</string> <string name="title_license">Лицензия</string>
<string name="title_are_you_sure">Вы уверены?</string> <string name="title_are_you_sure">Вы уверены?</string>
<!-- Actions --> <!-- Actions -->
...@@ -32,7 +33,7 @@ ...@@ -32,7 +33,7 @@
<string name="action_use_this_username">Использовать это имя</string> <string name="action_use_this_username">Использовать это имя</string>
<string name="action_terms_of_service">Условия использования</string> <string name="action_terms_of_service">Условия использования</string>
<string name="action_privacy_policy">Политика конфиденциальности</string> <string name="action_privacy_policy">Политика конфиденциальности</string>
<string name="action_new_channel">New channel</string> <!-- TODO Translate --> <string name="action_new_channel">Новый канал</string>
<string name="action_search">Поиск</string> <string name="action_search">Поиск</string>
<string name="action_update">Обновить</string> <string name="action_update">Обновить</string>
<string name="action_settings">Настройки</string> <string name="action_settings">Настройки</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">В избранное</string> <string name="action_favorite">В избранное</string>
<string name="action_remove_favorite">Удалить из избранного</string> <string name="action_remove_favorite">Удалить из избранного</string>
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Связаться с нами</string>
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Изменить язык</string>
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Оставить отзыв</string>
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Поделиться приложением</string>
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Панель админа</string>
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">Лицензия</string>
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Версия программы: %1$s (%2$d)</string>
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Версия сервера: %1$s</string>
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Отправка аналитики</string>
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Выйти из Rocket.Chat</string>
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Удалить аккаунт</string>
<string name="msg_change_status">Изменить статус</string>
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Произошла ошибка, повторите попытку.</string> <string name="msg_generic_error">Произошла ошибка, повторите попытку.</string>
<string name="msg_no_data_to_display">Нет данных для отображения</string> <string name="msg_no_data_to_display">Нет данных для отображения</string>
<string name="msg_check_this_out">Проверь это</string> <string name="msg_check_this_out">Проверь это</string>
<string name="msg_share_using">Совместное использование</string> <string name="msg_share_using">Совместное использование</string>
<string name="msg_profile_update_successfully">Профиль успешно обновлен</string> <string name="msg_profile_updated_successfully">Профиль успешно обновлен</string>
<string name="msg_username">имя пользователя</string> <string name="msg_username">имя пользователя</string>
<string name="msg_username_or_email">имя пользователя или e-mail</string> <string name="msg_username_or_email">имя пользователя или e-mail</string>
<string name="msg_password">пароль</string> <string name="msg_password">пароль</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">URL аватара</string> <string name="msg_avatar_url">URL аватара</string>
<string name="msg_or_continue_using_social_accounts">Или продолжить, используя социальные учетные записи</string> <string name="msg_or_continue_using_social_accounts">Или продолжить, используя социальные учетные записи</string>
<string name="msg_new_user">Новый пользователь? %1$s</string> <string name="msg_new_user">Новый пользователь? %1$s</string>
<string name="msg_forgot__your_password">Забыли пароль?</string> <string name="msg_forgot_your_password">Забыли пароль?</string>
<string name="msg_reset">Сброс</string> <string name="msg_reset">Сброс</string>
<string name="msg_check_your_email_to_reset_your_password">Письмо отправлено! Проверьте свой почтовый ящик, чтобы сбросить пароль.</string> <string name="msg_check_your_email_to_reset_your_password">Письмо отправлено! Проверьте свой почтовый ящик, чтобы сбросить пароль.</string>
<string name="msg_invalid_email">Введите действующий e-mail</string> <string name="msg_invalid_email">Введите действующий e-mail</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">Неверный файл</string> <string name="msg_invalid_file">Неверный файл</string>
<string name="msg_invalid_server_url">Неверный URL-адрес сервера.</string> <string name="msg_invalid_server_url">Неверный URL-адрес сервера.</string>
<string name="msg_content_description_log_in_using_facebook">Войти с помощью Facebook</string> <string name="msg_content_description_log_in_using_facebook">Войти с помощью Facebook</string>
<string name="msg_content_description_log_in_using_github">Войти с помощью Github</string> <string name="msg_content_description_log_in_using_github">Войти с помощью GitHub</string>
<string name="msg_content_description_log_in_using_google">Войти с помощью Google</string> <string name="msg_content_description_log_in_using_google">Войти с помощью Google</string>
<string name="msg_content_description_log_in_using_linkedin">Войти с помощью Linkedin</string> <string name="msg_content_description_log_in_using_linkedin">Войти с помощью LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Войти с помощью Meteor</string> <string name="msg_content_description_log_in_using_meteor">Войти с помощью Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Войти с помощью Twitter</string> <string name="msg_content_description_log_in_using_twitter">Войти с помощью Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Войти с помощью Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Войти с помощью GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Войти с помощью WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Войти с помощью WordPress</string>
<string name="msg_content_description_send_message">Отправить сообщение</string> <string name="msg_content_description_send_message">Отправить сообщение</string>
<string name="msg_content_description_show_more_login_options">Больше параметров входа</string> <string name="msg_content_description_show_more_login_options">Больше параметров входа</string>
...@@ -156,13 +175,13 @@ ...@@ -156,13 +175,13 @@
<string name="msg_login_with_email">Войти с помощью <b>e-mail</b></string> <string name="msg_login_with_email">Войти с помощью <b>e-mail</b></string>
<string name="msg_create_account">Создать аккаунт</string> <string name="msg_create_account">Создать аккаунт</string>
<string name="msg_continue_with_facebook">Войти с помощью <b>Facebook</b></string> <string name="msg_continue_with_facebook">Войти с помощью <b>Facebook</b></string>
<string name="msg_continue_with_github">Войти с помощью <b>Github</b></string> <string name="msg_continue_with_github">Войти с помощью <b>GitHub</b></string>
<string name="msg_continue_with_google">Войти с помощью <b>Google</b></string> <string name="msg_continue_with_google">Войти с помощью <b>Google</b></string>
<string name="msg_continue_with_linkedin">Войти с помощью <b>Linkedin</b></string> <string name="msg_continue_with_linkedin">Войти с помощью <b>LinkedIn</b></string>
<string name="msg_continue_with_gitlab">Войти с помощью <b>GitLab</b></string> <string name="msg_continue_with_gitlab">Войти с помощью <b>GitLab</b></string>
<string name="msg_continue_with_wordpress">Войти с помощью <b>WordPress</b></string> <string name="msg_continue_with_wordpress">Войти с помощью <b>WordPress</b></string>
<string name="msg_two_factor_authentication">Двухфакторная аутентификация</string> <string name="msg_two_factor_authentication">Двухфакторная аутентификация</string>
<string name="msg__your_2fa_code">Ваш код 2FA?</string> <string name="msg_your_2fa_code">Ваш код 2FA?</string>
<string name="msg_view_more">больше</string> <string name="msg_view_more">больше</string>
<string name="msg_view_less">меньше</string> <string name="msg_view_less">меньше</string>
<string name="msg_permalink_copied">Ссылка скопирована</string> <string name="msg_permalink_copied">Ссылка скопирована</string>
...@@ -180,10 +199,11 @@ ...@@ -180,10 +199,11 @@
<item quantity="many">%1$s реагируют с %2$s</item> <item quantity="many">%1$s реагируют с %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Учетные данные успешно сохранены</string> <string name="msg_credentials_saved_successfully">Учетные данные успешно сохранены</string>
<string name="msg_camera_permission_denied">Camera permission is needed to open camera.</string> <!-- TODO Add translation --> <string name="msg_camera_permission_denied">Необходимо разрешение на использование камеры</string>
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Необходимо разрешение на использование хранилища</string>
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Сервер</string>
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Добавить новый сервер</string>
<string name="msg_directory">Директория</string>
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Приватный</string> <string name="msg_private_channel">Приватный</string>
...@@ -311,16 +331,20 @@ ...@@ -311,16 +331,20 @@
<string name="alert_title_default_skin_tone">Тон кожи по умолчанию</string> <string name="alert_title_default_skin_tone">Тон кожи по умолчанию</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Сортировать по %1$s</string>
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by">Сортировать по</string>
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Активности</string>
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Имени</string>
<string name="msg_group_by_type">Group by type</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Непрочитанные сверху</string>
<string name="msg_group_by_favorites">Group by favorites</string> <!-- TODO Translate --> <string name="msg_group_by_type">Группировать по типу</string>
<string name="msg_group_by_favorites">Группировать по избранному</string>
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Избранные</string> <string name="header_favorite">Избранные</string>
<string name="header_channel">Каналы</string> <string name="msg_channels">Каналы</string>
<string name="msg_users">Пользователи</string>
<string name="msg_search_for_global_users">Поиск глобальных пользователей</string>
<string name="msg_search_for_global_users_description">При активации станет возможен поиск любого пользователя из других компаний или серверов.</string>
<string name="header_private_groups">Приватные каналы</string> <string name="header_private_groups">Приватные каналы</string>
<string name="header_direct_messages">Личная переписка</string> <string name="header_direct_messages">Личная переписка</string>
<string name="header_live_chats">Живые чаты</string> <string name="header_live_chats">Живые чаты</string>
......
...@@ -20,7 +20,8 @@ ...@@ -20,7 +20,8 @@
<string name="title_password">Şifrenizi Değiştirin</string> <string name="title_password">Şifrenizi Değiştirin</string>
<string name="title_update_profile">Profilinizi Düzenleyin</string> <string name="title_update_profile">Profilinizi Düzenleyin</string>
<string name="title_create_channel">Yeni Kanal Oluştur</string> <string name="title_create_channel">Yeni Kanal Oluştur</string>
<string name="title_licence">Licence</string> <!-- TODO Add translation --> <string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_license">License</string> <!-- TODO Add translation -->
<string name="title_are_you_sure">Are you sure?</string> <!-- TODO Add translation --> <string name="title_are_you_sure">Are you sure?</string> <!-- TODO Add translation -->
<string name="title_channel_details">Channel Details</string> <!-- TODO add translation --> <string name="title_channel_details">Channel Details</string> <!-- TODO add translation -->
<string name="title_topic">konu</string> <string name="title_topic">konu</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Üzgünüz! bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.</string> <string name="msg_generic_error">Üzgünüz! bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.</string>
<string name="msg_no_data_to_display">Görüntülenecek veri bulunmamaktadır.</string> <string name="msg_no_data_to_display">Görüntülenecek veri bulunmamaktadır.</string>
<string name="msg_check_this_out">bunu kontrol et</string> <string name="msg_check_this_out">bunu kontrol et</string>
<string name="msg_share_using">kullanarak paylaş</string> <string name="msg_share_using">kullanarak paylaş</string>
<string name="msg_profile_update_successfully">Profil bilgileri başarıyla güncellenmiştir.</string> <string name="msg_profile_updated_successfully">Profil bilgileri başarıyla güncellenmiştir.</string>
<string name="msg_username">kullanıcı adı</string> <string name="msg_username">kullanıcı adı</string>
<string name="msg_username_or_email">kullanıcı adı veya eposta</string> <string name="msg_username_or_email">kullanıcı adı veya eposta</string>
<string name="msg_password">şifre</string> <string name="msg_password">şifre</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">avatar URL</string> <string name="msg_avatar_url">avatar URL</string>
<string name="msg_or_continue_using_social_accounts">Veya sosyal medya hesaplarınızdan birini kullanarak devam edin</string> <string name="msg_or_continue_using_social_accounts">Veya sosyal medya hesaplarınızdan birini kullanarak devam edin</string>
<string name="msg_new_user">Yeni kullanıcı? %1$s</string> <string name="msg_new_user">Yeni kullanıcı? %1$s</string>
<string name="msg_forgot__your_password">Forgot your password?</string> <!-- TODO Add translation --> <string name="msg_forgot_your_password">Forgot your password?</string> <!-- TODO Add translation -->
<string name="msg_reset">Sıfırla</string> <string name="msg_reset">Sıfırla</string>
<string name="msg_check_your_email_to_reset_your_password">Eposta gönderilmiştir! Şifrenizi sıfırlamak için eposta kutunuzu kontrol ediniz.</string> <string name="msg_check_your_email_to_reset_your_password">Eposta gönderilmiştir! Şifrenizi sıfırlamak için eposta kutunuzu kontrol ediniz.</string>
<string name="msg_invalid_email">Lütfen, geçerli bir eposta adresi giriniz</string> <string name="msg_invalid_email">Lütfen, geçerli bir eposta adresi giriniz</string>
...@@ -103,13 +122,13 @@ ...@@ -103,13 +122,13 @@
<string name="msg_invalid_file">Geçersiz dosya</string> <string name="msg_invalid_file">Geçersiz dosya</string>
<string name="msg_invalid_server_url">Geçersiz sunucu adresi</string> <string name="msg_invalid_server_url">Geçersiz sunucu adresi</string>
<string name="msg_content_description_log_in_using_facebook">Facebook Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_facebook">Facebook Hesabı ile Giriş Yap</string>
<string name="msg_content_description_log_in_using_github">Github Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_github">GitHub Hesabı ile Giriş Yap</string>
<string name="msg_content_description_log_in_using_google">Google Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_google">Google Hesabı ile Giriş Yap</string>
<string name="msg_content_description_log_in_using_linkedin">LinkedIn Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_linkedin">LinkedIn Hesabı ile Giriş Yap</string>
<string name="msg_content_description_log_in_using_meteor">Meteor Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_meteor">Meteor Hesabı ile Giriş Yap</string>
<string name="msg_content_description_log_in_using_twitter">Twitter Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_twitter">Twitter Hesabı ile Giriş Yap</string>
<string name="msg_content_description_log_in_using_gitlab">Gitlab Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_gitlab">GitLab Hesabı ile Giriş Yap</string>
<string name="msg_content_description_log_in_using_wordpress">Wordpress Hesabı ile Giriş Yap</string> <string name="msg_content_description_log_in_using_wordpress">WordPress Hesabı ile Giriş Yap</string>
<string name="msg_content_description_send_message">Mesaj gönder</string> <string name="msg_content_description_send_message">Mesaj gönder</string>
<string name="msg_content_description_show_more_login_options">Show more login options</string> <!-- TODO Add translation --> <string name="msg_content_description_show_more_login_options">Show more login options</string> <!-- TODO Add translation -->
<string name="msg_content_description_show_attachment_options">Dosya eki seçeneklerini göster</string> <string name="msg_content_description_show_attachment_options">Dosya eki seçeneklerini göster</string>
...@@ -157,13 +176,13 @@ ...@@ -157,13 +176,13 @@
<string name="msg_login_with_email">Login with <b>e-mail</b></string> <!-- TODO Add translation --> <string name="msg_login_with_email">Login with <b>e-mail</b></string> <!-- TODO Add translation -->
<string name="msg_create_account">Create an account</string> <!-- TODO Add translation --> <string name="msg_create_account">Create an account</string> <!-- TODO Add translation -->
<string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_github">Continue with <b>Github</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_github">Continue with <b>GitHub</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_google">Continue with <b>Google</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_google">Continue with <b>Google</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_linkedin">Continue with <b>Linkedin</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_linkedin">Continue with <b>LinkedIn</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation -->
<string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation --> <string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation -->
<string name="msg__your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation --> <string name="msg_your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation -->
<string name="msg_camera_permission_denied">Camera permission is needed to open camera.</string> <!-- TODO Add translation --> <string name="msg_camera_permission_denied">Camera permission is needed to open camera.</string> <!-- TODO Add translation -->
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
...@@ -180,7 +199,7 @@ ...@@ -180,7 +199,7 @@
<string name="msg_channel_created_successfully">Kanal başarıyla oluşturuldu</string> <string name="msg_channel_created_successfully">Kanal başarıyla oluşturuldu</string>
<string name="msg_message_copied">Mesaj kopyalandı</string> <string name="msg_message_copied">Mesaj kopyalandı</string>
<string name="msg_delete_message">Mesajı Sil</string> <string name="msg_delete_message">Mesajı Sil</string>
<string name="msg_delete_description">Bu mesajı silmek istediğinizden emin misiniz</string> <string name="msg_delete_description">Bu mesajı silmek istediğinizden emin misiniz?</string>
<string name="msg_view_more">Daha fazla göster</string> <string name="msg_view_more">Daha fazla göster</string>
<string name="msg_view_less">Daha az göster</string> <string name="msg_view_less">Daha az göster</string>
<string name="msg_permalink_copied">Permalink copied</string> <!-- TODO - Add proper translation --> <string name="msg_permalink_copied">Permalink copied</string> <!-- TODO - Add proper translation -->
...@@ -199,6 +218,7 @@ ...@@ -199,6 +218,7 @@
<string name="msg_credentials_saved_successfully">Kimlik bilgileri başarıyla kaydedildi</string> <string name="msg_credentials_saved_successfully">Kimlik bilgileri başarıyla kaydedildi</string>
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Preferences messages --> <!-- Preferences messages -->
<string name="msg_analytics_tracking">İstatistik takibi</string> <string name="msg_analytics_tracking">İstatistik takibi</string>
...@@ -315,7 +335,8 @@ ...@@ -315,7 +335,8 @@
<string name="alert_title_default_skin_tone">Varsayılan tasarım tonu</string> <string name="alert_title_default_skin_tone">Varsayılan tasarım tonu</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -324,7 +345,10 @@ ...@@ -324,7 +345,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">Kanallar</string> <string name="msg_channels">Kanallar</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">Gizli Gruplar</string> <string name="header_private_groups">Gizli Gruplar</string>
<string name="header_direct_messages">Direkt Mesajlar</string> <string name="header_direct_messages">Direkt Mesajlar</string>
<string name="header_live_chats">Canlı Sohbetler</string> <string name="header_live_chats">Canlı Sohbetler</string>
......
...@@ -20,7 +20,8 @@ ...@@ -20,7 +20,8 @@
<string name="title_password">Змінити пароль</string> <string name="title_password">Змінити пароль</string>
<string name="title_update_profile">Оновити профіль</string> <string name="title_update_profile">Оновити профіль</string>
<string name="title_create_channel">Створити новий канал</string> <string name="title_create_channel">Створити новий канал</string>
<string name="title_licence">Licence</string> <!-- TODO Add translation --> <string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_license">License</string> <!-- TODO Add translation -->
<string name="title_are_you_sure">Are you sure?</string> <!-- TODO Add translation --> <string name="title_are_you_sure">Are you sure?</string> <!-- TODO Add translation -->
<string name="title_channel_details">Channel Details</string> <!-- TODO add translation --> <string name="title_channel_details">Channel Details</string> <!-- TODO add translation -->
<string name="title_topic">Тема</string> <string name="title_topic">Тема</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Сталася помилка, спробуйте ще раз.</string> <string name="msg_generic_error">Сталася помилка, спробуйте ще раз.</string>
<string name="msg_no_data_to_display">Немає даних для відображення</string> <string name="msg_no_data_to_display">Немає даних для відображення</string>
<string name="msg_check_this_out">Перевір це</string> <string name="msg_check_this_out">Перевір це</string>
<string name="msg_share_using">поділитися використанням</string> <string name="msg_share_using">поділитися використанням</string>
<string name="msg_profile_update_successfully">"Профіль оновлено успішно "</string> <string name="msg_profile_updated_successfully">"Профіль оновлено успішно "</string>
<string name="msg_username">Ім\'я користувача</string> <string name="msg_username">Ім\'я користувача</string>
<string name="msg_username_or_email">Ім\'я користувача або e-mail</string> <string name="msg_username_or_email">Ім\'я користувача або e-mail</string>
<string name="msg_password">пароль</string> <string name="msg_password">пароль</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">URL аватара</string> <string name="msg_avatar_url">URL аватара</string>
<string name="msg_or_continue_using_social_accounts">Або продовжити, за допомогою акаунта у соціальних мережах</string> <string name="msg_or_continue_using_social_accounts">Або продовжити, за допомогою акаунта у соціальних мережах</string>
<string name="msg_new_user">Новий користувач? %1$s</string> <string name="msg_new_user">Новий користувач? %1$s</string>
<string name="msg_forgot__your_password">Забули пароль? %1$s</string> <string name="msg_forgot_your_password">Забули пароль? %1$s</string>
<string name="msg_reset">Скинути</string> <string name="msg_reset">Скинути</string>
<string name="msg_check_your_email_to_reset_your_password">Лист було відправлено! Перевірте свою поштову скриньку, щоб скинути пароль.</string> <string name="msg_check_your_email_to_reset_your_password">Лист було відправлено! Перевірте свою поштову скриньку, щоб скинути пароль.</string>
<string name="msg_invalid_email">Введіть діючий e-mail</string> <string name="msg_invalid_email">Введіть діючий e-mail</string>
...@@ -103,13 +122,13 @@ ...@@ -103,13 +122,13 @@
<string name="msg_invalid_file">Неправильний файл</string> <string name="msg_invalid_file">Неправильний файл</string>
<string name="msg_invalid_server_url">Неправильний URL-адреса сервера.</string> <string name="msg_invalid_server_url">Неправильний URL-адреса сервера.</string>
<string name="msg_content_description_log_in_using_facebook">Увійти за допомогою Facebook</string> <string name="msg_content_description_log_in_using_facebook">Увійти за допомогою Facebook</string>
<string name="msg_content_description_log_in_using_github">Увійти за допомогою Github</string> <string name="msg_content_description_log_in_using_github">Увійти за допомогою GitHub</string>
<string name="msg_content_description_log_in_using_google">Увійти за допомогою Google</string> <string name="msg_content_description_log_in_using_google">Увійти за допомогою Google</string>
<string name="msg_content_description_log_in_using_linkedin">Увійти за допомогою Linkedin</string> <string name="msg_content_description_log_in_using_linkedin">Увійти за допомогою LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Увійти за допомогою Meteor</string> <string name="msg_content_description_log_in_using_meteor">Увійти за допомогою Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Увійти за допомогою Twitter</string> <string name="msg_content_description_log_in_using_twitter">Увійти за допомогою Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Увійти за допомогою Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Увійти за допомогою GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Увійти за допомогою Wordpress</string> <string name="msg_content_description_log_in_using_wordpress">Увійти за допомогою WordPress</string>
<string name="msg_content_description_send_message">Надіслати повідомлення</string> <string name="msg_content_description_send_message">Надіслати повідомлення</string>
<string name="msg_content_description_show_more_login_options">Show more login options</string> <!-- TODO Translate--> <string name="msg_content_description_show_more_login_options">Show more login options</string> <!-- TODO Translate-->
<string name="msg_content_description_show_attachment_options">Показати параметри долучення</string> <string name="msg_content_description_show_attachment_options">Показати параметри долучення</string>
...@@ -155,13 +174,13 @@ ...@@ -155,13 +174,13 @@
<string name="msg_login_with_email">Login with <b>e-mail</b></string> <!-- TODO Add translation --> <string name="msg_login_with_email">Login with <b>e-mail</b></string> <!-- TODO Add translation -->
<string name="msg_create_account">Create an account</string> <!-- TODO Add translation --> <string name="msg_create_account">Create an account</string> <!-- TODO Add translation -->
<string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_github">Continue with <b>Github</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_github">Continue with <b>GitHub</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_google">Continue with <b>Google</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_google">Continue with <b>Google</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_linkedin">Continue with <b>Linkedin</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_linkedin">Continue with <b>LinkedIn</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string> <!-- TODO Add translation -->
<string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation -->
<string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation --> <string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation -->
<string name="msg__your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation --> <string name="msg_your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation -->
<string name="msg_view_more">view more</string> <!-- TODO - Add proper translation --> <string name="msg_view_more">view more</string> <!-- TODO - Add proper translation -->
<string name="msg_view_less">view less</string> <!-- TODO - Add proper translation --> <string name="msg_view_less">view less</string> <!-- TODO - Add proper translation -->
<string name="msg_permalink_copied">Permalink copied</string> <!-- TODO - Add proper translation --> <string name="msg_permalink_copied">Permalink copied</string> <!-- TODO - Add proper translation -->
...@@ -183,6 +202,7 @@ ...@@ -183,6 +202,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Приватний</string> <string name="msg_private_channel">Приватний</string>
...@@ -310,7 +330,8 @@ ...@@ -310,7 +330,8 @@
<string name="alert_title_default_skin_tone">Тон шкіри за замовчуванням</string> <string name="alert_title_default_skin_tone">Тон шкіри за замовчуванням</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -319,7 +340,10 @@ ...@@ -319,7 +340,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">Канали</string> <string name="msg_channels">Канали</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">Приватні канали</string> <string name="header_private_groups">Приватні канали</string>
<string name="header_direct_messages">Особисті повідомлення</string> <string name="header_direct_messages">Особисті повідомлення</string>
<string name="header_live_chats">Живі чати</string> <string name="header_live_chats">Живі чати</string>
......
...@@ -20,9 +20,10 @@ ...@@ -20,9 +20,10 @@
<string name="title_password">修改密码</string> <string name="title_password">修改密码</string>
<string name="title_update_profile">更新资料</string> <string name="title_update_profile">更新资料</string>
<string name="title_create_channel">新建频道</string> <string name="title_create_channel">新建频道</string>
<string name="title_licence">许可证</string> <string name="title_license">许可证</string>
<string name="title_are_you_sure">你确定?</string> <string name="title_are_you_sure">你确定?</string>
<string name="title_channel_details">频道信息</string> <string name="title_channel_details">频道信息</string>
<string name="title_choose_language">Choose Language</string> <!-- TODO Add translation -->
<string name="title_topic">主题</string> <string name="title_topic">主题</string>
<string name="title_announcement">公告</string> <string name="title_announcement">公告</string>
<string name="title_description">描述</string> <string name="title_description">描述</string>
...@@ -59,27 +60,45 @@ ...@@ -59,27 +60,45 @@
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favorite</string> <!-- TODO Add translation -->
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation -->
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<string-array name="languages"> <!-- TODO Add translations -->
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">对不起发生了错误,请重试</string> <string name="msg_generic_error">对不起发生了错误,请重试</string>
<string name="msg_no_data_to_display">没有数据显示</string> <string name="msg_no_data_to_display">没有数据显示</string>
<string name="msg_check_this_out">检查这里</string> <string name="msg_check_this_out">检查这里</string>
<string name="msg_share_using">分享使用</string> <string name="msg_share_using">分享使用</string>
<string name="msg_profile_update_successfully">资料更新成功</string> <string name="msg_profile_updated_successfully">资料更新成功</string>
<string name="msg_username">用户名</string> <string name="msg_username">用户名</string>
<string name="msg_username_or_email">用户名或邮箱</string> <string name="msg_username_or_email">用户名或邮箱</string>
<string name="msg_password">密码</string> <string name="msg_password">密码</string>
...@@ -88,7 +107,7 @@ ...@@ -88,7 +107,7 @@
<string name="msg_avatar_url">头像网址</string> <string name="msg_avatar_url">头像网址</string>
<string name="msg_or_continue_using_social_accounts">或继续使用社交账号</string> <string name="msg_or_continue_using_social_accounts">或继续使用社交账号</string>
<string name="msg_new_user">新用户? %1$s</string> <string name="msg_new_user">新用户? %1$s</string>
<string name="msg_forgot__your_password">忘记密码?</string> <string name="msg_forgot_your_password">忘记密码?</string>
<string name="msg_reset">重置</string> <string name="msg_reset">重置</string>
<string name="msg_check_your_email_to_reset_your_password">邮件已发送!请根据邮件提示重置密码.</string> <string name="msg_check_your_email_to_reset_your_password">邮件已发送!请根据邮件提示重置密码.</string>
<string name="msg_invalid_email">请输入有效邮箱地址</string> <string name="msg_invalid_email">请输入有效邮箱地址</string>
...@@ -103,12 +122,12 @@ ...@@ -103,12 +122,12 @@
<string name="msg_invalid_file">无效文件</string> <string name="msg_invalid_file">无效文件</string>
<string name="msg_invalid_server_url">无效的服务器地址</string> <string name="msg_invalid_server_url">无效的服务器地址</string>
<string name="msg_content_description_log_in_using_facebook">使用Facebook账户登录</string> <string name="msg_content_description_log_in_using_facebook">使用Facebook账户登录</string>
<string name="msg_content_description_log_in_using_github">使用Github账户登录</string> <string name="msg_content_description_log_in_using_github">使用GitHub账户登录</string>
<string name="msg_content_description_log_in_using_google">使用Google账户登录</string> <string name="msg_content_description_log_in_using_google">使用Google账户登录</string>
<string name="msg_content_description_log_in_using_linkedin">使用Linkedin账户登录</string> <string name="msg_content_description_log_in_using_linkedin">使用LinkedIn账户登录</string>
<string name="msg_content_description_log_in_using_meteor">使用Meteor账户登录</string> <string name="msg_content_description_log_in_using_meteor">使用Meteor账户登录</string>
<string name="msg_content_description_log_in_using_twitter">使用Twitter账户登录</string> <string name="msg_content_description_log_in_using_twitter">使用Twitter账户登录</string>
<string name="msg_content_description_log_in_using_gitlab">使用Gitlab账户登录</string> <string name="msg_content_description_log_in_using_gitlab">使用GitLab账户登录</string>
<string name="msg_content_description_log_in_using_wordpress">使用WordPress账户登录</string> <string name="msg_content_description_log_in_using_wordpress">使用WordPress账户登录</string>
<string name="msg_content_description_send_message">发送消息</string> <string name="msg_content_description_send_message">发送消息</string>
<string name="msg_content_description_show_more_login_options">显示更多登录选项</string> <string name="msg_content_description_show_more_login_options">显示更多登录选项</string>
...@@ -154,13 +173,13 @@ ...@@ -154,13 +173,13 @@
<string name="msg_login_with_email">使用<b>邮箱</b>登录</string> <string name="msg_login_with_email">使用<b>邮箱</b>登录</string>
<string name="msg_create_account">新建账户</string> <string name="msg_create_account">新建账户</string>
<string name="msg_continue_with_facebook">使用<b>Facebook</b>账号继续</string> <string name="msg_continue_with_facebook">使用<b>Facebook</b>账号继续</string>
<string name="msg_continue_with_github">使用<b>Github</b>账号继续</string> <string name="msg_continue_with_github">使用<b>GitHub</b>账号继续</string>
<string name="msg_continue_with_google">使用<b>Google</b>账号继续</string> <string name="msg_continue_with_google">使用<b>Google</b>账号继续</string>
<string name="msg_continue_with_linkedin">使用<b>Linkedin</b>账号继续</string> <string name="msg_continue_with_linkedin">使用<b>LinkedIn</b>账号继续</string>
<string name="msg_continue_with_gitlab">使用<b>GitLab</b>账号继续</string> <string name="msg_continue_with_gitlab">使用<b>GitLab</b>账号继续</string>
<string name="msg_continue_with_wordpress">使用<b>WordPress</b>账号继续</string> <string name="msg_continue_with_wordpress">使用<b>WordPress</b>账号继续</string>
<string name="msg_two_factor_authentication">两步认证</string> <string name="msg_two_factor_authentication">两步认证</string>
<string name="msg__your_2fa_code">什么是2FA 码?</string> <string name="msg_your_2fa_code">什么是2FA 码?</string>
<string name="msg_permalink_copied">永久链接已拷贝</string> <string name="msg_permalink_copied">永久链接已拷贝</string>
<string name="msg_no_topic">No topic</string> <!-- TODO Add translation --> <string name="msg_no_topic">No topic</string> <!-- TODO Add translation -->
<string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation --> <string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation -->
...@@ -178,6 +197,7 @@ ...@@ -178,6 +197,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">隐私</string> <string name="msg_private_channel">隐私</string>
...@@ -192,7 +212,7 @@ ...@@ -192,7 +212,7 @@
<string name="msg_channel_created_successfully">成功建立频道</string> <string name="msg_channel_created_successfully">成功建立频道</string>
<string name="msg_message_copied">消息已拷贝</string> <string name="msg_message_copied">消息已拷贝</string>
<string name="msg_delete_message">删除消息</string> <string name="msg_delete_message">删除消息</string>
<string name="msg_delete_description">您确定要删除这条消息吗</string> <string name="msg_delete_description">您确定要删除这条消息吗?</string>
<string name="msg_view_more">显示更多</string> <string name="msg_view_more">显示更多</string>
<string name="msg_view_less">显示更少</string> <string name="msg_view_less">显示更少</string>
<string name="msg_muted_on_this_channel">您被禁言了</string> <string name="msg_muted_on_this_channel">您被禁言了</string>
...@@ -311,7 +331,8 @@ ...@@ -311,7 +331,8 @@
<string name="alert_title_default_skin_tone">默认皮肤颜色</string> <string name="alert_title_default_skin_tone">默认皮肤颜色</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -320,7 +341,10 @@ ...@@ -320,7 +341,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">频道</string> <string name="msg_channels">频道</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">私人组</string> <string name="header_private_groups">私人组</string>
<string name="header_direct_messages">直接对话</string> <string name="header_direct_messages">直接对话</string>
<string name="header_live_chats">Live 对话</string> <string name="header_live_chats">Live 对话</string>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<string name="title_password">修改密碼</string> <string name="title_password">修改密碼</string>
<string name="title_update_profile">更新資料</string> <string name="title_update_profile">更新資料</string>
<string name="title_create_channel">建立新頻道</string> <string name="title_create_channel">建立新頻道</string>
<string name="title_licence">許可</string> <string name="title_license">許可</string>
<string name="title_are_you_sure">確定嗎?</string> <string name="title_are_you_sure">確定嗎?</string>
<string name="title_channel_details">頻道訊息</string> <string name="title_channel_details">頻道訊息</string>
<string name="title_topic">主題</string> <string name="title_topic">主題</string>
...@@ -59,19 +59,18 @@ ...@@ -59,19 +59,18 @@
<string name="action_favorite">加入蒐藏</string> <string name="action_favorite">加入蒐藏</string>
<string name="action_remove_favorite">從蒐藏中移除</string> <string name="action_remove_favorite">從蒐藏中移除</string>
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <!-- TODO Translate --> <string name="msg_contact_us">Contact us</string> <!-- TODO Translate -->
<string name="msg_language">Language</string> <!-- TODO Translate --> <string name="msg_language">Language</string> <!-- TODO Translate -->
<string name="msg_review_this_app">Review this app</string> <!-- TODO Translate --> <string name="msg_review_this_app">Review this app</string> <!-- TODO Translate -->
<string name="msg_share_this_app">Share this app</string> <!-- TODO Translate --> <string name="msg_share_this_app">Share this app</string> <!-- TODO Translate -->
<string name="msg_administration">Administration</string> <!-- TODO Translate --> <string name="msg_administration">Administration</string> <!-- TODO Translate -->
<string name="msg_licence">Licence</string> <!-- TODO Translate --> <string name="msg_license">License</string> <!-- TODO Translate -->
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate -->
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate -->
<string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate --> <string name="msg_send_analytics">Send analytics</string> <!-- TODO Translate -->
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate --> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <!-- TODO Translate -->
<string name="msg_delete_account">Delete account</string> <!-- TODO Translate --> <string name="msg_delete_account">Delete account</string> <!-- TODO Translate -->
<string name="msg_change_status">Change status</string> <!-- TODO Translate --> <string name="msg_change_status">Change status</string> <!-- TODO Translate -->
<!-- Regular information messages --> <!-- Regular information messages -->
...@@ -79,7 +78,7 @@ ...@@ -79,7 +78,7 @@
<string name="msg_no_data_to_display">沒有資料</string> <string name="msg_no_data_to_display">沒有資料</string>
<string name="msg_check_this_out">請檢查這裡</string> <string name="msg_check_this_out">請檢查這裡</string>
<string name="msg_share_using">分享使用</string> <string name="msg_share_using">分享使用</string>
<string name="msg_profile_update_successfully">資料更新成功</string> <string name="msg_profile_updated_successfully">資料更新成功</string>
<string name="msg_username">使用者名稱</string> <string name="msg_username">使用者名稱</string>
<string name="msg_username_or_email">使用者名稱或是電子信箱</string> <string name="msg_username_or_email">使用者名稱或是電子信箱</string>
<string name="msg_password">密碼</string> <string name="msg_password">密碼</string>
...@@ -88,7 +87,7 @@ ...@@ -88,7 +87,7 @@
<string name="msg_avatar_url">頭貼網址</string> <string name="msg_avatar_url">頭貼網址</string>
<string name="msg_or_continue_using_social_accounts">或繼續使用社交帳號</string> <string name="msg_or_continue_using_social_accounts">或繼續使用社交帳號</string>
<string name="msg_new_user">新的使用者? %1$s</string> <string name="msg_new_user">新的使用者? %1$s</string>
<string name="msg_forgot__your_password">忘記密碼?</string> <string name="msg_forgot_your_password">忘記密碼?</string>
<string name="msg_reset">重置</string> <string name="msg_reset">重置</string>
<string name="msg_check_your_email_to_reset_your_password">郵件已發送!請根據電子郵件提示重新設定密碼.</string> <string name="msg_check_your_email_to_reset_your_password">郵件已發送!請根據電子郵件提示重新設定密碼.</string>
<string name="msg_invalid_email">請輸入有效的電子信箱</string> <string name="msg_invalid_email">請輸入有效的電子信箱</string>
...@@ -103,12 +102,12 @@ ...@@ -103,12 +102,12 @@
<string name="msg_invalid_file">無效的檔案</string> <string name="msg_invalid_file">無效的檔案</string>
<string name="msg_invalid_server_url">無效的伺服器地址</string> <string name="msg_invalid_server_url">無效的伺服器地址</string>
<string name="msg_content_description_log_in_using_facebook">使用Facebook帳戶登入</string> <string name="msg_content_description_log_in_using_facebook">使用Facebook帳戶登入</string>
<string name="msg_content_description_log_in_using_github">使用Github帳戶登入</string> <string name="msg_content_description_log_in_using_github">使用GitHub帳戶登入</string>
<string name="msg_content_description_log_in_using_google">使用Google帳戶登入</string> <string name="msg_content_description_log_in_using_google">使用Google帳戶登入</string>
<string name="msg_content_description_log_in_using_linkedin">使用Linkedin帳戶登入</string> <string name="msg_content_description_log_in_using_linkedin">使用LinkedIn帳戶登入</string>
<string name="msg_content_description_log_in_using_meteor">使用Meteor帳戶登入</string> <string name="msg_content_description_log_in_using_meteor">使用Meteor帳戶登入</string>
<string name="msg_content_description_log_in_using_twitter">使用Twitter帳戶登入</string> <string name="msg_content_description_log_in_using_twitter">使用Twitter帳戶登入</string>
<string name="msg_content_description_log_in_using_gitlab">使用Gitlab帳戶登入</string> <string name="msg_content_description_log_in_using_gitlab">使用GitLab帳戶登入</string>
<string name="msg_content_description_log_in_using_wordpress">使用WordPress帳戶登入</string> <string name="msg_content_description_log_in_using_wordpress">使用WordPress帳戶登入</string>
<string name="msg_content_description_send_message">發送訊息</string> <string name="msg_content_description_send_message">發送訊息</string>
<string name="msg_content_description_show_more_login_options">顯示更多登入選像</string> <string name="msg_content_description_show_more_login_options">顯示更多登入選像</string>
...@@ -154,13 +153,13 @@ ...@@ -154,13 +153,13 @@
<string name="msg_login_with_email">使用<b>信箱</b>登入</string> <string name="msg_login_with_email">使用<b>信箱</b>登入</string>
<string name="msg_create_account">新增帳戶</string> <string name="msg_create_account">新增帳戶</string>
<string name="msg_continue_with_facebook">使用<b>Facebook</b>帳號繼續</string> <string name="msg_continue_with_facebook">使用<b>Facebook</b>帳號繼續</string>
<string name="msg_continue_with_github">使用<b>Github</b>帳號繼續</string> <string name="msg_continue_with_github">使用<b>GitHub</b>帳號繼續</string>
<string name="msg_continue_with_google">使用<b>Google</b>帳號繼續</string> <string name="msg_continue_with_google">使用<b>Google</b>帳號繼續</string>
<string name="msg_continue_with_linkedin">使用<b>Linkedin</b>帳號繼續</string> <string name="msg_continue_with_linkedin">使用<b>LinkedIn</b>帳號繼續</string>
<string name="msg_continue_with_gitlab">使用<b>GitLab</b>帳號繼續</string> <string name="msg_continue_with_gitlab">使用<b>GitLab</b>帳號繼續</string>
<string name="msg_continue_with_wordpress">使用<b>WordPress</b>帳號繼續</string> <string name="msg_continue_with_wordpress">使用<b>WordPress</b>帳號繼續</string>
<string name="msg_two_factor_authentication">兩步驟認證(2FA)</string> <string name="msg_two_factor_authentication">兩步驟認證(2FA)</string>
<string name="msg__your_2fa_code">什麼是2FA?</string> <string name="msg_your_2fa_code">什麼是2FA?</string>
<string name="msg_permalink_copied">永久連結已經複製</string> <string name="msg_permalink_copied">永久連結已經複製</string>
<string name="msg_no_topic">沒有主題</string> <string name="msg_no_topic">沒有主題</string>
<string name="msg_no_announcement">沒有公告</string> <string name="msg_no_announcement">沒有公告</string>
...@@ -178,6 +177,7 @@ ...@@ -178,6 +177,7 @@
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation --> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate --> <string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate --> <string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<string name="msg_directory">Directory</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">隱私</string> <string name="msg_private_channel">隱私</string>
...@@ -311,7 +311,8 @@ ...@@ -311,7 +311,8 @@
<string name="alert_title_default_skin_tone">預設主題顏色</string> <string name="alert_title_default_skin_tone">預設主題顏色</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <!-- TODO Translate --> <string name="msg_sort_by_placeholder">Sort by %1$s</string> <!-- TODO Translate -->
<string name="msg_sort_by">Sort by</string> <!-- TODO Translate -->
<string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate --> <string name="msg_sort_by_activity">Activity</string> <!-- TODO Translate -->
<string name="msg_sort_by_name">Name</string> <!-- TODO Translate --> <string name="msg_sort_by_name">Name</string> <!-- TODO Translate -->
<string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate --> <string name="msg_group_by_unread_on_top">Unread on top</string> <!-- TODO Translate -->
...@@ -320,7 +321,10 @@ ...@@ -320,7 +321,10 @@
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favorites</string><!-- TODO - Add proper translation -->
<string name="header_channel">頻道</string> <string name="msg_channels">頻道</string>
<string name="msg_users">Users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users">Search for global users</string> <!-- TODO Translate -->
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string> <!-- TODO Translate -->
<string name="header_private_groups">私人群組</string> <string name="header_private_groups">私人群組</string>
<string name="header_direct_messages">直接對話</string> <string name="header_direct_messages">直接對話</string>
<string name="header_live_chats">Live 對話</string> <string name="header_live_chats">Live 對話</string>
......
...@@ -32,8 +32,9 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -32,8 +32,9 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="title_password">Change Password</string> <string name="title_password">Change Password</string>
<string name="title_update_profile">Update profile</string> <string name="title_update_profile">Update profile</string>
<string name="title_create_channel">Create Channel</string> <string name="title_create_channel">Create Channel</string>
<string name="title_licence">Licence</string> <string name="title_license">License</string>
<string name="title_are_you_sure">Are you sure?</string> <string name="title_are_you_sure">Are you sure?</string>
<string name="title_choose_language">Choose Language</string>
<string name="title_channel_details">Channel Details</string> <string name="title_channel_details">Channel Details</string>
<string name="title_topic">Topic</string> <string name="title_topic">Topic</string>
<string name="title_announcement">Announcement</string> <string name="title_announcement">Announcement</string>
...@@ -71,27 +72,45 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -71,27 +72,45 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="action_favorite">Favorite</string> <string name="action_favorite">Favorite</string>
<string name="action_remove_favorite">Remove favorite</string> <string name="action_remove_favorite">Remove favorite</string>
<!-- Settings messages--> <!-- Settings messages -->
<string name="msg_contact_us">Contact us</string> <string name="msg_contact_us">Contact us</string>
<string name="msg_language">Language</string> <string name="msg_language">Language</string>
<string name="msg_review_this_app">Review this app</string> <string name="msg_review_this_app">Review this app</string>
<string name="msg_share_this_app">Share this app</string> <string name="msg_share_this_app">Share this app</string>
<string name="msg_administration">Administration</string> <string name="msg_administration">Administration</string>
<string name="msg_licence">Licence</string> <string name="msg_license">License</string>
<string name="msg_app_version">Version: %1$s (%2$d)</string> <!-- TODO Translate --> <string name="msg_app_version">Version: %1$s (%2$d)</string>
<string name="msg_server_version">Server version: %1$s</string> <!-- TODO Translate --> <string name="msg_server_version">Server version: %1$s</string>
<string name="msg_send_analytics">Send analytics</string> <string name="msg_send_analytics">Send analytics</string>
<string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string> <string name="msg_logout_from_rocket_chat">Logout from Rocket.Chat</string>
<string name="msg_delete_account">Delete account</string> <string name="msg_delete_account">Delete account</string>
<string name="msg_change_status">Change status</string> <string name="msg_change_status">Change status</string>
<string-array name="languages">
<item>English</item>
<item>Arabic</item>
<item>German</item>
<item>Spanish</item>
<item>Persian</item>
<item>French</item>
<item>Hindi (IN)</item>
<item>Italian</item>
<item>Japanese</item>
<item>Portuguese (BR)</item>
<item>Portuguese (PT)</item>
<item>Russian (RU)</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Chinese (CN)</item>
<item>Chinese (TW)</item>
</string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
<string name="msg_generic_error">Sorry, an error has occurred, please try again</string> <string name="msg_generic_error">Sorry, an error has occurred, please try again</string>
<string name="msg_no_data_to_display">No data to display</string> <string name="msg_no_data_to_display">No data to display</string>
<string name="msg_check_this_out">Check this out</string> <string name="msg_check_this_out">Check this out</string>
<string name="msg_share_using">Share using</string> <string name="msg_share_using">Share using</string>
<string name="msg_profile_update_successfully">Profile update successfully</string> <string name="msg_profile_updated_successfully">Profile updated successfully</string>
<string name="msg_username">username</string> <string name="msg_username">username</string>
<string name="msg_username_or_email">Username or email</string> <string name="msg_username_or_email">Username or email</string>
<string name="msg_password">Password</string> <string name="msg_password">Password</string>
...@@ -100,7 +119,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -100,7 +119,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="msg_avatar_url">avatar URL</string> <string name="msg_avatar_url">avatar URL</string>
<string name="msg_or_continue_using_social_accounts">Or continue using social accounts</string> <string name="msg_or_continue_using_social_accounts">Or continue using social accounts</string>
<string name="msg_new_user">New user? %1$s</string> <string name="msg_new_user">New user? %1$s</string>
<string name="msg_forgot__your_password">Forgot your password?</string> <string name="msg_forgot_your_password">Forgot your password?</string>
<string name="msg_reset">Reset</string> <string name="msg_reset">Reset</string>
<string name="msg_check_your_email_to_reset_your_password">Email sent! Check your inbox to reset your password.</string> <string name="msg_check_your_email_to_reset_your_password">Email sent! Check your inbox to reset your password.</string>
<string name="msg_invalid_email">Please type a valid e-mail</string> <string name="msg_invalid_email">Please type a valid e-mail</string>
...@@ -116,12 +135,12 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -116,12 +135,12 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="msg_invalid_file">Invalid file</string> <string name="msg_invalid_file">Invalid file</string>
<string name="msg_invalid_server_url">Invalid server URL</string> <string name="msg_invalid_server_url">Invalid server URL</string>
<string name="msg_content_description_log_in_using_facebook">Login using Facebook</string> <string name="msg_content_description_log_in_using_facebook">Login using Facebook</string>
<string name="msg_content_description_log_in_using_github">Login using Github</string> <string name="msg_content_description_log_in_using_github">Login using GitHub</string>
<string name="msg_content_description_log_in_using_google">Login using Google</string> <string name="msg_content_description_log_in_using_google">Login using Google</string>
<string name="msg_content_description_log_in_using_linkedin">Login using LinkedIn</string> <string name="msg_content_description_log_in_using_linkedin">Login using LinkedIn</string>
<string name="msg_content_description_log_in_using_meteor">Login using Meteor</string> <string name="msg_content_description_log_in_using_meteor">Login using Meteor</string>
<string name="msg_content_description_log_in_using_twitter">Login using Twitter</string> <string name="msg_content_description_log_in_using_twitter">Login using Twitter</string>
<string name="msg_content_description_log_in_using_gitlab">Login using Gitlab</string> <string name="msg_content_description_log_in_using_gitlab">Login using GitLab</string>
<string name="msg_content_description_log_in_using_wordpress">Login using WordPress</string> <string name="msg_content_description_log_in_using_wordpress">Login using WordPress</string>
<string name="msg_content_description_send_message">Send message</string> <string name="msg_content_description_send_message">Send message</string>
<string name="msg_content_description_show_more_login_options">Show more login options</string> <string name="msg_content_description_show_more_login_options">Show more login options</string>
...@@ -170,13 +189,13 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -170,13 +189,13 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="msg_login_with_email">Login with <b>e-mail</b></string> <string name="msg_login_with_email">Login with <b>e-mail</b></string>
<string name="msg_create_account">Create an account</string> <string name="msg_create_account">Create an account</string>
<string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string> <string name="msg_continue_with_facebook">Continue with <b>Facebook</b></string>
<string name="msg_continue_with_github">Continue with <b>Github</b></string> <string name="msg_continue_with_github">Continue with <b>GitHub</b></string>
<string name="msg_continue_with_google">Continue with <b>Google</b></string> <string name="msg_continue_with_google">Continue with <b>Google</b></string>
<string name="msg_continue_with_linkedin">Continue with <b>Linkedin</b></string> <string name="msg_continue_with_linkedin">Continue with <b>LinkedIn</b></string>
<string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string> <string name="msg_continue_with_gitlab">Continue with <b>GitLab</b></string>
<string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string>
<string name="msg_two_factor_authentication">Two-factor Authentication</string> <string name="msg_two_factor_authentication">Two-factor Authentication</string>
<string name="msg__your_2fa_code">What’s your 2FA code?</string> <string name="msg_your_2fa_code">What’s your 2FA code?</string>
<string name="msg_permalink_copied">Permalink copied</string> <string name="msg_permalink_copied">Permalink copied</string>
<string name="msg_no_topic">No topic</string> <string name="msg_no_topic">No topic</string>
<string name="msg_no_announcement">No announcement</string> <string name="msg_no_announcement">No announcement</string>
...@@ -194,6 +213,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -194,6 +213,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string> <string name="msg_storage_permission_denied">Storage permission is needed to open Drawing.</string>
<string name="msg_server">Server</string> <string name="msg_server">Server</string>
<string name="msg_add_new_server">Add New Server</string> <string name="msg_add_new_server">Add New Server</string>
<string name="msg_directory">Directory</string>
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Private</string> <string name="msg_private_channel">Private</string>
...@@ -208,7 +228,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -208,7 +228,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="msg_channel_created_successfully">Channel created successfully</string> <string name="msg_channel_created_successfully">Channel created successfully</string>
<string name="msg_message_copied">Message copied</string> <string name="msg_message_copied">Message copied</string>
<string name="msg_delete_message">Delete Message</string> <string name="msg_delete_message">Delete Message</string>
<string name="msg_delete_description">Are you sure you want to delete this message</string> <string name="msg_delete_description">Are you sure you want to delete this message?</string>
<string name="msg_view_more">view more</string> <string name="msg_view_more">view more</string>
<string name="msg_view_less">view less</string> <string name="msg_view_less">view less</string>
<string name="msg_muted_on_this_channel">You are muted on this channel</string> <string name="msg_muted_on_this_channel">You are muted on this channel</string>
...@@ -327,7 +347,8 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -327,7 +347,8 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="alert_title_default_skin_tone">Default skin tone</string> <string name="alert_title_default_skin_tone">Default skin tone</string>
<!-- Sort and group --> <!-- Sort and group -->
<string name="msg_sort_by">Sort by %1$s</string> <string name="msg_sort_by_placeholder">Sort by %1$s</string>
<string name="msg_sort_by">Sort by</string>
<string name="msg_sort_by_activity">Activity</string> <string name="msg_sort_by_activity">Activity</string>
<string name="msg_sort_by_name">Name</string> <string name="msg_sort_by_name">Name</string>
<string name="msg_group_by_unread_on_top">Unread on top</string> <string name="msg_group_by_unread_on_top">Unread on top</string>
...@@ -336,7 +357,10 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -336,7 +357,10 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string> <string name="header_favorite">Favorites</string>
<string name="header_channel">Channels</string> <string name="msg_channels">Channels</string>
<string name="msg_users">Users</string>
<string name="msg_search_for_global_users">Search for global users</string>
<string name="msg_search_for_global_users_description">If you turn on, you can search for any user from others companies or servers.</string>
<string name="header_private_groups">Private Groups</string> <string name="header_private_groups">Private Groups</string>
<string name="header_direct_messages">Direct Messages</string> <string name="header_direct_messages">Direct Messages</string>
<string name="header_live_chats">Live Chats</string> <string name="header_live_chats">Live Chats</string>
...@@ -356,9 +380,10 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -356,9 +380,10 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<!-- User Details --> <!-- User Details -->
<string name="timezone">Timezone</string> <string name="timezone">Timezone</string>
<string name="status" translatable="false">Status: %1$s</string> <string name="status" translatable="false">Status: %1$s</string>
<string name="user_detail_status" translatable="false">Status</string>
<!-- Report --> <!-- Report -->
<string name="submit">Submit</string> <string name="submit">Submit</string>
<string name="required">*required</string> <string name="required">*required</string>
<string name="report_sent">Your report has been sent!</string> <string name="report_sent">Your report has been sent!</string>
</resources> </resources>
\ No newline at end of file
...@@ -5,7 +5,7 @@ import chat.rocket.android.dagger.injector.AndroidWorkerInjection ...@@ -5,7 +5,7 @@ import chat.rocket.android.dagger.injector.AndroidWorkerInjection
import chat.rocket.android.extensions.await import chat.rocket.android.extensions.await
import chat.rocket.android.infrastructure.LocalRepository import chat.rocket.android.infrastructure.LocalRepository
import chat.rocket.android.server.domain.GetAccountsInteractor import chat.rocket.android.server.domain.GetAccountsInteractor
import chat.rocket.android.server.infraestructure.RocketChatClientFactory import chat.rocket.android.server.infrastructure.RocketChatClientFactory
import chat.rocket.android.util.extensions.registerPushToken import chat.rocket.android.util.extensions.registerPushToken
import chat.rocket.common.util.ifNull import chat.rocket.common.util.ifNull
import com.google.firebase.iid.FirebaseInstanceId import com.google.firebase.iid.FirebaseInstanceId
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment