summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-07-18 15:45:23 -0700
committerChristopher Speller <crspeller@gmail.com>2017-07-18 15:45:23 -0700
commit97f34e483b0fa8b2a8cfe75b72168cfa38cc9d80 (patch)
treeec2d68077dd2b12de3173871622f3ec2a2b61d35
parent21a3219b9b1df033635631afa751742bd4c56ea0 (diff)
parenta350f4dc0754e1aeabb64bd712ce05f7c59cfa60 (diff)
downloadchat-97f34e483b0fa8b2a8cfe75b72168cfa38cc9d80.tar.gz
chat-97f34e483b0fa8b2a8cfe75b72168cfa38cc9d80.tar.bz2
chat-97f34e483b0fa8b2a8cfe75b72168cfa38cc9d80.zip
Merge branch 'release-4.0'
-rw-r--r--api/file.go24
-rw-r--r--api/oauth.go4
-rw-r--r--api/user.go2
-rw-r--r--api4/context.go2
-rw-r--r--api4/file.go93
-rw-r--r--api4/oauth.go20
-rw-r--r--api4/post.go6
-rw-r--r--api4/team.go8
-rw-r--r--api4/team_test.go19
-rw-r--r--api4/user.go2
-rw-r--r--app/oauth.go113
-rw-r--r--app/oauth_test.go52
-rw-r--r--app/post.go16
-rw-r--r--app/saml.go6
-rw-r--r--config/config.json2
-rw-r--r--i18n/de.json110
-rw-r--r--i18n/en.json12
-rw-r--r--i18n/es.json44
-rw-r--r--i18n/fr.json454
-rw-r--r--i18n/it.json374
-rw-r--r--i18n/ja.json44
-rw-r--r--i18n/ko.json110
-rw-r--r--i18n/nl.json44
-rw-r--r--i18n/pl.json172
-rw-r--r--i18n/pt-BR.json44
-rw-r--r--i18n/ru.json74
-rw-r--r--i18n/tr.json44
-rw-r--r--i18n/zh-CN.json120
-rw-r--r--i18n/zh-TW.json124
-rw-r--r--model/client4.go12
-rw-r--r--model/config.go2
-rw-r--r--model/token.go1
-rw-r--r--store/sql_oauth_store.go19
-rw-r--r--store/sql_oauth_store_test.go24
-rw-r--r--webapp/actions/emoji_actions.jsx2
-rw-r--r--webapp/actions/global_actions.jsx24
-rw-r--r--webapp/actions/post_actions.jsx71
-rw-r--r--webapp/actions/status_actions.jsx16
-rw-r--r--webapp/actions/websocket_actions.jsx15
-rw-r--r--webapp/components/add_users_to_team/add_users_to_team.jsx7
-rw-r--r--webapp/components/admin_console/push_settings.jsx4
-rw-r--r--webapp/components/admin_console/saml_settings.jsx6
-rw-r--r--webapp/components/channel_header.jsx5
-rw-r--r--webapp/components/channel_invite_modal/channel_invite_modal.jsx7
-rw-r--r--webapp/components/dot_menu/dot_menu.jsx26
-rw-r--r--webapp/components/dot_menu/index.js3
-rw-r--r--webapp/components/emoji_picker/emoji_picker.jsx102
-rw-r--r--webapp/components/emoji_picker/emoji_picker_overlay.jsx17
-rw-r--r--webapp/components/integrations/components/edit_incoming_webhook.jsx10
-rw-r--r--webapp/components/leave_team_modal.jsx1
-rw-r--r--webapp/components/markdown_image.jsx64
-rw-r--r--webapp/components/member_list_channel/member_list_channel.jsx2
-rw-r--r--webapp/components/more_direct_channels/more_direct_channels.jsx7
-rw-r--r--webapp/components/navbar.jsx2
-rw-r--r--webapp/components/pdf_preview.jsx2
-rw-r--r--webapp/components/post_view/post_body/index.js2
-rw-r--r--webapp/components/post_view/post_body_additional_content.jsx2
-rw-r--r--webapp/components/post_view/post_info/post_info.jsx3
-rw-r--r--webapp/components/post_view/post_list.jsx88
-rw-r--r--webapp/components/quick_switch_modal/quick_switch_modal.jsx2
-rw-r--r--webapp/components/rhs_comment.jsx32
-rw-r--r--webapp/components/rhs_root_post.jsx6
-rw-r--r--webapp/components/rhs_thread/index.js12
-rw-r--r--webapp/components/rhs_thread/rhs_thread.jsx17
-rw-r--r--webapp/components/search_results_item.jsx3
-rw-r--r--webapp/components/sidebar_right/sidebar_right.jsx4
-rw-r--r--webapp/components/sidebar_right_menu.jsx17
-rw-r--r--webapp/components/spinner_button.jsx6
-rw-r--r--webapp/components/team_import_tab.jsx8
-rw-r--r--webapp/components/user_profile.jsx6
-rw-r--r--webapp/i18n/de.json99
-rwxr-xr-xwebapp/i18n/en.json29
-rw-r--r--webapp/i18n/es.json61
-rw-r--r--webapp/i18n/fr.json677
-rw-r--r--webapp/i18n/it.json353
-rw-r--r--webapp/i18n/ja.json59
-rw-r--r--webapp/i18n/ko.json85
-rw-r--r--webapp/i18n/nl.json55
-rw-r--r--webapp/i18n/pl.json69
-rw-r--r--webapp/i18n/pt-BR.json61
-rw-r--r--webapp/i18n/ru.json371
-rw-r--r--webapp/i18n/tr.json75
-rw-r--r--webapp/i18n/zh-CN.json95
-rw-r--r--webapp/i18n/zh-TW.json131
-rw-r--r--webapp/package.json4
-rw-r--r--webapp/reducers/views/channel.js14
-rw-r--r--webapp/sass/components/_emoticons.scss7
-rw-r--r--webapp/sass/components/_popover.scss1
-rw-r--r--webapp/sass/components/_search.scss4
-rw-r--r--webapp/sass/components/_status-icon.scss8
-rw-r--r--webapp/sass/components/_webrtc.scss5
-rw-r--r--webapp/sass/layout/_headers.scss31
-rw-r--r--webapp/sass/layout/_navigation.scss2
-rw-r--r--webapp/sass/layout/_sidebar-left.scss14
-rw-r--r--webapp/sass/layout/_sidebar-right.scss12
-rw-r--r--webapp/sass/responsive/_desktop.scss10
-rw-r--r--webapp/sass/responsive/_mobile.scss32
-rw-r--r--webapp/sass/responsive/_tablet.scss16
-rw-r--r--webapp/utils/constants.jsx2
-rw-r--r--webapp/utils/utils.jsx13
-rw-r--r--webapp/yarn.lock8
101 files changed, 3132 insertions, 2069 deletions
diff --git a/api/file.go b/api/file.go
index 1e7c7d66d..3b49be5e0 100644
--- a/api/file.go
+++ b/api/file.go
@@ -7,6 +7,7 @@ import (
"net/http"
"net/url"
"strconv"
+ "strings"
l4g "github.com/alecthomas/log4go"
"github.com/gorilla/mux"
@@ -15,6 +16,15 @@ import (
"github.com/mattermost/platform/utils"
)
+var UNSAFE_CONTENT_TYPES = [...]string{
+ "application/javascript",
+ "application/ecmascript",
+ "text/javascript",
+ "text/ecmascript",
+ "application/x-javascript",
+ "text/html",
+}
+
func InitFile() {
l4g.Debug(utils.T("api.file.init.debug"))
@@ -282,13 +292,21 @@ func getPublicFileOld(c *Context, w http.ResponseWriter, r *http.Request) {
func writeFileResponse(filename string, contentType string, bytes []byte, w http.ResponseWriter, r *http.Request) *model.AppError {
w.Header().Set("Cache-Control", "max-age=2592000, private")
w.Header().Set("Content-Length", strconv.Itoa(len(bytes)))
+ w.Header().Set("X-Content-Type-Options", "nosniff")
- if contentType != "" {
- w.Header().Set("Content-Type", contentType)
+ if contentType == "" {
+ contentType = "application/octet-stream"
} else {
- w.Header().Del("Content-Type") // Content-Type will be set automatically by the http writer
+ for _, unsafeContentType := range UNSAFE_CONTENT_TYPES {
+ if strings.HasPrefix(contentType, unsafeContentType) {
+ contentType = "text/plain"
+ break
+ }
+ }
}
+ w.Header().Set("Content-Type", contentType)
+
w.Header().Set("Content-Disposition", "attachment;filename=\""+filename+"\"; filename*=UTF-8''"+url.QueryEscape(filename))
// prevent file links from being embedded in iframes
diff --git a/api/oauth.go b/api/oauth.go
index 84d30ee61..a239e889b 100644
--- a/api/oauth.go
+++ b/api/oauth.go
@@ -157,7 +157,7 @@ func loginWithOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- if authUrl, err := app.GetOAuthLoginEndpoint(service, teamId, model.OAUTH_ACTION_LOGIN, redirectTo, loginHint); err != nil {
+ if authUrl, err := app.GetOAuthLoginEndpoint(w, r, service, teamId, model.OAUTH_ACTION_LOGIN, redirectTo, loginHint); err != nil {
c.Err = err
return
} else {
@@ -180,7 +180,7 @@ func signupWithOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- if authUrl, err := app.GetOAuthSignupEndpoint(service, teamId); err != nil {
+ if authUrl, err := app.GetOAuthSignupEndpoint(w, r, service, teamId); err != nil {
c.Err = err
return
} else {
diff --git a/api/user.go b/api/user.go
index eb249cb39..0b2fbfba8 100644
--- a/api/user.go
+++ b/api/user.go
@@ -866,7 +866,7 @@ func emailToOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- link, err := app.SwitchEmailToOAuth(email, password, mfaToken, service)
+ link, err := app.SwitchEmailToOAuth(w, r, email, password, mfaToken, service)
if err != nil {
c.Err = err
return
diff --git a/api4/context.go b/api4/context.go
index 06eee6715..61c318266 100644
--- a/api4/context.go
+++ b/api4/context.go
@@ -355,7 +355,7 @@ func (c *Context) RequireInviteId() *Context {
return c
}
- if len(c.Params.InviteId) != 26 {
+ if len(c.Params.InviteId) == 0 {
c.SetInvalidUrlParam("invite_id")
}
return c
diff --git a/api4/file.go b/api4/file.go
index a395fff65..4b39a1812 100644
--- a/api4/file.go
+++ b/api4/file.go
@@ -7,6 +7,7 @@ import (
"net/http"
"net/url"
"strconv"
+ "strings"
l4g "github.com/alecthomas/log4go"
"github.com/mattermost/platform/app"
@@ -18,6 +19,27 @@ const (
FILE_TEAM_ID = "noteam"
)
+var UNSAFE_CONTENT_TYPES = [...]string{
+ "application/javascript",
+ "application/ecmascript",
+ "text/javascript",
+ "text/ecmascript",
+ "application/x-javascript",
+ "text/html",
+}
+
+var MEDIA_CONTENT_TYPES = [...]string{
+ "image/jpeg",
+ "image/png",
+ "image/bmp",
+ "image/gif",
+ "video/avi",
+ "video/mpeg",
+ "video/mp4",
+ "audio/mpeg",
+ "audio/wav",
+}
+
func InitFile() {
l4g.Debug(utils.T("api.file.init.debug"))
@@ -82,9 +104,9 @@ func getFile(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- toDownload, failConv := strconv.ParseBool(r.URL.Query().Get("download"))
- if failConv != nil {
- toDownload = false
+ forceDownload, convErr := strconv.ParseBool(r.URL.Query().Get("download"))
+ if convErr != nil {
+ forceDownload = false
}
info, err := app.GetFileInfo(c.Params.FileId)
@@ -105,22 +127,7 @@ func getFile(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- contentTypeToCheck := []string{"image/jpeg", "image/png", "image/bmp", "image/gif",
- "video/avi", "video/mpeg", "audio/mpeg3", "audio/wav"}
-
- contentType := http.DetectContentType(data)
- foundContentType := false
- for _, contentTypeFromList := range contentTypeToCheck {
- if contentType == contentTypeFromList && toDownload == false {
- foundContentType = true
- break
- }
- }
- if !foundContentType {
- toDownload = true
- }
-
- err = writeFileResponse(info.Name, info.MimeType, data, toDownload, w, r)
+ err = writeFileResponse(info.Name, info.MimeType, data, forceDownload, w, r)
if err != nil {
c.Err = err
return
@@ -133,9 +140,9 @@ func getFileThumbnail(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- toDownload, failConv := strconv.ParseBool(r.URL.Query().Get("download"))
- if failConv != nil {
- toDownload = false
+ forceDownload, convErr := strconv.ParseBool(r.URL.Query().Get("download"))
+ if convErr != nil {
+ forceDownload = false
}
info, err := app.GetFileInfo(c.Params.FileId)
@@ -158,7 +165,7 @@ func getFileThumbnail(c *Context, w http.ResponseWriter, r *http.Request) {
if data, err := app.ReadFile(info.ThumbnailPath); err != nil {
c.Err = err
c.Err.StatusCode = http.StatusNotFound
- } else if err := writeFileResponse(info.Name, info.MimeType, data, toDownload, w, r); err != nil {
+ } else if err := writeFileResponse(info.Name, info.MimeType, data, forceDownload, w, r); err != nil {
c.Err = err
return
}
@@ -205,9 +212,9 @@ func getFilePreview(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- toDownload, failConv := strconv.ParseBool(r.URL.Query().Get("download"))
- if failConv != nil {
- toDownload = false
+ forceDownload, convErr := strconv.ParseBool(r.URL.Query().Get("download"))
+ if convErr != nil {
+ forceDownload = false
}
info, err := app.GetFileInfo(c.Params.FileId)
@@ -230,7 +237,7 @@ func getFilePreview(c *Context, w http.ResponseWriter, r *http.Request) {
if data, err := app.ReadFile(info.PreviewPath); err != nil {
c.Err = err
c.Err.StatusCode = http.StatusNotFound
- } else if err := writeFileResponse(info.Name, info.MimeType, data, toDownload, w, r); err != nil {
+ } else if err := writeFileResponse(info.Name, info.MimeType, data, forceDownload, w, r); err != nil {
c.Err = err
return
}
@@ -298,14 +305,38 @@ func getPublicFile(c *Context, w http.ResponseWriter, r *http.Request) {
}
}
-func writeFileResponse(filename string, contentType string, bytes []byte, toDownload bool, w http.ResponseWriter, r *http.Request) *model.AppError {
+func writeFileResponse(filename string, contentType string, bytes []byte, forceDownload bool, w http.ResponseWriter, r *http.Request) *model.AppError {
w.Header().Set("Cache-Control", "max-age=2592000, private")
w.Header().Set("Content-Length", strconv.Itoa(len(bytes)))
+ w.Header().Set("X-Content-Type-Options", "nosniff")
- if contentType != "" {
- w.Header().Set("Content-Type", contentType)
+ if contentType == "" {
+ contentType = "application/octet-stream"
} else {
- w.Header().Del("Content-Type") // Content-Type will be set automatically by the http writer
+ for _, unsafeContentType := range UNSAFE_CONTENT_TYPES {
+ if strings.HasPrefix(contentType, unsafeContentType) {
+ contentType = "text/plain"
+ break
+ }
+ }
+ }
+
+ w.Header().Set("Content-Type", contentType)
+
+ var toDownload bool
+ if forceDownload {
+ toDownload = true
+ } else {
+ isMediaType := false
+
+ for _, mediaContentType := range MEDIA_CONTENT_TYPES {
+ if strings.HasPrefix(contentType, mediaContentType) {
+ isMediaType = true
+ break
+ }
+ }
+
+ toDownload = !isMediaType
}
if toDownload {
diff --git a/api4/oauth.go b/api4/oauth.go
index 402651b92..05a38d206 100644
--- a/api4/oauth.go
+++ b/api4/oauth.go
@@ -392,7 +392,9 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
code := r.URL.Query().Get("code")
if len(code) == 0 {
- c.Err = model.NewAppError("completeOAuth", "api.oauth.complete_oauth.missing_code.app_error", map[string]interface{}{"service": strings.Title(service)}, "URL: "+r.URL.String(), http.StatusBadRequest)
+ err := model.NewAppError("completeOAuth", "api.oauth.complete_oauth.missing_code.app_error", map[string]interface{}{"service": strings.Title(service)}, "URL: "+r.URL.String(), http.StatusBadRequest)
+ err.Translate(c.T)
+ http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect)
return
}
@@ -400,15 +402,19 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
uri := c.GetSiteURLHeader() + "/signup/" + service + "/complete"
- body, teamId, props, err := app.AuthorizeOAuthUser(service, code, state, uri)
+ body, teamId, props, err := app.AuthorizeOAuthUser(w, r, service, code, state, uri)
if err != nil {
- c.Err = err
+ err.Translate(c.T)
+ l4g.Error(err.Error())
+ http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect)
return
}
user, err := app.CompleteOAuth(service, body, teamId, props)
if err != nil {
- c.Err = err
+ err.Translate(c.T)
+ l4g.Error(err.Error())
+ http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect)
return
}
@@ -455,7 +461,7 @@ func loginWithOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- if authUrl, err := app.GetOAuthLoginEndpoint(c.Params.Service, teamId, model.OAUTH_ACTION_LOGIN, redirectTo, loginHint); err != nil {
+ if authUrl, err := app.GetOAuthLoginEndpoint(w, r, c.Params.Service, teamId, model.OAUTH_ACTION_LOGIN, redirectTo, loginHint); err != nil {
c.Err = err
return
} else {
@@ -475,7 +481,7 @@ func mobileLoginWithOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- if authUrl, err := app.GetOAuthLoginEndpoint(c.Params.Service, teamId, model.OAUTH_ACTION_MOBILE, "", ""); err != nil {
+ if authUrl, err := app.GetOAuthLoginEndpoint(w, r, c.Params.Service, teamId, model.OAUTH_ACTION_MOBILE, "", ""); err != nil {
c.Err = err
return
} else {
@@ -500,7 +506,7 @@ func signupWithOAuth(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- if authUrl, err := app.GetOAuthSignupEndpoint(c.Params.Service, teamId); err != nil {
+ if authUrl, err := app.GetOAuthSignupEndpoint(w, r, c.Params.Service, teamId); err != nil {
c.Err = err
return
} else {
diff --git a/api4/post.go b/api4/post.go
index 3d1077358..3d0c681d1 100644
--- a/api4/post.go
+++ b/api4/post.go
@@ -55,6 +55,8 @@ func createPost(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
+ app.SetStatusOnline(c.Session.UserId, c.Session.Id, false)
+
w.WriteHeader(http.StatusCreated)
w.Write([]byte(rp.ToJson()))
}
@@ -139,8 +141,8 @@ func getFlaggedPostsForUser(c *Context, w http.ResponseWriter, r *http.Request)
return
}
- channelId := r.URL.Query().Get("in_channel")
- teamId := r.URL.Query().Get("in_team")
+ channelId := r.URL.Query().Get("channel_id")
+ teamId := r.URL.Query().Get("team_id")
var posts *model.PostList
var err *model.AppError
diff --git a/api4/team.go b/api4/team.go
index 1cbd89481..98a672d93 100644
--- a/api4/team.go
+++ b/api4/team.go
@@ -5,7 +5,7 @@ package api4
import (
"bytes"
- "io"
+ "encoding/base64"
"net/http"
"strconv"
@@ -657,12 +657,12 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) {
}
}
- w.Header().Set("Content-Disposition", "attachment; filename=MattermostImportLog.txt")
- w.Header().Set("Content-Type", "application/octet-stream")
+ data := map[string]string{}
+ data["results"] = base64.StdEncoding.EncodeToString([]byte(log.Bytes()))
if c.Err != nil {
w.WriteHeader(c.Err.StatusCode)
}
- io.Copy(w, bytes.NewReader(log.Bytes()))
+ w.Write([]byte(model.MapToJson(data)))
}
func inviteUsersToTeam(c *Context, w http.ResponseWriter, r *http.Request) {
diff --git a/api4/team_test.go b/api4/team_test.go
index b517f67fe..421428afa 100644
--- a/api4/team_test.go
+++ b/api4/team_test.go
@@ -12,6 +12,7 @@ import (
"strings"
"testing"
+ "encoding/base64"
"github.com/mattermost/platform/app"
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils"
@@ -1345,7 +1346,12 @@ func TestImportTeam(t *testing.T) {
fileResp, resp := th.SystemAdminClient.ImportTeam(data, binary.Size(data), "slack", "Fake_Team_Import.zip", th.BasicTeam.Id)
CheckNoError(t, resp)
- fileReturned := fmt.Sprintf("%s", fileResp)
+ fileData, err := base64.StdEncoding.DecodeString(fileResp["results"])
+ if err != nil {
+ t.Fatal("failed to decode base64 results data")
+ }
+
+ fileReturned := fmt.Sprintf("%s", fileData)
if !strings.Contains(fileReturned, "darth.vader@stardeath.com") {
t.Log(fileReturned)
t.Fatal("failed to report the user was imported")
@@ -1469,7 +1475,7 @@ func TestInviteUsersToTeam(t *testing.T) {
}
func TestGetTeamInviteInfo(t *testing.T) {
- th := Setup().InitBasic()
+ th := Setup().InitBasic().InitSystemAdmin()
defer TearDown()
Client := th.Client
team := th.BasicTeam
@@ -1485,6 +1491,13 @@ func TestGetTeamInviteInfo(t *testing.T) {
t.Fatal("should be empty")
}
+ team.InviteId = "12345678901234567890123456789012"
+ team, resp = th.SystemAdminClient.UpdateTeam(team)
+ CheckNoError(t, resp)
+
+ team, resp = Client.GetTeamInviteInfo(team.InviteId)
+ CheckNoError(t, resp)
+
_, resp = Client.GetTeamInviteInfo("junk")
- CheckBadRequestStatus(t, resp)
+ CheckNotFoundStatus(t, resp)
}
diff --git a/api4/user.go b/api4/user.go
index 04faf13c4..f13c33f0b 100644
--- a/api4/user.go
+++ b/api4/user.go
@@ -1056,7 +1056,7 @@ func switchAccountType(c *Context, w http.ResponseWriter, r *http.Request) {
var err *model.AppError
if switchRequest.EmailToOAuth() {
- link, err = app.SwitchEmailToOAuth(switchRequest.Email, switchRequest.Password, switchRequest.MfaCode, switchRequest.NewService)
+ link, err = app.SwitchEmailToOAuth(w, r, switchRequest.Email, switchRequest.Password, switchRequest.MfaCode, switchRequest.NewService)
} else if switchRequest.OAuthToEmail() {
c.SessionRequired()
if c.Err != nil {
diff --git a/app/oauth.go b/app/oauth.go
index a2edae8be..e2d389569 100644
--- a/app/oauth.go
+++ b/app/oauth.go
@@ -12,6 +12,7 @@ import (
"net/http"
"net/url"
"strings"
+ "time"
l4g "github.com/alecthomas/log4go"
"github.com/mattermost/platform/einterfaces"
@@ -20,6 +21,11 @@ import (
"github.com/mattermost/platform/utils"
)
+const (
+ OAUTH_COOKIE_MAX_AGE_SECONDS = 30 * 60 // 30 minutes
+ COOKIE_OAUTH = "MMOAUTH"
+)
+
func CreateOAuthApp(app *model.OAuthApp) (*model.OAuthApp, *model.AppError) {
if !utils.Cfg.ServiceSettings.EnableOAuthServiceProvider {
return nil, model.NewAppError("CreateOAuthApp", "api.oauth.register_oauth_app.turn_off.app_error", nil, "", http.StatusNotImplemented)
@@ -56,6 +62,8 @@ func DeleteOAuthApp(appId string) *model.AppError {
return err
}
+ InvalidateAllCaches()
+
return nil
}
@@ -289,7 +297,7 @@ func newSessionUpdateToken(appName string, accessData *model.AccessData, user *m
return accessRsp, nil
}
-func GetOAuthLoginEndpoint(service, teamId, action, redirectTo, loginHint string) (string, *model.AppError) {
+func GetOAuthLoginEndpoint(w http.ResponseWriter, r *http.Request, service, teamId, action, redirectTo, loginHint string) (string, *model.AppError) {
stateProps := map[string]string{}
stateProps["action"] = action
if len(teamId) != 0 {
@@ -300,21 +308,21 @@ func GetOAuthLoginEndpoint(service, teamId, action, redirectTo, loginHint string
stateProps["redirect_to"] = redirectTo
}
- if authUrl, err := GetAuthorizationCode(service, stateProps, loginHint); err != nil {
+ if authUrl, err := GetAuthorizationCode(w, r, service, stateProps, loginHint); err != nil {
return "", err
} else {
return authUrl, nil
}
}
-func GetOAuthSignupEndpoint(service, teamId string) (string, *model.AppError) {
+func GetOAuthSignupEndpoint(w http.ResponseWriter, r *http.Request, service, teamId string) (string, *model.AppError) {
stateProps := map[string]string{}
stateProps["action"] = model.OAUTH_ACTION_SIGNUP
if len(teamId) != 0 {
stateProps["team_id"] = teamId
}
- if authUrl, err := GetAuthorizationCode(service, stateProps, ""); err != nil {
+ if authUrl, err := GetAuthorizationCode(w, r, service, stateProps, ""); err != nil {
return "", err
} else {
return authUrl, nil
@@ -519,17 +527,69 @@ func CompleteSwitchWithOAuth(service string, userData io.ReadCloser, email strin
return user, nil
}
-func GetAuthorizationCode(service string, props map[string]string, loginHint string) (string, *model.AppError) {
+func CreateOAuthStateToken(extra string) (*model.Token, *model.AppError) {
+ token := model.NewToken(model.TOKEN_TYPE_OAUTH, extra)
+
+ if result := <-Srv.Store.Token().Save(token); result.Err != nil {
+ return nil, result.Err
+ }
+
+ return token, nil
+}
+
+func GetOAuthStateToken(token string) (*model.Token, *model.AppError) {
+ if result := <-Srv.Store.Token().GetByToken(token); result.Err != nil {
+ return nil, model.NewAppError("GetOAuthStateToken", "api.oauth.invalid_state_token.app_error", nil, result.Err.Error(), http.StatusBadRequest)
+ } else {
+ token := result.Data.(*model.Token)
+ if token.Type != model.TOKEN_TYPE_OAUTH {
+ return nil, model.NewAppError("GetOAuthStateToken", "api.oauth.invalid_state_token.app_error", nil, "", http.StatusBadRequest)
+ }
+
+ return token, nil
+ }
+}
+
+func generateOAuthStateTokenExtra(email, action, cookie string) string {
+ return email + ":" + action + ":" + cookie
+}
+
+func GetAuthorizationCode(w http.ResponseWriter, r *http.Request, service string, props map[string]string, loginHint string) (string, *model.AppError) {
sso := utils.Cfg.GetSSOService(service)
if sso != nil && !sso.Enable {
return "", model.NewAppError("GetAuthorizationCode", "api.user.get_authorization_code.unsupported.app_error", nil, "service="+service, http.StatusNotImplemented)
}
+ secure := false
+ if GetProtocol(r) == "https" {
+ secure = true
+ }
+
+ cookieValue := model.NewId()
+ expiresAt := time.Unix(model.GetMillis()/1000+int64(OAUTH_COOKIE_MAX_AGE_SECONDS), 0)
+ oauthCookie := &http.Cookie{
+ Name: COOKIE_OAUTH,
+ Value: cookieValue,
+ Path: "/",
+ MaxAge: OAUTH_COOKIE_MAX_AGE_SECONDS,
+ Expires: expiresAt,
+ HttpOnly: true,
+ Secure: secure,
+ }
+
+ http.SetCookie(w, oauthCookie)
+
clientId := sso.Id
endpoint := sso.AuthEndpoint
scope := sso.Scope
- props["hash"] = utils.HashSha256(clientId)
+ tokenExtra := generateOAuthStateTokenExtra(props["email"], props["action"], cookieValue)
+ stateToken, err := CreateOAuthStateToken(tokenExtra)
+ if err != nil {
+ return "", err
+ }
+
+ props["token"] = stateToken.Token
state := b64.StdEncoding.EncodeToString([]byte(model.MapToJson(props)))
redirectUri := utils.GetSiteURL() + "/signup/" + service + "/complete"
@@ -547,7 +607,7 @@ func GetAuthorizationCode(service string, props map[string]string, loginHint str
return authUrl, nil
}
-func AuthorizeOAuthUser(service, code, state, redirectUri string) (io.ReadCloser, string, map[string]string, *model.AppError) {
+func AuthorizeOAuthUser(w http.ResponseWriter, r *http.Request, service, code, state, redirectUri string) (io.ReadCloser, string, map[string]string, *model.AppError) {
sso := utils.Cfg.GetSSOService(service)
if sso == nil || !sso.Enable {
return nil, "", nil, model.NewLocAppError("AuthorizeOAuthUser", "api.user.authorize_oauth_user.unsupported.app_error", nil, "service="+service)
@@ -562,10 +622,41 @@ func AuthorizeOAuthUser(service, code, state, redirectUri string) (io.ReadCloser
stateProps := model.MapFromJson(strings.NewReader(stateStr))
- if stateProps["hash"] != utils.HashSha256(sso.Id) {
- return nil, "", nil, model.NewLocAppError("AuthorizeOAuthUser", "api.user.authorize_oauth_user.invalid_state.app_error", nil, "")
+ expectedToken, err := GetOAuthStateToken(stateProps["token"])
+ if err != nil {
+ return nil, "", nil, err
+ }
+
+ stateEmail := stateProps["email"]
+ stateAction := stateProps["action"]
+ if stateAction == model.OAUTH_ACTION_EMAIL_TO_SSO && stateEmail == "" {
+ return nil, "", nil, model.NewAppError("AuthorizeOAuthUser", "api.user.authorize_oauth_user.invalid_state.app_error", nil, "", http.StatusBadRequest)
}
+ cookieValue := ""
+ if cookie, err := r.Cookie(COOKIE_OAUTH); err != nil {
+ return nil, "", nil, model.NewAppError("AuthorizeOAuthUser", "api.user.authorize_oauth_user.invalid_state.app_error", nil, "", http.StatusBadRequest)
+ } else {
+ cookieValue = cookie.Value
+ }
+
+ expectedTokenExtra := generateOAuthStateTokenExtra(stateEmail, stateAction, cookieValue)
+ if expectedTokenExtra != expectedToken.Extra {
+ return nil, "", nil, model.NewAppError("AuthorizeOAuthUser", "api.user.authorize_oauth_user.invalid_state.app_error", nil, "", http.StatusBadRequest)
+ }
+
+ DeleteToken(expectedToken)
+
+ cookie := &http.Cookie{
+ Name: COOKIE_OAUTH,
+ Value: "",
+ Path: "/",
+ MaxAge: -1,
+ HttpOnly: true,
+ }
+
+ http.SetCookie(w, cookie)
+
teamId := stateProps["team_id"]
p := url.Values{}
@@ -617,7 +708,7 @@ func AuthorizeOAuthUser(service, code, state, redirectUri string) (io.ReadCloser
}
-func SwitchEmailToOAuth(email, password, code, service string) (string, *model.AppError) {
+func SwitchEmailToOAuth(w http.ResponseWriter, r *http.Request, email, password, code, service string) (string, *model.AppError) {
var user *model.User
var err *model.AppError
if user, err = GetUserByEmail(email); err != nil {
@@ -635,7 +726,7 @@ func SwitchEmailToOAuth(email, password, code, service string) (string, *model.A
if service == model.USER_AUTH_SERVICE_SAML {
return utils.GetSiteURL() + "/login/sso/saml?action=" + model.OAUTH_ACTION_EMAIL_TO_SSO + "&email=" + email, nil
} else {
- if authUrl, err := GetAuthorizationCode(service, stateProps, ""); err != nil {
+ if authUrl, err := GetAuthorizationCode(w, r, service, stateProps, ""); err != nil {
return "", err
} else {
return authUrl, nil
diff --git a/app/oauth_test.go b/app/oauth_test.go
index 9e8fdfc7d..185f5d73f 100644
--- a/app/oauth_test.go
+++ b/app/oauth_test.go
@@ -7,6 +7,7 @@ import (
"testing"
"github.com/mattermost/platform/model"
+ "github.com/mattermost/platform/utils"
)
func TestOAuthRevokeAccessToken(t *testing.T) {
@@ -42,3 +43,54 @@ func TestOAuthRevokeAccessToken(t *testing.T) {
t.Fatal(err)
}
}
+
+func TestOAuthDeleteApp(t *testing.T) {
+ Setup()
+
+ oldSetting := utils.Cfg.ServiceSettings.EnableOAuthServiceProvider
+ defer func() {
+ utils.Cfg.ServiceSettings.EnableOAuthServiceProvider = oldSetting
+ }()
+ utils.Cfg.ServiceSettings.EnableOAuthServiceProvider = true
+
+ a1 := &model.OAuthApp{}
+ a1.CreatorId = model.NewId()
+ a1.Name = "TestApp" + model.NewId()
+ a1.CallbackUrls = []string{"https://nowhere.com"}
+ a1.Homepage = "https://nowhere.com"
+
+ var err *model.AppError
+ a1, err = CreateOAuthApp(a1)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ session := &model.Session{}
+ session.CreateAt = model.GetMillis()
+ session.UserId = model.NewId()
+ session.Token = model.NewId()
+ session.Roles = model.ROLE_SYSTEM_USER.Id
+ session.IsOAuth = true
+ session.SetExpireInDays(1)
+
+ session, _ = CreateSession(session)
+
+ accessData := &model.AccessData{}
+ accessData.Token = session.Token
+ accessData.UserId = session.UserId
+ accessData.RedirectUri = "http://example.com"
+ accessData.ClientId = a1.Id
+ accessData.ExpiresAt = session.ExpiresAt
+
+ if result := <-Srv.Store.OAuth().SaveAccessData(accessData); result.Err != nil {
+ t.Fatal(result.Err)
+ }
+
+ if err := DeleteOAuthApp(a1.Id); err != nil {
+ t.Fatal(err)
+ }
+
+ if _, err := GetSession(session.Token); err == nil {
+ t.Fatal("should not get session from cache or db")
+ }
+}
diff --git a/app/post.go b/app/post.go
index d9e08c864..7ad072943 100644
--- a/app/post.go
+++ b/app/post.go
@@ -227,19 +227,19 @@ func SendEphemeralPost(teamId, userId string, post *model.Post) *model.Post {
}
func UpdatePost(post *model.Post, safeUpdate bool) (*model.Post, *model.AppError) {
- if utils.IsLicensed {
- if *utils.Cfg.ServiceSettings.AllowEditPost == model.ALLOW_EDIT_POST_NEVER {
- err := model.NewAppError("UpdatePost", "api.post.update_post.permissions_denied.app_error", nil, "", http.StatusForbidden)
- return nil, err
- }
- }
-
var oldPost *model.Post
if result := <-Srv.Store.Post().Get(post.Id); result.Err != nil {
return nil, result.Err
} else {
oldPost = result.Data.(*model.PostList).Posts[post.Id]
+ if utils.IsLicensed {
+ if *utils.Cfg.ServiceSettings.AllowEditPost == model.ALLOW_EDIT_POST_NEVER && post.Message != oldPost.Message {
+ err := model.NewAppError("UpdatePost", "api.post.update_post.permissions_denied.app_error", nil, "", http.StatusForbidden)
+ return nil, err
+ }
+ }
+
if oldPost == nil {
err := model.NewAppError("UpdatePost", "api.post.update_post.find.app_error", nil, "id="+post.Id, http.StatusBadRequest)
return nil, err
@@ -256,7 +256,7 @@ func UpdatePost(post *model.Post, safeUpdate bool) (*model.Post, *model.AppError
}
if utils.IsLicensed {
- if *utils.Cfg.ServiceSettings.AllowEditPost == model.ALLOW_EDIT_POST_TIME_LIMIT && model.GetMillis() > oldPost.CreateAt+int64(*utils.Cfg.ServiceSettings.PostEditTimeLimit*1000) {
+ if *utils.Cfg.ServiceSettings.AllowEditPost == model.ALLOW_EDIT_POST_TIME_LIMIT && model.GetMillis() > oldPost.CreateAt+int64(*utils.Cfg.ServiceSettings.PostEditTimeLimit*1000) && post.Message != oldPost.Message {
err := model.NewAppError("UpdatePost", "api.post.update_post.permissions_time_limit.app_error", map[string]interface{}{"timeLimit": *utils.Cfg.ServiceSettings.PostEditTimeLimit}, "", http.StatusBadRequest)
return nil, err
}
diff --git a/app/saml.go b/app/saml.go
index 730e29efc..e5d1e8b3e 100644
--- a/app/saml.go
+++ b/app/saml.go
@@ -68,7 +68,6 @@ func AddSamlPublicCertificate(fileData *multipart.FileHeader) *model.AppError {
}
utils.SaveConfig(utils.CfgFileName, cfg)
- utils.LoadConfig(utils.CfgFileName)
return nil
}
@@ -88,7 +87,6 @@ func AddSamlPrivateCertificate(fileData *multipart.FileHeader) *model.AppError {
}
utils.SaveConfig(utils.CfgFileName, cfg)
- utils.LoadConfig(utils.CfgFileName)
return nil
}
@@ -108,7 +106,6 @@ func AddSamlIdpCertificate(fileData *multipart.FileHeader) *model.AppError {
}
utils.SaveConfig(utils.CfgFileName, cfg)
- utils.LoadConfig(utils.CfgFileName)
return nil
}
@@ -144,7 +141,6 @@ func RemoveSamlPublicCertificate() *model.AppError {
}
utils.SaveConfig(utils.CfgFileName, cfg)
- utils.LoadConfig(utils.CfgFileName)
return nil
}
@@ -165,7 +161,6 @@ func RemoveSamlPrivateCertificate() *model.AppError {
}
utils.SaveConfig(utils.CfgFileName, cfg)
- utils.LoadConfig(utils.CfgFileName)
return nil
}
@@ -186,7 +181,6 @@ func RemoveSamlIdpCertificate() *model.AppError {
}
utils.SaveConfig(utils.CfgFileName, cfg)
- utils.LoadConfig(utils.CfgFileName)
return nil
}
diff --git a/config/config.json b/config/config.json
index 56bd3d9fa..6bcae680c 100644
--- a/config/config.json
+++ b/config/config.json
@@ -38,7 +38,7 @@
"WebsocketPort": 80,
"WebserverMode": "gzip",
"EnableCustomEmoji": false,
- "EnableEmojiPicker": false,
+ "EnableEmojiPicker": true,
"RestrictCustomEmojiCreation": "all",
"RestrictPostDelete": "all",
"AllowEditPost": "always",
diff --git a/i18n/de.json b/i18n/de.json
index d7d9f8528..83fcf0344 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -429,7 +429,7 @@
},
{
"id": "api.command.execute_command.not_found.app_error",
- "translation": "Command with a trigger of '{{.Trigger}}' not found. To send a message beginning with \"/\", try adding an empty space at the beginning of the message."
+ "translation": "Befehl mit dem Auslösewort '{{.Trigger}}' nicht gefunden. Um eine Nachricht mit \"/\" beginnend zu senden, versuchen Sie ein Leerzeichen vor der Nachricht zu setzen."
},
{
"id": "api.command.execute_command.save.app_error",
@@ -461,7 +461,7 @@
},
{
"id": "api.command.invite_people.invite_off",
- "translation": "User creation has been disabled on this server, no invite(s) sent"
+ "translation": "Benutzererstellung wurde auf diesem Server deaktiviert, keine Einladung(en) versendet"
},
{
"id": "api.command.invite_people.name",
@@ -501,11 +501,11 @@
},
{
"id": "api.command_channel_header.channel.app_error",
- "translation": "Error to retrieve the current channel."
+ "translation": "Fehler beim Laden des aktuellen Kanals."
},
{
"id": "api.command_channel_header.desc",
- "translation": "Edit the channel header"
+ "translation": "Kanalüberschrift bearbeiten"
},
{
"id": "api.command_channel_header.hint",
@@ -513,23 +513,23 @@
},
{
"id": "api.command_channel_header.message.app_error",
- "translation": "Text must be provided with the /header command."
+ "translation": "Der Befehl /überschrift muss Text beinhalten"
},
{
"id": "api.command_channel_header.name",
- "translation": "header"
+ "translation": "überschrift"
},
{
"id": "api.command_channel_header.permission.app_error",
- "translation": "You do not have the appropriate permissions to edit the channel header."
+ "translation": "Sie haben nicht die benötigten Berechtigungen, um die Kanalüberschrift zu bearbeiten."
},
{
"id": "api.command_channel_header.update_channel.app_error",
- "translation": "Error to update the current channel."
+ "translation": "Fehler beim Aktualisieren des aktuellen Kanals."
},
{
"id": "api.command_channel_header.update_channel.success",
- "translation": "Channel header successfully updated."
+ "translation": "Kanalüberschrift erfolgreich aktualisiert."
},
{
"id": "api.command_collapse.desc",
@@ -589,11 +589,11 @@
},
{
"id": "api.command_help.desc",
- "translation": "Open the Mattermost help page"
+ "translation": "Die Mattermost-Hilfeseite öffnen"
},
{
"id": "api.command_help.name",
- "translation": "help"
+ "translation": "hilfe"
},
{
"id": "api.command_join.desc",
@@ -705,19 +705,35 @@
},
{
"id": "api.command_open.name",
- "translation": "open"
+ "translation": "öffnen"
+ },
+ {
+ "id": "api.command_search.desc",
+ "translation": "Nach Text in Nachrichten suchen"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[text]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "suche"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "Der Suchbefehl wird auf Ihrem Gerät nicht unterstützt"
},
{
"id": "api.command_settings.desc",
- "translation": "Open the Account Settings dialog"
+ "translation": "Öffnet die Kontoeinstellungen"
},
{
"id": "api.command_settings.name",
- "translation": "settings"
+ "translation": "einstellungen"
},
{
"id": "api.command_settings.unsupported.app_error",
- "translation": "The settings command is not supported on your device"
+ "translation": "Der Einstellungen-Befehl wird auf Ihrem Gerät nicht unterstützt"
},
{
"id": "api.command_shortcuts.browser.channel_next",
@@ -960,6 +976,10 @@
"translation": "Ein unbekannter Fehler ist aufgetreten. Bitte kontaktieren Sie den Support."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "Die API-Version 3 wurde auf diesem Server deaktiviert. Bitte verwenden Sie API-Version 4. Details unter https://api.mattermost.com."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Initialisiere veraltete API-Routen"
},
@@ -1490,6 +1510,10 @@
"translation": "Initialisiere OAuth-API-Routen"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Ungültiges Status-Token"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Ungültige Berechtigungen um den OAuth2 App Schlüssel neu zu generieren"
},
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
+ "translation": "Konnte Direktkanal nicht erstellen"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Konnte Gruppenkanal nicht erstellen"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3041,15 +3057,23 @@
},
{
"id": "app.import.import_direct_channel.update_header_failed.error",
- "translation": "Failed to update direct channel header"
+ "translation": "Konnte Direktkanalüberschrift nicht aktualisieren"
},
{
"id": "app.import.import_direct_post.channel_member_not_found.error",
"translation": "Konnte Kanalmitglied beim Import des Direktnachrichtenkanals nicht finden"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Konnte Direktkanal nicht erstellen"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Konnte Gruppenkanal nicht erstellen"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
- "translation": "Post user does not exist"
+ "translation": "Benutzer der Nachricht existiert nicht"
},
{
"id": "app.import.import_line.null_channel.error",
@@ -3057,11 +3081,11 @@
},
{
"id": "app.import.import_line.null_direct_channel.error",
- "translation": "Importdatenzeile hat den Typ \"channel\", aber das Kanalobjekt ist null."
+ "translation": "Importdatenzeile hat den Typ \"direct_channel\", aber das direct_channel-Objekt ist null."
},
{
"id": "app.import.import_line.null_direct_post.error",
- "translation": "Importdatenzeile hat den Typ \"post\", aber das Nachrichtenobjekt ist null."
+ "translation": "Importdatenzeile hat den Typ \"direct_post\", aber das direct_post-Objekt ist null."
},
{
"id": "app.import.import_line.null_post.error",
@@ -3137,51 +3161,51 @@
},
{
"id": "app.import.validate_direct_channel_import_data.header_length.error",
- "translation": "Direct channel header is too long"
+ "translation": "Direktkanal-Überschrift ist zu lang"
},
{
"id": "app.import.validate_direct_channel_import_data.members_required.error",
- "translation": "Fehlende erforderliche Kanaleigenschaft: name"
+ "translation": "Fehlende erforderliche Kanaleigenschaft: members"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_few.error",
- "translation": "Direct channel members list contains too few items"
+ "translation": "Direktkanalmitgliederliste enthält zu wenige Einträge"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_many.error",
- "translation": "Direct channel members list contains too many items"
+ "translation": "Direktkanalmitgliederliste enthält zu viele Einträge"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_required.error",
- "translation": "Fehlende erforderliche Nachrichteigenschaft: create_at."
+ "translation": "Fehlende erforderliche Nachrichteigenschaft: channel_members"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_few.error",
- "translation": "Direct post channel members list contains too few items"
+ "translation": "Direktnachrichtenkanalmitgliederliste enthält zu wenige Einträge"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_many.error",
- "translation": "Direct post channel members list contains too many items"
+ "translation": "Direktnachrichtenkanalmitgliederliste enthält zu viele Einträge"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_missing.error",
- "translation": "Fehlende erforderliche Nachrichteigenschaft: create_at."
+ "translation": "Fehlende erforderliche Nachrichteigenschaft: create_at"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_zero.error",
- "translation": "CreateAt must be greater than 0"
+ "translation": "CreateAt muss größer als 0 sein"
},
{
"id": "app.import.validate_direct_post_import_data.message_length.error",
- "translation": "Message is too long"
+ "translation": "Nachricht ist zu lang"
},
{
"id": "app.import.validate_direct_post_import_data.message_missing.error",
- "translation": "Fehlende erforderliche Nachrichteigenschaft: Message."
+ "translation": "Fehlende erforderliche Nachrichteigenschaft: message"
},
{
"id": "app.import.validate_direct_post_import_data.user_missing.error",
- "translation": "Fehlende erforderliche Nachrichteigenschaft: User."
+ "translation": "Fehlende erforderliche Nachrichteigenschaft: user"
},
{
"id": "app.import.validate_post_import_data.channel_missing.error",
@@ -4313,7 +4337,7 @@
},
{
"id": "model.config.is_valid.teammate_name_display.app_error",
- "translation": "Invalid teammate display. Must be 'full_name', 'nickname_full_name' or 'username'"
+ "translation": "Ungültige Teammitgliedsanzeige. Muss entweder 'full_name', 'nickname_full_name' oder 'username' sein"
},
{
"id": "model.config.is_valid.time_between_user_typing.app_error",
@@ -5869,7 +5893,7 @@
},
{
"id": "store.sql_user.get_new_users.app_error",
- "translation": "Es trat ein Fehler beim Sichen der Einstellungen auf"
+ "translation": "Es trat ein Fehler beim Suchen der neuen Benutzer auf"
},
{
"id": "store.sql_user.get_profiles.app_error",
diff --git a/i18n/en.json b/i18n/en.json
index 1225ee824..0ba3194fa 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -912,10 +912,6 @@
"translation": "Sorry, we could not find the page."
},
{
- "id": "api.context.v3_disabled.app_error",
- "translation": "API version 3 has been disabled on this server. Please use API version 4. See https://api.mattermost.com for details."
- },
- {
"id": "api.context.invalid_body_param.app_error",
"translation": "Invalid or missing {{.Name}} in request body"
},
@@ -980,6 +976,10 @@
"translation": "An unknown error has occurred. Please contact support."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API version 3 has been disabled on this server. Please use API version 4. See https://api.mattermost.com for details."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Initializing deprecated API routes"
},
@@ -1510,6 +1510,10 @@
"translation": "Initializing OAuth API routes"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Invalid state token"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Invalid permissions to regenerate the OAuth2 App Secret"
},
diff --git a/i18n/es.json b/i18n/es.json
index 801565c52..e32abcdb1 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -708,6 +708,22 @@
"translation": "abrir"
},
{
+ "id": "api.command_search.desc",
+ "translation": "Buscar texto en mensajes"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[texto]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "buscar"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "El comando de búsqueda no es compatible con tu dispositivo"
+ },
+ {
"id": "api.command_settings.desc",
"translation": "Abrir el diálogo Configuración de la Cuenta"
},
@@ -960,6 +976,10 @@
"translation": "Ocurrió un error inesperado. Por favor contacta a soporte."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API versión 3 ha sido inhabilitado en este servidor. Por favor utiliza la API versión 4. Revisa https://api.mattermost.com para más información. "
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Inicializando rutas del API marcadas como obsoletas"
},
@@ -1490,6 +1510,10 @@
"translation": "Inicializando rutas del API para el OAuth"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Estado de token no válido"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Permisos inapropiados para regenerar el secreto de la App de OAuth2"
},
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "No se pudo obtener el canal directo"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "No se pudo obtener el canal directo"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "No se pudo obtener el canal de grupo"
+ "translation": "No se pudo crear el canal directo"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "No se pudo obtener el canal de grupo"
+ "translation": "No se pudo crear el canal de grupo"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "No se pudo encontrar a los miembros del canal, al importar un mensaje en el canal directo"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "No se pudo obtener el canal directo"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "No se pudo obtener el canal de grupo"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "El usuario que publicó el mensaje no existe"
},
diff --git a/i18n/fr.json b/i18n/fr.json
index c4fcf4a51..55f288749 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -221,7 +221,7 @@
},
{
"id": "api.channel.create_direct_channel.invalid_user.app_error",
- "translation": "ID utilisateur invalide pour la création directe du canal"
+ "translation": "ID utilisateur invalide pour la création du canal de messages privés"
},
{
"id": "api.channel.create_group.bad_size.app_error",
@@ -429,7 +429,7 @@
},
{
"id": "api.command.execute_command.not_found.app_error",
- "translation": "Command with a trigger of '{{.Trigger}}' not found. To send a message beginning with \"/\", try adding an empty space at the beginning of the message."
+ "translation": "Une commande avec le mot-clé déclencheur '{{.Trigger}}' n'a pas pu être trouvée. Pour envoyer un message commençant par \"/\", ajoutez un espace au début du message."
},
{
"id": "api.command.execute_command.save.app_error",
@@ -461,7 +461,7 @@
},
{
"id": "api.command.invite_people.invite_off",
- "translation": "User creation has been disabled on this server, no invite(s) sent"
+ "translation": "La création d'utilisateur a été désactivée sur ce serveur, aucune invitation n'a été envoyée"
},
{
"id": "api.command.invite_people.name",
@@ -501,35 +501,35 @@
},
{
"id": "api.command_channel_header.channel.app_error",
- "translation": "Error to retrieve the current channel."
+ "translation": "Impossible de récupérer le canal courant."
},
{
"id": "api.command_channel_header.desc",
- "translation": "Edit the channel header"
+ "translation": "Editer l'entête du canal"
},
{
"id": "api.command_channel_header.hint",
- "translation": "[text]"
+ "translation": "[texte]"
},
{
"id": "api.command_channel_header.message.app_error",
- "translation": "Text must be provided with the /header command."
+ "translation": "Du texte doit être fourni avec la commande /header."
},
{
"id": "api.command_channel_header.name",
- "translation": "header"
+ "translation": "entête"
},
{
"id": "api.command_channel_header.permission.app_error",
- "translation": "You do not have the appropriate permissions to edit the channel header."
+ "translation": "Vous ne disposez pas des permissions requises pour éditer l'entête du canal."
},
{
"id": "api.command_channel_header.update_channel.app_error",
- "translation": "Error to update the current channel."
+ "translation": "Une erreur s'est produite lors de la mise à jour du canal."
},
{
"id": "api.command_channel_header.update_channel.success",
- "translation": "Channel header successfully updated."
+ "translation": "L'entête du canal a été mis à jour avec succès."
},
{
"id": "api.command_collapse.desc",
@@ -589,11 +589,11 @@
},
{
"id": "api.command_help.desc",
- "translation": "Open the Mattermost help page"
+ "translation": "Ouvrir l'aide de Mattermost"
},
{
"id": "api.command_help.name",
- "translation": "help"
+ "translation": "aide"
},
{
"id": "api.command_join.desc",
@@ -613,7 +613,7 @@
},
{
"id": "api.command_join.missing.app_error",
- "translation": "Nous n'avons pas pu trouver le canal"
+ "translation": "Impossible de trouver le canal"
},
{
"id": "api.command_join.name",
@@ -705,19 +705,35 @@
},
{
"id": "api.command_open.name",
- "translation": "open"
+ "translation": "ouvrir"
+ },
+ {
+ "id": "api.command_search.desc",
+ "translation": "Rechercher du texte dans les messages"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[texte]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "rechercher"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "La commande de recherche n'est pas supportée sur votre périphérique"
},
{
"id": "api.command_settings.desc",
- "translation": "Open the Account Settings dialog"
+ "translation": "Ouvrir la page des Paramètres du compte"
},
{
"id": "api.command_settings.name",
- "translation": "settings"
+ "translation": "paramètres"
},
{
"id": "api.command_settings.unsupported.app_error",
- "translation": "The settings command is not supported on your device"
+ "translation": "La commande de paramètres n'est pas supportée sur votre périphérique"
},
{
"id": "api.command_shortcuts.browser.channel_next",
@@ -797,7 +813,7 @@
},
{
"id": "api.command_shortcuts.msgs.comp_emoji",
- "translation": ":[caractère]+TAB: Saisi automatiquement l'émoticône commencant par [caractère]\n\n"
+ "translation": ":[caractère]+TAB: Saisi automatiquement l'émoticône commençant par [caractère]\n\n"
},
{
"id": "api.command_shortcuts.msgs.comp_username",
@@ -960,6 +976,10 @@
"translation": "Une erreur inconnue est survenue. Veuillez contacter le support."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "La version 3 de l'API a été désactivée sur ce serveur. Veuillez utilisez la version 4 de l'API. Référez-vous à https://api.mattermost.com pour plus de détails."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Initialisation des routes dépréciées de l'API"
},
@@ -977,11 +997,11 @@
},
{
"id": "api.email_batching.check_pending_emails.status.app_error",
- "translation": "Impossible de trouver le statut du destinataire pour l'envoi par lot des notifications par e-mail"
+ "translation": "Impossible de trouver le statut du destinataire pour l'envoi par lot des e-mails de notification"
},
{
"id": "api.email_batching.render_batched_post.channel.app_error",
- "translation": "Impossible de trouver le canal du message pour l'envoi par lot des notifications par e-mail"
+ "translation": "Impossible de trouver le canal du message pour l'envoi par lot des e-mails de notification"
},
{
"id": "api.email_batching.render_batched_post.date",
@@ -1001,7 +1021,7 @@
},
{
"id": "api.email_batching.render_batched_post.sender.app_error",
- "translation": "Impossible de trouver l’expéditeur du message pour l'envoi d'e-mails groupés"
+ "translation": "Impossible de trouver l’expéditeur du message pour l'envoi par lot d'e-mails de notification"
},
{
"id": "api.email_batching.send_batched_email_notification.body_text",
@@ -1012,11 +1032,11 @@
},
{
"id": "api.email_batching.send_batched_email_notification.preferences.app_error",
- "translation": "Impossible de trouver les préférences d'affichage du destinataire pour l'envoi de e-mails groupés"
+ "translation": "Impossible de trouver les préférences d'affichage du destinataire pour l'envoi par lot d'e-mails de notification"
},
{
"id": "api.email_batching.send_batched_email_notification.send.app_error",
- "translation": "Impossible d'envoyer l'e-mail groupé à %v : %v"
+ "translation": "Impossible d'envoyer le lot d'e-mails de notification à %v : %v"
},
{
"id": "api.email_batching.send_batched_email_notification.subject",
@@ -1027,7 +1047,7 @@
},
{
"id": "api.email_batching.send_batched_email_notification.user.app_error",
- "translation": "Impossible de trouver un destinataire pour l'envoi d'e-mails groupés"
+ "translation": "Impossible de trouver un destinataire pour l'envoi du lot d'e-mails de notification"
},
{
"id": "api.email_batching.start.starting",
@@ -1490,6 +1510,10 @@
"translation": "Initialisation des routes de l'API OAuth"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Token d'état invalide"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Permissions insuffisantes pour regénérer la clé secrète de l'application OAuth2"
},
@@ -1689,11 +1713,11 @@
},
{
"id": "api.post.send_notifications_and_forget.push_image_only",
- "translation": " Un ou plusieurs fichiers envoyés "
+ "translation": " A envoyé un ou plusieurs fichiers sur "
},
{
"id": "api.post.send_notifications_and_forget.push_image_only_dm",
- "translation": " Uploaded one or more files in a direct message"
+ "translation": " A envoyé un ou plusieurs fichiers dans un message privé"
},
{
"id": "api.post.send_notifications_and_forget.push_in",
@@ -1725,7 +1749,7 @@
},
{
"id": "api.post.update_post.find.app_error",
- "translation": "Nous n'avons pas pu trouver de message existant ou de commentaire à mettre à jour."
+ "translation": "Impossible de trouver le message existant ou commentaire à mettre à jour."
},
{
"id": "api.post.update_post.permissions.app_error",
@@ -2125,7 +2149,7 @@
},
{
"id": "api.team.invite_members.invalid_email.app_error",
- "translation": "The following email addresses do not belong to an accepted domain: {{.Addresses}}. Please contact your System Administrator for details."
+ "translation": "Les adresses e-mail suivantes ne font pas partie d'un domaine accepté : {{.Addresses}}. Veuillez contacter votre administrateur système pour plus de détails."
},
{
"id": "api.team.invite_members.member",
@@ -2585,7 +2609,7 @@
},
{
"id": "api.user.email_to_ldap.not_available.app_error",
- "translation": "LDAP n'est pas disponible sur ce serveur"
+ "translation": "AD/LDAP n'est pas disponible sur ce serveur"
},
{
"id": "api.user.generate_mfa_qr.not_available.app_error",
@@ -2605,11 +2629,11 @@
},
{
"id": "api.user.ldap_to_email.not_available.app_error",
- "translation": "LDAP n'est pas disponible sur ce serveur"
+ "translation": "AD/LDAP n'est pas disponible sur ce serveur"
},
{
"id": "api.user.ldap_to_email.not_ldap_account.app_error",
- "translation": "Ce compte utilisateur n'utilise pas LDAP"
+ "translation": "Ce compte utilisateur n'utilise pas AD/LDAP"
},
{
"id": "api.user.login.blank_pwd.app_error",
@@ -2653,7 +2677,7 @@
},
{
"id": "api.user.login_ldap.disabled.app_error",
- "translation": "LDAP n'est pas activé sur ce serveur"
+ "translation": "AD/LDAP n'est pas activé sur ce serveur"
},
{
"id": "api.user.login_ldap.need_id.app_error",
@@ -2661,7 +2685,7 @@
},
{
"id": "api.user.login_ldap.not_available.app_error",
- "translation": "LDAP n'est pas disponible sur ce serveur"
+ "translation": "AD/LDAP n'est pas disponible sur ce serveur"
},
{
"id": "api.user.oauth_to_email.context.app_error",
@@ -2709,7 +2733,7 @@
},
{
"id": "api.user.send_email_change_username_and_forget.error",
- "translation": "Impossible d'envoyer l'e-mail de changement de nom d'utilisateur"
+ "translation": "Impossible d'envoyer l'e-mail de notification de changement de nom d'utilisateur"
},
{
"id": "api.user.send_email_change_verify_email_and_forget.error",
@@ -2745,7 +2769,7 @@
},
{
"id": "api.user.update_active.no_deactivate_ldap.app_error",
- "translation": "Vous ne pouvez pas modifier le statut actif des comptes LDAP. Veuillez désactiver ce compte dans votre serveur LDAP."
+ "translation": "Vous ne pouvez pas modifier le statut actif des comptes AD/LDAP. Veuillez désactiver ce compte dans votre serveur AD/LDAP."
},
{
"id": "api.user.update_active.permissions.app_error",
@@ -3021,35 +3045,35 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
+ "translation": "Impossible de créer le canal de messages privés"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Impossible de créer le canal de groupe"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
- "translation": "Could not find channel member when importing direct channel"
+ "translation": "Impossible de trouver le membre du canal lors de l'import du canal de messages privés"
},
{
"id": "app.import.import_direct_channel.update_header_failed.error",
- "translation": "Failed to update direct channel header"
+ "translation": "Impossible de mettre à jour l'entête du canal de messages privés"
},
{
"id": "app.import.import_direct_post.channel_member_not_found.error",
- "translation": "Could not find channel member when importing direct channel post"
+ "translation": "Impossible de trouver le membre du canal lors de l'import du message du canal de messages privés"
+ },
+ {
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Impossible de récupérer le canal de messages directs"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Impossible de récupérer le canal de messages de groupe"
},
{
"id": "app.import.import_direct_post.user_not_found.error",
- "translation": "Post user does not exist"
+ "translation": "Le message de l'utilisateur n'existe pas"
},
{
"id": "app.import.import_line.null_channel.error",
@@ -3057,11 +3081,11 @@
},
{
"id": "app.import.import_line.null_direct_channel.error",
- "translation": "La ligne de données importée dispose d'un type \"channel\", mais l'objet channel est null."
+ "translation": "La ligne de données importée dispose d'un type \"direct_channel\", mais l'objet direct_channel est null."
},
{
"id": "app.import.import_line.null_direct_post.error",
- "translation": "La ligne de données importée dispose d'un type \"post\", mais l'objet post est null."
+ "translation": "La ligne de données importée dispose d'un type \"direct_post\", mais l'objet direct_post est null."
},
{
"id": "app.import.import_line.null_post.error",
@@ -3137,51 +3161,51 @@
},
{
"id": "app.import.validate_direct_channel_import_data.header_length.error",
- "translation": "Direct channel header is too long"
+ "translation": "L'entête du canal de messages privés est trop long"
},
{
"id": "app.import.validate_direct_channel_import_data.members_required.error",
- "translation": "La propriété de canal requise est manquante : name"
+ "translation": "La propriété requise pour un canal de messages privés est manquante: members"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_few.error",
- "translation": "Direct channel members list contains too few items"
+ "translation": "La liste des membres du canal de messages privés contient trop peu d'éléments"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_many.error",
- "translation": "Direct channel members list contains too many items"
+ "translation": "La liste des membres du canal de messages privés contient trop d'éléments"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_required.error",
- "translation": "La propriété de message requise est manquante : create_at."
+ "translation": "La propriété requise pour un message privé est manquante: channel_members"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_few.error",
- "translation": "Direct post channel members list contains too few items"
+ "translation": "La liste des messages des membres du canal de messages privés contient trop peu d'éléments"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_many.error",
- "translation": "Direct post channel members list contains too many items"
+ "translation": "La liste des messages des membres du canal de messages privés contient trop d'éléments"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_missing.error",
- "translation": "La propriété de message requise est manquante : create_at."
+ "translation": "La propriété requise pour un message privé est manquante: create_at"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_zero.error",
- "translation": "CreateAt must be greater than 0"
+ "translation": "CreateAt doit être plus grand que 0"
},
{
"id": "app.import.validate_direct_post_import_data.message_length.error",
- "translation": "Message is too long"
+ "translation": "Le message est trop long"
},
{
"id": "app.import.validate_direct_post_import_data.message_missing.error",
- "translation": "La propriété de message requise est manquante : Message."
+ "translation": "La propriété requise pour un message privé est manquante: message"
},
{
"id": "app.import.validate_direct_post_import_data.user_missing.error",
- "translation": "La propriété de message requise est manquante : User."
+ "translation": "La propriété requise pour un message privé est manquante: user"
},
{
"id": "app.import.validate_post_import_data.channel_missing.error",
@@ -3409,7 +3433,7 @@
},
{
"id": "ent.cluster.config_changed.info",
- "translation": "Cluster configuration has changed for id={{ .id }}. The cluster may become unstable and a restart is required. To ensure the cluster is configured correctly you should perform a rolling restart immediately."
+ "translation": "La configuration du cluster a changé pour l'id={{ .id }}. Le cluster peut devenir instable et un redémarrage est nécessaire. Pour s'assurer que le cluster est configuré correctement, vous devriez effectuer un redémarrage immédiatement."
},
{
"id": "ent.cluster.debug_fail.debug",
@@ -3441,7 +3465,7 @@
},
{
"id": "ent.cluster.save_config.error",
- "translation": "System Console is set to read-only when High Availability is enabled unless ReadOnlyConfig is disabled in the configuration file."
+ "translation": "La console système est définie en lecture seule lorsque le mode haute disponibilité est activé à moins que ReadOnlyConfig est désactivé dans le fichier de configuration. "
},
{
"id": "ent.cluster.starting.info",
@@ -3505,11 +3529,11 @@
},
{
"id": "ent.elasticsearch.test_config.indexing_disabled.error",
- "translation": "Elasticsearch is disabled."
+ "translation": "Elasticsearch est désactivé."
},
{
"id": "ent.elasticsearch.test_config.license.error",
- "translation": "License does not support Elasticsearch."
+ "translation": "La licence actuelle ne supporte pas Elasticsearch."
},
{
"id": "ent.emoji.licence_disable.app_error",
@@ -3525,7 +3549,7 @@
},
{
"id": "ent.ldap.do_login.bind_admin_user.app_error",
- "translation": "Impossible de se connecter au serveur LDAP. Vérifiez l'utilisateur et le mot de passe du compte utilisé pour se connecter au serveur LDAP."
+ "translation": "Impossible de se connecter au serveur AD/LDAP. Vérifiez l'utilisateur et le mot de passe du compte utilisé pour se connecter au serveur AD/LDAP."
},
{
"id": "ent.ldap.do_login.invalid_password.app_error",
@@ -3533,7 +3557,7 @@
},
{
"id": "ent.ldap.do_login.licence_disable.app_error",
- "translation": "Fonctionnalité LDAP désactivée par la licence actuelle. Veuillez contacter votre administrateur système concernant la mise à niveau de votre licence entreprise."
+ "translation": "Fonctionnalité AD/LDAP désactivée par la licence actuelle. Veuillez contacter votre administrateur système concernant la mise à niveau de votre licence entreprise."
},
{
"id": "ent.ldap.do_login.matched_to_many_users.app_error",
@@ -3541,11 +3565,11 @@
},
{
"id": "ent.ldap.do_login.search_ldap_server.app_error",
- "translation": "Échec de la recherche du serveur LDAP"
+ "translation": "Échec de la recherche du serveur AD/LDAP"
},
{
"id": "ent.ldap.do_login.unable_to_connect.app_error",
- "translation": "Impossible de se connecter au serveur LDAP"
+ "translation": "Impossible de se connecter au serveur AD/LDAP"
},
{
"id": "ent.ldap.do_login.unable_to_create_user.app_error",
@@ -3553,27 +3577,27 @@
},
{
"id": "ent.ldap.do_login.user_filtered.app_error",
- "translation": "Votre compte LDAP ne dispose pas des permissions pour utiliser ce serveur Mattermost. Veuillez demander à votre administrateur système de vérifier le filtre des utilisateurs LDAP."
+ "translation": "Votre compte AD/LDAP ne dispose pas des permissions pour utiliser ce serveur Mattermost. Veuillez demander à votre administrateur système de vérifier le filtre des utilisateurs AD/LDAP."
},
{
"id": "ent.ldap.do_login.user_not_registered.app_error",
- "translation": "Utilisateur non enregistré sur le serveur LDAP"
+ "translation": "Utilisateur non enregistré sur le serveur AD/LDAP"
},
{
"id": "ent.ldap.mattermost_user_update",
- "translation": "L'utilisateur Mattermost a été mis à jour par le serveur LDAP."
+ "translation": "L'utilisateur Mattermost a été mis à jour par le serveur AD/LDAP."
},
{
"id": "ent.ldap.syncdone.info",
- "translation": "Synchronisation LDAP terminé"
+ "translation": "Synchronisation AD/LDAP terminé"
},
{
"id": "ent.ldap.syncronize.get_all.app_error",
- "translation": "Impossible d'obtenir tous les utilisateurs à l'aide de LDAP"
+ "translation": "Impossible d'obtenir tous les utilisateurs à l'aide de AD/LDAP"
},
{
"id": "ent.ldap.validate_filter.app_error",
- "translation": "Filtre LDAP Invalide"
+ "translation": "Filtre AD/LDAP Invalide"
},
{
"id": "ent.metrics.starting.info",
@@ -3621,11 +3645,11 @@
},
{
"id": "ent.migration.migratetoldap.duplicate_field",
- "translation": "Impossible de migrer les utilisateurs LDAP avec le champ en question. Doublon détecté. Veuillez supprimer tous les doublons et réessayer."
+ "translation": "Impossible de migrer les utilisateurs AD/LDAP avec le champ en question. Doublon détecté. Veuillez supprimer tous les doublons et réessayer."
},
{
"id": "ent.migration.migratetoldap.user_not_found",
- "translation": "Impossible de trouver l'utilisateur sur le serveur LDAP : "
+ "translation": "Impossible de trouver l'utilisateur sur le serveur AD/LDAP : "
},
{
"id": "ent.saml.attribute.app_error",
@@ -3905,7 +3929,7 @@
},
{
"id": "model.channel_member.is_valid.email_value.app_error",
- "translation": "Valeur de la notification e-mail invalide"
+ "translation": "Valeur d'e-mail de notification invalide"
},
{
"id": "model.channel_member.is_valid.notify_level.app_error",
@@ -4141,31 +4165,31 @@
},
{
"id": "model.config.is_valid.ldap_basedn",
- "translation": "Le champ LDAP \"BaseDN\" est requis."
+ "translation": "Le champ AD/LDAP \"BaseDN\" est requis."
},
{
"id": "model.config.is_valid.ldap_bind_password",
- "translation": "Le champ LDAP \"Bind Password\" est requis."
+ "translation": "Le champ AD/LDAP \"Bind Password\" est requis."
},
{
"id": "model.config.is_valid.ldap_bind_username",
- "translation": "Le champ LDAP \"Bind Username\" est requis."
+ "translation": "Le champ AD/LDAP \"Bind Username\" est requis."
},
{
"id": "model.config.is_valid.ldap_email",
- "translation": "Le champ LDAP \"Email Attribute\" est requis."
+ "translation": "Le champ AD/LDAP \"Email Attribute\" est requis."
},
{
"id": "model.config.is_valid.ldap_firstname",
- "translation": "L'attribut LDAP \"Prénom\" est obligatoire."
+ "translation": "Le champ AD/LDAP \"First Name Attribute\" est obligatoire."
},
{
"id": "model.config.is_valid.ldap_id",
- "translation": "L'attribut LDAP \"ID\" est obligatoire."
+ "translation": "Le champ AD/LDAP \"ID Attribute\" est obligatoire."
},
{
"id": "model.config.is_valid.ldap_lastname",
- "translation": "L'attribut LDAP \"nom\" est obligatoire."
+ "translation": "Le champ AD/LDAP \"Last Name Attribute\" est obligatoire."
},
{
"id": "model.config.is_valid.ldap_max_page_size.app_error",
@@ -4173,11 +4197,11 @@
},
{
"id": "model.config.is_valid.ldap_required.app_error",
- "translation": "Champ LDAP manquant."
+ "translation": "Champ AD/LDAP manquant."
},
{
"id": "model.config.is_valid.ldap_required.app_error",
- "translation": "Champ LDAP manquant."
+ "translation": "Champ AD/LDAP manquant."
},
{
"id": "model.config.is_valid.ldap_security.app_error",
@@ -4185,7 +4209,7 @@
},
{
"id": "model.config.is_valid.ldap_server",
- "translation": "Le champ \"serveur LDAP\" est obligatoire."
+ "translation": "Le champ \"AD/LDAP Server\" est requis."
},
{
"id": "model.config.is_valid.ldap_sync_interval.app_error",
@@ -4193,7 +4217,7 @@
},
{
"id": "model.config.is_valid.ldap_username",
- "translation": "L'attribut LDAP \"Nom d'utilisateur\" est obligatoire."
+ "translation": "Le champ AD/LDAP \"Username Attribute\" est obligatoire."
},
{
"id": "model.config.is_valid.listen_address.app_error",
@@ -4285,7 +4309,7 @@
},
{
"id": "model.config.is_valid.site_url_email_batching.app_error",
- "translation": "Impossible d'activer l'envoi d'e-mails par lot si SiteURL n'est pas défini."
+ "translation": "Impossible d'activer l'envoi d'e-mails par lot si l'URL de site n'est pas définie."
},
{
"id": "model.config.is_valid.sitename_length.app_error",
@@ -4313,7 +4337,7 @@
},
{
"id": "model.config.is_valid.teammate_name_display.app_error",
- "translation": "Invalid teammate display. Must be 'full_name', 'nickname_full_name' or 'username'"
+ "translation": "Affichage invalide du coéquipier. Doit être 'full_name', 'nickname_full_name' ou 'username'"
},
{
"id": "model.config.is_valid.time_between_user_typing.app_error",
@@ -4941,7 +4965,7 @@
},
{
"id": "store.sql_channel.analytics_type_count.app_error",
- "translation": "Nous n'avons pas pu obtenir le nombre de type de canaux"
+ "translation": "Impossible d'obtenir le nombre de type de canaux"
},
{
"id": "store.sql_channel.check_open_channel_permissions.app_error",
@@ -4957,7 +4981,7 @@
},
{
"id": "store.sql_channel.delete.channel.app_error",
- "translation": "Nous n'avons pas pu supprimer le canal"
+ "translation": "Impossible de supprimer le canal"
},
{
"id": "store.sql_channel.extra_updated.app_error",
@@ -4965,7 +4989,7 @@
},
{
"id": "store.sql_channel.get.existing.app_error",
- "translation": "Nous n'avons pas pu trouver le canal existant"
+ "translation": "Impossible de trouver le canal existant"
},
{
"id": "store.sql_channel.get.find.app_error",
@@ -4973,11 +4997,11 @@
},
{
"id": "store.sql_channel.get_all.app_error",
- "translation": "Nous n'avons pas pu charger tous les canaux"
+ "translation": "Impossible de charger tous les canaux"
},
{
"id": "store.sql_channel.get_by_name.existing.app_error",
- "translation": "Nous n'avons pas pu trouver le canal existant"
+ "translation": "Impossible de trouver le canal existant"
},
{
"id": "store.sql_channel.get_by_name.missing.app_error",
@@ -4985,11 +5009,11 @@
},
{
"id": "store.sql_channel.get_channel_counts.get.app_error",
- "translation": "Nous n'avons pas pu obtenir le nombre de canaux"
+ "translation": "Impossible d'obtenir le nombre de canaux"
},
{
"id": "store.sql_channel.get_channels.get.app_error",
- "translation": "Nous n'avons pas pu obtenir les canaux"
+ "translation": "Impossible d'obtenir les canaux"
},
{
"id": "store.sql_channel.get_channels.not_found.app_error",
@@ -5013,7 +5037,7 @@
},
{
"id": "store.sql_channel.get_extra_members.app_error",
- "translation": "Nous n'avons pas pu charger les informations supplémentaires sur les membres du canal"
+ "translation": "Impossible de charger les informations supplémentaires sur les membres du canal"
},
{
"id": "store.sql_channel.get_for_post.app_error",
@@ -5021,7 +5045,7 @@
},
{
"id": "store.sql_channel.get_member.app_error",
- "translation": "Nous n'avons pas pu obtenir les membres du canal"
+ "translation": "Impossible d'obtenir le membre du canal"
},
{
"id": "store.sql_channel.get_member.missing.app_error",
@@ -5029,7 +5053,7 @@
},
{
"id": "store.sql_channel.get_member_count.app_error",
- "translation": "Nous n'avons pas pu obtenir le nombre de membres du canal"
+ "translation": "Impossible d'obtenir le nombre de membres du canal"
},
{
"id": "store.sql_channel.get_member_for_post.app_error",
@@ -5037,7 +5061,7 @@
},
{
"id": "store.sql_channel.get_members.app_error",
- "translation": "Nous n'avons pas pu obtenir les membres du canal"
+ "translation": "Impossible d'obtenir les membres du canal"
},
{
"id": "store.sql_channel.get_members_by_ids.app_error",
@@ -5045,7 +5069,7 @@
},
{
"id": "store.sql_channel.get_more_channels.get.app_error",
- "translation": "Nous n'avons pas pu obtenir les canaux"
+ "translation": "Impossible d'obtenir les canaux"
},
{
"id": "store.sql_channel.get_public_channels.get.app_error",
@@ -5057,7 +5081,7 @@
},
{
"id": "store.sql_channel.increment_mention_count.app_error",
- "translation": "Nous n'avons pas pu incrémenter le nombre de mentions"
+ "translation": "Impossible d'incrémenter le nombre de mentions"
},
{
"id": "store.sql_channel.permanent_delete.app_error",
@@ -5065,11 +5089,11 @@
},
{
"id": "store.sql_channel.permanent_delete_by_team.app_error",
- "translation": "Nous n'avons pas pu supprimer les canaux"
+ "translation": "Impossible de supprimer les canaux"
},
{
"id": "store.sql_channel.permanent_delete_members_by_user.app_error",
- "translation": "Nous n'avons pas pu retirer le membre du canal"
+ "translation": "Impossible de retirer le membre du canal"
},
{
"id": "store.sql_channel.pinned_posts.app_error",
@@ -5077,7 +5101,7 @@
},
{
"id": "store.sql_channel.remove_member.app_error",
- "translation": "Nous n'avons pas pu retirer le membre du canal"
+ "translation": "Impossible de retirer le membre du canal"
},
{
"id": "store.sql_channel.save.commit_transaction.app_error",
@@ -5113,7 +5137,7 @@
},
{
"id": "store.sql_channel.save_channel.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer ce canal"
+ "translation": "Impossible d'enregistrer ce canal"
},
{
"id": "store.sql_channel.save_direct_channel.add_members.app_error",
@@ -5145,7 +5169,7 @@
},
{
"id": "store.sql_channel.save_member.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer le membre du canal"
+ "translation": "Impossible d'enregistrer le membre du canal"
},
{
"id": "store.sql_channel.search.app_error",
@@ -5153,11 +5177,11 @@
},
{
"id": "store.sql_channel.set_last_viewed_at.app_error",
- "translation": "Nous n'avons pas pu mettre à jour la date de dernier affichage."
+ "translation": "Impossible de mettre à jour la date de dernier affichage"
},
{
"id": "store.sql_channel.update.app_error",
- "translation": "Nous n'avons pas pu mettre à jour le canal"
+ "translation": "Impossible de mettre à jour le canal"
},
{
"id": "store.sql_channel.update.exists.app_error",
@@ -5173,7 +5197,7 @@
},
{
"id": "store.sql_channel.update_last_viewed_at.app_error",
- "translation": "Nous n'avons pas pu mettre à jour la date de dernier affichage."
+ "translation": "Impossible de mettre à jour la date de dernier affichage"
},
{
"id": "store.sql_channel.update_member.app_error",
@@ -5181,27 +5205,27 @@
},
{
"id": "store.sql_command.analytics_command_count.app_error",
- "translation": "Nous n'avons pas pu compter les commandes"
+ "translation": "Impossible de compter les commandes"
},
{
"id": "store.sql_command.save.delete.app_error",
- "translation": "Nous n'avons pas pu supprimer la commande"
+ "translation": "Impossible de supprimer la commande"
},
{
"id": "store.sql_command.save.delete_perm.app_error",
- "translation": "Nous n'avons pas pu supprimer la commande"
+ "translation": "Impossible de supprimer la commande"
},
{
"id": "store.sql_command.save.get.app_error",
- "translation": "Nous n'avons pas pu obtenir la commande"
+ "translation": "Impossible d'obtenir la commande"
},
{
"id": "store.sql_command.save.get_team.app_error",
- "translation": "Nous n'avons pas pu obtenir les commandes"
+ "translation": "Impossible d'obtenir les commandes"
},
{
"id": "store.sql_command.save.saving.app_error",
- "translation": "Nous n'avons pas pu enregistrer la commande"
+ "translation": "Impossible d'enregistrer la commande"
},
{
"id": "store.sql_command.save.saving_overwrite.app_error",
@@ -5221,27 +5245,27 @@
},
{
"id": "store.sql_emoji.delete.app_error",
- "translation": "Nous n'avons pas pu supprimer votre emoji"
+ "translation": "Impossible de supprimer l'émoticône"
},
{
"id": "store.sql_emoji.delete.no_results",
- "translation": "Nous n'avons pas trouvé l' emoji à supprimer"
+ "translation": "Impossible de trouver l'émoticône à supprimer"
},
{
"id": "store.sql_emoji.get.app_error",
- "translation": "Nous n'avons pas pu obtenir l'emoji"
+ "translation": "Impossible d'obtenir l'émoticône"
},
{
"id": "store.sql_emoji.get_all.app_error",
- "translation": "Nous n'avons pas pu obtenir l'emoji"
+ "translation": "Impossible de récupérer l'émoticône"
},
{
"id": "store.sql_emoji.get_by_name.app_error",
- "translation": "Impossible de récupérer l'Emoji"
+ "translation": "Impossible de récupérer l'émoticône"
},
{
"id": "store.sql_emoji.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer l'Emoji"
+ "translation": "Impossible de sauvegarder l'émoticône"
},
{
"id": "store.sql_file_info.attach_to_post.app_error",
@@ -5329,11 +5353,11 @@
},
{
"id": "store.sql_oauth.get_app.find.app_error",
- "translation": "Nous n'avons pas pu trouver l'application"
+ "translation": "Impossible de trouver l'application"
},
{
"id": "store.sql_oauth.get_app.finding.app_error",
- "translation": "Nous n'avons pas pu trouver l'application"
+ "translation": "Impossible de trouver l'application"
},
{
"id": "store.sql_oauth.get_app_by_user.find.app_error",
@@ -5345,7 +5369,7 @@
},
{
"id": "store.sql_oauth.get_auth_data.find.app_error",
- "translation": "Nous n'avons pas pu trouver le code d'autorisation existant"
+ "translation": "Impossible de trouver le code d'autorisation existant"
},
{
"id": "store.sql_oauth.get_auth_data.finding.app_error",
@@ -5357,19 +5381,19 @@
},
{
"id": "store.sql_oauth.permanent_delete_auth_data_by_user.app_error",
- "translation": "Nous n'avons pas supprimer le code d'autorisation"
+ "translation": "Impossible de supprimer le code d'autorisation"
},
{
"id": "store.sql_oauth.remove_access_data.app_error",
- "translation": "Nous n'avons pas pu retirer le jeton d'accès"
+ "translation": "Impossible de retirer le jeton d'accès"
},
{
"id": "store.sql_oauth.remove_auth_data.app_error",
- "translation": "Nous n'avons pas pu retirer le code d'autorisation"
+ "translation": "Impossible de retirer le code d'autorisation"
},
{
"id": "store.sql_oauth.save_access_data.app_error",
- "translation": "Nous n'avons pas pu enregistrer le jeton d'accès."
+ "translation": "Impossible d'enregistrer le jeton d'accès."
},
{
"id": "store.sql_oauth.save_app.existing.app_error",
@@ -5377,11 +5401,11 @@
},
{
"id": "store.sql_oauth.save_app.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer l'application."
+ "translation": "Impossible d'enregistrer l'application."
},
{
"id": "store.sql_oauth.save_auth_data.app_error",
- "translation": "Nous n'avons pas pu enregistrer le code d'autorisation."
+ "translation": "Impossible d'enregistrer le code d'autorisation."
},
{
"id": "store.sql_oauth.update_access_data.app_error",
@@ -5389,7 +5413,7 @@
},
{
"id": "store.sql_oauth.update_app.find.app_error",
- "translation": "Nous n'avons pas pu trouver d'application existante à mettre à jour"
+ "translation": "Impossible de trouver d'application existante à mettre à jour"
},
{
"id": "store.sql_oauth.update_app.finding.app_error",
@@ -5397,7 +5421,7 @@
},
{
"id": "store.sql_oauth.update_app.update.app_error",
- "translation": "Nous n'avons pas pu mettre à jour l'application"
+ "translation": "Impossible de mettre à jour l'application"
},
{
"id": "store.sql_oauth.update_app.updating.app_error",
@@ -5405,27 +5429,27 @@
},
{
"id": "store.sql_post.analytics_posts_count.app_error",
- "translation": "Nous n'avons pas pu obtenir le nombre de messages"
+ "translation": "Impossible d'obtenir le nombre de messages"
},
{
"id": "store.sql_post.analytics_posts_count_by_day.app_error",
- "translation": "Nous n'avons pas pu obtenir le nombre de messages par jour"
+ "translation": "Impossible d'obtenir le nombre de messages par jour"
},
{
"id": "store.sql_post.analytics_user_counts_posts_by_day.app_error",
- "translation": "Nous n'avons pas pu obtenir le nombre d'utilisateur avec des messages"
+ "translation": "Impossible d'obtenir le nombre d'utilisateur avec des messages"
},
{
"id": "store.sql_post.delete.app_error",
- "translation": "Nous n'avons pas pu supprimer le message"
+ "translation": "Impossible de supprimer le message"
},
{
"id": "store.sql_post.get.app_error",
- "translation": "Nous n'avons pas pu obtenir le message"
+ "translation": "Impossible d'obtenir le message"
},
{
"id": "store.sql_post.get_parents_posts.app_error",
- "translation": "Nous n'avons pas pu obtenir le message parent pour le canal"
+ "translation": "Impossible d'obtenir le message parent pour le canal"
},
{
"id": "store.sql_post.get_posts.app_error",
@@ -5433,11 +5457,11 @@
},
{
"id": "store.sql_post.get_posts_around.get.app_error",
- "translation": "Nous n'avons pas pu obtenir les messages pour le canal"
+ "translation": "Impossible d'obtenir les messages pour le canal"
},
{
"id": "store.sql_post.get_posts_around.get_parent.app_error",
- "translation": "Nous n'avons pas pu obtenir les messages parent pour le canal"
+ "translation": "Impossible d'obtenir les messages parent pour le canal"
},
{
"id": "store.sql_post.get_posts_by_ids.app_error",
@@ -5449,11 +5473,11 @@
},
{
"id": "store.sql_post.get_posts_since.app_error",
- "translation": "Nous n'avons pas pu obtenir les messages pour le canal"
+ "translation": "Impossible d'obtenir les messages pour le canal"
},
{
"id": "store.sql_post.get_root_posts.app_error",
- "translation": "Nous n'avons pas pu obtenir les messages pour le canal"
+ "translation": "Impossible d'obtenir les messages pour le canal"
},
{
"id": "store.sql_post.overwrite.app_error",
@@ -5461,11 +5485,11 @@
},
{
"id": "store.sql_post.permanent_delete.app_error",
- "translation": "Nous n'avons pas pu supprimer le message"
+ "translation": "Impossible de supprimer le message"
},
{
"id": "store.sql_post.permanent_delete_all_comments_by_user.app_error",
- "translation": "Nous n'avons pas supprimer les commentaires de l'utilisateur"
+ "translation": "Impossible de supprimer les commentaires de l'utilisateur"
},
{
"id": "store.sql_post.permanent_delete_by_channel.app_error",
@@ -5473,15 +5497,15 @@
},
{
"id": "store.sql_post.permanent_delete_by_user.app_error",
- "translation": "Nous n'avons pas pu sélectionner les messages à supprimer pour l'utilisateur"
+ "translation": "Impossible de sélectionner les messages à supprimer pour l'utilisateur"
},
{
"id": "store.sql_post.permanent_delete_by_user.too_many.app_error",
- "translation": "Nous n'avons pas pu sélectionner les messages à effacer pour l'utilisateur (trop nombreux), veuillez relancer"
+ "translation": "Impossible de sélectionner les messages à effacer pour l'utilisateur (trop nombreux), veuillez relancer"
},
{
"id": "store.sql_post.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer le message"
+ "translation": "Impossible d'enregistrer le message"
},
{
"id": "store.sql_post.save.existing.app_error",
@@ -5497,7 +5521,7 @@
},
{
"id": "store.sql_post.update.app_error",
- "translation": "Nous n'avons pas pu mettre à jour le message"
+ "translation": "Impossible de mettre à jour le message"
},
{
"id": "store.sql_preference.delete.app_error",
@@ -5525,7 +5549,7 @@
},
{
"id": "store.sql_preference.insert.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer les préférences"
+ "translation": "Impossible d'enregistrer les préférences"
},
{
"id": "store.sql_preference.is_feature_enabled.app_error",
@@ -5557,7 +5581,7 @@
},
{
"id": "store.sql_preference.update.app_error",
- "translation": "Nous n'avons pas pu mettre à jour les préférences"
+ "translation": "Impossible de mettre à jour les préférences"
},
{
"id": "store.sql_reaction.delete.begin.app_error",
@@ -5601,7 +5625,7 @@
},
{
"id": "store.sql_session.analytics_session_count.app_error",
- "translation": "Nous n'avons pas pu compter les sessions"
+ "translation": "Impossible de compter les sessions"
},
{
"id": "store.sql_session.cleanup_expired_sessions.app_error",
@@ -5621,19 +5645,19 @@
},
{
"id": "store.sql_session.permanent_delete_sessions_by_user.app_error",
- "translation": "Nous n'avons pas pu supprimer toutes les sessions de l'utilisateur"
+ "translation": "Impossible de supprimer toutes les sessions de l'utilisateur"
},
{
"id": "store.sql_session.remove.app_error",
- "translation": "Nous n'avons pas pu supprimer la session"
+ "translation": "Impossible de supprimer la session"
},
{
"id": "store.sql_session.remove_all_sessions_for_team.app_error",
- "translation": "Nous n'avons pas pu supprimer toutes les sessions de l'équipe"
+ "translation": "Impossible de supprimer toutes les sessions de l'équipe"
},
{
"id": "store.sql_session.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer la session"
+ "translation": "Impossible d'enregistrer la session"
},
{
"id": "store.sql_session.save.cleanup.error",
@@ -5645,15 +5669,15 @@
},
{
"id": "store.sql_session.update_device_id.app_error",
- "translation": "Nous n'avons pas pu mettre à jour l'id de l'appareil"
+ "translation": "Impossible de mettre à jour l'id de l'appareil"
},
{
"id": "store.sql_session.update_last_activity.app_error",
- "translation": "Nous n'avons pas pu mettre à jour last_activity_at"
+ "translation": "Impossible de mettre à jour last_activity_at"
},
{
"id": "store.sql_session.update_roles.app_error",
- "translation": "Nous n'avons pas pu mettre à jour les rôles"
+ "translation": "Impossible de mettre à jour les rôles"
},
{
"id": "store.sql_status.get.app_error",
@@ -5677,7 +5701,7 @@
},
{
"id": "store.sql_status.get_total_active_users_count.app_error",
- "translation": "Nous n'avons pas pu compter les utilisateurs"
+ "translation": "Impossible de compter les utilisateurs actifs"
},
{
"id": "store.sql_status.reset_all.app_error",
@@ -5713,11 +5737,11 @@
},
{
"id": "store.sql_team.analytics_team_count.app_error",
- "translation": "Nous n'avons pas pu compter les équipes"
+ "translation": "Impossible de compter les équipes"
},
{
"id": "store.sql_team.get.find.app_error",
- "translation": "Nous n'avons pas pu trouver d'équipe existante"
+ "translation": "Impossible de trouver l'équipe existante"
},
{
"id": "store.sql_team.get.finding.app_error",
@@ -5725,23 +5749,23 @@
},
{
"id": "store.sql_team.get_all.app_error",
- "translation": "Nous n'avons pas pu obtenir toutes les équipes"
+ "translation": "Impossible d'obtenir toutes les équipes"
},
{
"id": "store.sql_team.get_all_team_listing.app_error",
- "translation": "Nous n'avons pas pu obtenir toutes les équipes"
+ "translation": "Impossible d'obtenir toutes les équipes"
},
{
"id": "store.sql_team.get_by_invite_id.find.app_error",
- "translation": "Nous n'avons pas pu trouver d'équipe existante"
+ "translation": "Impossible de trouver l'équipe existante"
},
{
"id": "store.sql_team.get_by_invite_id.finding.app_error",
- "translation": "Nous n'avons pas pu trouver d'équipe existante"
+ "translation": "Impossible de trouver l'équipe existante"
},
{
"id": "store.sql_team.get_by_name.app_error",
- "translation": "Nous n'avons pas pu trouver d'équipe existante"
+ "translation": "Impossible de trouver l'équipe existante"
},
{
"id": "store.sql_team.get_member.app_error",
@@ -5773,15 +5797,15 @@
},
{
"id": "store.sql_team.permanent_delete.app_error",
- "translation": "Nous n'avons pas pu supprimer l'équipe existante"
+ "translation": "Impossible de supprimer l'équipe existante"
},
{
"id": "store.sql_team.remove_member.app_error",
- "translation": "Nous n'avons pas pu retirer le membre de l'équipe"
+ "translation": "Impossible de retirer le membre de l'équipe"
},
{
"id": "store.sql_team.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer l'équipe"
+ "translation": "Impossible d'enregistrer l'équipe"
},
{
"id": "store.sql_team.save.domain_exists.app_error",
@@ -5797,7 +5821,7 @@
},
{
"id": "store.sql_team.save_member.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer le membre du canal"
+ "translation": "Impossible d'enregistrer le membre du canal"
},
{
"id": "store.sql_team.search_all_team.app_error",
@@ -5809,11 +5833,11 @@
},
{
"id": "store.sql_team.update.app_error",
- "translation": "Nous n'avons pas pu mettre à jour l'équipe"
+ "translation": "Impossible de mettre à jour l'équipe"
},
{
"id": "store.sql_team.update.find.app_error",
- "translation": "Nous n'avons pas pu trouver d'équipe existante à mettre à jour"
+ "translation": "Impossible de trouver l'équipe existante à mettre à jour"
},
{
"id": "store.sql_team.update.finding.app_error",
@@ -5825,7 +5849,7 @@
},
{
"id": "store.sql_team.update_display_name.app_error",
- "translation": "Nous n'avons pas pu mettre à jour le nom de l'équipe"
+ "translation": "Impossible de mettre à jour le nom de l'équipe"
},
{
"id": "store.sql_user.analytics_get_inactive_users_count.app_error",
@@ -5837,7 +5861,7 @@
},
{
"id": "store.sql_user.analytics_unique_user_count.app_error",
- "translation": "Nous n'avons pas pu obtenir le nombre d'utilisateurs uniques"
+ "translation": "Impossible d'obtenir le nombre d'utilisateurs uniques"
},
{
"id": "store.sql_user.get.app_error",
@@ -5849,7 +5873,7 @@
},
{
"id": "store.sql_user.get_by_auth.missing_account.app_error",
- "translation": "Nous n'avons pas pu trouver un compte existant correspondant à votre type d'authentification pour cette équipe. Cette équipe nécessite peut-être une invitation de la part du propriétaire pour pouvoir la rejoindre."
+ "translation": "Impossible de trouver un compte existant correspondant à votre type d'authentification pour cette équipe. Cette équipe nécessite peut-être une invitation de la part du propriétaire pour pouvoir la rejoindre."
},
{
"id": "store.sql_user.get_by_auth.other.app_error",
@@ -5857,11 +5881,11 @@
},
{
"id": "store.sql_user.get_by_username.app_error",
- "translation": "Nous n'avons pas pu trouver un compte existant correspondant à votre nom d'utilisateur pour cette équipe. Cette équipe nécessite peut-être une invitation de la part du propriétaire pour pouvoir la rejoindre."
+ "translation": "Impossible de trouver un compte existant correspondant à votre nom d'utilisateur pour cette équipe. Cette équipe nécessite peut-être une invitation de la part du propriétaire pour pouvoir la rejoindre."
},
{
"id": "store.sql_user.get_for_login.app_error",
- "translation": "Nous n'avons pas pu trouver un compte existant correspondant à votre nom d'utilisateur pour cette équipe. Cette équipe nécessite peut-être une invitation de la part du propriétaire pour pouvoir la rejoindre."
+ "translation": "Impossible de trouver un compte existant correspondant à votre nom d'utilisateur pour cette équipe. Cette équipe nécessite peut-être une invitation de la part du propriétaire pour pouvoir la rejoindre."
},
{
"id": "store.sql_user.get_for_login.multiple_users",
@@ -5869,7 +5893,7 @@
},
{
"id": "store.sql_user.get_new_users.app_error",
- "translation": "Nous avons rencontré une erreur durant la recherche des préférences"
+ "translation": "Une erreur s'est produite lors de la recherche de nouveaux utilisateurs"
},
{
"id": "store.sql_user.get_profiles.app_error",
@@ -5885,15 +5909,15 @@
},
{
"id": "store.sql_user.get_total_users_count.app_error",
- "translation": "Nous n'avons pas pu compter les utilisateurs"
+ "translation": "Impossible de compter les utilisateurs"
},
{
"id": "store.sql_user.get_unread_count.app_error",
- "translation": "Nous n'avons pas pu compter le nombre de messages non lus pour l'utilisateur"
+ "translation": "Impossible de compter le nombre de messages non lus pour l'utilisateur"
},
{
"id": "store.sql_user.get_unread_count_for_channel.app_error",
- "translation": "Nous n'avons pas pu compter le nombre de messages non lus pour l'utilisateur"
+ "translation": "Impossible de compter le nombre de messages non lus pour l'utilisateur et le canal"
},
{
"id": "store.sql_user.migrate_theme.critical",
@@ -5905,11 +5929,11 @@
},
{
"id": "store.sql_user.permanent_delete.app_error",
- "translation": "Nous n'avons pas pu supprimer le compte existant"
+ "translation": "Impossible de supprimer le compte existant"
},
{
"id": "store.sql_user.save.app_error",
- "translation": "Nous n'avons pas pu enregistrer le compte."
+ "translation": "Impossible d'enregistrer le compte."
},
{
"id": "store.sql_user.save.email_exists.app_error",
@@ -5917,7 +5941,7 @@
},
{
"id": "store.sql_user.save.email_exists.ldap_app_error",
- "translation": "Ce compte n'utilise pas l'authentification LDAP. Veuillez vous connecter avec votre adresse e-mail et votre mot de passe."
+ "translation": "Ce compte n'utilise pas l'authentification AD/LDAP. Veuillez vous connecter avec votre adresse e-mail et votre mot de passe."
},
{
"id": "store.sql_user.save.email_exists.saml_app_error",
@@ -5949,11 +5973,11 @@
},
{
"id": "store.sql_user.update.app_error",
- "translation": "Nous n'avons pas pu mettre à jour le compte"
+ "translation": "Impossible de mettre à jour le compte"
},
{
"id": "store.sql_user.update.can_not_change_ldap.app_error",
- "translation": "Vous ne pouvez pas modifier les champs définis par LDAP"
+ "translation": "Vous ne pouvez pas modifier les champs définis par AD/LDAP"
},
{
"id": "store.sql_user.update.email_taken.app_error",
@@ -5961,7 +5985,7 @@
},
{
"id": "store.sql_user.update.find.app_error",
- "translation": "Nous n'avons pas pu trouver de compte existant à mettre à jour"
+ "translation": "Impossible de trouver de compte existant à mettre à jour"
},
{
"id": "store.sql_user.update.finding.app_error",
@@ -5977,7 +6001,7 @@
},
{
"id": "store.sql_user.update_auth_data.app_error",
- "translation": "Nous n'avons pas pu mettre à jour les données d'authentification"
+ "translation": "Impossible de mettre à jour les données d'authentification"
},
{
"id": "store.sql_user.update_auth_data.email_exists.app_error",
@@ -5985,19 +6009,19 @@
},
{
"id": "store.sql_user.update_failed_pwd_attempts.app_error",
- "translation": "Nous n'avons pas pu mettre à jour failed_attempts"
+ "translation": "Impossible de mettre à jour failed_attempts"
},
{
"id": "store.sql_user.update_last_activity.app_error",
- "translation": "Nous n'avons pas pu mettre à jour last_activity_at"
+ "translation": "Impossible de mettre à jour last_activity_at"
},
{
"id": "store.sql_user.update_last_picture_update.app_error",
- "translation": "Nous n'avons pas pu mettre à jour update_at"
+ "translation": "Impossible de mettre à jour update_at"
},
{
"id": "store.sql_user.update_last_ping.app_error",
- "translation": "Nous n'avons pas pu mettre à jour last_ping_at"
+ "translation": "Impossible de mettre à jour last_ping_at"
},
{
"id": "store.sql_user.update_mfa_active.app_error",
@@ -6009,7 +6033,7 @@
},
{
"id": "store.sql_user.update_password.app_error",
- "translation": "Nous n'avons pas pu mettre à jour le mot de passe de l'utilisateur"
+ "translation": "Impossible de mettre à jour le mot de passe de l'utilisateur"
},
{
"id": "store.sql_user.verify_email.app_error",
@@ -6017,55 +6041,55 @@
},
{
"id": "store.sql_webhooks.analytics_incoming_count.app_error",
- "translation": "Nous n'avons pas pu compter les webhooks entrants"
+ "translation": "Impossible de compter les webhooks entrants"
},
{
"id": "store.sql_webhooks.analytics_outgoing_count.app_error",
- "translation": "Nous n'avons pas pu compter les webhooks sortants"
+ "translation": "Impossible de compter les webhooks sortants"
},
{
"id": "store.sql_webhooks.delete_incoming.app_error",
- "translation": "Nous n'avons pas pu supprimer le webhook"
+ "translation": "Impossible de supprimer le webhook"
},
{
"id": "store.sql_webhooks.delete_outgoing.app_error",
- "translation": "Nous n'avons pas pu supprimer le webhook"
+ "translation": "Impossible de supprimer le webhook"
},
{
"id": "store.sql_webhooks.get_incoming.app_error",
- "translation": "Nous n'avons pas pu obtenir le webhook"
+ "translation": "Impossible d'obtenir le webhook"
},
{
"id": "store.sql_webhooks.get_incoming_by_channel.app_error",
- "translation": "Nous n'avons pas pu obtenir les webhooks"
+ "translation": "Impossible d'obtenir les webhooks"
},
{
"id": "store.sql_webhooks.get_incoming_by_user.app_error",
- "translation": "Nous n'avons pas pu obtenir le webhook"
+ "translation": "Impossible d'obtenir le webhook"
},
{
"id": "store.sql_webhooks.get_outgoing.app_error",
- "translation": "Nous n'avons pas pu obtenir le webhook"
+ "translation": "Impossible d'obtenir le webhook"
},
{
"id": "store.sql_webhooks.get_outgoing_by_channel.app_error",
- "translation": "Nous n'avons pas pu obtenir les webhooks"
+ "translation": "Impossible d'obtenir les webhooks"
},
{
"id": "store.sql_webhooks.get_outgoing_by_team.app_error",
- "translation": "Nous n'avons pas pu obtenir les webhooks"
+ "translation": "Impossible d'obtenir les webhooks"
},
{
"id": "store.sql_webhooks.permanent_delete_incoming_by_user.app_error",
- "translation": "Nous n'avons pas pu supprimer le webhook"
+ "translation": "Impossible de supprimer le webhook"
},
{
"id": "store.sql_webhooks.permanent_delete_outgoing_by_user.app_error",
- "translation": "Nous n'avons pas pu supprimer le webhook"
+ "translation": "Impossible de supprimer le webhook"
},
{
"id": "store.sql_webhooks.save_incoming.app_error",
- "translation": "Nous n'avons pas pu enregistrer le IncomongWebhook"
+ "translation": "Impossible d'enregistrer le IncomingWebhook"
},
{
"id": "store.sql_webhooks.save_incoming.existing.app_error",
@@ -6073,7 +6097,7 @@
},
{
"id": "store.sql_webhooks.save_outgoing.app_error",
- "translation": "Nous n'avons pas pu enregistrer le OutgoingWebhook"
+ "translation": "Impossible d'enregistrer le OutgoingWebhook"
},
{
"id": "store.sql_webhooks.save_outgoing.override.app_error",
@@ -6085,7 +6109,7 @@
},
{
"id": "store.sql_webhooks.update_outgoing.app_error",
- "translation": "Nous n'avons pas pu mettre à jour le webhook"
+ "translation": "Impossible de mettre à jour le webhook"
},
{
"id": "system.message.name",
@@ -6273,7 +6297,7 @@
},
{
"id": "web.incoming_webhook.channel.app_error",
- "translation": "Nous n'avons pas pu trouver le canal"
+ "translation": "Impossible de trouver le canal"
},
{
"id": "web.incoming_webhook.disabled.app_error",
diff --git a/i18n/it.json b/i18n/it.json
index 0adf4b036..95ec55b3b 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -101,7 +101,7 @@
},
{
"id": "api.admin.test_email.reenter_password",
- "translation": "Il server SMTP, la porta o lo username sono cambiati. Per favore reinserisci la password SMTP per testare la connessione"
+ "translation": "Il server SMTP, la porta o lo username sono cambiati. Per favore reinserisci la password SMTP per testare la connessione."
},
{
"id": "api.admin.test_email.subject",
@@ -185,7 +185,7 @@
},
{
"id": "api.channel.can_manage_channel.private_restricted_system_admin.app_error",
- "translation": "La creazione e amministrazione di canali privati è limitata all'amministratore di sistema"
+ "translation": "La creazione e amministrazione di canali privati è limitata all'amministratore di sistema."
},
{
"id": "api.channel.can_manage_channel.private_restricted_team_admin.app_error",
@@ -193,15 +193,15 @@
},
{
"id": "api.channel.can_manage_channel.public_restricted_system_admin.app_error",
- "translation": "La creazione e amministrazione di Canali Pubblici è limitata all'Amministratore del Sistema"
+ "translation": "La creazione e amministrazione di Canali Pubblici è limitata all'Amministratore di Sistema."
},
{
"id": "api.channel.can_manage_channel.public_restricted_team_admin.app_error",
- "translation": "La creazione e amministrazione di Canali Pubblici è limitata all'Amministratore del Sistema e di gruppo"
+ "translation": "La creazione e amministrazione di Canali Pubblici è limitata all'Amministratore di Sistema e di gruppo."
},
{
"id": "api.channel.create_channel.direct_channel.app_error",
- "translation": "Bisogna usare il servizio createDirectChannel api per la creazione dei messaggi diretti nel canale"
+ "translation": "Bisogna usare il servizio createDirectChannel API per la creazione dei messaggi diretti nel canale"
},
{
"id": "api.channel.create_channel.invalid_character.app_error",
@@ -253,11 +253,11 @@
},
{
"id": "api.channel.delete_channel.incoming_webhook.error",
- "translation": "Errore nell'eliminazione del WebHook in entrata, id=%v"
+ "translation": "Errore nell'eliminazione del webhook in entrata, id=%v"
},
{
"id": "api.channel.delete_channel.outgoing_webhook.error",
- "translation": "Errore nell'eliminazione del WebHook in uscita, id=%v"
+ "translation": "Errore nell'eliminazione del webhook in uscita, id=%v"
},
{
"id": "api.channel.delete_channel.permissions.app_error",
@@ -321,7 +321,7 @@
},
{
"id": "api.channel.post_update_channel_displayname_message_and_forget.retrieve_user.error",
- "translation": "Errore nel caricamento dell'utente durante l' aggiornamento del titolo del canale"
+ "translation": "Errore nel caricamento dell'utente durante l'aggiornamento del titolo del canale"
},
{
"id": "api.channel.post_update_channel_displayname_message_and_forget.updated_from",
@@ -405,7 +405,7 @@
},
{
"id": "api.command.disabled.app_error",
- "translation": "I comandi sono stati disabilitati dall'amministratore del sistema."
+ "translation": "I comandi sono stati disabilitati dall'amministratore di sistema."
},
{
"id": "api.command.duplicate_trigger.app_error",
@@ -449,11 +449,11 @@
},
{
"id": "api.command.invite_people.email_off",
- "translation": "Le Email non sono state configurate, quindi nessun invito(i) è stato inviato"
+ "translation": "Le email non sono state configurate, quindi nessun invito è stato inviato"
},
{
"id": "api.command.invite_people.fail",
- "translation": "Errore durante l' invio degli inviti via email"
+ "translation": "Errore durante l'invio degli inviti via email"
},
{
"id": "api.command.invite_people.hint",
@@ -473,7 +473,7 @@
},
{
"id": "api.command.invite_people.sent",
- "translation": "Email di invito(i) inviata"
+ "translation": "Email di invito inviata"
},
{
"id": "api.command.regen.app_error",
@@ -493,11 +493,11 @@
},
{
"id": "api.command_away.name",
- "translation": "Assente"
+ "translation": "assente"
},
{
"id": "api.command_away.success",
- "translation": "Ora sei \"Assente\""
+ "translation": "Ora sei assente"
},
{
"id": "api.command_channel_header.channel.app_error",
@@ -585,7 +585,7 @@
},
{
"id": "api.command_expand_collapse.fail.app_error",
- "translation": "Errore durante l' espansione delle anteprime"
+ "translation": "Errore durante l'espansione delle anteprime"
},
{
"id": "api.command_help.desc",
@@ -601,7 +601,7 @@
},
{
"id": "api.command_join.fail.app_error",
- "translation": "Si è verificato un errore durante l' entrata nel canale."
+ "translation": "Si è verificato un errore durante l'entrata nel canale."
},
{
"id": "api.command_join.hint",
@@ -669,7 +669,7 @@
},
{
"id": "api.command_msg.missing.app_error",
- "translation": "Non è stato possibile trovare l' utente"
+ "translation": "Non è stato possibile trovare l'utente"
},
{
"id": "api.command_msg.name",
@@ -681,11 +681,11 @@
},
{
"id": "api.command_offline.desc",
- "translation": "Imposta lo stato in \"Assente\""
+ "translation": "Imposta lo stato in assente"
},
{
"id": "api.command_offline.name",
- "translation": "Assente"
+ "translation": "assente"
},
{
"id": "api.command_offline.success",
@@ -693,19 +693,35 @@
},
{
"id": "api.command_online.desc",
- "translation": "Imposta lo stato in \"In linea\"."
+ "translation": "Imposta lo stato in linea"
},
{
"id": "api.command_online.name",
- "translation": "Collegato"
+ "translation": "online"
},
{
"id": "api.command_online.success",
- "translation": "Ora sei \"Collegato\""
+ "translation": "Ora sei in linea"
},
{
"id": "api.command_open.name",
- "translation": "Apri"
+ "translation": "apri"
+ },
+ {
+ "id": "api.command_search.desc",
+ "translation": "Cerca testo nei messaggi"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[text]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "cerca"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "Il comando di ricerca non è disponibile sul tuo dispositivo"
},
{
"id": "api.command_settings.desc",
@@ -753,7 +769,7 @@
},
{
"id": "api.command_shortcuts.browser.header",
- "translation": "#### Comandi Browser \n\n"
+ "translation": "#### Comandi Browser\n\n"
},
{
"id": "api.command_shortcuts.browser.highlight_next",
@@ -960,6 +976,10 @@
"translation": "Un errore sconosciuto è accaduto. Per favore contatta il supporto."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "La versione 3 delle API è stata disattivata su questo server. Per favore usare la versione 4 delle API. vedere https://api.mattermost.com per ulteriori dettagli."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Inizializzazione delle API routes deprecate"
},
@@ -1051,7 +1071,7 @@
},
{
"id": "api.emoji.delete.delete_reactions.app_error",
- "translation": "Impossibile cancellare le reazioni durante la cancellazione dell'Emoji %v"
+ "translation": "Impossibile cancellare le reazioni durante la cancellazione dell'emoji %v"
},
{
"id": "api.emoji.delete.permissions.app_error",
@@ -1059,7 +1079,7 @@
},
{
"id": "api.emoji.disabled.app_error",
- "translation": "Le emoji personalizzate sono state disabilitate dall'amministratore del sistema."
+ "translation": "Le emoji personalizzate sono state disabilitate dall'amministratore di sistema."
},
{
"id": "api.emoji.get_image.decode.app_error",
@@ -1071,11 +1091,11 @@
},
{
"id": "api.emoji.init.debug",
- "translation": "Inizializzazione delle API Routes per le emoji."
+ "translation": "Inizializzazione delle API Routes per le emoji"
},
{
"id": "api.emoji.init.debug",
- "translation": "Inizializzazione delle API Routes per le emoji."
+ "translation": "Inizializzazione delle API Routes per le emoji"
},
{
"id": "api.emoji.storage.app_error",
@@ -1107,7 +1127,7 @@
},
{
"id": "api.file.get_file.public_disabled.app_error",
- "translation": "I collegamenti pubblici sono stati disabilitati dall'Amministratore di Sistema"
+ "translation": "I collegamenti pubblici sono stati disabilitati dall'amministratore di sistema"
},
{
"id": "api.file.get_file.public_invalid.app_error",
@@ -1151,11 +1171,11 @@
},
{
"id": "api.file.handle_images_forget.encode_jpeg.error",
- "translation": "Impossibile codificare l'immagine come JPEG path=%v err=%v"
+ "translation": "Impossibile codificare l'immagine come jpeg path=%v err=%v"
},
{
"id": "api.file.handle_images_forget.encode_preview.error",
- "translation": "Impossibile codificare l'immagine come anteprima JPEG path=%v err=%v"
+ "translation": "Impossibile codificare l'immagine come anteprima jpeg path=%v err=%v"
},
{
"id": "api.file.handle_images_forget.upload_preview.error",
@@ -1203,7 +1223,7 @@
},
{
"id": "api.file.migrate_filenames_to_file_infos.not_migrating_post.debug",
- "translation": "pubblicazione già migrata per usare FileInfos, post_id=%v, err=%v"
+ "translation": "Pubblicazione già migrata per usare FileInfos, post_id=%v, err=%v"
},
{
"id": "api.file.migrate_filenames_to_file_infos.save_file_info.warn",
@@ -1315,7 +1335,7 @@
},
{
"id": "api.import.import_user.join_team.error",
- "translation": "Impossibile entrare in un gruppo durante l' importazione err=%v"
+ "translation": "Impossibile entrare in un gruppo durante l'importazione err=%v"
},
{
"id": "api.import.import_user.joining_default.error",
@@ -1331,7 +1351,7 @@
},
{
"id": "api.incoming_webhook.disabled.app_errror",
- "translation": "I webhooks in ingresso sono stati disabilitati dall'amministratore del sistema."
+ "translation": "I webhooks in ingresso sono stati disabilitati dall'amministratore di sistema."
},
{
"id": "api.ldap.init.debug",
@@ -1355,7 +1375,7 @@
},
{
"id": "api.license.add_license.no_file.app_error",
- "translation": "Nessun file per il campo \"licenza\" nella richiesta"
+ "translation": "Nessun file per il campo 'licenza' nella richiesta"
},
{
"id": "api.license.add_license.open.app_error",
@@ -1371,7 +1391,7 @@
},
{
"id": "api.license.add_license.unique_users.app_error",
- "translation": "La licensa supporta solo {{.Users}} utenti, il tuo sistema ha {{.Count}} utenti unici.Gli utenti unici sono contati in base al indirizzo email. Puoi vedere il conteggio totale degli utenti in Rapporti Sito -> Statistiche."
+ "translation": "La licensa supporta solo {{.Users}} utenti, il tuo sistema ha {{.Count}} utenti unici.Gli utenti unici sono contati in base all'indirizzo email. Puoi vedere il conteggio totale degli utenti in Rapporti Sito -> Statistiche."
},
{
"id": "api.license.client.old_format.app_error",
@@ -1407,11 +1427,11 @@
},
{
"id": "api.oauth.allow_oauth.turn_off.app_error",
- "translation": "L' amministratore di sistema ha disabilitato l' OAuth2."
+ "translation": "L'amministratore di sistema ha disabilitato l'OAuth2."
},
{
"id": "api.oauth.authorize_oauth.disabled.app_error",
- "translation": "L' amministratore di sistema ha disabilitato l' OAuth2."
+ "translation": "L'amministratore di sistema ha disabilitato l'OAuth2."
},
{
"id": "api.oauth.authorize_oauth.missing.app_error",
@@ -1431,11 +1451,11 @@
},
{
"id": "api.oauth.get_access_token.bad_client_secret.app_error",
- "translation": "invalid_request: secret_client mancante"
+ "translation": "invalid_request: Secret_client mancante"
},
{
"id": "api.oauth.get_access_token.bad_grant.app_error",
- "translation": "invalid_request: grant_type non valido"
+ "translation": "invalid_request: Grant_type non valido"
},
{
"id": "api.oauth.get_access_token.credentials.app_error",
@@ -1443,7 +1463,7 @@
},
{
"id": "api.oauth.get_access_token.disabled.app_error",
- "translation": "L' amministratore di sistema ha disabilitato l' OAuth2."
+ "translation": "L'amministratore di sistema ha disabilitato l'OAuth2."
},
{
"id": "api.oauth.get_access_token.expired_code.app_error",
@@ -1471,7 +1491,7 @@
},
{
"id": "api.oauth.get_access_token.missing_refresh_token.app_error",
- "translation": "invalid_request: refresh_token mancante"
+ "translation": "invalid_request: Refresh_token mancante"
},
{
"id": "api.oauth.get_access_token.redirect_uri.app_error",
@@ -1479,7 +1499,7 @@
},
{
"id": "api.oauth.get_access_token.refresh_token.app_error",
- "translation": "invalid_grant: refresh token non valido"
+ "translation": "invalid_grant: Refresh token non valido"
},
{
"id": "api.oauth.get_auth_data.find.error",
@@ -1490,12 +1510,16 @@
"translation": "Inizializzazione delle API Routes per OAUTH"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Token di stato non valido"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Permessi non validi per la rigenerazione del Secret dell'App OAuth2"
},
{
"id": "api.oauth.register_oauth_app.turn_off.app_error",
- "translation": "L'amministratore di sistema ha disabilitato l'OAuth Service Provider."
+ "translation": "L'amministratore di sistema ha disabilitato il servizio per l'autenticazione OAuth 2.0."
},
{
"id": "api.oauth.revoke_access_token.del_session.app_error",
@@ -1523,7 +1547,7 @@
},
{
"id": "api.opengraph.init.debug",
- "translation": "Inizializzazione API routes protocollo open graph"
+ "translation": "Inizializzazione api routes protocollo open graph"
},
{
"id": "api.post.check_for_out_of_channel_mentions.message.multiple",
@@ -1633,7 +1657,7 @@
},
{
"id": "api.post.link_preview_disabled.app_error",
- "translation": "Le anteprime dei collegamenti sono state disabilitate dall'Amministratore di Sistema"
+ "translation": "Le anteprime dei collegamenti sono state disabilitate dall'amministratore di sistema."
},
{
"id": "api.post.make_direct_channel_visible.get_2_members.error",
@@ -1705,7 +1729,7 @@
},
{
"id": "api.post.send_notifications_and_forget.push_message",
- "translation": "ti ha inviato un messaggio diretto"
+ "translation": " ti ha inviato un messaggio diretto"
},
{
"id": "api.post.send_notifications_and_forget.push_non_mention",
@@ -1777,7 +1801,7 @@
},
{
"id": "api.reaction.init.debug",
- "translation": "Inizializzazione API Routes delle reazioni"
+ "translation": "Inizializzazione api routes delle reazioni"
},
{
"id": "api.reaction.list_reactions.mismatched_channel_id.app_error",
@@ -1849,15 +1873,15 @@
},
{
"id": "api.slackimport.slack_add_bot_user.email_pwd",
- "translation": "Slack Bot/Post di Integrazione Importa Utente: Email, Password: {{.Email}}, {{.Password}}\r\n"
+ "translation": "Slack Bot/Integra pubblicazioni Importa Utente: Email, Password: {{.Email}}, {{.Password}}\r\n"
},
{
"id": "api.slackimport.slack_add_bot_user.unable_import",
- "translation": "Impossibile importare Slack Bot/Post di integrazione Utente: {{.Username}}\r\n"
+ "translation": "Impossibile importare Slack Bot/Integra pubblicazioni Utente: {{.Username}}\r\n"
},
{
"id": "api.slackimport.slack_add_channels.added",
- "translation": "\r\nCanale Aggiunto \r\n"
+ "translation": "\r\n Canale Aggiunto \r\n"
},
{
"id": "api.slackimport.slack_add_channels.failed_to_add_user",
@@ -1881,7 +1905,7 @@
},
{
"id": "api.slackimport.slack_add_posts.bot.warn",
- "translation": "Le pubblicazioni Slack bot non sono ancora importati"
+ "translation": "Le pubblicazioni slack bot non sono ancora importate"
},
{
"id": "api.slackimport.slack_add_posts.bot_user_no_exists.warn",
@@ -1901,7 +1925,7 @@
},
{
"id": "api.slackimport.slack_add_posts.unsupported.warn",
- "translation": "pubblicazione non supportata: %v, %v"
+ "translation": "Pubblicazione non supportata: %v, %v"
},
{
"id": "api.slackimport.slack_add_posts.upload_file_not_found.warn",
@@ -1929,7 +1953,7 @@
},
{
"id": "api.slackimport.slack_add_users.created",
- "translation": "\r\nUtente Creato\r\n"
+ "translation": "\r\n Utente Creato\r\n"
},
{
"id": "api.slackimport.slack_add_users.email_pwd",
@@ -1961,7 +1985,7 @@
},
{
"id": "api.slackimport.slack_convert_timestamp.bad.warn",
- "translation": "Rilevato Timestamp incorretto"
+ "translation": "Rilevato timestamp incorretto"
},
{
"id": "api.slackimport.slack_convert_user_mentions.compile_regexp_failed.warn",
@@ -1981,7 +2005,7 @@
},
{
"id": "api.slackimport.slack_import.note2",
- "translation": "- Le pubblicazioni dei bot di Slack non sono al momento supportate.\r\n"
+ "translation": "- Le pubblicazioni dei bot di slack non sono al momento supportate.\r\n"
},
{
"id": "api.slackimport.slack_import.note3",
@@ -1989,7 +2013,7 @@
},
{
"id": "api.slackimport.slack_import.notes",
- "translation": "\r\nNote \r\n"
+ "translation": "\r\n Note \r\n"
},
{
"id": "api.slackimport.slack_import.open.app_error",
@@ -2057,11 +2081,11 @@
},
{
"id": "api.team.create_team.email_disabled.app_error",
- "translation": "L' iscrizione al gruppo con email è disabilitata."
+ "translation": "L'iscrizione al gruppo con email è disabilitata."
},
{
"id": "api.team.create_team_from_signup.email_disabled.app_error",
- "translation": "L' accesso con email è disabilitato."
+ "translation": "L'accesso con email è disabilitato."
},
{
"id": "api.team.create_team_from_signup.expired_link.app_error",
@@ -2073,7 +2097,7 @@
},
{
"id": "api.team.create_team_from_signup.unavailable.app_error",
- "translation": "L' URL non è disponibile. Provane un altro."
+ "translation": "L'URL non è disponibile. Provane un altro."
},
{
"id": "api.team.email_teams.sending.error",
@@ -2081,7 +2105,7 @@
},
{
"id": "api.team.get_invite_info.not_open_team",
- "translation": "L' invito non è valido a causa del fatto che il gruppo non è aperto."
+ "translation": "L'invito non è valido a causa del fatto che il gruppo non è aperto."
},
{
"id": "api.team.import_team.admin.app_error",
@@ -2089,7 +2113,7 @@
},
{
"id": "api.team.import_team.array.app_error",
- "translation": "Lista vuota per il campo \"file\""
+ "translation": "Lista vuota per il campo 'file'"
},
{
"id": "api.team.import_team.integer.app_error",
@@ -2125,7 +2149,7 @@
},
{
"id": "api.team.invite_members.invalid_email.app_error",
- "translation": "I seguenti indirizzi eMail non appartengono ad un dominio accettato: {{.Addresses}}. Contattare l'amministratore del sistema per maggiori dettagli."
+ "translation": "I seguenti indirizzi email non appartengono ad un dominio accettato: {{.Addresses}}. Contattare l'amministratore di sistema per maggiori dettagli."
},
{
"id": "api.team.invite_members.member",
@@ -2141,7 +2165,7 @@
},
{
"id": "api.team.invite_members.restricted_team_admin.app_error",
- "translation": "L'invito di nuovi utenti nel gruppo è limitato all'Amministratore di Sistema e del gruppo. "
+ "translation": "L'invito di nuovi utenti nel gruppo è limitato all'Amministratore di Sistema e del gruppo."
},
{
"id": "api.team.invite_members.send.error",
@@ -2205,7 +2229,7 @@
},
{
"id": "api.templates.email_change_verify_body.info",
- "translation": "Per completare l' aggiornamento del tuo indirizzo email per {{.TeamDisplayName}}, segui il collegamento sottostante per confermare che l'indirizzo sia corretto."
+ "translation": "Per completare l'aggiornamento del tuo indirizzo email per {{.TeamDisplayName}}, segui il collegamento sottostante per confermare che l'indirizzo sia corretto."
},
{
"id": "api.templates.email_change_verify_body.title",
@@ -2221,11 +2245,11 @@
},
{
"id": "api.templates.email_info",
- "translation": "Qualsiasi domanda, mandaci una mail: <a href='mailto:{{.SupportEmail}}' style='text-decoration: none; color:#2389D7;'>{{.SupportEmail}}</a>.<br>Cordiali Saluti,<br>Il Team {{.SiteName}}<br>"
+ "translation": "Qualsiasi domanda, mandaci una mail: <a href='mailto:{{.SupportEmail}}' style='text-decoration: none; color:#2389D7;'>{{.SupportEmail}}</a>.<br>Cordiali Saluti,<br>Il Team {{.SiteName}}<br>"
},
{
"id": "api.templates.email_organization",
- "translation": "Spedito da"
+ "translation": "Spedito da "
},
{
"id": "api.templates.error.link",
@@ -2313,7 +2337,7 @@
},
{
"id": "api.templates.post_subject_in_channel",
- "translation": "{{.SubjectText}} su {{.TeamDisplayName}} ({{.ChannelName}}) il {{.Day}} {{.Month}} {{.Year}}"
+ "translation": "{{.SubjectText}} su {{.TeamDisplayName}} ({{.ChannelName}}) il {{.Day}} {{.Month}} {{.Year}}"
},
{
"id": "api.templates.post_subject_in_direct_message",
@@ -2377,7 +2401,7 @@
},
{
"id": "api.templates.upgrade_30_subject.info",
- "translation": "[MATTERMOST] Cambiamenti al tuo account per l' upgrade a Mattermost 3.0"
+ "translation": "[MATTERMOST] Cambiamenti al tuo account per l'upgrade a Mattermost 3.0"
},
{
"id": "api.templates.username_change_body.info",
@@ -2405,7 +2429,7 @@
},
{
"id": "api.templates.verify_subject",
- "translation": "[{{ .SiteName }}] Verifica Email"
+ "translation": "[{{ .SiteName }}] Verifica Email"
},
{
"id": "api.templates.welcome_body.app_download_info",
@@ -2469,7 +2493,7 @@
},
{
"id": "api.user.authorize_oauth_user.token_failed.app_error",
- "translation": "Richiesta Token fallita"
+ "translation": "Richiesta token fallita"
},
{
"id": "api.user.authorize_oauth_user.unsupported.app_error",
@@ -2525,7 +2549,7 @@
},
{
"id": "api.user.create_profile_image.encode.app_error",
- "translation": "Impossibile codificare l' immagine di profilo di default"
+ "translation": "Impossibile codificare l'immagine di profilo di default"
},
{
"id": "api.user.create_profile_image.initial.app_error",
@@ -2533,7 +2557,7 @@
},
{
"id": "api.user.create_user.accepted_domain.app_error",
- "translation": "L'indirizzo email fornito non appartiene ai domini accettati. Contattare l'amministratore del sistema oppure utilizzare una email differente."
+ "translation": "L'indirizzo email fornito non appartiene ai domini accettati. Contattare l'amministratore di sistema oppure utilizzare una email differente."
},
{
"id": "api.user.create_user.disabled.app_error",
@@ -2557,11 +2581,11 @@
},
{
"id": "api.user.create_user.save.error",
- "translation": "Impossibile salvare l' ultente err=%v"
+ "translation": "Impossibile salvare l'utente err=%v"
},
{
"id": "api.user.create_user.signup_email_disabled.app_error",
- "translation": "L' iscrizione al gruppo con email è disabilitata."
+ "translation": "L'iscrizione al gruppo con email è disabilitata."
},
{
"id": "api.user.create_user.signup_link_expired.app_error",
@@ -2613,7 +2637,7 @@
},
{
"id": "api.user.login.blank_pwd.app_error",
- "translation": "Il campo Password non può essere bianco"
+ "translation": "Il campo password non può essere bianco"
},
{
"id": "api.user.login.inactive.app_error",
@@ -2621,7 +2645,7 @@
},
{
"id": "api.user.login.invalid_credentials",
- "translation": "User ID o password non corretta"
+ "translation": "User ID o password non corretta."
},
{
"id": "api.user.login.not_provided.app_error",
@@ -2697,11 +2721,11 @@
},
{
"id": "api.user.reset_password.wrong_team.app_error",
- "translation": "Provando a resettare la password per l' utente su un gruppo sbagliato."
+ "translation": "Provando a resettare la password per l'utente su un gruppo sbagliato."
},
{
"id": "api.user.saml.not_available.app_error",
- "translation": "SAML non configurato o supportato su questo server"
+ "translation": "SAML non configurato o supportato su questo server."
},
{
"id": "api.user.send_email_change_email_and_forget.error",
@@ -2761,7 +2785,7 @@
},
{
"id": "api.user.update_password.context.app_error",
- "translation": "Aggiornamento password fallito perchè contesto user_id non coincide con user id"
+ "translation": "Aggiornamento password fallito perché contesto user_id non coincide con user id"
},
{
"id": "api.user.update_password.failed.app_error",
@@ -2773,11 +2797,11 @@
},
{
"id": "api.user.update_password.menu",
- "translation": "usando il menù dei settaggi"
+ "translation": "usando il menù impostazioni"
},
{
"id": "api.user.update_password.oauth.app_error",
- "translation": "Aggiornamento della password fallito perche l' utente è loggato tramite servizio OAuth"
+ "translation": "Aggiornamento della password fallito perché l'utente è loggato tramite servizio OAuth"
},
{
"id": "api.user.update_password.valid_account.app_error",
@@ -2805,11 +2829,11 @@
},
{
"id": "api.user.upload_profile_user.array.app_error",
- "translation": "Lista vuota per il campo \"image\" nella richiesta"
+ "translation": "Lista vuota per il campo 'image' nella richiesta"
},
{
"id": "api.user.upload_profile_user.decode.app_error",
- "translation": "Impossibile caricare l' immagine di profilo"
+ "translation": "Impossibile caricare l'immagine di profilo"
},
{
"id": "api.user.upload_profile_user.decode_config.app_error",
@@ -2821,7 +2845,7 @@
},
{
"id": "api.user.upload_profile_user.no_file.app_error",
- "translation": "Nessun file per il campo \"immagine\" nella richiesta"
+ "translation": "Nessun file per il campo 'immagine' nella richiesta"
},
{
"id": "api.user.upload_profile_user.open.app_error",
@@ -2841,7 +2865,7 @@
},
{
"id": "api.user.upload_profile_user.upload_profile.app_error",
- "translation": "Impossibile caricare l' immagine di profilo"
+ "translation": "Impossibile caricare l'immagine di profilo"
},
{
"id": "api.user.verify_email.bad_link.app_error",
@@ -2853,7 +2877,7 @@
},
{
"id": "api.web_hub.start.stopping.debug",
- "translation": "Chiusura delle connessioni hub websocket"
+ "translation": "chiusura delle connessioni hub websocket"
},
{
"id": "api.web_socket.connect.error",
@@ -2881,11 +2905,11 @@
},
{
"id": "api.webhook.create_outgoing.disabled.app_error",
- "translation": "I webhooks in uscita sono stati disabilitati dall'amministratore del sistema."
+ "translation": "I webhooks in uscita sono stati disabilitati dall'amministratore di sistema."
},
{
"id": "api.webhook.create_outgoing.intersect.app_error",
- "translation": "Outgoing webhooks dallo stesso canale non possono avere lo stesso trigger/callback URLs"
+ "translation": "Outgoing webhooks dallo stesso canale non possono avere lo stesso trigger/callback URLs."
},
{
"id": "api.webhook.create_outgoing.not_open.app_error",
@@ -2897,11 +2921,11 @@
},
{
"id": "api.webhook.create_outgoing.triggers.app_error",
- "translation": "Almeno una tra trigger_words o channel_id deve essere configurata."
+ "translation": "Almeno una tra trigger_words o channel_id deve essere configurata"
},
{
"id": "api.webhook.delete_incoming.disabled.app_error",
- "translation": "I webook in ingresso sono stati disabilitati dall'amministratore del sistema."
+ "translation": "I webook in ingresso sono stati disabilitati dall'amministratore di sistema."
},
{
"id": "api.webhook.delete_incoming.permissions.app_error",
@@ -2909,11 +2933,11 @@
},
{
"id": "api.webhook.delete_outgoing.disabled.app_error",
- "translation": "Outgoing webhooks sono stati disabilitati dall'amministratore del sistema."
+ "translation": "Outgoing webhooks sono stati disabilitati dall'amministratore di sistema."
},
{
"id": "api.webhook.delete_outgoing.permissions.app_error",
- "translation": "Permessi inappropriati per eliminare il webhook in uscita."
+ "translation": "Permessi inappropriati per eliminare il webhook in uscita"
},
{
"id": "api.webhook.incoming.debug",
@@ -2929,7 +2953,7 @@
},
{
"id": "api.webhook.regen_outgoing_token.permissions.app_error",
- "translation": "Permessi inappropriati per rigenerare il token del webhook in uscita."
+ "translation": "Permessi inappropriati per rigenerare il token del webhook in uscita"
},
{
"id": "api.webhook.team_mismatch.app_error",
@@ -2937,7 +2961,7 @@
},
{
"id": "api.webhook.update_incoming.disabled.app_error",
- "translation": "I webhook in ingresso sono stati disabilitati dall'amministratore del sistema."
+ "translation": "I webhook in ingresso sono stati disabilitati dall'amministratore di sistema."
},
{
"id": "api.webhook.update_incoming.permissions.app_error",
@@ -2945,11 +2969,11 @@
},
{
"id": "api.webhook.update_outgoing.disabled.app_error",
- "translation": "I webhook in uscita sono stati disabilitati dall'amministratore del sistema."
+ "translation": "I webhook in uscita sono stati disabilitati dall'amministratore di sistema."
},
{
"id": "api.webhook.update_outgoing.intersect.app_error",
- "translation": "I webhooks dallo stesso canale non possono avere gli stessi URL innesco/callback"
+ "translation": "I webhooks dallo stesso canale non possono avere gli stessi URL innesco/callback."
},
{
"id": "api.webhook.update_outgoing.not_open.app_error",
@@ -2961,7 +2985,7 @@
},
{
"id": "api.webhook.update_outgoing.triggers.app_error",
- "translation": "Almeno una tra trigger_words o channel_id deve essere configurata."
+ "translation": "Almeno una tra trigger_words o channel_id deve essere configurata"
},
{
"id": "api.webrtc.disabled.app_error",
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Errore durante la ricerca del canale diretto"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Errore durante la ricerca del canale diretto"
+ "translation": "Impossibile creare il canale diretto"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Errore durante la ricerca del canale di gruppo"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Errore durante la ricerca del canale di gruppo"
+ "translation": "Impossibile creare il canale di gruppo"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "Errore nella ricerca del membro del canale durante l'importazione della pubblicazione sul canale diretto"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Canale diretto non trovato"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Canale di gruppo non trovato"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "L'utente della pubblicazione non esiste"
},
@@ -3101,7 +3125,7 @@
},
{
"id": "app.import.validate_channel_import_data.display_name_missing.error",
- "translation": "Manca la proprietà del canale richiesta: display_name."
+ "translation": "Manca la proprietà del canale richiesta: display_name"
},
{
"id": "app.import.validate_channel_import_data.header_length.error",
@@ -3133,7 +3157,7 @@
},
{
"id": "app.import.validate_channel_import_data.type_missing.error",
- "translation": "Manca una proprietà richiesta del canale: tipo"
+ "translation": "Manca una proprietà richiesta del canale: tipo."
},
{
"id": "app.import.validate_direct_channel_import_data.header_length.error",
@@ -3285,11 +3309,11 @@
},
{
"id": "app.import.validate_user_import_data.email_length.error",
- "translation": "Il campo Email dell'utente ha una lunghezza non valida."
+ "translation": "Il campo email dell'utente ha una lunghezza non valida."
},
{
"id": "app.import.validate_user_import_data.email_missing.error",
- "translation": "Proprietà dell'utente mancante: Email."
+ "translation": "Proprietà dell'utente mancante: email."
},
{
"id": "app.import.validate_user_import_data.first_name_length.error",
@@ -3301,7 +3325,7 @@
},
{
"id": "app.import.validate_user_import_data.nickname_length.error",
- "translation": "Il campo Soprannome dell'utente è troppo lungo."
+ "translation": "Il campo soprannome dell'utente è troppo lungo."
},
{
"id": "app.import.validate_user_import_data.pasword_length.error",
@@ -3401,11 +3425,11 @@
},
{
"id": "ent.brand.save_brand_image.save_image.app_error",
- "translation": "Impossibile salvare l' immagine"
+ "translation": "Impossibile salvare l'immagine"
},
{
"id": "ent.brand.save_brand_image.too_large.app_error",
- "translation": "Impossibile aprire l' immagine. Immagine tropppo larga."
+ "translation": "Impossibile aprire l'immagine. Immagine troppo larga."
},
{
"id": "ent.cluster.config_changed.info",
@@ -3441,7 +3465,7 @@
},
{
"id": "ent.cluster.save_config.error",
- "translation": "La console di Sistema è configurata in sola lettura quando l'Alta Disponibilità è attiva a meno che il parametro ReadOnlyConfig non sia disattivato nel file di configurazione."
+ "translation": "La console di Sistema è configurata in sola lettura quando l'Alta Disponibilità è attiva a meno che il parametro ReadOnlyConfig non sia disattivato nel file di configurazione."
},
{
"id": "ent.cluster.starting.info",
@@ -3465,7 +3489,7 @@
},
{
"id": "ent.compliance.run_limit.warning",
- "translation": "Allerta esportazione di conformità per l'attività '{{.JobName}} troppe righe ritornate limitato a 30,000 in '{{.FilePath}}'"
+ "translation": "Allerta esportazione di conformità per l'attività '{{.JobName}} troppe righe ritornate limitato a 30,000 in '{{.FilePath}}'"
},
{
"id": "ent.compliance.run_started.info",
@@ -3537,7 +3561,7 @@
},
{
"id": "ent.ldap.do_login.matched_to_many_users.app_error",
- "translation": "L'Username fornito corrisponde a più utenti"
+ "translation": "L'username fornito corrisponde a più utenti"
},
{
"id": "ent.ldap.do_login.search_ldap_server.app_error",
@@ -3593,11 +3617,11 @@
},
{
"id": "ent.mfa.activate.save_active.app_erro",
- "translation": "Impossibile aggiornare lo stato MFA attivo per l' utente"
+ "translation": "Impossibile aggiornare lo stato MFA attivo per l'utente"
},
{
"id": "ent.mfa.deactivate.save_active.app_erro",
- "translation": "Impossibile aggiornare lo stato MFA attivo per l' utente"
+ "translation": "Impossibile aggiornare lo stato MFA attivo per l'utente"
},
{
"id": "ent.mfa.deactivate.save_secret.app_error",
@@ -3613,7 +3637,7 @@
},
{
"id": "ent.mfa.license_disable.app_error",
- "translation": "La tua licenza non supporta l' autenticazione multifattore"
+ "translation": "La tua licenza non supporta l'autenticazione multifattore"
},
{
"id": "ent.mfa.validate_token.authenticate.app_error",
@@ -3625,7 +3649,7 @@
},
{
"id": "ent.migration.migratetoldap.user_not_found",
- "translation": "Impossible trovare l'utente sul server AD/LDAP."
+ "translation": "Impossible trovare l'utente sul server AD/LDAP: "
},
{
"id": "ent.saml.attribute.app_error",
@@ -3737,7 +3761,7 @@
},
{
"id": "manaultesting.manual_test.parse.app_error",
- "translation": "Impossibile analizzare l' URL"
+ "translation": "Impossibile analizzare l'URL"
},
{
"id": "manaultesting.manual_test.setup.info",
@@ -3749,7 +3773,7 @@
},
{
"id": "manaultesting.test_autolink.info",
- "translation": "Manual Auto Link Test"
+ "translation": "Prova manualmente auto link"
},
{
"id": "manaultesting.test_autolink.unable.app_error",
@@ -3773,7 +3797,7 @@
},
{
"id": "mattermost.load_license.find.warn",
- "translation": "Per sbloccare le funzioni enterprise è necessario un codice licenza ricevuto da https://mattermost.com "
+ "translation": "Per sbloccare le funzioni enterprise è necessario un codice licenza ricevuto da https://mattermost.com."
},
{
"id": "mattermost.security_bulletin.error",
@@ -3809,11 +3833,11 @@
},
{
"id": "model.access.is_valid.client_id.app_error",
- "translation": "ID client non valido"
+ "translation": "Id client non valido"
},
{
"id": "model.access.is_valid.redirect_uri.app_error",
- "translation": "URI di redirect invalido"
+ "translation": "Uri di redirect invalido"
},
{
"id": "model.access.is_valid.refresh_token.app_error",
@@ -3821,7 +3845,7 @@
},
{
"id": "model.access.is_valid.user_id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.authorize.is_valid.auth_code.app_error",
@@ -3829,7 +3853,7 @@
},
{
"id": "model.authorize.is_valid.client_id.app_error",
- "translation": "ID clienta sbagliato"
+ "translation": "Id client non valido"
},
{
"id": "model.authorize.is_valid.create_at.app_error",
@@ -3841,7 +3865,7 @@
},
{
"id": "model.authorize.is_valid.redirect_uri.app_error",
- "translation": "URI di redirezione non valida"
+ "translation": "Uri di redirect non valido"
},
{
"id": "model.authorize.is_valid.response_type.app_error",
@@ -3857,7 +3881,7 @@
},
{
"id": "model.authorize.is_valid.user_id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.channel.is_valid.2_or_more.app_error",
@@ -3901,11 +3925,11 @@
},
{
"id": "model.channel_member.is_valid.channel_id.app_error",
- "translation": "ID canale non valido"
+ "translation": "Id canale non valido"
},
{
"id": "model.channel_member.is_valid.email_value.app_error",
- "translation": "Valore Email della notifica non valido"
+ "translation": "Valore email della notifica non valido"
},
{
"id": "model.channel_member.is_valid.notify_level.app_error",
@@ -3925,11 +3949,11 @@
},
{
"id": "model.channel_member.is_valid.user_id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.client.connecting.app_error",
- "translation": "E' stato riscontrato un errore durente la connessione al server"
+ "translation": "E' stato riscontrato un errore durante la connessione al server"
},
{
"id": "model.client.create_emoji.emoji.app_error",
@@ -3961,7 +3985,7 @@
},
{
"id": "model.client.set_profile_user.no_file.app_error",
- "translation": "Nessun file per il campo \"immagine\" nella richiesta"
+ "translation": "Nessun file per il campo 'immagine' nella richiesta"
},
{
"id": "model.client.set_profile_user.writer.app_error",
@@ -4037,7 +4061,7 @@
},
{
"id": "model.command.is_valid.user_id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.compliance.is_valid.create_at.app_error",
@@ -4101,7 +4125,7 @@
},
{
"id": "model.config.is_valid.email_security.app_error",
- "translation": "Sicurezza connesione email non valida. Deve essere \",'TLS', or 'STARTTLS'"
+ "translation": "Sicurezza della connessione email non valida. Deve essere '','TLS', or 'STARTTLS'"
},
{
"id": "model.config.is_valid.encrypt_sql.app_error",
@@ -4129,7 +4153,7 @@
},
{
"id": "model.config.is_valid.file_salt.app_error",
- "translation": "Salt per il collegamento pubblico non valido per le impostazioni file. Deve essere maggiore o uguale a 32 caratteri"
+ "translation": "Salt per il collegamento pubblico non valido per le impostazioni file. Deve essere maggiore o uguale a 32 caratteri."
},
{
"id": "model.config.is_valid.file_thumb_height.app_error",
@@ -4181,7 +4205,7 @@
},
{
"id": "model.config.is_valid.ldap_security.app_error",
- "translation": "Impostazione di sicurezza connessione AD/LDAP non valida. Deve essere \",'TLS', or 'STARTTLS'"
+ "translation": "Impostazione di sicurezza connessione AD/LDAP non valida. Deve essere '','TLS', or 'STARTTLS'"
},
{
"id": "model.config.is_valid.ldap_server",
@@ -4261,19 +4285,19 @@
},
{
"id": "model.config.is_valid.saml_idp_descriptor_url.app_error",
- "translation": "L'URL Login Fornitore Identità deve essere un URL valido ed iniziare con http:// o https://. "
+ "translation": "L'URL Login Fornitore Identità deve essere un URL valido ed iniziare con http:// o https://."
},
{
"id": "model.config.is_valid.saml_idp_url.app_error",
- "translation": "L'URL SAML SSO deve essere un URL valido ed iniziare con http:// o https://. "
+ "translation": "L'URL SAML SSO deve essere un URL valido ed iniziare con http:// o https://."
},
{
"id": "model.config.is_valid.saml_private_key.app_error",
- "translation": "Chiave Privata Fornitore Servizio mancante. Hai dimenticato di effettuare il caricamento dello stesso? "
+ "translation": "Chiave Privata Fornitore Servizio mancante. Hai dimenticato di effettuare il caricamento dello stesso?"
},
{
"id": "model.config.is_valid.saml_public_cert.app_error",
- "translation": "Certificato Pubblico Fornitore Servizio mancante. Hai dimenticato di effettuare il caricamento dello stesso? "
+ "translation": "Certificato Pubblico Fornitore Servizio mancante. Hai dimenticato di effettuare il caricamento dello stesso?"
},
{
"id": "model.config.is_valid.saml_username_attribute.app_error",
@@ -4313,7 +4337,7 @@
},
{
"id": "model.config.is_valid.teammate_name_display.app_error",
- "translation": "Invalid teammate display. Must be 'full_name', 'nickname_full_name' or 'username'"
+ "translation": "Nome collega non valido. Deve essere 'nome_utente', 'soprannome_nome_utente' o 'username'"
},
{
"id": "model.config.is_valid.time_between_user_typing.app_error",
@@ -4329,7 +4353,7 @@
},
{
"id": "model.config.is_valid.webrtc_gateway_ws_url.app_error",
- "translation": "L'URL per il Websocket del WebRTC Gateway deve essere valido ed iniziare con ws:// o wss://. "
+ "translation": "L'URL per il Websocket del WebRTC Gateway deve essere valido ed iniziare con ws:// o wss://."
},
{
"id": "model.config.is_valid.webrtc_stun_uri.app_error",
@@ -4365,7 +4389,7 @@
},
{
"id": "model.emoji.id.app_error",
- "translation": "id emoji non valido"
+ "translation": "Id emoji non valido"
},
{
"id": "model.emoji.name.app_error",
@@ -4381,7 +4405,7 @@
},
{
"id": "model.incoming_hook.channel_id.app_error",
- "translation": "ID canale non valido"
+ "translation": "Id canale non valido"
},
{
"id": "model.incoming_hook.create_at.app_error",
@@ -4409,11 +4433,11 @@
},
{
"id": "model.incoming_hook.user_id.app_error",
- "translation": "User ID non valido"
+ "translation": "User id non valido"
},
{
"id": "model.oauth.is_valid.app_id.app_error",
- "translation": "App ID non valido"
+ "translation": "App id non valido"
},
{
"id": "model.oauth.is_valid.callback.app_error",
@@ -4429,7 +4453,7 @@
},
{
"id": "model.oauth.is_valid.creator_id.app_error",
- "translation": "Creatore ID non valido"
+ "translation": "Id creatore non valido"
},
{
"id": "model.oauth.is_valid.description.app_error",
@@ -4457,7 +4481,7 @@
},
{
"id": "model.outgoing_hook.is_valid.channel_id.app_error",
- "translation": "ID canale non valido"
+ "translation": "Id canale non valido"
},
{
"id": "model.outgoing_hook.is_valid.create_at.app_error",
@@ -4505,7 +4529,7 @@
},
{
"id": "model.post.is_valid.channel_id.app_error",
- "translation": "ID canale non valido"
+ "translation": "Id canale non valido"
},
{
"id": "model.post.is_valid.create_at.app_error",
@@ -4533,11 +4557,11 @@
},
{
"id": "model.post.is_valid.original_id.app_error",
- "translation": "ID originale non valido"
+ "translation": "Id originale non valido"
},
{
"id": "model.post.is_valid.parent_id.app_error",
- "translation": "ID genitore non valido"
+ "translation": "Id genitore non valido"
},
{
"id": "model.post.is_valid.props.app_error",
@@ -4545,7 +4569,7 @@
},
{
"id": "model.post.is_valid.root_id.app_error",
- "translation": "ID radice non valido"
+ "translation": "Id radice non valido"
},
{
"id": "model.post.is_valid.root_parent.app_error",
@@ -4561,7 +4585,7 @@
},
{
"id": "model.post.is_valid.user_id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.preference.is_valid.category.app_error",
@@ -4569,7 +4593,7 @@
},
{
"id": "model.preference.is_valid.id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.preference.is_valid.name.app_error",
@@ -4597,7 +4621,7 @@
},
{
"id": "model.reaction.is_valid.user_id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.team.is_valid.characters.app_error",
@@ -4633,7 +4657,7 @@
},
{
"id": "model.team.is_valid.reserved.app_error",
- "translation": "L' URL non è disponibile. Provane un altro."
+ "translation": "L'URL non è disponibile. Provane un altro."
},
{
"id": "model.team.is_valid.type.app_error",
@@ -4657,7 +4681,7 @@
},
{
"id": "model.team_member.is_valid.user_id.app_error",
- "translation": "User ID invalido"
+ "translation": "Id utente non valido"
},
{
"id": "model.token.is_valid.expiry",
@@ -4693,7 +4717,7 @@
},
{
"id": "model.user.is_valid.id.app_error",
- "translation": "ID utente non valido"
+ "translation": "Id utente non valido"
},
{
"id": "model.user.is_valid.last_name.app_error",
@@ -4741,7 +4765,7 @@
},
{
"id": "model.user.is_valid.pwd_lowercase_uppercase_number_symbol.app_error",
- "translation": "La tua password deve contenere almeno {{.Min}} caratteri e deve essere composta da almeno una lettera minuscola, almeno una lettera maiuscola, almeno un numero ed almeno un simbolo (es.: \"~!@#$%^&*()\")"
+ "translation": "La tua password deve contenere almeno {{.Min}} caratteri e deve essere composta da almeno una lettera minuscola, almeno una lettera maiuscola, almeno un numero ed almeno un simbolo (es.: \"~!@#$%^&*()\")."
},
{
"id": "model.user.is_valid.pwd_lowercase_uppercase_symbol.app_error",
@@ -4753,11 +4777,11 @@
},
{
"id": "model.user.is_valid.pwd_number_symbol.app_error",
- "translation": "La tua password deve contenere almeno {{.Min}} caratteri e deve essere composta da almeno un numero ed almeno un simbolo (es.: \"~!@#$%^&*()\")"
+ "translation": "La tua password deve contenere almeno {{.Min}} caratteri e deve essere composta da almeno un numero ed almeno un simbolo (es.: \"~!@#$%^&*()\")."
},
{
"id": "model.user.is_valid.pwd_symbol.app_error",
- "translation": "La tua password deve contenere almeno {{.Min}} caratteri e deve essere composta da almeno un simbolo (es.: \"~!@#$%^&*()\")"
+ "translation": "La tua password deve contenere almeno {{.Min}} caratteri e deve essere composta da almeno un simbolo (es.: \"~!@#$%^&*()\")."
},
{
"id": "model.user.is_valid.pwd_uppercase.app_error",
@@ -4873,7 +4897,7 @@
},
{
"id": "store.sql.read_replicas_not_licensed.critical",
- "translation": "Più di una funzionalità disabilitata dalla licenza in uso. Per favore contatta il tuo amministratore di sistema informandolo di aggiornare la licenza enterprise."
+ "translation": "Più di 1 funzionalità di lettura in replica disabilitata dalla licenza in uso. Per favore contatta il tuo amministratore di sistema informandolo di aggiornare la licenza enterprise."
},
{
"id": "store.sql.remove_index.critical",
@@ -5233,7 +5257,7 @@
},
{
"id": "store.sql_emoji.get_all.app_error",
- "translation": "Non è stato possibile Impossibile recuperare l'emoji"
+ "translation": "Non è stato possibile recuperare l'emoji"
},
{
"id": "store.sql_emoji.get_by_name.app_error",
@@ -5377,11 +5401,11 @@
},
{
"id": "store.sql_oauth.save_app.save.app_error",
- "translation": "Non è possibile salvare l' app."
+ "translation": "Non è possibile salvare l'app."
},
{
"id": "store.sql_oauth.save_auth_data.app_error",
- "translation": "Non è stato possibile salvare il codice di autorizzazione"
+ "translation": "Non è stato possibile salvare il codice di autorizzazione."
},
{
"id": "store.sql_oauth.update_access_data.app_error",
@@ -5397,7 +5421,7 @@
},
{
"id": "store.sql_oauth.update_app.update.app_error",
- "translation": "Non è possibile aggiornare l' app"
+ "translation": "Non è possibile aggiornare l'app"
},
{
"id": "store.sql_oauth.update_app.updating.app_error",
@@ -5697,7 +5721,7 @@
},
{
"id": "store.sql_system.get_by_name.app_error",
- "translation": "Non è stato possibile trovare la variabile di sistema"
+ "translation": "Non è stato possibile trovare la variabile di sistema."
},
{
"id": "store.sql_system.get_version.app_error",
@@ -5845,7 +5869,7 @@
},
{
"id": "store.sql_user.get_all_using_auth_service.other.app_error",
- "translation": "Errore riscontrato durante la ricerca di tutti gli account che utilizzano il tipo di autenticazione specificato. "
+ "translation": "Errore riscontrato durante la ricerca di tutti gli account che utilizzano il tipo di autenticazione specificato."
},
{
"id": "store.sql_user.get_by_auth.missing_account.app_error",
@@ -5869,7 +5893,7 @@
},
{
"id": "store.sql_user.get_new_users.app_error",
- "translation": "Errore riscontrato durante la ricerca delle preferenze"
+ "translation": "Errore riscontrato durante la ricerca dei nuovi utenti"
},
{
"id": "store.sql_user.get_profiles.app_error",
@@ -6301,11 +6325,11 @@
},
{
"id": "web.incoming_webhook.user.app_error",
- "translation": "Non è stato possibile trovare l' utente"
+ "translation": "Non è stato possibile trovare l'utente"
},
{
"id": "web.init.debug",
- "translation": "Inizializzazione delle API Routes di amministrazione"
+ "translation": "Inizializzazione delle api routes di amministrazione"
},
{
"id": "web.login.error",
diff --git a/i18n/ja.json b/i18n/ja.json
index d5584ee3a..cb33cb133 100644
--- a/i18n/ja.json
+++ b/i18n/ja.json
@@ -708,6 +708,22 @@
"translation": "開く"
},
{
+ "id": "api.command_search.desc",
+ "translation": "メッセージ内のテキストを検索する"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[テキスト]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "検索"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "このデバイスでは検索コマンドはサポートされていません"
+ },
+ {
"id": "api.command_settings.desc",
"translation": "アカウント設定ダイアログを開く"
},
@@ -960,6 +976,10 @@
"translation": "詳細不明なエラーが発生しました。サポートに問い合わせしてください。"
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "APIバージョン3はこのサーバーでは無効化されています。APIバージョン4を使用してください。詳しくは https://api.mattermost.com を参照してください。"
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "非推奨APIルートを初期化しています"
},
@@ -1490,6 +1510,10 @@
"translation": "OAuth APIルートを初期化しています"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "不正な状態トークン"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "OAuth2アプリケーションの秘密情報の再生成に必要な権限が付与されていません"
},
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "ダイレクトチャンネルを取得できませんでした"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "ダイレクトチャンネルを取得できませんでした"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "グループチャンネルを取得できませんでした"
+ "translation": "ダイレクトチャンネルを作成できませんでした"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "グループチャンネルを取得できませんでした"
+ "translation": "グループチャンネルを作成できませんでした"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "ダイレクトチャンネルの投稿をインポートする際にチャンネルメンバーが見つかりませんでした"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "ダイレクトチャンネルを取得できませんでした"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "グループチャンネルを取得できませんでした"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "投稿ユーザーが存在しません"
},
diff --git a/i18n/ko.json b/i18n/ko.json
index c550f632c..73a60c36b 100644
--- a/i18n/ko.json
+++ b/i18n/ko.json
@@ -49,19 +49,19 @@
},
{
"id": "api.admin.add_certificate.no_file.app_error",
- "translation": "요청의 'certificate' 항목에 파일이 없습니다."
+ "translation": "요청된 '인증서' 항목의 파일이 없습니다."
},
{
"id": "api.admin.add_certificate.open.app_error",
- "translation": "인증서를 열 수 없습니다."
+ "translation": "인증서 파일을 열 수 없습니다."
},
{
"id": "api.admin.add_certificate.saving.app_error",
- "translation": "인증서를 저장할 수 없습니다"
+ "translation": "인증서 파일을 저장할 수 없습니다."
},
{
"id": "api.admin.file_read_error",
- "translation": "로그 파일을 읽는데 오류가 발생했습니다"
+ "translation": "로그 파일을 읽는데 오류가 발생했습니다."
},
{
"id": "api.admin.get_brand_image.not_available.app_error",
@@ -77,7 +77,7 @@
},
{
"id": "api.admin.recycle_db_end.warn",
- "translation": "DB 연결 재사용 완료"
+ "translation": "DB 연결 재사용을 완료했습니다."
},
{
"id": "api.admin.recycle_db_start.warn",
@@ -89,7 +89,7 @@
},
{
"id": "api.admin.saml.metadata.app_error",
- "translation": "An error occurred while building Service Provider Metadata."
+ "translation": "서비스 제공 메타 데이터를 만드는 중 오류가 발생하였습니다."
},
{
"id": "api.admin.test_email.body",
@@ -185,11 +185,11 @@
},
{
"id": "api.channel.can_manage_channel.private_restricted_system_admin.app_error",
- "translation": "공개 채널 생성, 관리는 시스템 관리자 권한이 필요합니다."
+ "translation": "공개 채널의 생성 및 관리는 시스템 관리자 권한이 필요합니다."
},
{
"id": "api.channel.can_manage_channel.private_restricted_team_admin.app_error",
- "translation": "공개 채널 생성, 관리는 팀 관리자 또는 시스템 관리자 권한이 필요합니다."
+ "translation": "비공개 채널 생성 및 관리 권한은 팀 관리자 및 시스템 관리자에게만 주어집니다."
},
{
"id": "api.channel.can_manage_channel.public_restricted_system_admin.app_error",
@@ -225,11 +225,11 @@
},
{
"id": "api.channel.create_group.bad_size.app_error",
- "translation": "Group message channels must contain at least 3 and no more than 8 users"
+ "translation": "그룹 메세지 채널은 최소 3명에서 최대 8명까지의 사용자를 포함해야 합니다."
},
{
"id": "api.channel.create_group.bad_user.app_error",
- "translation": "One of the provided users does not exist"
+ "translation": "제공된 사용자 중 존재하지 않는 사용자가 있습니다."
},
{
"id": "api.channel.delete_channel.archived",
@@ -393,7 +393,7 @@
},
{
"id": "api.cluster.init.debug",
- "translation": "사용자 API 경로 초기화 중"
+ "translation": "클러스터 API 경로 초기화 중"
},
{
"id": "api.command.admin_only.app_error",
@@ -461,7 +461,7 @@
},
{
"id": "api.command.invite_people.invite_off",
- "translation": "User creation has been disabled on this server, no invite(s) sent"
+ "translation": "이 서버의 사용자 생성는 중지되어 있습니다. 초대가 보내지지 않습니다"
},
{
"id": "api.command.invite_people.name",
@@ -501,11 +501,11 @@
},
{
"id": "api.command_channel_header.channel.app_error",
- "translation": "Error to retrieve the current channel."
+ "translation": "현재 채널을 찾는 중 오류가 발생하였습니다."
},
{
"id": "api.command_channel_header.desc",
- "translation": "Edit the channel header"
+ "translation": "채널 머릿말 수정"
},
{
"id": "api.command_channel_header.hint",
@@ -513,7 +513,7 @@
},
{
"id": "api.command_channel_header.message.app_error",
- "translation": "Text must be provided with the /header command."
+ "translation": "문장은 /header 명령과 함께 입력되어야 합니다."
},
{
"id": "api.command_channel_header.name",
@@ -521,15 +521,15 @@
},
{
"id": "api.command_channel_header.permission.app_error",
- "translation": "You do not have the appropriate permissions to edit the channel header."
+ "translation": "당신은 채널 머릿말을 수정할 권한을 가지고 있지 않습니다."
},
{
"id": "api.command_channel_header.update_channel.app_error",
- "translation": "Error to update the current channel."
+ "translation": "현재 채널의 업데이트에 실패하였습니다."
},
{
"id": "api.command_channel_header.update_channel.success",
- "translation": "Channel header successfully updated."
+ "translation": "채널 머릿말이 성공적으로 업데이트되었습니다."
},
{
"id": "api.command_collapse.desc",
@@ -589,7 +589,7 @@
},
{
"id": "api.command_help.desc",
- "translation": "Open the Mattermost help page"
+ "translation": "Mattermost 도움말 페이지 열기"
},
{
"id": "api.command_help.name",
@@ -705,11 +705,27 @@
},
{
"id": "api.command_open.name",
- "translation": "open"
+ "translation": "열기"
+ },
+ {
+ "id": "api.command_search.desc",
+ "translation": "메세지에서 문장 찾기"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[text]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "search"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "당신의 기기에서는 검색 명령을 지원하지 않습니다"
},
{
"id": "api.command_settings.desc",
- "translation": "Open the Account Settings dialog"
+ "translation": "계정 설정 화면 열기"
},
{
"id": "api.command_settings.name",
@@ -717,7 +733,7 @@
},
{
"id": "api.command_settings.unsupported.app_error",
- "translation": "The settings command is not supported on your device"
+ "translation": "당신의 기기에서는 설정 명령을 지원하지 않습니다"
},
{
"id": "api.command_shortcuts.browser.channel_next",
@@ -817,7 +833,7 @@
},
{
"id": "api.command_shortcuts.msgs.reply",
- "translation": "SHIFT+UP (in empty input field): Reply to the most recent message in the current channel\n"
+ "translation": "SHIFT+UP (빈 입력창에서):현재 채널의 가장 마지막 메세지에 대답\n"
},
{
"id": "api.command_shortcuts.msgs.reprint_next",
@@ -833,7 +849,7 @@
},
{
"id": "api.command_shortcuts.nav.direct_messages_menu",
- "translation": "{{.CmdOrCtrl}}+SHIFT+K: Open direct messages menu\n"
+ "translation": "{{.CmdOrCtrl}}+SHIFT+K: Direct 메세지 메뉴 열기\n"
},
{
"id": "api.command_shortcuts.nav.header",
@@ -889,7 +905,7 @@
},
{
"id": "api.config.client.old_format.app_error",
- "translation": "New format for the client configuration is not supported yet. Please specify format=old in the query string."
+ "translation": "사용자 설정을 위한 새로운 형식은 아직 지원되지 않습니다. 명령문에서 format=old 를 명시해 주세요."
},
{
"id": "api.context.404.app_error",
@@ -960,6 +976,10 @@
"translation": "알 수 없는 오류가 발생했습니다. 지원 서비스에 연락하시기 바랍니다."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API 버전 3은 이 서버에서 비활성화 되어 있습니다. API 버전 4를 이용하십시오. 자세한 내용은 다음을 참고하세요 : https://api.mattermost.com "
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "명령어 API 경로 초기화 중"
},
@@ -997,7 +1017,7 @@
},
{
"id": "api.email_batching.render_batched_post.group_message",
- "translation": "Group Message"
+ "translation": "그룹 메세지"
},
{
"id": "api.email_batching.render_batched_post.sender.app_error",
@@ -1095,15 +1115,15 @@
},
{
"id": "api.emoji.upload.large_image.gif_decode_error",
- "translation": "이모티콘을 생성할 수 없습니다. 이미지 디코딩 시도 중 오류가 발생했습니다."
+ "translation": "이모지를 만들 수 없습니다. GIF 디코딩 중 오류가 발생했습니다."
},
{
"id": "api.emoji.upload.large_image.gif_encode_error",
- "translation": "이모티콘을 생성할 수 없습니다. 이미지 인코딩 시도 중 오류가 발생했습니다."
+ "translation": "이모지를 만들 수 없습니다. GIF 인코딩 중 오류가 발생했습니다."
},
{
"id": "api.file.attachments.disabled.app_error",
- "translation": "File attachments have been disabled on this server."
+ "translation": "이 서버는 파일 첨부가 비활성화 되어 있습니다."
},
{
"id": "api.file.get_file.public_disabled.app_error",
@@ -1271,7 +1291,7 @@
},
{
"id": "api.file.upload_file.bad_parse.app_error",
- "translation": "Unable to upload file. Header cannot be parsed."
+ "translation": "파일을 업로드 할 수 없습니다. 머릿말 파싱에 실패하였습니다."
},
{
"id": "api.file.upload_file.large_image.app_error",
@@ -1375,7 +1395,7 @@
},
{
"id": "api.license.client.old_format.app_error",
- "translation": "New format for the client license is not supported yet. Please specify format=old in the query string."
+ "translation": "사용자 설정을 위한 새로운 형식은 아직 지원되지 않습니다. 명령문에서 format=old 를 명시해 주세요."
},
{
"id": "api.license.init.debug",
@@ -1490,6 +1510,10 @@
"translation": "oauth API 경로 초기화 중"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Invalid state token"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "OAuth2 앱의 Secret를 재생성하기에 부적절한 권합니다."
},
@@ -1637,7 +1661,7 @@
},
{
"id": "api.post.make_direct_channel_visible.get_2_members.error",
- "translation": "다이렉트 채널의 두명의 구성원을 가져올 수 없습니다. channel_id=%v"
+ "translation": "다이렉트 채널에 2명의 구성원을 가져올 수 없습니다. channel_id={{.ChannelId}}"
},
{
"id": "api.post.make_direct_channel_visible.get_members.error",
@@ -2185,7 +2209,7 @@
},
{
"id": "api.templates.channel_name.group",
- "translation": "Group Message"
+ "translation": "그룹 메세지"
},
{
"id": "api.templates.email_change_body.info",
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
+ "translation": "Failed to create direct channel"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Failed to create group channel"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "Could not find channel member when importing direct channel post"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Failed to get direct channel"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Failed to get group channel"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "Post user does not exist"
},
diff --git a/i18n/nl.json b/i18n/nl.json
index 3d47011ba..a3989aae1 100644
--- a/i18n/nl.json
+++ b/i18n/nl.json
@@ -708,6 +708,22 @@
"translation": "open"
},
{
+ "id": "api.command_search.desc",
+ "translation": "Search text in messages"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[text]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "search"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "The search command is not supported on your device"
+ },
+ {
"id": "api.command_settings.desc",
"translation": "Open the Account Settings dialog"
},
@@ -960,6 +976,10 @@
"translation": "Een onbekende fout is opgetreden. Neem contact op met support."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API version 3 has been disabled on this server. Please use API version 4. See https://api.mattermost.com for details."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Initialisatie van de opdracht API routes"
},
@@ -1490,6 +1510,10 @@
"translation": "Initialisatie van de oauth api"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Invalid state token"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Onvoldoende rechten voor het hergenereren van de OAuth2 Applicatie Secret"
},
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Failed to create direct channel"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Failed to create group channel"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "Could not find channel member when importing direct channel post"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Failed to get direct channel"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Failed to get group channel"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "Post user does not exist"
},
diff --git a/i18n/pl.json b/i18n/pl.json
index dadd736b3..9ba0d6dbe 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -501,11 +501,11 @@
},
{
"id": "api.command_channel_header.channel.app_error",
- "translation": "Error to retrieve the current channel."
+ "translation": "Błąd aktualizacji bieżącego kanału."
},
{
"id": "api.command_channel_header.desc",
- "translation": "Edit the channel header"
+ "translation": "Edycja nagłówka kanału"
},
{
"id": "api.command_channel_header.hint",
@@ -513,7 +513,7 @@
},
{
"id": "api.command_channel_header.message.app_error",
- "translation": "Text must be provided with the /header command."
+ "translation": "Tekst powinien być dostarczony za pomocą polecenia /header."
},
{
"id": "api.command_channel_header.name",
@@ -521,11 +521,11 @@
},
{
"id": "api.command_channel_header.permission.app_error",
- "translation": "You do not have the appropriate permissions to edit the channel header."
+ "translation": "Nie posiadasz odpowiednich uprawnień do edycji nagłówka kanału."
},
{
"id": "api.command_channel_header.update_channel.app_error",
- "translation": "Error to update the current channel."
+ "translation": "Błąd aktualizacji bieżącego kanału."
},
{
"id": "api.command_channel_header.update_channel.success",
@@ -589,7 +589,7 @@
},
{
"id": "api.command_help.desc",
- "translation": "Open the Mattermost help page"
+ "translation": "Otwórz stronę pomocy Mattermost"
},
{
"id": "api.command_help.name",
@@ -708,6 +708,22 @@
"translation": "otwórz"
},
{
+ "id": "api.command_search.desc",
+ "translation": "Wyszukiwanie tekstu w wiadomościach"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[tekst]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "search"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "Polecenie wyszukiwania nie jest wspierana na Twoim urządzeniu"
+ },
+ {
"id": "api.command_settings.desc",
"translation": "Otwórz dialog ustawień konta"
},
@@ -960,6 +976,10 @@
"translation": "Wystąpił nieznany błąd. Prosimy o kontakt z pomocą techniczną."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API w wersji 3 zostało wyłączone na tym serwerze. Użyj API w wersji 4. Odwiedź https://api.mattermost.com w celu uzyskania szczegółowych informacji."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Inicjalizowanie przestarzałych tras API"
},
@@ -1490,6 +1510,10 @@
"translation": "Inicjalizowaine wywołań OAuth API"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Invalid state token"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Nieodpowiednie uprawnienia aby odtworzyć prywany klucz aplikacji OAuth2 "
},
@@ -1689,7 +1713,7 @@
},
{
"id": "api.post.send_notifications_and_forget.push_image_only",
- "translation": "Wysłał jeden albo więcej plików"
+ "translation": " Wyślij jeden albo więcej plików w "
},
{
"id": "api.post.send_notifications_and_forget.push_image_only_dm",
@@ -3021,35 +3045,35 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
+ "translation": "Nie udało się stworzyć bezpośredniego kanału"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Wyświetlanie nazwy zespołu:"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
- "translation": "Could not find channel member when importing direct channel"
+ "translation": "Nie udało się znaleźć członków kanału podczas importowania bezpośredniego kanału"
},
{
"id": "app.import.import_direct_channel.update_header_failed.error",
- "translation": "Failed to update direct channel header"
+ "translation": "Nie udało się zaktualizować tytułu bezpośredniego kanału"
},
{
"id": "app.import.import_direct_post.channel_member_not_found.error",
- "translation": "Could not find channel member when importing direct channel post"
+ "translation": "Nie udało się znaleźć członków kanału podczas importowania bezpośredniego kanału"
+ },
+ {
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Nie udało się uzyskać bezpośredniego kanału"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Nie udało się uzyskać kanału grupowego"
},
{
"id": "app.import.import_direct_post.user_not_found.error",
- "translation": "Post user does not exist"
+ "translation": "Post użytkownika nie istnieje"
},
{
"id": "app.import.import_line.null_channel.error",
@@ -3057,11 +3081,11 @@
},
{
"id": "app.import.import_line.null_direct_channel.error",
- "translation": "Dane wejściowe mają typ \"channel\", ale obiekt channel jest null."
+ "translation": "Dane wejściowe mają typ \"direct_channel\", ale obiekt direct_channel jest null."
},
{
"id": "app.import.import_line.null_direct_post.error",
- "translation": "Dane wejściowe mają typ \"post\" ale obiekt post jest null."
+ "translation": "Dane wejściowe mają typ \"direct_post\" ale obiekt direct_post jest null."
},
{
"id": "app.import.import_line.null_post.error",
@@ -3137,31 +3161,31 @@
},
{
"id": "app.import.validate_direct_channel_import_data.header_length.error",
- "translation": "Direct channel header is too long"
+ "translation": "Tytuł bezpośredniego kanału jest zbyt długi"
},
{
"id": "app.import.validate_direct_channel_import_data.members_required.error",
- "translation": "Brak wymaganej właściwości kanału: name"
+ "translation": "Brak wymaganej właściwości kanału: użytkownicy"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_few.error",
- "translation": "Direct channel members list contains too few items"
+ "translation": "Lista bezpośrednich uczestników kanału zawiera zbyt mało szczegółów"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_many.error",
- "translation": "Direct channel members list contains too many items"
+ "translation": "Lista bezpośrednich uczestników kanału zawiera zbyt wiele elementów"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_required.error",
- "translation": "Brak wymaganej właściwości Post: create_at."
+ "translation": "Brak wymaganej właściwości Post: channel_members."
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_few.error",
- "translation": "Direct post channel members list contains too few items"
+ "translation": "Lista bezpośrednich uczestników kanału zawiera zbyt mało szczegółów"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_many.error",
- "translation": "Direct post channel members list contains too many items"
+ "translation": "Lista bezpośrednich uczestników kanału zawiera zbyt wiele elementów"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_missing.error",
@@ -3173,15 +3197,15 @@
},
{
"id": "app.import.validate_direct_post_import_data.message_length.error",
- "translation": "Message is too long"
+ "translation": "Wiadomość jest za długa"
},
{
"id": "app.import.validate_direct_post_import_data.message_missing.error",
- "translation": "Brak wymaganej właściwości Post: Message."
+ "translation": "Brak wymaganej właściwości Post: message."
},
{
"id": "app.import.validate_direct_post_import_data.user_missing.error",
- "translation": "Brak wymaganej właściwości Post: User."
+ "translation": "Brak wymaganej właściwości Post: user."
},
{
"id": "app.import.validate_post_import_data.channel_missing.error",
@@ -3493,23 +3517,23 @@
},
{
"id": "ent.elasticsearch.start.index_exists_failed",
- "translation": "Failed to establish whether ElasticSearch index exists"
+ "translation": "Nie udało się ustalić, czy indeks elasticsearch istnieje"
},
{
"id": "ent.elasticsearch.start.index_mapping_failed",
- "translation": "Failed to setup ElasticSearch index mapping"
+ "translation": "Nie można ustawić wyświetlanie indeksu elasticsearch"
},
{
"id": "ent.elasticsearch.start.index_settings_failed",
- "translation": "Failed to set ElasticSearch index settings"
+ "translation": "Nie udało się określić ustawienia indeks elasticsearch"
},
{
"id": "ent.elasticsearch.test_config.indexing_disabled.error",
- "translation": "Elasticsearch is disabled."
+ "translation": "Elasticsearch jest wyłączony"
},
{
"id": "ent.elasticsearch.test_config.license.error",
- "translation": "License does not support Elasticsearch."
+ "translation": "Licencja nie obsługuje elasticsearch."
},
{
"id": "ent.emoji.licence_disable.app_error",
@@ -5805,7 +5829,7 @@
},
{
"id": "store.sql_team.search_open_team.app_error",
- "translation": "Napotkaliśmy błąd szukając kanału"
+ "translation": "Napotkaliśmy błąd szukając otwartych zespołów"
},
{
"id": "store.sql_team.update.app_error",
@@ -5817,11 +5841,11 @@
},
{
"id": "store.sql_team.update.finding.app_error",
- "translation": "Napotkaliśmy błąd szukając kanału"
+ "translation": "Napotkaliśmy błąd szukając zespołu"
},
{
"id": "store.sql_team.update.updating.app_error",
- "translation": "Napotkaliśmy błąd zapisując audyty"
+ "translation": "Napotkaliśmy błąd aktualizując zespół"
},
{
"id": "store.sql_team.update_display_name.app_error",
@@ -5841,7 +5865,7 @@
},
{
"id": "store.sql_user.get.app_error",
- "translation": "Napotkaliśmy błąd szukając audytów"
+ "translation": "Napotkaliśmy błąd szukając konta"
},
{
"id": "store.sql_user.get_all_using_auth_service.other.app_error",
@@ -5877,11 +5901,11 @@
},
{
"id": "store.sql_user.get_recently_active_users.app_error",
- "translation": "Wystąpił błąd w trakcie pobierania ustawień"
+ "translation": "Wystąpił błąd podczas wyszukiwania ostatnio aktywnych użytkowników"
},
{
"id": "store.sql_user.get_sysadmin_profiles.app_error",
- "translation": "Napotkaliśmy błąd podczas odczytu pliku"
+ "translation": "Wystąpił błąd podczas wyszukiwania profili użytkowników"
},
{
"id": "store.sql_user.get_total_users_count.app_error",
@@ -5889,15 +5913,15 @@
},
{
"id": "store.sql_user.get_unread_count.app_error",
- "translation": "We could not get the unread message count for the user"
+ "translation": "Nie mogliśmy uzyskać nieprzeczytanych wiadomości do użytkownika"
},
{
"id": "store.sql_user.get_unread_count_for_channel.app_error",
- "translation": "We could not get the unread message count for the user and channel"
+ "translation": "Nie mogliśmy uzyskać nieprzeczytanych wiadomości do użytkownika i kanału"
},
{
"id": "store.sql_user.migrate_theme.critical",
- "translation": "Failed to migrate User.ThemeProps to Preferences table %v"
+ "translation": "Nie udało się wykonać migracji użytkowników.ThemeProps na tabele Preferences %v"
},
{
"id": "store.sql_user.missing_account.const",
@@ -5905,7 +5929,7 @@
},
{
"id": "store.sql_user.permanent_delete.app_error",
- "translation": "Nie odnaleziono kanału"
+ "translation": "Nie możemy usunąć istniejącego konta"
},
{
"id": "store.sql_user.save.app_error",
@@ -5925,7 +5949,7 @@
},
{
"id": "store.sql_user.save.existing.app_error",
- "translation": "Wymagana aktualizacja zespołu"
+ "translation": "Należy wywołać aktualizacja dla dotychczasowych użytkowników"
},
{
"id": "store.sql_user.save.max_accounts.app_error",
@@ -5953,7 +5977,7 @@
},
{
"id": "store.sql_user.update.can_not_change_ldap.app_error",
- "translation": "Can not change fields set by AD/LDAP"
+ "translation": "Nie można zmienić pola ustawioneg przez AD/LDAP"
},
{
"id": "store.sql_user.update.email_taken.app_error",
@@ -5989,7 +6013,7 @@
},
{
"id": "store.sql_user.update_last_activity.app_error",
- "translation": "Nie udało się zaktualizować pola last_ping_at"
+ "translation": "Nie udało się zaktualizować pola last_activity_at"
},
{
"id": "store.sql_user.update_last_picture_update.app_error",
@@ -6093,19 +6117,19 @@
},
{
"id": "utils.config.load_config.decoding.panic",
- "translation": "Error decoding config file={{.Filename}}, err={{.Error}}"
+ "translation": "Błąd podczas rozpakowywania pliku konfiguracyjnego={{.Filename}}, err={{.Error}}"
},
{
"id": "utils.config.load_config.getting.panic",
- "translation": "Error getting config info file={{.Filename}}, err={{.Error}}"
+ "translation": "Błąd podczas pobierania konfiguracji plik info={{.Filename}}, err={{.Error}}"
},
{
"id": "utils.config.load_config.opening.panic",
- "translation": "Error opening config file={{.Filename}}, err={{.Error}}"
+ "translation": "Błąd podczas otwierania pliku konfiguracyjnego={{.Filename}}, err={{.Error}}"
},
{
"id": "utils.config.load_config.validating.panic",
- "translation": "Error validating config file={{.Filename}}, err={{.Error}}"
+ "translation": "Błąd podczas sprawdzania pliku konfiguracyjnego={{.Filename}}, err={{.Error}}"
},
{
"id": "utils.config.save_config.saving.app_error",
@@ -6121,11 +6145,11 @@
},
{
"id": "utils.config.validate_locale.app_error",
- "translation": "Unable to load mattermost configuration file: AvailableLocales must include DefaultClientLocale"
+ "translation": "Nie udało się pobrać pliku konfiguracyjnego mattermost: AvailableLocales musi zawierać DefaultClientLocale"
},
{
"id": "utils.diagnostic.analytics_not_found.app_error",
- "translation": "Analytics not initialized"
+ "translation": "Analytics nie zainicjowany"
},
{
"id": "utils.i18n.loaded",
@@ -6133,7 +6157,7 @@
},
{
"id": "utils.iru.with_evict",
- "translation": "Must provide a positive size"
+ "translation": "Należy podać dodatni rozmiar"
},
{
"id": "utils.license.load_license.invalid.warn",
@@ -6145,11 +6169,11 @@
},
{
"id": "utils.license.validate_license.decode.error",
- "translation": "Encountered error decoding license, err=%v"
+ "translation": "Wystąpił błąd autoryzacji licencji, err=%v"
},
{
"id": "utils.license.validate_license.invalid.error",
- "translation": "Invalid signature, err=%v"
+ "translation": "Nieprawidłowa sygnatura, err=%v"
},
{
"id": "utils.license.validate_license.not_long.error",
@@ -6157,11 +6181,11 @@
},
{
"id": "utils.license.validate_license.signing.error",
- "translation": "Encountered error signing license, err=%v"
+ "translation": "Wystąpił błąd autoryzacji licencji, err=%v"
},
{
"id": "utils.mail.connect_smtp.helo.app_error",
- "translation": "Failed to set HELO"
+ "translation": "Nie udało się ustawić HELO"
},
{
"id": "utils.mail.connect_smtp.open.app_error",
@@ -6193,11 +6217,11 @@
},
{
"id": "utils.mail.send_mail.msg.app_error",
- "translation": "Failed to write email message"
+ "translation": "Nie można napisać wiadomość"
},
{
"id": "utils.mail.send_mail.msg_data.app_error",
- "translation": "Failed to add email message data"
+ "translation": "Błąd podczas dodawania danych wiadomości e-mail"
},
{
"id": "utils.mail.send_mail.sending.debug",
@@ -6217,7 +6241,7 @@
},
{
"id": "web.admin_console.title",
- "translation": "Admin Console"
+ "translation": "Konsola Administracyjna"
},
{
"id": "web.authorize_oauth.title",
@@ -6237,15 +6261,15 @@
},
{
"id": "web.claim_account.user.error",
- "translation": "Couldn't find user teamid=%v, email=%v, err=%v"
+ "translation": "Nie można znaleźć użytkownika teamid=%vv e-mail=%v, err=%v"
},
{
"id": "web.create_dir.error",
- "translation": "Failed to create directory watcher %v"
+ "translation": "Nie udało się utworzyć stróża katalogu %v"
},
{
"id": "web.dir_fail.error",
- "translation": "Failed in directory watcher %v"
+ "translation": "Nie udało się utworzyć stróża katalogu %v"
},
{
"id": "web.do_load_channel.error",
@@ -6293,7 +6317,7 @@
},
{
"id": "web.incoming_webhook.text.app_error",
- "translation": "No text specified"
+ "translation": "Tekst nie jest określony"
},
{
"id": "web.incoming_webhook.text.length.app_error",
@@ -6305,7 +6329,7 @@
},
{
"id": "web.init.debug",
- "translation": "Inicjalizowanie tras api administracyjnego"
+ "translation": "Inicjalizacja web routes"
},
{
"id": "web.login.error",
@@ -6361,11 +6385,11 @@
},
{
"id": "web.signup_team_complete.title",
- "translation": "Complete Team Sign Up"
+ "translation": "Utwórzono konto użytkownika"
},
{
"id": "web.signup_team_confirm.title",
- "translation": "Signup Email Sent"
+ "translation": "E-Mail rejestracyjny wysłany"
},
{
"id": "web.signup_user_complete.link_expired.app_error",
@@ -6381,7 +6405,7 @@
},
{
"id": "web.signup_user_complete.title",
- "translation": "Complete User Sign Up"
+ "translation": "Utwórzono konto użytkownika"
},
{
"id": "web.singup_with_oauth.invalid_team.app_error",
@@ -6389,7 +6413,7 @@
},
{
"id": "web.watcher_fail.error",
- "translation": "Failed to add directory to watcher %v"
+ "translation": "Nie udało się utworzyć stróża katalogu %v"
},
{
"id": "wsapi.status.init.debug",
diff --git a/i18n/pt-BR.json b/i18n/pt-BR.json
index ad52b377d..76764fd34 100644
--- a/i18n/pt-BR.json
+++ b/i18n/pt-BR.json
@@ -708,6 +708,22 @@
"translation": "abrir"
},
{
+ "id": "api.command_search.desc",
+ "translation": "Pesquisar texto nas mensagens"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[texto]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "pesquisar"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "O comando de busca não é suportado no seu equipamento"
+ },
+ {
"id": "api.command_settings.desc",
"translation": "Abrir a janela de Configurações de Conta"
},
@@ -960,6 +976,10 @@
"translation": "Ocorreu um erro desconhecido. Por favor contato com o suporte."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API versão 3 foi desabilitada neste servidor. Por favor use a API versão 4. Veja https://api.mattermost.com para mais detalhes"
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Inicializando as rotas da API que serão descontinuadas"
},
@@ -1490,6 +1510,10 @@
"translation": "Inicializando as rotas de API oauth"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "State token inválido"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "Permissões inadequadas para gerar novo OAuth2 App Secret"
},
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Falha ao buscar o canal direto"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Falha ao buscar o canal direto"
+ "translation": "Falha ao criar o canal direto"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Falha ao buscar o canal de grupo"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Falha ao buscar o canal de grupo"
+ "translation": "Falha ao criar o canal de grupo"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "Não foi possível achar o membro do canal enquanto importava os posts do canal direto"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Falha ao obter o canal direto"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Falha ao obter o canal de grupo"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "Usuário do post não existe"
},
diff --git a/i18n/ru.json b/i18n/ru.json
index 42bb6ae50..cfbbcff7a 100644
--- a/i18n/ru.json
+++ b/i18n/ru.json
@@ -505,7 +505,7 @@
},
{
"id": "api.command_channel_header.desc",
- "translation": "Edit the channel header"
+ "translation": "Редактировать заголовок канала"
},
{
"id": "api.command_channel_header.hint",
@@ -517,7 +517,7 @@
},
{
"id": "api.command_channel_header.name",
- "translation": "header"
+ "translation": "заголовок"
},
{
"id": "api.command_channel_header.permission.app_error",
@@ -529,7 +529,7 @@
},
{
"id": "api.command_channel_header.update_channel.success",
- "translation": "Channel header successfully updated."
+ "translation": "Заголовок канала успешно обновлен."
},
{
"id": "api.command_collapse.desc",
@@ -593,7 +593,7 @@
},
{
"id": "api.command_help.name",
- "translation": "Помощь"
+ "translation": "помощь"
},
{
"id": "api.command_join.desc",
@@ -705,15 +705,31 @@
},
{
"id": "api.command_open.name",
- "translation": "open"
+ "translation": "открыть"
+ },
+ {
+ "id": "api.command_search.desc",
+ "translation": "Искать текст в сообщениях"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[text]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "поиск"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "The search command is not supported on your device"
},
{
"id": "api.command_settings.desc",
- "translation": "Open the Account Settings dialog"
+ "translation": "Открыть диалог настроек аккаунта"
},
{
"id": "api.command_settings.name",
- "translation": "settings"
+ "translation": "настройки"
},
{
"id": "api.command_settings.unsupported.app_error",
@@ -960,6 +976,10 @@
"translation": "Произошла неизвестная ошибка. Пожалуйста, свяжитесь с поддержкой."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API version 3 has been disabled on this server. Please use API version 4. See https://api.mattermost.com for details."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Инициализация устаревших маршрутов API"
},
@@ -1490,8 +1510,12 @@
"translation": "Инициализация OAuth API"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Invalid state token"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
- "translation": "Несоответствующие права для создания новой секретной строки приложения OAuth2"
+ "translation": "Отсутствуют права на пересоздание OAuth2 App Secret"
},
{
"id": "api.oauth.register_oauth_app.turn_off.app_error",
@@ -2549,7 +2573,7 @@
},
{
"id": "api.user.create_user.missing_invite_id.app_error",
- "translation": "Missing Invite Id."
+ "translation": "Отсутствует Invite Id."
},
{
"id": "api.user.create_user.no_open_server",
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Failed to create direct channel"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "Failed to create group channel"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "Could not find channel member when importing direct channel post"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Failed to get direct channel"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Failed to get group channel"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "Post user does not exist"
},
@@ -3169,11 +3193,11 @@
},
{
"id": "app.import.validate_direct_post_import_data.create_at_zero.error",
- "translation": "CreateAt must be greater than 0"
+ "translation": "CreateAt должно быть больше 0"
},
{
"id": "app.import.validate_direct_post_import_data.message_length.error",
- "translation": "Message is too long"
+ "translation": "Сообщение слишком длинное"
},
{
"id": "app.import.validate_direct_post_import_data.message_missing.error",
@@ -3505,11 +3529,11 @@
},
{
"id": "ent.elasticsearch.test_config.indexing_disabled.error",
- "translation": "Elasticsearch is disabled."
+ "translation": "Elasticsearch отключён."
},
{
"id": "ent.elasticsearch.test_config.license.error",
- "translation": "License does not support Elasticsearch."
+ "translation": "Редакция не поддерживает Elasticsearch."
},
{
"id": "ent.emoji.licence_disable.app_error",
@@ -6129,7 +6153,7 @@
},
{
"id": "utils.i18n.loaded",
- "translation": "Загружены системные перевода для '%v' от '%v'"
+ "translation": "Загружен перевод системы на '%v' из '%v'"
},
{
"id": "utils.iru.with_evict",
@@ -6389,7 +6413,7 @@
},
{
"id": "web.watcher_fail.error",
- "translation": "Не удалось добавить каталог к наблюдателю %v"
+ "translation": "Не удалось добавить директорию к наблюдателю %v"
},
{
"id": "wsapi.status.init.debug",
diff --git a/i18n/tr.json b/i18n/tr.json
index cd6233f7e..30274d7ef 100644
--- a/i18n/tr.json
+++ b/i18n/tr.json
@@ -708,6 +708,22 @@
"translation": "açık"
},
{
+ "id": "api.command_search.desc",
+ "translation": "İletilerde aranacak metin"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[text]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "ara"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "Arama komutu aygıtınız için desteklenmiyor"
+ },
+ {
"id": "api.command_settings.desc",
"translation": "Hesap Ayarları Penceresini Aç"
},
@@ -960,6 +976,10 @@
"translation": "Bilinmeyen bir sorun çıktı. Lütfen destek ekibi ile görüşün."
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "Bu sunucu üzerinde 3. API sürümü devre dışı bırakıldı. Lütfen 4. API sürümünü kullanın. Ayrıntılı bilgi almak için https://api.mattermost.com adresine bakın."
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "Kullanımdan kaldırılmaış API rotaları hazırlanıyor"
},
@@ -1490,6 +1510,10 @@
"translation": "OAuth API rotaları hazırlanıyor"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "Durum kodu geçersiz"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "OAuth2 Uygulama Parolasını yeniden oluşturmak için izinleriniz yeterli değil"
},
@@ -3021,19 +3045,11 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Doğrudan kanal alınamadı"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Doğrudan kanal alınamadı"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Grup kanalı alınamadı"
+ "translation": "Doğrudan kanal oluşturulamadı"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Grup kanalı alınamadı"
+ "translation": "Grup kanalı oluşturulamadı"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
@@ -3048,6 +3064,14 @@
"translation": "Doğrudan kanal iletisi içe aktarılırken kanal üyesi bulunamadı"
},
{
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "Doğrudan kanal alınamadı"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "Grup kanalı alınamadı"
+ },
+ {
"id": "app.import.import_direct_post.user_not_found.error",
"translation": "İleti kullanıcısı bulunamadı"
},
diff --git a/i18n/zh-CN.json b/i18n/zh-CN.json
index 051cbd2ea..b8770acd2 100644
--- a/i18n/zh-CN.json
+++ b/i18n/zh-CN.json
@@ -429,7 +429,7 @@
},
{
"id": "api.command.execute_command.not_found.app_error",
- "translation": "Command with a trigger of '{{.Trigger}}' not found. To send a message beginning with \"/\", try adding an empty space at the beginning of the message."
+ "translation": "未找到拥有触发 '{{.Trigger}}' 的命令。如果像发送以 \"/\" 开头的消息,请在前面加个空格。"
},
{
"id": "api.command.execute_command.save.app_error",
@@ -461,7 +461,7 @@
},
{
"id": "api.command.invite_people.invite_off",
- "translation": "User creation has been disabled on this server, no invite(s) sent"
+ "translation": "本服务器已经禁止创建用户,未发送任何邀请"
},
{
"id": "api.command.invite_people.name",
@@ -501,35 +501,35 @@
},
{
"id": "api.command_channel_header.channel.app_error",
- "translation": "Error to retrieve the current channel."
+ "translation": "获取当前频道错误。"
},
{
"id": "api.command_channel_header.desc",
- "translation": "Edit the channel header"
+ "translation": "修改频道标题"
},
{
"id": "api.command_channel_header.hint",
- "translation": "[text]"
+ "translation": "[文字]"
},
{
"id": "api.command_channel_header.message.app_error",
- "translation": "Text must be provided with the /header command."
+ "translation": "比如提供 /header 命令的文字。"
},
{
"id": "api.command_channel_header.name",
- "translation": "header"
+ "translation": "标题"
},
{
"id": "api.command_channel_header.permission.app_error",
- "translation": "You do not have the appropriate permissions to edit the channel header."
+ "translation": "您没有权限更改频道标题。"
},
{
"id": "api.command_channel_header.update_channel.app_error",
- "translation": "Error to update the current channel."
+ "translation": "更新当前频道错误。"
},
{
"id": "api.command_channel_header.update_channel.success",
- "translation": "Channel header successfully updated."
+ "translation": "成功更新频道标题。"
},
{
"id": "api.command_collapse.desc",
@@ -589,7 +589,7 @@
},
{
"id": "api.command_help.desc",
- "translation": "Open the Mattermost help page"
+ "translation": "打开 Mattermost 帮助页面"
},
{
"id": "api.command_help.name",
@@ -708,6 +708,22 @@
"translation": "打开"
},
{
+ "id": "api.command_search.desc",
+ "translation": "在消息中搜索文字"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[文字]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "搜索"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "您的设备不支持搜索命令"
+ },
+ {
"id": "api.command_settings.desc",
"translation": "打开账户设置对话框"
},
@@ -960,6 +976,10 @@
"translation": "发生未知错误。请联系我们。"
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "API 版本 3 已在本服务器停用。请使用 API 版本 4。详情见 https://api.mattermost.com。"
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "正在初始化已弃用 API 路由"
},
@@ -1490,6 +1510,10 @@
"translation": "正在初始化 OAuth API 路由"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "无效状态令牌"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "无效重新生成 OAuth2 应用秘钥权限"
},
@@ -1689,11 +1713,11 @@
},
{
"id": "api.post.send_notifications_and_forget.push_image_only",
- "translation": " 已上传一个或更多个文件 "
+ "translation": " 已上传一个或更多个文件在 "
},
{
"id": "api.post.send_notifications_and_forget.push_image_only_dm",
- "translation": " Uploaded one or more files in a direct message"
+ "translation": " 在私信里上传一个或更多个文件"
},
{
"id": "api.post.send_notifications_and_forget.push_in",
@@ -2125,7 +2149,7 @@
},
{
"id": "api.team.invite_members.invalid_email.app_error",
- "translation": "The following email addresses do not belong to an accepted domain: {{.Addresses}}. Please contact your System Administrator for details."
+ "translation": "以下邮箱地址不在允许的域名范围内:{{.Addresses}}。请联系您的系统管理员了解详情。"
},
{
"id": "api.team.invite_members.member",
@@ -3021,35 +3045,35 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
+ "translation": "船舰私信组频道失败"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "创建群频道失败"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
- "translation": "Could not find channel member when importing direct channel"
+ "translation": "导入私信频道时无法找到频道成员"
},
{
"id": "app.import.import_direct_channel.update_header_failed.error",
- "translation": "Failed to update direct channel header"
+ "translation": "更新私信频道标题失败"
},
{
"id": "app.import.import_direct_post.channel_member_not_found.error",
- "translation": "Could not find channel member when importing direct channel post"
+ "translation": "导入私信频道消息时无法找到频道成员"
+ },
+ {
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "获取私信频道失败"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "获取组频道失败"
},
{
"id": "app.import.import_direct_post.user_not_found.error",
- "translation": "Post user does not exist"
+ "translation": "消息用户不存在"
},
{
"id": "app.import.import_line.null_channel.error",
@@ -3057,11 +3081,11 @@
},
{
"id": "app.import.import_line.null_direct_channel.error",
- "translation": "导入数据行有类型 \"channel\" 但频道对象是无。"
+ "translation": "导入数据行有类型 \"direct_channel\" 但 direct_channel 对象为 null。"
},
{
"id": "app.import.import_line.null_direct_post.error",
- "translation": "导入数据行有类型 \"post\" 但消息对象是无。"
+ "translation": "导入数据行有类型 \"direct_post\" 但 direct_post 对象为 null。"
},
{
"id": "app.import.import_line.null_post.error",
@@ -3137,51 +3161,51 @@
},
{
"id": "app.import.validate_direct_channel_import_data.header_length.error",
- "translation": "Direct channel header is too long"
+ "translation": "私信频道标题过长"
},
{
"id": "app.import.validate_direct_channel_import_data.members_required.error",
- "translation": "缺少频道必须属性:name"
+ "translation": "缺少私信频道必须属性:members"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_few.error",
- "translation": "Direct channel members list contains too few items"
+ "translation": "私信频道成员列表数量过少"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_many.error",
- "translation": "Direct channel members list contains too many items"
+ "translation": "私信频道成员列表数量过多"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_required.error",
- "translation": "缺少消息必须属性:create_at。"
+ "translation": "缺少私信消息必须属性:channel_members"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_few.error",
- "translation": "Direct post channel members list contains too few items"
+ "translation": "私信频道成员列表数量过少"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_many.error",
- "translation": "Direct post channel members list contains too many items"
+ "translation": "私信频道成员列表数量过多"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_missing.error",
- "translation": "缺少消息必须属性:create_at。"
+ "translation": "缺少私信消息必须属性:create_at"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_zero.error",
- "translation": "CreateAt must be greater than 0"
+ "translation": "CreateAt 比如大于 0"
},
{
"id": "app.import.validate_direct_post_import_data.message_length.error",
- "translation": "Message is too long"
+ "translation": "消息过长"
},
{
"id": "app.import.validate_direct_post_import_data.message_missing.error",
- "translation": "缺少消息必须属性:Message。"
+ "translation": "缺少私信必须属性:message"
},
{
"id": "app.import.validate_direct_post_import_data.user_missing.error",
- "translation": "缺少消息必须属性:User。"
+ "translation": "缺少私信必须属性:user"
},
{
"id": "app.import.validate_post_import_data.channel_missing.error",
@@ -3409,7 +3433,7 @@
},
{
"id": "ent.cluster.config_changed.info",
- "translation": "Cluster configuration has changed for id={{ .id }}. The cluster may become unstable and a restart is required. To ensure the cluster is configured correctly you should perform a rolling restart immediately."
+ "translation": "机群设定 id={{ .id }} 已更改。机群可能不稳定并且需要重启。为了确保机群配置正确您应该立刻逐进重启。"
},
{
"id": "ent.cluster.debug_fail.debug",
@@ -3441,7 +3465,7 @@
},
{
"id": "ent.cluster.save_config.error",
- "translation": "System Console is set to read-only when High Availability is enabled unless ReadOnlyConfig is disabled in the configuration file."
+ "translation": "当高可用性模式开启时,系统控制台将设为只读且只能通过修改配置文件进行改动除非禁止配置文件里的 ReadOnlyConfig。"
},
{
"id": "ent.cluster.starting.info",
@@ -3505,11 +3529,11 @@
},
{
"id": "ent.elasticsearch.test_config.indexing_disabled.error",
- "translation": "Elasticsearch is disabled."
+ "translation": "Elasticsearch 已停用。"
},
{
"id": "ent.elasticsearch.test_config.license.error",
- "translation": "License does not support Elasticsearch."
+ "translation": "许可证不支持 Elasticsearch。"
},
{
"id": "ent.emoji.licence_disable.app_error",
@@ -4313,7 +4337,7 @@
},
{
"id": "model.config.is_valid.teammate_name_display.app_error",
- "translation": "Invalid teammate display. Must be 'full_name', 'nickname_full_name' or 'username'"
+ "translation": "无效的团员显示。必须为 'full_name','nickname_full_name' 或 'username'"
},
{
"id": "model.config.is_valid.time_between_user_typing.app_error",
@@ -5869,7 +5893,7 @@
},
{
"id": "store.sql_user.get_new_users.app_error",
- "translation": "我们在查找偏好设置时遇到了一个错误"
+ "translation": "我们在查找新用户时发生错误"
},
{
"id": "store.sql_user.get_profiles.app_error",
diff --git a/i18n/zh-TW.json b/i18n/zh-TW.json
index 55e0968a5..cb097748b 100644
--- a/i18n/zh-TW.json
+++ b/i18n/zh-TW.json
@@ -429,7 +429,7 @@
},
{
"id": "api.command.execute_command.not_found.app_error",
- "translation": "Command with a trigger of '{{.Trigger}}' not found. To send a message beginning with \"/\", try adding an empty space at the beginning of the message."
+ "translation": "找不到觸發為'{{.Trigger}}'的指令。請在訊息開頭增加空白來發送以\"/\"起始的訊息。"
},
{
"id": "api.command.execute_command.save.app_error",
@@ -461,7 +461,7 @@
},
{
"id": "api.command.invite_people.invite_off",
- "translation": "User creation has been disabled on this server, no invite(s) sent"
+ "translation": "本伺服器禁止建立使用者,不寄送邀請。"
},
{
"id": "api.command.invite_people.name",
@@ -501,19 +501,19 @@
},
{
"id": "api.command_channel_header.channel.app_error",
- "translation": "Error to retrieve the current channel."
+ "translation": "取得當前頻道時錯誤。"
},
{
"id": "api.command_channel_header.desc",
- "translation": "Edit the channel header"
+ "translation": "編輯頻道標題"
},
{
"id": "api.command_channel_header.hint",
- "translation": "[text]"
+ "translation": "[文字]"
},
{
"id": "api.command_channel_header.message.app_error",
- "translation": "Text must be provided with the /header command."
+ "translation": "/header 指令必須帶有文字"
},
{
"id": "api.command_channel_header.name",
@@ -521,15 +521,15 @@
},
{
"id": "api.command_channel_header.permission.app_error",
- "translation": "You do not have the appropriate permissions to edit the channel header."
+ "translation": "權限不足以編輯頻道標題。"
},
{
"id": "api.command_channel_header.update_channel.app_error",
- "translation": "Error to update the current channel."
+ "translation": "更新當前頻道時錯誤。"
},
{
"id": "api.command_channel_header.update_channel.success",
- "translation": "Channel header successfully updated."
+ "translation": "成功更新頻道標題。"
},
{
"id": "api.command_collapse.desc",
@@ -589,7 +589,7 @@
},
{
"id": "api.command_help.desc",
- "translation": "Open the Mattermost help page"
+ "translation": "開啟 Mattermost 說明頁面"
},
{
"id": "api.command_help.name",
@@ -708,8 +708,24 @@
"translation": "open"
},
{
+ "id": "api.command_search.desc",
+ "translation": "從訊息中搜尋文字"
+ },
+ {
+ "id": "api.command_search.hint",
+ "translation": "[文字]"
+ },
+ {
+ "id": "api.command_search.name",
+ "translation": "search"
+ },
+ {
+ "id": "api.command_search.unsupported.app_error",
+ "translation": "當前裝置不支援搜尋命令"
+ },
+ {
"id": "api.command_settings.desc",
- "translation": "Open the Account Settings dialog"
+ "translation": "開啟帳號設定對話框"
},
{
"id": "api.command_settings.name",
@@ -717,7 +733,7 @@
},
{
"id": "api.command_settings.unsupported.app_error",
- "translation": "The settings command is not supported on your device"
+ "translation": "當前裝置不支援設定命令"
},
{
"id": "api.command_shortcuts.browser.channel_next",
@@ -797,7 +813,7 @@
},
{
"id": "api.command_shortcuts.msgs.comp_emoji",
- "translation": ":[文字]+TAB:自動完成以[文字]起始的顏文字\n\n"
+ "translation": ":[文字]+TAB:自動完成以[文字]起始的繪文字\n\n"
},
{
"id": "api.command_shortcuts.msgs.comp_username",
@@ -960,6 +976,10 @@
"translation": "發生未知的錯誤。請聯繫支援單位。"
},
{
+ "id": "api.context.v3_disabled.app_error",
+ "translation": "此伺服器已停用 API 版本 3,請用 API 版本 4。如需詳細資訊,請參閱 https://api.mattermost.com"
+ },
+ {
"id": "api.deprecated.init.debug",
"translation": "正在初始化已被取代的 API 路徑"
},
@@ -1490,6 +1510,10 @@
"translation": "正在初始化 OAuth API 路徑"
},
{
+ "id": "api.oauth.invalid_state_token.app_error",
+ "translation": "無效的狀態 Token"
+ },
+ {
"id": "api.oauth.regenerate_secret.app_error",
"translation": "權限不足以重新產生 OAuth2 應用程式密碼"
},
@@ -1689,11 +1713,11 @@
},
{
"id": "api.post.send_notifications_and_forget.push_image_only",
- "translation": " Uploaded one or more files in "
+ "translation": "已上傳一個或更多檔案"
},
{
"id": "api.post.send_notifications_and_forget.push_image_only_dm",
- "translation": " Uploaded one or more files in a direct message"
+ "translation": "在直接傳訊中已上傳一個或更多檔案"
},
{
"id": "api.post.send_notifications_and_forget.push_in",
@@ -2125,7 +2149,7 @@
},
{
"id": "api.team.invite_members.invalid_email.app_error",
- "translation": "The following email addresses do not belong to an accepted domain: {{.Addresses}}. Please contact your System Administrator for details."
+ "translation": "這些電子郵件地址的網域不被接受:{{.Addresses}}。詳情請聯絡系統管理員。"
},
{
"id": "api.team.invite_members.member",
@@ -3021,35 +3045,35 @@
},
{
"id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
- },
- {
- "id": "app.import.import_direct_channel.create_direct_channel.error",
- "translation": "Failed to get direct channel"
+ "translation": "建立直接傳訊頻道時失敗"
},
{
"id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
- },
- {
- "id": "app.import.import_direct_channel.create_group_channel.error",
- "translation": "Failed to get group channel"
+ "translation": "建立群組頻道時失敗"
},
{
"id": "app.import.import_direct_channel.member_not_found.error",
- "translation": "Could not find channel member when importing direct channel"
+ "translation": "匯入直接傳訊頻道時找不到頻道成員"
},
{
"id": "app.import.import_direct_channel.update_header_failed.error",
- "translation": "Failed to update direct channel header"
+ "translation": "更新直接傳訊頻道標題時失敗"
},
{
"id": "app.import.import_direct_post.channel_member_not_found.error",
- "translation": "Could not find channel member when importing direct channel post"
+ "translation": "匯入直接傳訊頻道訊息時找不到頻道成員"
+ },
+ {
+ "id": "app.import.import_direct_post.create_direct_channel.error",
+ "translation": "取得直接傳訊頻道時失敗"
+ },
+ {
+ "id": "app.import.import_direct_post.create_group_channel.error",
+ "translation": "取得群組頻道時失敗"
},
{
"id": "app.import.import_direct_post.user_not_found.error",
- "translation": "Post user does not exist"
+ "translation": "發訊者不存在"
},
{
"id": "app.import.import_line.null_channel.error",
@@ -3057,11 +3081,11 @@
},
{
"id": "app.import.import_line.null_direct_channel.error",
- "translation": "匯入資料行資料型別為\"頻道\"但頻道物件為 null"
+ "translation": "匯入資料行資料型別為\"直接傳訊頻道\"但直接傳訊頻道物件為 null"
},
{
"id": "app.import.import_line.null_direct_post.error",
- "translation": "匯入資料行資料型別為\"訊息\"但訊息物件為 null"
+ "translation": "匯入資料行資料型別為\"直接訊息\"但直接訊息物件為 null"
},
{
"id": "app.import.import_line.null_post.error",
@@ -3137,51 +3161,51 @@
},
{
"id": "app.import.validate_direct_channel_import_data.header_length.error",
- "translation": "Direct channel header is too long"
+ "translation": "直接傳訊頻道標題過長"
},
{
"id": "app.import.validate_direct_channel_import_data.members_required.error",
- "translation": "缺少必要的頻道屬性:名字。"
+ "translation": "缺少必要的直接傳訊頻道屬性:成員。"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_few.error",
- "translation": "Direct channel members list contains too few items"
+ "translation": "直接傳訊頻道成員列表的欄位過少"
},
{
"id": "app.import.validate_direct_channel_import_data.members_too_many.error",
- "translation": "Direct channel members list contains too many items"
+ "translation": "直接傳訊頻道成員列表的欄位過多"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_required.error",
- "translation": "缺少必要的訊息屬性:建立日期。"
+ "translation": "缺少必要的直接訊息屬性:頻道成員。"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_few.error",
- "translation": "Direct post channel members list contains too few items"
+ "translation": "直接訊息頻道成員列表的欄位過少"
},
{
"id": "app.import.validate_direct_post_import_data.channel_members_too_many.error",
- "translation": "Direct post channel members list contains too many items"
+ "translation": "直接訊息頻道成員列表的欄位過多"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_missing.error",
- "translation": "缺少必要的訊息屬性:建立日期。"
+ "translation": "缺少必要的直接訊息屬性:建立日期。"
},
{
"id": "app.import.validate_direct_post_import_data.create_at_zero.error",
- "translation": "CreateAt must be greater than 0"
+ "translation": "建立日期必須大於零"
},
{
"id": "app.import.validate_direct_post_import_data.message_length.error",
- "translation": "Message is too long"
+ "translation": "訊息過長"
},
{
"id": "app.import.validate_direct_post_import_data.message_missing.error",
- "translation": "缺少必要的訊息屬性:訊息。"
+ "translation": "缺少必要的直接訊息屬性:訊息。"
},
{
"id": "app.import.validate_direct_post_import_data.user_missing.error",
- "translation": "缺少必要的訊息屬性:使用者。"
+ "translation": "缺少必要的直接訊息屬性:使用者。"
},
{
"id": "app.import.validate_post_import_data.channel_missing.error",
@@ -3409,7 +3433,7 @@
},
{
"id": "ent.cluster.config_changed.info",
- "translation": "Cluster configuration has changed for id={{ .id }}. The cluster may become unstable and a restart is required. To ensure the cluster is configured correctly you should perform a rolling restart immediately."
+ "translation": "叢集設定已改變 id={{ .id }}。此叢集可能不穩定,需要重新啟動。為了確保叢集被正確的設定,您應該馬上進行漸進式重啟。"
},
{
"id": "ent.cluster.debug_fail.debug",
@@ -3441,7 +3465,7 @@
},
{
"id": "ent.cluster.save_config.error",
- "translation": "System Console is set to read-only when High Availability is enabled unless ReadOnlyConfig is disabled in the configuration file."
+ "translation": "啟用高可用性時系統控制台將被設定成唯讀模式,在設定檔當中停用 ReadOnlyConfig 以停止此行為。"
},
{
"id": "ent.cluster.starting.info",
@@ -3505,11 +3529,11 @@
},
{
"id": "ent.elasticsearch.test_config.indexing_disabled.error",
- "translation": "Elasticsearch is disabled."
+ "translation": "Elasticsearch 已停用。"
},
{
"id": "ent.elasticsearch.test_config.license.error",
- "translation": "License does not support Elasticsearch."
+ "translation": "授權不支援 Elasticsearch。"
},
{
"id": "ent.emoji.licence_disable.app_error",
@@ -4313,7 +4337,7 @@
},
{
"id": "model.config.is_valid.teammate_name_display.app_error",
- "translation": "Invalid teammate display. Must be 'full_name', 'nickname_full_name' or 'username'"
+ "translation": "團隊成員顯示設定值無效。必須為'full_name'、'nickname_full_name'或'username'"
},
{
"id": "model.config.is_valid.time_between_user_typing.app_error",
@@ -5869,7 +5893,7 @@
},
{
"id": "store.sql_user.get_new_users.app_error",
- "translation": "尋找偏好設定時遇到錯誤"
+ "translation": "尋找新使用者時遇到錯誤"
},
{
"id": "store.sql_user.get_profiles.app_error",
diff --git a/model/client4.go b/model/client4.go
index 5e5942130..a19a17d3a 100644
--- a/model/client4.go
+++ b/model/client4.go
@@ -352,7 +352,7 @@ func (c *Client4) DoEmojiUploadFile(url string, data []byte, contentType string)
}
}
-func (c *Client4) DoUploadImportTeam(url string, data []byte, contentType string) ([]byte, *Response) {
+func (c *Client4) DoUploadImportTeam(url string, data []byte, contentType string) (map[string]string, *Response) {
rq, _ := http.NewRequest("POST", c.ApiUrl+url, bytes.NewReader(data))
rq.Header.Set("Content-Type", contentType)
rq.Close = true
@@ -365,11 +365,9 @@ func (c *Client4) DoUploadImportTeam(url string, data []byte, contentType string
return nil, &Response{Error: NewAppError(url, "model.client.connecting.app_error", nil, err.Error(), 0)}
} else if rp.StatusCode >= 300 {
return nil, &Response{StatusCode: rp.StatusCode, Error: AppErrorFromJson(rp.Body)}
- } else if data, err := ioutil.ReadAll(rp.Body); err != nil {
- return nil, &Response{StatusCode: rp.StatusCode, Error: NewAppError("UploadImportTeam", "model.client.read_file.app_error", nil, err.Error(), rp.StatusCode)}
} else {
defer closeBody(rp)
- return data, BuildResponse(rp)
+ return MapFromJson(rp.Body), BuildResponse(rp)
}
}
@@ -1210,7 +1208,7 @@ func (c *Client4) GetTeamUnread(teamId, userId string) (*TeamUnread, *Response)
}
// ImportTeam will import an exported team from other app into a existing team.
-func (c *Client4) ImportTeam(data []byte, filesize int, importFrom, filename, teamId string) ([]byte, *Response) {
+func (c *Client4) ImportTeam(data []byte, filesize int, importFrom, filename, teamId string) (map[string]string, *Response) {
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
@@ -1651,7 +1649,7 @@ func (c *Client4) GetFlaggedPostsForUserInTeam(userId string, teamId string, pag
return nil, &Response{StatusCode: http.StatusBadRequest, Error: NewAppError("GetFlaggedPostsForUserInTeam", "model.client.get_flagged_posts_in_team.missing_parameter.app_error", nil, "", http.StatusBadRequest)}
}
- query := fmt.Sprintf("?in_team=%v&page=%v&per_page=%v", teamId, page, perPage)
+ query := fmt.Sprintf("?team_id=%v&page=%v&per_page=%v", teamId, page, perPage)
if r, err := c.DoApiGet(c.GetUserRoute(userId)+"/posts/flagged"+query, ""); err != nil {
return nil, BuildErrorResponse(r, err)
} else {
@@ -1666,7 +1664,7 @@ func (c *Client4) GetFlaggedPostsForUserInChannel(userId string, channelId strin
return nil, &Response{StatusCode: http.StatusBadRequest, Error: NewAppError("GetFlaggedPostsForUserInChannel", "model.client.get_flagged_posts_in_channel.missing_parameter.app_error", nil, "", http.StatusBadRequest)}
}
- query := fmt.Sprintf("?in_channel=%v&page=%v&per_page=%v", channelId, page, perPage)
+ query := fmt.Sprintf("?channel_id=%v&page=%v&per_page=%v", channelId, page, perPage)
if r, err := c.DoApiGet(c.GetUserRoute(userId)+"/posts/flagged"+query, ""); err != nil {
return nil, BuildErrorResponse(r, err)
} else {
diff --git a/model/config.go b/model/config.go
index 7bf891462..5add720d3 100644
--- a/model/config.go
+++ b/model/config.go
@@ -1039,7 +1039,7 @@ func (o *Config) SetDefaults() {
if o.ServiceSettings.EnableEmojiPicker == nil {
o.ServiceSettings.EnableEmojiPicker = new(bool)
- *o.ServiceSettings.EnableEmojiPicker = false
+ *o.ServiceSettings.EnableEmojiPicker = true
}
if o.ServiceSettings.RestrictCustomEmojiCreation == nil {
diff --git a/model/token.go b/model/token.go
index 6666e112b..a4d10c7f8 100644
--- a/model/token.go
+++ b/model/token.go
@@ -8,6 +8,7 @@ import "net/http"
const (
TOKEN_SIZE = 64
MAX_TOKEN_EXIPRY_TIME = 1000 * 60 * 60 * 24 // 24 hour
+ TOKEN_TYPE_OAUTH = "oauth"
)
type Token struct {
diff --git a/store/sql_oauth_store.go b/store/sql_oauth_store.go
index 8637055ae..2e6fe2655 100644
--- a/store/sql_oauth_store.go
+++ b/store/sql_oauth_store.go
@@ -9,6 +9,7 @@ import (
"github.com/mattermost/gorp"
"github.com/mattermost/platform/model"
+ "github.com/mattermost/platform/utils"
)
type SqlOAuthStore struct {
@@ -521,6 +522,24 @@ func (as SqlOAuthStore) deleteApp(transaction *gorp.Transaction, clientId string
return result
}
+ return as.deleteOAuthAppSessions(transaction, clientId)
+}
+
+func (as SqlOAuthStore) deleteOAuthAppSessions(transaction *gorp.Transaction, clientId string) StoreResult {
+ result := StoreResult{}
+
+ query := ""
+ if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
+ query = "DELETE FROM Sessions s USING OAuthAccessData o WHERE o.Token = s.Token AND o.ClientId = :Id"
+ } else if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_MYSQL {
+ query = "DELETE s.* FROM Sessions s INNER JOIN OAuthAccessData o ON o.Token = s.Token WHERE o.ClientId = :Id"
+ }
+
+ if _, err := transaction.Exec(query, map[string]interface{}{"Id": clientId}); err != nil {
+ result.Err = model.NewLocAppError("SqlOAuthStore.DeleteApp", "store.sql_oauth.delete_app.app_error", nil, "id="+clientId+", err="+err.Error())
+ return result
+ }
+
return as.deleteOAuthTokens(transaction, clientId)
}
diff --git a/store/sql_oauth_store_test.go b/store/sql_oauth_store_test.go
index 8c707562f..4dc09b830 100644
--- a/store/sql_oauth_store_test.go
+++ b/store/sql_oauth_store_test.go
@@ -414,7 +414,31 @@ func TestOAuthStoreDeleteApp(t *testing.T) {
t.Fatal(err)
}
+ s1 := model.Session{}
+ s1.UserId = model.NewId()
+ s1.Token = model.NewId()
+ s1.IsOAuth = true
+
+ Must(store.Session().Save(&s1))
+
+ ad1 := model.AccessData{}
+ ad1.ClientId = a1.Id
+ ad1.UserId = a1.CreatorId
+ ad1.Token = s1.Token
+ ad1.RefreshToken = model.NewId()
+ ad1.RedirectUri = "http://example.com"
+
+ Must(store.OAuth().SaveAccessData(&ad1))
+
if err := (<-store.OAuth().DeleteApp(a1.Id)).Err; err != nil {
t.Fatal(err)
}
+
+ if err := (<-store.Session().Get(s1.Token)).Err; err == nil {
+ t.Fatal("should error - session should be deleted")
+ }
+
+ if err := (<-store.OAuth().GetAccessData(s1.Token)).Err; err == nil {
+ t.Fatal("should error - access data should be deleted")
+ }
}
diff --git a/webapp/actions/emoji_actions.jsx b/webapp/actions/emoji_actions.jsx
index a6323449e..1c0d8b5ea 100644
--- a/webapp/actions/emoji_actions.jsx
+++ b/webapp/actions/emoji_actions.jsx
@@ -13,7 +13,7 @@ import {getProfilesByIds} from 'mattermost-redux/actions/users';
import * as EmojiActions from 'mattermost-redux/actions/emojis';
export async function loadEmoji(getProfiles = true) {
- const data = await EmojiActions.getAllCustomEmojis(10000)(dispatch, getState);
+ const data = await EmojiActions.getAllCustomEmojis()(dispatch, getState);
if (data && getProfiles) {
loadProfilesForEmoji(data);
diff --git a/webapp/actions/global_actions.jsx b/webapp/actions/global_actions.jsx
index 33a1c8432..e37e702a2 100644
--- a/webapp/actions/global_actions.jsx
+++ b/webapp/actions/global_actions.jsx
@@ -332,13 +332,6 @@ export function emitPreferencesDeletedEvent(preferences) {
});
}
-export function emitRemovePost(post) {
- AppDispatcher.handleViewAction({
- type: Constants.ActionTypes.REMOVE_POST,
- post
- });
-}
-
export function sendEphemeralPost(message, channelId) {
const timestamp = Utils.getTimestamp();
const post = {
@@ -497,6 +490,23 @@ export function toggleSideBarAction(visible) {
}
}
+export function toggleSideBarRightMenuAction() {
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_SEARCH,
+ results: null
+ });
+
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_POST_SELECTED,
+ postId: null
+ });
+
+ document.querySelector('.app__body .inner-wrap').classList.remove('move--right', 'move--left', 'move--left-small');
+ document.querySelector('.app__body .sidebar--left').classList.remove('move--right');
+ document.querySelector('.app__body .sidebar--right').classList.remove('move--left');
+ document.querySelector('.app__body .sidebar--menu').classList.remove('move--left');
+}
+
export function emitBrowserFocus(focus) {
AppDispatcher.handleViewAction({
type: ActionTypes.BROWSER_CHANGE_FOCUS,
diff --git a/webapp/actions/post_actions.jsx b/webapp/actions/post_actions.jsx
index 43204a543..09cc14e40 100644
--- a/webapp/actions/post_actions.jsx
+++ b/webapp/actions/post_actions.jsx
@@ -14,12 +14,13 @@ import {sendDesktopNotification} from 'actions/notification_actions.jsx';
import Constants from 'utils/constants.jsx';
const ActionTypes = Constants.ActionTypes;
+import {browserHistory} from 'react-router/es6';
+
// Redux actions
import store from 'stores/redux_store.jsx';
const dispatch = store.dispatch;
const getState = store.getState;
-import {getProfilesByIds} from 'mattermost-redux/actions/users';
import * as PostActions from 'mattermost-redux/actions/posts';
import {getMyChannelMember} from 'mattermost-redux/actions/channels';
@@ -55,7 +56,7 @@ function completePostReceive(post, websocketMessageProps) {
PostActions.getPostThread(post.root_id)(dispatch, getState).then(
(data) => {
dispatchPostActions(post, websocketMessageProps);
- loadProfilesForPosts(data.posts);
+ PostActions.getProfilesAndStatusesForPosts(data.posts, dispatch, getState);
}
);
@@ -123,7 +124,7 @@ export function getFlaggedPosts() {
is_pinned_posts: false
});
- loadProfilesForPosts(data.posts);
+ PostActions.getProfilesAndStatusesForPosts(data.posts, dispatch, getState);
}
).catch(
() => {} //eslint-disable-line no-empty-function
@@ -147,34 +148,13 @@ export function getPinnedPosts(channelId = ChannelStore.getCurrentId()) {
is_pinned_posts: true
});
- loadProfilesForPosts(data.posts);
+ PostActions.getProfilesAndStatusesForPosts(data.posts, dispatch, getState);
}
).catch(
() => {} //eslint-disable-line no-empty-function
);
}
-export function loadProfilesForPosts(posts) {
- const profilesToLoad = {};
- for (const pid in posts) {
- if (!posts.hasOwnProperty(pid)) {
- continue;
- }
-
- const post = posts[pid];
- if (!UserStore.hasProfile(post.user_id)) {
- profilesToLoad[post.user_id] = true;
- }
- }
-
- const list = Object.keys(profilesToLoad);
- if (list.length === 0) {
- return;
- }
-
- getProfilesByIds(list)(dispatch, getState);
-}
-
export function addReaction(channelId, postId, emojiName) {
PostActions.addReaction(postId, emojiName)(dispatch, getState);
}
@@ -202,6 +182,13 @@ export function updatePost(post, success) {
(data) => {
if (data && success) {
success();
+ } else {
+ const serverError = getState().requests.posts.editPost.error;
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_ERROR,
+ err: {id: serverError.server_error_id, ...serverError},
+ method: 'editPost'
+ });
}
}
);
@@ -236,6 +223,18 @@ export function deletePost(channelId, post, success) {
data: post
});
+ // Needed for search store
+ AppDispatcher.handleViewAction({
+ type: Constants.ActionTypes.REMOVE_POST,
+ post
+ });
+
+ const {focusedPostId} = getState().views.channel;
+ const channel = getState().entities.channels.channels[post.channel_id];
+ if (post.id === focusedPostId && channel) {
+ browserHistory.push(TeamStore.getCurrentTeamRelativeUrl() + '/channels/' + channel.name);
+ }
+
if (success) {
success();
}
@@ -252,7 +251,7 @@ export function performSearch(terms, isMentionSearch, success, error) {
is_mention_search: isMentionSearch
});
- loadProfilesForPosts(data.posts);
+ PostActions.getProfilesAndStatusesForPosts(data.posts, dispatch, getState);
if (success) {
success(data);
@@ -321,3 +320,23 @@ export function searchForTerm(term) {
do_search: true
});
}
+
+export function pinPost(postId) {
+ return async (doDispatch, doGetState) => {
+ await PostActions.pinPost(postId)(doDispatch, doGetState);
+
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_POST_PINNED
+ });
+ };
+}
+
+export function unpinPost(postId) {
+ return async (doDispatch, doGetState) => {
+ await PostActions.unpinPost(postId)(doDispatch, doGetState);
+
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_POST_UNPINNED
+ });
+ };
+}
diff --git a/webapp/actions/status_actions.jsx b/webapp/actions/status_actions.jsx
index 066a89254..e8559bd65 100644
--- a/webapp/actions/status_actions.jsx
+++ b/webapp/actions/status_actions.jsx
@@ -54,16 +54,9 @@ export function loadStatusesForChannelAndSidebar() {
const statusesToLoad = {};
const channelId = ChannelStore.getCurrentId();
- const postList = PostStore.getVisiblePosts(channelId);
- if (postList && postList.posts) {
- for (const pid in postList.posts) {
- if (!postList.posts.hasOwnProperty(pid)) {
- continue;
- }
-
- const post = postList.posts[pid];
- statusesToLoad[post.user_id] = true;
- }
+ const posts = PostStore.getVisiblePosts(channelId) || [];
+ for (const post of posts) {
+ statusesToLoad[post.user_id] = true;
}
const dmPrefs = PreferenceStore.getCategory(Preferences.CATEGORY_DIRECT_CHANNEL_SHOW);
@@ -74,6 +67,9 @@ export function loadStatusesForChannelAndSidebar() {
}
}
+ const {currentUserId} = getState().entities.users;
+ statusesToLoad[currentUserId] = true;
+
loadStatusesByIds(Object.keys(statusesToLoad));
}
diff --git a/webapp/actions/websocket_actions.jsx b/webapp/actions/websocket_actions.jsx
index dec3edd12..184013179 100644
--- a/webapp/actions/websocket_actions.jsx
+++ b/webapp/actions/websocket_actions.jsx
@@ -2,6 +2,7 @@
// See License.txt for license information.
import $ from 'jquery';
+import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
import UserStore from 'stores/user_store.jsx';
import TeamStore from 'stores/team_store.jsx';
@@ -15,7 +16,7 @@ import WebSocketClient from 'client/web_websocket_client.jsx';
import * as WebrtcActions from './webrtc_actions.jsx';
import * as GlobalActions from 'actions/global_actions.jsx';
-import {handleNewPost, loadProfilesForPosts} from 'actions/post_actions.jsx';
+import {handleNewPost} from 'actions/post_actions.jsx';
import {loadProfilesForSidebar} from 'actions/user_actions.jsx';
import {loadChannelsForCurrentUser} from 'actions/channel_actions.jsx';
import * as StatusActions from 'actions/status_actions.jsx';
@@ -34,7 +35,7 @@ import {getSiteURL} from 'utils/url.jsx';
import * as TeamActions from 'mattermost-redux/actions/teams';
import {viewChannel, getChannelAndMyMember, getChannelStats} from 'mattermost-redux/actions/channels';
-import {getPosts} from 'mattermost-redux/actions/posts';
+import {getPosts, getProfilesAndStatusesForPosts} from 'mattermost-redux/actions/posts';
import {setServerVersion} from 'mattermost-redux/actions/general';
import {ChannelTypes, TeamTypes, UserTypes, PostTypes, EmojiTypes} from 'mattermost-redux/action_types';
@@ -242,9 +243,7 @@ function handleNewPostEvent(msg) {
const post = JSON.parse(msg.data.post);
handleNewPost(post, msg);
- const posts = {};
- posts[post.id] = post;
- loadProfilesForPosts(posts);
+ getProfilesAndStatusesForPosts([post], dispatch, getState);
if (post.user_id !== UserStore.getCurrentId()) {
UserStore.setStatus(post.user_id, UserStatuses.ONLINE);
@@ -267,6 +266,12 @@ function handlePostEditEvent(msg) {
function handlePostDeleteEvent(msg) {
const post = JSON.parse(msg.data.post);
dispatch({type: PostTypes.POST_DELETED, data: post});
+
+ // Needed for search store
+ AppDispatcher.handleViewAction({
+ type: Constants.ActionTypes.POST_DELETED,
+ post
+ });
}
async function handleTeamAddedEvent(msg) {
diff --git a/webapp/components/add_users_to_team/add_users_to_team.jsx b/webapp/components/add_users_to_team/add_users_to_team.jsx
index 19e0d674b..e3eb8477b 100644
--- a/webapp/components/add_users_to_team/add_users_to_team.jsx
+++ b/webapp/components/add_users_to_team/add_users_to_team.jsx
@@ -215,6 +215,11 @@ export default class AddUsersToTeam extends React.Component {
/>
);
+ let users = [];
+ if (this.state.users) {
+ users = this.state.users.filter((user) => user.delete_at === 0);
+ }
+
return (
<Modal
dialogClassName={'more-modal more-direct-channels'}
@@ -238,7 +243,7 @@ export default class AddUsersToTeam extends React.Component {
<Modal.Body>
<MultiSelect
key='addUsersToTeamKey'
- options={this.state.users}
+ options={users}
optionRenderer={this.renderOption}
values={this.state.values}
valueRenderer={this.renderValue}
diff --git a/webapp/components/admin_console/push_settings.jsx b/webapp/components/admin_console/push_settings.jsx
index 5461ef730..3b21f727a 100644
--- a/webapp/components/admin_console/push_settings.jsx
+++ b/webapp/components/admin_console/push_settings.jsx
@@ -127,14 +127,14 @@ export default class PushSettings extends AdminSettings {
pushServerHelpText = (
<FormattedHTMLMessage
id='admin.email.mhpnsHelp'
- defaultMessage='Download <a href="https://itunes.apple.com/us/app/mattermost/id984966508?mt=8" target="_blank">Mattermost iOS app</a> from iTunes. Download <a href="https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en" target="_blank">Mattermost Android app</a> from Google Play. Learn more about the <a href="http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns" target="_blank">Mattermost Hosted Push Notification Service</a>.'
+ defaultMessage='Download <a href="https://about.mattermost.com/mattermost-ios-app/" target="_blank">Mattermost iOS app</a> from iTunes. Download <a href="https://about.mattermost.com/mattermost-android-app/" target="_blank">Mattermost Android app</a> from Google Play. Learn more about the <a href="http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns" target="_blank">Mattermost Hosted Push Notification Service</a>.'
/>
);
} else if (this.state.pushNotificationServerType === PUSH_NOTIFICATIONS_MTPNS) {
pushServerHelpText = (
<FormattedHTMLMessage
id='admin.email.mtpnsHelp'
- defaultMessage='Download <a href="https://itunes.apple.com/us/app/mattermost/id984966508?mt=8" target="_blank">Mattermost iOS app</a> from iTunes. Download <a href="https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en" target="_blank">Mattermost Android app</a> from Google Play. Learn more about the <a href="http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns" target="_blank">Mattermost Test Push Notification Service</a>.'
+ defaultMessage='Download <a href="https://about.mattermost.com/mattermost-ios-app/" target="_blank">Mattermost iOS app</a> from iTunes. Download <a href="https://about.mattermost.com/mattermost-android-app/" target="_blank">Mattermost Android app</a> from Google Play. Learn more about the <a href="http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns" target="_blank">Mattermost Test Push Notification Service</a>.'
/>
);
} else {
diff --git a/webapp/components/admin_console/saml_settings.jsx b/webapp/components/admin_console/saml_settings.jsx
index 4c0c0c8fd..2358660da 100644
--- a/webapp/components/admin_console/saml_settings.jsx
+++ b/webapp/components/admin_console/saml_settings.jsx
@@ -77,15 +77,15 @@ export default class SamlSettings extends AdminSettings {
AdminActions.samlCertificateStatus(
(data) => {
const files = {};
- if (!data.IdpCertificateFile) {
+ if (!data.idp_certificate_file) {
files.idpCertificateFile = '';
}
- if (!data.PublicCertificateFile) {
+ if (!data.public_certificate_file) {
files.publicCertificateFile = '';
}
- if (!data.PrivateKeyFile) {
+ if (!data.private_key_file) {
files.privateKeyFile = '';
}
this.setState(files);
diff --git a/webapp/components/channel_header.jsx b/webapp/components/channel_header.jsx
index 34d58f5aa..10e568794 100644
--- a/webapp/components/channel_header.jsx
+++ b/webapp/components/channel_header.jsx
@@ -964,7 +964,10 @@ export default class ChannelHeader extends React.Component {
placement='bottom'
overlay={recentMentionsTooltip}
>
- <div className='channel-header__icon icon--hidden'>
+ <div
+ className='channel-header__icon icon--hidden'
+ onClick={this.searchMentions}
+ >
<span
className='icon icon__mentions'
dangerouslySetInnerHTML={{__html: mentionsIcon}}
diff --git a/webapp/components/channel_invite_modal/channel_invite_modal.jsx b/webapp/components/channel_invite_modal/channel_invite_modal.jsx
index d2fceb2c3..8b09a7496 100644
--- a/webapp/components/channel_invite_modal/channel_invite_modal.jsx
+++ b/webapp/components/channel_invite_modal/channel_invite_modal.jsx
@@ -143,13 +143,18 @@ export default class ChannelInviteModal extends React.Component {
inviteError = (<label className='has-error control-label'>{this.state.inviteError}</label>);
}
+ let users = [];
+ if (this.state.users) {
+ users = this.state.users.filter((user) => user.delete_at === 0);
+ }
+
let content;
if (this.state.loading) {
content = (<LoadingScreen/>);
} else {
content = (
<SearchableUserList
- users={this.state.users}
+ users={users}
usersPerPage={USERS_PER_PAGE}
total={this.state.total}
nextPage={this.nextPage}
diff --git a/webapp/components/dot_menu/dot_menu.jsx b/webapp/components/dot_menu/dot_menu.jsx
index eb6a6c005..a2cbb9b48 100644
--- a/webapp/components/dot_menu/dot_menu.jsx
+++ b/webapp/components/dot_menu/dot_menu.jsx
@@ -58,10 +58,12 @@ export default class DotMenu extends Component {
constructor(props) {
super(props);
- this.handleDropdownOpened = this.handleDropdownOpened.bind(this);
- this.canDelete = false;
- this.canEdit = false;
this.editDisableAction = new DelayedAction(this.handleEditDisable);
+
+ this.state = {
+ canDelete: PostUtils.canDeletePost(props.post),
+ canEdit: PostUtils.canEditPost(props.post, this.editDisableAction)
+ };
}
componentDidMount() {
@@ -69,7 +71,11 @@ export default class DotMenu extends Component {
$('#' + this.props.idPrefix + '_dropdown' + this.props.post.id).on('hidden.bs.dropdown', () => this.props.handleDropdownOpened(false));
}
- handleDropdownOpened() {
+ componentWillUnmount() {
+ this.editDisableAction.cancel();
+ }
+
+ handleDropdownOpened = () => {
this.props.handleDropdownOpened(true);
const position = $('#post-list').height() - $(this.refs.dropdownToggle).offset().top;
@@ -80,17 +86,15 @@ export default class DotMenu extends Component {
}
}
- handleEditDisable() {
- this.canEdit = false;
+ handleEditDisable = () => {
+ this.setState({canEdit: false});
}
render() {
const isSystemMessage = PostUtils.isSystemMessage(this.props.post);
const isMobile = Utils.isMobile();
- this.canDelete = PostUtils.canDeletePost(this.props.post);
- this.canEdit = PostUtils.canEditPost(this.props.post, this.editDisableAction);
- if (this.props.idPrefix === Constants.CENTER && (!isMobile && isSystemMessage && !this.canDelete && !this.canEdit)) {
+ if (this.props.idPrefix === Constants.CENTER && (!isMobile && isSystemMessage && !this.state.canDelete && !this.state.canEdit)) {
return null;
}
@@ -157,7 +161,7 @@ export default class DotMenu extends Component {
}
let dotMenuDelete = null;
- if (this.canDelete) {
+ if (this.state.canDelete) {
dotMenuDelete = (
<DotMenuItem
idPrefix={idPrefix + 'Delete'}
@@ -169,7 +173,7 @@ export default class DotMenu extends Component {
}
let dotMenuEdit = null;
- if (this.canEdit) {
+ if (this.state.canEdit) {
dotMenuEdit = (
<DotMenuEdit
idPrefix={idPrefix + 'Edit'}
diff --git a/webapp/components/dot_menu/index.js b/webapp/components/dot_menu/index.js
index eaa1e8d2c..852fe6791 100644
--- a/webapp/components/dot_menu/index.js
+++ b/webapp/components/dot_menu/index.js
@@ -3,7 +3,8 @@
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
-import {flagPost, unflagPost, pinPost, unpinPost} from 'mattermost-redux/actions/posts';
+import {flagPost, unflagPost} from 'mattermost-redux/actions/posts';
+import {pinPost, unpinPost} from 'actions/post_actions.jsx';
import DotMenu from './dot_menu.jsx';
diff --git a/webapp/components/emoji_picker/emoji_picker.jsx b/webapp/components/emoji_picker/emoji_picker.jsx
index a047c1277..0d9b34176 100644
--- a/webapp/components/emoji_picker/emoji_picker.jsx
+++ b/webapp/components/emoji_picker/emoji_picker.jsx
@@ -309,7 +309,7 @@ export default class EmojiPicker extends React.Component {
right: this.props.rightOffset
};
} else {
- pickerStyle = this.props.style;
+ pickerStyle = {...this.props.style};
}
}
@@ -325,91 +325,111 @@ export default class EmojiPicker extends React.Component {
<div className='emoji-picker__categories'>
<EmojiPickerCategory
category='recent'
- icon={<i
- className='fa fa-clock-o'
- title={Utils.localizeMessage('emoji_picker.recent', 'Recently Used')}
- />}
+ icon={
+ <i
+ className='fa fa-clock-o'
+ title={Utils.localizeMessage('emoji_picker.recent', 'Recently Used')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'recent'}
/>
<EmojiPickerCategory
category='people'
- icon={<i
- className='fa fa-smile-o'
- title={Utils.localizeMessage('emoji_picker.people', 'People')}
- />}
+ icon={
+ <i
+ className='fa fa-smile-o'
+ title={Utils.localizeMessage('emoji_picker.people', 'People')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'people'}
/>
<EmojiPickerCategory
category='nature'
- icon={<i
- className='fa fa-leaf'
- title={Utils.localizeMessage('emoji_picker.nature', 'Nature')}
- />}
+ icon={
+ <i
+ className='fa fa-leaf'
+ title={Utils.localizeMessage('emoji_picker.nature', 'Nature')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'nature'}
/>
<EmojiPickerCategory
category='food'
- icon={<i
- className='fa fa-cutlery'
- title={Utils.localizeMessage('emoji_picker.food', 'Food')}
- />}
+ icon={
+ <i
+ className='fa fa-cutlery'
+ title={Utils.localizeMessage('emoji_picker.food', 'Food')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'food'}
/>
<EmojiPickerCategory
category='activity'
- icon={<i
- className='fa fa-futbol-o'
- title={Utils.localizeMessage('emoji_picker.activity', 'Activity')}
- />}
+ icon={
+ <i
+ className='fa fa-futbol-o'
+ title={Utils.localizeMessage('emoji_picker.activity', 'Activity')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'activity'}
/>
<EmojiPickerCategory
category='travel'
- icon={<i
- className='fa fa-plane'
- title={Utils.localizeMessage('emoji_picker.travel', 'Travel')}
- />}
+ icon={
+ <i
+ className='fa fa-plane'
+ title={Utils.localizeMessage('emoji_picker.travel', 'Travel')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'travel'}
/>
<EmojiPickerCategory
category='objects'
- icon={<i
- className='fa fa-lightbulb-o'
- title={Utils.localizeMessage('emoji_picker.objects', 'Objects')}
- />}
+ icon={
+ <i
+ className='fa fa-lightbulb-o'
+ title={Utils.localizeMessage('emoji_picker.objects', 'Objects')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'objects'}
/>
<EmojiPickerCategory
category='symbols'
- icon={<i
- className='fa fa-heart-o'
- title={Utils.localizeMessage('emoji_picker.symbols', 'Symbols')}
- />}
+ icon={
+ <i
+ className='fa fa-heart-o'
+ title={Utils.localizeMessage('emoji_picker.symbols', 'Symbols')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'symbols'}
/>
<EmojiPickerCategory
category='flags'
- icon={<i
- className='fa fa-flag-o'
- title={Utils.localizeMessage('emoji_picker.flags', 'Flags')}
- />}
+ icon={
+ <i
+ className='fa fa-flag-o'
+ title={Utils.localizeMessage('emoji_picker.flags', 'Flags')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'flags'}
/>
<EmojiPickerCategory
category='custom'
- icon={<i
- className='fa fa-at'
- title={Utils.localizeMessage('emoji_picker.custom', 'Custom')}
- />}
+ icon={
+ <i
+ className='fa fa-at'
+ title={Utils.localizeMessage('emoji_picker.custom', 'Custom')}
+ />
+ }
onCategoryClick={this.handleCategoryClick}
selected={this.state.category === 'custom'}
/>
diff --git a/webapp/components/emoji_picker/emoji_picker_overlay.jsx b/webapp/components/emoji_picker/emoji_picker_overlay.jsx
index 0a289a242..7174e004c 100644
--- a/webapp/components/emoji_picker/emoji_picker_overlay.jsx
+++ b/webapp/components/emoji_picker/emoji_picker_overlay.jsx
@@ -15,7 +15,15 @@ export default class EmojiPickerOverlay extends React.PureComponent {
onEmojiClick: PropTypes.func.isRequired,
onHide: PropTypes.func.isRequired,
rightOffset: PropTypes.number,
- topOffset: PropTypes.number
+ topOffset: PropTypes.number,
+ spaceRequiredAbove: PropTypes.number,
+ spaceRequiredBelow: PropTypes.number
+ }
+
+ // Reasonable defaults calculated from from the center channel
+ static defaultProps = {
+ spaceRequiredAbove: 422,
+ spaceRequiredBelow: 436
}
constructor(props) {
@@ -28,15 +36,12 @@ export default class EmojiPickerOverlay extends React.PureComponent {
componentWillUpdate(nextProps) {
if (nextProps.show && !this.props.show) {
- const spaceRequiredAbove = 422;
- const spaceRequiredBelow = 436;
-
const targetBounds = nextProps.target().getBoundingClientRect();
let placement;
- if (targetBounds.top > spaceRequiredAbove) {
+ if (targetBounds.top > nextProps.spaceRequiredAbove) {
placement = 'top';
- } else if (window.innerHeight - targetBounds.bottom > spaceRequiredBelow) {
+ } else if (window.innerHeight - targetBounds.bottom > nextProps.spaceRequiredBelow) {
placement = 'bottom';
} else {
placement = 'left';
diff --git a/webapp/components/integrations/components/edit_incoming_webhook.jsx b/webapp/components/integrations/components/edit_incoming_webhook.jsx
index 5a6309212..00cb50cbd 100644
--- a/webapp/components/integrations/components/edit_incoming_webhook.jsx
+++ b/webapp/components/integrations/components/edit_incoming_webhook.jsx
@@ -31,13 +31,11 @@ export default class EditIncomingWebhook extends AbstractIncomingWebhook {
handleIntegrationChange() {
const teamId = TeamStore.getCurrentId();
- this.setState({
- hooks: IntegrationStore.getIncomingWebhooks(teamId),
- loading: !IntegrationStore.hasReceivedIncomingWebhooks(teamId)
- });
+ const hooks = IntegrationStore.getIncomingWebhooks(teamId);
+ const loading = !IntegrationStore.hasReceivedIncomingWebhooks(teamId);
- if (!this.state.loading) {
- this.originalIncomingHook = this.state.hooks.filter((hook) => hook.id === this.props.location.query.id)[0];
+ if (!loading) {
+ this.originalIncomingHook = hooks.filter((hook) => hook.id === this.props.location.query.id)[0];
this.setState({
displayName: this.originalIncomingHook.display_name,
diff --git a/webapp/components/leave_team_modal.jsx b/webapp/components/leave_team_modal.jsx
index 379ece4c3..a38dd2da1 100644
--- a/webapp/components/leave_team_modal.jsx
+++ b/webapp/components/leave_team_modal.jsx
@@ -61,6 +61,7 @@ class LeaveTeamModal extends React.Component {
}
GlobalActions.emitLeaveTeam();
+ GlobalActions.toggleSideBarRightMenuAction();
}
handleHide() {
diff --git a/webapp/components/markdown_image.jsx b/webapp/components/markdown_image.jsx
index 75a6ce9ea..2634ef3f6 100644
--- a/webapp/components/markdown_image.jsx
+++ b/webapp/components/markdown_image.jsx
@@ -1,19 +1,67 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import React, {PureComponent} from 'react';
+import PropTypes from 'prop-types';
+import React from 'react';
import {postListScrollChange} from 'actions/global_actions.jsx';
-export default class MarkdownImage extends PureComponent {
- handleLoad = () => {
- postListScrollChange();
+const WAIT_FOR_HEIGHT_TIMEOUT = 100;
+
+export default class MarkdownImage extends React.PureComponent {
+ static propTypes = {
+
+ /*
+ * The href of the image to be loaded
+ */
+ href: PropTypes.string
}
- render() {
- const props = {...this.props};
- props.onLoad = this.handleLoad;
+ constructor(props) {
+ super(props);
+
+ this.heightTimeout = 0;
+ }
+
+ componentDidMount() {
+ this.waitForHeight();
+ }
+
+ componentDidUpdate(prevProps) {
+ if (this.props.href !== prevProps.href) {
+ this.waitForHeight();
+ }
+ }
- return <img {...props}/>;
+ componentWillUnmount() {
+ this.stopWaitingForHeight();
+ }
+
+ waitForHeight = () => {
+ if (this.refs.image.height) {
+ setTimeout(postListScrollChange, 0);
+
+ this.heightTimeout = 0;
+ } else {
+ this.heightTimeout = setTimeout(this.waitForHeight, WAIT_FOR_HEIGHT_TIMEOUT);
+ }
+ }
+
+ stopWaitingForHeight = () => {
+ if (this.heightTimeout !== 0) {
+ clearTimeout(this.heightTimeout);
+ this.heightTimeout = 0;
+ }
+ }
+
+ render() {
+ return (
+ <img
+ {...this.props}
+ ref='image'
+ onLoad={this.stopWaitingForHeight}
+ onError={this.stopWaitingForHeight}
+ />
+ );
}
}
diff --git a/webapp/components/member_list_channel/member_list_channel.jsx b/webapp/components/member_list_channel/member_list_channel.jsx
index f47f26cf6..272e210ce 100644
--- a/webapp/components/member_list_channel/member_list_channel.jsx
+++ b/webapp/components/member_list_channel/member_list_channel.jsx
@@ -146,7 +146,7 @@ export default class MemberListChannel extends React.Component {
for (let i = 0; i < users.length; i++) {
const user = users[i];
- if (teamMembers[user.id] && channelMembers[user.id]) {
+ if (teamMembers[user.id] && channelMembers[user.id] && user.delete_at === 0) {
usersToDisplay.push(user);
actionUserProps[user.id] = {
channel: this.props.channel,
diff --git a/webapp/components/more_direct_channels/more_direct_channels.jsx b/webapp/components/more_direct_channels/more_direct_channels.jsx
index 705c1ac95..0e50eca72 100644
--- a/webapp/components/more_direct_channels/more_direct_channels.jsx
+++ b/webapp/components/more_direct_channels/more_direct_channels.jsx
@@ -292,6 +292,11 @@ export default class MoreDirectChannels extends React.Component {
/>
);
+ let users = [];
+ if (this.state.users) {
+ users = this.state.users.filter((user) => user.delete_at === 0);
+ }
+
return (
<Modal
dialogClassName={'more-modal more-direct-channels'}
@@ -310,7 +315,7 @@ export default class MoreDirectChannels extends React.Component {
<Modal.Body>
<MultiSelect
key='moreDirectChannelsList'
- options={this.state.users}
+ options={users}
optionRenderer={this.renderOption}
values={this.state.values}
valueRenderer={this.renderValue}
diff --git a/webapp/components/navbar.jsx b/webapp/components/navbar.jsx
index f61f58a8d..6305f870e 100644
--- a/webapp/components/navbar.jsx
+++ b/webapp/components/navbar.jsx
@@ -698,7 +698,7 @@ export default class Navbar extends React.Component {
/>
</span>
<span
- className='icon icon__menu'
+ className='icon icon__menu icon--sidebarHeaderTextColor'
dangerouslySetInnerHTML={{__html: menuIcon}}
aria-hidden='true'
/>
diff --git a/webapp/components/pdf_preview.jsx b/webapp/components/pdf_preview.jsx
index 790355561..09913afcf 100644
--- a/webapp/components/pdf_preview.jsx
+++ b/webapp/components/pdf_preview.jsx
@@ -84,7 +84,7 @@ export default class PDFPreview extends React.Component {
success: false
});
- PDFJS.getDocument(window.mm_config.SiteURL + props.fileUrl).then(this.onDocumentLoad);
+ PDFJS.getDocument(props.fileUrl).then(this.onDocumentLoad);
}
onDocumentLoad(pdf) {
diff --git a/webapp/components/post_view/post_body/index.js b/webapp/components/post_view/post_body/index.js
index 37cf114b0..90f04e0f9 100644
--- a/webapp/components/post_view/post_body/index.js
+++ b/webapp/components/post_view/post_body/index.js
@@ -16,7 +16,7 @@ function mapStateToProps(state, ownProps) {
let parentPostUser;
if (ownProps.post.root_id) {
parentPost = getPost(state, ownProps.post.root_id);
- parentPostUser = getUser(state, parentPost.user_id);
+ parentPostUser = parentPost ? getUser(state, parentPost.user_id) : null;
}
return {
diff --git a/webapp/components/post_view/post_body_additional_content.jsx b/webapp/components/post_view/post_body_additional_content.jsx
index 768b999d0..be9e37827 100644
--- a/webapp/components/post_view/post_body_additional_content.jsx
+++ b/webapp/components/post_view/post_body_additional_content.jsx
@@ -191,7 +191,7 @@ export default class PostBodyAdditionalContent extends React.PureComponent {
);
const contents = [message];
- if (this.state.linkLoaded) {
+ if (this.state.linkLoaded || this.props.previewCollapsed.startsWith('true')) {
if (prependToggle) {
contents.unshift(toggle);
} else {
diff --git a/webapp/components/post_view/post_info/post_info.jsx b/webapp/components/post_view/post_info/post_info.jsx
index d64d1aca6..6eaef0e0b 100644
--- a/webapp/components/post_view/post_info/post_info.jsx
+++ b/webapp/components/post_view/post_info/post_info.jsx
@@ -81,8 +81,7 @@ export default class PostInfo extends React.PureComponent {
this.state = {
showEmojiPicker: false,
- reactionPickerOffset: 21,
- canEdit: PostUtils.canEditPost(props.post, this.editDisableAction)
+ reactionPickerOffset: 21
};
}
diff --git a/webapp/components/post_view/post_list.jsx b/webapp/components/post_view/post_list.jsx
index 13cc28da3..d8a56fe83 100644
--- a/webapp/components/post_view/post_list.jsx
+++ b/webapp/components/post_view/post_list.jsx
@@ -104,12 +104,13 @@ export default class PostList extends React.PureComponent {
this.previousScrollTop = Number.MAX_SAFE_INTEGER;
this.previousScrollHeight = 0;
this.previousClientHeight = 0;
+ this.atBottom = false;
this.state = {
atEnd: false,
unViewedCount: 0,
isScrolling: false,
- lastViewed: Number.MAX_SAFE_INTEGER
+ lastViewed: props.lastViewedAt
};
}
@@ -144,24 +145,20 @@ export default class PostList extends React.PureComponent {
this.hasScrolled = false;
this.hasScrolledToFocusedPost = false;
this.hasScrolledToNewMessageSeparator = false;
- this.setState({atEnd: false});
+ this.atBottom = false;
+ this.setState({atEnd: false, lastViewed: nextProps.lastViewedAt});
if (nextChannel.id) {
this.loadPosts(nextChannel.id);
}
- return;
}
- if (!this.wasAtBottom() && this.props.posts !== nextProps.posts) {
- const unViewedCount = nextProps.posts.reduce((count, post) => {
- if (post.create_at > this.state.lastViewed &&
- post.user_id !== nextProps.currentUserId &&
- post.state !== Constants.POST_DELETED) {
- return count + 1;
- }
- return count;
- }, 0);
- this.setState({unViewedCount});
+ const nextPosts = nextProps.posts || [];
+ const posts = this.props.posts || [];
+ const hasNewPosts = (posts.length === 0 && nextPosts.length > 0) || (posts.length > 0 && nextPosts.length > 0 && posts[0].id !== nextPosts[0].id);
+
+ if (!this.checkBottom() && hasNewPosts) {
+ this.setUnreadsBelow(nextPosts, nextProps.currentUserId);
}
}
}
@@ -184,6 +181,10 @@ export default class PostList extends React.PureComponent {
const posts = this.props.posts;
const postList = this.refs.postlist;
+ if (!postList) {
+ return;
+ }
+
// Scroll to focused post on first load
const focusedPost = this.refs[this.props.focusedPostId];
if (focusedPost && this.props.posts) {
@@ -203,9 +204,13 @@ export default class PostList extends React.PureComponent {
if (messageSeparator && !this.hasScrolledToNewMessageSeparator) {
const element = ReactDOM.findDOMNode(messageSeparator);
element.scrollIntoView();
+ if (!this.checkBottom()) {
+ this.setUnreadsBelow(posts, this.props.currentUserId);
+ }
return;
} else if (postList && !this.hasScrolledToNewMessageSeparator) {
postList.scrollTop = postList.scrollHeight;
+ this.atBottom = true;
return;
}
@@ -218,7 +223,7 @@ export default class PostList extends React.PureComponent {
const pendingPostId = posts[0].pending_post_id;
if (postId !== prevPostId && pendingPostId !== prevPostId) {
// If already scrolled to bottom
- if (this.wasAtBottom()) {
+ if (this.atBottom) {
doScrollToBottom = true;
}
@@ -229,6 +234,7 @@ export default class PostList extends React.PureComponent {
}
if (doScrollToBottom) {
+ this.atBottom = true;
postList.scrollTop = postList.scrollHeight;
return;
}
@@ -240,26 +246,55 @@ export default class PostList extends React.PureComponent {
}
}
+ setUnreadsBelow = (posts, currentUserId) => {
+ const unViewedCount = posts.reduce((count, post) => {
+ if (post.create_at > this.state.lastViewed &&
+ post.user_id !== currentUserId &&
+ post.state !== Constants.POST_DELETED) {
+ return count + 1;
+ }
+ return count;
+ }, 0);
+ this.setState({unViewedCount});
+ }
+
handleScrollStop = () => {
this.setState({
isScrolling: false
});
}
- wasAtBottom = () => {
- return this.previousClientHeight + this.previousScrollTop >= this.previousScrollHeight - CLOSE_TO_BOTTOM_SCROLL_MARGIN;
+ checkBottom = () => {
+ if (!this.refs.postlist) {
+ return true;
+ }
+
+ // No scroll bar so we're at the bottom
+ if (this.refs.postlist.scrollHeight <= this.refs.postlist.clientHeight) {
+ return true;
+ }
+
+ return this.refs.postlist.clientHeight + this.refs.postlist.scrollTop >= this.refs.postlist.scrollHeight - CLOSE_TO_BOTTOM_SCROLL_MARGIN;
}
handleResize = (forceScrollToBottom) => {
const postList = this.refs.postlist;
- const doScrollToBottom = this.wasAtBottom() || forceScrollToBottom;
+ const messageSeparator = this.refs.newMessageSeparator;
+ const doScrollToBottom = this.atBottom || forceScrollToBottom;
- if (postList && doScrollToBottom) {
- postList.scrollTop = postList.scrollHeight;
+ if (postList) {
+ if (doScrollToBottom) {
+ postList.scrollTop = postList.scrollHeight;
+ } else if (!this.hasScrolled && messageSeparator) {
+ const element = ReactDOM.findDOMNode(messageSeparator);
+ element.scrollIntoView();
+ }
this.previousScrollHeight = postList.scrollHeight;
this.previousScrollTop = postList.scrollTop;
this.previousClientHeight = postList.clientHeight;
+
+ this.atBottom = this.checkBottom();
}
}
@@ -296,9 +331,18 @@ export default class PostList extends React.PureComponent {
}
handleScroll = () => {
- this.hasScrolled = true;
+ // Only count as user scroll if we've already performed our first load scroll
+ this.hasScrolled = this.hasScrolledToNewMessageSeparator || this.hasScrolledToFocusedPost;
+ if (!this.refs.postlist) {
+ return;
+ }
+
this.previousScrollTop = this.refs.postlist.scrollTop;
+ if (this.refs.postlist.scrollHeight === this.previousScrollHeight) {
+ this.atBottom = this.checkBottom();
+ }
+
this.updateFloatingTimestamp();
if (!this.state.isScrolling) {
@@ -307,7 +351,7 @@ export default class PostList extends React.PureComponent {
});
}
- if (this.wasAtBottom()) {
+ if (this.checkBottom()) {
this.setState({
lastViewed: new Date().getTime(),
unViewedCount: 0,
@@ -509,7 +553,7 @@ export default class PostList extends React.PureComponent {
/>
<ScrollToBottomArrows
isScrolling={this.state.isScrolling}
- atBottom={this.wasAtBottom()}
+ atBottom={this.atBottom}
onClick={this.scrollToBottom}
/>
<NewMessageIndicator
diff --git a/webapp/components/quick_switch_modal/quick_switch_modal.jsx b/webapp/components/quick_switch_modal/quick_switch_modal.jsx
index 2fbfdb2bd..736b728f0 100644
--- a/webapp/components/quick_switch_modal/quick_switch_modal.jsx
+++ b/webapp/components/quick_switch_modal/quick_switch_modal.jsx
@@ -305,7 +305,7 @@ export default class QuickSwitchModal extends React.PureComponent {
<Modal.Header closeButton={true}/>
<Modal.Body>
{header}
- <div className='modal__hint hidden-xs'>
+ <div className='modal__hint'>
{help}
</div>
<SuggestionBox
diff --git a/webapp/components/rhs_comment.jsx b/webapp/components/rhs_comment.jsx
index 202be9748..568d85304 100644
--- a/webapp/components/rhs_comment.jsx
+++ b/webapp/components/rhs_comment.jsx
@@ -11,7 +11,6 @@ import FailedPostOptions from 'components/post_view/failed_post_options';
import DotMenu from 'components/dot_menu';
import EmojiPickerOverlay from 'components/emoji_picker/emoji_picker_overlay.jsx';
-import * as GlobalActions from 'actions/global_actions.jsx';
import {addReaction} from 'actions/post_actions.jsx';
import TeamStore from 'stores/team_store.jsx';
@@ -27,6 +26,19 @@ import {Link} from 'react-router/es6';
import {FormattedMessage} from 'react-intl';
export default class RhsComment extends React.Component {
+ static propTypes = {
+ post: PropTypes.object,
+ lastPostCount: PropTypes.number,
+ user: PropTypes.object.isRequired,
+ currentUser: PropTypes.object.isRequired,
+ compactDisplay: PropTypes.bool,
+ useMilitaryTime: PropTypes.bool.isRequired,
+ isFlagged: PropTypes.bool,
+ status: PropTypes.string,
+ isBusy: PropTypes.bool,
+ removePost: PropTypes.func.isRequired
+ };
+
constructor(props) {
super(props);
@@ -56,7 +68,7 @@ export default class RhsComment extends React.Component {
}
removePost() {
- GlobalActions.emitRemovePost(this.props.post);
+ this.props.removePost(this.props.post);
}
createRemovePostButton() {
@@ -333,9 +345,10 @@ export default class RhsComment extends React.Component {
show={this.state.showEmojiPicker}
onHide={this.toggleEmojiPicker}
target={() => this.refs.dotMenu}
- container={this.props.getPostList}
onEmojiClick={this.reactEmojiClick}
rightOffset={15}
+ spaceRequiredAbove={342}
+ spaceRequiredBelow={342}
/>
<a
href='#'
@@ -436,16 +449,3 @@ export default class RhsComment extends React.Component {
);
}
}
-
-RhsComment.propTypes = {
- post: PropTypes.object,
- lastPostCount: PropTypes.number,
- user: PropTypes.object.isRequired,
- currentUser: PropTypes.object.isRequired,
- compactDisplay: PropTypes.bool,
- useMilitaryTime: PropTypes.bool.isRequired,
- isFlagged: PropTypes.bool,
- status: PropTypes.string,
- isBusy: PropTypes.bool,
- getPostList: PropTypes.func.isRequired
-};
diff --git a/webapp/components/rhs_root_post.jsx b/webapp/components/rhs_root_post.jsx
index 352de0c67..fa72da167 100644
--- a/webapp/components/rhs_root_post.jsx
+++ b/webapp/components/rhs_root_post.jsx
@@ -38,8 +38,7 @@ export default class RhsRootPost extends React.Component {
isFlagged: PropTypes.bool,
status: PropTypes.string,
previewCollapsed: PropTypes.string,
- isBusy: PropTypes.bool,
- getPostList: PropTypes.func.isRequired
+ isBusy: PropTypes.bool
}
static defaultProps = {
@@ -226,9 +225,10 @@ export default class RhsRootPost extends React.Component {
show={this.state.showEmojiPicker}
onHide={this.toggleEmojiPicker}
target={() => this.refs.dotMenu}
- container={this.props.getPostList}
onEmojiClick={this.reactEmojiClick}
rightOffset={15}
+ spaceRequiredAbove={342}
+ spaceRequiredBelow={342}
/>
<a
href='#'
diff --git a/webapp/components/rhs_thread/index.js b/webapp/components/rhs_thread/index.js
index c4465cafd..ed7618427 100644
--- a/webapp/components/rhs_thread/index.js
+++ b/webapp/components/rhs_thread/index.js
@@ -2,7 +2,9 @@
// See License.txt for license information.
import {connect} from 'react-redux';
+import {bindActionCreators} from 'redux';
import {getPost, makeGetPostsForThread} from 'mattermost-redux/selectors/entities/posts';
+import {removePost} from 'mattermost-redux/actions/posts';
import RhsThread from './rhs_thread.jsx';
@@ -24,4 +26,12 @@ function makeMapStateToProps() {
};
}
-export default connect(makeMapStateToProps)(RhsThread);
+function mapDispatchToProps(dispatch) {
+ return {
+ actions: bindActionCreators({
+ removePost
+ }, dispatch)
+ };
+}
+
+export default connect(makeMapStateToProps, mapDispatchToProps)(RhsThread);
diff --git a/webapp/components/rhs_thread/rhs_thread.jsx b/webapp/components/rhs_thread/rhs_thread.jsx
index bbf61af19..58325e8cc 100644
--- a/webapp/components/rhs_thread/rhs_thread.jsx
+++ b/webapp/components/rhs_thread/rhs_thread.jsx
@@ -59,7 +59,10 @@ export default class RhsThread extends React.Component {
currentUser: PropTypes.object.isRequired,
useMilitaryTime: PropTypes.bool.isRequired,
toggleSize: PropTypes.func,
- shrink: PropTypes.func
+ shrink: PropTypes.func,
+ actions: PropTypes.shape({
+ removePost: PropTypes.func.isRequired
+ }).isRequired
}
static defaultProps = {
@@ -316,10 +319,6 @@ export default class RhsThread extends React.Component {
});
}
- getPostListContainer = () => {
- return this.refs.postListContainer;
- }
-
getSidebarBody = () => {
return this.refs.sidebarbody;
}
@@ -400,7 +399,7 @@ export default class RhsThread extends React.Component {
isFlagged={isFlagged}
status={status}
isBusy={this.state.isBusy}
- getPostList={this.getPostListContainer}
+ removePost={this.props.actions.removePost}
/>
</div>
);
@@ -435,10 +434,7 @@ export default class RhsThread extends React.Component {
renderView={renderView}
onScroll={this.handleScroll}
>
- <div
- ref='postListContainer'
- className='post-right__scroll'
- >
+ <div className='post-right__scroll'>
<DateSeparator
date={rootPostDay}
/>
@@ -454,7 +450,6 @@ export default class RhsThread extends React.Component {
status={rootStatus}
previewCollapsed={this.state.previewsCollapsed}
isBusy={this.state.isBusy}
- getPostList={this.getPostListContainer}
/>
<div
ref='rhspostlist'
diff --git a/webapp/components/search_results_item.jsx b/webapp/components/search_results_item.jsx
index c0f405eb4..3b632ee5e 100644
--- a/webapp/components/search_results_item.jsx
+++ b/webapp/components/search_results_item.jsx
@@ -21,7 +21,6 @@ import * as PostUtils from 'utils/post_utils.jsx';
import Constants from 'utils/constants.jsx';
const ActionTypes = Constants.ActionTypes;
-import {Posts} from 'mattermost-redux/constants';
import React from 'react';
import PropTypes from 'prop-types';
@@ -187,7 +186,7 @@ export default class SearchResultsItem extends React.Component {
let message;
let flagContent;
let rhsControls;
- if (post.state === Posts.POST_DELETED) {
+ if (post.state === Constants.POST_DELETED) {
message = (
<p>
<FormattedMessage
diff --git a/webapp/components/sidebar_right/sidebar_right.jsx b/webapp/components/sidebar_right/sidebar_right.jsx
index 21d3df345..737254682 100644
--- a/webapp/components/sidebar_right/sidebar_right.jsx
+++ b/webapp/components/sidebar_right/sidebar_right.jsx
@@ -77,12 +77,12 @@ export default class SidebarRight extends React.Component {
}
shouldComponentUpdate(nextProps, nextState) {
- return !Utils.areObjectsEqual(nextState, this.state) || !Utils.areObjectsEqual(nextProps, this.props);
+ return !Utils.areObjectsEqual(nextState, this.state) || this.props.postRightVisible !== nextProps.postRightVisible;
}
componentWillUpdate(nextProps, nextState) {
const isOpen = this.state.searchVisible || this.props.postRightVisible;
- const willOpen = nextState.searchVisible || nextState.postRightVisible;
+ const willOpen = nextState.searchVisible || nextProps.postRightVisible;
if (!isOpen && willOpen) {
trackEvent('ui', 'ui_rhs_opened');
diff --git a/webapp/components/sidebar_right_menu.jsx b/webapp/components/sidebar_right_menu.jsx
index d40e90279..f0e6f10a1 100644
--- a/webapp/components/sidebar_right_menu.jsx
+++ b/webapp/components/sidebar_right_menu.jsx
@@ -1,7 +1,6 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
import TeamMembersModal from './team_members_modal.jsx';
import ToggleModalButton from './toggle_modal_button.jsx';
import AboutBuildModal from './about_build_modal.jsx';
@@ -19,7 +18,6 @@ import * as UserAgent from 'utils/user_agent.jsx';
import * as Utils from 'utils/utils.jsx';
import {Constants, WebrtcActionTypes} from 'utils/constants.jsx';
-const ActionTypes = Constants.ActionTypes;
const Preferences = Constants.Preferences;
const TutorialSteps = Constants.TutorialSteps;
@@ -143,20 +141,7 @@ export default class SidebarRightMenu extends React.Component {
hideSidebars() {
if (Utils.isMobile()) {
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_SEARCH,
- results: null
- });
-
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_POST_SELECTED,
- postId: null
- });
-
- document.querySelector('.app__body .inner-wrap').classList.remove('move--right', 'move--left', 'move--left-small');
- document.querySelector('.app__body .sidebar--left').classList.remove('move--right');
- document.querySelector('.app__body .sidebar--right').classList.remove('move--left');
- document.querySelector('.app__body .sidebar--menu').classList.remove('move--left');
+ GlobalActions.toggleSideBarRightMenuAction();
}
}
diff --git a/webapp/components/spinner_button.jsx b/webapp/components/spinner_button.jsx
index 78079b2b4..b3b291ff8 100644
--- a/webapp/components/spinner_button.jsx
+++ b/webapp/components/spinner_button.jsx
@@ -16,6 +16,12 @@ export default class SpinnerButton extends React.Component {
};
}
+ static get defaultProps() {
+ return {
+ spinning: false
+ };
+ }
+
render() {
const {spinning, children, ...props} = this.props; // eslint-disable-line no-use-before-define
diff --git a/webapp/components/team_import_tab.jsx b/webapp/components/team_import_tab.jsx
index a17442dc9..b310cdc12 100644
--- a/webapp/components/team_import_tab.jsx
+++ b/webapp/components/team_import_tab.jsx
@@ -29,12 +29,12 @@ class TeamImportTab extends React.Component {
};
}
- onImportFailure(e, err, res) {
- this.setState({status: 'fail', link: 'data:application/octet-stream;charset=utf-8,' + encodeURIComponent(res.text)});
+ onImportFailure() {
+ this.setState({status: 'fail'});
}
- onImportSuccess(data, res) {
- this.setState({status: 'done', link: 'data:application/octet-stream;charset=utf-8,' + encodeURIComponent(res.text)});
+ onImportSuccess(data) {
+ this.setState({status: 'done', link: 'data:application/octet-stream;charset=utf-8,' + encodeURIComponent(atob(data.results))});
}
doImportSlack(file) {
diff --git a/webapp/components/user_profile.jsx b/webapp/components/user_profile.jsx
index 22d6b6b77..1cd2ef637 100644
--- a/webapp/components/user_profile.jsx
+++ b/webapp/components/user_profile.jsx
@@ -56,10 +56,6 @@ export default class UserProfile extends React.Component {
render() {
let name = '...';
let profileImg = '';
- let popoverPosition = 'right';
- if (Utils.isMobile()) {
- popoverPosition = 'bottom';
- }
if (this.props.user) {
name = Utils.displayUsername(this.props.user.id);
@@ -78,7 +74,7 @@ export default class UserProfile extends React.Component {
<OverlayTrigger
ref='overlay'
trigger='click'
- placement={popoverPosition}
+ placement='right'
rootClose={true}
overlay={
<ProfilePopover
diff --git a/webapp/i18n/de.json b/webapp/i18n/de.json
index 7f0f7188f..311ee0b65 100644
--- a/webapp/i18n/de.json
+++ b/webapp/i18n/de.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Einen Link zur Downloadseite für die Mattermost-Apps hinzufügen. Wenn ein Link angegeben wird, wird die Option \"Mattermost-Apps herunterladen\" zum Hauptmenü hinzugefügt sodass Benutzer die Downloadseite finden können. Dieses Feld leer lassen um die Option im Hauptmenü auszublenden.",
"admin.customization.appDownloadLinkTitle": "Link zur Downloadseite der Mattermost-Apps:",
"admin.customization.customBrand": "Eigenes Branding",
- "admin.customization.customEmoji": "Benutzerdefiniertes Emoji",
+ "admin.customization.emoji": "Emoji",
"admin.customization.enableCustomEmojiDesc": "Erlaube es Benutzern, eigene Emojis für Nachrichten zu erstellen. Wenn aktiviert, können eigene Emojis durch wechseln zu einem Team, Klicken auf die drei Punkte über der Kanal-Seitenleiste und dem Auswählen von \"Eigene Emoji\" aufgerufen werden.",
"admin.customization.enableCustomEmojiTitle": "Eigene Emoji ermöglichen:",
+ "admin.customization.enableEmojiPickerDesc": "Die Emojiauswahl ermöglicht den Benutzern Emojis als Reaktionen oder zur Verwendung in Nachrichten auszuwählen. Die Aktivierung der Emojiauswahl bei einer großen Anzahl an benutzerdefinierten Emojis kann die Performance verringern.",
+ "admin.customization.enableEmojiPickerTitle": "Emojiauswahl aktivieren:",
"admin.customization.enableLinkPreviewsDesc": "Erlaube Benutzern eine Vorschau einer Webseite unterhalb der Nachricht anzuzeigen, sofern verfügbar. Wenn wahr, können Webseitenvorschauen über Kontoeinstellungen > Erweitert > Vorschau auf Features der neuen Version aktiviert werden.",
"admin.customization.enableLinkPreviewsTitle": "Erlaube Link-Vorschauen:",
"admin.customization.iosAppDownloadLinkDesc": "Einen Link zum Download der iOS-App hinzufügen. Benutzer, die die Seite über einen mobilen Browser aufrufen, wird eine Seite mit der Option die App herunterzuladen angezeigt. Dieses Feld leer lassen um zu verhindern, dass die Seite angezeigt wird.",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "Z.B.: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "Salt für E-Mail-Einladung:",
"admin.email.mhpns": "Benutze verschlüsselte, production-quality HPNS Verbindung zu iOS und Android Apps",
- "admin.email.mhpnsHelp": "<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS App</a> bei iTunes herunterladen. <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android App</a> bei Google Play herunterladen. Erfahren Sie mehr über <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
+ "admin.email.mhpnsHelp": "<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS App</a> bei iTunes herunterladen. <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android App</a> bei Google Play herunterladen. Erfahren Sie mehr über <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
"admin.email.mtpns": "Benutze iOS und Android Apps von iTunes und Google Play mit TPNS",
- "admin.email.mtpnsHelp": "<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS App</a> bei iTunes herunterladen. <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android App</a> bei Google Play herunterladen. Erfahren Sie mehr über <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
+ "admin.email.mtpnsHelp": "<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS App</a> bei iTunes herunterladen. <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android App</a> bei Google Play herunterladen. Erfahren Sie mehr über <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
"admin.email.nofificationOrganizationExample": "Z.B. \"© Musterfirma GmbH, Musterstraße 23, 59424 Musterhausen, Deutschland\"",
"admin.email.notificationDisplayDescription": "Anzeigename des E-Mail-Kontos, welches zum Senden von Benachrichtigungsmails von Mattermost verwendet wird.",
"admin.email.notificationDisplayExample": "Z.B.: \"Mattermost-Nachricht\", \"System\", \"No-Reply\"",
@@ -442,7 +444,7 @@
"admin.ldap.firstnameAttrDesc": "(Optional) Das Attribut im AD/LDAP-Server wird dazu verwendet, den Vornamen von Nutzern in Mattermost zu füllen. Wenn aktiv, können Nutzer ihren Vornamen nicht ändern, da er mit dem LDAP-Server synchronisiert wird. Wenn nicht gesetzt, können Nutzer ihren eigenen Vornamen in den Kontoeinstellungen ändern.",
"admin.ldap.firstnameAttrEx": "Z.B.: \"givenName\"",
"admin.ldap.firstnameAttrTitle": "Attribut Vorname",
- "admin.ldap.idAttrDesc": "Das Attribut des AD/LDAP-Servers, welches von Mattermost als eindeutiger Identifikator benutzt wird. Es sollte ein AD/LDAP-Attribut sein, dessen Wert sich nicht ändert, z.B. Nutzername oder UID. Wenn sich die ID eines Nutzer ändert, wird Mattermost einen neues Konto erstellen, welches nicht mit dem Alten verbunden ist. Dieser Wert wird für den Login in Mattermost als \"AD/LDAP-Nutzername\" auf der Anmeldeseite verwendet. Normalerweise ist das Attribut dasselbe wie das vorherige Feld \"Attribut Benutzername\". Wenn ihr Team, zur Anmeldung an andere Dienste mittels AD/LDAP, die Formulierung Domäne\\\\Benutzername verwendet, wählen Sie Domäne\\\\Benutzername in diesem Feld, um die Konsistenz zwischen den Seiten beizubehalten.",
+ "admin.ldap.idAttrDesc": "Das Attribut des AD/LDAP-Servers, welches von Mattermost als eindeutiger Identifikator benutzt wird. Es sollte ein AD/LDAP-Attribut sein, dessen Wert sich nicht ändert, z.B. Nutzername oder UID. Wenn sich die ID eines Nutzer ändert, wird Mattermost einen neues Konto erstellen, welches nicht mit dem Alten verbunden ist. Dieser Wert wird für die Anmeldung in Mattermost als \"AD/LDAP-Nutzername\" auf der Anmeldeseite verwendet. Normalerweise ist das Attribut dasselbe wie das vorherige Feld \"Attribut Benutzername\". Wenn ihr Team, zur Anmeldung an andere Dienste mittels AD/LDAP, die Formulierung Domäne\\\\Benutzername verwendet, wählen Sie Domäne\\\\Benutzername in diesem Feld, um die Konsistenz zwischen den Seiten beizubehalten.",
"admin.ldap.idAttrEx": "Z.B.: \"sAMAccountName\"",
"admin.ldap.idAttrTitle": "Attribut-ID: ",
"admin.ldap.lastnameAttrDesc": "(Optional) Das Attribut im AD/LDAP-Server wird dazu verwendet, den Nachnamen von Nutzern in Mattermost zu füllen. Wenn aktiv, können Nutzer ihren Vornamen nicht ändern, da er mit dem LDAP-Server synchronisiert wird. Wenn nicht gesetzt, können Nutzer ihren eigenen Nachnamen in den Kontoeinstellungen ändern.",
@@ -601,13 +603,20 @@
"admin.rate.title": "Begrenzer-Einstellungen",
"admin.recycle.button": "Datenbankverbindungen recyclen",
"admin.recycle.loading": " Wiederaufbereitung...",
- "admin.recycle.recycleDescription": "Werden mehrere Datenbanken eingesetzt kann ohne Serverneustart zwischen verschiedenen Master-Datenbanken gewechselt werden, indem die Einstellungen in der Datei \"config.json\" entsprechend angepasst werden und die neue Konfiguration dann mit der Funktion <a href=\"../general/configuration\"><b>Konfiguration > Konfigurationsdatei neu einlesen</b></a> aktiviert wird. Anschließend sollte der Administrator die Funktion <b>Datenbankverbindungen recyclen</b> verwenden, um sämtliche Verbindungen zu aktualisieren.",
+ "admin.recycle.recycleDescription": "Installationen, die mehrere Datenbanken verwenden, können von einer Master Datenbank zu einer anderen umschalten, ohne den Mattermost Server neu starten zu müssen, indem die \"config.json\" mit der neuen Konfiguration angepasst wird und die Funktion {reloadConfiguration} verwendet wird. Hierdurch werden die neuen Einstellungen geladen während der Server läuft. Der Administrator sollte dann die Funktion {featureName} nutzen, um die Datenbankverbindung aus Basis der aktualisierten Konfiguration neu herzustellen.",
+ "admin.recycle.recycleDescription.featureName": "Datenbankverbindungen recyclen",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Konfiguration > Konfiguration von Festplatte neu laden",
"admin.recycle.reloadFail": "Recycling nicht erfolgreich: {error}",
"admin.regenerate": "Neu generieren",
"admin.reload.button": "Konfigurationen neu von Festplatte laden",
"admin.reload.loading": " Lädt...",
- "admin.reload.reloadDescription": "Installationen die mehrere Datenbanken verwenden können von einer Master Datenbank zu einer anderen umschalten ohne den Mattermost Server neu starten zu müssen, indem die \"config.json\" mit der neuen Konfiguration angepasst wird und die Funktion <b>Konfigurationsdatei neu einlesen</b> verwendet wird. Hierdurch werden die neuen Einstellungen geladen während der Server läuft. Der Administrator sollte dann die Funktion <a href=\"../advanced/database\"><b>Datenbank > Datenbankverbindungen erneut herstellen</b></a> nutzen, um die Datenbankverbindung aus Basis der aktualisierten Konfiguration neu herzustellen.",
+ "admin.reload.reloadDescription": "Installationen, die mehrere Datenbanken verwenden, können von einer Master Datenbank zu einer anderen umschalten, ohne den Mattermost Server neu starten zu müssen, indem die \"config.json\" mit der neuen Konfiguration angepasst wird und die Funktion {featureName} verwendet wird. Hierdurch werden die neuen Einstellungen geladen während der Server läuft. Der Administrator sollte dann die Funktion {recycleDatabaseConnections} nutzen, um die Datenbankverbindung aus Basis der aktualisierten Konfiguration neu herzustellen.",
+ "admin.reload.reloadDescription.featureName": "Konfiguration neu von Festplatte laden",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Datenbank > Datenbankverbindungen recyclen",
"admin.reload.reloadFail": "Neuladen nicht erfolgreich: {error}",
+ "admin.requestButton.loading": " Lädt...",
+ "admin.requestButton.requestFailure": "Test Fehler: {error}",
+ "admin.requestButton.requestSuccess": "Test erfolgreich",
"admin.reset_password.close": "Schließen",
"admin.reset_password.newPassword": "Neues Passwort",
"admin.reset_password.select": "Auswählen",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "Erlaube Cross Origin Requests von:",
"admin.service.developerDesc": "Wenn wahr, werden Javascript Fehler in einer roten Zeile im oberen Bereich des Interfaces angezeigt. Nicht empfohlen für Produktionsumgebungen. ",
"admin.service.developerTitle": "Aktiviere Entwickler Modus: ",
+ "admin.service.enableAPIv3": "Die Verwendung des API v3 Endpunktes erlauben:",
+ "admin.service.enableAPIv3Description": "Auf falsch setzen um alle Endpunkte der Version 3 der REST API zu deaktivieren. Integrationen, die API v3 verwenden, werden nicht mehr funktionieren und können für die Migration zu API v4 identifiziert werden. API v3 ist überholt und wird in der nahen Zukunft entfernt werden. <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> für mehr Details besuchen.",
"admin.service.enforceMfaDesc": "Wenn wahr, wird <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>Multi-Faktor-Authentifizierung</a> für einen Login vorausgesetzt. Neue Benutzer werden aufgefordert MFA bei der Registrierung zu konfigurieren. Angemeldete Benutzer ohne eingerichtete MFA werden zur MFA-Einrichtungsseite weitergeleitet bis die Einrichtung abgeschlossen wurde.<br/><br/>Wenn es im System Benutzer mit einer anderen Anmeldemethode als AD/LDAP oder E-Mail gibt, muss MFA beim Authentifikationsprovider außerhalb von Mattermost erzwungen werden.",
"admin.service.enforceMfaTitle": "Multi-Faktor-Authentifizierung erzwingen:",
"admin.service.forward80To443": "Port 80 auf 443 weiterleiten:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "Konfiguration",
"admin.sidebar.connections": "Verbindungen",
"admin.sidebar.customBrand": "Eigenes Branding",
- "admin.sidebar.customEmoji": "Eigene Emoji",
"admin.sidebar.customIntegrations": "Benutzerdefinierte Integrationen",
"admin.sidebar.customization": "Anpassung",
"admin.sidebar.database": "Datenbank",
"admin.sidebar.developer": "Entwickler",
"admin.sidebar.email": "E-Mail",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "Externe Dienste",
"admin.sidebar.files": "Dateien",
"admin.sidebar.general": "Allgemein",
@@ -813,7 +824,7 @@
"admin.sql.maxOpenTitle": "Maximal offene Verbindungen:",
"admin.sql.noteDescription": "Änderungen an Einstellungen in diesem Bereich erfordern einen Server Neustart.",
"admin.sql.noteTitle": "Notiz:",
- "admin.sql.queryTimeoutDescription": "Die Anzahl an Sekunden, die auf eine Antwort von der Datenbank gewartet wird, nachdem eine Verbindung aufgebaut und die Abfrage gesendet wurde. Fehler, die Sie in der Benutzeroberfläche oder den Logs als Ergebnis einer Abfrage-Zeitüberschreitung sehen, können abhängig vom Typ der Abfrage variieren. Diese Einstellung hat keinen Einfluss auf PostgreSQL-Datenbanken.",
+ "admin.sql.queryTimeoutDescription": "Die Anzahl an Sekunden, die auf eine Antwort von der Datenbank gewartet wird, nachdem eine Verbindung aufgebaut und die Abfrage gesendet wurde. Fehler, die Sie in der Benutzeroberfläche oder den Logs als Ergebnis einer Abfrage-Zeitüberschreitung sehen, können abhängig vom Typ der Abfrage variieren.",
"admin.sql.queryTimeoutExample": "Z.B.: \"30\"",
"admin.sql.queryTimeoutTitle": "Abfrage-Zeitüberschreitung:",
"admin.sql.replicas": "Datenquellen Replikas:",
@@ -872,15 +883,15 @@
"admin.team.restrictTitle": "Begrenze Kontoerstellung auf spezifizierte E-Mail-Domains:",
"admin.team.restrict_direct_message_any": "Jeder Nutzer auf dem Mattermost Server",
"admin.team.restrict_direct_message_team": "Jedes Mitglied des Teams",
- "admin.team.showFullname": "Show first and last name (default)",
+ "admin.team.showFullname": "Zeige Vor- und Nachname (Standard)",
"admin.team.showNickname": "Zeige Spitzname wenn verfügbar, sonst zeige Vor- und Nachname",
- "admin.team.showUsername": "Show username",
+ "admin.team.showUsername": "Zeige Benutzername",
"admin.team.siteNameDescription": "Name des Dienstes, der auf der Anmeldeseite und der Seiten angezeigt wird.",
"admin.team.siteNameExample": "Z.B.: \"Mattermost\"",
"admin.team.siteNameTitle": "Seitenname:",
"admin.team.teamCreationDescription": "Wenn falsch können nur Systemadministratoren Teams erstellen.",
"admin.team.teamCreationTitle": "Aktiviere Team Erstellung: ",
- "admin.team.teammateNameDisplay": "Namensdarstellung der Teammitglider",
+ "admin.team.teammateNameDisplay": "Namensdarstellung der Teammitglider:",
"admin.team.teammateNameDisplayDesc": "Wählen Sie, wie die Namen anderer Benutzer in Direktnachrichten angezeigt werden sollen.",
"admin.team.upload": "Hochladen",
"admin.team.uploadDesc": "Individualisieren Sie ihre Nutzererfahrung durch das Hinzufügen eines Bildes zu ihrem Anmeldebildschirm. Die empfohlene maximale Bildgröße beträgt unter 2MB.",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "Kanal-URL muss zwei oder mehr kleingeschriebene alphanumerische Zeichen enthalten",
"channel_flow.invalidName": "Ungültiger Kanal Name",
"channel_flow.set_url_title": "Kanal-URL setzen",
+ "channel_header.addChannelHeader": "Kanalbeschreibung hinzufügen",
"channel_header.addMembers": "Mitglieder hinzufügen",
"channel_header.addToFavorites": "Zu Favoriten hinzufügen",
"channel_header.channelHeader": "Kanalüberschrift bearbeiten",
+ "channel_header.channelMembers": "Mitglieder",
"channel_header.delete": "Kanal löschen",
"channel_header.flagged": "Markierte Nachrichten",
"channel_header.leave": "Kanal verlassen",
"channel_header.manageMembers": "Mitglieder verwalten",
"channel_header.notificationPreferences": "Benachrichtigungseinstellungen",
+ "channel_header.pinnedPosts": "Markierte Nachrichten",
"channel_header.recentMentions": "Letzte Erwähnungen",
"channel_header.removeFromFavorites": "Aus Favoriten entfernen",
"channel_header.rename": "Kanal umbenennen",
@@ -1108,7 +1122,7 @@
"channel_loader.connection_error": "Es scheint ein Problem mit Ihrer Internetverbindung zu geben.",
"channel_loader.posted": "Verschickt",
"channel_loader.postedImage": " hat ein Bild hochgeladen",
- "channel_loader.socketError": "Please check connection, Mattermost unreachable. If issue persists, ask administrator to <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">check WebSocket port</a>.",
+ "channel_loader.socketError": "Bitte Verbindung überprüfen, Mattermost ist nicht erreichbar. Wenn das Problem bestehen bleibt fragen Sie Ihren Administrator den <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">WebSocket Port zu überprüfen</a>.",
"channel_loader.someone": "Jemand",
"channel_loader.something": " hat etwas neues gemacht",
"channel_loader.unknown_error": "Es wurde ein unerwarteter Statuscode vom Server empfangen.",
@@ -1248,7 +1262,7 @@
"delete_post.del": "Löschen",
"delete_post.post": "Nachricht",
"delete_post.question": "Sind Sie sich sicher diese(n) {term} zu löschen?",
- "delete_post.warning": "This post has {count, number} {count, plural, one {comment} other {comments}} on it.",
+ "delete_post.warning": "Diese Nachricht hat {count, number} {count, plural, one {Kommentar} other {Kommentare}}.",
"edit_channel_header.editHeader": "Kanalüberschrift bearbeiten...",
"edit_channel_header.previewHeader": "Überschrift bearbeiten",
"edit_channel_header_modal.cancel": "Abbrechen",
@@ -1465,7 +1479,7 @@
"help.mentioning.mentions": "## @Erwähnungen\nVerwenden Sie @Erwähnungen um die Aufmerksamkeit eines spezifischen Teammitgliedes zu erhalten.",
"help.mentioning.recent": "## Letzte Erwähnungen\nKlicken Sie auf das `@`neben dem Suchfeld um die letzten @Erwähnungen und Wörter, die eine Erwähnungen auslösen, aufzurufen. Klicken Sie auf **Anzeigen** neben dem Suchergebnis in der rechten Seitenleiste um im mittleren Feld an die Stelle der Mittteilung mit der Erwähnungen zu springen.",
"help.mentioning.title": "# Teammitglieder erwähnen\n_____",
- "help.mentioning.triggers": "## Wörter welche Erwähnungen auslösen\nZusätzlich zur Benachrichtigung durch @Benutzername und @channel können Sie eigene Wörter unter **Kontoeinstellungen** > **Benachrichtigungen** > **Wörter, welche Erwähnungen auslösen** definieren welche eine Erwähnungsbenachrichtigung auslösen. Standardmäßig erhalten Sie Erwähnungsmeldungen für Ihren Vornamen und Sie können weitere Wörter durch Eingabe in das Feld separiert durch Kommas hinzufügen. Dies ist hilfreich wenn Sie wegen bestimmter Themen benachrichtig werden wollen, wie zum Beispiel \"Vorstellungsgespräche\" oder \"Marketing\".",
+ "help.mentioning.triggers": "## Wörter welche Erwähnungen auslösen\nZusätzlich zur Benachrichtigung durch @Benutzername und @channel können Sie eigene Wörter unter **Kontoeinstellungen** > **Benachrichtigungen** > **Wörter, welche Erwähnungen auslösen** definieren welche eine Erwähnungsbenachrichtigung auslösen. Standardmäßig erhalten Sie Erwähnungsmeldungen für Ihren Vornamen und Sie können weitere Wörter durch Eingabe in das Feld separiert durch Kommas hinzufügen. Dies ist hilfreich wenn Sie wegen bestimmter Themen benachrichtigt werden wollen, wie zum Beispiel \"Vorstellungsgespräche\" oder \"Marketing\".",
"help.mentioning.username": "#### @Benutzername\nSie können ein Teammitglied erwähnen, indem Sie das `@`-Symbol und seinen Benutzernamen verwenden, um ihm eine Benachrichtigung zu senden.\n\nTippen Sie `@` um eine Liste der Mitglieder aufzurufen, die erwähnt werden können. Um die Liste zu filtern, tippen Sie die ersten Buchstaben des Benutzernamens, Vornamens, Nachnamens oder Spitznamens. Die **Hoch** und **Runter** Pfeiltasten können zum Scrollen durch die Liste verwendet werden und durch drücken von **Enter** wird die gewählte Erwähnung übernommen. Sobald dieser ausgewählt wurde wird der volle Name oder Spitzname durch den Benutzernamen ersetzt.\nDas folgende Beispiel sendet eine Erwähnungsnachricht an **alice*, welche Sie über den Kanal und die Mitteilung informiert, in der sie erwähnt wurde. Wenn **alice** von Mattermost abwesend ist und [E-Mail-Benachrichtigung](http://docs.mattermost.com/help/getting-started/configuring-notifications.html#email-notifications) aktiviert hat, erhält sie eine E-Mail mit der Mitteilung.",
"help.mentioning.usernameCont": "Sollte der erwähnte Benutzer kein Kanalmitglied sein wird eine Systemnachricht angezeigt um Sie darüber zu informieren. Dies ist eine temporäre Mitteilung die nur auslösende Person sieht. Um den erwähnten Benutzer dem Kanal hinzuzufügen, gehen Sie zum Dropdown Menü neben dem Kanalnamen und wählen **Mitglieder hinzufügen**.",
"help.mentioning.usernameExample": "@alice wie lief das Vorstellungsgespräch mit dem neuen Kandidaten?",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "Diese Aktion wird den Slash-Befehl permanent löschen und wird jede Integration, die ihn verwendet, stoppen. Sind Sie sich sicher dass sie ihn löschen möchten?",
"installed_commands.empty": "Keine Befehle gefunden",
"installed_commands.header": "Slash-Befehle",
- "installed_commands.help": "Slash-Befehle zur Verwendung in externen Integrationen erstellen. Bitte {link} für mehr Informationen ansehen.",
- "installed_commands.helpLink": "Dokumentation",
+ "installed_commands.help": "Verwenden Sie Slash-Befehle um externe Tools mit Mattermost zu verbinden. {buildYourOwn} oder besuchen Sie das {appDirectory} um selbst gehostete, Drittanwendungen und Integrationen zu finden.",
+ "installed_commands.help.appDirectory": "App-Verzeichnis",
+ "installed_commands.help.buildYourOwn": "Selbst entwickeln",
"installed_commands.search": "Suche nach Slash-Befehlen",
"installed_commands.unnamed_command": "Unbenannter Slash-Befehl",
"installed_incoming_webhooks.add": "Eingehenden Webhook hinzufügen",
"installed_incoming_webhooks.delete.confirm": "Die Aktion wird den eingehenden Webhook permanent löschen und jede Integration, die ihn verwendet, stoppen. Sind Sie sich sicher dass sie ihn löschen möchten?",
"installed_incoming_webhooks.empty": "Keine eingehende Webhooks gefunden",
"installed_incoming_webhooks.header": "Eingehende Webhooks",
- "installed_incoming_webhooks.help": "Eingehende Webhook URLs zur Verwendung in externen Integrationen erstellen. Bitte {link} für mehr Informationen ansehen.",
- "installed_incoming_webhooks.helpLink": "Dokumentation",
+ "installed_incoming_webhooks.help": "Verwenden Sie eingehende Webhooks um externe Tools mit Mattermost zu verbinden. {buildYourOwn} oder besuchen Sie das {appDirectory} um selbst gehostete, Drittanwendungen und Integrationen zu finden.",
+ "installed_incoming_webhooks.help.appDirectory": "App-Verzeichnis",
+ "installed_incoming_webhooks.help.buildYourOwn": "Selbst entwickeln",
"installed_incoming_webhooks.search": "Suche nach eingehenden Webhooks",
"installed_incoming_webhooks.unknown_channel": "Ein privater Webhook",
"installed_integrations.callback_urls": "Callback-URLs: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Beschreibung",
"installed_oauth_apps.empty": "Keine OAuth-2.0-Applikationen gefunden",
"installed_oauth_apps.header": "OAuth-2.0-Applikationen",
- "installed_oauth_apps.help": "Erstellen Sie OAuth-2.0-Anwendungen um Bots und Drittanbieteranwendungen sicher in Mattermost zu integrieren. Bitte besuchen Sie {link} um mehr zu erfahren.",
- "installed_oauth_apps.helpLink": "Dokumentation",
+ "installed_oauth_apps.help": "Erstellen Sie {oauthApplications} um Bots und Drittanwendungen mit Mattermost sicher zu verbinden. Besuchen Sie das {appDirectory} um selbst gehostete Anwendungen zu finden.",
+ "installed_oauth_apps.help.appDirectory": "App-Verzeichnis",
+ "installed_oauth_apps.help.oauthApplications": "OAuth-2.0-Applikationen",
"installed_oauth_apps.homepage": "Homepage",
"installed_oauth_apps.iconUrl": "Symbol-URL",
"installed_oauth_apps.is_trusted": "Ist vertrauenswürdig: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "Diese Aktion wird den ausgehenden Webhook permanent löschen und und jede Integration, die ihn verwendet, stoppen. Sind Sie sich sicher, dass Sie ihn löschen möchten?",
"installed_outgoing_webhooks.empty": "Keine ausgehenden Webhooks gefunden",
"installed_outgoing_webhooks.header": "Ausgehende Webhooks",
- "installed_outgoing_webhooks.help": "Ausgehende Webhook URLs zur Verwendung in externen Integrationen erstellen. Bitte {link} für mehr Informationen ansehen.",
- "installed_outgoing_webhooks.helpLink": "Dokumentation",
+ "installed_outgoing_webhooks.help": "Verwenden Sie ausgehende Webhooks um externe Tools mit Mattermost zu verbinden. {buildYourOwn} oder besuchen Sie das {appDirectory} um selbst gehostete, Drittanwendungen und Integrationen zu finden.",
+ "installed_outgoing_webhooks.help.appDirectory": "App-Verzeichnis",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Selbst entwickeln",
"installed_outgoing_webhooks.search": "Suche ausgehende Webhooks",
"installed_outgoing_webhooks.unknown_channel": "Ein privater Webhook",
"integrations.add": "Hinzufügen",
@@ -1543,6 +1561,8 @@
"integrations.done": "Erledigt",
"integrations.edit": "Bearbeiten",
"integrations.header": "Integrationen",
+ "integrations.help": "Besuchen Sie das {appDirectory} um selbst gehostete Drittanwendungen und Integrationen für Mattermost zu finden.",
+ "integrations.help.appDirectory": "App-Verzeichnis",
"integrations.incomingWebhook.description": "Eingehende Webhooks erlauben externen Integrationen Nachrichten zu senden",
"integrations.incomingWebhook.title": "Eingehende Webhooks",
"integrations.oauthApps.description": "OAuth 2.0 erlaubt externen Applikationen autorisierte Anfragen an die Mattermost API zu stellen.",
@@ -1675,7 +1695,7 @@
"mobile.channel_info.alertTitleDeleteChannel": "{term} löschen",
"mobile.channel_info.alertTitleLeaveChannel": "{term} verlassen",
"mobile.channel_info.alertYes": "Ja",
- "mobile.channel_info.delete_failed": "We couldn't delete the channel {displayName}. Please check your connection and try again.",
+ "mobile.channel_info.delete_failed": "Der Kanal {displayName} konnte nicht gelöscht werden. Bitte überprüfen Sie Ihre Verbindung und versuchen es erneut.",
"mobile.channel_info.privateChannel": "Privater Kanal",
"mobile.channel_info.publicChannel": "Öffentlicher Kanal",
"mobile.channel_list.alertMessageLeaveChannel": "Sind Sie sicher, dass Sie den {term} {name} verlassen möchten?",
@@ -1705,9 +1725,9 @@
"mobile.custom_list.no_results": "Keine Ergebnisse",
"mobile.drawer.teamsTitle": "Teams",
"mobile.edit_post.title": "Nachricht bearbeiten",
- "mobile.error_handler.button": "Relaunch",
- "mobile.error_handler.description": "\nClick relaunch to open the app again. After restart, you can report the problem from the settings menu.\n",
- "mobile.error_handler.title": "Unexpected error occurred",
+ "mobile.error_handler.button": "Neustarten",
+ "mobile.error_handler.description": "\nKlicken Sie auf Neustarten um die App neu zu öffnen. Nach dem Neustart können Sie das Problem über die Einstellungen melden.\n",
+ "mobile.error_handler.title": "Ein unerwarteter Fehler ist aufgetreten",
"mobile.file_upload.camera": "Ein Foto oder ein Video aufnehmen",
"mobile.file_upload.library": "Foto-Bibliothek",
"mobile.file_upload.more": "Mehr",
@@ -1716,7 +1736,7 @@
"mobile.intro_messages.DM": "Dies ist der Start der Privatnachrichten mit {teammate}. Privatnachrichten und hier geteilte Dateien sind für Personen außerhalb dieses Bereichs nicht sichtbar.",
"mobile.intro_messages.default_message": "Dies ist der Kanal, den Teammitglieder sehen, wenn sie sich anmelden - benutzen Sie ihn zum Veröffentlichen von Aktualisierungen, die jeder kennen muss.",
"mobile.intro_messages.default_welcome": "Willkommen bei {name}!",
- "mobile.join_channel.error": "We couldn't join the channel {displayName}. Please check your connection and try again.",
+ "mobile.join_channel.error": "Dem Kanal {displayName} konnte nicht beigetreten werden. Bitte überprüfen Sie Ihre Verbindung und versuchen es erneut.",
"mobile.loading_channels": "Lade Kanäle...",
"mobile.loading_members": "Lade Mitglieder...",
"mobile.loading_posts": "Lade Mitteilungen...",
@@ -1725,7 +1745,7 @@
"mobile.offlineIndicator.connected": "Verbunden",
"mobile.offlineIndicator.connecting": "Verbinde...",
"mobile.offlineIndicator.offline": "Keine Internetverbindung",
- "mobile.open_dm.error": "We couldn't open a direct message with {displayName}. Please check your connection and try again.",
+ "mobile.open_dm.error": "Der Direktnachrichtenkanal mit {displayName} konnte nicht geöffnet werden. Bitte überprüfen Sie Ihre Verbindung und versuchen es erneut.",
"mobile.post.cancel": "Abbrechen",
"mobile.post.delete_question": "Möchten Sie diese Nachricht wirklich löschen?",
"mobile.post.delete_title": "Nachricht löschen",
@@ -1760,10 +1780,13 @@
"mobile.select_team.no_teams": "Es sind keine Teams zum Betreten für Sie verfügbar.",
"mobile.server_ping_failed": "Kann nicht mit Server verbinden. Bitte überprüfen Sie ihre Server-URL und Internetverbindung.",
"mobile.server_upgrade.button": "OK",
- "mobile.server_upgrade.description": "\nA server upgrade is required to use the Mattermost app. Please ask your System Administrator for details.\n",
- "mobile.server_upgrade.title": "Server upgrade required",
+ "mobile.server_upgrade.description": "\nEine Serveraktualisierung ist erforderlich um die Mattermost-App zu verwenden. Bitte Fragen Sie Ihren Systemadministrator für Details.\n",
+ "mobile.server_upgrade.title": "Serveraktualisierung erforderlich",
"mobile.server_url.invalid_format": "URL muss mit http:// oder https:// beginnen",
"mobile.session_expired": "Sitzung abgelaufen: Bitte anmelden um weiterhin Benachrichtigungen zu erhalten.",
+ "mobile.settings.clear": "Offline-Speicher leeren",
+ "mobile.settings.clear_button": "Leeren",
+ "mobile.settings.clear_message": "\nDies wird alle gespeicherten Offlinedaten löschen und die Anwendung neustarten. Sie werden automatisch wieder angemeldet sobald die App neugestartet wurde.\n",
"mobile.settings.team_selection": "Teamauswahl",
"modal.manaul_status.ask": "Nicht wieder nachfragen",
"modal.manaul_status.button": "Ja, meinen Status auf \"Online\" setzen",
@@ -1788,7 +1811,7 @@
"msg_typing.someone": "Jemand",
"multiselect.add": "Hinzufügen",
"multiselect.go": "Los",
- "multiselect.numPeopleRemaining": "Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",
+ "multiselect.numPeopleRemaining": "Verwenden Sie ↑↓ zum Navigieren, ↵ zur Auswahl. Sie können {num, number} weitere {num, plural, one {Person} other {Personen}} hinzufügen. ",
"multiselect.numRemaining": "Sie können {num, number} weitere hinzufügen",
"multiselect.placeholder": "Mitglieder suchen und hinzufügen",
"navbar.addMembers": "Mitglieder hinzufügen",
@@ -1854,7 +1877,7 @@
"post_attachment.more": "Mehr anzeigen...",
"post_body.commentedOn": "Kommentierte {name}{apostrophe} Nachricht: ",
"post_body.deleted": "(Nachricht gelöscht)",
- "post_body.plusMore": " plus {count, number} other {count, plural, one {file} other {files}}",
+ "post_body.plusMore": " plus {count, number} weitere {count, plural, one {Datei} other {Dateien}}",
"post_delete.notPosted": "Kommentar soll nicht geschrieben werden",
"post_delete.okay": "OK",
"post_delete.someone": "Jemand hat die Nachricht gelöscht die Sie kommentieren wollten.",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- STRG+K",
"quick_switch_modal.help": "Beginnen Sie zu schreiben und nutzen dann TAB um zwischen Kanälen/Teams umzuschalten, ↑↓ zum Navigieren, ↵ zum Auswählen und ESC zum Abbrechen.",
+ "quick_switch_modal.help_mobile": "Tippen um einen Kanal zu finden.",
"quick_switch_modal.help_no_team": "Beginnen Sie mit der Eingabe, um Kanäle zu finden. Verwenden Sie ↑↓ zum Navigieren, ↵ zum Auswählen und ESC zum Abbrechen.",
"quick_switch_modal.teams": "Teams",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,15 +1986,15 @@
"setting_upload.import": "Importieren",
"setting_upload.noFile": "Keine Datei ausgewählt.",
"setting_upload.select": "Datei auswählen",
- "sidebar.channels": "Kanäle",
+ "sidebar.channels": "ÖFFENTLICHE KANÄLE",
"sidebar.createChannel": "Einen neuen öffentlichen Kanal erstellen",
"sidebar.createGroup": "Einen neuen privaten Kanal erstellen",
- "sidebar.direct": "Direktnachricht",
- "sidebar.favorite": "Favoriten",
+ "sidebar.direct": "DIREKTNACHRICHTEN",
+ "sidebar.favorite": "LIEBLINGSKANÄLE",
"sidebar.more": "Mehr",
"sidebar.moreElips": "Mehr...",
"sidebar.otherMembers": "Außerhalb dieses Teams",
- "sidebar.pg": "Private Kanäle",
+ "sidebar.pg": "PRIVATE KANÄLE",
"sidebar.removeList": "Von Liste entfernen",
"sidebar.tutorialScreen1": "<h4>Kanäle</h4><p><strong>Kanäle</strong> organisieren die Unterhaltungen über verschiedene Themen. Jeder aus dem Team kann beitreten. Zur privaten, direkten Kommunikation nutzen Sie <strong>Direktnachrichten</strong> mit einer anderen Person oder <strong>Private Kanäle</strong> bei mehreren Personen.</p>",
"sidebar.tutorialScreen2": "<h4>\"{townsquare}\" und \"{offtopic}\" Kanäle</h4><p>Hier sind zwei öffentliche Kanäle zum Start:</p><p><strong>{townsquare}</strong> ist ein Platz für Teamweite Kommunikation. Jeder in Ihrem Team ist ein Mitglied dieses Kanals.</p><p><strong>{offtopic}</strong> ist ein Platz fpr Spaß und Unterhaltungen außerhalb von arbeitsrelevanten Kanälen. Sie und Ihr Team können entscheiden welche weiteren Kanäle erstellt werden müssen.</p>",
@@ -2110,7 +2134,7 @@
"textbox.quote": ">Zitat",
"textbox.strike": "Durchgestrichen",
"tutorial_intro.allSet": "Sie sind bereit",
- "tutorial_intro.end": "Klicken Sie auf “Weiter” um {channel} zu betreten. Dies ist der erste Kanal den Ihre Teammitglieder sehen wenn Sie sich registrieren. Verwenden Sie ihn um Updates zu versenden die jeder Wissen soll.",
+ "tutorial_intro.end": "Klicken Sie auf \"Weiter\" um {channel} zu betreten. Dies ist der erste Kanal den Ihre Teammitglieder sehen wenn Sie sich registrieren. Verwenden Sie ihn um Updates zu versenden die jeder Wissen soll.",
"tutorial_intro.invite": "Teammitglieder einladen",
"tutorial_intro.mobileApps": "Installieren Sie die Apps für {link} für einfachen Zugriff und mobile Benachrichtigungen.",
"tutorial_intro.mobileAppsLinkText": "PC, macOS, iOS und Android",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "Datei zum Hochladen hier ablegen.",
"user.settings.advance.embed_preview": "Für den ersten Weblink in einer Nachricht eine Vorschau des Webseiteninhaltes unterhalb der Nachricht anzeigen, sofern verfügbar",
"user.settings.advance.embed_toggle": "Zeige Umschalter für alle eingebetteten Vorschauen",
- "user.settings.advance.emojipicker": "Emoji-Auswahl für Reaktionen und die Nachrichteneingabe aktivieren",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {Feature} other {Features}} aktiviert",
"user.settings.advance.formattingDesc": "Wenn aktiviert, werden Nachrichten so formatiert, dass Links erstellt, Emojis angezeigt, Text formatiert und Zeilenumbrüche hinzugefügt werden. Standardmäßig ist dies aktiviert. Ändern der Einstellung erfordert ein Neuladen der Seite.",
"user.settings.advance.formattingTitle": "Formatierung von Nachrichten aktivieren",
diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json
index 684fe7329..4a0f41a25 100755
--- a/webapp/i18n/en.json
+++ b/webapp/i18n/en.json
@@ -277,9 +277,9 @@
"admin.email.inviteSaltExample": "E.g.: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "Email Invite Salt:",
"admin.email.mhpns": "Use encrypted, production-quality HPNS connection to iOS and Android apps",
- "admin.email.mhpnsHelp": "Download <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS app</a> from iTunes. Download <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android app</a> from Google Play. Learn more about <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
+ "admin.email.mhpnsHelp": "Download <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> from iTunes. Download <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a> from Google Play. Learn more about <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
"admin.email.mtpns": "Use iOS and Android apps on iTunes and Google Play with TPNS",
- "admin.email.mtpnsHelp": "Download <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS app</a> from iTunes. Download <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android app</a> from Google Play. Learn more about <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
+ "admin.email.mtpnsHelp": "Download <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> from iTunes. Download <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a> from Google Play. Learn more about <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
"admin.email.nofificationOrganizationExample": "E.g.: \"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "Display name on email account used when sending notification emails from Mattermost.",
"admin.email.notificationDisplayExample": "E.g.: \"Mattermost Notification\", \"System\", \"No-Reply\"",
@@ -636,8 +636,8 @@
"admin.reload.reloadDescription.recycleDatabaseConnections": "Database > Recycle Database Connections",
"admin.reload.reloadFail": "Reloading unsuccessful: {error}",
"admin.requestButton.loading": " Loading...",
- "admin.requestButton.requestSuccess": "Test Successful",
"admin.requestButton.requestFailure": "Test Failure: {error}",
+ "admin.requestButton.requestSuccess": "Test Successful",
"admin.reset_password.close": "Close",
"admin.reset_password.newPassword": "New Password",
"admin.reset_password.select": "Select",
@@ -786,12 +786,12 @@
"admin.sidebar.configuration": "Configuration",
"admin.sidebar.connections": "Connections",
"admin.sidebar.customBrand": "Custom Branding",
- "admin.sidebar.emoji": "Emoji",
"admin.sidebar.customIntegrations": "Custom Integrations",
"admin.sidebar.customization": "Customization",
"admin.sidebar.database": "Database",
"admin.sidebar.developer": "Developer",
"admin.sidebar.email": "Email",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "External Services",
"admin.sidebar.files": "Files",
"admin.sidebar.general": "General",
@@ -1108,18 +1108,18 @@
"channel_flow.handleTooShort": "Channel URL must be 2 or more lowercase alphanumeric characters",
"channel_flow.invalidName": "Invalid Channel Name",
"channel_flow.set_url_title": "Set Channel URL",
- "channel_header.channelMembers": "Members",
"channel_header.addChannelHeader": "Add a channel description",
"channel_header.addMembers": "Add Members",
"channel_header.addToFavorites": "Add to Favorites",
"channel_header.channelHeader": "Edit Channel Header",
+ "channel_header.channelMembers": "Members",
"channel_header.delete": "Delete Channel",
"channel_header.flagged": "Flagged Posts",
"channel_header.leave": "Leave Channel",
"channel_header.manageMembers": "Manage Members",
"channel_header.notificationPreferences": "Notification Preferences",
- "channel_header.recentMentions": "Recent Mentions",
"channel_header.pinnedPosts": "Pinned Posts",
+ "channel_header.recentMentions": "Recent Mentions",
"channel_header.removeFromFavorites": "Remove from Favorites",
"channel_header.rename": "Rename Channel",
"channel_header.setHeader": "Edit Channel Header",
@@ -1517,8 +1517,8 @@
"installed_commands.empty": "No commands found",
"installed_commands.header": "Slash Commands",
"installed_commands.help": "Use slash commands to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
- "installed_commands.help.buildYourOwn": "Build your own",
"installed_commands.help.appDirectory": "App Directory",
+ "installed_commands.help.buildYourOwn": "Build your own",
"installed_commands.search": "Search Slash Commands",
"installed_commands.unnamed_command": "Unnamed Slash Command",
"installed_incoming_webhooks.add": "Add Incoming Webhook",
@@ -1526,8 +1526,8 @@
"installed_incoming_webhooks.empty": "No incoming webhooks found",
"installed_incoming_webhooks.header": "Incoming Webhooks",
"installed_incoming_webhooks.help": "Use incoming webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
- "installed_incoming_webhooks.help.buildYourOwn": "Build your own",
"installed_incoming_webhooks.help.appDirectory": "App Directory",
+ "installed_incoming_webhooks.help.buildYourOwn": "Build your own",
"installed_incoming_webhooks.search": "Search Incoming Webhooks",
"installed_incoming_webhooks.unknown_channel": "A Private Webhook",
"installed_integrations.callback_urls": "Callback URLs: {urls}",
@@ -1554,8 +1554,8 @@
"installed_oauth_apps.empty": "No OAuth 2.0 Applications found",
"installed_oauth_apps.header": "OAuth 2.0 Applications",
"installed_oauth_apps.help": "Create {oauthApplications} to securely integrate bots and third-party apps with Mattermost. Visit the {appDirectory} to find available self-hosted apps.",
- "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 applications",
"installed_oauth_apps.help.appDirectory": "App Directory",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 applications",
"installed_oauth_apps.homepage": "Homepage",
"installed_oauth_apps.iconUrl": "Icon URL",
"installed_oauth_apps.is_trusted": "Is Trusted: <strong>{isTrusted}</strong>",
@@ -1570,8 +1570,8 @@
"installed_outgoing_webhooks.empty": "No outgoing webhooks found",
"installed_outgoing_webhooks.header": "Outgoing Webhooks",
"installed_outgoing_webhooks.help": "Use outgoing webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
- "installed_outgoing_webhooks.help.buildYourOwn": "Build your own",
"installed_outgoing_webhooks.help.appDirectory": "App Directory",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Build your own",
"installed_outgoing_webhooks.search": "Search Outgoing Webhooks",
"installed_outgoing_webhooks.unknown_channel": "A Private Webhook",
"integrations.add": "Add",
@@ -1805,6 +1805,9 @@
"mobile.server_upgrade.title": "Server upgrade required",
"mobile.server_url.invalid_format": "URL must start with http:// or https://",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications.",
+ "mobile.settings.clear": "Clear Offline Store",
+ "mobile.settings.clear_button": "Clear",
+ "mobile.settings.clear_message": "\nThis will clear all offline data and restart the app. You will be automatically logged back in once the app restarts.\n",
"mobile.settings.team_selection": "Team Selection",
"modal.manaul_status.ask": "Do not ask me again",
"modal.manaul_status.button": "Yes, set my status to \"Online\"",
@@ -1915,15 +1918,15 @@
"posts_view.loadingMore": "Loading more messages...",
"posts_view.newMsg": "New Messages",
"posts_view.newMsgBelow": "New {count, plural, one {message} other {messages}} below",
+ "quick_switch_modal.channels": "Channels",
+ "quick_switch_modal.channelsShortcut.mac": "- ⌘K",
+ "quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Start typing then use TAB to toggle channels/teams, ↑↓ to browse, ↵ to select, and ESC to dismiss.",
"quick_switch_modal.help_mobile": "Type to find a channel.",
"quick_switch_modal.help_no_team": "Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.",
- "quick_switch_modal.channels": "Channels",
"quick_switch_modal.teams": "Teams",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
"quick_switch_modal.teamsShortcut.windows": "- CTRL+ALT+K",
- "quick_switch_modal.channelsShortcut.mac": "- ⌘K",
- "quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"reaction.clickToAdd": "(click to add)",
"reaction.clickToRemove": "(click to remove)",
"reaction.othersReacted": "{otherUsers, number} {otherUsers, plural, one {user} other {users}}",
diff --git a/webapp/i18n/es.json b/webapp/i18n/es.json
index a20d12565..e75fffcec 100644
--- a/webapp/i18n/es.json
+++ b/webapp/i18n/es.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Agrega un vínculo a una página de descarga de las aplicaciones de Mattermost. Cuando un enlace está presente la opción \"Descargar Aplicaciones de Mattermost\" aparecerá en el Menú Principal para que los usuarios puedan encontrar la página de descarga. Deja este campo en blanco para ocultar la opción desde el Menú Principal.",
"admin.customization.appDownloadLinkTitle": "Enlace de Descarga de la página Aplicaciones de Mattermost:",
"admin.customization.customBrand": "Marca Personalizada",
- "admin.customization.customEmoji": "Emoticones Personalizados",
+ "admin.customization.emoji": "Emoticon",
"admin.customization.enableCustomEmojiDesc": "Permite a los usuarios crear emoticones personalizados para su uso en los mensajes. Cuando se activa, Emoticones Personalizados se puede acceder a los ajustes al ingresar a un equipo y hacer clic en los tres puntos por encima del canal en la barra lateral y seleccionar \"Emoticones Personalizados\".",
"admin.customization.enableCustomEmojiTitle": "Habilitar Emoticones Personalizados:",
+ "admin.customization.enableEmojiPickerDesc": "El selector de emoticones permite a los usuarios seleccionar emoticones para agregarlos como reacciones o utilizarlos en los mensajes. La habilitación del selector de emoticones con un gran número de emoticones personalizados puede disminuir el rendimiento.",
+ "admin.customization.enableEmojiPickerTitle": "Habilitar Selector de Emoticones:",
"admin.customization.enableLinkPreviewsDesc": "Habilitar a los usuarios a mostrar una vista previa del contenido del sitio web a seguido del mensaje, si está disponible. Cuando es verdadero, la vista previa de sitios web se puede activar en la Configuración de la Cuenta > Avanzado > Previsualizar características de pre-lanzamiento.",
"admin.customization.enableLinkPreviewsTitle": "Habilitar Vista Previa del Enlace:",
"admin.customization.iosAppDownloadLinkDesc": "Agrega un enlace para descargar la aplicación para iOS. Los usuarios que tienen acceso al sitio en un navegador de web móvil serán presentados con una página que les da la opción de descargar la aplicación. Deja este campo en blanco para evitar que la página aparezca.",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "Ej.: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "Salt para correos electrónicos de invitación:",
"admin.email.mhpns": "Utiliza conexiones cifradas, con calidad de producción de HPNS para tus aplicaciones en iOS y Android",
- "admin.email.mhpnsHelp": "Descarga <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>la app de Mattermost para iOS</a> desde iTunes. Descarga <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>la app de Mattermost para Android</a> desde Google Play. Conoce más acerca de <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
+ "admin.email.mhpnsHelp": "Descarga <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>la app de Mattermost para iOS</a> desde iTunes. Descarga <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>la app de Mattermost para Android</a> desde Google Play. Conoce más acerca de <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
"admin.email.mtpns": "Utiliza las apps de iOS y Android en iTunes y Google Play con TPNS",
- "admin.email.mtpnsHelp": "Descarga <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>la app de Mattermost para iOS</a> desde iTunes. Descarga <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>la app de Mattermost para Android</a> desde Google Play. Conoce más acerca de <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
+ "admin.email.mtpnsHelp": "Descarga <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>la app de Mattermost para iOS</a> desde iTunes. Descarga <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>la app de Mattermost para Android</a> desde Google Play. Conoce más acerca de <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
"admin.email.nofificationOrganizationExample": "Ej: \"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "Muestra el nombre en la cuenta del email utilizada para enviar notificaciones por correo electrónico desde Mattermost.",
"admin.email.notificationDisplayExample": "Ej: \"Notificación de Mattermost\", \"Sistema\", \"No-Responder\"",
@@ -601,13 +603,20 @@
"admin.rate.title": "Configuración de velocidad",
"admin.recycle.button": "Reciclar Conexiones de Base de Datos",
"admin.recycle.loading": " Reciclando...",
- "admin.recycle.recycleDescription": "Implementaciones que utilizan varias bases de datos pueden cambiar de una base de datos master a otra sin necesidad de reiniciar el servidor Mattermost al actualizar \"config.json\" a la nueva configuración deseada y usando la función <a href=\"../general/configuration\"><b>Configuración > Recargar Configuración desde el Disco</b></a> para cargar la nueva configuración mientras se está ejecutando el servidor. El administrador deberá entonces utilizar la función <b>Reciclar Conexiones de Base de Datos</b> para reciclar las conexiones de base de datos basado en la nueva configuración.",
+ "admin.recycle.recycleDescription": "Implementaciones que utilizan varias bases de datos pueden cambiar de una base de datos maestra a otra sin necesidad de reiniciar el servidor Mattermost al actualizar \"config.json\" a la nueva configuración deseada utilizando la función {reloadConfiguration} para cargar la nueva configuración mientras se está ejecutando el servidor. El administrador deberá entonces utilizar la función {featureName} para reciclar las conexiones de base de datos basado en la nueva configuración.",
+ "admin.recycle.recycleDescription.featureName": "Reciclar Conexiones de Base de Datos",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Configuración > Recargar Configuración desde el Disco",
"admin.recycle.reloadFail": "Reciclaje fallido: {error}",
"admin.regenerate": "Regenerar",
"admin.reload.button": "Recargar Configuración desde el Disco",
"admin.reload.loading": " Cargando...",
- "admin.reload.reloadDescription": "Implementaciones que utilizan varias bases de datos pueden cambiar de una base de datos master a otra sin necesidad de reiniciar el servidor Mattermost al actualizar \"config.json\" a la nueva configuración deseada utilizando la función <b>Recargar Configuración desde el Disco</b> para cargar la nueva configuración mientras se está ejecutando el servidor. El administrador deberá entonces utilizar la función <a href=\"../advanced/database\"><b>Base de Datos > Reciclar Conexiones de Base de Datos</b></a> para reciclar las conexiones de base de datos basado en la nueva configuración.",
+ "admin.reload.reloadDescription": "Implementaciones que utilizan varias bases de datos pueden cambiar de una base de datos maestra a otra sin necesidad de reiniciar el servidor Mattermost al actualizar \"config.json\" a la nueva configuración deseada utilizando la función {featureName} para cargar la nueva configuración mientras se está ejecutando el servidor. El administrador deberá entonces utilizar la función {recycleDatabaseConnections} para reciclar las conexiones de base de datos basado en la nueva configuración.",
+ "admin.reload.reloadDescription.featureName": "Recargar Configuración desde el Disco",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Base de Datos > Reciclar Conexiones de Base de Datos",
"admin.reload.reloadFail": "Recarga fallida: {error}",
+ "admin.requestButton.loading": " Cargando...",
+ "admin.requestButton.requestFailure": "Prueba Fallida: {error}",
+ "admin.requestButton.requestSuccess": "Prueba realizada con éxito",
"admin.reset_password.close": "Cerrar",
"admin.reset_password.newPassword": "Nueva contraseña",
"admin.reset_password.select": "Seleccionar",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "Habilitar la procedencia de las solicitudes cruzadas de:",
"admin.service.developerDesc": "Cuando es verdadero, los errores de JavaScript se muestran en una barra púrpura en la parte superior de la interfaz de usuario. No se recomienda su uso en producción. ",
"admin.service.developerTitle": "Habilitar modo de Desarrollador: ",
+ "admin.service.enableAPIv3": "Permitir el uso de la API v3:",
+ "admin.service.enableAPIv3Description": "Establece en falso para deshabilitar todos los endpoints de la versión 3 de la API REST. Las integraciones que se basan en la API v3 fallarán y entonces pueden ser identificados para la migración a la API de v4. API v3 es obsoleto y será eliminado en el futuro cercano. Revisa <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> para más detalles.",
"admin.service.enforceMfaDesc": "Cuando es verdadero, <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>la autenticación de múltiples factores</a> es requerida para iniciar sesión. Nuevos usuarios tendrán que configurar MFA cuando se registran. Los usuarios con sesiones iniciadas sin MFA configurado serán enviados a la página de configuración de MFA hasta que la configuración haya sido completada.<br/><br/>Si su sistema tiene usuarios con sesiones iniciadas cuyo métodos son diferentes a AD/LDAP o correo electrónico, La imposición de MFA debe realizarse en el proveedor de autenticación fuera de Mattermost.",
"admin.service.enforceMfaTitle": "Imponer la Autenticación de Múltiples factores:",
"admin.service.forward80To443": "Redirigir el puerto 80 a 443:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "Configuración",
"admin.sidebar.connections": "Conexiones",
"admin.sidebar.customBrand": "Marca Personalizada",
- "admin.sidebar.customEmoji": "Emoticones Personalizados",
"admin.sidebar.customIntegrations": "Integraciones Personalizadas",
"admin.sidebar.customization": "Personalización",
"admin.sidebar.database": "Base de Datos",
"admin.sidebar.developer": "Desarrollo",
"admin.sidebar.email": "Correo electrónico",
+ "admin.sidebar.emoji": "Emoticon",
"admin.sidebar.external": "Servicios Externos",
"admin.sidebar.files": "Archivos",
"admin.sidebar.general": "General",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "Dirección URL del canal debe ser de 2 o más caracteres alfanuméricos en minúsculas",
"channel_flow.invalidName": "Nombre de Canal Inválido",
"channel_flow.set_url_title": "Asignar URL del Canal",
+ "channel_header.addChannelHeader": "Agregar una descripción del canal",
"channel_header.addMembers": "Agregar Miembros",
"channel_header.addToFavorites": "Añadir a favoritos",
"channel_header.channelHeader": "Editar encabezado del canal",
+ "channel_header.channelMembers": "Miembros",
"channel_header.delete": "Borrar Canal",
"channel_header.flagged": "Mensajes Marcados",
"channel_header.leave": "Abandonar Canal",
"channel_header.manageMembers": "Administrar Miembros",
"channel_header.notificationPreferences": "Preferencias de Notificación",
+ "channel_header.pinnedPosts": "Mensajes Anclados",
"channel_header.recentMentions": "Menciones recientes",
"channel_header.removeFromFavorites": "Quitar de favoritos",
"channel_header.rename": "Renombrar Canal",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "Esta acción elimina permanentemente el comando de barras y rompe cualquier integración que lo esté utilizando. ¿Estás seguro de que deseas eliminarlo?",
"installed_commands.empty": "No se encontraron comandos",
"installed_commands.header": "Comandos de Barra",
- "installed_commands.help": "Crea comandos de barra para su uso en integraciones externas. Por favor, consulta la {link} para obtener más información.",
- "installed_commands.helpLink": "documentación",
+ "installed_commands.help": "Utiliza comandos de barra para conectarse a herramientas externas a Mattermost. {buildYourOwn} o visita el {appDirectory} para encontrar aplicaciones e integraciones de terceros o que puedes alojar tu mismo.",
+ "installed_commands.help.appDirectory": "Directorio de Aplicaciones",
+ "installed_commands.help.buildYourOwn": "Construir uno propio",
"installed_commands.search": "Buscar Comandos de Barra",
"installed_commands.unnamed_command": "Comando de Barra sin nombre",
"installed_incoming_webhooks.add": "Agregar Webhook de Entrada",
"installed_incoming_webhooks.delete.confirm": "Esta acción elimina permanentemente el webhook entrante y rompe cualquier integración que lo esté utilizando. ¿Estás seguro de que deseas eliminarlo?",
"installed_incoming_webhooks.empty": "No se encontraron webhooks de entrada",
"installed_incoming_webhooks.header": "Webhooks de Entrada",
- "installed_incoming_webhooks.help": "Crea webhooks de entrada para su uso en integraciones externas. Por favor, consulta la {link} para obtener más información.",
- "installed_incoming_webhooks.helpLink": "documentación",
+ "installed_incoming_webhooks.help": "Utiliza webhooks de entrada para conectar herramientas externas a Mattermost. {buildYourOwn} o visite el {appDirectory} para encontrar aplicaciones e integraciones de terceros o que puedes alojar tu mismo.",
+ "installed_incoming_webhooks.help.appDirectory": "Directorio de Aplicaciones",
+ "installed_incoming_webhooks.help.buildYourOwn": "Construir uno propio",
"installed_incoming_webhooks.search": "Buscar Webhooks de Entrada",
"installed_incoming_webhooks.unknown_channel": "Un Webhook Privado",
"installed_integrations.callback_urls": "Callback URLs: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Descripción",
"installed_oauth_apps.empty": "No se encontraron Aplicaciones OAuth 2.0",
"installed_oauth_apps.header": "Apliaciones OAuth 2.0",
- "installed_oauth_apps.help": "Crear aplicaciones OAuth 2.0 para integrar con seguridad los bots y las aplicaciones de terceros con Mattermost. Por favor, consulta la {link} para obtener más información.",
- "installed_oauth_apps.helpLink": "documentación",
+ "installed_oauth_apps.help": "Crea {oauthApplications} para integrar de forma segura robots y aplicaciones de terceros con Mattermost. Visita el {appDirectory} para encontrar apps alojadas por ti.",
+ "installed_oauth_apps.help.appDirectory": "Directorio de Aplicaciones",
+ "installed_oauth_apps.help.oauthApplications": "Aplicaciones OAuth 2.0",
"installed_oauth_apps.homepage": "Página web",
"installed_oauth_apps.iconUrl": "URI del Icono",
"installed_oauth_apps.is_trusted": "De confianza: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "Esta acción elimina permanentemente el webhook saliente y rompe cualquier integración que lo esté utilizando. ¿Estás seguro de que deseas eliminarlo?",
"installed_outgoing_webhooks.empty": "No se encontraron webhooks de salida",
"installed_outgoing_webhooks.header": "Webhooks de Salida",
- "installed_outgoing_webhooks.help": "Crea webhooks de salida para su uso en integraciones externas. Por favor, consulta la {link} para obtener más información.",
- "installed_outgoing_webhooks.helpLink": "documentación",
+ "installed_outgoing_webhooks.help": "Utiliza webhooks de salida para conectar herramientas externas a Mattermost. {buildYourOwn} o visite el {appDirectory} para encontrar aplicaciones e integraciones de terceros o que puedes alojar tu mismo.",
+ "installed_outgoing_webhooks.help.appDirectory": "Directorio de Aplicaciones",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Construir uno propio",
"installed_outgoing_webhooks.search": "Buscar Webhooks de Salida",
"installed_outgoing_webhooks.unknown_channel": "Un Webhook Privado",
"integrations.add": "Agregar",
@@ -1543,6 +1561,8 @@
"integrations.done": "Hecho",
"integrations.edit": "Editar",
"integrations.header": "Integraciones",
+ "integrations.help": "Visita el {appDirectory} para encontrar aplicaciones e integraciones propias o de terceros para Mattermost.",
+ "integrations.help.appDirectory": "Directorio de Aplicaciones",
"integrations.incomingWebhook.description": "Webhooks de entrada permiten a las integraciones externas enviar mensajes",
"integrations.incomingWebhook.title": "Webhook de Entrada",
"integrations.oauthApps.description": "OAuth 2.0 permite a aplicaciones externas realizar consultas autorizadas al API de Mattermost.",
@@ -1764,6 +1784,9 @@
"mobile.server_upgrade.title": "Es necesario actualizar el Servidor",
"mobile.server_url.invalid_format": "URL debe comenzar con http:// o https://",
"mobile.session_expired": "Sesión Caducada: Por favor, inicia sesión para seguir recibiendo notificaciones.",
+ "mobile.settings.clear": "Limpiar Almacén sin Conexión",
+ "mobile.settings.clear_button": "Limpiar",
+ "mobile.settings.clear_message": "\nEsto borrará todos los datos sin conexión y reiniciará la aplicación. Tu sesión será iniciada automáticamente una vez que la aplicación se reinicie.\n",
"mobile.settings.team_selection": "Seleccionar Equipo",
"modal.manaul_status.ask": "No preguntarme de nuevo",
"modal.manaul_status.button": "Sí, asigna mi estatus como \"En línea\"",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Comienza a escribir, a continuación, usa la tecla TAB para cambiar de canales/equipos, ↑↓ para navegar, ↵ para seleccionar, y ESC para descartar.",
+ "quick_switch_modal.help_mobile": "Escribe para encontrar un canal.",
"quick_switch_modal.help_no_team": "Escribe para encontrar un canal. Utiliza ↑↓ para navegar, ↵ para seleccionar, ESC para descartar.",
"quick_switch_modal.teams": "Equipos",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,15 +1986,15 @@
"setting_upload.import": "Importar",
"setting_upload.noFile": "No ha seleccionado un archivo",
"setting_upload.select": "Selecciona un archivo",
- "sidebar.channels": "Canales",
+ "sidebar.channels": "CANALES PÚBLICOS",
"sidebar.createChannel": "Crear nuevo canal público",
"sidebar.createGroup": "Crear nuevo canal privado",
- "sidebar.direct": "Mensajes Directos",
- "sidebar.favorite": "Favoritos",
+ "sidebar.direct": "MENSAJES DIRECTOS",
+ "sidebar.favorite": "FAVORITOS",
"sidebar.more": "Más",
"sidebar.moreElips": "Más...",
"sidebar.otherMembers": "Fuera de este equipo",
- "sidebar.pg": "Canales Privados",
+ "sidebar.pg": "CANALES PRIVADOS",
"sidebar.removeList": "Remover de la lista",
"sidebar.tutorialScreen1": "<h4>Canales</h4><p><strong>Canales</strong> organizan las conversaciones en diferentes tópicos. Son abiertos para cualquier persona de tu equipo. Para enviar comunicaciones privadas con una sola persona utiliza <strong>Mensajes Directos</strong> o con multiples personas utilizando <strong>Canales Privados</strong>.</p>",
"sidebar.tutorialScreen2": "<h4>Los canal \"{townsquare}\" y \"{offtopic}\"</h4><p>Estos son dos canales para comenzar:</p><p><strong>{townsquare}</strong> es el lugar para tener comunicación con todo el equipo. Todos los integrantes de tu equipo son miembros de este canal.</p><p><strong>{offtopic}</strong> es un lugar para diversión y humor fuera de los canales relacionados con el trabajo. Tu y tu equipo pueden decidir que otros canales crear.</p>",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "Arrastra un archivo para subirlo.",
"user.settings.advance.embed_preview": "Para lel primer enlace web en un mensaje, se mostrará una vista previa del contenido del sitio web a continuación del mensaje, si está disponible",
"user.settings.advance.embed_toggle": "Capacidad de Mostrar/Esconder las previsualizaciones",
- "user.settings.advance.emojipicker": "Habilitar el selector de emoticones para las reacciones y del cuadro de entrada de mensajes",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {Característica} other {Caracteristicas}} Habilitadas",
"user.settings.advance.formattingDesc": "Si está activada, se dará formato a los mensajes, creando enlaces, mostrando emoticones, el estilo del texto, y añadir saltos de línea. De forma predeterminada, esta opción está habilitada. El cambio de esta configuración requiere que la página se actualice.",
"user.settings.advance.formattingTitle": "Habilitar el Formato de Mensajes",
diff --git a/webapp/i18n/fr.json b/webapp/i18n/fr.json
index 83e485c7b..e9ec2a7a2 100644
--- a/webapp/i18n/fr.json
+++ b/webapp/i18n/fr.json
@@ -6,11 +6,11 @@
"about.enterpriseEditionLearn": "Pour en savoir davantage sur l’Édition Entreprise : ",
"about.enterpriseEditionSt": "Communication moderne derrière votre pare-feu.",
"about.enterpriseEditione1": "Édition Entreprise",
- "about.hash": "Clé de compilation :",
- "about.hashee": "Clé de compilation EE :",
+ "about.hash": "Hachage de version :",
+ "about.hashee": "Hachage de version EE :",
"about.licensed": "Licence accordée à :",
"about.number": "Numéro de compilation :",
- "about.teamEditionLearn": "Rejoignez la communauté Mattermost à : ",
+ "about.teamEditionLearn": "Rejoignez la communauté Mattermost sur ",
"about.teamEditionSt": "Toute la communication de votre équipe en un seul endroit, consultable instantanément et accessible de partout.",
"about.teamEditiont0": "Édition Team",
"about.teamEditiont1": "Édition Entreprise",
@@ -75,12 +75,12 @@
"add_emoji.image": "Image",
"add_emoji.image.button": "Sélectionner",
"add_emoji.image.help": "Choisissez l'image pour votre émoticône. L'image peut être au format gif, png ou jpeg, d'une taille maximale de 1 Mio. Les dimensions seront automatiquement réduites pour une taille 128x128 pixels, le tout, en conservant les proportions d'origine.",
- "add_emoji.imageRequired": "Une image est requise pour l'emoji",
+ "add_emoji.imageRequired": "Une image est requise pour l'émoticône",
"add_emoji.name": "Nom",
- "add_emoji.name.help": "Choisissez un nom pour votre emoji de 64 caractères au maximum, constitué de lettres minuscules, nombres et '-' ou '_'.",
- "add_emoji.nameInvalid": "Un nom d'emoji ne peut contenir que des lettres minuscules, nombres et les caractères '-' ou '_'.",
- "add_emoji.nameRequired": "Saisissez un nom pour l'emoji",
- "add_emoji.nameTaken": "Ce nom est déjà utilisé pour un emoji système. Choisissez un autre nom.",
+ "add_emoji.name.help": "Choisissez un nom d'émoticône de maximum 64 caractères constitué de lettres minuscules, nombres et des caractères '-' ou '_'.",
+ "add_emoji.nameInvalid": "Un nom d'émoticône ne peut contenir que des lettres minuscules, nombres et les caractères '-' ou '_'.",
+ "add_emoji.nameRequired": "Un nom est requis pour l'émoticône",
+ "add_emoji.nameTaken": "Ce nom est déjà utilisé pour une émoticône système. Veuillez spécifier un autre nom.",
"add_emoji.preview": "Aperçu",
"add_emoji.preview.sentence": "Ceci est une phrase avec {image}.",
"add_emoji.save": "Enregistrer",
@@ -105,12 +105,12 @@
"add_oauth_app.doneHelp": "Votre application OAuth 2.0 a été mise en place. Veuillez utiliser l'identifiant et la clé secrète client lors de la demande d'autorisation pour votre application (voir la <a href=\"https://docs.mattermost.com/developer/oauth-2-0-applications.html\">documentation</a> pour plus de détails).",
"add_oauth_app.doneUrlHelp": "Liste des URLs de redirection autorisées.",
"add_oauth_app.header": "Ajouter",
- "add_oauth_app.homepage.help": "L'URL de la page d'accueil de votre application OAuth 2.0. Veillez à saisir HTTP ou HTTPS dans l'URL en fonction de votre configuration.",
+ "add_oauth_app.homepage.help": "L'URL de la page d'accueil de votre application OAuth 2.0. Veillez à saisir HTTP ou HTTPS dans l'URL suivant votre configuration.",
"add_oauth_app.homepageRequired": "La page d'accueil pour l'application OAuth 2.0 est requise.",
"add_oauth_app.icon.help": "(Facultatif) L'URL de l'image utilisée pour votre application OAuth 2.0. Veillez à saisir HTTP ou HTTPS dans l'URL.",
"add_oauth_app.name.help": "Nom d'affichage pour votre application OAuth 2.0, avec un maximum de 64 caractères.",
"add_oauth_app.nameRequired": "Le nom pour l'application OAuth 2.0 est requis.",
- "add_oauth_app.trusted.help": "Si activé, l'application OAuth 2.0 est considérée comme étant de confiance par le serveur Mattermost et ne requerra pas l'approbation de l'utilisateur. Si désactivé, une fenêtre additionnelle apparaîtra, demandant à l'utilisateur d'accepter ou de refuser son autorisation.",
+ "add_oauth_app.trusted.help": "Lorsqu'activé, l'application OAuth 2.0 est considérée comme étant de confiance par le serveur Mattermost et ne nécessitera pas l'approbation de l'utilisateur. Lorsque désactivé, une fenêtre additionnelle apparaîtra, demandant à l'utilisateur d'accepter ou de refuser son autorisation.",
"add_oauth_app.url": "<b>URL(s)</b> : {url}",
"add_outgoing_webhook.callbackUrls": "URLs de rappel (une par ligne)",
"add_outgoing_webhook.callbackUrls.help": "L'URL à laquelle les messages seront envoyés.",
@@ -148,31 +148,31 @@
"admin.authentication.oauth": "OAuth 2.0",
"admin.authentication.saml": "SAML",
"admin.banner.heading": "Remarque :",
- "admin.cluster.enableDescription": "Si activé, Mattermost sera lancé en mode Haute Disponibilité. Consultez la <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a> pour en apprendre davantage sur la configuration de la Haute Disponibilité pour Mattermost.",
- "admin.cluster.enableTitle": "Activer le mode Haute Disponibilité",
+ "admin.cluster.enableDescription": "Lorsqu'activé, Mattermost sera lancé en mode haute disponibilité. Consultez la <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a> pour en savoir davantage sur la configuration de la haute disponibilité pour Mattermost.",
+ "admin.cluster.enableTitle": "Activer le mode haute disponibilité",
"admin.cluster.interNodeListenAddressDesc": "L'adresse écoutée par le serveur pour communiquer avec d'autres serveurs.",
"admin.cluster.interNodeListenAddressEx": "Ex. : \":8075\"",
"admin.cluster.interNodeListenAddressTitle": "Adresse d'écoute de la communication entre noeuds :",
"admin.cluster.interNodeUrlsDesc": "Les URLs internes/privées de tous les serveurs Mattermost, séparés par des virgules",
"admin.cluster.interNodeUrlsEx": "Ex. : \"http://10.10.10.30, http://10.10.10.31\"",
"admin.cluster.interNodeUrlsTitle": "URLs de communication entre noeuds :",
- "admin.cluster.loadedFrom": "Le fichier de configuration a été chargé par le noeud ID {clusterId}. Veuillez vous référer au guide de résolution des problèmes de notre <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a> si vous accédez à la Console Système à partir d'un répartiteur de charge et que vous rencontrez des problèmes.",
- "admin.cluster.noteDescription": "Changer les propriétés de cette section requiert un redémarrage du serveur avant de prendre effet. Lorsque le mode Haute Disponibilité est activé, la Console Système est mise en lecture-seule et ne peut être changée que par le fichier de configuration.",
- "admin.cluster.should_not_change": "ATTENTION : Ces paramètres ne se synchroniseront pas avec les autres serveurs du cluster. La communication entre nœuds en mode Haute Disponibilité ne démarrera pas tant que le fichier config.json ne sera pas identique sur chacun des serveurs et que Mattermost n'aura pas été redémarré. Veuillez vous référer à la <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a> pour savoir comment ajouter ou supprimer un serveur d'un cluster. Si vous accédez à la Console système à partir d'un répartiteur de charges et que vous rencontrez des problèmes, veuillez vous référer au guide de résolution des problèmes de notre <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a>.",
+ "admin.cluster.loadedFrom": "Le fichier de configuration a été chargé par le noeud ID {clusterId}. Veuillez vous référer au guide de résolution des problèmes de notre <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a> si vous accédez à la console système à partir d'un répartiteur de charge et que vous rencontrez des problèmes.",
+ "admin.cluster.noteDescription": "Changer les propriétés de cette section requiert un redémarrage du serveur avant de prendre effet. Lorsque le mode haute disponibilité est activé, la console système est mise en lecture-seule et ne peut être changée que par le fichier de configuration à moins que ReadOnlyConfig ne soit désactivé dans le fichier de configuration.",
+ "admin.cluster.should_not_change": "ATTENTION : Ces paramètres ne se synchroniseront pas avec les autres serveurs du cluster. La communication entre nœuds en mode haute disponibilité ne démarrera pas tant que le fichier config.json ne sera pas identique sur chacun des serveurs et que Mattermost n'aura pas été redémarré. Veuillez vous référer à la <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a> pour savoir comment ajouter ou supprimer un serveur d'un cluster. Si vous accédez à la console système à partir d'un répartiteur de charges et que vous rencontrez des problèmes, veuillez vous référer au guide de résolution des problèmes de notre <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target=\"_blank\">documentation</a>.",
"admin.cluster.status_table.config_hash": "MD5 du fichier de configuration",
"admin.cluster.status_table.hostname": "Nom d'hôte",
"admin.cluster.status_table.id": "ID du nœud",
"admin.cluster.status_table.reload": "Recharger l'état du cluster",
"admin.cluster.status_table.status": "État",
- "admin.cluster.status_table.url": "Gossip Address",
+ "admin.cluster.status_table.url": "Adresse de bavardage (échange d'infos de nœuds de cluster)",
"admin.cluster.status_table.version": "Version",
"admin.cluster.unknown": "inconnu",
"admin.compliance.directoryDescription": "Répertoire des rapports de conformité. Si non spécifié : ./data/ .",
"admin.compliance.directoryExample": "Ex. : \"./data/\"",
"admin.compliance.directoryTitle": "Répertoire du rapport de conformité :",
- "admin.compliance.enableDailyDesc": "Si activé, Mattermost générera un rapport de conformité quotidien",
+ "admin.compliance.enableDailyDesc": "Lorsqu'activé, Mattermost générera un rapport quotidien de conformité .",
"admin.compliance.enableDailyTitle": "Activer le rapport quotidien :",
- "admin.compliance.enableDesc": "Si activé, Mattermost autorise les rapports de conformité depuis l'onglet <strong>Conformité et vérification</strong>. Consultez la <a href=\"https://docs.mattermost.com/administration/compliance.html\" target=\"_blank\">documentation</a> pour en apprendre davantage.",
+ "admin.compliance.enableDesc": "Lorsqu'activé, Mattermost autorise les rapports de conformité depuis l'onglet <strong>Conformité et vérification</strong>. Consultez la <a href=\"https://docs.mattermost.com/administration/compliance.html\" target=\"_blank\">documentation</a> pour en savoir davantage.",
"admin.compliance.enableTitle": "Activer le rapport de conformité :",
"admin.compliance.false": "non",
"admin.compliance.noLicense": "<h4 class=\"banner__heading\">Note :</h4><p>La conformité est une option disponible sur l'édition Entreprise. Votre licence ne permet pas d'utiliser cette fonction. Veuillez cliquer <a href=\"http://mattermost.com\" target=\"_blank\">ici</a> pour des informations sur la licence Entreprise et connaître son prix.</p>",
@@ -202,120 +202,122 @@
"admin.compliance_table.type": "Type",
"admin.compliance_table.userId": "Demandé par",
"admin.connectionSecurityNone": "Aucun",
- "admin.connectionSecurityNoneDescription": "Mattermost sera connecté via une connexion non sécurisée.",
+ "admin.connectionSecurityNoneDescription": "Mattermost se connectera via une connexion non sécurisée.",
"admin.connectionSecurityPlain": "PLAIN",
- "admin.connectionSecurityPlainDescription": "Mattermost sera connecté et authentifié via une connexion non sécurisée.",
- "admin.connectionSecurityStart": "Départ en mode ‘Transport Layer Security’",
- "admin.connectionSecurityStartDescription": "Prend une connexion non sécurisée existante et tente de la mettre à niveau vers une connexion sécurisée en utilisant le mode TLS .",
+ "admin.connectionSecurityPlainDescription": "Mattermost se connectera et s'authentifiera via une connexion non sécurisée.",
+ "admin.connectionSecurityStart": "STARTTLS",
+ "admin.connectionSecurityStartDescription": "Utilise une connexion non sécurisée existante et tente de la mettre à niveau vers une connexion sécurisée en utilisant TLS .",
"admin.connectionSecurityTest": "test de connexion",
- "admin.connectionSecurityTitle": "Connexion sécurisée",
+ "admin.connectionSecurityTitle": "Connexion sécurisée :",
"admin.connectionSecurityTls": "Transport Layer Security",
"admin.connectionSecurityTlsDescription": "Chiffre la communication entre Mattermost et votre serveur.",
- "admin.customization.androidAppDownloadLinkDesc": "Ajouter un lien pour télécharger l'application Android. Les utilisateurs qui visitent le site avec un navigateur web mobile seront accueils avec une page leur permettant de télécharger l'application. Laissez ce champ vide pour ne pas afficher cette page.",
- "admin.customization.androidAppDownloadLinkTitle": "Lien vers l'application Android :",
+ "admin.customization.androidAppDownloadLinkDesc": "Ajouter un lien pour télécharger l'application Android. Les utilisateurs qui visitent le site avec un navigateur web mobile seront accueillis avec une page leur permettant de télécharger l'application. Laissez ce champ vide pour ne pas afficher cette page.",
+ "admin.customization.androidAppDownloadLinkTitle": "Lien de téléchargement de l'application Android :",
"admin.customization.appDownloadLinkDesc": "Ajouter un lien vers une page de téléchargement des applications Mattermost. Si un lien est présent, une option pour \"Télécharger les applications Mattermost\" sera ajoutée dans le menu principal pour qu'elle soit visible par les utilisateurs. Laissez ce champ vide pour ne pas ajouter l'option dans le menu principal.",
- "admin.customization.appDownloadLinkTitle": "Lien de téléchargement de l'application Mattermost :",
+ "admin.customization.appDownloadLinkTitle": "Lien de téléchargement des applications Mattermost :",
"admin.customization.customBrand": "Image de marque personnalisée",
- "admin.customization.customEmoji": "Emoji personnalisés",
- "admin.customization.enableCustomEmojiDesc": "Permet aux utilisateurs de créer leurs propres emoji. Si activé, \"Emoji Personnalisés\" est accessible en sélectionnant une équipe, en cliquant sur les trois points en haut de la barre latérale et en choisissant l'option du menu.",
- "admin.customization.enableCustomEmojiTitle": "Activer les Emoji personnalisés :",
+ "admin.customization.emoji": "Emoticône",
+ "admin.customization.enableCustomEmojiDesc": "Permet aux utilisateurs de créer leurs propres émoticônes à utiliser dans des messages. Si activé, les paramètres d'émoticônes personnalisées sont accessibles en sélectionnant une équipe, en cliquant sur les trois points en haut de la barre latérale et en choisissant l'option \"Émoticônes persos\".",
+ "admin.customization.enableCustomEmojiTitle": "Activer les émoticônes personnalisées :",
+ "admin.customization.enableEmojiPickerDesc": "Le sélectionneur d'émoticônes permet aux utilisateurs de sélectionner l'émoticône à utiliser comme réaction ou comme message. Activer le sélectionneur avec un grand nombre d'émoticônes peut impacter les performances.",
+ "admin.customization.enableEmojiPickerTitle": "Activer le sélectionneur d'émoticônes :",
"admin.customization.enableLinkPreviewsDesc": "Permet aux utilisateurs d'afficher un aperçu du contenu du site web en-dessous du message, si disponible. Lorsqu'activé, les aperçus de sites web peut être activés à partir de Paramètres du compte > Options avancées > Activer les fonctionnalités expérimentales.",
"admin.customization.enableLinkPreviewsTitle": "Activer l'aperçu des liens :",
- "admin.customization.iosAppDownloadLinkDesc": "Ajouter un lien pour télécharger l'application iOS. Les utilisateurs qui visitent le site avec un navigateur web mobile seront accueils avec une page leur permettant de télécharger l'application. Laissez ce champ vide pour ne pas afficher cette page.",
- "admin.customization.iosAppDownloadLinkTitle": "Lien de téléchargement de l'app iOS :",
+ "admin.customization.iosAppDownloadLinkDesc": "Ajouter un lien pour télécharger l'application iOS. Les utilisateurs qui visitent le site avec un navigateur web mobile seront accueillis avec une page leur permettant de télécharger l'application. Laissez ce champ vide pour ne pas afficher cette page.",
+ "admin.customization.iosAppDownloadLinkTitle": "Lien de téléchargement de l'application iOS :",
"admin.customization.linkPreviews": "Aperçu des liens",
"admin.customization.nativeAppLinks": "Liens des applications Mattermost",
- "admin.customization.restrictCustomEmojiCreationAdmin": "Permet aux administrateurs système et d'équipe de créer des emoji personnalisés",
- "admin.customization.restrictCustomEmojiCreationAll": "Permettre à tout le monde de créer des Emoji personnalisés",
- "admin.customization.restrictCustomEmojiCreationDesc": "N'autoriser la création d'Emoji personnalisés qu'à certains utilisateurs.",
- "admin.customization.restrictCustomEmojiCreationSystemAdmin": "Seuls les administrateurs peuvent créer des Emoji personnalisés",
- "admin.customization.restrictCustomEmojiCreationTitle": "Restreindre la création d'Emoji personnalisés :",
+ "admin.customization.restrictCustomEmojiCreationAdmin": "Permet aux administrateurs système et d'équipe de créer des émoticônes personnalisées",
+ "admin.customization.restrictCustomEmojiCreationAll": "Permettre à tout le monde de créer des émoticônes personnalisées",
+ "admin.customization.restrictCustomEmojiCreationDesc": "N'autoriser la création d'émoticônes personnalisées qu'à certains utilisateurs.",
+ "admin.customization.restrictCustomEmojiCreationSystemAdmin": "Seuls les administrateurs peuvent créer des émoticônes personnalisées",
+ "admin.customization.restrictCustomEmojiCreationTitle": "Restreindre la création d'émoticônes personnalisées :",
"admin.customization.support": "Mentions légales",
"admin.database.title": "Paramètres de base de données",
"admin.developer.title": "Paramètres de développement",
- "admin.email.agreeHPNS": " J’ai compris et j’accepte les <a href=\"https://about.mattermost.com/hpns-terms/\" target=\"_blank\">termes de service</a> et la <a href=\"https://about.mattermost.com/hpns-privacy/\" target=\"_blank\">politique de confidentialité</a> du service de notifications Push hébergé par Mattermost.",
- "admin.email.allowEmailSignInDescription": "Si activé, les utilisateurs pourront se connecter avec leur adresse e-mail et leur mot de passe.",
+ "admin.email.agreeHPNS": " J’ai compris et j’accepte les <a href=\"https://about.mattermost.com/hpns-terms/\" target=\"_blank\">termes de service</a> et la <a href=\"https://about.mattermost.com/hpns-privacy/\" target=\"_blank\">politique de confidentialité</a> du service de notifications push hébergé par Mattermost.",
+ "admin.email.allowEmailSignInDescription": "Lorsqu'activé, les utilisateurs pourront se connecter avec leur adresse e-mail et leur mot de passe.",
"admin.email.allowEmailSignInTitle": "Activer la connexion avec une adresse e-mail : ",
- "admin.email.allowSignupDescription": "Si activé, Mattermost autorisera la création d'équipes et de comptes en utilisant une adresse e-mail et un mot de passe. Cette valeur devrait être désactivée seulement si vous souhaitez limiter les connexions via un seul service d'authentification unique (SSO) comme OAuth ou AD/LDAP.",
+ "admin.email.allowSignupDescription": "Si activé, Mattermost autorisera la création d'équipes et de comptes en utilisant une adresse e-mail et un mot de passe. Cette valeur devrait être désactivée seulement si vous souhaitez utiliser un service d'authentification unique (SSO) comme OAuth ou AD/LDAP pour les connexions.",
"admin.email.allowSignupTitle": "Activer la création de comptes avec une adresse e-mail : ",
- "admin.email.allowUsernameSignInDescription": "Si activé, les utilisateurs seront autorisés à se connecter avec leur nom d'utilisateur et leur mot de passe. Cette option n'est généralement utilisée que lorsque la vérification de l'adresse e-mail est désactivée.",
+ "admin.email.allowUsernameSignInDescription": "Lorsqu'activé, les utilisateurs seront autorisés à se connecter avec leur nom d'utilisateur et leur mot de passe. Cette option n'est généralement utilisée que lorsque la vérification de l'adresse e-mail est désactivée.",
"admin.email.allowUsernameSignInTitle": "Activer la connexion avec nom d'utilisateur : ",
"admin.email.connectionSecurityTest": "Tester la connexion",
"admin.email.easHelp": "En savoir plus sur la compilation et le déploiement de vos propres applications mobiles à partir de l'<a href=\"http://docs.mattermost.com/deployment/push.html#enterprise-app-store-eas\" target=\"_blank\">App Store Entreprise</a>.",
"admin.email.emailFail": "Echec de la connexion : {error}",
"admin.email.emailSuccess": "Aucune erreur signalée lors de l'envoi de l'e-mail. Vérifiez votre boîte de réception pour vous en assurer.",
- "admin.email.enableEmailBatching.clusterEnabled": "L'envoi d'e-mails par lot ne peut pas être activé lorsque le mode Haute Disponibilité est activé.",
- "admin.email.enableEmailBatching.siteURL": "L'envoi d'e-mails par lot ne peut pas être activé tant que SiteURL n'est pas configuré dans <b>Configuration > SiteURL</b>.",
+ "admin.email.enableEmailBatching.clusterEnabled": "L'envoi d'e-mails par lot ne peut pas être activé lorsque le mode haute disponibilité est activé.",
+ "admin.email.enableEmailBatching.siteURL": "L'envoi d'e-mails par lot ne peut pas être activé tant que l'URL de site n'est pas configurée dans <b>Configuration > URL de site</b>.",
"admin.email.enableEmailBatchingDesc": "Lorsqu'activé, les utilisateurs peuvent recevoir des notifications condensées en un seul e-mail pour les messages privés et mentions qu'ils reçoivent. Ceci est configurable dans <b>Paramètres du compte > Notifications</b>",
"admin.email.enableEmailBatchingTitle": "Activer l'envoi d'e-mails par lot :",
"admin.email.fullPushNotification": "Envoyer un extrait du message complet",
- "admin.email.genericPushNotification": "Envoyer une description générale avec les noms des utilisateurs et des canaux",
- "admin.email.inviteSaltDescription": "Clé de salage de 32 caractères ajouté aux e-mails d'invitation. Générée aléatoirement lors de l'installation. Veuillez cliquer sur \"Regénérer\" pour créer une nouvelle clé de salage.",
+ "admin.email.genericPushNotification": "Envoyer une description générale avec les noms d'utilisateurs et canaux",
+ "admin.email.inviteSaltDescription": "Clé de salage de 32 caractères utilisée pour signer les e-mails d'invitation. Cette clé est générée aléatoirement lors de l'installation. Veuillez cliquer sur \"Regénérer\" pour créer une nouvelle clé de salage.",
"admin.email.inviteSaltExample": "Ex. : \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "Clé de salage des e-mails d'invitation :",
"admin.email.mhpns": "La connexion à iOS et aux applications Android est cryptée",
- "admin.email.mhpnsHelp": "Téléchargez l'<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target=\"_blank\">application iOS Mattermost</a> depuis iTunes. Téléchargez l'<a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target=\"_blank\">application Android Mattermost</a> depuis le Google Play. Apprenez-en plus sur <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target=\"_blank\">HPNS</a>.",
+ "admin.email.mhpnsHelp": "Téléchargez l'<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>application iOS Mattermost</a> depuis iTunes. Téléchargez l'<a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>application Android Mattermost</a> depuis le Google Play. Apprenez-en davantage sur <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target=\"_blank\">HPNS</a>.",
"admin.email.mtpns": "Utilisez iOS et Android sur iTunes et Google Play avec TPNS",
- "admin.email.mtpnsHelp": "Téléchargez l'<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target=\"_blank\">application iOS Mattermost</a> depuis iTunes. Téléchargez l'<a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target=\"_blank\">application Android Mattermost</a> depuis le Google Play. Apprenez-en plus sur <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
+ "admin.email.mtpnsHelp": "Téléchargez l'<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>application iOS Mattermost</a> depuis iTunes. Téléchargez l'<a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>application Android Mattermost</a> depuis le Google Play. Apprenez-en davantage sur <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
"admin.email.nofificationOrganizationExample": "Ex. : \"© MonEntreprise, 12 avenue Niel, 75017 Paris, France\"",
- "admin.email.notificationDisplayDescription": "Afficher le nom du compte de messagerie utilisé lors de l'envoi de notifications par Mattermost.",
+ "admin.email.notificationDisplayDescription": "Afficher le nom du compte de messagerie utilisé lors de l'envoi d'e-mails de notification par Mattermost.",
"admin.email.notificationDisplayExample": "Ex. : \"Notification Mattermost\", \"Système\", \"No-reply\"",
"admin.email.notificationDisplayTitle": "Nom affiché dans les notifications :",
- "admin.email.notificationEmailDescription": "L'adresse e-mail affichée sur le compte utilisé lors de l'envoi de notifications e-mails de Mattermost.",
+ "admin.email.notificationEmailDescription": "L'adresse e-mail affichée sur le compte utilisé lors de l'envoi d'e-mails de notification par Mattermost.",
"admin.email.notificationEmailExample": "Ex. : \"mattermost@votreentreprise.com\", \"admin@votreentreprise.com\"",
"admin.email.notificationEmailTitle": "Notification depuis l'adresse :",
- "admin.email.notificationOrganization": "Adresse e-mail du pied de page pour les notifications e-mail :",
- "admin.email.notificationOrganizationDescription": "Nom de société et adresse affichés sur les notifications envoyées par e-mail, comme \"© MonEntreprise, 55 Rue du Faubourg Saint-Honoré, 75008 Paris, France\". Si ce champ est vide, il ne sera pas inclus dans les e-mails.",
+ "admin.email.notificationOrganization": "Adresse e-mail du pied de page des e-mails de notification :",
+ "admin.email.notificationOrganizationDescription": "Nom de société et adresse affichés sur les e-mails de notification, comme \"© MonEntreprise, 12 avenue Niel, 75017 Paris, France\". Si ce champ est vide, il ne sera pas inclus dans l'e-mail.",
"admin.email.notificationOrganizationExample": "Ex. : \"© MonEntreprise, 12 avenue Niel, 75017 Paris, France\"",
- "admin.email.notificationsDescription": "En général, activé en production. Si activé, Mattermost essaye d'envoyer des notifications par courrier électronique. Les développeurs peuvent en revanche désactiver cette option pour gagner du temps.<br />Activer cette option retire la bannière \"Mode découverte\" (cela nécessite de se déconnecter puis se re-connecter après avoir activé l'option).",
- "admin.email.notificationsTitle": "Activer les notifications par e-mail :",
+ "admin.email.notificationsDescription": "En général, activé en production. Lorsqu'activé, Mattermost essaye d'envoyer des e-mails de notification. Les développeurs peuvent en revanche désactiver cette option pour gagner du temps lors du développement.<br />Activer cette option retire la bannière \"Mode découverte\" (cela nécessite de se déconnecter puis se re-connecter après avoir modifié l'option).",
+ "admin.email.notificationsTitle": "Activer les e-mails de notification : ",
"admin.email.passwordSaltDescription": "Clé de salage de 32 caractères utilisé pour générer la clé de réinitialisation du mot de passe. Générée aléatoirement à l'installation. Veuillez cliquer sur \"regénérer\" pour créer une nouvelle clé de salage.",
"admin.email.passwordSaltExample": "Ex. : \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.passwordSaltTitle": "Clé de salage de réinitialisation du mot de passe :",
- "admin.email.pushContentDesc": "Choisir \"Envoyer une description générale avec les noms des utilisateurs et des canaux\" permet aux notifications push d'envoyer des messages sans détail, en incluant juste les noms d'utilisateurs et de canaux.<br /><br />Choisir \"Envoyer un extrait du message complet\" envoie des extraits des messages qui déclenchent les notifications, et peuvent inclure des informations confidentielles visibles sur le terminal des utilisateurs notifiés. Si votre serveur de notifications Push est en dehors de votre pare-feu, il est HAUTEMENT RECOMMANDÉ d'utiliser cette option uniquement avec le protocole \"https\".",
+ "admin.email.pushContentDesc": "Choisir \"Envoyer une description générale avec les noms d'utilisateurs et canaux\" permet aux notifications push d'envoyer des messages sans détail, en incluant juste les noms d'utilisateurs et de canaux.<br /><br />Choisir \"Envoyer un extrait du message complet\" envoie des extraits des messages qui déclenchent les notifications, et peuvent inclure des informations confidentielles visibles sur le terminal des utilisateurs notifiés. Si votre serveur de notifications push n'est pas protégé par votre pare-feu, il est HAUTEMENT RECOMMANDÉ d'utiliser uniquement cette option avec le protocole \"https\" pour chiffrer la connexion.",
"admin.email.pushContentTitle": "Contenu des notifications push :",
- "admin.email.pushDesc": "En général activé en production. Si activé, Mattermost essaye d'envoyer à iOS et Android des notifications push.",
+ "admin.email.pushDesc": "En général activé en production. Lorsqu'activé, Mattermost essaye d'envoyer à iOS et Android des notifications push.",
"admin.email.pushOff": "Ne pas envoyer de notifications push",
- "admin.email.pushOffHelp": "Veuillez vous référer à la <a href=\"http://docs.mattermost.com/deployment/push.html#push-notifications-and-mobile-devices\" target=\"_blank\">documentation sur les notifications Push</a> pour en savoir plus sur les options de configuration.",
+ "admin.email.pushOffHelp": "Veuillez vous référer à la <a href=\"http://docs.mattermost.com/deployment/push.html#push-notifications-and-mobile-devices\" target=\"_blank\">documentation sur les notifications push</a> pour en savoir davantage sur les options de configuration.",
"admin.email.pushServerDesc": "Service de notification push utilisé par Mattermost. Vous pouvez l'utilisez derrière votre firewall avec https://github.com/mattermost/push-proxy. Pour vos tests, vous pouvez utiliser http://push-test.mattermost.com, qui se connecte à l'application iOS Mattermost de l'AppStore public. N'utilisez pas ce serveur de test pour vos déploiements en production !",
"admin.email.pushServerEx": "Exemple : \"http://push-test.mattermost.com\"",
"admin.email.pushServerTitle": "Serveur de notifications push :",
"admin.email.pushTitle": "Envoyer des notifications push : ",
- "admin.email.requireVerificationDescription": "En général, activé en production. Si activé, Mattermost impose une vérification de l'adresse e-mail avant d'autoriser la connexion. Vous pouvez désactiver cette option en développement.",
- "admin.email.requireVerificationTitle": "Imposer la vérification de l'adresse e-mail : ",
- "admin.email.selfPush": "Spécifiez manuellement la configuration du service de notifications Push",
+ "admin.email.requireVerificationDescription": "En général, activé en production. Lorsqu'activé, Mattermost impose une vérification de l'adresse e-mail avant d'autoriser la connexion. Vous pouvez désactiver cette option en développement.",
+ "admin.email.requireVerificationTitle": "Imposer la vérification de l'adresse e‑mail : ",
+ "admin.email.selfPush": "Spécifiez manuellement la configuration du service de notifications push",
"admin.email.skipServerCertificateVerification.description": "Lorsqu'activé, Mattermost ne vérifiera pas le certificat du serveur e-mail.",
"admin.email.skipServerCertificateVerification.title": "Passer la vérification du certificat du serveur: ",
- "admin.email.smtpPasswordDescription": " Récupérez ces informations de la part de l'administrateur de votre serveur de mails.",
+ "admin.email.smtpPasswordDescription": " Récupérez ces informations de l'administrateur de votre serveur e-mail.",
"admin.email.smtpPasswordExample": "Ex. : \"votremotdepasse\", \"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\"",
"admin.email.smtpPasswordTitle": "Mot de passe du serveur SMTP :",
"admin.email.smtpPortDescription": "Port du serveur SMTP.",
"admin.email.smtpPortExample": "Ex. : \"25\", \"465\", \"587\"",
- "admin.email.smtpPortTitle": "Port SMTP :",
+ "admin.email.smtpPortTitle": "Port du serveur SMTP :",
"admin.email.smtpServerDescription": "Adresse de votre serveur SMTP.",
"admin.email.smtpServerExample": "Ex. : \"smtp.votreentreprise.com\", \"email-smtp.us-east-1.amazonaws.com\"",
"admin.email.smtpServerTitle": "Serveur SMTP :",
- "admin.email.smtpUsernameDescription": " Récupérez ces informations de la part de l'administrateur de votre serveur de mails.",
+ "admin.email.smtpUsernameDescription": " Récupérez ces informations de l'administrateur de votre serveur e-mail.",
"admin.email.smtpUsernameExample": "Ex. : \"admin@votreentreprise.com\", \"AKIADTOVBGERKLCBV\"",
- "admin.email.smtpUsernameTitle": "Nom d'utilisateur SMTP :",
+ "admin.email.smtpUsernameTitle": "Nom d'utilisateur du serveur SMTP :",
"admin.email.testing": "Essai en cours...",
"admin.false": "non",
"admin.file.enableFileAttachments": "Activer les fichiers en pièces jointes :",
- "admin.file.enableFileAttachmentsDesc": "Lorsque désactivé, désactive les envois de fichiers et d'images conjointement aux messages.",
+ "admin.file.enableFileAttachmentsDesc": "Lorsque désactivé, désactive les envois de fichiers et d'images accompagnant les messages.",
"admin.file_upload.chooseFile": "Parcourir",
"admin.file_upload.noFile": "Aucun fichier téléchargé",
"admin.file_upload.uploadFile": "Télécharger",
"admin.files.images": "Images",
"admin.files.storage": "Stockage",
"admin.general.configuration": "Configuration",
- "admin.general.localization": "Localisation",
- "admin.general.localization.availableLocalesDescription": "Définit quelles langues sont disponibles pour les utilisateurs dans Paramètres du compte (laissez ce champ vide pour laisser toutes les langues supportées disponibles). Si vous ajoutez des langues manuellement, la <strong>Langue du client par défaut</strong> doit être ajoutée avant de sauver ce paramètre.<br /><br />Vous souhaitez apporter votre aide pour traduire ? Rejoignez le <a href='http://translate.mattermost.com/' target='_blank'>Serveur de Traduction Mattermost</a> pour contribuer.",
+ "admin.general.localization": "Paramètres linguistiques",
+ "admin.general.localization.availableLocalesDescription": "Définit quelles langues sont disponibles pour les utilisateurs dans Paramètres du compte (laissez ce champ vide pour laisser toutes les langues supportées disponibles). Si vous ajoutez des langues manuellement, la <strong>Langue par défaut du client</strong> doit être ajoutée avant de sauver ce paramètre.<br /><br />Vous souhaitez apporter votre aide pour traduire ? Rejoignez le <a href='http://translate.mattermost.com/' target='_blank'>Serveur de Traduction Mattermost</a> pour contribuer.",
"admin.general.localization.availableLocalesNoResults": "Aucun résultat trouvé",
"admin.general.localization.availableLocalesNotPresent": "La langue par défaut du client doit être inclue dans la liste des langues disponibles",
"admin.general.localization.availableLocalesTitle": "Langues disponibles :",
- "admin.general.localization.clientLocaleDescription": "La langue par défaut est utilisée pour les utilisateurs nouvellement créés et les pages où l'utilisateur ne s'est pas encore connecté.",
- "admin.general.localization.clientLocaleTitle": "Langue par défaut :",
- "admin.general.localization.serverLocaleDescription": "La langue par défaut est utilisée pour les messages et journaux systèmes. Modifier la langue nécessite un redémarrage du serveur avant de prendre effet.",
+ "admin.general.localization.clientLocaleDescription": "La langue par défaut utilisée pour les utilisateurs nouvellement créés et les pages où l'utilisateur ne s'est pas encore connecté.",
+ "admin.general.localization.clientLocaleTitle": "Langue par défaut du client :",
+ "admin.general.localization.serverLocaleDescription": "La langue par défaut utilisée pour les messages et journaux systèmes. Modifier la langue nécessite un redémarrage du serveur avant de prendre effet.",
"admin.general.localization.serverLocaleTitle": "Langue par défaut du serveur :",
"admin.general.log": "Journalisation",
"admin.general.policy": "Règles",
@@ -361,18 +363,18 @@
"admin.general.policy.teamInviteDescription": "Choisir qui peut inviter d'autres personnes à une équipe en utilisant <b>Inviter un nouveau membre</b> pour inviter des nouveaux utilisateurs par e-mail, ou l'option <b>Obtenir un lien d'invitation d'équipe</b> du menu principal. Si l'option <b>Obtenir un lien d'invitation d'équipe</b> est utilisée pour partager un lien, vous pouvez faire expirer le code d'invitation depuis <b>Configuration de l'équipe</b> > <b>Code d'invitation</b> une fois que les utilisateurs désirés ont rejoint l'équipe.",
"admin.general.policy.teamInviteTitle": "Autoriser l'envoi d'invitation depuis :",
"admin.general.privacy": "Confidentialité",
- "admin.general.usersAndTeams": "Utilisateur et équipes",
+ "admin.general.usersAndTeams": "Utilisateurs et équipes",
"admin.gitab.clientSecretDescription": "Récupérez cette information depuis les instructions ci-dessus pour vous connecter à GitLab.",
- "admin.gitlab.EnableHtmlDesc": "<ol><li>Connectez vous à votre compte GitLab et allez dans les paramètres de votre profil, puis dans \"Applications\".</li><li>Saisissez les URLs de redirection \"<your-mattermost-url>/login/gitlab/complete\" (exemple: http://localhost:8065/login/gitlab/complete) et \"<your-mattermost-url>/signup/gitlab/complete\". </li><li>Puis utilisez les champs \"Clé secrète de l'application\" et \"ID d'application\" de GitLab pour compléter les options ci-dessous.</li><li>Complétez les URL de fin de parcours (Endpoint) ci-dessous. </li></ol>",
+ "admin.gitlab.EnableHtmlDesc": "<ol><li>Connectez vous à votre compte GitLab et allez dans les paramètres de votre profil, puis dans \"Applications\".</li><li>Saisissez les URLs de redirection \"<your-mattermost-url>/login/gitlab/complete\" (exemple: http://localhost:8065/login/gitlab/complete) et \"<your-mattermost-url>/signup/gitlab/complete\". </li><li>Utilisez les champs \"Clé secrète de l'application\" et \"ID d'application\" de GitLab pour compléter les options ci-dessous.</li><li>Complétez les URL de fin de parcours (Endpoint) ci-dessous. </li></ol>",
"admin.gitlab.authDescription": "Saisissez https://<your-gitlab-url>/oauth/authorize (par exemple https://exemple.com:3000/oauth/authorize). Vérifiez si vous utilisez HTTP ou HTTPS que votre URL est correctement saisie.",
"admin.gitlab.authExample": "Ex. : \"https://<your-gitlab-url>/oauth/authorize\"",
- "admin.gitlab.authTitle": "URL d'authentification (auth endpoint) :",
+ "admin.gitlab.authTitle": "URL d'authentification (auth endpoint) :",
"admin.gitlab.clientIdDescription": "Récupérez cette information depuis les instructions ci-dessus pour vous connecter à GitLab",
"admin.gitlab.clientIdExample": "Ex. : \"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\"",
"admin.gitlab.clientIdTitle": "ID d'application :",
"admin.gitlab.clientSecretExample": "Ex. : \"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\"",
"admin.gitlab.clientSecretTitle": "Clé secrète de l'application :",
- "admin.gitlab.enableDescription": "Si activé, Mattermost autorise la création d'une équipe et l'inscription avec le service OAuth de GitLab.",
+ "admin.gitlab.enableDescription": "Lorsqu'activé, Mattermost autorise la création d'une équipe et l'inscription avec le service OAuth de GitLab.",
"admin.gitlab.enableTitle": "Activer l'authentification par GitLab : ",
"admin.gitlab.settingsTitle": "Paramètres de GitLab",
"admin.gitlab.tokenDescription": "Saisissez https://<your-gitlab-url>/oauth/token. Veillez à saisir HTTP ou HTTPS dans l'URL suivant votre configuration.",
@@ -382,7 +384,7 @@
"admin.gitlab.userExample": "Ex. : \"https://<your-gitlab-url>/api/v3/user\"",
"admin.gitlab.userTitle": "URL de l'API (User API endpoint) :",
"admin.google.EnableHtmlDesc": "<ol><li><a target='_blank' href='https://accounts.google.com/login'>Connectez-vous</a> à votre compte Google.</li><li>Allez à <a target='_blank' href='https://console.developers.google.com'>https://console.developers.google.com</a>, cliquez sur <strong>Credentials</strong> dans la barre latérale de gauche et saisissez \"Mattermost - votre-nom-d-entreprise\" comme <strong>Project Name</strong>, puis cliquez sur <strong>Create</strong>.</li><li>Cliquez sur l'entête <strong>OAuth consent screen</strong> et saisissez \"Mattermost\" comme <strong>Product name shown to users</strong>, puis cliquez sur <strong>Save</strong>.</li><li>Sous l'entête <strong>Credentials</strong>, cliquez <strong>Create credentials</strong>, choisissez <strong>OAuth client ID</strong> et sélectionnez <strong>Web Application</strong>.</li><li>Dans <strong>Restrictions</strong> et <strong>Authorized redirect URIs</strong> saisissez <strong>votre-url-mattermost/signup/google/complete</strong> (exemple: http://localhost:8065/signup/google/complete). Cliquez sur <strong>Create</strong>.</li><li>Collez le <strong>Client ID</strong> et le <strong>Client Secret</strong> dans les champs ci-dessous, puis cliquez sur <strong>Save</strong>.</li><li>Enfin, allez dans <a target='_blank' href='https://console.developers.google.com/apis/api/plus/overview'>Google+ API</a> et cliquez sur <strong>Enable</strong>. Ceci peut prendre plusieurs minutes pour se propager dans les systèmes de Google.</li></ol>",
- "admin.google.authTitle": "URL d'authentification (auth endpoint) :",
+ "admin.google.authTitle": "URL d'authentification (auth endpoint) :",
"admin.google.clientIdDescription": "Le Client ID que vous avez reçu lorsque vous avez enregistré l'application avec Google.",
"admin.google.clientIdExample": "Ex. : \"7602141235235-url0fhs1mayfasbmop5qlfns8dh4.apps.googleusercontent.com\"",
"admin.google.clientIdTitle": "ID Client :",
@@ -403,7 +405,7 @@
"admin.image.amazonS3RegionDescription": "Région AWS dans laquelle votre bucket S3 est hébergé.",
"admin.image.amazonS3RegionExample": "Ex. : \"us-east-1\"",
"admin.image.amazonS3RegionTitle": "Région AWS S3 :",
- "admin.image.amazonS3SSLDescription": "Si désactivé, autorise les connexions non sécurisées à Amazon S3. Par défaut, seules les connexions sécurisées sont acceptées.",
+ "admin.image.amazonS3SSLDescription": "Lorsque désactivé, autorise les connexions non sécurisées à Amazon S3. Par défaut, seules les connexions sécurisées sont acceptées.",
"admin.image.amazonS3SSLExample": "Ex. : \"vrai\"",
"admin.image.amazonS3SSLTitle": "Activer les connexions sécurisées à Amazon S3 :",
"admin.image.amazonS3SecretDescription": "Demandez cette information à votre administrateur AWS.",
@@ -412,7 +414,7 @@
"admin.image.localDescription": "Répertoire où écrire les fichiers et les images. Si vide : \"./data/\".",
"admin.image.localExample": "Ex. : \"./data/\"",
"admin.image.localTitle": "Répertoire de stockage local :",
- "admin.image.maxFileSizeDescription": "Taille maximum des pièce jointes en Mo. Attention : vérifiez que la mémoire du serveur puisse supporter votre saisie. Les gros fichiers augmentent les risques de crash serveur de de téléchargement échoués à cause des erreurs réseau.",
+ "admin.image.maxFileSizeDescription": "Taille maximum des pièces jointes en Mio. Attention : vérifiez que la mémoire du serveur supporte la taille que vous avez spécifié. Les gros fichiers augmentent les risques de crash serveur et d'échecs d'envoi causés par des interruptions de réseau.",
"admin.image.maxFileSizeExample": "50",
"admin.image.maxFileSizeTitle": "Taille de fichier maximum :",
"admin.image.publicLinkDescription": "Clé de salage de 32 caractères ajoutée aux e-mails d'invitation. Générée aléatoirement lors de l'installation. Veuillez cliquer sur \"Regénérer\" pour créer une nouvelle clé de salage.",
@@ -421,35 +423,35 @@
"admin.image.shareDescription": "Permettre aux utilisateurs de partager des liens et images publics.",
"admin.image.shareTitle": "Activer les liens publics pour les fichiers : ",
"admin.image.storeAmazonS3": "Amazon S3",
- "admin.image.storeDescription": "Système de stockage où les fichiers, images et pièces jointes sont enregistrés.<br /><br />Choisissez \"Amazon S3\" pour saisir vos accès à Amazon et le bucket où stocker vos fichiers.<br /><br />Sélectionnez \"Système de fichier local\" pour choisir le répertoire du serveur où enregistrer les fichiers.",
- "admin.image.storeLocal": "Disque local",
+ "admin.image.storeDescription": "Système de stockage où les fichiers, images et pièces jointes sont enregistrés.<br /><br />Choisissez \"Amazon S3\" pour saisir vos accès à Amazon et le bucket où stocker vos fichiers.<br /><br />Sélectionnez \"Stockage local\" pour choisir le répertoire du serveur où enregistrer les fichiers.",
+ "admin.image.storeLocal": "Stockage local",
"admin.image.storeTitle": "Système de stockage des fichiers :",
"admin.integrations.custom": "Intégrations personnalisées",
"admin.integrations.external": "Services externes",
"admin.integrations.webrtc": "Mattermost WebRTC",
- "admin.ldap.baseDesc": "Le DN de base est le Distinguished Name à partir du quel Mattermost doit rechercher les utilisateurs dans l'arborescence LDAP.",
+ "admin.ldap.baseDesc": "Le DN de base est le Distinguished Name à partir duquel Mattermost doit rechercher les utilisateurs dans l'arborescence AD/LDAP.",
"admin.ldap.baseEx": "Ex. : \"ou=Unit Name,dc=corp,dc=example,dc=com\"",
"admin.ldap.baseTitle": "DN de base :",
- "admin.ldap.bindPwdDesc": "Mot de passe de l'utilisateur LDAP utilisé pour rechercher les autres utilisateurs.",
- "admin.ldap.bindPwdTitle": "Mot de passe de l'utilisateur de recherche :",
- "admin.ldap.bindUserDesc": "Nom de l'utilisateur LDAP utilisé pour rechercher les autres utilisateurs. Il peut s'agir d'un utilisateur créé spécifiquement pour Mattermost, et disposant de droits restreints à l'arborescence LDAP concernée par Mattermoste.",
- "admin.ldap.bindUserTitle": "Nom d'utilisateur pour la recherche :",
- "admin.ldap.emailAttrDesc": "Attribut du serveur LDAP utilisé pour le champ \"adresse e-mail\" dans Mattermost.",
+ "admin.ldap.bindPwdDesc": "Mot de passe de l'utilisateur déterminé par le champ \"Bind Username\"",
+ "admin.ldap.bindPwdTitle": "Bind Password : ",
+ "admin.ldap.bindUserDesc": "Nom de l'utilisateur utilisé pour effectuer la recherche AD/LDAP. Il s'agit typiquement d'un compte utilisateur créé spécifiquement pour Mattermost. Il doit disposer de droits restreints pour lire la partie de l'arborescence AD/LDAP spécifiée par le champ BaseDN.",
+ "admin.ldap.bindUserTitle": "Bind Username :",
+ "admin.ldap.emailAttrDesc": "Attribut du serveur AD/LDAP utilisé pour remplir les adresses e-mail des utilisateurs de Mattermost.",
"admin.ldap.emailAttrEx": "Ex. : \"mail\" ou \"userPrincipalName\"",
"admin.ldap.emailAttrTitle": "Attribut \"adresse e-mail\" :",
- "admin.ldap.enableDesc": "Si activé, Mattermost permet de s'authentifier avec le serveur LDAP",
- "admin.ldap.enableTitle": "Activer la connexion avec LDAP :",
+ "admin.ldap.enableDesc": "Lorsqu'activé, Mattermost permet l'authentification à l'aide d'un serveur AD/LDAP",
+ "admin.ldap.enableTitle": "Activer la connexion avec AD/LDAP :",
"admin.ldap.firstnameAttrDesc": "(Optionnel) L'attribut dans le serveur AD/LDAP qui sera utilisé pour les prénoms des utilisateurs de Mattermost. Lorsque défini, les utilisateurs ne pourront pas éditer leur prénom étant donné qu'il est alors synchronisé avec le serveur LDAP. Lorsque laissé vide, les utilisateurs peuvent définir leur propre prénom dans les paramètres du compte.",
"admin.ldap.firstnameAttrEx": "Ex. : \"givenName\"",
"admin.ldap.firstnameAttrTitle": "Attribut prénom",
- "admin.ldap.idAttrDesc": "Attribut du serveur AD/LDAP utilisé comme identifiant unique d'utilisateur dans Mattermost. Cela doit être un attribut AD/LDAP dont la valeur ne change pas, tel que 'username' ou 'uid'. Si cette valeur change dans l'annuaire AD/LDAP, un nouveau compte Mattermost sera créé sans lien avec l'ancien utilisateur. Il s'agit de la valeur à saisir dans le champ \"Utilisateur LDAP\" de la page de connexion. Normalement cet attribut est le même que celui du \"nom d'utilisateur\" ci-dessus. Si votre équipe utilise le format domain\\\\username pour se connecter à d'autres services avec AD/LDAP, vous pouvez utiliser domain\\\\username dans ce champs pour garder la cohérence entre vos différents sites.",
+ "admin.ldap.idAttrDesc": "L'attribut du serveur AD/LDAP utilisé comme identifiant unique d'utilisateur dans Mattermost. Il doit être un attribut AD/LDAP dont la valeur ne change pas, tel que le nom d'utilisateur ou l'uid. Si l'attribut ID de l'utilisateur change, cela créera un nouveau compte Mattermost sans lien avec l'ancien utilisateur. Il s'agit de la valeur à saisir dans le champ \"Nom d'utilisateur AD/LDAP\" sur la page de connexion. Normalement cet attribut est le même que celui du \"Attribut nom d'utilisateur\" ci-dessus. Si votre équipe utilise le format domaine\\\\nom utilisateur pour se connecter à d'autres services avec AD/LDAP, vous pouvez utiliser domaine\\\\nom utilisateur dans ce champ pour garder la cohérence entre vos différents sites.",
"admin.ldap.idAttrEx": "Ex. : \"sAMAccountName\"",
"admin.ldap.idAttrTitle": "Attribut id : ",
"admin.ldap.lastnameAttrDesc": "(Optionnel) L'attribut dans le serveur AD/LDAP qui sera utilisé pour les noms de famille des utilisateurs de Mattermost. Lorsque défini, les utilisateurs ne pourront pas éditer leur nom de famille étant donné qu'il est alors synchronisé avec le serveur LDAP. Lorsque laissé vide, les utilisateurs peuvent définir leur propre nom de famille dans les paramètres du compte.",
"admin.ldap.lastnameAttrEx": "Ex. : \"sn\"",
- "admin.ldap.lastnameAttrTitle": "Attribut \"nom de famille\" :",
+ "admin.ldap.lastnameAttrTitle": "Last Name Attribute :",
"admin.ldap.ldap_test_button": "Test d'AD/LDAP",
- "admin.ldap.loginNameDesc": "L’espace texte réservé apparaît dans le champ de connexion sur la page de connexion. Par défaut \"LDAP Nom d'utilisateur\".",
+ "admin.ldap.loginNameDesc": "L’espace texte réservé apparaît dans le champ de connexion sur la page de connexion. Par défaut \"AD/LDAP Nom d'utilisateur\".",
"admin.ldap.loginNameEx": "Ex. : \"AD/LDAP nom d’utilisateur\"",
"admin.ldap.loginNameTitle": "Champ de connexion :",
"admin.ldap.maxPageSizeEx": "Ex. : \"2000\"",
@@ -468,21 +470,21 @@
"admin.ldap.queryDesc": "Valeur du délai d'attente pour les requêtes au serveur AD/LDAP. Augmentez cette valeur si vous rencontrez des erreurs liées à un serveur AD/LDAP trop lent.",
"admin.ldap.queryEx": "Ex. : \"60\"",
"admin.ldap.queryTitle": "Délai d'attente (en secondes) :",
- "admin.ldap.serverDesc": "Nom DNS ou adresse IP du serveur LDAP.",
+ "admin.ldap.serverDesc": "Nom DNS ou adresse IP du serveur AD/LDAP.",
"admin.ldap.serverEx": "Ex. : \"10.0.0.23\"",
- "admin.ldap.serverTitle": "Serveur LDAP :",
- "admin.ldap.skipCertificateVerification": "Passer la vérification",
- "admin.ldap.skipCertificateVerificationDesc": "Saute l'étape de vérification des certificats pour les connexions TLS ou STARTTLS . Non recommandé pour les environnements de production où TLS est nécessaire. Pour tester seulement.",
+ "admin.ldap.serverTitle": "Serveur AD/LDAP :",
+ "admin.ldap.skipCertificateVerification": "Passer la vérification du certificat :",
+ "admin.ldap.skipCertificateVerificationDesc": "Passe l'étape de vérification des certificats pour les connexions TLS ou STARTTLS. Non recommandé pour les environnements de production où TLS est requis. A des fins de test uniquement.",
"admin.ldap.syncFailure": "Erreur de synchronisation : {error}",
- "admin.ldap.syncIntervalHelpText": "La synchronisation LDAP met à jour les informations utilisateurs de Mattermost pour refléter les changements du serveur LDAP. Par exemple, lorsque le nom d'un utilisateur change sur le serveur LDAP, le changement est appliqué sur Mattermost lors de la synchronisation. Les comptes supprimés ou désactivés sur le serveur LDAP auront leur compte Mattermost mis comme \"Inactif\" et auront leur session de révoquée. Mattermost réalise la synchronisation dans l'intervalle entré. Par exemple, si 60 est spécifié, Mattermost se synchronisera toutes les 60 minutes.",
+ "admin.ldap.syncIntervalHelpText": "La synchronisation AD/LDAP met à jour les informations utilisateurs de Mattermost pour refléter les changements du serveur AD/LDAP. Par exemple, lorsque le nom d'un utilisateur change sur le serveur AD/LDAP, le changement est appliqué sur Mattermost lors de la synchronisation. Les comptes supprimés ou désactivés du serveur AD/LDAP auront leur compte Mattermost défini comme \"Inactif\" et auront leur session révoquée. Mattermost réalise la synchronisation selon l'intervalle spécifié. Par exemple, si 60 est spécifié, Mattermost se synchronisera toutes les 60 minutes.",
"admin.ldap.syncIntervalTitle": "Intervalle de synchronisation (en minutes)",
- "admin.ldap.syncNowHelpText": "Provoque une synchronisation LDAP immédiate.",
- "admin.ldap.sync_button": "Synchroniser maintenant l'annuaire LDAP",
+ "admin.ldap.syncNowHelpText": "Initie une synchronisation AD/LDAP immédiate.",
+ "admin.ldap.sync_button": "Synchroniser maintenant l'annuaire AD/LDAP",
"admin.ldap.testFailure": "Echec du test AD/LDAP : {error}",
"admin.ldap.testHelpText": "Teste si le serveur Mattermost peut se connecter au serveur AD/LDAP spécifié. Veuillez vous référer au fichier journal pour davantage de messages d'erreur détaillés.",
"admin.ldap.testSuccess": "Test d'AD/LDAP réussi avec succès",
- "admin.ldap.uernameAttrDesc": "Attribut du serveur LDAP utilisé pour le champ \"nom d'utilisateur\" dans Mattermost. Utilisez de préférence le même champ que l'attribut \"identifiant d'utilisateur\".",
- "admin.ldap.userFilterDisc": "Entrez éventuellement un filtre LDAP à utiliser lors de la recherche d'objets utilisateur. Seuls les utilisateurs sélectionnés par la requête seront en mesure d'accéder à Mattermost . Pour Active Directory, la requête pour filtrer les utilisateurs désactivés est (&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))).",
+ "admin.ldap.uernameAttrDesc": "Attribut du serveur AD/LDAP utilisé pour remplir le champ du nom d'utilisateur des utilisateurs de Mattermost. Il se peut qu'il s'agisse du même champ que l'ID Attribute.",
+ "admin.ldap.userFilterDisc": "(Optionel) Spécifiez un filtre AD/LDAP à utiliser lors de la recherche d'objets utilisateur. Seuls les utilisateurs sélectionnés par la requête seront en mesure d'accéder à Mattermost . Pour Active Directory, la requête pour filtrer les utilisateurs désactivés est (&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))).",
"admin.ldap.userFilterEx": "Ex. : \"(objectClass=user)\"",
"admin.ldap.userFilterTitle": "Filtre utilisateur :",
"admin.ldap.usernameAttrEx": "Ex. : \"sAMAccountName\"",
@@ -499,16 +501,16 @@
"admin.license.upload": "Télécharger",
"admin.license.uploadDesc": "Téléchargez une licence de Mattermost pour mettre à niveau ce serveur vers l'Edition Entreprise. <a href=\"http://mattermost.com\" target=\"_blank\">Consultez Mattermost</a> pour en apprendre plus au sujet des avantages de l'Edition Entreprise ou pour savoir comment acheter une clé.",
"admin.license.uploading": "Téléchargement de la licence…",
- "admin.log.consoleDescription": "En principe désactivée en production. Utilisé pour le développement, pour afficher les messages d'information sur la console (stdout).",
+ "admin.log.consoleDescription": "En principe désactivé en production. Les développeurs peuvent activer cette option pour afficher les messages de journal sur la console selon le niveau de verbosité de la console. Lorsqu'activé, le serveur écrit les messages dans le flux de sortie standard (stdout).",
"admin.log.consoleTitle": "Affiche les journaux sur la console : ",
- "admin.log.enableDiagnostics": "Activer les diagnostics et le rapport d'erreurs",
- "admin.log.enableDiagnosticsDescription": "Activez cette fonctionnalité pour améliorer la qualité et la performance de Mattermost en envoyant des rapports d'erreur et de diagnostic à Mattermost, Inc. Lisez notre <a href=\"https://about.mattermost.com/default-privacy-policy/\" target=\"_blank\">politique de confidentialité</a> pour en savoir plus.",
+ "admin.log.enableDiagnostics": "Activer les diagnostics et le rapport d'erreurs :",
+ "admin.log.enableDiagnosticsDescription": "Activez cette fonctionnalité pour améliorer la qualité et la performance de Mattermost en envoyant des rapports d'erreur et de diagnostic à Mattermost, Inc. Lisez notre <a href=\"https://about.mattermost.com/default-privacy-policy/\" target=\"_blank\">politique de confidentialité</a> pour en savoir davantage.",
"admin.log.enableWebhookDebugging": "Activer le débogage des webhooks :",
- "admin.log.enableWebhookDebuggingDescription": "Si ce paramètre est faux, les traces de débogage des requêtes webhook entrantes seront désactivées.",
+ "admin.log.enableWebhookDebuggingDescription": "Si ce paramètre est désactivé, les traces de débogage des requêtes webhook entrantes seront désactivées.",
"admin.log.fileDescription": "Typiquement activé en production. Lorsqu'activé, les événements sont écrits dans le fichier mattermost.log dans le répertoire spécifié dans le champ 'Répertoire des fichiers journaux'. La rotation des journaux s'effectue toutes les 10 000 lignes et sont archivés dans un fichier du même répertoire, avec un nom de fichier portant un timestamp et un numéro de série. Par exemple, mattermost.2017-03-31.001.",
"admin.log.fileLevelDescription": "Ce paramètre indique le niveau de détail des journaux. ERROR : N'enregistre que les messages d'erreur. INFO : Affiche les erreurs et des informations sur le démarrage et l'initialisation du serveur. DEBUG : Affiche des informations utiles aux développeurs.",
"admin.log.fileLevelTitle": "Niveau de détail des journaux :",
- "admin.log.fileTitle": "Enregistre les journaux dans un fichier : ",
+ "admin.log.fileTitle": "Enregistre les journaux dans un fichier : ",
"admin.log.formatDateLong": "Date (2006/01/02)",
"admin.log.formatDateShort": "Date (21/02/06)",
"admin.log.formatDescription": "Format des journaux d'erreur. Si vide, sera \"[%D %T] [%L] %M\", où :",
@@ -519,7 +521,7 @@
"admin.log.formatTime": "Heure (15:04:05 MST)",
"admin.log.formatTitle": "Format de fichier : ",
"admin.log.levelDescription": "Ce paramètre détermine le niveau de détail des événements du journal affichés sur la console. ERROR : Affiche seulement les erreurs. INFO : Affiche les messages d'erreur ainsi que des informations sur le démarrage et l'initialisation du serveur. DEBUG : Affiche un haut niveau de détail pour les développeurs.",
- "admin.log.levelTitle": "Niveau de détail affiché sur la console :",
+ "admin.log.levelTitle": "Niveau de détail affiché sur la console :",
"admin.log.locationDescription": "L'emplacement des fichiers journaux. Si laissé vide, ces derniers sont sauvegardés dans le répertoire ./logs. Le chemin vers ce répertoire doit exister et Mattermost doit disposer des permissions pour écrire dedans.",
"admin.log.locationPlaceholder": "Saisir l'emplacement du fichier",
"admin.log.locationTitle": "Répertoire des fichiers journaux :",
@@ -527,7 +529,7 @@
"admin.logs.bannerDesc": "Pour rechercher des utilisateurs sur base de leur User ID, allez dans Rapports > Utilisateurs et collez l'ID dans la barre de recherche.",
"admin.logs.reload": "Recharger",
"admin.logs.title": "Journaux du serveur",
- "admin.metrics.enableDescription": "Lorsqu'activé, Mattermost activera la collecte des rapports de performance et de profilage. Veuillez vous référer à la <a href=\"http://docs.mattermost.com/deployment/metrics.html\" target='_blank'>documentation</a> pour en savoir plus sur la configuration du suivi des performances de Mattermost.",
+ "admin.metrics.enableDescription": "Lorsqu'activé, Mattermost activera la collecte des rapports de performance et de profilage. Veuillez vous référer à la <a href=\"http://docs.mattermost.com/deployment/metrics.html\" target='_blank'>documentation</a> pour en savoir davantage sur la configuration du suivi des performances de Mattermost.",
"admin.metrics.enableTitle": "Activer le suivi des performances :",
"admin.metrics.listenAddressDesc": "L'adresse d'écoute du serveur pour publier les mesures de performances.",
"admin.metrics.listenAddressEx": "Ex. : \":8067\"",
@@ -535,7 +537,7 @@
"admin.mfa.bannerDesc": "L'<a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>authentification multi-facteurs (MFA)</a> est disponible pour les comptes se connectant à l'aide de AD/LDAP ou d'une adresse e-mail. Si d'autres méthodes d'authentification sont utilisées, MFA doit être configuré avec le fournisseur d'authentification.",
"admin.mfa.cluster": "Haute",
"admin.mfa.title": "Authentification multi-facteurs",
- "admin.nav.administratorsGuide": "Guide de l'administrateur",
+ "admin.nav.administratorsGuide": "Guide d'administrateur",
"admin.nav.commercialSupport": "Support commercial",
"admin.nav.help": "Aide",
"admin.nav.logout": "Se déconnecter",
@@ -543,17 +545,17 @@
"admin.nav.switch": "Sélection de l'équipe",
"admin.nav.troubleshootingForum": "Forum de dépannage",
"admin.notifications.email": "Adresse e-mail",
- "admin.notifications.push": "notifications Push sur mobile",
+ "admin.notifications.push": "Notifications push sur mobile",
"admin.notifications.title": "Paramètres de notification",
"admin.oauth.gitlab": "GitLab",
"admin.oauth.google": "Google Apps",
"admin.oauth.off": "Ne pas autoriser la connexion à travers un fournisseur OAuth 2.0",
"admin.oauth.office365": "Office 365 (Beta)",
- "admin.oauth.providerDescription": "Si activé, Mattermost peut se comporter comme un fournisseur de service OAuth 2.0 permettant à Mattermost d'autoriser les requêtes d'API provenant des applications tierces. Voir la <a target='_blank' href=\"https://docs.mattermost.com/developer/oauth-2-0-applications.html\">documentation</a> pour en apprendre davantage.",
+ "admin.oauth.providerDescription": "Lorsqu'activé, Mattermost peut se comporter comme un fournisseur de service OAuth 2.0 permettant à Mattermost d'autoriser les requêtes d'API provenant des applications tierces. Voir la <a target='_blank' href=\"https://docs.mattermost.com/developer/oauth-2-0-applications.html\">documentation</a> pour en savoir davantage.",
"admin.oauth.providerTitle": "Activer le fournisseur de service OAuth 2.0 :",
"admin.oauth.select": "Choisissez un fournisseur de service OAuth 2.0 :",
"admin.office365.EnableHtmlDesc": "<ol><li><a target='_blank' href='https://login.microsoftonline.com/'>Connectez-vous</a> à votre compte Microsoft ou Office 365. Veuillez vous assurer que le compte est sur le même <a target='_blank' href='https://msdn.microsoft.com/en-us/library/azure/jj573650.aspx#Anchor_0'>tenant</a> que celui avec lequel vous voulez connecter vos utilisateurs.</li><li>Rendez-vous sur <a target='_blank' href='https://apps.dev.microsoft.com'>https://apps.dev.microsoft.com</a>, cliquez sur <strong>Go to app list</strong> > <strong>Add an app</strong> et utilisez \"Mattermost - votre-nom-d-entreprise\" comme <strong>Application Name</strong>.</li><li>Dans <strong>Application Secrets</strong>, cliquez sur <strong>Generate New Password</strong> et collez-le en-dessous dans le champ <strong>Application Secret Password</strong>.</li><li>Sous <strong>Platforms</strong>, cliquez sur <strong>Add Platform</strong>, choisissez <strong>Web</strong> et saisissez <strong>votre-url-mattermost/signup/office365/complete</strong> (exemple: http://localhost:8065/signup/office365/complete) sous <strong>Redirect URIs</strong>. Décochez aussi <strong>Allow Implicit Flow</strong>.</li><li>Enfin, cliquez sur <strong>Save</strong> et collez l'<strong>Application ID</strong> ci-dessous.</li></ol>",
- "admin.office365.authTitle": "URL d'authentification (auth endpoint) :",
+ "admin.office365.authTitle": "URL d'authentification (auth endpoint) :",
"admin.office365.clientIdDescription": "L'Application/Client ID que vous avez reçu lorsque vous avez enregistré l'application avec Microsoft.",
"admin.office365.clientIdExample": "Ex. : \"adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq\"",
"admin.office365.clientIdTitle": "ID d'application :",
@@ -572,60 +574,67 @@
"admin.password.requirementsDescription": "Lettres obligatoires pour un mot de passe valide.",
"admin.password.symbol": "Au moins un symbole (ex : \"~!@#$%^&*()\")",
"admin.password.uppercase": "Au moins une majuscule",
- "admin.privacy.showEmailDescription": "Si désactivé, cache l'adresse e-mail des membres de tout le monde sauf des administrateurs système.",
+ "admin.privacy.showEmailDescription": "Lorsque désactivé, cache l'adresse e-mail des membres de tout le monde sauf des administrateurs système.",
"admin.privacy.showEmailTitle": "Afficher l'adresse e-mail : ",
- "admin.privacy.showFullNameDescription": "Si désactivé, cache le nom complet des membres de tout le monde sauf des administrateurs système. Le nom d'utilisateur s'affiche alors à la place du nom complet.",
+ "admin.privacy.showFullNameDescription": "Lorsque désactivé, cache le nom complet des membres de tout le monde sauf des administrateurs système. Le nom d'utilisateur s'affiche alors à la place du nom complet.",
"admin.privacy.showFullNameTitle": "Afficher le nom complet : ",
"admin.purge.button": "Purger tous les caches",
"admin.purge.loading": " Chargement…",
- "admin.purge.purgeDescription": "Ceci va purger tous les caches en mémoire pour des éléments tels que les sessions, les comptes, les canaux, etc. Les déploiements qui utilisent la Haute Disponibilité tenteront de purger tous les serveurs du cluster. Purger les caches peut affecter les performances.",
+ "admin.purge.purgeDescription": "Ceci va purger tous les caches en mémoire pour des éléments tels que les sessions, les comptes, les canaux, etc. Les déploiements qui utilisent la haute disponibilité tenteront de purger tous les serveurs du cluster. Purger les caches peut affecter les performances.",
"admin.purge.purgeFail": "Impossible de purger : {error}",
- "admin.rate.enableLimiterDescription": "Si activé, les APIs sont limitées comme spécifié ci-dessous.",
+ "admin.rate.enableLimiterDescription": "Lorsqu'activé, les APIs sont limitées selon les paramètres définis ci-dessous.",
"admin.rate.enableLimiterTitle": "Limiter l'accès aux API : ",
"admin.rate.httpHeaderDescription": "Lorsque rempli, fait varier les limites de fréquence par l'entête HTTP spécifié (par exemple lorsque NGINX est configuré avec \"X-Real-IP\", lorsque AmazonELB est configuré avec \"X-Forwarded-For\")",
"admin.rate.httpHeaderExample": "Ex. : \"X-Real-IP\", \"X-Forwarded-For\"",
- "admin.rate.httpHeaderTitle": "Fait varier les limites de fréquence par l'entête HTTP:",
+ "admin.rate.httpHeaderTitle": "Faire varier les limites de fréquence par l'entête HTTP :",
"admin.rate.maxBurst": "Limite maximale de dépassement :",
"admin.rate.maxBurstDescription": "Nombre maximum de requêtes autorisées à dépasser le seuil limite de requêtes par seconde.",
"admin.rate.maxBurstExample": "Ex. : \"100\"",
- "admin.rate.memoryDescription": "Nombre maximum de sessions utilisateur connectées au système, comme indiqué dans les paramètres \"Adapter la limite de fréquence en fonction de l'adresse distante\" et \"Fait varier les limites de fréquence par l'entête HTTP\" ci-dessous.",
+ "admin.rate.memoryDescription": "Nombre maximum de sessions utilisateur connectées au système, comme indiqué dans les paramètres \"Adapter la limite de fréquence en fonction de l'adresse distante\" et \"Faire varier les limites de fréquence par l'entête HTTP\" ci-dessous.",
"admin.rate.memoryExample": "Ex. : \"10000\"",
"admin.rate.memoryTitle": "Taille du stockage en mémoire :",
- "admin.rate.noteDescription": "Changer les paramètres autres que l'URL de site dans cette section requerra un redémarrage du serveur avant de prendre effet.",
+ "admin.rate.noteDescription": "Changer les paramètres autres que l'URL de site dans cette section requiert un redémarrage du serveur avant de prendre effet.",
"admin.rate.noteTitle": "Remarque :",
"admin.rate.queriesDescription": "Limite l'API à ce nombre de requêtes par seconde.",
"admin.rate.queriesExample": "Ex. : \"10\"",
"admin.rate.queriesTitle": "Nombre maximum de requêtes par seconde :",
- "admin.rate.remoteDescription": "Si activé, l'API est limitée au moyen de l'adresse IP du client.",
+ "admin.rate.remoteDescription": "Lorsqu'activé, l'API est limitée par l'adresse IP du client.",
"admin.rate.remoteTitle": "Adapter la limite de fréquence en fonction de l'adresse distante : ",
"admin.rate.title": "Paramètres des limites de débit",
"admin.recycle.button": "Recycler les connexions à la base de données",
"admin.recycle.loading": " Recyclage...",
- "admin.recycle.recycleDescription": "Les déploiements utilisant plusieurs bases de données peuvent basculer d'une base de donnée principale à une autre sans redémarrer le serveur Mattermost en mettant à jour le fichier \"config.json\" avec la nouvelle configuration désirée, et en utilisant l'option <a href=\"../general/configuration\"><b>Configuration > Recharger le fichier de configuration</b></a> pour charger les nouveaux paramètres pendant que le serveur est en activité. L'administrateur devra donc ensuite utiliser l'option <b>Recycler les connexions à la base de données</b> pour recycler les connexions en se basant sur les nouveaux paramètres.",
+ "admin.recycle.recycleDescription": "Les déploiements utilisant plusieurs bases de données peuvent basculer d'une base de donnée principale à une autre sans redémarrer le serveur Mattermost en définissant le fichier \"config.json\" sur la nouvelle configuration désirée, et en utilisant la fonctionnalité {reloadConfiguration} pour charger les nouveaux paramètres pendant que le serveur est en activité. L'administrateur devra donc ensuite utiliser la fonctionnalité {featureName} pour recycler les connexions aux bases de données en se basant sur les nouveaux paramètres.",
+ "admin.recycle.recycleDescription.featureName": "Recycler les connexions des bases de données",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Configuration > Recharger la configuration à partir du disque",
"admin.recycle.reloadFail": "Echec du recyclage : {error}",
- "admin.regenerate": "Générer de nouveau",
+ "admin.regenerate": "Regénérer",
"admin.reload.button": "Recharger le fichier de configuration",
"admin.reload.loading": " Chargement…",
- "admin.reload.reloadDescription": "Les déploiements utilisant plusieurs bases de données peuvent basculer d'une base de donnée principale à une autre sans redémarrer le serveur Mattermost en mettant à jour le fichier \"config.json\" avec la nouvelle configuration désirée, et en utilisant l'option <b>Recharger le fichier de configuration</b> pour charger les nouveaux paramètres pendant que le serveur est en activité. L'administrateur devra donc ensuite utiliser l'option <a href=\"../advanced/database\"><b>Base de données > Recycler les connexions à la base de données</b></a> pour recycler les connexions en se basant sur les nouveaux paramètres.",
+ "admin.reload.reloadDescription": "Les déploiements utilisant plusieurs bases de données peuvent basculer d'une base de donnée principale à une autre sans redémarrer le serveur Mattermost en définissant le fichier \"config.json\" sur la nouvelle configuration désirée, et en utilisant la fonctionnalité {featureName} pour charger les nouveaux paramètres pendant que le serveur est en activité. L'administrateur devra donc ensuite utiliser la fonctionnalité {recycleDatabaseConnections} pour recycler les connexions aux bases de données en se basant sur les nouveaux paramètres.",
+ "admin.reload.reloadDescription.featureName": "Recharger la configuration à partir du disque",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Bases de données > Recycler les connexions des bases de données",
"admin.reload.reloadFail": "Échec de la connexion : {error}",
+ "admin.requestButton.loading": " Chargement…",
+ "admin.requestButton.requestFailure": "Erreur de test : {error}",
+ "admin.requestButton.requestSuccess": "Test effectué avec succès",
"admin.reset_password.close": "Quitter",
"admin.reset_password.newPassword": "Nouveau mot de passe",
- "admin.reset_password.select": "Sélectionner",
+ "admin.reset_password.select": "Confirmer",
"admin.reset_password.submit": "Veuillez spécifier au moins {chars} caractères.",
"admin.reset_password.titleReset": "Réinitialiser le mot de passe",
"admin.reset_password.titleSwitch": "Basculez le type d'authentification sur le couple l’adresse e-mail / mot de passe",
- "admin.saml.assertionConsumerServiceURLDesc": "Entrez https://<votre-url-mattermost>/login/sso/saml. Veillez à saisir HTTP ou HTTPS dans l'URL suivant votre configuration. Ce champ est aussi connu comme étant l'URL d'Assertion Consumer Service.",
+ "admin.saml.assertionConsumerServiceURLDesc": "Spécifiez https://<votre-url-mattermost>/login/sso/saml. Veillez à saisir HTTP ou HTTPS dans l'URL suivant votre configuration. Ce champ est aussi connu sous le nom Assertion Consumer Service URL.",
"admin.saml.assertionConsumerServiceURLEx": "Ex. : \"https://<your-mattermost-url>/login/sso/saml\"",
"admin.saml.assertionConsumerServiceURLTitle": "URL du service d'identification :",
- "admin.saml.bannerDesc": "Les attributs de l'utilisateur spécifiés dans le serveur SAML, y compris la désactivation ou la suppression d'utilisateurs, sont mis à jour dans Mattermost lorsque l'utilisateur tente de se connecter. Pour en savoir plus, rendez-vous sur : <a href=\"https://docs.mattermost.com/deployment/sso-saml.html\">https://docs.mattermost.com/deployment/sso-saml.html</a>",
+ "admin.saml.bannerDesc": "Les attributs de l'utilisateur spécifiés dans le serveur SAML, y compris la désactivation ou la suppression d'utilisateurs, sont mis à jour dans Mattermost lorsque l'utilisateur tente de se connecter. Pour en savoir davantage, rendez-vous sur : <a href=\"https://docs.mattermost.com/deployment/sso-saml.html\">https://docs.mattermost.com/deployment/sso-saml.html</a>",
"admin.saml.emailAttrDesc": "Attribut du SAML pour le champ \"adresse e-mail\" dans Mattermost.",
"admin.saml.emailAttrEx": "Ex. : \"Email\" ou \"EmailPrincipal\"",
"admin.saml.emailAttrTitle": "Attribut \"adresse e-mail\" :",
- "admin.saml.enableDescription": "Si activé, Mattermost autorise la connexion en utilisant SAML. Consultez la <a href='http://docs.mattermost.com/deployment/sso-saml.html' target='_blank'>documentation</a> pour en apprendre davantage sur la configuration de SAML pour Mattermost.",
+ "admin.saml.enableDescription": "Lorsqu'activé, Mattermost autorise la connexion en utilisant SAML. Consultez la <a href='http://docs.mattermost.com/deployment/sso-saml.html' target='_blank'>documentation</a> pour en savoir davantage sur la configuration de SAML pour Mattermost.",
"admin.saml.enableTitle": "Activer la connexion avec SAML :",
"admin.saml.encryptDescription": "Lorsque désactivé, Mattermost ne déchiffrera pas les Assertions SAML chiffrées avec votre clé publique provenant du certificat de votre fournisseur de services. Ceci n'est pas recommandé pour les environnements de production. Option réservée à des fins de test uniquement.",
"admin.saml.encryptTitle": "Activer le chiffrement :",
- "admin.saml.firstnameAttrDesc": "(Optionnel) Attribut du serveur LDAP utilisé pour le champ \"surnom\" des utilisateurs dans Mattermost.",
+ "admin.saml.firstnameAttrDesc": "(Optionnel) Attribut de SAML Assertion utilisé pour remplir les prénoms des utilisateurs de Mattermost.",
"admin.saml.firstnameAttrEx": "Ex. : \"Prénom\"",
"admin.saml.firstnameAttrTitle": "Attribut prénom :",
"admin.saml.idpCertificateFileDesc": "Le certificat public fourni par votre serveur d'authentification.",
@@ -646,7 +655,7 @@
"admin.saml.loginButtonTextDesc": "(Facultatif) Le texte qui apparait sur le bouton de \"se connecter\" de la page de connection. Par défaut, \"Avec SAML\".",
"admin.saml.loginButtonTextEx": "Ex. : \"Avec OKTA\"",
"admin.saml.loginButtonTextTitle": "Texte du bouton de connexion :",
- "admin.saml.nicknameAttrDesc": "(Optionnel) Attribut du serveur LDAP utilisé pour le champ \"surnom\" des utilisateurs dans Mattermost.",
+ "admin.saml.nicknameAttrDesc": "(Optionnel) Attribut de SAML Assertion utilisé pour remplir les surnoms des utilisateurs de Mattermost.",
"admin.saml.nicknameAttrEx": "Ex. : \"Surnom\"",
"admin.saml.nicknameAttrTitle": "Attribut \"surnom\" : ",
"admin.saml.positionAttrDesc": "(Optionnel) L'attribut SAML qui sera utilisé pour le champ \"rôle\" des utilisateurs dans Mattermost.",
@@ -680,30 +689,32 @@
"admin.security.public_links": "Liens publics",
"admin.security.requireEmailVerification.disabled": "La vérification par e-mail ne peut être activée lorsque l'envoi d'e-mails est désactivé.",
"admin.security.session": "Sessions",
- "admin.security.signup": "S'inscrire",
+ "admin.security.signup": "Inscription",
"admin.select_team.close": "Quitter",
"admin.select_team.select": "Sélectionner",
"admin.select_team.selectTeam": "Choisir une équipe",
"admin.service.attemptDescription": "Nombre de tentatives de connexion autorisées avant que l'utilisateur ne soit bloqué et qu'une réinitialisation du mot de passe par e-mail ne soit obligatoire.",
"admin.service.attemptExample": "Ex. : \"10\"",
"admin.service.attemptTitle": "Nombre maximum de tentatives de connexion :",
- "admin.service.cmdsDesc": "Si activé, les commandes slash personnalisées seront autorisées. Consultez la <a href='http://docs.mattermost.com/developer/slash-commands.html' target='_blank'>documentation</a> pour en savoir plus.",
+ "admin.service.cmdsDesc": "Lorsqu'activé, les commandes slash personnalisées seront autorisées. Consultez la <a href='http://docs.mattermost.com/developer/slash-commands.html' target='_blank'>documentation</a> pour en savoir davantage.",
"admin.service.cmdsTitle": "Activer les commandes slash : ",
- "admin.service.corsDescription": "Autoriser les requête HTTP cross-origin depuis des domaines spécifiques (séparés par des espaces). Utilisez \"*\" pour autoriser les CORS pour n'importe quel domaine (pas recommandé) ou laissez vide pour les désactiver.",
+ "admin.service.corsDescription": "Autoriser les requêtes HTTP cross-origin depuis un domaine spécifique. Utilisez \"*\" pour autoriser les CORS de n'importe quel domaine ou laissez vide pour désactiver.",
"admin.service.corsEx": "http://exemple.com ou https://exemple.com",
"admin.service.corsTitle": "Autoriser les requêtes cross-origin depuis :",
- "admin.service.developerDesc": "Si activé, les erreurs Javascript sont affichées dans une barre violette en haut de l'interface utilisateur. Ceci n'est pas recommandé dans un environnement de production.",
+ "admin.service.developerDesc": "Lorsqu'activé, les erreurs Javascript sont affichées dans une barre violette en haut de l'interface utilisateur. Ceci n'est pas recommandé dans un environnement de production.",
"admin.service.developerTitle": "Activer le mode développeur : ",
+ "admin.service.enableAPIv3": "Autoriser l'utilisation des nœuds de la version 3 de l'API :",
+ "admin.service.enableAPIv3Description": "Définir sur non désactivera tous les noeuds de la version de 3 de l'API REST. Les intégrations qui s'appuient sur les API v3 échoueront et pourront alors être identifiés pour être migrées vers l'API v4. L'API v3 est obsolète et sera supprimée dans une prochaine version de Mattermost. Rendez-vous sur <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> pour plus de détails.",
"admin.service.enforceMfaDesc": "Lorsqu'activé, l'<a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>authentification multi-facteurs (MFA)</a> est requise pour la connexion. Les nouveaux utilisateurs devront configurer MFA lors de leur inscription. Les utilisateurs connectés sans MFA configuré seront redirigés vers la page de configuration MFA jusqu'à ce que la configuration soit terminée.<br/><br/>Si votre système dispose d'utilisateurs se connectant autrement que par AD/LDAP ou une adresse e-mail, MFA devra être appliqué avec un fournisseur d'authentification extérieur à Mattermost.",
"admin.service.enforceMfaTitle": "Imposer l'authentification multi-facteurs :",
"admin.service.forward80To443": "Rediriger le port 80 sur le port 443 :",
"admin.service.forward80To443Description": "Faire suivre le trafic non chiffré du port 80 vers le port sécurisé 443",
- "admin.service.googleDescription": "Définissez cette clé pour activer l'affichage des titres pour les aperçus de vidéos YouTube. Sans la clé, les aperçus YouTube seront créés à partir des liens apparaissant des messages ou commentaires mais ils ne montreront pas le titre de la vidéo. Regardez un <a href=\"https://www.youtube.com/watch?v=Im69kzhpR3I\" target=\"_blank\">tutoriel Google Developers</a> pour des instructions sur comment obtenir une clé.",
+ "admin.service.googleDescription": "Définissez cette clé pour activer l'affichage des titres pour les aperçus de vidéos YouTube. Sans la clé, les aperçus YouTube seront créés à partir des liens apparaissant des messages ou commentaires mais ils ne montreront pas le titre de la vidéo. Regardez un <a href=\"https://www.youtube.com/watch?v=Im69kzhpR3I\" target=\"_blank\">tutoriel de Google Developers</a> pour obtenir les instructions sur comment obtenir une clé.",
"admin.service.googleExample": "Ex. : \"7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QV\"",
"admin.service.googleTitle": "Clé API Google :",
"admin.service.iconDescription": "Lorsqu'activé, les webhooks, commandes slash et autres intégrations, telles que <a href=\"https://docs.mattermost.com/integrations/zapier.html\" target=\"_blank\">Zapier</a>, seront autorisées à changer la photo de profil à partir duquel elles émettent des messages. Note : Si les intégrations sont également autorisées à redéfinir les noms d'utilisateur, des utilisateurs pourraient effectuer des attaques de phishing en se faisant passer pour d'autres utilisateurs.",
- "admin.service.iconTitle": "Activer les intégrations à redéfinir les images de profil utilisateur :",
- "admin.service.insecureTlsDesc": "Si activé, toute requête sortante HTTPS acceptera les certificats non-vérifiés et auto-signés. Par exemple, les requêtes webhook sortantes avec un certificat TLS auto-signé, vers n'importe quel domaine, seront autorisées. Attention, cela rend votre serveur vulnérable aux attaques de type \"man in the middle\".",
+ "admin.service.iconTitle": "Permettre aux intégrations de redéfinir les images de profil utilisateur :",
+ "admin.service.insecureTlsDesc": "Lorsqu'activé, toute requête sortante HTTPS acceptera les certificats non-vérifiés et auto-signés. Par exemple, les requêtes webhook sortantes avec un certificat TLS auto-signé, vers n'importe quel domaine, seront autorisées. Attention, cela rend votre serveur vulnérable aux attaques de type \"man in the middle\".",
"admin.service.insecureTlsTitle": "Autoriser les connexions sortantes non-sécurisées : ",
"admin.service.integrationAdmin": "Restreindre la gestion des intégrations aux administrateurs :",
"admin.service.integrationAdminDesc": "Lorsqu'activé, les webhooks et commandes slash peuvent seulement être créées, éditées et vues par les administrateurs systèmes et d'équipe, et par les applications OAuth 2.0 des administrateurs systèmes. Les intégrations sont disponibles à tous les utilisateurs après qu'elles ont été créées par l'administrateur.",
@@ -712,40 +723,40 @@
"admin.service.listenAddress": "Adresse IP du serveur :",
"admin.service.listenDescription": "L'adresse et le port sur laquelle se lier et écouter. Spécifier \":8065\" se liera sur toutes les interfaces réseau. Spécifier \"127.0.0.1:8065\" se liera uniquement sur l'interface réseau disposant de cette adresse IP. Si vous choisissez un port de bas niveau (également appelés \"ports systèmes\" ou \"ports bien connus\", dans l'intervalle 0-1023), vous devez disposer des permissions pour vous lier sur ces ports. Sous Linux, vous pouvez utiliser : \"sudo setcap cap_net_bind_service=+ep ./bin/platform\" pour autoriser Mattermost à se lier sur ces ports bien connus.",
"admin.service.listenExample": "Ex. : \":8065\"",
- "admin.service.mfaDesc": "Si activé, les utilisateurs se connectant à l'aide de AD/LDAP ou d'une adresse e-mail peuvent ajouter l'authentification multi-facteurs (MFA) à leur compte en utilisant Google Authenticator.",
+ "admin.service.mfaDesc": "Lorsqu'activé, les utilisateurs se connectant à l'aide de AD/LDAP ou d'une adresse e-mail peuvent ajouter l'authentification multi-facteurs (MFA) à leur compte en utilisant Google Authenticator.",
"admin.service.mfaTitle": "Activité l’authentification multi-facteurs :",
- "admin.service.mobileSessionDays": "Durée de la session sur les applis mobiles (en jours) :",
+ "admin.service.mobileSessionDays": "Durée de la session des applications mobiles (en jours) :",
"admin.service.mobileSessionDaysDesc": "Le nombre de jours entre la dernière fois qu'un utilisateur a spécifié ses identifiants et l'expiration de la session de l'utilisateur. Après le changement de ce paramètre, la nouvelle durée de session prendra effet la prochaine fois que les utilisateurs saisiront leurs identifiants.",
- "admin.service.outWebhooksDesc": "Si activé, les webhooks sortants seront autorisés. Consultez la <a href='http://docs.mattermost.com/developer/webhooks-outgoing.html' target='_blank'>documentation</a> pour en apprendre davantage.",
+ "admin.service.outWebhooksDesc": "Lorsqu'activé, les webhooks sortants seront autorisés. Consultez la <a href='http://docs.mattermost.com/developer/webhooks-outgoing.html' target='_blank'>documentation</a> pour en savoir davantage.",
"admin.service.outWebhooksTitle": "Activer les webhooks sortants : ",
"admin.service.overrideDescription": "Lorsqu'activé, les webhooks, commandes slash et autres intégrations, telles que <a href=\"https://docs.mattermost.com/integrations/zapier.html\" target=\"_blank\">Zapier</a>, seront autorisées à changer le nom d'utilisateur à partir duquel elles émettent des messages. Note : Si les intégrations sont également autorisées à redéfinir les photos de profil utilisateur, des utilisateurs pourraient effectuer des attaques de phishing en se faisant passer pour d'autres utilisateurs.",
- "admin.service.overrideTitle": "Permettre des intégrations pour remplacer les noms d'utilisateur:",
+ "admin.service.overrideTitle": "Permettre aux intégrations de remplacer les noms d'utilisateur :",
"admin.service.readTimeout": "Délai d'attente de lecture :",
- "admin.service.readTimeoutDescription": "Temps maximum autorisé à partir du moment à partir duquel la connexion est acceptée jusqu'au moment où le corps de la requête est entièrement lu.",
- "admin.service.securityDesc": "Si activé, les administrateurs système sont notifiés par e-mail si une alerte de sécurité a été annoncée dans les dernières 12 heures. L'envoi d'e-mails doit être activé.",
+ "admin.service.readTimeoutDescription": "Délai d'attente maximum autorisé à partir du moment où la connexion est acceptée jusqu'au moment où le corps de la requête est entièrement lu.",
+ "admin.service.securityDesc": "Lorsqu'activé, les administrateurs système sont notifiés par e-mail si une alerte de sécurité a été annoncée dans les dernières 12 heures. L'envoi d'e-mails doit être activé.",
"admin.service.securityTitle": "Activer les alertes de sécurité : ",
"admin.service.sessionCache": "Cache de session en minutes :",
- "admin.service.sessionCacheDesc": "Durée pendant laquelle une session est gardée en mémoire.",
+ "admin.service.sessionCacheDesc": "Nombre de minutes qu'une une session est gardée en cache.",
"admin.service.sessionDaysEx": "Ex. : \"30\"",
"admin.service.siteURL": "URL de site :",
"admin.service.siteURLDescription": "L'URL que les utilisateurs vont utiliser pour accéder à Mattermost. Les ports standards comme 80 ou 443 peuvent être omis, mais les ports non standards sont requis. Par exemple : http://mattermost.example.com:8065. Ce paramètre est requis.",
"admin.service.siteURLExample": "Ex. : \"https://mattermost.example.com:1234\"",
"admin.service.ssoSessionDays": "Durée de la session d'authentification unique (SSO) (en jours) :",
- "admin.service.ssoSessionDaysDesc": "Le nombre de jours entre la dernière fois qu'un utilisateur a spécifié ses identifiants et l'expiration de la session de l'utilisateur. Si la méthode d'authentification est SAML ou GitLab, l'utilisateur pourra être automatiquement connecté à nouveau dans Mattermost s'ils sont déjà connectés dans SAML ou GitLab. Après le changement de ce paramètre, il prendra effet la prochaine fois que les utilisateurs saisiront leurs identifiants.",
- "admin.service.testingDescription": "Lorsqu'activé, la commande slash /test pourra charger des comptes de tests, des données et de textes formatés. Changer ce paramètre nécessite un redémarrage le serveur pour prendre effet.",
+ "admin.service.ssoSessionDaysDesc": "Le nombre de jours entre la dernière fois qu'un utilisateur a spécifié ses identifiants et l'expiration de la session de l'utilisateur. Si la méthode d'authentification est SAML ou GitLab, l'utilisateur pourra être automatiquement reconnecté à Mattermost pour autant qu'il se soit déjà connecté en utilisant SAML ou GitLab. Le changement de ce paramètre ne sera effectif qu'à la prochaine connexion de l'utilisateur.",
+ "admin.service.testingDescription": "Lorsqu'activé, la commande slash /test pourra charger des comptes de tests, des données et des textes formatés. Changer ce paramètre nécessite un redémarrage le serveur pour prendre effet.",
"admin.service.testingTitle": "Activer les commandes de test : ",
"admin.service.tlsCertFile": "Fichier du certificat TLS :",
"admin.service.tlsCertFileDescription": "Le fichier de certificat à utiliser.",
"admin.service.tlsKeyFile": "Fichier de la clé TLS :",
"admin.service.tlsKeyFileDescription": "Le fichier contenant la clé privée à utiliser.",
"admin.service.useLetsEncrypt": "Utiliser Let's Encrypt :",
- "admin.service.useLetsEncryptDescription": "Activer la récupération automatique des certificats de Let's Encrypt. Le certificat sera récupéré lorsqu'un client tentera de se connecter à partir d'un nouveau domaine. Ceci fonctionne également avec des domaines multiples.",
- "admin.service.webSessionDays": "Longueur de la session LDAP et e-mail (jours) :",
+ "admin.service.useLetsEncryptDescription": "Active la récupération automatique des certificats de Let's Encrypt. Le certificat sera récupéré lorsqu'un client tentera de se connecter à partir d'un nouveau domaine. Ceci fonctionne également avec des domaines multiples.",
+ "admin.service.webSessionDays": "Durée de la session AD/LDAP et e-mail (en jours) :",
"admin.service.webSessionDaysDesc": "Le nombre de jours entre la dernière fois qu'un utilisateur a entré ses identifiants et l'expiration de la session de l'utilisateur. Après le changement de ce paramètre, la nouvelle durée de session prendra effet la prochaine fois que les utilisateurs entreront leurs identifiants.",
- "admin.service.webhooksDescription": "Si activé, les webhooks entrants seront autorisés. Pour aider à combattre les attaques d'hameçonnage, tous les messages de webhooks seront étiquetés par un label BOT. Consultez la <a href='http://docs.mattermost.com/developer/webhooks-incoming.html' target='_blank'>documentation</a> pour en apprendre davantage.",
+ "admin.service.webhooksDescription": "Lorsqu'activé, les webhooks entrants seront autorisés. Pour aider à combattre les attaques d'hameçonnage, tous les messages de webhooks seront étiquetés par un label BOT. Consultez la <a href='http://docs.mattermost.com/developer/webhooks-incoming.html' target='_blank'>documentation</a> pour en savoir davantage.",
"admin.service.webhooksTitle": "Activer les webhooks entrants : ",
"admin.service.writeTimeout": "Délai d'attente d'écriture :",
- "admin.service.writeTimeoutDescription": "Si vous utilisez HTTP (non sécurisé), il s'agit du temps maximum autorisé à partir du moment où les entêtes sont lus jusqu'au moment où la réponse est écrite. Si vous utilisez le protocole HTTPS, c'est le temps total à partir du moment où la connexion est acceptée jusqu'au moment où la réponse est écrite.",
+ "admin.service.writeTimeoutDescription": "Si vous utilisez HTTP (non sécurisé), il s'agit du délai d'attente maximum autorisé à partir du moment où les entêtes sont lus jusqu'au moment où la réponse est écrite. Si vous utilisez le protocole HTTPS, c'est le temps total à partir du moment où la connexion est acceptée jusqu'au moment où la réponse est écrite.",
"admin.sidebar.advanced": "Options avancées",
"admin.sidebar.audits": "Conformité et vérification",
"admin.sidebar.authentication": "authentification",
@@ -754,14 +765,14 @@
"admin.sidebar.configuration": "Configuration",
"admin.sidebar.connections": "Connexions",
"admin.sidebar.customBrand": "Image de marque personnalisée",
- "admin.sidebar.customEmoji": "Emoji personnalisés",
"admin.sidebar.customIntegrations": "Intégrations personnalisées",
"admin.sidebar.customization": "Personnalisation",
"admin.sidebar.database": "Base de données",
"admin.sidebar.developer": "Développeur",
- "admin.sidebar.email": "Adresse e-mail",
+ "admin.sidebar.email": "E-mail",
+ "admin.sidebar.emoji": "Emoticônes",
"admin.sidebar.external": "Services externes",
- "admin.sidebar.files": "Ficher",
+ "admin.sidebar.files": "Fichiers",
"admin.sidebar.general": "Général",
"admin.sidebar.gitlab": "GitLab",
"admin.sidebar.integrations": "Intégrations",
@@ -769,7 +780,7 @@
"admin.sidebar.legalAndSupport": "Mentions légales",
"admin.sidebar.license": "Édition et licence",
"admin.sidebar.linkPreviews": "Aperçu des liens",
- "admin.sidebar.localization": "Localisation",
+ "admin.sidebar.localization": "Paramètres linguistiques",
"admin.sidebar.logging": "Enregistrement",
"admin.sidebar.login": "S’identifier",
"admin.sidebar.logs": "Journaux",
@@ -783,12 +794,12 @@
"admin.sidebar.policy": "Règles",
"admin.sidebar.privacy": "Confidentialité",
"admin.sidebar.publicLinks": "Liens publics",
- "admin.sidebar.push": "notifications Push",
+ "admin.sidebar.push": "Push mobile",
"admin.sidebar.rateLimiting": "Limitation de débit",
"admin.sidebar.reports": "RAPPORTS",
"admin.sidebar.saml": "SAML",
"admin.sidebar.security": "Sécurité",
- "admin.sidebar.sessions": "sessions",
+ "admin.sidebar.sessions": "Sessions",
"admin.sidebar.settings": "REGLAGES",
"admin.sidebar.signUp": "S’inscrire",
"admin.sidebar.sign_up": "S’inscrire",
@@ -796,7 +807,7 @@
"admin.sidebar.storage": "Stockage",
"admin.sidebar.support": "Juridique et de soutien",
"admin.sidebar.users": "Utilisateurs",
- "admin.sidebar.usersAndTeams": "Utilisateur et équipes",
+ "admin.sidebar.usersAndTeams": "Utilisateurs et équipes",
"admin.sidebar.view_statistics": "Statistiques du serveur",
"admin.sidebar.webrtc": "WebRTC (Beta)",
"admin.sidebarHeader.systemConsole": "Console système",
@@ -805,98 +816,98 @@
"admin.sql.keyDescription": "Clé de salage de 32 caractères utilisée pour chiffrer et déchiffrer les champs en base de données.",
"admin.sql.keyExample": "Ex. : \"gxHVDcKUyP2y1eiyW8S8na1UYQAfq6J6\"",
"admin.sql.keyTitle": "Clé de chiffrement des données au repos :",
- "admin.sql.maxConnectionsDescription": "Nombre maximum de connexion inactives à la base de données gardées ouvertes.",
+ "admin.sql.maxConnectionsDescription": "Nombre maximum de connexions inactives à la base de données gardées ouvertes.",
"admin.sql.maxConnectionsExample": "Ex. : \"10\"",
"admin.sql.maxConnectionsTitle": "Nombre maximum de connexions inactives :",
"admin.sql.maxOpenDescription": "Nombre maximum de connexions ouvertes à la base de données.",
"admin.sql.maxOpenExample": "Ex. : \"10\"",
- "admin.sql.maxOpenTitle": "Nombre max. de connexions ouvertes :",
- "admin.sql.noteDescription": "Modifier ces paramètres nécessite de redémarrer le serveur.",
+ "admin.sql.maxOpenTitle": "Nombre maximum de connexions ouvertes :",
+ "admin.sql.noteDescription": "Modifier ces paramètres nécessite le redémarrage du serveur pour prendre effet.",
"admin.sql.noteTitle": "Remarque :",
- "admin.sql.queryTimeoutDescription": "Le nombre de secondes à attendre une réponse de la base de données après avoir ouvert la connexion et avoir envoyé la requête. Les erreurs que vous voyez dans l'interface graphique ou dans les fichiers journaux du résultat de ce délai d'attente peuvent varier selon le type de quête. Ce paramètre n'a pas effet sur les bases de données PostgreSQL.",
+ "admin.sql.queryTimeoutDescription": "Le nombre de secondes à attendre une réponse de la base de données après avoir ouvert la connexion et avoir envoyé la requête. Les erreurs que vous pouvez voir dans l'interface graphique ou dans les fichiers journaux à la suite du dépassement du délai d'attente peuvent varier selon le type de quête.",
"admin.sql.queryTimeoutExample": "Ex. : \"30\"",
"admin.sql.queryTimeoutTitle": "Délai d'attente de la requête :",
"admin.sql.replicas": "Replicas de la base de données :",
- "admin.sql.traceDescription": "(Mode développeur) Si activé, toutes les commandes SQL sont enregistrées dans le journal.",
+ "admin.sql.traceDescription": "(Mode développeur) Lorsqu'activé, toutes les commandes SQL sont enregistrées dans le journal.",
"admin.sql.traceTitle": "Tracer : ",
"admin.sql.warning": "Attention : Ré-générer cette clé de salage peut provoquer des valeurs vides dans certaines colonnes de la base de données.",
- "admin.support.aboutDesc": "L'URL du lien A propos sur les pages de connexion et d'enregistrement de Mattermost. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
- "admin.support.aboutTitle": "Lien \"À propos\" :",
- "admin.support.emailHelp": "Adresse e-mail qui apparaît sur les notifications envoyées par e-mail mais également au cours du tutoriel pour permettre aux utilisateurs de poser des questions.",
+ "admin.support.aboutDesc": "L'URL vers la page À propos apparaissant sur les pages de connexion et d'enregistrement de Mattermost. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
+ "admin.support.aboutTitle": "Lien vers la page À propos :",
+ "admin.support.emailHelp": "Adresse e-mail apparaissant sur les e-mails de notification mais également au cours du tutoriel pour permettre aux utilisateurs de poser des questions.",
"admin.support.emailTitle": "Adresse e-mail de support :",
- "admin.support.helpDesc": "L'URL du lien d'Aide sur les pages de connexion et d'enregistrement ainsi que sur le menu principal de Mattermost. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
- "admin.support.helpTitle": "Lien d'aide :",
+ "admin.support.helpDesc": "L'URL vers la page d'aide sur les pages de connexion et d'enregistrement ainsi que sur le menu principal de Mattermost. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
+ "admin.support.helpTitle": "Lien vers la page d'aide :",
"admin.support.noteDescription": "Si vous faites un lien vers un site externe, les URLs doivent commencer par http:// ou https://.",
"admin.support.noteTitle": "Remarque :",
- "admin.support.privacyDesc": "L'URL vers la politique de confidentialité sur les pages de connexion et d'enregistrement. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
- "admin.support.privacyTitle": "Lien vers la politique de confidentialité :",
- "admin.support.problemDesc": "L'URL vers la page de signalement de problèmes dans le menu principal. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
- "admin.support.problemTitle": "Lien \"Signaler un problème\" :",
- "admin.support.termsDesc": "Lien vers les conditions sous lesquelles les utilisateurs utiliseront votre service. Par défaut, cela inclut les \"Conditions d'Utilisation Mattermost (Utilisateurs Finaux)\" expliquant le termes selon lesquels l'application Mattermost est proposée aux utilisateurs finaux. Si vous changez le lien par défaut pour ajouter vos propres conditions d'utilisation du service que vous proposez, elles devront inclure un lien vers les conditions par défaut pour que les utilisateurs finaux aient connaissance des Conditions d'Utilisation Mattermost (Utilisateurs Finaux) pour l'application Mattermost.",
- "admin.support.termsTitle": "Lien \"Conditions d'utilisation\" :",
+ "admin.support.privacyDesc": "L'URL vers la page de politique de confidentialité apparaissant sur les pages de connexion et d'enregistrement. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
+ "admin.support.privacyTitle": "Lien vers la page de politique de confidentialité :",
+ "admin.support.problemDesc": "L'URL vers la page de signalement de problèmes apparaissant dans le menu principal. Si ce champ est laissé vide, le lien sera masqué pour les utilisateurs.",
+ "admin.support.problemTitle": "Lien vers la page de signalement de problèmes :",
+ "admin.support.termsDesc": "Lien vers la page des conditions sous lesquelles les utilisateurs utiliseront votre service. Par défaut, cela inclut les \"Conditions d'Utilisation Mattermost (Utilisateurs Finaux)\" expliquant les termes selon lesquels l'application Mattermost est proposée aux utilisateurs finaux. Si vous changez le lien par défaut pour ajouter vos propres conditions d'utilisation du service que vous proposez, elles devront inclure un lien vers les conditions par défaut pour que les utilisateurs finaux aient connaissance des Conditions d'Utilisation Mattermost (Utilisateurs Finaux) pour l'application Mattermost.",
+ "admin.support.termsTitle": "Lien vers la page des conditions d'utilisation :",
"admin.system_analytics.activeUsers": "Utilisateurs actifs avec des messages",
"admin.system_analytics.title": "le Système",
"admin.system_analytics.totalPosts": "Nombre total de messages",
"admin.system_users.allUsers": "Tous les utilisateurs",
"admin.system_users.noTeams": "Aucune équipe",
- "admin.system_users.title": "{siteName} Utilisateurs",
+ "admin.system_users.title": "Utilisateurs de {siteName}",
"admin.team.brandDesc": "Active la personnalisation de l'interface de façon à spécifier ci-dessous une image et un texte de support, tous deux apparaissant sur la page de connexion .",
"admin.team.brandDescriptionExample": "Toute votre communication d'équipe en un seul endroit, consultable et accessible de partout",
"admin.team.brandDescriptionHelp": "Description du service affiché dans les écrans de connexion et dans l'interface utilisateur. Lorsque non défini, \"Toute votre communication d'équipe en un seul endroit, consultable et accessible de partout\" est affiché.",
- "admin.team.brandDescriptionTitle": "Description du site :",
- "admin.team.brandImageTitle": "Nouvelle image personnalisée :",
+ "admin.team.brandDescriptionTitle": "Description du site :",
+ "admin.team.brandImageTitle": "Nouvelle image personnalisée :",
"admin.team.brandTextDescription": "Le texte apparaissant en-dessous de votre image personnalisée sur l'écran de connexion. Supporte le formatage de texte Markdown. 500 caractères maximum autorisés.",
"admin.team.brandTextTitle": "Nouveau texte personnalisé",
- "admin.team.brandTitle": "activer une image personnalisée : ",
- "admin.team.chooseImage": "choisit une nouvelle image",
- "admin.team.dirDesc": "Si activé, les équipes configurées pour apparaitre dans l'annuaire des équipes apparaitront sur la page d'accueil à la place de la création d'une nouvelle équipe.",
- "admin.team.dirTitle": "Activé l'annuaire des équipes : ",
+ "admin.team.brandTitle": "activer une image personnalisée : ",
+ "admin.team.chooseImage": "Choisit une nouvelle image",
+ "admin.team.dirDesc": "Lorsqu'activé, les équipes configurées pour apparaître dans l'annuaire des équipes apparaîtront sur la page d'accueil à la place de la création d'une nouvelle équipe.",
+ "admin.team.dirTitle": "Active l'annuaire des équipes : ",
"admin.team.maxChannelsDescription": "Nombre maximum de canaux par équipe, incluant les canaux actifs et supprimés.",
"admin.team.maxChannelsExample": "Ex. : \"100\"",
- "admin.team.maxChannelsTitle": "Nombre maximum de canaux par équipe :",
- "admin.team.maxNotificationsPerChannelDescription": "Nombre utilisateurs maximum au delà duquel les messages comprenant des mentions @all, @here, et @channel n'engendreront plus l'envoi de notifications à cause des performances.",
+ "admin.team.maxChannelsTitle": "Nombre maximum de canaux par équipe :",
+ "admin.team.maxNotificationsPerChannelDescription": "Nombre utilisateurs maximum au-delà duquel les messages comprenant des mentions @all, @here, et @channel n'engendreront plus l'envoi de notifications à cause des performances.",
"admin.team.maxNotificationsPerChannelExample": "Ex. : \"1000\"",
- "admin.team.maxNotificationsPerChannelTitle": "Nombre maximum de notifications par canal :",
+ "admin.team.maxNotificationsPerChannelTitle": "Nombre maximum de notifications par canal :",
"admin.team.maxUsersDescription": "Nombre maximum d'utilisateurs par équipe, actifs et inactifs.",
"admin.team.maxUsersExample": "Ex. : \"25\"",
- "admin.team.maxUsersTitle": "Nombre max. d'utilisateurs par équipe :",
+ "admin.team.maxUsersTitle": "Nombre max. d'utilisateurs par équipe :",
"admin.team.noBrandImage": "Pas de nouvelle image a télécharger",
- "admin.team.openServerDescription": "Si activé, tout le monde peut s’enregistrer pour un compte d'utilisateur sur ce serveur sans qu'il soit nécessaire d'être invité.",
- "admin.team.openServerTitle": "Activer Open Server : ",
+ "admin.team.openServerDescription": "Lorsqu'activé, tout le monde peut enregistrer un compte d'utilisateur sur ce serveur sans qu'il soit nécessaire d'être invité.",
+ "admin.team.openServerTitle": "Activer le mode serveur ouvert : ",
"admin.team.restrictDescription": "Les équipes et comptes utilisateur ne peuvent être créés que depuis un domaine spécifique (par ex. \"mattermost.org\") ou une liste de domaines séparés par des virgules (ex \"corp.mattermost.com, mattermost.org\").",
- "admin.team.restrictDirectMessage": "Permettre aux utilisateurs d'ouvrir des canaux de message avec :",
- "admin.team.restrictDirectMessageDesc": "‘Tout utilisateur sur le serveur Mattermost' permet aux utilisateurs d' ouvrir un canal de message direct avec un utilisateur sur le serveur, même si elles ne sont pas sur les équipes. ‘Tout membre de l'équipe’ limite la capacité d'ouvrir des canaux de messages directs aux seuls utilisateurs qui sont dans la même équipe.",
+ "admin.team.restrictDirectMessage": "Permettre aux utilisateurs d'ouvrir des canaux de message privés avec :",
+ "admin.team.restrictDirectMessageDesc": "‘Tout utilisateur sur le serveur Mattermost' permet aux utilisateurs d'ouvrir un canal de message privé avec un utilisateur sur le serveur, même si les utilisateurs ne sont pas dans les mêmes équipes. ‘Tous les membres de l'équipe’ limite la capacité d'ouvrir des canaux de messages privés uniquement aux utilisateurs qui sont dans la même équipe.",
"admin.team.restrictExample": "Ex. : \"corp.mattermost.com, mattermost.org\"",
- "admin.team.restrictNameDesc": "Si activé, vous ne pourrez pas créer une équipe portant un nom réservé (comme www, admin, support, test, channel, etc).",
- "admin.team.restrictNameTitle": "Noms d'équipes restreints : ",
- "admin.team.restrictTitle": "Restreindre la création de compte à ces domaines :",
+ "admin.team.restrictNameDesc": "Lorsqu'activé, vous ne pourrez pas créer une équipe portant un nom réservé (comme www, admin, support, test, channel, etc).",
+ "admin.team.restrictNameTitle": "Noms d'équipes restreints : ",
+ "admin.team.restrictTitle": "Restreindre la création de compte à ces domaines :",
"admin.team.restrict_direct_message_any": "Tout utilisateur sur le serveur Mattermost",
- "admin.team.restrict_direct_message_team": "Tout les membres de l’équipe",
- "admin.team.showFullname": "Show first and last name (default)",
+ "admin.team.restrict_direct_message_team": "Tous les membres de l’équipe",
+ "admin.team.showFullname": "Afficher le prénom et nom (par défaut)",
"admin.team.showNickname": "Afficher le pseudo s'il existe, sinon afficher le prénom d'abord puis le nom",
- "admin.team.showUsername": "Show username",
+ "admin.team.showUsername": "Afficher le nom d'utilisateur",
"admin.team.siteNameDescription": "Nom du service affiché dans les écrans de connexion et l'interface.",
"admin.team.siteNameExample": "Ex. : \"Mattermost\"",
"admin.team.siteNameTitle": "Nom du site :",
- "admin.team.teamCreationDescription": "Si désactivé, seuls les administrateurs système peuvent créer des équipes.",
- "admin.team.teamCreationTitle": "Autoriser la création d'équipes : ",
- "admin.team.teammateNameDisplay": "Affichage des membres de l'équipe",
- "admin.team.teammateNameDisplayDesc": "Choisissez comment afficher les autres utilisateurs dans les messages et les listes de messages privés.",
+ "admin.team.teamCreationDescription": "Lorsque désactivé, seuls les administrateurs système peuvent créer des équipes.",
+ "admin.team.teamCreationTitle": "Autoriser la création d'équipes : ",
+ "admin.team.teammateNameDisplay": "Affichage des noms des membres de l'équipe :",
+ "admin.team.teammateNameDisplayDesc": "Choisissez comment afficher les noms des utilisateurs dans les messages et les listes de messages privés.",
"admin.team.upload": "Télécharger",
"admin.team.uploadDesc": "Personnalisez votre expérience utilisateur en ajoutant une image personnalisée sur votre écran de connexion. Taille d'image recommandée inférieure à 2Mio.",
"admin.team.uploaded": "téléchargement terminé!",
"admin.team.uploading": "téléchargement..",
- "admin.team.userCreationDescription": "Si désactivé, la possibilité de créer des comptes est désactivée. Appuyer sur le bouton de création de compte affichera une erreur lorsqu'il sera utilisé.",
- "admin.team.userCreationTitle": "Autoriser la création de comptes : ",
+ "admin.team.userCreationDescription": "Lorsque désactivé, la possibilité de créer des comptes est désactivée. Le bouton de création de compte affichera une erreur lorsqu'il sera utilisé.",
+ "admin.team.userCreationTitle": "Activer la création de comptes : ",
"admin.team_analytics.activeUsers": "Utilisateurs actifs avec messages",
"admin.team_analytics.totalPosts": "Nombre total de messages",
"admin.true": "oui",
"admin.user_item.authServiceEmail": "<strong>Méthode de connexion :</strong> Adresse e-mail",
"admin.user_item.authServiceNotEmail": "<strong>Méthode de connexion :</strong> {service}",
- "admin.user_item.confirmDemoteDescription": "Si vous vous retirez le rôle d'administrateur et qu'il n'y a aucun autre administrateur désigné, vous devrez en désigner un en utilisant les outils en ligne de commande depuis un terminal sur le serveur.",
+ "admin.user_item.confirmDemoteDescription": "Si vous vous retirez le rôle d'administrateur et qu'il n'y a aucun autre administrateur désigné, vous devrez en désigner un en accédant au serveur Mattermost via un terminal et en exécutant la commande suivante.",
"admin.user_item.confirmDemoteRoleTitle": "Confirmez le retrait de votre rôle d'administrateur",
"admin.user_item.confirmDemotion": "Confirmer le retrait",
- "admin.user_item.confirmDemotionCmd": "Rôle au sein de la plateforme system_admin {username}",
+ "admin.user_item.confirmDemotionCmd": "platform roles system_admin {username}",
"admin.user_item.emailTitle": "<strong>E-mail :</strong> {email}",
"admin.user_item.inactive": "Inactif",
"admin.user_item.makeActive": "Activer",
@@ -918,7 +929,7 @@
"admin.webrtc.gatewayAdminSecretDescription": "Saisissez votre mot de passe pour accéder à l'URL de la passerelle administrateur.",
"admin.webrtc.gatewayAdminSecretExample": "Ex. : \"PVRzWNN1Tg6szn7IQWvhpAvLByScWxdy\"",
"admin.webrtc.gatewayAdminSecretTitle": "Mot de passe administrateur de la passerelle :",
- "admin.webrtc.gatewayAdminUrlDescription": "Entrez https://<mattermost-webrtc-gateway-url>:<port>/admin. Assurez-vous d'utiliser HTTP ou HTTPS dans votre URL en fonction de la configuration de votre serveur. Mattermost WebRTC utilise cette URL pour obtenir des jetons valides pour chaque pair afin d'établir la connexion.",
+ "admin.webrtc.gatewayAdminUrlDescription": "Spécifiez https://<mattermost-webrtc-gateway-url>:<port>/admin. Assurez-vous d'utiliser HTTP ou HTTPS dans votre URL suivant votre configuration. Mattermost WebRTC utilise cette URL pour obtenir des jetons valides pour chaque pair afin d'établir la connexion.",
"admin.webrtc.gatewayAdminUrlExample": "Ex. : \"https://webrtc.mattermost.com:7089/admin\"",
"admin.webrtc.gatewayAdminUrlTitle": "URL de la passerelle administrateur :",
"admin.webrtc.gatewayWebsocketUrlDescription": "Spécifiez wss://<mattermost-webrtc-gateway-url>:<port>. Assurez-vous d'utiliser WS ou WSS dans votre URL en fonction de la configuration de votre serveur. Il s'agit du websocket utilisé pour signaler et établir une communication entre les pairs.",
@@ -945,7 +956,7 @@
"admin.webserverModeUncompressed": "Non compressé",
"admin.webserverModeUncompressedDescription": "Le serveur Mattermost servira les fichiers statiques sans compression.",
"analytics.chart.loading": "Chargement…",
- "analytics.chart.meaningful": "Pas assez de données pour afficher quelque chose de pertinent.",
+ "analytics.chart.meaningful": "Pas assez de données pour afficher une représentation pertinente.",
"analytics.system.activeUsers": "Utilisateurs actifs avec messages",
"analytics.system.channelTypes": "Types de canaux",
"analytics.system.dailyActiveUsers": "Utilisateurs actifs quotidiens",
@@ -974,8 +985,8 @@
"analytics.team.noTeams": "Il n'existe aucune équipe disposant de statistiques.",
"analytics.team.privateGroups": "Canaux privés",
"analytics.team.publicChannels": "Canaux publics",
- "analytics.team.recentActive": "Utilisateurs actifs récemment",
- "analytics.team.recentUsers": "Utilisateurs actifs récemment",
+ "analytics.team.recentActive": "Utilisateurs récemment actifs",
+ "analytics.team.recentUsers": "Utilisateurs récemment actifs",
"analytics.team.title": "Statistiques d'équipe pour {team}",
"analytics.team.totalPosts": "Nombre de messages",
"analytics.team.totalUsers": "Nombre d'utilisateurs",
@@ -1054,7 +1065,7 @@
"backstage_navbar.backToMattermost": "retour à {siteName}",
"backstage_sidebar.emoji": "Emoticônes personnalisées",
"backstage_sidebar.integrations": "Intégrations",
- "backstage_sidebar.integrations.commands": "Commande Slash",
+ "backstage_sidebar.integrations.commands": "Commande slash",
"backstage_sidebar.integrations.incoming_webhooks": "Webhooks entrants",
"backstage_sidebar.integrations.oauthApps": "Applications OAuth 2.0",
"backstage_sidebar.integrations.outgoing_webhooks": "Webhooks sortants",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "L'URL du canal doit comporter au moins 2 caractères alphanumériques minuscules",
"channel_flow.invalidName": "Nom du canal incorrect",
"channel_flow.set_url_title": "Définir l'URL du canal",
+ "channel_header.addChannelHeader": "Ajouter une description au canal",
"channel_header.addMembers": "Ajouter des membres",
"channel_header.addToFavorites": "Ajouter aux favoris",
"channel_header.channelHeader": "Éditer l'entête du canal",
+ "channel_header.channelMembers": "Membres",
"channel_header.delete": "Supprimer le canal",
"channel_header.flagged": "Messages marqués d'un indicateur",
"channel_header.leave": "Quitter le canal",
"channel_header.manageMembers": "Gérer les membres",
"channel_header.notificationPreferences": "Préférences de notification",
+ "channel_header.pinnedPosts": "Messages épinglés",
"channel_header.recentMentions": "Mentions récentes",
"channel_header.removeFromFavorites": "Retirer des favoris",
"channel_header.rename": "Renommer le canal",
@@ -1107,8 +1121,8 @@
"channel_invite.close": "Fermer",
"channel_loader.connection_error": "Oups... Il semble que votre connexion internet ait un problème...",
"channel_loader.posted": "Posté",
- "channel_loader.postedImage": " téléchargé une image",
- "channel_loader.socketError": "Please check connection, Mattermost unreachable. If issue persists, ask administrator to <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">check WebSocket port</a>.",
+ "channel_loader.postedImage": " a envoyé une image",
+ "channel_loader.socketError": "Veuillez vérifier votre connexion, Mattermost est inaccessible. Si le problème persiste, demandez à l'administrateur de <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">vérifier le port du WebSocket</a>.",
"channel_loader.someone": "Quelqu'un",
"channel_loader.something": " a fait quelque chose",
"channel_loader.unknown_error": "Réponse incorrecte de la part du serveur.",
@@ -1160,18 +1174,18 @@
"channel_switch_modal.submit": "Basculer",
"channel_switch_modal.title": "Changer de canal",
"claim.account.noEmail": "Aucune adresse e-mail spécifiée",
- "claim.email_to_ldap.enterLdapPwd": "Saisissez l'identifiant et le mode de passe de votre compte LDAP",
- "claim.email_to_ldap.enterPwd": "Saisissez le mot de passe pour votre compte {site}",
- "claim.email_to_ldap.ldapId": "Identifiant LDAP",
- "claim.email_to_ldap.ldapIdError": "Veuillez saisir votre identifiant LDAP.",
- "claim.email_to_ldap.ldapPasswordError": "Veuillez saisir votre mot de passe LDAP.",
- "claim.email_to_ldap.ldapPwd": "Mot de passe LDAP",
+ "claim.email_to_ldap.enterLdapPwd": "Saisissez l'identifiant et le mode de passe de votre compte AD/LDAP",
+ "claim.email_to_ldap.enterPwd": "Saisissez le mot de passe pour votre compte e-mail {site}",
+ "claim.email_to_ldap.ldapId": "Identifiant AD/LDAP",
+ "claim.email_to_ldap.ldapIdError": "Veuillez saisir votre identifiant AD/LDAP.",
+ "claim.email_to_ldap.ldapPasswordError": "Veuillez saisir votre mot de passe AD/LDAP.",
+ "claim.email_to_ldap.ldapPwd": "Mot de passe AD/LDAP",
"claim.email_to_ldap.pwd": "Mot de passe",
"claim.email_to_ldap.pwdError": "Veuillez saisir votre mot de passe.",
- "claim.email_to_ldap.ssoNote": "Vous devez déjà avoir un compte LDAP valide",
- "claim.email_to_ldap.ssoType": "Une fois votre compte configuré, vous ne pourrez vous connectez qu'avec LDAP",
- "claim.email_to_ldap.switchTo": "Basculer le compte vers LDAP",
- "claim.email_to_ldap.title": "Passer d'une connexion par e-mail/mot de passe à une connexion par LDAP",
+ "claim.email_to_ldap.ssoNote": "Vous devez déjà avoir un compte AD/LDAP valide",
+ "claim.email_to_ldap.ssoType": "Une fois votre compte configuré, vous ne pourrez vous connectez qu'avec AD/LDAP",
+ "claim.email_to_ldap.switchTo": "Basculer le compte vers AD/LDAP",
+ "claim.email_to_ldap.title": "Passer d'une connexion par e-mail/mot de passe à une connexion par AD/LDAP",
"claim.email_to_oauth.enterPwd": "Saisissez le mot de passe pour votre compte {site}",
"claim.email_to_oauth.pwd": "Mot de passe",
"claim.email_to_oauth.pwdError": "Veuillez saisir votre mot de passe.",
@@ -1183,14 +1197,14 @@
"claim.ldap_to_email.email": "Vous devrez utiliser l'adresse e-mail {email} pour vous connecter.",
"claim.ldap_to_email.enterLdapPwd": "Saisissez votre {ldapPassword} pour votre compte {site}",
"claim.ldap_to_email.enterPwd": "Saisissez un nouveau mot de passe pour votre compte",
- "claim.ldap_to_email.ldapPasswordError": "Veuillez saisir votre mot de passe LDAP.",
- "claim.ldap_to_email.ldapPwd": "Mot de passe LDAP",
+ "claim.ldap_to_email.ldapPasswordError": "Veuillez saisir votre mot de passe AD/LDAP.",
+ "claim.ldap_to_email.ldapPwd": "Mot de passe AD/LDAP",
"claim.ldap_to_email.pwd": "Mot de passe",
"claim.ldap_to_email.pwdError": "Veuillez saisir votre mot de passe.",
"claim.ldap_to_email.pwdNotMatch": "Les mots de passe ne correspondent pas.",
"claim.ldap_to_email.ssoType": "Une fois votre compte modifié, vous ne pourrez plus vous connecter qu'avec votre adresse e-mail et votre mot de passe.",
"claim.ldap_to_email.switchTo": "Basculez le type de connexion de votre compte sur le couple adresse e-mail / mot de passe",
- "claim.ldap_to_email.title": "Basculer le type de connexion de votre compte de LDAP vers le couple adresse e-mail / mot de passe",
+ "claim.ldap_to_email.title": "Basculer le type de connexion de votre compte de AD/LDAP vers le couple adresse e-mail / mot de passe",
"claim.oauth_to_email.confirm": "Confirmez le mot de passe",
"claim.oauth_to_email.description": "Une fois votre compte modifié, vous ne pourrez plus vous connecter qu'à l'aide de votre adresse e-mail et votre mot de passe.",
"claim.oauth_to_email.enterNewPwd": "Saisissez le mot de passe pour votre compte {site}",
@@ -1209,17 +1223,17 @@
"create_comment.files": "Téléchargements en cours",
"create_post.comment": "Commentaire",
"create_post.error_message": "Votre message est trop long. Nombre de caractères : {length}/{limit}",
- "create_post.post": "Article",
+ "create_post.post": "Message",
"create_post.shortcutsNotSupported": "Les raccourcis clavier ne sont pas pris en charge sur votre appareil.",
"create_post.tutorialTip": "<h4>Envoyer des messages</h4><p>Veuillez saisir votre message ici et tapez <strong>Entrée</strong> pour l'envoyer.</p><p>Cliquez sur le bouton <strong>pièce-jointe</strong> pour télécharger une image ou un fichier.</p>",
"create_post.write": "Écrire un message...",
"create_team.agreement": "En créant votre compte et en utilisant {siteName}, vous acceptez nos <a href={TermsOfServiceLink}>conditions générales d'utilisation</a> et notre <a href={PrivacyPolicyLink}>politique de confidentialité</a>. Si vous ne les acceptez pas, vous ne pouvez pas utiliser {siteName}.",
"create_team.display_name.charLength": "Le nom doit être de {min} caractères ou plus, jusqu'à un maximum de {max}. Vous pourrez ajouter une description d'équipe plus longue par la suite.",
- "create_team.display_name.nameHelp": "Spécifiez un nom pour votre équipe dans toutes les langues. Le nom de votre équipe sera affiché dans les menus et entêtes.",
+ "create_team.display_name.nameHelp": "Spécifiez un nom pour votre équipe. Ce nom restera identique peu importe la langue utilisée et sera affiché dans les menus et entêtes.",
"create_team.display_name.next": "Suivant",
"create_team.display_name.required": "Ce champ est obligatoire",
"create_team.display_name.teamName": "Nom de l'équipe",
- "create_team.team_url.back": "Retour à l’étape précedente",
+ "create_team.team_url.back": "Retourner à l’étape précédente",
"create_team.team_url.charLength": "Le nom doit comporter entre {min} et {max} caractères",
"create_team.team_url.creatingTeam": "Création de l'équipe...",
"create_team.team_url.finish": "Terminer",
@@ -1229,10 +1243,10 @@
"create_team.team_url.taken": "Cette URL <a href=\"https://docs.mattermost.com/help/getting-started/creating-teams.html#team-url\" target=\"_blank\">commence par un mot réservé</a> ou est indisponible. Veuillez en spécifier une autre.",
"create_team.team_url.teamUrl": "URL d’équipe",
"create_team.team_url.unavailable": "Cette URL est déjà prise ou est indisponible. Veuillez en spécifier une autre.",
- "create_team.team_url.webAddress": "Choisissez l’adresse Web de votre nouvelle équipe :",
- "custom_emoji.empty": "Aucun emoji personnalisé",
- "custom_emoji.header": "Emoji personnalisés",
- "custom_emoji.search": "Rechercher les emoji personnalisés",
+ "create_team.team_url.webAddress": "Spécifiez l’adresse web que vous souhaitez pour votre nouvelle équipe :",
+ "custom_emoji.empty": "Aucune émoticône personnalisée n'a été trouvée",
+ "custom_emoji.header": "Émoticônes personnalisées",
+ "custom_emoji.search": "Rechercher des émoticônes personnalisées",
"deactivate_member_modal.cancel": "Annuler",
"deactivate_member_modal.deactivate": "Désactiver",
"deactivate_member_modal.desc": "Cette action désactive {username}. Cet utilisateur sera déconnecté et n'aura plus accès aux équipes et canaux de ce système. Voulez-vous vraiment désactiver {username} ?",
@@ -1248,7 +1262,7 @@
"delete_post.del": "Supprimer",
"delete_post.post": "Message",
"delete_post.question": "Voulez-vous vraiment supprimer ce {term} ?",
- "delete_post.warning": "This post has {count, number} {count, plural, one {comment} other {comments}} on it.",
+ "delete_post.warning": "Ce message a {count, number} {count, plural, one {commentaire} other {commentaires}}.",
"edit_channel_header.editHeader": "Modifier l'entête du canal...",
"edit_channel_header.previewHeader": "Modifier l'entête",
"edit_channel_header_modal.cancel": "Annuler",
@@ -1282,19 +1296,19 @@
"email_verify.verifiedBody": "<p>Votre adresse e-mail a été vérifiée ! Veuillez cliquer <a href={url}>ici</a> pour vous connecter.</p>",
"email_verify.verifyFailed": "Impossible de vérifier votre adresse e-mail.",
"emoji_list.actions": "Actions",
- "emoji_list.add": "Ajouter un emoji personnalisé",
+ "emoji_list.add": "Ajouter une émoticône personnalisée",
"emoji_list.creator": "Auteur",
"emoji_list.delete": "Supprimer",
"emoji_list.delete.confirm.button": "Supprimer",
"emoji_list.delete.confirm.msg": "Cette action supprime de façon permanente l'émoticône personnalisée. Voulez-vous vraiment la supprimer ?",
"emoji_list.delete.confirm.title": "Supprimer l'émoticône personnalisée",
- "emoji_list.empty": "Aucun emoji personnalisé",
+ "emoji_list.empty": "Aucune émoticône personnalisée n'a été trouvée",
"emoji_list.header": "Emoticônes personnalisées",
- "emoji_list.help": "Les emoji personnalisés sont disponible pour tous les utilisateurs et apparaissent dans le menu d'autocomplétion des emoji. Il faut rafraîchir la page pour que les nouveaux emoji apparaissent.",
- "emoji_list.help2": "Astuce : si vous ajoutez #, ## ou ### comme premier caractère d'une nouvelle ligne contenant un emoji, vous pourrez utiliser un emoji plus grand. Pour essayer, envoyez un message tel que '# :smile:'.",
+ "emoji_list.help": "Les émoticônes personnalisées sont disponibles pour tous les utilisateurs sur le serveur. Tapez ':' dans la barre de saisie de message pour faire apparaître le menu de sélection d'émoticônes. Il se peut que les autres utilisateurs doivent rafraîchir la page pour que les nouvelles émoticônes apparaissent.",
+ "emoji_list.help2": "Astuce : si vous ajoutez #, ## ou ### comme premier caractère d'une nouvelle ligne contenant une émoticône, vous pourrez utiliser une émoticône plus grande. Pour essayer, envoyez un message tel que '# :smile:'.",
"emoji_list.image": "Image",
"emoji_list.name": "Nom",
- "emoji_list.search": "Rechercher les emoji personnalisés",
+ "emoji_list.search": "Rechercher des émoticônes personnalisées",
"emoji_list.somebody": "Un membre d'une autre équipe",
"emoji_picker.activity": "Activité",
"emoji_picker.custom": "Personnalisée",
@@ -1318,7 +1332,7 @@
"error_bar.expired": "La licence entreprise a expiré et certaines fonctionnalités peuvent être désactivées. <a href='{link}' target='_blank'>Veuillez renouveler</a>.",
"error_bar.expiring": "La licence entreprise expire le {date}. <a href='{link}' target='_blank'>Veuillez renouveler</a>.",
"error_bar.past_grace": "La licence entreprise a expiré et certaines fonctionnalités peuvent être désactivées. Veuillez contacter votre administrateur système pour plus d'informations.",
- "error_bar.preview_mode": "Mode découverte : Les notifications par e-mail ne sont pas configurées",
+ "error_bar.preview_mode": "Mode découverte : les e-mails de notification ne sont pas configurés",
"error_bar.site_url": "Veuillez configurer votre {docsLink} dans la {link}.",
"error_bar.site_url.docsLink": "URL de site",
"error_bar.site_url.link": "Console système",
@@ -1329,13 +1343,13 @@
"file_upload.disabled": "Les fichiers de pièces jointes sont désactivés.",
"file_upload.fileAbove": "Le fichier plus grand que {max}Mo ne peut pas être téléchargé : {filename}",
"file_upload.filesAbove": "Les fichiers plus grands que {max}Mo ne peuvent pas être téléchargés : {filenames}",
- "file_upload.limited": "Les téléchargements sont limités à {count} fichiers par message. Envoyez d'autres messages pour ajouter d'autres fichiers.",
+ "file_upload.limited": "Les téléchargements sont limités à {count, number} fichiers par message. Utilisez d'autres messages pour envoyer d'autres fichiers.",
"file_upload.pasted": "Image collée à ",
"filtered_channels_list.search": "Rechercher des canaux",
"filtered_user_list.any_team": "Tous les utilisateurs",
- "filtered_user_list.count": "{count, number} {count, plural, one {utilisateur} other {utilisateurs}}",
- "filtered_user_list.countTotal": "{count, number} {count, plural, one {utilisateur} other {utilisateurs}} d'un total de {total}",
- "filtered_user_list.countTotalPage": "{startCount, number} - {endCount, number} {count, plural, =0 {0 membre} one {membre} other {membres}} d'un total de {total}",
+ "filtered_user_list.count": "{count, number} {count, plural, one {membre} other {membres}}",
+ "filtered_user_list.countTotal": "{count, number} {count, plural, one {membre} other {membres}} d'un total de {total, number}",
+ "filtered_user_list.countTotalPage": "{startCount, number} - {endCount, number} {count, plural, one {membre} other {membres}} d'un total de {total, number}",
"filtered_user_list.member": "Membre",
"filtered_user_list.next": "Suivant",
"filtered_user_list.prev": "Précédent",
@@ -1362,7 +1376,7 @@
"general_tab.no": "Non",
"general_tab.openInviteDesc": "Lorsque autorisé, un lien vers cette équipe sera inclus sur la page d'accueil permettant à quiconque avec un compte de rejoindre cette équipe.",
"general_tab.openInviteTitle": "Permettre à n'importe quel utilisateur disposant d'un compte de rejoindre cette équipe",
- "general_tab.regenerate": "Générer de nouveau",
+ "general_tab.regenerate": "Regénérer",
"general_tab.required": "Ce champ est obligatoire",
"general_tab.teamDescription": "Description d'équipe",
"general_tab.teamDescriptionInfo": "La description d'équipe fournit des informations supplémentaires pour aider les utilisateurs à choisir la bonne équipe. Maximum de 50 caractères.",
@@ -1398,7 +1412,7 @@
"help.attaching.pasting": "#### Coller des images\nAvec les navigateurs Chrome et Edge, il est également possible d'envoyer des fichiers en les collant à partir du presse-papier. Cette fonctionnalité n'est pas encore implémentée dans les autres navigateurs.",
"help.attaching.previewer": "## Aperçu de fichiers\nMattermost dispose d'une fonctionnalité de prévisualisation de fichiers qui est utilisée pour visionner les média, télécharger des fichiers et partager des liens publics. Cliquez sur la miniature du fichier attaché pour l'ouvrir dans l'aperçu de fichier.",
"help.attaching.publicLinks": "#### Partager des liens publics\nLes liens publics vous permettent de partager des fichiers joints avec des personnes situées à l'extérieur de votre équipe Mattermost. Ouvrez l'aperçu de fichier en cliquant sur la miniature d'un fichier joint, et cliquez sur **Obtenir le lien public**. Ceci va ouvrir une boîte de dialogue avec un lien à copier. Lorsque le lien est partagé et est ouvert par un autre utilisateur, le fichier se télécharge automatiquement.",
- "help.attaching.publicLinks2": "Si **Obtenir le lien public** n'est pas visible dans l'aperçu de fichier et que vous préférez avoir cette fonctionnalité active, vous pouvez demander à ce que votre administrateur système active cette fonctionnalité à partir de la Console Système dans **Sécurité** > **Liens publics**.",
+ "help.attaching.publicLinks2": "Si **Obtenir le lien public** n'est pas visible dans l'aperçu de fichier et que vous préférez avoir cette fonctionnalité active, vous pouvez demander à ce que votre administrateur système active cette fonctionnalité à partir de la console système dans **Sécurité** > **Liens publics**.",
"help.attaching.supported": "#### Types de média supportés\nSi vous essayez de prévisualiser un type de média qui n'est pas supporté, l'aperçu de fichier va représenter le fichier joint sous forme d'une icône standard. Les formats de fichier supportés dépendent fortement de votre navigateur et de votre système d'exploitation, mais les formats de fichier suivants sont supportés par Mattermost sur la plupart des navigateurs :",
"help.attaching.supportedList": "- Images : BMP, GIF, JPG, JPEG, PNG\n- Video : MP4\n- Audio : MP3, M4A\n- Documents : PDF",
"help.attaching.title": "# Joindre des fichiers\n_____",
@@ -1409,7 +1423,7 @@
"help.commands.intro": "Les commandes slash effectuent des opérations dans Mattermost en tapant dans la zone de saisie de texte. Saisissez `/` suivi d'une commande et de quelques arguments pour effectuer une action.\n\nLes commandes slash intégrées dans toutes les installations de Mattermost et les commandes slash personnalisées sont configurables pour interagir avec des applications tierces. Apprenez à configurer des commandes personnalisées sur la [page de documentation de développement de commandes slash](http://docs.mattermost.com/developer/slash-commands.html).",
"help.commands.title": "# Exécuter des commandes\n",
"help.composing.deleting": "## Suppression d'un message\nSupprimez un message en cliquant sur l'icône **[...]** située à côté de chaque message que vous avez saisi, puis cliquez sur **Supprimer**. Les administrateurs système et d'équipe peuvent supprimer n'importe quel message du système ou de l'équipe.",
- "help.composing.editing": "## Edition d'un message\nEditez un message en cliquant sur l'icône **[...]** située à côté de chaque message que vous avez saisi, puis cliquez sur **Editer**. Après avoir effectué des modifications au message, appuyez sur **ENTREE** pour sauvegarder les modifications. Les éditions de messages ne déclenchent pas de nouvelles notifications de @mention, ni de notifications sur le bureau ni de sons de notifications.",
+ "help.composing.editing": "## Edition d'un message\nÉditez un message en cliquant sur l'icône **[...]** située à côté de chaque message que vous avez saisi, puis cliquez sur **Editer**. Après avoir effectué des modifications au message, appuyez sur **ENTREE** pour sauvegarder les modifications. Les éditions de messages ne déclenchent pas de nouvelles notifications de @mention, ni de notifications sur le bureau ni de sons de notifications.",
"help.composing.linking": "## Lien vers un message\nLa fonctionnalité de lien permanent permet de créer un lien vers n'importe quel message. Partager ce lien avec d'autres utilisateurs du canal permet à ces utilisateurs du canal de voir le message lié dans les Messages Archivés. Les utilisateurs qui ne sont pas membres du canal à partir duquel le message a été envoyé ne peuvent pas voir le lien permanent. Obtenez le lien vers un message en cliquant sur l'icône **[...]** située à côté de chaque message, > **Lien permanent** > **Copier le lien**.",
"help.composing.posting": "## Envoi d'un message\nÉcrivez un message en tapant dans la zone de saisie de texte, puis appuyez sur ENTREE pour l'envoyer. Utilisez la combinaison MAJ + ENTREE pour insérer une nouvelle ligne sans envoyer le message. Pour envoyer des messages en utilisant sur CTRL + ENTREE, allez dans **Menu principal > Paramètres du compte > Envoi de messages avec CTRL + ENTREE**.",
"help.composing.posts": "#### Envois\nLes envois sont souvent considérés comme des messages parents. Ce sont les messages qui commencent souvent un fil de réponses. Les envois sont composés et envoyés à partir de la zone de saisie de texte en bas du panneau central.",
@@ -1421,7 +1435,7 @@
"help.formatting.code": "## Bloc de code\n\nCréez un bloc de code en décalant chaque ligne par quatre espaces, ou en utilisant ``` sur la ligne du dessus et celle du dessous de votre code.",
"help.formatting.codeBlock": "Bloc de code",
"help.formatting.emojiExample": ":smile: :+1: :sheep:",
- "help.formatting.emojis": "## Emoticônes\n\nOuvrez les suggestions d'émoticônes en tapant `:`. Une liste complète d'émoticônes peut être trouvée [ici](http://www.emoji-cheat-sheet.com/). Il est également possible de créer votre propre [émoticône personnalisée](http://docs.mattermost.com/help/settings/custom-emoji.html) si l'émoticône que vous souvaitez utiliser n'existe pas.",
+ "help.formatting.emojis": "## Emoticônes\n\nOuvrez les suggestions d'émoticônes en tapant `:`. Une liste complète d'émoticônes peut être trouvée [ici](http://www.emoji-cheat-sheet.com/). Il est également possible de créer votre propre [émoticône personnalisée](http://docs.mattermost.com/help/settings/custom-emoji.html) si l'émoticône que vous souhaitez utiliser n'existe pas.",
"help.formatting.example": "Exemple :",
"help.formatting.githubTheme": "**Thèmes GitHub**",
"help.formatting.headings": "## Titres\n\nCréez un titre en ajoutant # et un espace avant votre titre. Pour des titres de plus bas niveau, ajoutez plus de #.",
@@ -1465,7 +1479,7 @@
"help.mentioning.mentions": "## @Mentions\nUtiliser les @mentions pour attirer l'attention de certains membres de l'équipe.",
"help.mentioning.recent": "## Mentions récentes\nCliquez sur `@` à côté de la barre de recherche pour rechercher vos @mentions récentes et les mots qui déclenchent les mentions. Cliquez sur **Aller à** à côté d'un résultat de recherche dans la barre latérale de droite pour faire positionner le panneau central sur le canal et l'endroit du message contenant la mention.",
"help.mentioning.title": "# Mentionnant Coéquipiers\n_____",
- "help.mentioning.triggers": "## Mots qui déclenchent des mentions\nEn plus d'être notifié par @nom d'utilisateur et @cannal, vous pouvez personnaliser des mots qui déclenchent des notifications de mention dans **Paramètres du compte** > **Notifications** > **Mots qui déclenchent des mentions**. Par défaut, vous recevrez des notifications de mention sur base de votre prénom, mais vous pouvez ajouter davantage de mots en les tapant, séparés par des virgules, dans la zone de saisie. Ceci est utile si vous souhaitez être notifiés de tous les messages qui concernent certains sujets, par exemple, “interviewing” ou “marketing”.",
+ "help.mentioning.triggers": "## Mots qui déclenchent des mentions\nEn plus d'être notifié par @nom d'utilisateur et @channel, vous pouvez personnaliser des mots qui déclenchent des notifications de mention dans **Paramètres du compte** > **Notifications** > **Mots qui déclenchent des mentions**. Par défaut, vous recevrez des notifications de mention sur base de votre prénom, mais vous pouvez ajouter davantage de mots en les spécifiant, séparés par des virgules, dans la zone de saisie. Ceci est utile si vous souhaitez être notifié de tous les messages qui concernent un sujet en particulier, par exemple, “interview” ou “marketing”.",
"help.mentioning.username": "#### @Nom d'utilisateur\nVous pouvez mentionner un coéquipier en utilisant le symbole `@` suivi de son nom d'utilisateur pour lui envoyer une notification de mention.\n\nTapez `@` pour afficher une liste des membres de l'équipe qui peuvent être mentionnés. Pour filtrer la liste, tapez les premières lettres de n'importe quel nom d'utilisateur, prénom, nom de famille, ou surnom. Les flèches du clavier **Haut** et **Bas** peuvent être utilisées pour faire défiler les différentes entrées dans la liste; la touche **Entrée** une fois appuyée sélectionnera l'utilisateur à mentionner. Une fois sélectionné, le nom d'utilisateur va automatiquement remplacer le nom et prénom ou le surnom.\nL'exemple suivant envoie une notification spéciale de mention à **alice** qui l'alerte du canal et du message dans laquelle elle a été citée. Si **alice** est absente de Mattermost et qu'elle a activé les [notifications par e-mail](http://docs.mattermost.com/help/getting-started/configuring-notifications.html#email-notifications), alors elle recevra une alerte par e-mail de sa mention accompagnée du message texte concerné par cette mention.",
"help.mentioning.usernameCont": "Si l'utilisateur que vous avez mentionné n'appartient pas au canal, un message système sera envoyé pour vous le faire savoir. Il s'agit d'un message temporaire seulement visible par la personne qui l'a déclenché. Pour ajouter la personne mentionnée au canal, rendez-vous dans le menu déroulant en-dessous du nom du canal et sélectionnez **Ajouter Membres**.",
"help.mentioning.usernameExample": "@alice comment s'est déroulé votre entretien avec le nouveau candidat ?",
@@ -1479,18 +1493,20 @@
"installed_command.header": "Commandes Slash",
"installed_commands.add": "Ajout de la commande Slash",
"installed_commands.delete.confirm": "Cette action supprime définitivement la commande slash et casse toutes les intégrations qui l'utilisent. Voulez-vous vraiment la supprimer ?",
- "installed_commands.empty": "Pas de commande trouvée",
- "installed_commands.header": "Commande Slash",
- "installed_commands.help": "Créez des commandes slash pour les intégrations externes. Vous pouvez consulter la documentation {link}.",
- "installed_commands.helpLink": "documentation",
+ "installed_commands.empty": "Aucune commande trouvée",
+ "installed_commands.header": "Commande slash",
+ "installed_commands.help": "Utiliser les commandes slash pour connecter Mattermost à des outils externes. {buildYourOwn} ou visitez le {appDirectory} pour trouver des applications et intégrations auto-hébergées ou tierces.",
+ "installed_commands.help.appDirectory": "Répertoire de commandes slash",
+ "installed_commands.help.buildYourOwn": "Construisez votre propre extension",
"installed_commands.search": "Rechercher les commandes slash",
"installed_commands.unnamed_command": "Commande slash sans nom",
"installed_incoming_webhooks.add": "Ajouter des Webhooks entrants",
"installed_incoming_webhooks.delete.confirm": "Cette action supprime définitivement le webhook entrant et casse toutes les intégrations qui l'utilisent. Voulez-vous vraiment le supprimer ?",
- "installed_incoming_webhooks.empty": "Aucun webhooks entrants trouvés",
+ "installed_incoming_webhooks.empty": "Aucun webhook entrant trouvé",
"installed_incoming_webhooks.header": "Webhooks entrants",
- "installed_incoming_webhooks.help": "Créer des webhooks entrants pour vos intégrations externes. Vous pouvez consulter la documentation {link}.",
- "installed_incoming_webhooks.helpLink": "documentation",
+ "installed_incoming_webhooks.help": "Utilisez des webhooks entrants pour connecter Mattermost à des outils externes. {buildYourOwn} ou visitez le {appDirectory} pour trouver des applications et intégrations auto-hébergées ou tierces.",
+ "installed_incoming_webhooks.help.appDirectory": "Répertoire de webhooks entrants",
+ "installed_incoming_webhooks.help.buildYourOwn": "Construisez votre propre webhook entrant",
"installed_incoming_webhooks.search": "Rechercher les webhooks entrants",
"installed_incoming_webhooks.unknown_channel": "Webhook privé",
"installed_integrations.callback_urls": "URLs de callback : {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Description",
"installed_oauth_apps.empty": "Pas d'applications OAuth 2.0 trouvées",
"installed_oauth_apps.header": "Applications OAuth 2.0",
- "installed_oauth_apps.help": "Créez des applications OAuth 2.0 pour intégrer vos robots et applications tierces de façon sécurisée avec Mattermost. Veuillez vous référer à {link} pour en apprendre davantage.",
- "installed_oauth_apps.helpLink": "Documentation",
+ "installed_oauth_apps.help": "Créez {oauthApplications} pour intégrer en toute sécurité les robots et les applications tierces avec Mattermost. Visitez le {appDirectory} pour trouver les applications auto-hébergées disponibles.",
+ "installed_oauth_apps.help.appDirectory": "Répertoire d'applications OAuth",
+ "installed_oauth_apps.help.oauthApplications": "Applications OAuth 2.0",
"installed_oauth_apps.homepage": "Page d'accueil",
"installed_oauth_apps.iconUrl": "URL de l'icône",
"installed_oauth_apps.is_trusted": "De confiance : <strong>{isTrusted}</strong>",
@@ -1529,25 +1546,28 @@
"installed_oauth_apps.trusted.yes": "Oui",
"installed_outgoing_webhooks.add": "Ajouter des Webhooks sortants",
"installed_outgoing_webhooks.delete.confirm": "Cette action supprime définitivement le webhook sortant et casse toutes les intégrations qui l'utilisent. Voulez-vous vraiment le supprimer ?",
- "installed_outgoing_webhooks.empty": "Aucun webhooks sortants trouvés",
+ "installed_outgoing_webhooks.empty": "Aucun webhook sortant trouvé",
"installed_outgoing_webhooks.header": "Webhooks sortants",
- "installed_outgoing_webhooks.help": "Créer des webhooks sortants pour vos intégrations externes. Vous pouvez consulter la documentation {link}.",
- "installed_outgoing_webhooks.helpLink": "documentation",
+ "installed_outgoing_webhooks.help": "Utilisez des webhooks sortants pour connecter Mattermost à des outils externes. {buildYourOwn} ou visitez le {appDirectory} pour trouver des applications et intégrations auto-hébergées ou tierces.",
+ "installed_outgoing_webhooks.help.appDirectory": "Répertoire de webhooks sortants",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Construisez votre propre webhook sortant",
"installed_outgoing_webhooks.search": "Rechercher les webhooks sortants",
"installed_outgoing_webhooks.unknown_channel": "Un webhook privé",
"integrations.add": "Ajouter",
- "integrations.command.description": "Les commandes Slash envoient des évènements à des intégrations extérieures",
- "integrations.command.title": "Commande Slash",
+ "integrations.command.description": "Les commandes slash envoient des événements aux intégrations externes",
+ "integrations.command.title": "Commande slash",
"integrations.delete.confirm.button": "Supprimer",
"integrations.delete.confirm.title": "Supprimer l'intégration",
"integrations.done": "Effectué",
"integrations.edit": "Modifier",
"integrations.header": "Intégrations",
- "integrations.incomingWebhook.description": "Les webhooks entrants permettent des intégrations externes afin d'envoyer des messages",
+ "integrations.help": "Visitez le {appDirectory} pour trouver des applications et des intégrations auto-hébergées ou tierces pour Mattermost.",
+ "integrations.help.appDirectory": "Répertoires d'intégrations",
+ "integrations.incomingWebhook.description": "Les webhooks entrants permettent aux intégrations externes d'envoyer des messages",
"integrations.incomingWebhook.title": "Webhooks entrants",
"integrations.oauthApps.description": "OAuth 2.0 autorise les applications externes à faire des requêtes autorisées à l'API Mattermost.",
"integrations.oauthApps.title": "Applications OAuth 2.0",
- "integrations.outgoingWebhook.description": "Les webhooks sortants permettent des intégrations externes afin de recevoir et de répondre aux messages",
+ "integrations.outgoingWebhook.description": "Les webhooks sortants permettent aux intégrations externes de recevoir et répondre aux messages",
"integrations.outgoingWebhook.title": "Webhooks sortants",
"integrations.successful": "Installation réussie",
"intro_messages.DM": "Vous êtes au début de votre historique de messages avec {teammate}.<br />Les messages privés et les fichiers partagés ici ne sont pas visibles par les autres utilisateurs.",
@@ -1585,14 +1605,14 @@
"invite_member.sending": " Envoi en cours",
"invite_member.teamInviteLink": "Vous pouvez également inviter des membres en utilisant le {link}.",
"ldap_signup.find": "Trouver mes équipes",
- "ldap_signup.ldap": "Créer une nouvelle équipe avec un compte LDAP",
+ "ldap_signup.ldap": "Créer une nouvelle équipe avec un compte AD/LDAP",
"ldap_signup.length_error": "Le nom doit contenir de 3 à 15 caractères",
"ldap_signup.teamName": "Entrez le nom de votre nouvelle équipe",
"ldap_signup.team_error": "Veuillez saisir le nom de votre équipe",
"leave_private_channel_modal.leave": "Oui, quitter le canal",
"leave_private_channel_modal.message": "Voulez-vous vraiment quitter le canal privé {channel} ? Vous devrez être réinvité pour pouvoir le rejoindre à nouveau dans le futur.",
"leave_private_channel_modal.title": "Quitter le canal privé {channel}",
- "leave_team_modal.desc": "Vous allez être retiré de tous les canaux publics et privés. Si l'équipe est privée, vous ne serez pas en mesure de rejoindre l'équipe. Voulez-vous continuer ?",
+ "leave_team_modal.desc": "Vous allez être retiré de tous les canaux publics et privés. Si l'équipe est privée, vous ne serez pas en mesure de rejoindre l'équipe à nouveau. Voulez-vous continuer ?",
"leave_team_modal.no": "Non",
"leave_team_modal.title": "Quitter l'équipe ?",
"leave_team_modal.yes": "Oui",
@@ -1607,8 +1627,8 @@
"login.gitlab": "GitLab",
"login.google": "Google Apps",
"login.invalidPassword": "Votre mot de passe est incorrect.",
- "login.ldapUsername": "Nom d’utilisateur LDAP",
- "login.ldapUsernameLower": "Nom d’utilisateur LDAP",
+ "login.ldapUsername": "Nom d’utilisateur AD/LDAP",
+ "login.ldapUsernameLower": "Nom d’utilisateur AD/LDAP",
"login.noAccount": "Pas de compte utilisateur ? ",
"login.noEmail": "Veuillez saisir votre adresse e-mail.",
"login.noEmailLdapUsername": "Veuillez saisir votre adresse e-mail ou {ldapUsername}",
@@ -1620,7 +1640,7 @@
"login.noUsername": "Veuillez spécifier votre nom d'utilisateur",
"login.noUsernameLdapUsername": "Veuillez saisir votre nom d'utilisateur ou {ldapUsername}",
"login.office365": "Office 365",
- "login.on": "activé {siteName}",
+ "login.on": "sur {siteName}",
"login.or": "ou",
"login.password": "Mot de passe",
"login.passwordChanged": " Mot de passe mis a jour avec succès",
@@ -1675,7 +1695,7 @@
"mobile.channel_info.alertTitleDeleteChannel": "Supprimer {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Quitter {term}",
"mobile.channel_info.alertYes": "Oui",
- "mobile.channel_info.delete_failed": "We couldn't delete the channel {displayName}. Please check your connection and try again.",
+ "mobile.channel_info.delete_failed": "Impossible de supprimer le canal {displayName}. Veuillez vérifier votre connexion et essayer à nouveau.",
"mobile.channel_info.privateChannel": "Canal privé",
"mobile.channel_info.publicChannel": "Canal public",
"mobile.channel_list.alertMessageLeaveChannel": "Voulez-vous vraiment quitter le {term} {name} ?",
@@ -1705,18 +1725,18 @@
"mobile.custom_list.no_results": "Aucun résultat",
"mobile.drawer.teamsTitle": "Équipes",
"mobile.edit_post.title": "Edition du message",
- "mobile.error_handler.button": "Relaunch",
- "mobile.error_handler.description": "\nClick relaunch to open the app again. After restart, you can report the problem from the settings menu.\n",
- "mobile.error_handler.title": "Unexpected error occurred",
+ "mobile.error_handler.button": "Relancer",
+ "mobile.error_handler.description": "\nCliquez sur relancer pour ouvrir l'application à nouveau. Après le redémarrage, vous pouvez signaler le problème à partir du menu paramètres.\n",
+ "mobile.error_handler.title": "Une erreur inattendue s'est produite",
"mobile.file_upload.camera": "Prendre une photo ou une vidéo",
"mobile.file_upload.library": "Bibliothèque de photos",
"mobile.file_upload.more": "Plus…",
"mobile.file_upload.video": "Bibliothèque vidéo",
"mobile.help.title": "Aide",
"mobile.intro_messages.DM": "Vous êtes au début de votre historique de messages avec {teammate}. Les messages privés et les fichiers partagés ici ne sont pas visibles par les autres utilisateurs.",
- "mobile.intro_messages.default_message": "Il s'agit du premier canal que les utilisateurs voient lorsqu'ils s'inscrivent. Utilisez-le pour poster des informations que tout le monde devrait connaître.",
+ "mobile.intro_messages.default_message": "Il s'agit du premier canal que les utilisateurs voient lorsqu'ils s'inscrivent. Utilisez‑le pour poster des informations que tout le monde devrait connaître.",
"mobile.intro_messages.default_welcome": "Bienvenue {name} !",
- "mobile.join_channel.error": "We couldn't join the channel {displayName}. Please check your connection and try again.",
+ "mobile.join_channel.error": "Impossible de joindre le canal {displayName}. Veuillez vérifier votre connexion et essayer à nouveau.",
"mobile.loading_channels": "Chargement des canaux...",
"mobile.loading_members": "Chargement des membres...",
"mobile.loading_posts": "Chargement des messages...",
@@ -1725,7 +1745,7 @@
"mobile.offlineIndicator.connected": "Connecté",
"mobile.offlineIndicator.connecting": "Connexion en cours...",
"mobile.offlineIndicator.offline": "Aucune connexion internet",
- "mobile.open_dm.error": "We couldn't open a direct message with {displayName}. Please check your connection and try again.",
+ "mobile.open_dm.error": "Impossible d'ouvrir un message privé avec {displayName}. Veuillez vérifier votre connexion et essayer à nouveau.",
"mobile.post.cancel": "Annuler",
"mobile.post.delete_question": "Voulez-vous vraiment supprimer ce message ?",
"mobile.post.delete_title": "Supprimer le message",
@@ -1760,10 +1780,13 @@
"mobile.select_team.no_teams": "Il n'y a aucune équipe disponible que vous pouvez rejoindre.",
"mobile.server_ping_failed": "Impossible de se connecter au serveur. Veuillez vérifier l'URL de votre serveur et votre connexion internet.",
"mobile.server_upgrade.button": "OK",
- "mobile.server_upgrade.description": "\nA server upgrade is required to use the Mattermost app. Please ask your System Administrator for details.\n",
- "mobile.server_upgrade.title": "Server upgrade required",
+ "mobile.server_upgrade.description": "\nUne mise à jour du serveur est requise pour utiliser l'application Mattermost. Veuillez demander à votre administrateur système pour plus de détails.\n",
+ "mobile.server_upgrade.title": "Mise à jour du serveur requise",
"mobile.server_url.invalid_format": "L'URL doit commencer par http:// ou https://",
"mobile.session_expired": "La session a expiré. Veuillez vous connecter pour continuer à recevoir les notifications.",
+ "mobile.settings.clear": "Effacer le stockage hors-ligne",
+ "mobile.settings.clear_button": "Effacer",
+ "mobile.settings.clear_message": "\nCela effacera toutes les données en mode hors connexion et redémarrera l'application. Vous serez automatiquement reconnecté une fois l'application redémarrée.\n",
"mobile.settings.team_selection": "Sélection d'équipe",
"modal.manaul_status.ask": "Ne plus me demander",
"modal.manaul_status.button": "Oui, définir mon état en \"En ligne\"",
@@ -1788,7 +1811,7 @@
"msg_typing.someone": "Quelqu'un",
"multiselect.add": "Ajouter",
"multiselect.go": "Aller à",
- "multiselect.numPeopleRemaining": "Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",
+ "multiselect.numPeopleRemaining": "Utilisez les flèches ↑↓ pour parcourir, ↵ pour sélectionner. Vous pouvez encore ajouter {num, number} {num, plural, one {personne} other {personnes}}. ",
"multiselect.numRemaining": "Vous pouvez encore en ajouter {num, number} en plus",
"multiselect.placeholder": "Rechercher et ajouter des membres",
"navbar.addMembers": "Ajouter Membres",
@@ -1807,14 +1830,14 @@
"navbar.viewPinnedPosts": "Afficher les messages épinglés",
"navbar_dropdown.about": "À propos",
"navbar_dropdown.accountSettings": "Paramètres du compte",
- "navbar_dropdown.addMemberToTeam": "Ajouter des membres à l'équipe",
+ "navbar_dropdown.addMemberToTeam": "Ajouter des membres",
"navbar_dropdown.console": "Console système",
"navbar_dropdown.create": "Créer une équipe",
- "navbar_dropdown.emoji": "Emoji personnalisés",
+ "navbar_dropdown.emoji": "Émoticônes persos",
"navbar_dropdown.help": "Aide",
"navbar_dropdown.integrations": "Intégrations",
- "navbar_dropdown.inviteMember": "Envoyer un e-mail d'invitation",
- "navbar_dropdown.join": "Rejoindre une autre équipe",
+ "navbar_dropdown.inviteMember": "Envoyer une invitation",
+ "navbar_dropdown.join": "Rejoindre une équipe",
"navbar_dropdown.keyboardShortcuts": "Raccourcis clavier",
"navbar_dropdown.leave": "Quitter l'équipe",
"navbar_dropdown.logout": "Se déconnecter",
@@ -1854,7 +1877,7 @@
"post_attachment.more": "Afficher plus...",
"post_body.commentedOn": "A commenté le message de {name}{apostrophe} : ",
"post_body.deleted": "(message supprimé)",
- "post_body.plusMore": " plus {count, number} other {count, plural, one {file} other {files}}",
+ "post_body.plusMore": " plus {count, number} other {count, plural, one {fichier} other {fichiers}}",
"post_delete.notPosted": "Le commentaire n'a pu être envoyé",
"post_delete.okay": "Ok",
"post_delete.someone": "Quelqu'un a supprimé le message sur lequel vous tentiez d'envoyer un commentaire.",
@@ -1871,13 +1894,14 @@
"post_info.unpin": "Désépingler du canal",
"post_message_view.edited": "(édité)",
"posts_view.loadMore": "Charger plus de messages",
- "posts_view.loadingMore": "Charger plus de messages",
+ "posts_view.loadingMore": "Chargement de plus de messages...",
"posts_view.newMsg": "Nouveaux messages",
"posts_view.newMsgBelow": "{count, plural, one {Nouveau message} other {Nouveaux messages}} ci-dessous",
"quick_switch_modal.channels": "Canaux",
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Commencez à taper, puis utilisez la touche TAB pour basculer entre les canaux/équipes, ↑↓ pour parcourir, ↵ pour sélectionner et la touche ESC pour annuler.",
+ "quick_switch_modal.help_mobile": "Tapez pour trouver un canal.",
"quick_switch_modal.help_no_team": "Saisissez le nom du canal à rechercher. Utilisez ↑↓ pour parcourir, ↵ pour sélectionner, ECHAP pour ignorer.",
"quick_switch_modal.teams": "Équipes",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,24 +1986,24 @@
"setting_upload.import": "Importer",
"setting_upload.noFile": "Aucun fichier sélectionné.",
"setting_upload.select": "Parcourir",
- "sidebar.channels": "Canaux",
+ "sidebar.channels": "CANAUX PUBLICS",
"sidebar.createChannel": "Créer un nouveau canal public",
"sidebar.createGroup": "Créer un nouveau canal privé",
- "sidebar.direct": "Messages privés",
- "sidebar.favorite": "Favoris",
+ "sidebar.direct": "MESSAGES PRIVÉS",
+ "sidebar.favorite": "CANAUX FAVORIS",
"sidebar.more": "Plus…",
"sidebar.moreElips": "Plus...",
"sidebar.otherMembers": "En dehors de l’équipe",
- "sidebar.pg": "Canaux privés",
+ "sidebar.pg": "CANAUX PRIVÉS",
"sidebar.removeList": "Retirer de la liste",
"sidebar.tutorialScreen1": "<h4>Canaux</h4><p><strong>Les canaux</strong> organisent les conversations en sujets distincts. Ils sont ouverts à tous les utilisateurs de votre équipe. Pour envoyer des messages privés, utilisez <strong>Messages privés</strong> pour une personne ou des <strong>Canaux privés</strong> pour plusieurs personnes.</p>",
"sidebar.tutorialScreen2": "<h4>Canaux \"{townsquare}\" et \"{offtopic}\"</h4><p>Voici deux canaux publics pour commencer :</p><p><strong>{townsquare}</strong> est l'endroit idéal pour communiquer avec toute l'équipe. Tous les membres de votre équipe sont membres de ce canal.</p><p><strong>{offtopic}</strong> (est l'endroit pour se détendre et parler d'autre chose que du travail. Vous et votre équipe décidez des autres canaux à créer.</p>",
"sidebar.tutorialScreen3": "<h4>Créer et rejoindre des canaux</h4><p>Cliquez sur <strong>\"Plus...\"</strong> pour créer un nouveau canal ou rejoindre un canal existant.</p><p>Vous pouvez aussi créer un nouveau canal ou un groupe privé en cliquant sur le symbole <strong>\"+\"</strong> à côté du nom du canal public ou privé.</p>",
- "sidebar.unreadAbove": "Message(s) non-lu(s) ci-dessus",
- "sidebar.unreadBelow": "Message(s) non-lu(s) ci-dessous",
+ "sidebar.unreadAbove": "Messages non-lus ▲",
+ "sidebar.unreadBelow": "Messages non-lus ▼",
"sidebar_header.tutorial": "<h4>Menu principal</h4><p>Le <strong>Menu Principal</strong> est l'endroit où vous pouvez <strong>inviter des nouveaux membres</strong>, accéder aux <strong>paramètres de votre compte</strong> et configurer les <strong>couleurs de votre thème</strong>.</p><p>Les administrateurs d'équipe peuvent aussi accéder aux <strong>paramètres de l'équipe</strong>.</p><p>Les administrateurs système trouveront la <strong>console système</strong> pour administrer tout le site.</p>",
"sidebar_right_menu.accountSettings": "Paramètres du compte",
- "sidebar_right_menu.addMemberToTeam": "Ajouter des membres à l'équipe",
+ "sidebar_right_menu.addMemberToTeam": "Ajouter des membres",
"sidebar_right_menu.console": "Console système",
"sidebar_right_menu.flagged": "Messages marqués d'un indicateur",
"sidebar_right_menu.help": "Aide",
@@ -2003,14 +2027,14 @@
"signup_team.join_open": "Les équipes que vous pouvez rejoindre : ",
"signup_team.noTeams": "Il n'y a aucune équipe dans l'annuaire, et la création d'équipe n'est pas autorisée.",
"signup_team.no_open_teams": "Vous ne pouvez rejoindre aucune équipe. Veuillez demander une invitation à votre administrateur.",
- "signup_team.no_open_teams_canCreate": "Aucune équipe disponible. Créez une nouvelle équipe ou demander une invitation à un administrateur.",
+ "signup_team.no_open_teams_canCreate": "Aucune équipe disponible. Veuillez créez une nouvelle équipe ou demandez une invitation à votre administrateur.",
"signup_team.no_teams": "Aucune équipe n'est créée. Veuillez contacter votre administrateur.",
"signup_team.no_teams_canCreate": "Aucune équipe n'a été créée. Vous pouvez en créer une en cliquant sur \"Créer une équipe\".",
"signup_team.none": "Aucune méthode de création d'utilisateur n'est disponible. Veuillez contacter votre administrateur système pour obtenir un accès.",
"signup_team_complete.completed": "Vous avez déjà utilisé cette invitation pour vous inscrire, ou bien l'invitation a expiré.",
"signup_team_confirm.checkEmail": "Veuillez vérifier vos e-mails : <strong>{email}</strong><br />Votre e-mail contient un lien pour configurer votre équipe",
"signup_team_confirm.title": "Inscription terminée",
- "signup_team_system_console": "Aller à la console système",
+ "signup_team_system_console": "Aller dans la console système",
"signup_user_completed.choosePwd": "Choisissez votre mot de passe",
"signup_user_completed.chooseUser": "Choisissez votre nom d'utilisateur",
"signup_user_completed.create": "Créer un compte",
@@ -2025,7 +2049,7 @@
"signup_user_completed.no_open_server": "Ce serveur ne permet pas d'inscriptions ouvertes. Aller voir avec votre Administrateur pour recevoir une invitation",
"signup_user_completed.none": "Aucune méthode de création d'utilisateur n'est disponible. Veuillez contacter votre administrateur système pour obtenir un accès.",
"signup_user_completed.office365": "avec Office 365",
- "signup_user_completed.onSite": "activé {siteName}",
+ "signup_user_completed.onSite": "sur {siteName}",
"signup_user_completed.or": "ou",
"signup_user_completed.passwordLength": "Veuillez spécifier entre {min} et {max} caractères",
"signup_user_completed.required": "Champ obligatoire",
@@ -2036,7 +2060,7 @@
"signup_user_completed.validEmail": "Veuillez spécifier une adresse e-mail valide",
"signup_user_completed.welcome": "Bienvenue sur :",
"signup_user_completed.whatis": "Quelle est votre adresse e-mail ?",
- "signup_user_completed.withLdap": "Avec vos information d’identifications LDAP",
+ "signup_user_completed.withLdap": "Avec vos informations d’identification AD/LDAP",
"sso_signup.find": "Trouver mes équipes",
"sso_signup.gitlab": "Créer une équipe avec un compte GitLab",
"sso_signup.google": "Créer une équipe avec un compte Google Apps",
@@ -2060,8 +2084,8 @@
"suggestion.search.private": "Canaux privés",
"suggestion.search.public": "Canaux publics",
"system_users_list.count": "{count, number} {count, plural, one {utilisateur} other {utilisateurs}}",
- "system_users_list.countPage": "{startCount, number} - {endCount, number} {count, plural, =0 {0 membre} one {membre} other {membres}} d'un total de {total}",
- "system_users_list.countSearch": "{count, number} {count, plural, one {utilisateur} other {utilisateurs}} d'un total de {total}",
+ "system_users_list.countPage": "{startCount, number} - {endCount, number} {count, plural, one {utilisateur} other {utilisateurs}} d'un total de {total, number}",
+ "system_users_list.countSearch": "{count, number} {count, plural, one {utilisateur} other {utilisateurs}} d'un total de {total, number}",
"team_export_tab.download": "Télécharger",
"team_export_tab.export": "Exporter",
"team_export_tab.exportTeam": "Exporter votre équipe",
@@ -2074,7 +2098,7 @@
"team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export",
"team_import_tab.importHelpExporterLink": "Slack Advanced Exporter",
"team_import_tab.importHelpLine1": "L'outil d'importation Slack vers Mattermost supporte désormais l'importation des messages des canaux publics d'équipes Slack.",
- "team_import_tab.importHelpLine2": "Pour importer une équipe de Slack, allez dans {exportInstructions}. Rendez-vous sur {uploadDocsLink} pour en savoir plus.",
+ "team_import_tab.importHelpLine2": "Pour importer une équipe de Slack, allez dans {exportInstructions}. Rendez-vous sur {uploadDocsLink} pour en savoir davantage.",
"team_import_tab.importHelpLine3": "Pour importer des messages avec fichiers joints, voir {slackAdvancedExporterLink} pour plus de détails.",
"team_import_tab.importSlack": "Importer depuis Slack (Beta)",
"team_import_tab.importing": " Import...",
@@ -2082,7 +2106,7 @@
"team_import_tab.summary": "Afficher le récapitulatif",
"team_member_modal.close": "Fermer",
"team_member_modal.members": "Membres de {team}",
- "team_members_dropdown.confirmDemoteDescription": "Si vous vous retirez le rôle d'administrateur et qu'il n'y a aucun autre administrateur désigné, vous devrez en désigner un en utilisant les outils en ligne de commande depuis un terminal sur le serveur.",
+ "team_members_dropdown.confirmDemoteDescription": "Si vous vous retirez le rôle d'administrateur et qu'il n'y a aucun autre administrateur désigné, vous devrez en désigner un en accédant au serveur Mattermost via un terminal et en exécutant la commande suivante.",
"team_members_dropdown.confirmDemoteRoleTitle": "Confirmez le retrait de votre rôle d'administrateur",
"team_members_dropdown.confirmDemotion": "Confirmer le retrait",
"team_members_dropdown.confirmDemotionCmd": "plate-forme de rôles system_admin {username}",
@@ -2110,7 +2134,7 @@
"textbox.quote": ">citation",
"textbox.strike": "barré",
"tutorial_intro.allSet": "C'est parti !",
- "tutorial_intro.end": "Veuillez cliquer sur \"Suivant\" pour entrer dans {channel}. Il s'agit du premier canal que les membres voient lorsqu'ils s'inscrivent. Utilisez-le pour poster des messages que tout le monde devrait lire en premier.",
+ "tutorial_intro.end": "Veuillez cliquer sur \"Suivant\" pour entrer dans {channel}. Il s'agit du premier canal que les membres voient lorsqu'ils s'inscrivent. Utilisez‑le pour poster des messages que tout le monde devrait connaître.",
"tutorial_intro.invite": "Inviter des membres",
"tutorial_intro.mobileApps": "Installez les applications pour {link} pour un accès facile et ainsi recevoir des notifications même lorsque vous êtes en déplacement.",
"tutorial_intro.mobileAppsLinkText": "PC, Mac, iOS et Android",
@@ -2118,7 +2142,7 @@
"tutorial_intro.screenOne": "<h3>Bienvenue dans :</h3><h1>Mattermost</h1><p>Toute la communication de votre équipe à un seul endroit, consultable instantanément et disponible partout.</p><p>Gardez votre équipe soudée et aider-la à accomplir les tâches qui importent vraiment.</p>",
"tutorial_intro.screenTwo": "<h3>Comment fonctionne Mattermost :</h3><p>Vous pouvez échanger dans des canaux publics, des canaux privés ou des messages privés.</p><p>Tout est archivé et peut être recherché depuis n'importe quel navigateur web de bureau, tablette ou mobile.</p>",
"tutorial_intro.skip": "Passer le tutoriel",
- "tutorial_intro.support": "Vous avez besoin d'aide ? Envoyez-nous un e-mail à : ",
+ "tutorial_intro.support": "Vous avez besoin d'aide ? Envoyez-nous un e‑mail à : ",
"tutorial_intro.teamInvite": "Inviter des collègues",
"tutorial_intro.whenReady": " quand vous serez prêt.",
"tutorial_tip.next": "Suivant",
@@ -2136,18 +2160,17 @@
"upload_overlay.info": "Faites glisser un fichier pour le télécharger.",
"user.settings.advance.embed_preview": "Pour le premier lien web dans un message, afficher un aperçu du contenu du site sous le message, si disponible.",
"user.settings.advance.embed_toggle": "Voir un aperçu pour tous les messages inclus",
- "user.settings.advance.emojipicker": "Activer la sélection d'émoticônes pour la zone de saisie de commentaires et celle de saisie de nouveaux messages",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {fonctionnalité activée} other {fonctionnalités activées}}",
- "user.settings.advance.formattingDesc": "Si activé, les messages seront formatés pour créer des liens, montrer des emoji, le style du texte et ajouter des sauts de ligne. Par défaut, ce paramètre est activé. La modification de ce paramètre nécessite le rafraîchissement de la page.",
- "user.settings.advance.formattingTitle": "Activé le formatage des messages",
+ "user.settings.advance.formattingDesc": "Lorsqu'activé, les messages seront formatés pour créer des liens, montrer les émoticônes, styliser le texte et ajouter des sauts de ligne. Par défaut, ce paramètre est activé. La modification de ce paramètre nécessite le rafraîchissement de la page.",
+ "user.settings.advance.formattingTitle": "Activer le formatage des messages",
"user.settings.advance.joinLeaveDesc": "Lorsqu'activé, les messages systèmes indiquant qu'un utilisateur s'est connecté ou a quitté un canal seront visibles. Lorsque désactivé, ces messages seront masqués. Un message sera toutefois toujours affiché lorsque vous êtes ajouté à un canal, de façon à ce que vous en soyez quand même informé.",
"user.settings.advance.joinLeaveTitle": "Active les messages indiquant qu'un utilisateur a rejoint/quitté le canal",
"user.settings.advance.markdown_preview": "Voir l'option d'aperçu du markdown dans la zone de saisie de message",
"user.settings.advance.off": "Désactivé",
"user.settings.advance.on": "Activé",
- "user.settings.advance.preReleaseDesc": "Évaluez les fonctionnalités en avant-première. Vous devrez peut-être rafraîchir la page pour que ce paramètre soit activé.",
+ "user.settings.advance.preReleaseDesc": "Testez des fonctionnalités en avant-première. Vous devrez peut-être rafraîchir la page pour que ce paramètre soit activé.",
"user.settings.advance.preReleaseTitle": "Activer les fonctionnalités expérimentales",
- "user.settings.advance.sendDesc": "Si activé, ENTREE insère une nouvelle ligne et CTRL + ENTREE envoie le message.",
+ "user.settings.advance.sendDesc": "Lorsqu'activé, ENTREE insère une nouvelle ligne et CTRL + ENTREE envoie le message.",
"user.settings.advance.sendTitle": "Envoyer vos messages avec CTRL + ENTREE",
"user.settings.advance.slashCmd_autocmp": "Autoriser les applications externes à proposer l'auto-complétion des commandes slash",
"user.settings.advance.title": "Paramètres avancés",
@@ -2191,7 +2214,7 @@
"user.settings.display.messageDisplayCleanDes": "Facile à parcourir et à lire.",
"user.settings.display.messageDisplayCompact": "Compact",
"user.settings.display.messageDisplayCompactDes": "Afficher autant de messages que possible à l'écran.",
- "user.settings.display.messageDisplayDescription": "Sélectionner comment les messages dans le canal doivent être affichés",
+ "user.settings.display.messageDisplayDescription": "Sélectionner comment les messages dans un canal doivent être affichés.",
"user.settings.display.messageDisplayTitle": "Affichage des messages",
"user.settings.display.militaryClock": "Horloge 24 heures (exemple : 16:00)",
"user.settings.display.nameOptsDesc": "Choisissez comment afficher les autres utilisateurs dans les messages et les listes de messages privés.",
@@ -2200,7 +2223,7 @@
"user.settings.display.showFullname": "Afficher prénom et nom",
"user.settings.display.showNickname": "Afficher le pseudo s'il existe, sinon afficher le prénom d'abord puis le nom",
"user.settings.display.showUsername": "Afficher le nom d'utilisateur (défaut)",
- "user.settings.display.teammateNameDisplay": "Affichage des membres de l'équipe",
+ "user.settings.display.teammateNameDisplay": "Affichage des noms des membres d'équipe",
"user.settings.display.theme.applyToAllTeams": "Appliquer le nouveau thème à toutes mes équipes",
"user.settings.display.theme.customTheme": "Thème personnalisé",
"user.settings.display.theme.describe": "Ouvrez pour gérer votre thème",
@@ -2214,17 +2237,17 @@
"user.settings.general.close": "Quitter",
"user.settings.general.confirmEmail": "E-mail de confirmation",
"user.settings.general.currentEmail": "Adresse e-mail actuelle",
- "user.settings.general.email": "Adresse e-mail",
- "user.settings.general.emailGitlabCantUpdate": "La connexion se produit par Gitlab. L'addresse Electronique ne peut pas être mis à jour . Adresse e-mail utilisée pour les notifications est {email} .",
- "user.settings.general.emailGoogleCantUpdate": "La connexion s'effectue par Gitlab. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les notifications est {email} .",
+ "user.settings.general.email": "E-mail",
+ "user.settings.general.emailGitlabCantUpdate": "La connexion s'effectue par Gitlab. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les e-mails de notification est {email}.",
+ "user.settings.general.emailGoogleCantUpdate": "La connexion s'effectue par Gitlab. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les e-mails de notification est {email} .",
"user.settings.general.emailHelp1": "L'adresse e-mail est utilisée pour la connexion, les notifications et la réinitialisation du mot de passe. Votre adresse e-mail doit être validée si vous la changez.",
- "user.settings.general.emailHelp2": "L'envoi d'e-mails a été désactivé par votre administrateur système. Aucune notification par e-mail ne peut être envoyée.",
+ "user.settings.general.emailHelp2": "L'envoi d'e-mails a été désactivé par votre administrateur système. Aucun e-mail de notification ne peut être envoyé.",
"user.settings.general.emailHelp3": "L'adresse e-mail est utilisée pour la connexion, les notifications et la réinitialisation du mot de passe.",
"user.settings.general.emailHelp4": "Un e-mail de vérification a été envoyé à {email}.",
- "user.settings.general.emailLdapCantUpdate": "La connexion s'effectue par AD/LDAP. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les notifications est {email}.",
+ "user.settings.general.emailLdapCantUpdate": "La connexion s'effectue par AD/LDAP. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les e-mails de notification est {email}.",
"user.settings.general.emailMatch": "Les adresses e-mail que vous avez saisies ne correspondent pas.",
- "user.settings.general.emailOffice365CantUpdate": "La connexion s'effectue par Office 365. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les notifications est {email} .",
- "user.settings.general.emailSamlCantUpdate": "La connexion s'effectue par le biais de SAML. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les notifications est {email}.",
+ "user.settings.general.emailOffice365CantUpdate": "La connexion s'effectue par Office 365. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les e-mails de notification est {email} .",
+ "user.settings.general.emailSamlCantUpdate": "La connexion s'effectue par le biais de SAML. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les e-mails de notification est {email}.",
"user.settings.general.emailUnchanged": "Votre nouvelle adresse e-mail est la même que l'ancienne.",
"user.settings.general.emptyName": "Veuillez cliquer sur ‘Modifier’ pour spécifier votre nom complet",
"user.settings.general.emptyNickname": "Veuillez cliquer sur ‘Modifier’ pour ajouter un surnom",
@@ -2237,13 +2260,13 @@
"user.settings.general.lastName": "Nom",
"user.settings.general.loginGitlab": "Connexion avec GitLab ({email})",
"user.settings.general.loginGoogle": "Connexion avec Google ({email})",
- "user.settings.general.loginLdap": "Connexion avec LDAP ({email})",
+ "user.settings.general.loginLdap": "Connexion avec AD/LDAP ({email})",
"user.settings.general.loginOffice365": "Dernière connexion avec Office 365 ({email})",
"user.settings.general.loginSaml": "Connexion avec SAML ({email})",
- "user.settings.general.mobile.emptyName": "Veuillez cliquer sur ‘Modifier’ pour spécifier votre nom complet",
- "user.settings.general.mobile.emptyNickname": "Veuillez cliquer sur ‘Modifier’ pour ajouter un surnom",
- "user.settings.general.mobile.emptyPosition": "Veuillez cliquer sur 'Modifier' pour ajouter votre intitulé de poste / rôle",
- "user.settings.general.mobile.uploadImage": "Veuillez cliquer sur ‘Modifier’ pour télécharger une image",
+ "user.settings.general.mobile.emptyName": "Veuillez cliquer pour spécifier votre nom complet",
+ "user.settings.general.mobile.emptyNickname": "Veuillez cliquer pour ajouter un surnom",
+ "user.settings.general.mobile.emptyPosition": "Veuillez cliquer pour ajouter votre intitulé de poste / rôle",
+ "user.settings.general.mobile.uploadImage": "Veuillez cliquer pour envoyer une image",
"user.settings.general.newAddress": "Nouvelle adresse : {email}<br />Vérifiez vos e-mails pour valider votre adresse e-mail.",
"user.settings.general.newEmail": "Nouvelle adresse e-mail",
"user.settings.general.nickname": "Pseudo",
@@ -2262,7 +2285,7 @@
"user.settings.general.validEmail": "Veuillez spécifier une adresse e-mail valide",
"user.settings.general.validImage": "Seules les images JPG ou PNG sont autorisées pour les photos de profil",
"user.settings.import_theme.cancel": "Annuler",
- "user.settings.import_theme.importBody": "Pour importer un thème, rendez-vous sur une Slack team et cliquez sur \"Preferences -> Sidebar Theme\". Ouvrez la fenêtre de personnalisation, copiez les couleurs du thèmes et collez-les ici :",
+ "user.settings.import_theme.importBody": "Pour importer un thème, rendez-vous sur une équipe Slack et cliquez sur \"Preferences -> Sidebar Theme\". Ouvrez les options de thèmes personnalisés, copiez les couleurs du thème et collez-les ici :",
"user.settings.import_theme.importHeader": "Importer un thème Slack",
"user.settings.import_theme.submit": "Envoyer",
"user.settings.import_theme.submitError": "Format invalide, veuillez réessayer de copier-coller.",
@@ -2296,7 +2319,7 @@
"user.settings.notifications.commentsInfo": "En plus des notifications que vous recevez lorsque vous êtes mentionné, vous pouvez choisir de recevoir des notifications pour chaque réponse apportée à un message que vous avez envoyé.",
"user.settings.notifications.commentsNever": "Ne pas recevoir de notifications pour toutes réponses apportées à un fil de réponses à moins que je ne sois mentionné",
"user.settings.notifications.commentsRoot": "Recevoir des notifications pour pour toutes réponses apportées à un fil de messages que j'ai débuté",
- "user.settings.notifications.desktop": "Envoyer des notifications sur le bureau",
+ "user.settings.notifications.desktop": "Envoyer des notifications de bureau",
"user.settings.notifications.desktop.allFirefoxForever": "Pour toute activité, visible indéfiniment",
"user.settings.notifications.desktop.allFirefoxTimed": "Pour toute activité, visible {seconds} secondes",
"user.settings.notifications.desktop.allNoSoundForever": "Pour toute activité, sans son, visible indéfiniment",
@@ -2313,19 +2336,19 @@
"user.settings.notifications.desktop.mentionsSoundTimed": "Pour les mentions et messages privés, avec son, visible {seconds} secondes",
"user.settings.notifications.desktop.seconds": "{seconds} secondes",
"user.settings.notifications.desktop.sound": "Son de notification",
- "user.settings.notifications.desktop.title": "Sons des notifications",
+ "user.settings.notifications.desktop.title": "Notifications de bureau",
"user.settings.notifications.desktop.unlimited": "Illimité",
- "user.settings.notifications.desktopSounds": "Sons des notifications",
+ "user.settings.notifications.desktopSounds": "Sons des notifications de bureau",
"user.settings.notifications.email.disabled": "Désactivé par l'administrateur système",
- "user.settings.notifications.email.disabled_long": "Les notifications par e-mail ont été désactivées par votre administrateur système.",
+ "user.settings.notifications.email.disabled_long": "Les e-mails de notification ont été désactivés par votre administrateur système.",
"user.settings.notifications.email.everyHour": "Toutes les heures",
"user.settings.notifications.email.everyXMinutes": "{count, plural, one {Chaque minute} other {Toutes les {count, number} minutes}}",
"user.settings.notifications.email.immediately": "Immédiatement",
"user.settings.notifications.email.never": "Jamais",
- "user.settings.notifications.email.send": "Envoyer des notifications sur le bureau",
+ "user.settings.notifications.email.send": "Envoyer des notifications de bureau",
"user.settings.notifications.emailBatchingInfo": "Les notifications reçues sur la période de temps sélectionnée ont été combinées et envoyées en un seul e-mail.",
- "user.settings.notifications.emailInfo": "Les notifications par e-mail sont envoyées pour les mentions et les messages privés reçus après que vous soyez passé hors-ligne ou absent de {siteName} pendant plus de 5 minutes.",
- "user.settings.notifications.emailNotifications": "Notifications par e-mail",
+ "user.settings.notifications.emailInfo": "Les e-mails de notification sont envoyés pour les mentions et les messages privés reçus après que vous soyez passé hors-ligne ou absent de {siteName} pendant plus de 5 minutes.",
+ "user.settings.notifications.emailNotifications": "E-mails de notification",
"user.settings.notifications.header": "Notifications",
"user.settings.notifications.info": "Les notifications de bureau sont disponibles sur Edge, Firefox, Safari, Chrome et les applications desktop Mattermost.",
"user.settings.notifications.mentionsInfo": "Les mentions se déclenchent lorsque quelqu'un envoie un message qui inclut votre nom d'utilisateur (\"@{username}\") ou l'une des options ci-dessus.",
@@ -2350,8 +2373,8 @@
"user.settings.push_notification.allActivityOnline": "Pour toutes les activités lorsque vous etes en déplacement ou hors ligne",
"user.settings.push_notification.away": "Absent ou hors ligne",
"user.settings.push_notification.disabled": "Désactivé par l'administrateur système",
- "user.settings.push_notification.disabled_long": "Les notifications Push pour les appareils mobiles ont été désactivées par votre administrateur système .",
- "user.settings.push_notification.info": "Les alertes de notification sont envoyées à votre appareil mobile quand il y a de l’activité dans Mattermost .",
+ "user.settings.push_notification.disabled_long": "Les notifications push pour les appareils mobiles ont été désactivées par votre administrateur système. ",
+ "user.settings.push_notification.info": "Les alertes de notification sont envoyées à votre appareil mobile quand il y a de l’activité dans Mattermost.",
"user.settings.push_notification.off": "Désactivé",
"user.settings.push_notification.offline": "Hors ligne",
"user.settings.push_notification.online": "En ligne, absent(e) ou hors ligne",
@@ -2375,7 +2398,7 @@
"user.settings.security.ldap": "AD/LDAP",
"user.settings.security.loginGitlab": "Connexion avec GitLab",
"user.settings.security.loginGoogle": "Connexion à partir de Google Apps",
- "user.settings.security.loginLdap": "Connexion avec LDAP",
+ "user.settings.security.loginLdap": "Connexion effectuée via AD/LDAP",
"user.settings.security.loginOffice365": "Connexion à partir d'Office 365",
"user.settings.security.loginSaml": "Se connecter par SAML",
"user.settings.security.logoutActiveSessions": "Consulter et déconnecter les sessions actives",
@@ -2406,7 +2429,7 @@
"user.settings.security.passwordErrorUppercaseSymbol": "Votre mot de passe doit contenir entre {min} et {max} caractères et au moins une lettre majuscule et un symbole (parmi \"~!@#$%^&*()\").",
"user.settings.security.passwordGitlabCantUpdate": "La connexion se produit à travers GitLab. Le mot de passe ne peut pas être mis à jour.",
"user.settings.security.passwordGoogleCantUpdate": "La connexion s'effectue par Google Apps. Le mot de passe ne peut pas être mis à jour.",
- "user.settings.security.passwordLdapCantUpdate": "La connexion se produit via LDAP . Le mot de passe ne peut pas être mis à jour.",
+ "user.settings.security.passwordLdapCantUpdate": "La connexion s'effectue via AD/LDAP. Le mot de passe ne peut pas être changé.",
"user.settings.security.passwordMatchError": "Les nouveaux mots de passe que vous avez saisis ne correspondent pas.",
"user.settings.security.passwordMinLength": "Longueur minimum invalide, impossible d'afficher l'aperçu.",
"user.settings.security.passwordOffice365CantUpdate": "La connexion s'effectue par Office 365. Le mot de passe ne peut pas être mis à jour.",
@@ -2416,7 +2439,7 @@
"user.settings.security.switchEmail": "Utilisation de l'adresse e-mail et du mot de passe",
"user.settings.security.switchGitlab": "Utiliser l'authentification unique (SSO) via GitLab",
"user.settings.security.switchGoogle": "Utiliser l'authentification unique (SSO) via Google",
- "user.settings.security.switchLdap": "Changer pour utiliser LDAP",
+ "user.settings.security.switchLdap": "Passer à l'utilisation d'AD/LDAP",
"user.settings.security.switchOffice365": "Utiliser l'authentification unique (SSO) via Office 365",
"user.settings.security.switchSaml": "Utiliser l'authentification unique (SSO) via SAML",
"user.settings.security.title": "Paramètres de sécurité",
@@ -2428,7 +2451,7 @@
"user_profile.webrtc.unavailable": "Passer un nouvel appel n'est pas possible tant que l'appel en cours n'a pas été terminé",
"view_image.loading": "Chargement ",
"view_image_popover.download": "Télécharger",
- "view_image_popover.file": "File {count, number} of {total, number}",
+ "view_image_popover.file": "Fichier {count, number} de {total, number}",
"view_image_popover.publicLink": "Obtenir le lien public",
"web.footer.about": "À propos",
"web.footer.help": "Aide",
diff --git a/webapp/i18n/it.json b/webapp/i18n/it.json
index f483ee739..acda13894 100644
--- a/webapp/i18n/it.json
+++ b/webapp/i18n/it.json
@@ -3,7 +3,7 @@
"about.copyright": "Copyright 2015 - {currentYear} Mattermost, Inc. Tutti i diritti riservati",
"about.database": "Database:",
"about.date": "Creato il:",
- "about.enterpriseEditionLearn": "Maggiori informazioni sulla Edizione Enterprise a",
+ "about.enterpriseEditionLearn": "Maggiori informazioni sulla Edizione Enterprise a ",
"about.enterpriseEditionSt": "Comunicazioni moderne da dietro il tuo firewall.",
"about.enterpriseEditione1": "Edizione Enterprise",
"about.hash": "Hash di compilazione:",
@@ -25,7 +25,7 @@
"activity_log.moreInfo": "Maggiori informazioni",
"activity_log.os": "SO: {os}",
"activity_log.sessionId": "ID sessione: {id}",
- "activity_log.sessionsDescription": "Una sessione è creata quando viene eseguito l'accesso utilizzando un browser. Le sessioni permettono al sistema di non chiedere ripetutamente agli utenti di effettuare l'accesso per un periodo specificato dall'Amministratore del Sistema. Per uscire e terminare una sessione, è possibile utilizzare il collegamento 'Esci'.",
+ "activity_log.sessionsDescription": "Una sessione è creata quando viene eseguito l'accesso utilizzando un browser. Le sessioni permettono al sistema di non chiedere ripetutamente agli utenti di effettuare l'accesso per un periodo specificato dall'Amministratore di Sistema. Per uscire e terminare una sessione è possibile utilizzare il pulsante 'Esci'.",
"activity_log_modal.android": "Android",
"activity_log_modal.androidNativeApp": "Applicazione nativa Android",
"activity_log_modal.desktop": "Applicazione nativa Desktop",
@@ -45,7 +45,7 @@
"add_command.displayName.help": "Nome visualizzato per il comando slash, può contenere fino a 64 caratteri.",
"add_command.doneHelp": "Il comando slash è stato impostato. Il token seguente verrà inviato nel contenuto in uscita. Usare il token per verificare che la richiesta sia arrivata dal vostro gruppo Mattermost. (vedere la <a href=\"https://docs.mattermost.com/developer/slash-commands.html\">documentazione</a> per altri dettagli)",
"add_command.iconUrl": "Icona di risposta",
- "add_command.iconUrl.help": "Scegli una immagine di profilo da mostrare per i messaggi inviati da questo comando. Inserisci un URL di immagini .png o .jpg di dimensioni non inferiori a 128x128 pixel.",
+ "add_command.iconUrl.help": "(Opzionale) Scegli una immagine di profilo da mostrare per i messaggi inviati da questo comando. Inserisci un URL di immagini .png o .jpg di dimensioni non inferiori a 128x128 pixel.",
"add_command.iconUrl.placeholder": "https://www.esempio.com/myicon.png",
"add_command.method": "Metodo Richiesta",
"add_command.method.get": "GET",
@@ -54,7 +54,7 @@
"add_command.save": "Salva",
"add_command.token": "<b>Token</b>: {token}",
"add_command.trigger": "Parola di esecuzione del comando",
- "add_command.trigger.help": "La parola di esecuzione deve essere univoca, e non può iniziare con \"/\" o contenere spazi.",
+ "add_command.trigger.help": "La parola di esecuzione deve essere univoca e non può iniziare con '/' o contenere spazi.",
"add_command.trigger.helpExamples": "Esempi: cliente, impiegato, paziente, tempo",
"add_command.trigger.helpReserved": "Riservato: {link}",
"add_command.trigger.helpReservedLinkText": "vedi una lista dei comandi slash predefiniti",
@@ -75,11 +75,11 @@
"add_emoji.image": "Immagine",
"add_emoji.image.button": "Selezionare",
"add_emoji.image.help": "Scegliere un'immagine per l'Emoji. L'immagine può essere GIF, PNG o JPG con una dimensione massima di 1 MB. Verrà automaticamente ridimensionata a 128x128 px, mantenendo le proporzioni.",
- "add_emoji.imageRequired": "E' richiesta un'immagine per questo Emoji",
+ "add_emoji.imageRequired": "E' richiesta un'immagine per questo emoji",
"add_emoji.name": "Nome",
- "add_emoji.name.help": "Scegliere un nome per l'Emoji, composto da un massimo di 64 caratteri scelti tra lettere minuscole, numeri e i simboli '-' e '_'.",
- "add_emoji.nameInvalid": "Il nome di un Emoji può contenere solo numeri, lettere e i simboli '-' e '_'.",
- "add_emoji.nameRequired": "E' richiesto un nome per l'Emoji",
+ "add_emoji.name.help": "Scegliere un nome per l'emoji, composto da un massimo di 64 caratteri scelti tra lettere minuscole, numeri e i simboli '-' e '_'.",
+ "add_emoji.nameInvalid": "Il nome di un emoji può contenere solo numeri, lettere e i simboli '-' e '_'.",
+ "add_emoji.nameRequired": "E' richiesto un nome per l'emoji",
"add_emoji.nameTaken": "Questo nome è già usato da un Emoji nel sistema. Scegliere un altro nome.",
"add_emoji.preview": "Anteprima",
"add_emoji.preview.sentence": "Questa è una frase contenente {image}.",
@@ -96,20 +96,20 @@
"add_incoming_webhook.name": "Nome",
"add_incoming_webhook.save": "Salva",
"add_incoming_webhook.url": "<b>URL</b>: {url}",
- "add_oauth_app.callbackUrls.help": "L'URI di redirezione a cui il servizio invierà gli utenti dopo aver accettato o negato l'autorizzazione dell'applicazione e che gestirà i codici di autorizzazione o i token di accesso. Deve essere un URL valido ed iniziare con http:// oppure https://",
+ "add_oauth_app.callbackUrls.help": "L'URI di redirezione a cui il servizio invierà gli utenti dopo aver accettato o negato l'autorizzazione dell'applicazione e che gestirà i codici di autorizzazione o i token di accesso. Deve essere un URL valido ed iniziare con http:// oppure https://.",
"add_oauth_app.callbackUrlsRequired": "Sono richiesti uno o più URL di callback",
- "add_oauth_app.clientId": "<b> ID cliente</b>: {id}",
- "add_oauth_app.clientSecret": "<b> Secret cliente</b>: {secret}",
- "add_oauth_app.description.help": "Descrizione dell'applicazione OAuth 2.0",
- "add_oauth_app.descriptionRequired": "E' richiesta una descrizione per l'applicazione OAuth 2.0",
+ "add_oauth_app.clientId": "<b>ID cliente</b>: {id}",
+ "add_oauth_app.clientSecret": "<b>Secret cliente</b>: {secret}",
+ "add_oauth_app.description.help": "Descrizione dell'applicazione OAuth 2.0.",
+ "add_oauth_app.descriptionRequired": "E' richiesta una descrizione per l'applicazione OAuth 2.0.",
"add_oauth_app.doneHelp": "L'applicazione OAuth 2.0 è stata impostata. Usare il seguente ID Cliente e Client Secret per chiedere l'autorizzazione per l'applicazione. Vedere la <a href=\"https://docs.mattermost.com/developer/oauth-2-0-applications.html\">documentazione</a> per altri dettagli.",
"add_oauth_app.doneUrlHelp": "Questi sono gli URL di redirezione autorizzati.",
"add_oauth_app.header": "Aggiungi",
"add_oauth_app.homepage.help": "L'URL della homepage dell'applicazione OAuth 2.0. Inserire HTTP o HTTPS nell'URL, a seconda della configurazione del server.",
- "add_oauth_app.homepageRequired": "E' richiesta una homepage per l'applicazione OAuth 2.0",
+ "add_oauth_app.homepageRequired": "E' richiesta una homepage per l'applicazione OAuth 2.0.",
"add_oauth_app.icon.help": "(Opzionale) L'URL dell'immagine usata per l'applicazione OAuth 2.0. Inserire HTTP o HTTPS nell'URL.",
"add_oauth_app.name.help": "Nome visualizzato per l'applicazione OAuth 2.0. Può contenere fino a 64 caratteri.",
- "add_oauth_app.nameRequired": "E' richiesto un nome per l'applicazione OAuth 2.0",
+ "add_oauth_app.nameRequired": "E' richiesto un nome per l'applicazione OAuth 2.0.",
"add_oauth_app.trusted.help": "Se vero, l'applicazione OAuth 2.0 viene considerata sicura dal server Mattermost e non richiederà all'utente di accettare l'autorizzazione. Quando falso, verrà mostrata una schermata per richiedere all'utente di accettare o rifiutare l'autorizzazione.",
"add_oauth_app.url": "<b> URL</b>: {url}",
"add_outgoing_webhook.callbackUrls": "URL di callback (una per riga)",
@@ -117,7 +117,7 @@
"add_outgoing_webhook.callbackUrlsRequired": "Sono richiesti uno o più URL di callback",
"add_outgoing_webhook.cancel": "Cancella",
"add_outgoing_webhook.channel": "Canale",
- "add_outgoing_webhook.channel.help": "Il canale pubblico che deve ricevere i payload del webhook. Opzionale, se viene specificata almeno una parola Trigger",
+ "add_outgoing_webhook.channel.help": "Il canale pubblico che deve ricevere i payload del webhook. Opzionale, se viene specificata almeno una parola Trigger.",
"add_outgoing_webhook.contentType.help1": "Scegliere il content type con cui verrà inviata la risposta.",
"add_outgoing_webhook.contentType.help2": "Se si sceglie application/x-www-form-urlencoded, il server richiede che i parametri siano codificati in formato URL.",
"add_outgoing_webhook.contentType.help3": "Se si sceglie application/json il server richiede che vengano inviati dati JSON.",
@@ -165,7 +165,7 @@
"admin.cluster.status_table.reload": "Ricaricare status cluster",
"admin.cluster.status_table.status": "Stato",
"admin.cluster.status_table.url": "Indirizzo Gossip",
- "admin.cluster.status_table.version": "Versione:",
+ "admin.cluster.status_table.version": "Versione",
"admin.cluster.unknown": "sconosciuto",
"admin.compliance.directoryDescription": "Cartella per i report di compliance. Se vuoto, sarà impostata a ./data/.",
"admin.compliance.directoryExample": "Es. \"./data/\"",
@@ -214,20 +214,22 @@
"admin.customization.androidAppDownloadLinkDesc": "Aggiungere un collegamento per scaricare l'app Android. Gli utenti che accedano al sito da seb browser mobile verranno sollecitati con l'apertura di una pagina a scaricare l'app. Lasciare il campo in bianco per evitare la comparsa della pagina.",
"admin.customization.androidAppDownloadLinkTitle": "Collegamento per scaricare l'app Android:",
"admin.customization.appDownloadLinkDesc": "Aggiungere un collegamento ad una pagina per scaricare le app di Mattermost. Se è presente il collegamento, verrà aggiunta un'opzione \"Scarica app Mattermost\" al Menu principale: in questo modo gli utenti potranno trovare la pagina di download. Lasciando il campo in bianco si nasconde la voce dal Menu principale.",
- "admin.customization.appDownloadLinkTitle": "Collegamento per scaricare le app di Mattermost",
+ "admin.customization.appDownloadLinkTitle": "Collegamento per scaricare le app di Mattermost:",
"admin.customization.customBrand": "Intestazione personalizzata",
- "admin.customization.customEmoji": "Emoji personalizzati",
+ "admin.customization.emoji": "Emoji",
"admin.customization.enableCustomEmojiDesc": "Abilita gli utenti a creare emoji personalizzati. Se attivato, sarà possibile trovare la voce Emoji personali entrando in un gruppo e cliccando i tre punti sopra alla barra laterale dei canali.",
"admin.customization.enableCustomEmojiTitle": "Abilita Emoji personalizzati:",
- "admin.customization.enableLinkPreviewsDesc": "Abilita gli utenti a mostra un'anteprima del sito web sotto il messaggio, se disponibile. Quando abilitato, l'anteprima del sito web può essere abilitata daImpostazioni Account > Avanzate > Antemprima funzionalità pre-rilascio",
- "admin.customization.enableLinkPreviewsTitle": "Abilita anteprime collegamenti",
+ "admin.customization.enableEmojiPickerDesc": "Il selettore delle emoji consente agli utenti di selezionare un emoji e utilizzarla come reazione o per aggiungerla a un messaggio. Attivare il selettore delle emoji con un elevato numero di emoji personalizzate può rallentare la velocità del sistema.",
+ "admin.customization.enableEmojiPickerTitle": "Attiva il selettore delle emoji:",
+ "admin.customization.enableLinkPreviewsDesc": "Abilita gli utenti a mostra un'anteprima del sito web sotto il messaggio, se disponibile. Quando abilitato, l'anteprima del sito web può essere abilitata daImpostazioni Account > Avanzate > Antemprima funzionalità pre-rilascio.",
+ "admin.customization.enableLinkPreviewsTitle": "Abilita anteprime collegamenti:",
"admin.customization.iosAppDownloadLinkDesc": "Aggiungere un collegamento per scaricare l'app iOS. Gli utenti che accedano al sito da seb browser mobile verranno sollecitati con l'apertura di una pagina a scaricare l'app. Lasciare il campo in bianco per evitare la comparsa della pagina.",
"admin.customization.iosAppDownloadLinkTitle": "Collegamento per scaricare l'app iOS:",
"admin.customization.linkPreviews": "Anteprima collegamenti",
"admin.customization.nativeAppLinks": "Collegamenti App Mattermost",
"admin.customization.restrictCustomEmojiCreationAdmin": "Permetti la creazione di Emoji personalizzati agli amministratori di sistema e di gruppo",
- "admin.customization.restrictCustomEmojiCreationAll": "Permetti a tutti la creazione di Emoji personalizzati",
- "admin.customization.restrictCustomEmojiCreationDesc": "Consenti la creazione di Emoji personalizzati ad alcuni utenti.",
+ "admin.customization.restrictCustomEmojiCreationAll": "Permetti a tutti la creazione di emoji personalizzate",
+ "admin.customization.restrictCustomEmojiCreationDesc": "Consenti la creazione di emoji personalizzate ad alcuni utenti.",
"admin.customization.restrictCustomEmojiCreationSystemAdmin": "Permetti la creazione di Emoji personalizzati solo agli amministratori di sistema",
"admin.customization.restrictCustomEmojiCreationTitle": "Permetti la creazione di Emoji personalizzati:",
"admin.customization.support": "Aspetti legali e supporto",
@@ -235,11 +237,11 @@
"admin.developer.title": "Impostazioni sviluppatori",
"admin.email.agreeHPNS": " Riconosco ed accetto i termini del Servizio di Notifiche Push di Mattermost <a href=\"https://about.mattermost.com/hpns-terms/\" target=\"_blank\">Termini del servizio</a> e <a href=\"https://about.mattermost.com/hpns-privacy/\" target=\"_blank\">Informativa sulla pivacy</a>.",
"admin.email.allowEmailSignInDescription": "Quando abilitato, Mattermost permette agli utenti di registrarsi utilizzando la loro eMail e password.",
- "admin.email.allowEmailSignInTitle": "Abilita accesso con email:",
+ "admin.email.allowEmailSignInTitle": "Abilita accesso con email: ",
"admin.email.allowSignupDescription": "Quando abilitato, Mattermost permette la creazione di gruppi ed iscrizione tramite email e password. Questa impostazione dovrebbe essere disattivata quando si vuole limitare l'iscrizione ad un servizio di single sign-on come OAuth o LDAP.",
- "admin.email.allowSignupTitle": "Abilita creazione account con email:",
+ "admin.email.allowSignupTitle": "Abilita creazione account con email: ",
"admin.email.allowUsernameSignInDescription": "Quando abilitato, Mattermost consente agli utenti di accedere utilizzando il loro username e la password. Questa impostazione è tipicamente utilizzata solo quando la verifica email è disattivata.",
- "admin.email.allowUsernameSignInTitle": "Abilita accesso con nome utente:",
+ "admin.email.allowUsernameSignInTitle": "Abilita accesso con nome utente: ",
"admin.email.connectionSecurityTest": "Connessione di prova",
"admin.email.easHelp": "Vedi altre info sulla compilazione e la distribuzione di proprie app mobili da un <a href=\"http://docs.mattermost.com/deployment/push.html#enterprise-app-store-eas\" target='_blank'>Enterprise App Store</a>.",
"admin.email.emailFail": "Connessione non riuscita: {error}",
@@ -254,12 +256,12 @@
"admin.email.inviteSaltExample": "Es. \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "Seme per inviti email:",
"admin.email.mhpns": "USa connesioni criptate HPNS per le applicazioni iOS and Android",
- "admin.email.mhpnsHelp": "Scarica <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target=\"_blank\">Mattermost iOS app</a> from iTunes. Scarica <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target=\"_blank\">Mattermost Android app</a> da Google Play. Learn more about <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target=\"_blank\">HPNS</a>.",
+ "admin.email.mhpnsHelp": "Scarica <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> da iTunes. Scarica <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a> da Google Play. Scopri di più su <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
"admin.email.mtpns": "Usare le app iOS e Android su iTunes e Google Play con TPNS",
- "admin.email.mtpnsHelp": "Scarica <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost per iOS</a> da iTunes. Scarica <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost per Android</a> da Google Play. Informazioni su <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>",
+ "admin.email.mtpnsHelp": "Scarica <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> da iTunes. Scarica <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a> da Google Play. Scopri di più su <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
"admin.email.nofificationOrganizationExample": "Es. \"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "Nome visualizzato nell'account di posta, usato per le email di notifica di Mattermost.",
- "admin.email.notificationDisplayExample": "Es: Notifica Matttermost\",\"System\",\"No-Reply\"",
+ "admin.email.notificationDisplayExample": "Es: \"Notifica Mattermost\", \"System\", \"No-Reply\"",
"admin.email.notificationDisplayTitle": "Nome visualizzato nelle notifiche:",
"admin.email.notificationEmailDescription": "Indirizzo email mostrato nell'account email usato per spedire le notifiche di Mattermost.",
"admin.email.notificationEmailExample": "Es: \"mattermost@yourcompany.com\", \"admin@yourcompany.com\"",
@@ -282,10 +284,10 @@
"admin.email.pushServerTitle": "Server notifiche push:",
"admin.email.pushTitle": "Abilita notifiche push: ",
"admin.email.requireVerificationDescription": "Normalmente abilitato in produzione. Quando abilitato, Mattermost dopo la creazione dell'utente richiede una verifica tramite email prima di concedere l'accesso. Per rapidità, gli sviluppatori possono disabilitare questo campo per saltare la verifica tramite email.",
- "admin.email.requireVerificationTitle": "Richiedi Email di vrifica ",
+ "admin.email.requireVerificationTitle": "Richiedi Email di verifica : ",
"admin.email.selfPush": "Inserisci manualmente il percorso del Servizio Notifiche Push",
- "admin.email.skipServerCertificateVerification.description": "Quando abilitato, Mattermost non verificherà il certificato del server email",
- "admin.email.skipServerCertificateVerification.title": "Salta Verifica Certifcato Server:",
+ "admin.email.skipServerCertificateVerification.description": "Quando abilitato, Mattermost non verificherà il certificato del server email.",
+ "admin.email.skipServerCertificateVerification.title": "Salta Verifica Certifcato Server: ",
"admin.email.smtpPasswordDescription": " Ottieni questi dati dal amministratore che ha impostato il server email.",
"admin.email.smtpPasswordExample": "Es. \"latuapassword\", \"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\"",
"admin.email.smtpPasswordTitle": "Password server SMTP:",
@@ -293,7 +295,7 @@
"admin.email.smtpPortExample": "Es. \"25\", \"465\", \"587\"",
"admin.email.smtpPortTitle": "Porta server SMTP:",
"admin.email.smtpServerDescription": "Indirizzo del server email SMTP.",
- "admin.email.smtpServerExample": "Es. \"smtp.tuacompagnia.com, \"email-smtp.us-east-1.amazonaws.com\"",
+ "admin.email.smtpServerExample": "Es. \"smtp.tuacompagnia.com\", \"email-smtp.us-east-1.amazonaws.com\"",
"admin.email.smtpServerTitle": "Server SMTP:",
"admin.email.smtpUsernameDescription": " Ottieni questi dati dal amministratore che ha impostato il server email.",
"admin.email.smtpUsernameExample": "Es.: \"admin@tuacompagniacom\", \"AKIADTOVBGERKLCBV\"",
@@ -310,7 +312,7 @@
"admin.general.configuration": "Configurazione",
"admin.general.localization": "Localizzazione",
"admin.general.localization.availableLocalesDescription": "Impostare quali lingue sono disponibili per gli utenti nelle Impostazioni utente (lasciare in bianco per tutte le lingue disponibili). Se si stanno aggiungendo manualmente altre lingue, si deve aggiungere la <strong>Lingua predefinta utente</strong> prima di salvare.<br/><br/>. Se si vuole contribuire alla traduzione, iscriversi al <a href='http://translate.mattermost.com/' target='_blank'>Server traduzioni Mattermost</a>.",
- "admin.general.localization.availableLocalesNoResults": "Nessun risultato trovato.",
+ "admin.general.localization.availableLocalesNoResults": "Nessun risultato trovato",
"admin.general.localization.availableLocalesNotPresent": "La lingua predefinita del client deve essere inclusa nella lista di quelle disponibili",
"admin.general.localization.availableLocalesTitle": "Lingue disponibili:",
"admin.general.localization.clientLocaleDescription": "Lingua predefinita per utenti appena creati e pagine dove l'utente non ha effettuato l'accesso.",
@@ -337,7 +339,7 @@
"admin.general.policy.permissionsAllChannel": "Tutti i membri del canale",
"admin.general.policy.permissionsChannelAdmin": "Amministratori di sistema, di gruppo e di canale",
"admin.general.policy.permissionsDeletePostAdmin": "Amministratori di sistema e di gruppo",
- "admin.general.policy.permissionsDeletePostAll": "L'autore del messaggio lo può cancellare, e gli amministratori possono cancellare qualsiasi messaggio.",
+ "admin.general.policy.permissionsDeletePostAll": "L'autore del messaggio lo può cancellare, e gli amministratori possono cancellare qualsiasi messaggio",
"admin.general.policy.permissionsDeletePostSystemAdmin": "Amministratori di sistema",
"admin.general.policy.permissionsSystemAdmin": "Amministratori di sistema",
"admin.general.policy.restrictPostDeleteDescription": "Imposta chi ha i permessi per cancellare messaggi.",
@@ -394,7 +396,7 @@
"admin.image.amazonS3BucketDescription": "Nome selezionato per il bucket S3 in AWS.",
"admin.image.amazonS3BucketExample": "Es.: \"mattermost-media\"",
"admin.image.amazonS3BucketTitle": "Bucket Amazon S3:",
- "admin.image.amazonS3EndpointDescription": "Nome host del tuo fornitore Storage Compatibile S3. Impostazione Predefinita `s3.amazonaws.com`",
+ "admin.image.amazonS3EndpointDescription": "Nome host del tuo fornitore Storage Compatibile S3. Impostazione Predefinita `s3.amazonaws.com`.",
"admin.image.amazonS3EndpointExample": "Es.: \"s3.amazonaws.com\"",
"admin.image.amazonS3EndpointTitle": "Endpoint S3 Amazon:",
"admin.image.amazonS3IdDescription": "Richiedi questa credenziale dal tuo amministratore EC2 Amazon.",
@@ -444,7 +446,7 @@
"admin.ldap.firstnameAttrTitle": "Nome",
"admin.ldap.idAttrDesc": "L'attributo del server AD/LDAP che sarà usato come identificatore univoco in Mattermost. Deve essere un attributo AD/LDAP con un valore che non cambia, come un nome utente oppure un uid. Se l'attributo ID di un utente cambia, verrà creato un nuovo account Mattermost dissociato dal vecchio account. Questo è il valore usato per entrare in Mattermost nel campo \"Nome utente AD/LDAP\" presente sulla pagina di accesso. Normalmente questo attributo è lo stesso dell'attributo \"Nome utente\" sopra specificato. Se il tuo gruppo utilizza tipicamente il formato dominio\\\\nomeutente per l'accesso ad altri servizi con AD/LDAP, puoi scegliere di inserire la voce dominio\\\\nomeutente in questo campo e mantenere la coerenza tra i siti.",
"admin.ldap.idAttrEx": "Es.: \"sAMAccountName\"",
- "admin.ldap.idAttrTitle": "Attributo ID:",
+ "admin.ldap.idAttrTitle": "Attributo ID: ",
"admin.ldap.lastnameAttrDesc": "(Opzionale) L'attributo del server AD/LDAP che verrà usato per popolare il cognome degli utenti in Mattermost. Quando impostato, gli utenti non potranno modificare il loro cognome perché sarà sincronizzato con il server LDAP. Se lasciato vuoto gli utenti potranno impostare il loro cognome dalle Impostazioni Account.",
"admin.ldap.lastnameAttrEx": "Es.: \"sn\"",
"admin.ldap.lastnameAttrTitle": "Cognome:",
@@ -455,7 +457,7 @@
"admin.ldap.maxPageSizeEx": "Es.: \"2000\"",
"admin.ldap.maxPageSizeHelpText": "Il numero massimo di utenti che il server Mattermost richiederà al server AD/LDAP in una volta sola. 0 significa illimitato.",
"admin.ldap.maxPageSizeTitle": "Dimensione Massima pagina:",
- "admin.ldap.nicknameAttrDesc": "(Opzionale) L'attributo del server AD/LDAP che verrà usato per popolare il soprannome degli utenti in Mattermost. Quando impostato, gli utenti non potranno modificare il loro soprannome perché sarà sincronizzato con il server LDAP. Se lasciato vuoto gli utenti potranno impostare il loro soprannome dalle Impostazioni Account. ",
+ "admin.ldap.nicknameAttrDesc": "(Opzionale) L'attributo del server AD/LDAP che verrà usato per popolare il soprannome degli utenti in Mattermost. Quando impostato, gli utenti non potranno modificare il loro soprannome perché sarà sincronizzato con il server LDAP. Se lasciato vuoto gli utenti potranno impostare il loro soprannome dalle Impostazioni Account.",
"admin.ldap.nicknameAttrEx": "Es.: \"nickname\"",
"admin.ldap.nicknameAttrTitle": "Soprannome:",
"admin.ldap.noLicense": "<h4 class=\"banner__heading\">Nota:</h4><p>AD/LDAP è una funzionalità della versione Enterprise. La licenza usata non include la funzione AD/LDAP. Vedere il sito <a href=\"http://mattermost.com\" target=\"_blank\">Mattermost</a> per informazioni sulle licenze e prezzi.</p>",
@@ -489,18 +491,18 @@
"admin.ldap.usernameAttrTitle": "Nome utente:",
"admin.license.choose": "Scegli file",
"admin.license.chooseFile": "Scegli file",
- "admin.license.edition": "Edizione:",
+ "admin.license.edition": "Edizione: ",
"admin.license.key": "Chiave di Licenza: ",
"admin.license.keyRemove": "Cancella licenza Enterprise ed esegui Downgrade del server",
"admin.license.noFile": "Nessun file caricato",
"admin.license.removing": "Rimozione Licenza...",
"admin.license.title": "Edizione e Licenza",
- "admin.license.type": "Licenza:",
+ "admin.license.type": "Licenza: ",
"admin.license.upload": "Carica",
"admin.license.uploadDesc": "Carica una chiave di licenza per Mattermost Enterprise Edition per aggiornare questo server. <a href=\"http://mattermost.com\" target='_blank'>Vai sul nostro sito</a> per scoprire quali vantaggi offre la versione Enterprise o per acquistare una chiave di licenza.",
"admin.license.uploading": "Invio Licenza...",
"admin.log.consoleDescription": "Tipicamente impostato a false in produzione. Gli sviluppatori posso impostare questo campo a true per inviare i messaggi di log alla console impostata. Se true il server scrive i messaggi sullo standard output stream (stdout).",
- "admin.log.consoleTitle": "Scrive i logs sulla console:",
+ "admin.log.consoleTitle": "Scrive i logs sulla console: ",
"admin.log.enableDiagnostics": "Abilita Diagnostica e Invio Errori:",
"admin.log.enableDiagnosticsDescription": "Abilita questa opzione per aumentare la qualità e le funzionalità di Mattermost inviando informazioni diagnostiche ed errori a Mattermost, Inc. Leggi la nosta <a href=\"https://about.mattermost.com/default-privacy-policy/\" target='_blank'>politica sulla privacy</a> per scoprirne di più.",
"admin.log.enableWebhookDebugging": "Attiva il debug di Webhook:",
@@ -508,7 +510,7 @@
"admin.log.fileDescription": "Tipicamente abilitato in produzione. Quando attivo, i log registrati vengono scritti nel file mattermost.log all'interno della directory specificata nel campo File Log Directory. I log vengono ruotati ogni 10,000 linee ed archiviati in un file presente nella stessa directory, con un nome ed una data comprendente un numero di serie. Per esempio, mattermost.2017-03-31.001.",
"admin.log.fileLevelDescription": "Questa impostazione determina il livello di dettaglio con cui i log vengono scritti. ERROR: Scrive solo messaggi di errore. INFO: Scrive i messaggi di errore e le informazioni di avvio e inizializzazione. DEBUG: Scrive informazioni dettagliate per gli sviluppatori in fase di debug.",
"admin.log.fileLevelTitle": "Livello di log file:",
- "admin.log.fileTitle": "File di log:",
+ "admin.log.fileTitle": "File di log: ",
"admin.log.formatDateLong": "Data (2006/01/02)",
"admin.log.formatDateShort": "Data (01/02/06)",
"admin.log.formatDescription": "Formato del messaggio di log. Se vuoto verrà usato il formato \"[%D %T] [%L] %M\", dove:",
@@ -517,13 +519,13 @@
"admin.log.formatPlaceholder": "Specificare il formato file",
"admin.log.formatSource": "Sorgente",
"admin.log.formatTime": "Ora (15:04:05 MST)",
- "admin.log.formatTitle": "Formato file di log",
+ "admin.log.formatTitle": "Formato file di log:",
"admin.log.levelDescription": "Questa impostazione determina il livello di dettaglio con cui il log degli eventi è inviato alla console. ERROR: Scrive solo i messaggi di errore. INFO: Scrive i messaggi di errore e le informazioni di avvio e inizializzazione. DEBUG: Scrive informazioni dettagliate per gli sviluppatori in fase di debug.",
"admin.log.levelTitle": "Livello log di console:",
"admin.log.locationDescription": "Il percorso dei file di log. Se vuoto verranno salvati nella directory ./logs. Il percorso impostato deve esistere e Mattermost deve avere la possibilità di scrivervi.",
"admin.log.locationPlaceholder": "Immetti la posizione del tuo file",
"admin.log.locationTitle": "Cartella file di log:",
- "admin.log.logSettings": "Settaggi di Log",
+ "admin.log.logSettings": "Impostazioni di Log",
"admin.logs.bannerDesc": "Per cercare gli utenti tramite ID, andare in Reportistica > Utenti ed incollare l'ID nel campo di ricerca.",
"admin.logs.reload": "Ricarica",
"admin.logs.title": "Log del Server",
@@ -534,7 +536,7 @@
"admin.metrics.listenAddressTitle": "Indirizzo di ascolto:",
"admin.mfa.bannerDesc": "<a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>Autenticazione Multi-fattore</a> è disponibile per gli account con login AD/LDAP. Qualora vengano adoperati altri metodi di autenticazione sarà necessario configurare MFS con il provider di autenticazione.",
"admin.mfa.cluster": "Alta",
- "admin.mfa.title": "Autenticazione Multi-fattore:",
+ "admin.mfa.title": "Autenticazione Multi-fattore",
"admin.nav.administratorsGuide": "Guida dell'amministratore",
"admin.nav.commercialSupport": "Supporto commerciale",
"admin.nav.help": "Aiuto",
@@ -550,7 +552,7 @@
"admin.oauth.off": "Impedisci l'autenticazione tramite un fornitore OAuth 2.0",
"admin.oauth.office365": "Office 365 (Beta)",
"admin.oauth.providerDescription": "Quando abilitato, Mattermost può funzionare come un provider di servizio OAuth 2.0 abilitando se stesso all'autorizzazione di richieste API provenienti da applicazioni esterne. Consultare la <a target='_blank' href=\"https://docs.mattermost.com/developer/oauth-2-0-applications.html\">documentazione</a> per ottenere maggiori informazioni.",
- "admin.oauth.providerTitle": "Attiva fornitore servizio OAuth 2.0:",
+ "admin.oauth.providerTitle": "Attiva fornitore servizio OAuth 2.0: ",
"admin.oauth.select": "Seleziona fornitore servizio OAuth 2.0:",
"admin.office365.EnableHtmlDesc": "<ol><li><a target='_blank' href='https://login.microsoftonline.com/'>Accedi</a> al tuo account Microsoft o Office 365 account. Assicurati che l'account appartenga allo stesso <a target='_blank' href='https://msdn.microsoft.com/en-us/library/azure/jj573650.aspx#Anchor_0'>tenant</a> con cui vuoi che gli utenti accedano.</li><li>Vai a <a target='_blank' href='https://apps.dev.microsoft.com'>https://apps.dev.microsoft.com</a>, clicca <strong>Vai alla lista delle app</strong> > <strong>Aggiungi un app</strong> e utillizza \"Mattermost - nome-della-compagnia\" come <strong>Nome applicazione</strong>.</li><li>In <strong>Segreto Applicazione</strong>, clicca <strong>Genera Nuova Password</strong> e incolla questo valore nel campo <strong>Password Segreta Applicazione</strong> sottostante.</li><li>In <strong>Piattaforme</strong>, clicca <strong>Aggiungi Piattaforma</strong>, scegli <strong>Web</strong> e inserisci <strong>url-mattermost/signup/office365/complete</strong> (esempio: http://localhost:8065/signup/office365/complete) in <strong>Reindirizza URIs</strong>. Deseleziona anche <strong>Consenti Flusso Implicito</strong>.</li><li>Infine, clicca <strong>Salva</strong> e incolla l'<strong>ID Applicazione</strong> nel campo sottostante</li></ol>",
"admin.office365.authTitle": "Auth Endpoint:",
@@ -575,13 +577,13 @@
"admin.privacy.showEmailDescription": "Se false, nasconde gli indirizzi email dei membri a tutti gli utenti esclusi gli Amministratori di Sistema.",
"admin.privacy.showEmailTitle": "Mostra Indirizzo Email: ",
"admin.privacy.showFullNameDescription": "Se false, nascone i nomi completi dei membri a tutti gli utenti esclusi gli Amministratori di Sistema. Al posto del nome completo verrà visualizzato il nome utente.",
- "admin.privacy.showFullNameTitle": "Mostra nome completo:",
+ "admin.privacy.showFullNameTitle": "Mostra nome completo: ",
"admin.purge.button": "Svuota tutte le Cache",
"admin.purge.loading": "Caricamento...",
"admin.purge.purgeDescription": "Svuota tutte le cache in memoria da oggetti come sessioni, account, canali, ecc. Installazioni che utilizzano meccanismi di Alta Affidabilità proveranno a svuotare tutti i server nel cluster. Svuotare le cache può avere effetti sulle performance.",
"admin.purge.purgeFail": "Pulizia non riuscita: {error}",
"admin.rate.enableLimiterDescription": "Quando abilitato, le API sono rallentate al limite espresso qui di seguito.",
- "admin.rate.enableLimiterTitle": "Attiva limite di velocità:",
+ "admin.rate.enableLimiterTitle": "Attiva limite di velocità: ",
"admin.rate.httpHeaderDescription": "Se impostato, varia il limite di velocità secondo l'header HTTP specificato (es. configurando NGINX impostare a \"X-Real-IP\", configurando AmazonELD impostare a \"X-Forwarded-For\").",
"admin.rate.httpHeaderExample": "Es.: \"X-Real-IP\", \"X-Forwarded-For\"",
"admin.rate.httpHeaderTitle": "Varia il limite di velocità secondo l'header HTTP:",
@@ -592,7 +594,7 @@
"admin.rate.memoryExample": "Es.: \"10000\"",
"admin.rate.memoryTitle": "Dimensione Allocazione Memoria:",
"admin.rate.noteDescription": "Per rendere effettive le modifiche apportate in questa sezione ad impostazioni diverse da Site URL richiederà il riavvio del server.",
- "admin.rate.noteTitle": "Note:",
+ "admin.rate.noteTitle": "Nota:",
"admin.rate.queriesDescription": "Restringere il tasso di richieste API a questo numero per secondo.",
"admin.rate.queriesExample": "Es.: \"10\"",
"admin.rate.queriesTitle": "Numero massimo di Richieste al secondo:",
@@ -601,13 +603,20 @@
"admin.rate.title": "Impostazioni limite di velocità",
"admin.recycle.button": "Riutilizza connessioni al database",
"admin.recycle.loading": "Riutilizzo...",
- "admin.recycle.recycleDescription": "Installazioni che utilizzano database multipli possono cambiare da un database principale ad un altro senza riavviare il server Mattermost, aggiornando il file \"config.json\" con la nuova configurazione e utilizzando il comando <a href=\"../general/configuration\"><b>Configuration > Ricarica Configurazione da Disco</b></a>. L'amministratore deve usare il comando <b>Riutilizza connessioni al database</b> per riutilizzare le connessioni al database con le nuove impostazioni.",
+ "admin.recycle.recycleDescription": "Installazioni che utilizzano database multipli possono cambiare da un database principale ad un altro senza riavviare il server Mattermost, aggiornando il file \"config.json\" con la nuova configurazione e utilizzando la funzionalità {reloadConfiguration} per caricare le nuove impostazioni mentre il server gira. L'amministratore deve usare la funzionalità {featureName} per riutilizzare le connessioni al database con le nuove impostazioni.",
+ "admin.recycle.recycleDescription.featureName": "Riutilizza connessioni al database",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Configurazione > Ricarica la configurazione dal disco",
"admin.recycle.reloadFail": "Riutilizzo connessioni non riuscito: {error}",
"admin.regenerate": "Rigenera",
"admin.reload.button": "Ricarica Configurazione Dal Disco",
"admin.reload.loading": " Caricamento...",
- "admin.reload.reloadDescription": "Installazioni che utilizzano database multipli possono cambiare da un database principale ad un altro senza riavviare il server Mattermost, aggiornando il file \"config.json\" con la nuova configurazione e utilizzando il comando <b>Ricarica Configurazione da Disco</b>. L'amministratore deve usare il comando <a href=\"../advanced/database\"><b>Database > Riutilizza Connessioni al database</b></a> per riutilizzare le connessioni al database con le nuove impostazioni.",
+ "admin.reload.reloadDescription": "Le installazioni che utilizzano database multipli possono cambiare da un database principale ad un altro senza riavviare il server Mattermost, aggiornando il file \"config.json\" con la nuova configurazione e utilizzando la funzionalità {featureName} per caricare le nuove impostazioni mentre il server gira. L'amministratore deve usare la funzionalità {recycleDatabaseConnections} per riutilizzare le connessioni al database con le nuove impostazioni.",
+ "admin.reload.reloadDescription.featureName": "Ricarica la configurazione dal Disco",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Database > Riutilizza connessioni al database",
"admin.reload.reloadFail": "Ricaricamento non riuscito: {error}",
+ "admin.requestButton.loading": "Caricamento...",
+ "admin.requestButton.requestFailure": "Errore: {error}",
+ "admin.requestButton.requestSuccess": "Test eseguito con successo",
"admin.reset_password.close": "Chiudi",
"admin.reset_password.newPassword": "Nuova Password",
"admin.reset_password.select": "Seleziona",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "Abilita richieste cross-origin da:",
"admin.service.developerDesc": "Quando abilitato, gli errori JavaScript vengono mostrati all'interno di una barra rossa nella parte alta dell'interfaccia utente. Uso non raccomandato in produzione. ",
"admin.service.developerTitle": "Abilita Modalità Sviluppatore: ",
+ "admin.service.enableAPIv3": "Consenti l'utilizzo delle API versione 3:",
+ "admin.service.enableAPIv3Description": "Imposta a false per disattivare la versione 3 delle API REST. Le integrazioni che si basano sulle API v3 smetteranno di funzionare e potranno essere identificate per essere migrate alle API v4. Le API v3 sono considerate deprecate e saranno rimosse nelle prossime release. Vedere <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> per ulteriori dettagli.",
"admin.service.enforceMfaDesc": "Quando vero, per effettuare il login è necessario usare<a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>autenticazione multi-fattore</a>. I nuovi utenti saranno obbligati ad impostare MFA durante l'iscrizione. Gli utenti che hanno già eseguito l'accesso senza MFA saranno confinati nella pagina di impostazione MFA fino al completamento della procedura.<br/><br/>Se il tuo sistema comprende utenti con meccanismi di login diversi da AD/LDAP ed email, MFA dovrà essere forzato tramite il provider di autenticazione all'infuori di Mattermost.",
"admin.service.enforceMfaTitle": "Forza Autenticazione Multifattore:",
"admin.service.forward80To443": "Inoltra porta 80 su 443:",
@@ -723,7 +734,7 @@
"admin.service.readTimeout": "Timeout Lettura:",
"admin.service.readTimeoutDescription": "Tempo massimo ammesso da quando la connessione è stata accettata a quando la il body della richiesta è stato completamente letto.",
"admin.service.securityDesc": "Se true, gli Amministratori di Sistema sono notificati tramite email se delle importanti fix di sicurezza sono stati annunciate nelle ultime 12 ore. Le email devono essere attive.",
- "admin.service.securityTitle": "Abilita notifiche di sicurezza:",
+ "admin.service.securityTitle": "Abilita notifiche di sicurezza: ",
"admin.service.sessionCache": "Cache di session (minuti):",
"admin.service.sessionCacheDesc": "Il numero di minuti in cui tenere una sessione in memoria.",
"admin.service.sessionDaysEx": "Es.: \"30\"",
@@ -733,7 +744,7 @@
"admin.service.ssoSessionDays": "Durata sessione SSO (giorni):",
"admin.service.ssoSessionDaysDesc": "Il numero di giorni dall'ultimo login alla scadenza della sessione utente. Se il metodo di autenticazione è SAML oppure GitLab, l'utente può automaticamente riaccedere se è già loggato in SAML o GitLab. Eventuali modifiche a questa impostazione avranno effetto dalla prossima volta in cui l'utente inserisce le sue credenziali.",
"admin.service.testingDescription": "Se true, il comando /test è attivo per provare account, dati e formattazione del testo. Eventuali modifiche richiedono il riavvio del server per avere effetto.",
- "admin.service.testingTitle": "Abilita comandi di test:",
+ "admin.service.testingTitle": "Abilita comandi di test: ",
"admin.service.tlsCertFile": "File del certificato TLS:",
"admin.service.tlsCertFileDescription": "Il file del certificato da utilizzare.",
"admin.service.tlsKeyFile": "File della chiave TLS:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "Configurazione",
"admin.sidebar.connections": "Connessioni",
"admin.sidebar.customBrand": "Intestazione personalizzata",
- "admin.sidebar.customEmoji": "Emoji personalizzati",
"admin.sidebar.customIntegrations": "Integrazione personalizzata",
"admin.sidebar.customization": "Personalizzazione",
"admin.sidebar.database": "Database",
"admin.sidebar.developer": "Sviluppatore",
"admin.sidebar.email": "Email",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "Servizi esterni",
"admin.sidebar.files": "Files",
"admin.sidebar.general": "Generale",
@@ -802,7 +813,7 @@
"admin.sidebarHeader.systemConsole": "Console di Sistema",
"admin.sql.dataSource": "Sorgente dati:",
"admin.sql.driverName": "Nome Driver:",
- "admin.sql.keyDescription": "Salt a 32 caratteri disponibile per codificare e decodificare i campi sensibili nel database.",
+ "admin.sql.keyDescription": "salt a 32 caratteri disponibile per codificare e decodificare i campi sensibili nel database.",
"admin.sql.keyExample": "Es.: \"gxHVDcKUyP2y1eiyW8S8na1UYQAfq6J6\"",
"admin.sql.keyTitle": "Chiave di codifica At Rest:",
"admin.sql.maxConnectionsDescription": "Numero massimo di connessioni inattive mantenute aperte con il database.",
@@ -836,21 +847,21 @@
"admin.support.termsTitle": "Collegamento Termini di Utilizzo:",
"admin.system_analytics.activeUsers": "Utenti attivi con post",
"admin.system_analytics.title": "il Sistema",
- "admin.system_analytics.totalPosts": "Post totali",
+ "admin.system_analytics.totalPosts": "Pubblicazioni totali",
"admin.system_users.allUsers": "Tutti gli utenti",
"admin.system_users.noTeams": "Nessun gruppo",
"admin.system_users.title": "Utenti {siteName}",
"admin.team.brandDesc": "Abilita marchio pesonalizzato per visualizzare un'immagine a tua scelta, caricabile qui sotto, e un testo di aiuto, inseribile qui sotto, nella pagina di accesso.",
- "admin.team.brandDescriptionExample": "Tutte le tue comunicazioni di gruppo in un posto, ricercabili e accessibili ovunque.",
+ "admin.team.brandDescriptionExample": "Tutte le tue comunicazioni di gruppo in un posto, ricercabili e accessibili ovunque",
"admin.team.brandDescriptionHelp": "Descrizione del servizio visualizzata nella pagina di login e nell'interfaccia utente. Se non specificato viene visualizzato \"Tutte le tue comunicazioni di gruppo in un posto, ricercabili e accessibili ovunque\".",
- "admin.team.brandDescriptionTitle": "Descrizione del sito:",
+ "admin.team.brandDescriptionTitle": "Descrizione del sito: ",
"admin.team.brandImageTitle": "Logo personalizato:",
"admin.team.brandTextDescription": "Testo che comparirà sotto l'immagine del marchio personalizzato sulla pagina di login. Supporta il testo formattato in html. Massimo 500 caratteri.",
- "admin.team.brandTextTitle": "Testo marchio personalizzato",
- "admin.team.brandTitle": "Abilita marchio personalizzato:",
+ "admin.team.brandTextTitle": "Testo marchio personalizzato:",
+ "admin.team.brandTitle": "Abilita marchio personalizzato: ",
"admin.team.chooseImage": "Scegli Nuova Immmagine",
"admin.team.dirDesc": "Se true, i gruppi che sono configurati per essere visualizzati nella cartella gruppi saranno visualizzati nella pagina principale al posto della voce \"crea nuovo gruppo\".",
- "admin.team.dirTitle": "Abilita Cartella Gruppi:",
+ "admin.team.dirTitle": "Abilita Cartella Gruppi: ",
"admin.team.maxChannelsDescription": "Numero totate di canali (attivi e cancellati) per gruppo.",
"admin.team.maxChannelsExample": "Es.: \"100\"",
"admin.team.maxChannelsTitle": "Numero massimo di canali per gruppo:",
@@ -862,34 +873,34 @@
"admin.team.maxUsersTitle": "Numero massimo di utenti per gruppo:",
"admin.team.noBrandImage": "Nessun immagine logo caricata",
"admin.team.openServerDescription": "Se true, chiunque per registrare un account utente su questo server senza essere stato invitato.",
- "admin.team.openServerTitle": "Abilita Server Aperto:",
+ "admin.team.openServerTitle": "Abilita Server Aperto: ",
"admin.team.restrictDescription": "Gruppi e utenti possono essere creati solo da un dominio specifico (es. \"mattermost.org\") o da una lista di domini separati da virgola (es. \"corp.mattermost.com, mattermost.org\").",
"admin.team.restrictDirectMessage": "Abilita gli utenti ad aprire canali di Messaggi Diretti con:",
"admin.team.restrictDirectMessageDesc": "'Tutti gli utenti su questo server Mattermost' abilita gli utenti a inviare Messaggi Diretti con qualsiasi utente sul server, anche se non appartengono a nessun gruppo comune. 'Tutti i membri del gruppo' limita l'abilità di inviare Messaggi Diretti solo agli utenti che appartengono allo stesso gruppo.",
"admin.team.restrictExample": "Es.: \"corp.mattermost.com, mattermost.org\"",
"admin.team.restrictNameDesc": "Se true, non è possibile creare gruppo con nomi che contengono parole riservate ad esempio www, admin, support, test, channel, ecc",
- "admin.team.restrictNameTitle": "Restringi Nomi Gruppo",
+ "admin.team.restrictNameTitle": "Restringi Nomi Gruppo: ",
"admin.team.restrictTitle": "Restringi la creazione di account ai domini specificati:",
"admin.team.restrict_direct_message_any": "Qualunque utente sul server Mattermost",
"admin.team.restrict_direct_message_team": "Qualsiasi membro del gruppo",
- "admin.team.showFullname": "Show first and last name (default)",
+ "admin.team.showFullname": "Visualizza nome e cognome (default)",
"admin.team.showNickname": "Visualizza soprannome se esiste, altrimenti visualizza nome e cognome",
- "admin.team.showUsername": "Show username",
+ "admin.team.showUsername": "Visualizza nome utente",
"admin.team.siteNameDescription": "Nome del servizio visualizzato nella pagina di accesso e nell'interfaccia utente.",
"admin.team.siteNameExample": "Es.: \"Mattermost\"",
"admin.team.siteNameTitle": "Nome del sito:",
"admin.team.teamCreationDescription": "Se false, solo gli Amministratori di Sistema possono creare Gruppi.",
- "admin.team.teamCreationTitle": "Abilita creazione gruppi:",
- "admin.team.teammateNameDisplay": "Visualizza nome collega",
+ "admin.team.teamCreationTitle": "Abilita creazione gruppi: ",
+ "admin.team.teammateNameDisplay": "Visualizza nome collega:",
"admin.team.teammateNameDisplayDesc": "Seleziona come visualizzare i nomi degli altri utenti nelle pubblicazioni e nelle liste dei messaggi diretti.",
"admin.team.upload": "Carica",
"admin.team.uploadDesc": "Personalizza la tua esperienza utente aggiungendo un'immagine personalizzata alla pagina di accesso. La dimensione massima raccomandata per l'immagine è inferiore ai 2 MB.",
"admin.team.uploaded": "Caricato!",
"admin.team.uploading": "Invio..",
"admin.team.userCreationDescription": "Se false, la creazione di nuovi account è disattivata. Il pulsate di creazione account visualizza un errore se cliccato.",
- "admin.team.userCreationTitle": "Abilita creazione account:",
+ "admin.team.userCreationTitle": "Abilita creazione account: ",
"admin.team_analytics.activeUsers": "Utenti attivi con post",
- "admin.team_analytics.totalPosts": "Post totali",
+ "admin.team_analytics.totalPosts": "Pubblicazioni totali",
"admin.true": "vero",
"admin.user_item.authServiceEmail": "<strong>Metodo di accesso:</strong> Email",
"admin.user_item.authServiceNotEmail": "<strong>Metodo di accesso:</strong> {service}",
@@ -910,11 +921,11 @@
"admin.user_item.mfaYes": "<strong>AMF</strong>: Sì",
"admin.user_item.resetMfa": "Rimuovi AMF",
"admin.user_item.resetPwd": "Reimposta password",
- "admin.user_item.switchToEmail": "Cambia a Email / Password",
+ "admin.user_item.switchToEmail": "Cambia a Email/Password",
"admin.user_item.sysAdmin": "Amministratore di sistema",
"admin.user_item.teamAdmin": "Amministratore di Gruppo",
"admin.webrtc.enableDescription": "Se true, Mattermost permetti di fare videochiamate <strong>uno-a-uno</strong>. Le chiamate WebRTC sono disponibili su Chrome, Firefox e l'App Mattermost Desktop.",
- "admin.webrtc.enableTitle": "Abilita Mattermost WebRTC:",
+ "admin.webrtc.enableTitle": "Abilita Mattermost WebRTC: ",
"admin.webrtc.gatewayAdminSecretDescription": "Inserisci la password segreta di amministrazione per accedere all'URL del Gateway di Amministrazione.",
"admin.webrtc.gatewayAdminSecretExample": "Es.: \"PVRzWNN1Tg6szn7IQWvhpAvLByScWxdy\"",
"admin.webrtc.gatewayAdminSecretTitle": "Segreto del Gateway di Amministrazione:",
@@ -940,7 +951,7 @@
"admin.webserverModeDisabledDescription": "Il server Mattermost non invierà file statici.",
"admin.webserverModeGzip": "gzip",
"admin.webserverModeGzipDescription": "Il server Mattermost invierà i file statici compressi con gzip.",
- "admin.webserverModeHelpText": "la compression gzip applicata ai file statici. E' consigliato attivare gzip per aumentare le performance a meno che l'ambiente di installazione non abbia specifiche restrizioni, come un proxy web che non gestisce gzip.",
+ "admin.webserverModeHelpText": "la compressione gzip applicata ai file statici. E' consigliato attivare gzip per aumentare le performance a meno che l'ambiente di installazione non abbia specifiche restrizioni, come un proxy web che non gestisce gzip.",
"admin.webserverModeTitle": "Modalità webserver:",
"admin.webserverModeUncompressed": "Non compressa",
"admin.webserverModeUncompressedDescription": "Il server Mattermost invierà i contenuti statici non compressi.",
@@ -950,26 +961,26 @@
"analytics.system.channelTypes": "Tipi di canale",
"analytics.system.dailyActiveUsers": "Utenti attivi quotidianamente",
"analytics.system.monthlyActiveUsers": "Utenti attivi mensilmente",
- "analytics.system.postTypes": "Post, File e Hashtag",
+ "analytics.system.postTypes": "Pubblicazioni, File e Hashtag",
"analytics.system.privateGroups": "Canali Privati",
"analytics.system.publicChannels": "Canali Pubblici",
"analytics.system.skippedIntensiveQueries": "Per massimizzare le performance, alcune statistiche sono state disattivate. Puoi riattivarle nel file config.json. Vedi <a href='https://docs.mattermost.com/administration/statistics.html' target='_blank'>https://docs.mattermost.com/administration/statistics.html</a>",
- "analytics.system.textPosts": "Post con solo testo",
+ "analytics.system.textPosts": "Pubblicazioni con solo testo",
"analytics.system.title": "Statistiche di Sistema",
"analytics.system.totalChannels": "Canali totali",
"analytics.system.totalCommands": "Comandi totali",
- "analytics.system.totalFilePosts": "Post con file",
- "analytics.system.totalHashtagPosts": "Post con Hashtags",
+ "analytics.system.totalFilePosts": "Pubblicazioni con file",
+ "analytics.system.totalHashtagPosts": "Pubblicazioni con Hashtags",
"analytics.system.totalIncomingWebhooks": "Webhooks in ingresso",
"analytics.system.totalMasterDbConnections": "Connessioni al database principale",
"analytics.system.totalOutgoingWebhooks": "Webhooks in uscita",
- "analytics.system.totalPosts": "Post totali",
+ "analytics.system.totalPosts": "Pubblicazioni totali",
"analytics.system.totalReadDbConnections": "Connessioni al database di replica",
"analytics.system.totalSessions": "Sessioni totali",
"analytics.system.totalTeams": "Gruppi totali",
"analytics.system.totalUsers": "Utenti totali",
"analytics.system.totalWebsockets": "Connessioni WebSocket",
- "analytics.team.activeUsers": "Utenti Attivi Con Post",
+ "analytics.team.activeUsers": "Utenti Attivi Con Pubblicazioni",
"analytics.team.newlyCreated": "Utenti Creati Recentemente",
"analytics.team.noTeams": "Non sono presenti gruppi su questo server per i quali visualizzare statistiche.",
"analytics.team.privateGroups": "Canali Privati",
@@ -977,7 +988,7 @@
"analytics.team.recentActive": "Utenti Attivi Recentemente",
"analytics.team.recentUsers": "Utenti Attivi Recentemente",
"analytics.team.title": "Statistiche gruppo per {team}",
- "analytics.team.totalPosts": "Post totali",
+ "analytics.team.totalPosts": "Pubblicazioni totali",
"analytics.team.totalUsers": "Utenti totali",
"api.channel.add_member.added": "{addedUsername} aggiunto al canale da {username}",
"api.channel.delete_channel.archived": "{username} ha archiviato il canale.",
@@ -1040,9 +1051,9 @@
"audit_table.updateGeneral": "Aggiorna le impostazioni generali del tuo account",
"audit_table.updateGlobalNotifications": "Aggiorna le impostazioni globali di notifica",
"audit_table.updatePicture": "Aggiorna la tua immagine profilo",
- "audit_table.updatedRol": "Ruolo(i) utente aggiornati a ",
+ "audit_table.updatedRol": "Ruolo utente aggiornati a ",
"audit_table.userAdded": "Aggiungo {username} al canale {channelName}",
- "audit_table.userId": "ID utente:",
+ "audit_table.userId": "ID utente",
"audit_table.userRemoved": "Rimosso {username} dal canale {channelName}",
"audit_table.verified": "Indirizzo email verificato correttamente",
"authorize.access": "Permetti l'accesso a <strong>{appName}</strong>?",
@@ -1058,7 +1069,7 @@
"backstage_sidebar.integrations.incoming_webhooks": "Webhooks in ingresso",
"backstage_sidebar.integrations.oauthApps": "Applicazioni OAuth 2.0",
"backstage_sidebar.integrations.outgoing_webhooks": "Webhooks in uscita",
- "calling_screen": "Chiamata...",
+ "calling_screen": "Chiamata",
"center_panel.recent": "Click qui per andare ai messaggi recenti. ",
"change_url.close": "Chiudi",
"change_url.endWithLetter": "L'URL deve finire con una lettera o con un numero.",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "L'URL del canale deve contenere 2 o più caratteri alfanumerici minuscoli",
"channel_flow.invalidName": "Nome canale non valido",
"channel_flow.set_url_title": "Imposta URL del canale",
+ "channel_header.addChannelHeader": "Aggiungi una descrizione al canale",
"channel_header.addMembers": "Aggiungi Membri",
"channel_header.addToFavorites": "Aggiungi a preferiti",
"channel_header.channelHeader": "Modifica titolo canale",
+ "channel_header.channelMembers": "Membri",
"channel_header.delete": "Elimina Canale",
- "channel_header.flagged": "Post segnati",
+ "channel_header.flagged": "Pubblicazioni segnati",
"channel_header.leave": "Abbandona canale",
"channel_header.manageMembers": "Gestione Membri",
"channel_header.notificationPreferences": "Preferenze delle Notifiche",
+ "channel_header.pinnedPosts": "Pubblicazioni bloccate",
"channel_header.recentMentions": "Citazioni Recenti",
"channel_header.removeFromFavorites": "Rimuovi dai preferiti",
"channel_header.rename": "Rinomina Canale",
@@ -1156,7 +1170,7 @@
"channel_select.placeholder": "--- Seleziona un canale ---",
"channel_switch_modal.dm": "(Messaggio diretto)",
"channel_switch_modal.failed_to_open": "Impossibile aprire un canale.",
- "channel_switch_modal.not_found": "Nessuna corrispondenza trovata",
+ "channel_switch_modal.not_found": "Nessuna corrispondenza trovata.",
"channel_switch_modal.submit": "Scambia",
"channel_switch_modal.title": "Cambia canali",
"claim.account.noEmail": "Nessuna email specificata",
@@ -1220,7 +1234,7 @@
"create_team.display_name.required": "Il campo è richiesto",
"create_team.display_name.teamName": "Nome del gruppo",
"create_team.team_url.back": "Torna al passo precedente",
- "create_team.team_url.charLength": "Il Nome deve essere di almeno {min} caratteri e massimo {max}",
+ "create_team.team_url.charLength": "Il nome deve essere di almeno {min} caratteri e massimo {max}",
"create_team.team_url.creatingTeam": "Creazione gruppo...",
"create_team.team_url.finish": "Fine",
"create_team.team_url.hint": "<li>Breve e mnemonico è perfetto</li><li>Utilizza lettere minuscole, numero e trattini</li><li>Deve iniziare con una lettera e non può finire con un trattino</li>",
@@ -1274,7 +1288,7 @@
"email_signup.emailError": "Inserisci un indirizzo email valido.",
"email_signup.find": "Trova i miei gruppi",
"email_verify.almost": "{siteName}: Hai quasi finito",
- "email_verify.failed": " Invio email di verifica fallito",
+ "email_verify.failed": " Invio email di verifica fallito.",
"email_verify.notVerifiedBody": "Verifica il tuo indirizzo email. Controlla la posta in arrivo nella tua email.",
"email_verify.resend": "Email re inviata",
"email_verify.sent": " Email di verifica inviata.",
@@ -1290,7 +1304,7 @@
"emoji_list.delete.confirm.title": "Cancella Emoji personalizzato",
"emoji_list.empty": "Nessun Emoji personalizzato trovato",
"emoji_list.header": "Emoji personalizzati",
- "emoji_list.help": "Gli emoki personalizzati sono disponibili a tutti sul tuo server. Digita ':' nella casella del messaggio per visualizzate il menu di seleziona emoji. Gli altri utenti potrebbero dover aggiornare la pagina prima di veder comparire le nuove emoji.",
+ "emoji_list.help": "Gli emoji personalizzati sono disponibili a tutti sul tuo server. Digita ':' nella casella del messaggio per visualizzare il menu di selezione emoji. Gli altri utenti potrebbero dover aggiornare la pagina prima di veder comparire le nuove emoji.",
"emoji_list.help2": "Consiglio: Se aggiungi #, ## o ### come primo carattere su una nuova linea contenente emoji, puoi usare emoji più grandi. Per provarlo, invia un messaggio ad esempio: '# :smile:'.",
"emoji_list.image": "Immagine",
"emoji_list.name": "Nome",
@@ -1299,7 +1313,7 @@
"emoji_picker.activity": "Attività",
"emoji_picker.custom": "Personalizzata",
"emoji_picker.emojiPicker": "Selettore Emoji",
- "emoji_picker.flags": "Flags",
+ "emoji_picker.flags": "Contrassegni",
"emoji_picker.food": "Cibo",
"emoji_picker.nature": "Natura",
"emoji_picker.objects": "Oggetti",
@@ -1315,7 +1329,7 @@
"error.not_found.link_message": "Torna a Mattermost",
"error.not_found.message": "La pagina che cerchi di raggiungere non esiste",
"error.not_found.title": "Pagina non trovata",
- "error_bar.expired": "La lincenza Enterprise è scaduta e alcune funzionalità possono essere state disattivate. <a href='{link}' target='_blank'>Rinnova ora la licenza</a>",
+ "error_bar.expired": "La lincenza Enterprise è scaduta e alcune funzionalità possono essere state disattivate. <a href='{link}' target='_blank'>Rinnova ora la licenza</a>.",
"error_bar.expiring": "La licenza Enterprise scade il {date}. <a href='{link}' target='_blank'>Rinnova ora la licenza</a>.",
"error_bar.past_grace": "La licenza Enterprise è scaduta e alcune funzionalità possono essere state disattivate. Contatta il tuo Amministratore di Sistema per ulteriori dettagli.",
"error_bar.preview_mode": "Modalità anteprima: Le notifiche email non sono state configurate",
@@ -1350,8 +1364,8 @@
"find_team.placeholder": "tuo@dominio.com",
"find_team.send": "Invia",
"find_team.submitError": "Inserisci un indirizzo email valido",
- "flag_post.flag": "Flag per seguire",
- "flag_post.unflag": "Togli flag",
+ "flag_post.flag": "Contrassegna",
+ "flag_post.unflag": "Togli contrassegno",
"general_tab.chooseDescription": "Scegli una nuova descrizione per il tuo gruppo",
"general_tab.codeDesc": "Clicka su 'Modifica' per rigenerare il codice di invito.",
"general_tab.codeLongDesc": "Il codice di invito è usato come parte dell'URL nel collemento di invito ad unirsi a un gruppo {getTeamInviteLink} nel menu principale. Rigenerarlo crea un nuovo collegamento di unione al gruppo e invalida il collegamento precedente.",
@@ -1368,7 +1382,7 @@
"general_tab.teamDescriptionInfo": "La descrizione del gruppo offre informazioni aggiunti per aiutare gli utenti a scegliere il gruppo corretto. Massimo 50 caratteri.",
"general_tab.teamName": "Nome del gruppo",
"general_tab.teamNameInfo": "Imposta il nome del gruppo così come appare nella tua schermata di accesso e in cima alla barra laterale.",
- "general_tab.title": "Settaggi Generali",
+ "general_tab.title": "Impostazioni Generali",
"general_tab.yes": "Si",
"get_app.alreadyHaveIt": "Lo possiedi già?",
"get_app.androidAppName": "Mattermost per Android",
@@ -1382,16 +1396,16 @@
"get_link.clipboard": " Collegamento copiato",
"get_link.close": "Chiudi",
"get_link.copy": "Copia collegamento",
- "get_post_link_modal.help": "Il collegamento sottostante permette agli utenti autorizzati di vedere le tue pubblicazioni",
+ "get_post_link_modal.help": "Il collegamento sottostante permette agli utenti autorizzati di vedere le tue pubblicazioni.",
"get_post_link_modal.title": "Copia permalink",
"get_public_link_modal.help": "Il collegamento sottostante permette a chiunque di vedere questo file senza essere registrato su questo server.",
"get_public_link_modal.title": "Copia collegamento pubblico",
- "get_team_invite_link_modal.help": "Invia ai colleghi il collegamento sottostante per farli aggiungere a questo sito. Il collegamento di invito al gruppo può essere condiviso con più colleghi dal momento che non cambia se non viene rigenerato nelle Impostazioni del Gruppo dal un Amministratore di Gruppo.",
+ "get_team_invite_link_modal.help": "Invia ai colleghi il collegamento sottostante per farli aggiungere a questo gruppo. Il collegamento di invito al gruppo può essere condiviso con più colleghi dal momento che non cambia se non viene rigenerato nelle Impostazioni del Gruppo da un Amministratore di Gruppo.",
"get_team_invite_link_modal.helpDisabled": "La creazione di utenti è stata disabilitata per il tuo gruppo. Chiedi al tuo amministratore per maggiori dettagli.",
"get_team_invite_link_modal.title": "Copia il collegamento di invito al gruppo",
"help.attaching.downloading": "#### Scaricamento File\nScarica un file allegato cliccando sull'icona di download vicino all'anteprima o aprendo il file in anteprima e cliccando **Scarica**.",
"help.attaching.dragdrop": "#### Drag and Drop\nCarica uno o più file trascinandoli dal tuo computer nel barra di destra o nel riquadro centrale. Trascinare i file li allega nella casella del messaggio, puoi aggiungere un messaggio opzionale e premere **INVIO** per pubblicarli.",
- "help.attaching.icon": "####Allega icon\nIn alternativa, puoi caricare file cliccando la clip grigia nella casella del messaggio. Questo apre una finestra per selezionare i file e cliccando **Apri** puoi caricare i file nella casella del messaggio. Puoi aggiungere un messaggio opzionale e premere **INVIO** per pubblicarli.",
+ "help.attaching.icon": "####Allega icona\nIn alternativa, puoi caricare file cliccando la clip grigia nella casella del messaggio. Questo apre una finestra per selezionare i file e cliccando **Apri** puoi caricare i file nella casella del messaggio. Puoi aggiungere un messaggio opzionale e premere **INVIO** per pubblicarli.",
"help.attaching.limitations": "## Limiti sulla dimensione dei file\nMattermost support al massimo cinque file per post, ciascuno con una dimensione massima di 50Mb.",
"help.attaching.methods": "## Metodi per allegare\nAllega un file trascinandolo oppure cliccando l'icona per gli allegati nella casella del messaggio.",
"help.attaching.notSupported": "Anteprima documento (Word, Excel, PPT) non ancora supportate.",
@@ -1426,7 +1440,7 @@
"help.formatting.githubTheme": "**GitHub Theme**",
"help.formatting.headings": "## Titoli\n\nCreare un titolo scrivendo # seguito da uno spazio prima del titolo. Per titoli più piccoli, usare più #.",
"help.formatting.headings2": "Oppure, per sottolineare il testo usare `===` o `---` per creare dei titoli.",
- "help.formatting.headings2Example": "Titolo largo\n",
+ "help.formatting.headings2Example": "Titolo largo\n-------------",
"help.formatting.headingsExample": "## Titolo largo\n### Titolo medio\n#### Titolo piccolo",
"help.formatting.images": "## Immagini in linea\n\nPer aggiungere immagini in linea usare un `!` seguito dal testo alternativo tra parentesi quadre e il collegamento tra parentesi tonde. Aggiungere il testo in hover mettendolo tra apici dopo il collegament.",
"help.formatting.imagesExample": "![alt test](link \"hover test\")\n\ne\n\n[![Build Status](https://travis-ci.org/mattermost/platform.svg?branch=master)](https://travis-ci.org/mattermost/platform) [![Github](https://assets-cdn.github.com/favicon.ico)](https://github.com/mattermost/platform)",
@@ -1435,7 +1449,7 @@
"help.formatting.lines": "## Linee\n\nCreare una linea usando tre `*`, `_`, o `-`.",
"help.formatting.linkEx": "[Scopri Mattermost!](https://about.mattermost.com/)",
"help.formatting.links": "## Collegamenti\n\nCreare dei collegamenti etichettatti inserendo il testo tra parentesi quadre e il relativo collegamento tra parentesi tonde.",
- "help.formatting.listExample": "* Primo elemento\n* Secondo elemento\n * Primo sottoelemento",
+ "help.formatting.listExample": "* primo elemento\n* secondo elemento\n * primo sottoelemento",
"help.formatting.lists": "## Liste\n\nCreare una lista usando `*` o `-` come punti della lista. Indentare il punto aggiungento due spazi.",
"help.formatting.monokaiTheme": "**Monokai Theme**",
"help.formatting.ordered": "Per creare una lista ordinata utilizzare i numeri:",
@@ -1465,7 +1479,7 @@
"help.mentioning.mentions": "## @Mentions\nUsare @mentions per avere l'attenzione di uno specifico membro del gruppo.",
"help.mentioning.recent": "## Menzioni recenti\nClick `@` vicino alla casella di ricerca per ottenere una lista delle @mentions recenti e delle parole che hanno scatenato citazioni. Cliccare **Salta** vicino al risultato nella barra laterale per spostare il pannello centrale sul canale e sulla posizione del messaggio della citazione.",
"help.mentioning.title": "# Citare i colleghi\n",
- "help.mentioning.triggers": "## Parole che attivano le citazioni\nOltre alle notifiche con @username e @channel, si possono personalizzare le parole che scatenano delle notifiche per citazione in **Impostazioni Account** > **Notifiche** > **Parole che attivano citazioni**. Per default si riceve una notifica per citazione con il proprio nome e si possono aggiungere altre parole scrivendole nella casella separate da virgola. Questo è utile se si vuole essere notificati su pubblicazioni relative a certi argomenti, per esempio “intervista” o “marketing”.",
+ "help.mentioning.triggers": "## Parole che attivano le citazioni\nOltre alle notifiche con @username e @channel, si possono personalizzare le parole che scatenano delle notifiche per citazione in **Impostazioni Account** > **Notifiche** > **Parole che attivano notifiche per citazione**. Per default si riceve una notifica per citazione con il proprio nome e si possono aggiungere altre parole scrivendole nella casella separate da virgola. Questo è utile se si vuole essere notificati su pubblicazioni relative a certi argomenti, per esempio “intervista” o “marketing”.",
"help.mentioning.username": "#### @Username\nSi può citare un collega usando il carattere `@` più il nome utente da notificare.\n\nScrivere `@` per far comparire una lista dei membri del gruppo che si possono notificare. Per filtrare la lista scrivere le prime lettere del nome utente, del nome, cognome o soprannome. Le frecce **Su** e **Giù** possono essere usate per scorrere la lista, premendo **INVIO** si seleziona l'utente da citare. Alla selezione, il nome utente sostituisce automaticamente il nome o il soprannome.\nL'esempio seguente invia una notifica ad **alice** con i riferimenti al canale e al messaggio in cui è stata citata. Se **alice** è offline ma ha le [notifiche email](http://docs.mattermost.com/help/getting-started/configuring-notifications.html#email-notifications) attive, riceverà un messaggio email con il testo della notifica.",
"help.mentioning.usernameCont": "Se l'utente citato non appartiene al canale, verrà visualizzato un Messaggio di Sistema. Questo è un messaggio temporaneo visibile solo alla persona che ha cercato di fare la citazione. Per aggiungere l'utente citato al canale, utilizzare la casella nel menu accanto al nome del canale e scegliere **Aggiungi membri**.",
"help.mentioning.usernameExample": "@alice come è andata la tua intervista con il nuovo candidato?",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "Questa operazione cancella definitivamente il comando slash e interrompe ogni integrazione che ne fa uso. Sicuro di volerlo cancellare?",
"installed_commands.empty": "Nessun comando trovato",
"installed_commands.header": "Comandi Slash",
- "installed_commands.help": "Creare un comando slash da utilizzare nelle integrazioni esterno. Vedere {link} per saperne di più.",
- "installed_commands.helpLink": "documentazione",
+ "installed_commands.help": "Utilizza i comandi slash per connettere gli strumenti esterni a Mattermost. {buildYourOwn} oppure visita la {appDirectory} per trovare app self-hosted, app di terze parti e integrazioni.",
+ "installed_commands.help.appDirectory": "Cartella delle app",
+ "installed_commands.help.buildYourOwn": "Costruisci il tuo",
"installed_commands.search": "Cerca comandi slah",
"installed_commands.unnamed_command": "Comando slash senza nome",
"installed_incoming_webhooks.add": "Aggiungere webhook in ingresso",
"installed_incoming_webhooks.delete.confirm": "Questa azione cancella definitivamente il webhook in ingresso e interrompe tutte le integrazioni che ne fanno uso. Sicuro di volerlo cancellare?",
"installed_incoming_webhooks.empty": "Nessun webhooks in ingresso trovato",
"installed_incoming_webhooks.header": "Webhooks in ingresso",
- "installed_incoming_webhooks.help": "Creare un URL di un webhook in ingresso da usare per le integrazioni esterne. Vedere {link} per scoprire di più.",
- "installed_incoming_webhooks.helpLink": "documentazione",
+ "installed_incoming_webhooks.help": "Utilizza i webhook in ingresso per collegare strumenti esterni a Mattermost. {buildYourOwn} oppure visita la {appDirectory} per trovare app self-hosted, app di terze parti e integrazioni.",
+ "installed_incoming_webhooks.help.appDirectory": "Cartella delle app",
+ "installed_incoming_webhooks.help.buildYourOwn": "Costruisci il tuo",
"installed_incoming_webhooks.search": "Cerca webhook in ingresso",
"installed_incoming_webhooks.unknown_channel": "Un webhook privato",
"installed_integrations.callback_urls": "URL di callback: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Descrizione",
"installed_oauth_apps.empty": "Nessun applicazion OAuth 2.0 trovata",
"installed_oauth_apps.header": "Applicazioni OAuth 2.0",
- "installed_oauth_apps.help": "Create applicazioni OAuth 2.0 per integrare in sicurezza bot e applicazioni di terze parti con Mattermost. Vedere {link} per scoprire di più.",
- "installed_oauth_apps.helpLink": "documentazione",
+ "installed_oauth_apps.help": "Crea {oauthApplications} per integrare in sicurezza bot e app di terze parti con Mattermost. Visita {appDirectory} per scoprire le app self-hosted disponibili.",
+ "installed_oauth_apps.help.appDirectory": "Cartella delle app",
+ "installed_oauth_apps.help.oauthApplications": "Applicazioni OAuth 2.0",
"installed_oauth_apps.homepage": "Sito web",
"installed_oauth_apps.iconUrl": "URL icona",
"installed_oauth_apps.is_trusted": "Affidabile: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "Questa operazione cancella definitivamente il webhook in uscita e interrompe qualsiasi integrazione che ne fa uso. Sicuro di volerlo cancellare?",
"installed_outgoing_webhooks.empty": "Nessun webhook in uscita trovato",
"installed_outgoing_webhooks.header": "Webhooks in uscita",
- "installed_outgoing_webhooks.help": "Creare un URL per un webhook in uscita da usare nelle integrazioni esterne. Vedere {link} per scoprire di più.",
- "installed_outgoing_webhooks.helpLink": "documentazione",
+ "installed_outgoing_webhooks.help": "Utilizza i webhook in uscita per collegare strumenti esterni a Mattermost. {buildYourOwn} oppure visita la {appDirectory} per scoprire app self-hosted, app di terze parti e integrazioni.",
+ "installed_outgoing_webhooks.help.appDirectory": "Cartella delle app",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Costruisci il tuo",
"installed_outgoing_webhooks.search": "Cerca webhook in uscita",
"installed_outgoing_webhooks.unknown_channel": "Un webhook privato",
"integrations.add": "Aggiungi",
@@ -1543,6 +1561,8 @@
"integrations.done": "Fatto",
"integrations.edit": "Modifica",
"integrations.header": "Integrazioni",
+ "integrations.help": "Visita la {appDirectory} per scoprire app self-hosted, app di terze parti e integrazioni per Mattermost.",
+ "integrations.help.appDirectory": "Cartella delle app",
"integrations.incomingWebhook.description": "I webhook in ingresso consentono alle integrazioni esterne di inviare messaggi",
"integrations.incomingWebhook.title": "Webhook in ingresso",
"integrations.oauthApps.description": "OAuth 2.0 consente alle applicazioni esterne di fare richieste autorizzate alle API di Mattermost.",
@@ -1551,13 +1571,13 @@
"integrations.outgoingWebhook.title": "Webhook in uscita",
"integrations.successful": "Configurazione avvenuta con successo",
"intro_messages.DM": "Questo è l'inizio della tua conversazione privata con {teammate}.<br /> Messaggi privati e file condivisi qui non sono accessibili ad altre persone.",
- "intro_messages.GM": "Questo è l' inizio della tua conversazione privata con {names}.<br /> Messaggi privati e file condivisi qui non verranno mostrati a persone al di fuori di questa area.",
+ "intro_messages.GM": "Questo è l'inizio della tua conversazione privata con {names}. <br />Messaggi privati e file condivisi qui non verranno mostrati a persone al di fuori di questa area.",
"intro_messages.anyMember": " Tutti i membri possono entrare e leggere questo canale.",
"intro_messages.beginning": "Inizio di {name}",
"intro_messages.channel": "canale",
"intro_messages.creator": "Questo è l'inizio di {name} {type}, creato il {date} da {creator}.",
"intro_messages.default": "<h4 class='channel-intro__title'>Inizio di {display_name}</h4><p class='channel-intro__content'><strong>Benvenuto in {display_name}!</strong><br/><br/>Pubblicare i messaggi qui se si vuole renderli visibili a tutti. Tutto diventano membri permanenti di questo gruppo quando ci entrano.</p>",
- "intro_messages.group": "Canale privato",
+ "intro_messages.group": "canale privato",
"intro_messages.group_message": "Questo è l'inizio della tua conversazione privata con questi colleghi. Messaggi privati e file condivisi qui non sono accessibili ad altre persone.",
"intro_messages.invite": "Invita altri a questo {type}",
"intro_messages.inviteOthers": "Invita altri in questo gruppo",
@@ -1568,7 +1588,7 @@
"intro_messages.setHeader": "Imposta un intestazione",
"intro_messages.teammate": "Questo è l'inizio della tua conversazione privata con questi colleghi. Messaggi privati e file condivisi qui non sono accessibili ad altre persone.",
"invite_member.addAnother": "Aggiungi un altro",
- "invite_member.autoJoin": "Le persone invitato vengono aggiunte automaticamente al canale <strong>{channel}</strong>.",
+ "invite_member.autoJoin": "Le persone invitate vengono aggiunte automaticamente al canale <strong>{channel}</strong>.",
"invite_member.cancel": "Cancella",
"invite_member.content": "Le email sono al momento disabilitate per il tuo gruppo e le email di invito non possono essere inviate. Contatta il tuo amministratore di sistema per abilitare le email e gli inviti via email.",
"invite_member.disabled": "La creazione di utenti è stata disabilitata per il tuo gruppo. Chiedi al tuo amministratore per maggiori dettagli.",
@@ -1629,7 +1649,7 @@
"login.signIn": "Accedi",
"login.signInLoading": "Autenticazione in corso...",
"login.signInWith": "Accedi con:",
- "login.userNotFound": "non è stato trovato un account con le tue credenziali di accesso.",
+ "login.userNotFound": "Non è stato trovato un account con le tue credenziali di accesso.",
"login.username": "Nome utente",
"login.verified": " Email Verificata",
"login_mfa.enterToken": "Per completare il processo di accesso, inserisci un token di autenticatore dal tuo smartphone",
@@ -1655,14 +1675,14 @@
"mfa.setup.step1": "<strong>Punto 1: </strong>Scarica Google Authenticato sul tuo telefono da <a target='_blank' href='https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8'>iTunes</a> o <a target='_blank' href='https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en'>Google Play</a>",
"mfa.setup.step2": "<strong>Punto 2: </strong>Utilizza Google Authenticator per scansionare questo codice QR, o inserisci manualmente la chiave segreta",
"mfa.setup.step3": "<strong>Punto 3: </strong>Inserisci il codice generato da Google Authenticato",
- "mfa.setupTitle": "Impostazioni Autenticazione Multi-fattore:",
+ "mfa.setupTitle": "Impostazioni Autenticazione Multi-fattore",
"mobile.about.appVersion": "Versione Applicazione: {version} (Build {number})",
"mobile.about.copyright": "Copyright 2015-{currentYear} Mattermost, Inc. All rights reserved",
"mobile.about.database": "Database: {type}",
"mobile.about.serverVersion": "Versione Server: {version} (Build {number})",
"mobile.about.serverVersionNoBuild": "Versione Server: {version}",
"mobile.account.notifications.email.footer": "Se fuori linea o assenter per più di cinque minuti",
- "mobile.account_notifications.mentions_footer": "Il tuo nome utente (\"@{username}\") innescherà sempre le citazioni. ",
+ "mobile.account_notifications.mentions_footer": "Il tuo nome utente (\"@{username}\") innescherà sempre le citazioni.",
"mobile.account_notifications.non-case_sensitive_words": "Altre parole dove non differenziare le minuscole dalle maiuscole...",
"mobile.account_notifications.reply.header": "Invia risposta di notifica per",
"mobile.account_notifications.threads_mentions": "Citazioni nelle discussioni",
@@ -1728,7 +1748,7 @@
"mobile.open_dm.error": "Impossibile aprire un messaggio diretto con {displayName}. Controlla la connessione e riprova.",
"mobile.post.cancel": "Annulla",
"mobile.post.delete_question": "Sei sicuro di voler eliminare questo post?",
- "mobile.post.delete_title": "Elimina Post",
+ "mobile.post.delete_title": "Elimina Pubblicazione",
"mobile.post.failed_delete": "Elimina messaggio",
"mobile.post.failed_retry": "Riprova",
"mobile.post.failed_title": "Impossibile inviare il messaggio",
@@ -1746,7 +1766,7 @@
"mobile.routes.login": "Login",
"mobile.routes.loginOptions": "Selezionatore Login",
"mobile.routes.mfa": "Forza Autenticazione Multi-fattore",
- "mobile.routes.postsList": "Elenco Post",
+ "mobile.routes.postsList": "Elenco Pubblicazioni",
"mobile.routes.saml": "Single SignOn",
"mobile.routes.selectTeam": "Seleziona gruppo",
"mobile.routes.settings": "Impostazioni",
@@ -1757,13 +1777,16 @@
"mobile.routes.user_profile.send_message": "Invia messaggio",
"mobile.select_team.choose": "I tuoi gruppi:",
"mobile.select_team.join_open": "Gruppi librei a cui puoi accedere",
- "mobile.select_team.no_teams": "Non ci sono gruppi disponibili",
+ "mobile.select_team.no_teams": "Non ci sono gruppi disponibili.",
"mobile.server_ping_failed": "Impossibile connettersi al server. Per favore controlla l'URL del tuo server e la connessione internet.",
"mobile.server_upgrade.button": "OK",
"mobile.server_upgrade.description": "\nE' richiesto un aggiornamento del server per usare l'app di Mattermost. Chiedi al tuo Amministratore di Sistema per i dettagli.\n",
"mobile.server_upgrade.title": "Richiesto aggiornamento del server",
"mobile.server_url.invalid_format": "L'URL Deve iniziare con http:// o https://",
"mobile.session_expired": "Sessione scaduta: accedere per ricevere le notifiche.",
+ "mobile.settings.clear": "Pulisci la memoria offline",
+ "mobile.settings.clear_button": "Pulisci",
+ "mobile.settings.clear_message": "\nQuesta operazione cancella tutti i dati salvati in locale e riavvia l'app. Sarai automaticamente loggato al termine del riavvio.\n",
"mobile.settings.team_selection": "Seleziona gruppo",
"modal.manaul_status.ask": "Non chiedere più in futuro",
"modal.manaul_status.button": "Si, imposta lo stato \"Online\"",
@@ -1806,7 +1829,7 @@
"navbar.viewInfo": "Mostra informazioni",
"navbar.viewPinnedPosts": "Visualizza pubblicazioni bloccate",
"navbar_dropdown.about": "Informazioni su Mattermost",
- "navbar_dropdown.accountSettings": "Settaggi Account",
+ "navbar_dropdown.accountSettings": "Impostazioni Account",
"navbar_dropdown.addMemberToTeam": "Aggiungi membri al gruppo",
"navbar_dropdown.console": "Console di Sistema",
"navbar_dropdown.create": "Crea un Nuovo gruppo",
@@ -1853,7 +1876,7 @@
"post_attachment.collapse": "Mostra meno...",
"post_attachment.more": "Mostra di più...",
"post_body.commentedOn": "Commento su {name}{apostrophe} messaggio: ",
- "post_body.deleted": "(Messaggio Cancellato)",
+ "post_body.deleted": "(messaggio cancellato)",
"post_body.plusMore": " più {count, number} other {count, plural, one {file} other {files}}",
"post_delete.notPosted": "Il commento non può essere pubblicato",
"post_delete.okay": "Tutto bene",
@@ -1861,11 +1884,11 @@
"post_focus_view.beginning": "Inizio del Archivio del Canale",
"post_info.del": "Cancella",
"post_info.edit": "Modifica",
- "post_info.mobile.flag": "Marca",
- "post_info.mobile.unflag": "Smarca",
+ "post_info.mobile.flag": "Contrassegna",
+ "post_info.mobile.unflag": "Togli contrassegno",
"post_info.permalink": "Permalink",
"post_info.pin": "Blocca al canale",
- "post_info.pinned": "bloccato",
+ "post_info.pinned": "Bloccato",
"post_info.reply": "Rispondi",
"post_info.system": "Sistema",
"post_info.unpin": "Sblocca dal canale",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Inizia a scrivere e usa il tasto TAB per attivare i canali/gruppi, ↑↓ per navigare, ↵ per selezionare e ESC per uscire.",
+ "quick_switch_modal.help_mobile": "Scrivi per cercare un canale.",
"quick_switch_modal.help_no_team": "Scrivi per trovare i canali. Utilizza ↑↓ per navigare, ↵ per selezionare e ESC per uscire.",
"quick_switch_modal.teams": "Gruppi",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1912,11 +1936,11 @@
"rhs_comment.comment": "Commento",
"rhs_comment.del": "Cancella",
"rhs_comment.edit": "Modifica",
- "rhs_comment.mobile.flag": "Marca",
- "rhs_comment.mobile.unflag": "Smarca",
+ "rhs_comment.mobile.flag": "Contrassegna",
+ "rhs_comment.mobile.unflag": "Togli contrassegno",
"rhs_comment.permalink": "Permalink",
"rhs_header.backToCallTooltip": "Torna a chiamata",
- "rhs_header.backToFlaggedTooltip": "Torna alle pubblicazioni marcate",
+ "rhs_header.backToFlaggedTooltip": "Torna alle pubblicazioni contrassegnate",
"rhs_header.backToPinnedTooltip": "Torna alle pubblicazioni bloccate",
"rhs_header.backToResultsTooltip": "Torna ai risultati della ricerca",
"rhs_header.closeSidebarTooltip": "Chiudi la barra laterale",
@@ -1928,8 +1952,8 @@
"rhs_root.del": "Elimina",
"rhs_root.direct": "Messagio Privato",
"rhs_root.edit": "Modifica",
- "rhs_root.mobile.flag": "Marca",
- "rhs_root.mobile.unflag": "Smarca",
+ "rhs_root.mobile.flag": "Contrassegna",
+ "rhs_root.mobile.unflag": "Togli contrassegno",
"rhs_root.permalink": "Permalink",
"rhs_root.pin": "Blocca al canale",
"rhs_root.unpin": "Sblocca dal canale",
@@ -1937,17 +1961,17 @@
"search_bar.usage": "<h4>Opzioni di Ricerca</h4><ul><li><span>Usa </span><b>\"apici\"</b><span> per ricercare frasi</span></li><li><span>Usa </span><b>from:</b><span> per trovare una pubblicazione di un utente specifico e </span><b>in:</b><span> per trovare una pubblicazione in uno specifico canale</span></li></ul>",
"search_header.results": "Risultati di Ricerca",
"search_header.title2": "Citazioni Recenti",
- "search_header.title3": "Post segnati",
- "search_header.title4": "Post bloccati in {channelDisplayName}",
+ "search_header.title3": "Pubblicazioni contrassegnate",
+ "search_header.title4": "Pubblicazioni bloccate in {channelDisplayName}",
"search_item.direct": "Messaggio diretto (with {username})",
"search_item.jump": "Salta",
"search_results.because": "<ul><li>Se stai cercando una frase parziale (es. cerca \"one\" per trovare \"riunione\" o \" reazione\"), aggiungi un * al tuo termine di ricerca.</li><li>Le ricerche a due lettere o con parole comuni come \"questo\", \"e\" ed \"è\" non compaiono nei risultati causa dell'elevato numero di occorrenze trovate.</li></ul>",
"search_results.noResults": "Nessun risultato trovato. Ritentare?",
"search_results.usage": "<ul><li>Usa <b>\"gli apici\"</b> per cercare delle frasi</li><li>Usa <b>from:</b> per cercare pubblicazioni di un utente e <b>in:</b> per trovare pubblicazioni in canali specifici.</li></ul>",
- "search_results.usageFlag1": "Non hai marcato nessun messaggio.",
- "search_results.usageFlag2": "Puoi marcare i messaggi e i commenti cliccando ",
+ "search_results.usageFlag1": "Non hai contrassegnato nessun messaggio.",
+ "search_results.usageFlag2": "Puoi contrassegnare i messaggi e i commenti cliccando ",
"search_results.usageFlag3": " l'icona vicino alla data.",
- "search_results.usageFlag4": "Marcare i messaggi è uno strumento per seguirli. I marchi sono personale e non sono visibili agli altri utenti.",
+ "search_results.usageFlag4": "Contrassegnare i messaggi è uno strumento per seguirli. I contrassegni sono personali e non sono visibili agli altri utenti.",
"search_results.usagePin1": "Non ci sono messaggi bloccati.",
"search_results.usagePin2": "Tutti i membri di questo canale possono bloccare i messaggi utili o importanti.",
"search_results.usagePin3": "I messaggi bloccati sono visibili a tutti i membri del canale.",
@@ -1962,26 +1986,26 @@
"setting_upload.import": "Importa",
"setting_upload.noFile": "Nessun file selezionato.",
"setting_upload.select": "Seleziona file",
- "sidebar.channels": "Canale",
+ "sidebar.channels": "CANALI PUBBLICI",
"sidebar.createChannel": "Crea un canale pubblico",
"sidebar.createGroup": "Crea un canale privato",
- "sidebar.direct": "Messagio Privato",
- "sidebar.favorite": "Preferiti",
+ "sidebar.direct": "MESSAGGI DIRETTI",
+ "sidebar.favorite": "CANALI PREFERITI",
"sidebar.more": "Più",
"sidebar.moreElips": "Più...",
"sidebar.otherMembers": "Fuori da questo gruppo",
- "sidebar.pg": "Canali privati",
+ "sidebar.pg": "CANALI PRIVATI",
"sidebar.removeList": "Rimosso dalla lista",
"sidebar.tutorialScreen1": "<h4>Canali</h4><p>I <strong>canali</strong> organizzano le conversazioni per argomenti. Sono aperti a tutto il gruppo. Per inviare messaggi privati usa <strong>Messaggi Privati</strong> verso una persona o <strong>Canale privato</strong> verso un gruppo di persone.</p>",
"sidebar.tutorialScreen2": "<h4>I canali \"{townsquare}\" e \"{offtopic}\"</h4><p>Questi sono due canali pubblici di partenza:</p><p><strong>{townsquare}</strong> è un canale per le comunicazioni intragruppo. Tutti i membri del gruppo accedono a questo canale.</p><p><strong>{offtopic}</strong> è un canale per divertirsi e trattare argomenti diversi dal lavoro. Tu e il tuo gruppo potete scegliere quali altri canali creare.</p>",
"sidebar.tutorialScreen3": "<h4>Creare e Entrare nei canali</h4><p>Clicca <strong>\"Di più...\"</strong> per creare un nuovo canale o entrare su un canale esistente.</p><p>Puoi anche creare un nuovo canale cliccando sul <strong>simbolo \"+\"</strong> vicino al titolo del canale.</p>",
- "sidebar.unreadAbove": "Post non letti sopra",
- "sidebar.unreadBelow": "Post non letti sotto",
+ "sidebar.unreadAbove": "Pubblicazioni non lette sopra",
+ "sidebar.unreadBelow": "Pubblicazioni non lette sotto",
"sidebar_header.tutorial": "<h4>Menu principale</h4><p>Il <strong>Menu principale</strong> è dove puoi <strong>Invitare nuovi membri</strong>, accedere alle tue <strong>Impostazioni account</strong> e impostare il tuo <strong>colore tema</strong>.</p><p>Gli amministratori di gruppo possono anche accedere alle <strong>Impostazioni di gruppo</strong>.</p><p>Gli Amministratori di Sistema troveranno la <strong>Console di Sistema</strong> per gestire l'intera installazione.</p>",
- "sidebar_right_menu.accountSettings": "Settaggi Account",
+ "sidebar_right_menu.accountSettings": "Impostazioni Account",
"sidebar_right_menu.addMemberToTeam": "Aggiungi membri al gruppo",
"sidebar_right_menu.console": "Console di Sistema",
- "sidebar_right_menu.flagged": "Post segnati",
+ "sidebar_right_menu.flagged": "Pubblicazioni contrassegnate",
"sidebar_right_menu.help": "Aiuto",
"sidebar_right_menu.inviteNew": "Invia Email di Invito",
"sidebar_right_menu.logout": "Esci",
@@ -2085,7 +2109,7 @@
"team_members_dropdown.confirmDemoteDescription": "Se rimuovi te stesso dal ruolo di Amministratore di Sistema e non ci sono altri utenti con il ruolo di Amministratore di Sistema dovrai riassegnare il ruolo di Amministratore di Sistema utilizzando un terminale ed eseguendo il seguente comando.",
"team_members_dropdown.confirmDemoteRoleTitle": "Conferma la rimozione dal ruolo di Amministratore di Sistema",
"team_members_dropdown.confirmDemotion": "Conferma rimozione",
- "team_members_dropdown.confirmDemotionCmd": "Ruolo system_admin su piattaforma {username}",
+ "team_members_dropdown.confirmDemotionCmd": "ruolo system_admin su piattaforma {username}",
"team_members_dropdown.inactive": "Inattivo",
"team_members_dropdown.leave_team": "Rimuovi da gruppo",
"team_members_dropdown.makeActive": "Attiva",
@@ -2099,7 +2123,7 @@
"team_settings_modal.generalTab": "Generale",
"team_settings_modal.importTab": "Importa",
"team_settings_modal.title": "Impostazioni gruppo",
- "team_sidebar.join": "Gruppi liberi a cui puoi accedere",
+ "team_sidebar.join": "Gruppi liberi a cui puoi accedere.",
"textbox.bold": "**bold**",
"textbox.edit": "Modifica messaggio",
"textbox.help": "Aiuto",
@@ -2111,7 +2135,7 @@
"textbox.strike": "prezzo di esercizio",
"tutorial_intro.allSet": "Configurazione completata",
"tutorial_intro.end": "Clicca \"Avanti\" per entrare in {channel}. Questo è il primo canale che i colleghi visualizzano all'accesso. Pubblica qui i messaggi che tutti dovranno vedere.",
- "tutorial_intro.invite": "Invita colleghi.",
+ "tutorial_intro.invite": "Invita colleghi",
"tutorial_intro.mobileApps": "Installa le apps per {link} e ottenere l'accesso facilitato e le notifiche da mobile.",
"tutorial_intro.mobileAppsLinkText": "PC, Mac, iOS e Android",
"tutorial_intro.next": "Prossimo",
@@ -2136,18 +2160,17 @@
"upload_overlay.info": "Trascina un file per caricarlo.",
"user.settings.advance.embed_preview": "Per il primo collegamento web in un messaggio, visualizza un'anteprima del contenuto del sito web sotto il messaggio, se disponibile",
"user.settings.advance.embed_toggle": "Visualizza toggle per tutte le anteprime incorporate",
- "user.settings.advance.emojipicker": "Abilita il selettore delle emoji per le reazioni e per la casella di testo",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {Feature} other {Features}} attivo",
"user.settings.advance.formattingDesc": "Se attivo le pubblicazioni saranno formattate per creare collegamenti, visualizzare emoji, formattare il testo e aggiungere le interruzioni di riga. Per default questa opzione è attiva. Ricaricare la pagina per applicare eventuali modifiche.",
"user.settings.advance.formattingTitle": "Abilita formattazione pubblicazioni",
- "user.settings.advance.joinLeaveDesc": "Se \"On\" i Messaggi di Sistema che indicano se un utente si è unito o a lasciato un canale saranno visibili, altrimenti questi messaggi saranno nascosti. Un messaggio continuerà a comparire quando vieni aggiunto ad un canale in modo da ricevere una notifica.",
+ "user.settings.advance.joinLeaveDesc": "Se \"On\" i Messaggi di Sistema che indicano se un utente si è unito o ha lasciato un canale saranno visibili, altrimenti questi messaggi saranno nascosti. Un messaggio continuerà a comparire quando vieni aggiunto ad un canale in modo da ricevere una notifica.",
"user.settings.advance.joinLeaveTitle": "Abilita Entra/Lascia messaggi",
"user.settings.advance.markdown_preview": "Visualizza l'anteprima di formattazione nella casella del messaggio",
"user.settings.advance.off": "Spento",
"user.settings.advance.on": "Acceso",
"user.settings.advance.preReleaseDesc": "Visualizza l'anteprima delle funzioni prerilascio. Può servire un aggiornamento della pagina affinché questa modifica abbia effetto.",
- "user.settings.advance.preReleaseTitle": "Visualizza anteprima delle funzioni prerilascio.",
- "user.settings.advance.sendDesc": "Se attivo INVIO inserisce una nuova linea e CTRL+INVIO spediscono il messaggio.",
+ "user.settings.advance.preReleaseTitle": "Visualizza anteprima delle funzioni prerilascio",
+ "user.settings.advance.sendDesc": "Se attivo INVIO inserisce una nuova linea e CTRL+INVIO invia il messaggio.",
"user.settings.advance.sendTitle": "Invia messaggi con CTRL+INVIO",
"user.settings.advance.slashCmd_autocmp": "Abilita le applicazioni esterne ad offrire l'autocompletamento dei comandi slash",
"user.settings.advance.title": "Impostazioni avanzate",
@@ -2193,7 +2216,7 @@
"user.settings.display.messageDisplayCompactDes": "Visualizza più messaggi possibile a schermo.",
"user.settings.display.messageDisplayDescription": "Seleziona come vengono visualizzati i messaggi in un canale.",
"user.settings.display.messageDisplayTitle": "Visualizzazione dei messaggi",
- "user.settings.display.militaryClock": "Orologio 24 ore (esempio: 16:00)",
+ "user.settings.display.militaryClock": "orologio 24 ore (esempio: 16:00)",
"user.settings.display.nameOptsDesc": "Seleziona come visualizzare i nomi degli altri utenti nelle pubblicazioni e nelle liste dei messaggi diretti.",
"user.settings.display.normalClock": "Orologio 12 ore (esempio 4:00 PM)",
"user.settings.display.preferTime": "Seleziona come visualizzare l'ora.",
@@ -2212,15 +2235,15 @@
"user.settings.general.checkEmail": "Controlla la tua email {email} per verificare il tuo indirizzo.",
"user.settings.general.checkEmailNoAddress": "Verifica le tue email per confermare il nuovo indirizzo",
"user.settings.general.close": "Chiudi",
- "user.settings.general.confirmEmail": "Conferma il messaggio",
- "user.settings.general.currentEmail": "Email attuale",
+ "user.settings.general.confirmEmail": "Conferma l'indirizzo email",
+ "user.settings.general.currentEmail": "Indirizzo email attuale",
"user.settings.general.email": "Email",
"user.settings.general.emailGitlabCantUpdate": "Accesso avvenuto tramite GitLab. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
"user.settings.general.emailGoogleCantUpdate": "Accesso avvenuto tramite Google. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
"user.settings.general.emailHelp1": "Email utilizzata per l'accesso, notifiche e reset della password. L'email richiede una convalida se modificata.",
"user.settings.general.emailHelp2": "Le email sono state disattiva dall'Amministratore di Sistema. Nessuna notifiche email verrà inviata fino a quando non saranno attivate.",
"user.settings.general.emailHelp3": "Email utilizzata per l'accesso, notifiche e reset della password.",
- "user.settings.general.emailHelp4": "Un email di verifica è stata inviata a {email}",
+ "user.settings.general.emailHelp4": "Un email di verifica è stata inviata a {email}.",
"user.settings.general.emailLdapCantUpdate": "Accesso avvenuto tramite AD/LDAP. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
"user.settings.general.emailMatch": "Le nuove email inserire non coincidono.",
"user.settings.general.emailOffice365CantUpdate": "Accesso avvenuto tramite Office 365. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
@@ -2245,15 +2268,15 @@
"user.settings.general.mobile.emptyPosition": "Clicca per aggiungere il tuo ruolo lavorativo / posizione",
"user.settings.general.mobile.uploadImage": "Clicca per caricare un'immagine.",
"user.settings.general.newAddress": "Nuovo indirizzo: {email}<br />Controlla le email per confermarlo.",
- "user.settings.general.newEmail": "Nuova email",
+ "user.settings.general.newEmail": "Nuovo indirizzo email",
"user.settings.general.nickname": "Soprannome",
"user.settings.general.nicknameExtra": "Usa il soprannome come un nome con cui puoi essere chiamato, diverso dal nome e dal cognome. Può essere usato per differenziare gli omonimi.",
- "user.settings.general.notificationsExtra": "Per default, riceverai un notifica di citazione quando qualcuno scrive il tuo nome. Vai nelle impostazioni di {notify} per modificare questo comportamento.",
+ "user.settings.general.notificationsExtra": "Per default, riceverai un notifica per citazione quando qualcuno scrive il tuo nome. Vai nelle Impostazioni Account > {notify} per modificare questo comportamento.",
"user.settings.general.notificationsLink": "Notifiche",
"user.settings.general.position": "Posizione",
"user.settings.general.positionExtra": "Usa la posizione per definire il tuo ruolo lavorativo. Verrà visualizzato nel tuo profilo.",
"user.settings.general.profilePicture": "Immagine del profilo",
- "user.settings.general.title": "Settaggi Generali",
+ "user.settings.general.title": "Impostazioni Generali",
"user.settings.general.uploadImage": "Click 'Modifica' per inviare un immagine.",
"user.settings.general.username": "Nome utente",
"user.settings.general.usernameInfo": "Scegli qualcosa di semplice che i tuoi colleghi possono ricordare facilmente.",
@@ -2262,12 +2285,12 @@
"user.settings.general.validEmail": "Inserisci un indirizzo email valido",
"user.settings.general.validImage": "Solo immagini JPG o PNG possono essere usate come foto profilo",
"user.settings.import_theme.cancel": "Cancella",
- "user.settings.import_theme.importBody": "Per importare un tema, vai su un gruppo Slack e cerca \"Preference->Tema barra laterale\". Apri le opzioni del tema personalizzato, copia i valori dei colori del tema e incollali qui:",
+ "user.settings.import_theme.importBody": "Per importare un tema, vai su un gruppo Slack e cerca \"Preferenze->Tema barra laterale\". Apri le opzioni del tema personalizzato, copia i valori dei colori del tema e incollali qui:",
"user.settings.import_theme.importHeader": "Importa Tema di Slack",
"user.settings.import_theme.submit": "Invia",
- "user.settings.import_theme.submitError": "formato invalido, prova a copiare e incollare ancora.",
+ "user.settings.import_theme.submitError": "Formato invalido, prova a copiare e incollare ancora.",
"user.settings.languages.change": "Cambia la lingua",
- "user.settings.languages.promote": "Seleziona quale lingua deve usare Mattermost nell'interfaccia utente.<br /><br />Vuoi aiutare con le traduzioni? Unisciti al <a href='http://translate.mattermost.com/' target='_blank'>Server delle traduzioni di Mattermost</a>per contribuire.",
+ "user.settings.languages.promote": "Seleziona quale lingua deve usare Mattermost nell'interfaccia utente.<br /><br />Vuoi aiutare con le traduzioni? Unisciti al <a href='http://translate.mattermost.com/' target='_blank'>Server delle traduzioni di Mattermost</a> per contribuire.",
"user.settings.mfa.add": "Aggiungi MFA al tuo account",
"user.settings.mfa.addHelp": "Aggiungere l'autenticazione multifattore renderà il tuo account ancora più sicuro, richiedendo un codice da un tuo dispositivo mobile ad ogni accesso.",
"user.settings.mfa.addHelpQr": "Scansiona il codice QR con Google Authenticator sul tuo smartphone e inserisci il token fornito dall'app. Se non puoi scansionare il codice inserisci manualmente il segreto.",
@@ -2283,17 +2306,17 @@
"user.settings.modal.confirmBtns": "Si, Scarta",
"user.settings.modal.confirmMsg": "Hai dei cambiamenti non salvati, sei sicuro di volerli cancelllare?",
"user.settings.modal.confirmTitle": "Scartare le modifiche?",
- "user.settings.modal.display": "Schermo",
+ "user.settings.modal.display": "Aspetto",
"user.settings.modal.general": "Generale",
"user.settings.modal.notifications": "Notifiche",
"user.settings.modal.security": "Sicurezza",
- "user.settings.modal.title": "Settaggi Account",
+ "user.settings.modal.title": "Impostazioni Account",
"user.settings.notifications.allActivity": "Per tutte le attività",
"user.settings.notifications.channelWide": "Citazioni per canale \"@channel\", \"@all\", \"@here\"",
"user.settings.notifications.close": "Chiudi",
"user.settings.notifications.comments": "Notifiche per le risposte",
"user.settings.notifications.commentsAny": "Invia notifiche per le risposte a conversazioni che ho iniziato o a cui ho partecipato",
- "user.settings.notifications.commentsInfo": "Scegli se vuoi ricevere notificato sulle risposte oltre alle notifiche per citazione.",
+ "user.settings.notifications.commentsInfo": "Scegli se vuoi ricevere delle notifiche per le risposte oltre alle notifiche per citazione.",
"user.settings.notifications.commentsNever": "Non inviare notifiche per le risposte a meno che io non sia citato",
"user.settings.notifications.commentsRoot": "Invia notifiche per le conversazioni che ho iniziato",
"user.settings.notifications.desktop": "Invia notifiche desktop",
@@ -2315,7 +2338,7 @@
"user.settings.notifications.desktop.sound": "Suono di notifica",
"user.settings.notifications.desktop.title": "Notifiche desktop",
"user.settings.notifications.desktop.unlimited": "Illimitata",
- "user.settings.notifications.desktopSounds": "Suoni di notifica Desktop",
+ "user.settings.notifications.desktopSounds": "Suoni di notifica desktop",
"user.settings.notifications.email.disabled": "Disabilitato dall'Amministratore di Sistema",
"user.settings.notifications.email.disabled_long": "Le notifiche email sono state disabilitate dall'Amministratore di Sistema.",
"user.settings.notifications.email.everyHour": "Ogni ora",
@@ -2325,16 +2348,16 @@
"user.settings.notifications.email.send": "Invia notifiche email",
"user.settings.notifications.emailBatchingInfo": "Le notifiche ricevute nel periodo di tempo selezionato sono combinate e inviate come singola email.",
"user.settings.notifications.emailInfo": "Invia le notifiche email per citazioni e messaggi diretti quando sei offline o lontano da {siteName} per più di 5 minuti.",
- "user.settings.notifications.emailNotifications": "Notifiche Email",
+ "user.settings.notifications.emailNotifications": "Notifiche email",
"user.settings.notifications.header": "Notifiche",
"user.settings.notifications.info": "Le notifiche desktop sono disponibili per Edge, Firefox, Safari, Chrome e l'app desktop di Mattermost.",
- "user.settings.notifications.mentionsInfo": "Attiva una citazione quando qualcuno invia un messaggio che include il tuo nome utente (\"@{username}\") oppure una delle opzione sopra specificate.",
+ "user.settings.notifications.mentionsInfo": "Attiva una notifica per citazione quando qualcuno invia un messaggio che include il tuo nome utente (\"@{username}\") oppure una delle opzioni sopra specificate.",
"user.settings.notifications.never": "Mai",
"user.settings.notifications.noWords": "Nessuna parola configurata",
"user.settings.notifications.off": "Spento",
"user.settings.notifications.on": "Acceso",
"user.settings.notifications.onlyMentions": "Solo per citazione e messaggi privati",
- "user.settings.notifications.push": "Notifiche Push Mobile",
+ "user.settings.notifications.push": "Notifiche push mobile",
"user.settings.notifications.push_notification.status": "Invia notifiche push quando",
"user.settings.notifications.sensitiveName": "Nome (differenza tra maiuscole e minuscole) \"{first_name}\"",
"user.settings.notifications.sensitiveUsername": "Nome (nessuna differenza tra maiuscolo e minuscole) \"{username}\"",
@@ -2343,7 +2366,7 @@
"user.settings.notifications.sounds_info": "I suoni di notifica sono disponibili in IE11, Edge, Safari, Chrome e l'app desktop di Mattermost.",
"user.settings.notifications.teamWide": "Citazioni di gruppo \"@all\"",
"user.settings.notifications.title": "Impostazioni delle notifiche",
- "user.settings.notifications.wordsTrigger": "Parole che attivano citazioni",
+ "user.settings.notifications.wordsTrigger": "Parole che attivano notifiche per citazione",
"user.settings.push_notification.allActivity": "Per tutte le attività",
"user.settings.push_notification.allActivityAway": "Per tutte le attività quando offline o lontano",
"user.settings.push_notification.allActivityOffline": "Per tutte le attività quando offline",
@@ -2365,7 +2388,7 @@
"user.settings.security.active": "Attivo",
"user.settings.security.close": "Chiudi",
"user.settings.security.currentPassword": "Password attuale",
- "user.settings.security.currentPasswordError": "Inserisci la tua password",
+ "user.settings.security.currentPasswordError": "Inserisci la tua password.",
"user.settings.security.deauthorize": "Revoca autorizzazione",
"user.settings.security.emailPwd": "Email e Password",
"user.settings.security.gitlab": "GitLab",
@@ -2378,7 +2401,7 @@
"user.settings.security.loginLdap": "Accesso effettuato tramite AD/LDAP",
"user.settings.security.loginOffice365": "Accesso effettuato tramite Office 365",
"user.settings.security.loginSaml": "Accesso effettuato tramite SAML",
- "user.settings.security.logoutActiveSessions": "Vedi e esci dalle Sessioni Attive",
+ "user.settings.security.logoutActiveSessions": "Gestione delle Sessioni Attive",
"user.settings.security.method": "Metodo di accesso",
"user.settings.security.newPassword": "Nuova Password",
"user.settings.security.noApps": "Nessuna applicazione OAuth 2.0 autorizzata.",
diff --git a/webapp/i18n/ja.json b/webapp/i18n/ja.json
index 13b96c3f9..2c94b0a46 100644
--- a/webapp/i18n/ja.json
+++ b/webapp/i18n/ja.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Mattermostアプリのダウンロードページへのリンクを追加してください。リンクを追加すると \"Download Mattermost Apps\" のオプションがメインメニューに追加されるため、ユーザがダウンロードページを見つけることができます。空欄にした場合、メインメニューにオプションは追加されません。",
"admin.customization.appDownloadLinkTitle": "Mattermostアプリダウンロードページリンク:",
"admin.customization.customBrand": "独自ブランド設定",
- "admin.customization.customEmoji": "カスタム絵文字",
+ "admin.customization.emoji": "絵文字",
"admin.customization.enableCustomEmojiDesc": "ユーザーがメッセージ中で使用するカスタム絵文字の作成を有効にします。有効にした場合、カスタム絵文字は、チームに切り替え、チャンネルのサイドバー3点マークをクリックして、「カスタム絵文字」を選択することで設定できます。",
"admin.customization.enableCustomEmojiTitle": "カスタム絵文字を有効にする:",
+ "admin.customization.enableEmojiPickerDesc": "絵文字選択機能は、ユーザーがリアクションやメッセージ内で絵文字を入力する際に、絵文字を選択できるようにします。多くのカスタム絵文字がある状態で絵文字選択機能を有効にすると、パフォーマンスの低下につながる可能性があります。",
+ "admin.customization.enableEmojiPickerTitle": "絵文字選択機能を有効にする:",
"admin.customization.enableLinkPreviewsDesc": "メッセージの下にウェブサイトのプレビューを表示するようにします。有効な場合、ウェブサイトのプレビューは アカウント設定 > 詳細 > プリリリース機能をプレビューする から設定できます。",
"admin.customization.enableLinkPreviewsTitle": "リンクのプレビューを有効にする:",
"admin.customization.iosAppDownloadLinkDesc": "iOSアプリのダウンロードリンクを追加してください。モバイル用ウェブブラウザーでサイトにアクセスしたユーザへ、アプリをダウンロードするか選択するページを表示します。空欄にした場合、そのページは表示されません。",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "例: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "電子メール招待ソルト:",
"admin.email.mhpns": "iOSとAndroidアプリで、暗号化され高品質なHPNS接続を使用する",
- "admin.email.mhpnsHelp": "iTunesから<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOSアプリ</a>をダウンロードし、Google Playから<a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Androidアプリ</a>をダウンロードしてください。詳しくは<a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>を参照してください。",
+ "admin.email.mhpnsHelp": "iTunesから<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOSアプリ</a>をダウンロードし、Google Playから<a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Androidアプリ</a>をダウンロードしてください。詳しくは<a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>を参照してください。",
"admin.email.mtpns": "TPNSが有効化されたiOS/AndroidアプリをiTunes/Google Playから入手する",
- "admin.email.mtpnsHelp": "iTunesから<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOSアプリ</a>をダウンロードしてください。Google Playから<a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Androidアプリ</a>をダウンロードしてください。詳しくは<a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>を参照してください。",
+ "admin.email.mtpnsHelp": "iTunesから<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOSアプリ</a>をダウンロードしてください。Google Playから<a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Androidアプリ</a>をダウンロードしてください。詳しくは<a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>を参照してください。",
"admin.email.nofificationOrganizationExample": "例: \"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "Mattermostから電子メールによる通知を送信する際に使用される電子メールアカウントの表示名です。",
"admin.email.notificationDisplayExample": "例: \"Mattermost Notification\", \"System\", \"No-Reply\"",
@@ -601,13 +603,20 @@
"admin.rate.title": "投稿頻度の設定",
"admin.recycle.button": "データベース接続を再利用する",
"admin.recycle.loading": " 再利用しています…",
- "admin.recycle.recycleDescription": "複数のデータベースを用意している場合、\"config.json\"を更新し、 <a href=\"../general/configuration\"><b>設定 > ディスクから設定を再読み込みする</b></a>の機能を実行することで、Mattermostサーバーの実行中に、サーバーを再起動することなく、マスターデータベースを他のデータベースに切り替えることができます。システム管理者は、<b>データベース接続を再利用する</b>機能を使い、新しい設定ファイルのデータベース接続をリサイクルしてください。",
+ "admin.recycle.recycleDescription": "複数のデータベースを利用した環境では、\"config.json\"を更新し、 {reloadConfiguration} の機能を利用することで、Mattermostサーバーの実行中に、サーバーを再起動することなく、マスターデータベースを他のデータベースに切り替えることができます。切り替え後、新しい設定に基づくデータベース接続をリサイクルするために、システム管理者は {featureName} 機能を使用してください。",
+ "admin.recycle.recycleDescription.featureName": "データベース接続を再利用する",
+ "admin.recycle.recycleDescription.reloadConfiguration": "設定 > ディスクから設定を再読み込みする",
"admin.recycle.reloadFail": "再利用できませんでした: {error}",
"admin.regenerate": "再生成する",
"admin.reload.button": "ディスクから設定を再読み込みする",
"admin.reload.loading": " 読み込み中です…",
- "admin.reload.reloadDescription": "複数のデータベースを用意している場合、\"config.json\"を更新し、 <b>ディスクから設定を再読み込みする</b>の機能を実行することで、Mattermostサーバーの実行中に、サーバーを再起動することなく、マスターデータベースを他のデータベースに切り替えることができます。システム管理者は、<a href=\"../advanced/database\"><b>データベース > データベース接続を再利用する</b></a>機能を使い、新しい設定ファイルのデータベース接続をリサイクルしてください。",
+ "admin.reload.reloadDescription": "複数のデータベースを利用した環境では、\"config.json\"を更新し、 {featureName} の機能を利用することで、Mattermostサーバーの実行中に、サーバーを再起動することなく、マスターデータベースを他のデータベースに切り替えることができます。切り替え後、新しい設定に基づくデータベース接続をリサイクルするために、システム管理者は {recycleDatabaseConnections} 機能を使用してください。",
+ "admin.reload.reloadDescription.featureName": "ディスクから設定を再読み込みする",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "データベース > データベース接続を再利用する",
"admin.reload.reloadFail": "再読み込みできませんでした: {error}",
+ "admin.requestButton.loading": " 読み込み中…",
+ "admin.requestButton.requestFailure": "テストが失敗しました: {error}",
+ "admin.requestButton.requestSuccess": "テストが成功しました",
"admin.reset_password.close": "閉じる",
"admin.reset_password.newPassword": "新しいパスワード",
"admin.reset_password.select": "選択する",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "クロスオリジンリクエストを許可する:",
"admin.service.developerDesc": "有効な場合、JavaScriptのエラーはユーザーインターフェイス上部の紫色のバーに表示されます。本番環境での使用はお勧めできません。 ",
"admin.service.developerTitle": "開発者モードを有効にする: ",
+ "admin.service.enableAPIv3": "API v3の利用を許可する:",
+ "admin.service.enableAPIv3Description": "REST APIバージョン3のすべてのエンドポイントを無効化するには無効に設定してください。API v3を利用した統合機能は失敗するようになり、その後、API v4への移行が識別されます。API v3は非推奨であり、近々削除されます。詳しくは <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> を参照してください。",
"admin.service.enforceMfaDesc": "有効の場合、<a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>多要素認証</a>がログイン時に求められます。新しいユーザーはサインアップ時に多要素認証の設定を求められます。多要素認証設定なしにログインしているユーザーは設定が完了するまで多要素認証設定ページへリダイレクトされます。<br/><br/>システムにAD/LDAPと電子メール以外のログイン方法のユーザーがいる場合、Mattermostの外部の認証プロバイダーで多要素認証が強制されます。",
"admin.service.enforceMfaTitle": "多要素認証を有効にする:",
"admin.service.forward80To443": "ポート80の443への転送:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "設定",
"admin.sidebar.connections": "接続",
"admin.sidebar.customBrand": "独自ブランド設定",
- "admin.sidebar.customEmoji": "カスタム絵文字",
"admin.sidebar.customIntegrations": "カスタム統合機能",
"admin.sidebar.customization": "カスタマイズ",
"admin.sidebar.database": "データベース",
"admin.sidebar.developer": "開発者",
"admin.sidebar.email": "電子メールアドレス",
+ "admin.sidebar.emoji": "絵文字",
"admin.sidebar.external": "外部のサービス",
"admin.sidebar.files": "ファイル",
"admin.sidebar.general": "全般",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "チャンネルURLは2文字以上の小文字の英数字にしてください",
"channel_flow.invalidName": "不正なチャンネル名です",
"channel_flow.set_url_title": "チャンネルURLを設定する",
+ "channel_header.addChannelHeader": "チャンネル説明を追加",
"channel_header.addMembers": "メンバーを追加する",
"channel_header.addToFavorites": "お気に入りに追加する",
"channel_header.channelHeader": "チャンネルヘッダーを編集する",
+ "channel_header.channelMembers": "メンバー",
"channel_header.delete": "チャンネルを削除する",
"channel_header.flagged": "フラグの立てられた投稿",
"channel_header.leave": "チャンネルから脱退する",
"channel_header.manageMembers": "メンバーを管理する",
"channel_header.notificationPreferences": "通知の設定",
+ "channel_header.pinnedPosts": "ピン止めされた投稿",
"channel_header.recentMentions": "最近のあなたについての投稿",
"channel_header.removeFromFavorites": "お気に入りから削除する",
"channel_header.rename": "チャンネル名を変更する",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "この操作によりスラッシュコマンドは削除され、そのコマンドを利用している統合機能が動作しなくなります。本当に削除しますか?",
"installed_commands.empty": "スラッシュコマンドは作成されていません",
"installed_commands.header": "スラッシュコマンド",
- "installed_commands.help": "外部の統合機能用のスラッシュコマンドを作成する。詳細は{link}をご覧ください。",
- "installed_commands.helpLink": "説明文書",
+ "installed_commands.help": "Mattermostの外部にあるツールと連携するにはスラッシュコマンドを使用してください。セルフホスティング、サードパーティーアプリや統合機能を探すには、{buildYourOwn} か {appDirectory} を訪れてください。",
+ "installed_commands.help.appDirectory": "App Directory",
+ "installed_commands.help.buildYourOwn": "自分でビルドする",
"installed_commands.search": "スラッシュコマンドを検索",
"installed_commands.unnamed_command": "名前のないスラッシュコマンド",
"installed_incoming_webhooks.add": "内向きのウェブフックを追加する",
"installed_incoming_webhooks.delete.confirm": "この操作により内向きのウェブフックは削除され、そのウェブフックを利用している統合機能が動作しなくなります。本当に削除しますか?",
"installed_incoming_webhooks.empty": "内向きのウェブフックは作成されていません",
"installed_incoming_webhooks.header": "内向きのウェブフック",
- "installed_incoming_webhooks.help": "外部の統合機能用の内向きのウェブフックURLを作成する。詳細は{link}をご覧ください。",
- "installed_incoming_webhooks.helpLink": "説明文書",
+ "installed_incoming_webhooks.help": "Mattermostの外部にあるツールと連携するには内向きのウェブフックを使用してください。 セルフホスティング、サードパーティーアプリや統合機能を探すには、{buildYourOwn} か {appDirectory} を訪れてください。",
+ "installed_incoming_webhooks.help.appDirectory": "App Directory",
+ "installed_incoming_webhooks.help.buildYourOwn": "自分でビルドする",
"installed_incoming_webhooks.search": "内向きのウェブフックを検索",
"installed_incoming_webhooks.unknown_channel": "プライベートなウェブフック",
"installed_integrations.callback_urls": "コールバックURL: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "説明",
"installed_oauth_apps.empty": "OAuth 2.0アプリケーションが見つかりませんでした",
"installed_oauth_apps.header": "OAuth 2.0アプリケーション",
- "installed_oauth_apps.help": "Mattermostにボットまたはサードパーティーのアプリケーションを安全に統合するるために、OAuth 2.0アプリケーションを作成してください。詳細は{link}を参照してください。",
- "installed_oauth_apps.helpLink": "説明文書",
+ "installed_oauth_apps.help": "Mattermostとボットやサードパーティーアプリをセキュアに連携するには {oauthApplications} を作成してください。利用可能なセルフホスティングアプリを探すには {appDirectory}を訪れてください。",
+ "installed_oauth_apps.help.appDirectory": "App Directory",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0アプリケーション",
"installed_oauth_apps.homepage": "ホームページ",
"installed_oauth_apps.iconUrl": "アイコンのURL",
"installed_oauth_apps.is_trusted": "信頼済み: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "この操作により外向きのウェブフックは削除され、そのウェブフックを利用している統合機能が動作しなくなります。本当に削除しますか?",
"installed_outgoing_webhooks.empty": "外向きのウェブフックは作成されていません",
"installed_outgoing_webhooks.header": "外向きのウェブフック",
- "installed_outgoing_webhooks.help": "外部の統合機能用の外向きのウェブフックURLを作成する。詳細は{link}をご覧ください。",
- "installed_outgoing_webhooks.helpLink": "説明文書",
+ "installed_outgoing_webhooks.help": "Mattermostの外部にあるツールと連携するには外向きのウェブフックを使用してください。 セルフホスティング、サードパーティーアプリや統合機能を探すには、{buildYourOwn} か {appDirectory} を訪れてください。",
+ "installed_outgoing_webhooks.help.appDirectory": "App Directory",
+ "installed_outgoing_webhooks.help.buildYourOwn": "自分でビルドする",
"installed_outgoing_webhooks.search": "外向きのウェブフックを検索",
"installed_outgoing_webhooks.unknown_channel": "プライベートなウェブフック",
"integrations.add": "追加する",
@@ -1543,6 +1561,8 @@
"integrations.done": "完了",
"integrations.edit": "編集",
"integrations.header": "統合機能",
+ "integrations.help": "Mattermost向けのセルフホスティング、サードパーティーアプリや統合機能を探すには {appDirectory} を訪れてください。",
+ "integrations.help.appDirectory": "App Directory",
"integrations.incomingWebhook.description": "内向きのウェブフックは外部の統合機能がメッセージを投稿するのに使います",
"integrations.incomingWebhook.title": "内向きのウェブフック",
"integrations.oauthApps.description": "OAuth 2.0は外部のアプリケーションからMattermost APIへの権限付きリクエストを許可します。",
@@ -1764,6 +1784,9 @@
"mobile.server_upgrade.title": "サーバーのアップグレードが必要です",
"mobile.server_url.invalid_format": "URLはhttp://またはhttps://から始まらなくてはいけません",
"mobile.session_expired": "セッション有効期限切れ: 通知を受け取るためにログインしてください。",
+ "mobile.settings.clear": "オフラインデータをクリアする",
+ "mobile.settings.clear_button": "クリア",
+ "mobile.settings.clear_message": "\nこれにより全てのオフラインデータがクリアされ、アプリが再起動します。アプリが再起動されると、自動でログインされます。\n",
"mobile.settings.team_selection": "チームを切り替える",
"modal.manaul_status.ask": "次回からこのメッセージを表示しない",
"modal.manaul_status.button": "はい、ステータスを \"オンライン\" にします",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "入力を開始した後、TABキーでチーム/チャンネルを切替、 ↑↓で閲覧、 ↵で選択、 ESCでキャンセル。",
+ "quick_switch_modal.help_mobile": "チャンネルを検索するために文字を入力してください。",
"quick_switch_modal.help_no_team": " チャンネルを選択してください。↑↓で閲覧、 ↵で選択、 ESCでキャンセル。",
"quick_switch_modal.teams": "チーム",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,11 +1986,11 @@
"setting_upload.import": "インポートする",
"setting_upload.noFile": "ファイルが選択されていません。",
"setting_upload.select": "ファイルを選択してください",
- "sidebar.channels": "チャンネル",
+ "sidebar.channels": "公開チャンネル",
"sidebar.createChannel": "新しい公開チャンネルを作成する",
"sidebar.createGroup": "新しい非公開チャンネルを作成する",
"sidebar.direct": "ダイレクトメッセージ",
- "sidebar.favorite": "お気に入り",
+ "sidebar.favorite": "お気に入りチャンネル",
"sidebar.more": "もっと",
"sidebar.moreElips": "もっと…",
"sidebar.otherMembers": "このチームの外側",
@@ -2118,7 +2142,7 @@
"tutorial_intro.screenOne": "<h3>ようこそ</h3><h1>Mattermostへ</h1><p>あなたのチームの全てのコミュニケーションを一箇所で、すぐに検索可能で、どこからでもアクセスできるものにします。</p><p>チームがつながり、互いに助け合うことで、大切なこと(what matters most)を成し遂げましょう</p>",
"tutorial_intro.screenTwo": "<h3>Mattermostの使い方</h3><p>公開チャンネル、非公開チャンネル、ダイレクトメッセージでコミュニケーションを行います。</p><p>全てがアーカイブされ、ウェブにアクセスできるデスクトップ、ラップトップ、スマートフォンのいずれからでも検索できます。</p>",
"tutorial_intro.skip": "チュートリアルをスキップする",
- "tutorial_intro.support": "必要なことがあったら、電子メールを出してください: ",
+ "tutorial_intro.support": "何かありましたら私たちにメールしてください ",
"tutorial_intro.teamInvite": "チームメイトを招待する",
"tutorial_intro.whenReady": " 用意ができた時に。",
"tutorial_tip.next": "次へ",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "ファイルをアップロードするためにドラッグアンドドロップします。",
"user.settings.advance.embed_preview": "メッセージ内の最初のWebのリンクについて、可能ならばそのメッセージの下にWebサイトの内容のプレビューを表示します",
"user.settings.advance.embed_toggle": "全ての埋め込まれたプレビューの表示非表示を切り替える",
- "user.settings.advance.emojipicker": "リアクションとメッセージ入力ボックスでの絵文字選択を有効にする",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {Feature} other {Features}}が有効化されました",
"user.settings.advance.formattingDesc": "オンにした場合、投稿は、リンクを作成したり、絵文字を表示したり、テキストに書式を設定したり、改行したりされます。デフォルトではオンに設定されています。この設定を変更した場合には、ページを再読み込みしてください。",
"user.settings.advance.formattingTitle": "投稿の書式設定",
diff --git a/webapp/i18n/ko.json b/webapp/i18n/ko.json
index b89fb51f2..82a904e4a 100644
--- a/webapp/i18n/ko.json
+++ b/webapp/i18n/ko.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Add a link to a download page for the Mattermost apps. When a link is present, an option to \"Download Mattermost Apps\" will be added in the Main Menu so users can find the download page. Leave this field blank to hide the option from the Main Menu.",
"admin.customization.appDownloadLinkTitle": "Mattermost Apps Download Page Link:",
"admin.customization.customBrand": "커스텀 브랜딩",
- "admin.customization.customEmoji": "커스텀 이모티콘",
+ "admin.customization.emoji": "Emoji",
"admin.customization.enableCustomEmojiDesc": "Enable users to create custom emoji for use in messages. When enabled, Custom Emoji settings can be accessed by switching to a team and clicking the three dots above the channel sidebar, and selecting \"Custom Emoji\".",
"admin.customization.enableCustomEmojiTitle": "커스텀 이모티콘:",
+ "admin.customization.enableEmojiPickerDesc": "The emoji picker allows users to select emoji to add as reactions or use in messages. Enabling the emoji picker with a large number of custom emoji may slow down performance.",
+ "admin.customization.enableEmojiPickerTitle": "Enable Emoji Picker:",
"admin.customization.enableLinkPreviewsDesc": "Enable users to display a preview of website content below the message, if available. When true, website previews can be enabled from Account Settings > Advanced > Preview pre-release features.",
"admin.customization.enableLinkPreviewsTitle": "Enable Link Previews:",
"admin.customization.iosAppDownloadLinkDesc": "Add a link to download the iOS app. Users who access the site on a mobile web browser will be prompted with a page giving them the option to download the app. Leave this field blank to prevent the page from appearing.",
@@ -549,7 +551,7 @@
"admin.oauth.google": "Google Apps",
"admin.oauth.off": "Do not allow sign-in via an OAuth 2.0 provider",
"admin.oauth.office365": "Office 365 (베타)",
- "admin.oauth.providerDescription": "When true, Mattermost can act as an OAuth 2.0 service provider allowing Mattermost to authorize API requests from external applications. See <a href=\"https://docs.mattermost.com/developer/oauth-2-0-applications.html\">documentation</a> to learn more.",
+ "admin.oauth.providerDescription": "When true, Mattermost can act as an OAuth 2.0 service provider allowing Mattermost to authorize API requests from external applications. See <a target='_blank' href=\"https://docs.mattermost.com/developer/oauth-2-0-applications.html\">documentation</a> to learn more.",
"admin.oauth.providerTitle": "OAuth 2.0 서비스 제공자: ",
"admin.oauth.select": "Select OAuth 2.0 service provider:",
"admin.office365.EnableHtmlDesc": "<ol><li>여러분의 마이크로소프트 또는 오피스 365 계정에 <a href='https://login.microsoftonline.com/'>로그인</a> 하십시요. 로그인하는 계정은 <a href='https://msdn.microsoft.com/en-us/library/azure/jj573650.aspx#Anchor_0'>테넌트</a>의 >계정과 동일해야 합니다.</li><li><a href='https://apps.dev.microsoft.com'>https://apps.dev.microsoft.com</a>을 방문하셔서, <strong>Go to app list</strong>의 <strong>Add an app</strong>를 클릭한 다음 \"Mattermost - 여러분의 회사 이름\"을 <strong>어플리케이션 이름</strong>으로 사용하십시요. </li><li><strong>Application Secrets</strong>에서, <strong>Generate New Password</strong>를 클릭한 다음 아래<strong>Application Secret Password</strong> 필드에 그 값을 복사하여 붙여넣으십시요.</li><li><strong>Platforms</strong>에서, <strong>Add Platform</strong>을 클릭한 다음, <strong>Web</strong>을 선택하고 <strong>your-mattermost-url/signup/office365/complete</strong> (예시: http://localhost:8065/signup/office365/complete)을 <strong>Redirect URIs</strong>에 기입하십시요. 또한 <strong>Allow Implicit Flow</strong>의 체크를 해제하십시요.</li><li>마지막으로, <strong>Save</strong>를 클릭한 다음 아래의 <strong>Application ID</strong>붙여넣으십시요.</li></ol>",
@@ -601,13 +603,20 @@
"admin.rate.title": "Rate Limit Settings",
"admin.recycle.button": "Recycle Database Connections",
"admin.recycle.loading": " Recycling...",
- "admin.recycle.recycleDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the <a href=\"../general/configuration\"><b>Configuration > Reload Configuration from Disk</b></a> feature to load the new settings while the server is running. The administrator should then use <b>Recycle Database Connections</b> feature to recycle the database connections based on the new settings.",
+ "admin.recycle.recycleDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the <b>Reload Configuration from Disk</b> feature to load the new settings while the server is running. The administrator should then use the <a href=\"../advanced/database\"><b>Database > Recycle Database Connections</b></a> feature to recycle the database connections based on the new settings.",
+ "admin.recycle.recycleDescription.featureName": "Recycle Database Connections",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Configuration > Reload Configuration from Disk",
"admin.recycle.reloadFail": "연결을 실패했습니다: {error}",
"admin.regenerate": "재생성",
"admin.reload.button": "디스크에서 설정 다시 불러오기",
"admin.reload.loading": " 로딩 중...",
"admin.reload.reloadDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the <b>Reload Configuration from Disk</b> feature to load the new settings while the server is running. The administrator should then use the <a href=\"../advanced/database\"><b>Database > Recycle Database Connections</b></a> feature to recycle the database connections based on the new settings.",
+ "admin.reload.reloadDescription.featureName": "디스크에서 설정 다시 불러오기",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Database > Recycle Database Connections",
"admin.reload.reloadFail": "연결을 실패했습니다: {error}",
+ "admin.requestButton.loading": " 로딩 중...",
+ "admin.requestButton.requestFailure": "동기화 실패: {error}",
+ "admin.requestButton.requestSuccess": "설정이 완료되었습니다.",
"admin.reset_password.close": "닫기",
"admin.reset_password.newPassword": "새 패스워드",
"admin.reset_password.select": "선택",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "CORS 요청 허용:",
"admin.service.developerDesc": "When true, Javascript errors are shown in a red bar at the top of the user interface. Not recommended for use in production. ",
"admin.service.developerTitle": "개발자 모드: ",
+ "admin.service.enableAPIv3": "Allow use of API v3 endpoints:",
+ "admin.service.enableAPIv3Description": "Set to false to disable all version 3 endpoints of the REST API. Integrations that rely on API v3 will fail and can then be identified for migration to API v4. API v3 is deprecated and will be removed in the near future. See <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> for details.",
"admin.service.enforceMfaDesc": "When true, <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>multi-factor authentication</a> is required for login. New users will be required to configure MFA on signup. Logged in users without MFA configured are redirected to the MFA setup page until configuration is complete.<br/><br/>If your system has users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost.",
"admin.service.enforceMfaTitle": "Enable Multi-factor Authentication:",
"admin.service.forward80To443": "Forward port 80 to 443:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "환경설정",
"admin.sidebar.connections": "연결",
"admin.sidebar.customBrand": "커스텀 브랜딩",
- "admin.sidebar.customEmoji": "커스텀 이모티콘",
"admin.sidebar.customIntegrations": "통합 기능",
"admin.sidebar.customization": "커스터마이징",
"admin.sidebar.database": "데이터베이스",
"admin.sidebar.developer": "개발자 설정",
"admin.sidebar.email": "이메일",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "외부 서비스",
"admin.sidebar.files": "파일",
"admin.sidebar.general": "일반",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "Channel URL must be 2 or more lowercase alphanumeric characters",
"channel_flow.invalidName": "잘못된 채널 이름",
"channel_flow.set_url_title": "Set Channel URL",
+ "channel_header.addChannelHeader": "Add a channel description",
"channel_header.addMembers": "회원 추가",
"channel_header.addToFavorites": "즐겨찾기에 추가",
"channel_header.channelHeader": "채널 헤더 설정",
+ "channel_header.channelMembers": "회원",
"channel_header.delete": "채널 삭제",
"channel_header.flagged": "중요 메시지",
"channel_header.leave": "채널 떠나기",
"channel_header.manageMembers": "회원 관리",
"channel_header.notificationPreferences": "알림 설정",
+ "channel_header.pinnedPosts": "Pinned Posts",
"channel_header.recentMentions": "최근 멘션",
"channel_header.removeFromFavorites": "즐겨찾기에서 제거",
"channel_header.rename": "채널 이름 변경",
@@ -1213,14 +1227,14 @@
"create_post.shortcutsNotSupported": "Keyboard shortcuts are not supported on your device.",
"create_post.tutorialTip": "<h4>메시지 보내기</h4><p>보내고 싶은 메시지를 작성하고 <strong>Enter</strong>키를 눌러 보내세요.</p><p><strong>첨부</strong> 버튼을 눌러 이미지나 파일을 업로드하세요.</p>",
"create_post.write": "메시지를 입력하세요...",
- "create_team.agreement": "By proceeding to create your account and use {siteName}, you agree to our <a href='/static/help/terms.html'>Terms of Service</a> and <a href='/static/help/privacy.html'>Privacy Policy</a>. If you do not agree, you cannot use {siteName}.",
+ "create_team.agreement": "계정을 만들고 {siteName}을 (를) 사용하면 <a href={TermsOfServiceLink}> 서비스 이용 약관 </a> 및 <a href={PrivacyPolicyLink}> 개인 정보 취급 방침 </a>에 동의하게됩니다. 동의하지 않으면 {siteName}을 (를) 사용할 수 없습니다.",
"create_team.display_name.charLength": "Name must be {min} or more characters up to a maximum of {max}. You can add a longer team description later.",
"create_team.display_name.nameHelp": "팀 이름을 자유롭게 입력하세요. 설정한 팀 이름은 메뉴와 상단의 헤더에 표시됩니다.",
"create_team.display_name.next": "다음",
"create_team.display_name.required": "필수 항목입니다.",
"create_team.display_name.teamName": "팀 이름",
"create_team.team_url.back": "이전 단계로 돌아가기",
- "create_team.team_url.charLength": "Name must be 4 or more characters up to a maximum of 15",
+ "create_team.team_url.charLength": "이름은 최소 {min} 이상 최대 {max} 자까지 입니다.",
"create_team.team_url.creatingTeam": "팀 생성 중...",
"create_team.team_url.finish": "완료",
"create_team.team_url.hint": "<li>Short and memorable is best</li><li>Use lowercase letters, numbers and dashes</li><li>Must start with a letter and can't end in a dash</li>",
@@ -1241,7 +1255,7 @@
"delete_channel.cancel": "취소",
"delete_channel.confirm": "채널 삭제 확인",
"delete_channel.del": "삭제",
- "delete_channel.question": "정말 {display_name} {term}을 삭제하시겠습니까?",
+ "delete_channel.question": "이렇게하면 팀에서 채널이 삭제되고 모든 사용자가 해당 채널의 내용에 액세스 할 수 없게됩니다. 정말 {display_name} 채널을 삭제 하시겠습니까?",
"delete_post.cancel": "취소",
"delete_post.comment": "답글",
"delete_post.confirm": "{term} 삭제 확인",
@@ -1258,7 +1272,7 @@
"edit_channel_header_modal.title": "{channel}의 헤더 편집",
"edit_channel_header_modal.title_dm": "헤더 편집",
"edit_channel_private_purpose_modal.body": "This text appears in the \"View Info\" modal of the private channel.",
- "edit_channel_purpose_modal.body": "{type}(이)가 어떻게 사용되어야 하는지 설명하세요. 이 설명은 채널 목록의 \"더 보기...\"에서 가입을 위한 도움말로 표시됩니다.",
+ "edit_channel_purpose_modal.body": "이 채널을 어떻게 사용해야하는지 설명하십시오. 이 텍스트는 채널 목록의 '더보기 ...' 메뉴에 표시되며 다른 사용자가 가입할지 여부를 결정하는 데 도움이됩니다.",
"edit_channel_purpose_modal.cancel": "취소",
"edit_channel_purpose_modal.error": "채널 설명이 너무 깁니다. 더 짧은 채널 설명을 사용하세요.",
"edit_channel_purpose_modal.save": "저장",
@@ -1329,7 +1343,7 @@
"file_upload.disabled": "File attachments are disabled.",
"file_upload.fileAbove": "File above {max}MB cannot be uploaded: {filename}",
"file_upload.filesAbove": "Files above {max}MB cannot be uploaded: {filenames}",
- "file_upload.limited": "Uploads limited to {count} files maximum. Please use additional posts for more files.",
+ "file_upload.limited": "업로드는 {count, number} 개의 파일로 제한됩니다. 더 많은 파일을 보려면 추가 게시물을 사용하십시오.",
"file_upload.pasted": "Image Pasted at ",
"filtered_channels_list.search": "Search channels",
"filtered_user_list.any_team": "모든 사용자",
@@ -1354,7 +1368,7 @@
"flag_post.unflag": "중요 메시지 해제",
"general_tab.chooseDescription": "사용자명을 선택하세요.",
"general_tab.codeDesc": "가입 링크를 변경하려면 '편집'을 클릭하세요.",
- "general_tab.codeLongDesc": "The Invite Code is used as part of the URL in the team invitation link created by <strong>Get Team Invite Link</strong> in the main menu. Regenerating creates a new team invitation link and invalidates the previous link.",
+ "general_tab.codeLongDesc": "초대 코드는 메인 메뉴의 {getTeamInviteLink}에서 만든 팀 초대 링크의 URL 일부로 사용됩니다. 재생성하면 새 팀 초대 링크가 만들어지고 이전 링크가 무효화됩니다.",
"general_tab.codeTitle": "가입 링크",
"general_tab.emptyDescription": "Click 'Edit' to add a team description.",
"general_tab.getTeamInviteLink": "가입 링크",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "This action permanently deletes the slash command and breaks any integrations using it. Are you sure you want to delete it?",
"installed_commands.empty": "명령어가 없습니다.",
"installed_commands.header": "슬래시 명령어",
- "installed_commands.help": "외부 통합에 사용하기 위한 슬래시 명령어를 생성하세요. 자세한 내용은 {link}를 참조하세요.",
- "installed_commands.helpLink": "문서",
+ "installed_commands.help": "Use slash commands to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_commands.help.appDirectory": "App Directory",
+ "installed_commands.help.buildYourOwn": "Build your own",
"installed_commands.search": "슬래시 명령어 검색",
"installed_commands.unnamed_command": "이름없는 슬래시 명령어",
"installed_incoming_webhooks.add": "Incoming Webhook 추가하기",
"installed_incoming_webhooks.delete.confirm": "This action permanently deletes the incoming webhook and breaks any integrations using it. Are you sure you want to delete it?",
"installed_incoming_webhooks.empty": "Incoming Webhook이 없습니다.",
"installed_incoming_webhooks.header": "Incoming Webhook",
- "installed_incoming_webhooks.help": "외부 통합에 사용하기 위한 Incoming webhook URL을 생성하세요. 자세한 내용은 {link}를 참조하세요.",
- "installed_incoming_webhooks.helpLink": "문서",
+ "installed_incoming_webhooks.help": "Use incoming webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_incoming_webhooks.help.appDirectory": "App Directory",
+ "installed_incoming_webhooks.help.buildYourOwn": "Build your own",
"installed_incoming_webhooks.search": "Incoming Webhook 검색",
"installed_incoming_webhooks.unknown_channel": "비공개 Webhook",
"installed_integrations.callback_urls": "콜백 URL: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "설명",
"installed_oauth_apps.empty": "OAuth 2.0 애플리케이션이 없습니다",
"installed_oauth_apps.header": "OAuth 2.0 애플리케이션",
- "installed_oauth_apps.help": "OAuth 2.0(으)로 외부 애플리케이션을 Mattermost에 안전하게 통합하세요. 자세한 내용은 {link}를 참고하세요.",
- "installed_oauth_apps.helpLink": "문서",
+ "installed_oauth_apps.help": "Create {oauthApplications} to securely integrate bots and third-party apps with Mattermost. Visit the {appDirectory} to find available self-hosted apps.",
+ "installed_oauth_apps.help.appDirectory": "App Directory",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 애플리케이션",
"installed_oauth_apps.homepage": "홈페이지",
"installed_oauth_apps.iconUrl": "아이콘 URL",
"installed_oauth_apps.is_trusted": "신뢰함: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "This action permanently deletes the outgoing webhook and breaks any integrations using it. Are you sure you want to delete it?",
"installed_outgoing_webhooks.empty": "Outgoing Webhook이 없습니다.",
"installed_outgoing_webhooks.header": "Outgoing Webhook",
- "installed_outgoing_webhooks.help": "외부 통합에 사용하기 위한 Outgoing webhook URL을 생성하세요. 자세한 내용은 {link}를 참조하세요.",
- "installed_outgoing_webhooks.helpLink": "문서",
+ "installed_outgoing_webhooks.help": "Use outgoing webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_outgoing_webhooks.help.appDirectory": "App Directory",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Build your own",
"installed_outgoing_webhooks.search": "Outgoing Webhook 검색",
"installed_outgoing_webhooks.unknown_channel": "비공개 Webhook",
"integrations.add": "추가",
@@ -1543,6 +1561,8 @@
"integrations.done": "확인",
"integrations.edit": "편집",
"integrations.header": "통합 기능",
+ "integrations.help": "Visit the {appDirectory} to find self-hosted, third-party apps and integrations for Mattermost.",
+ "integrations.help.appDirectory": "App Directory",
"integrations.incomingWebhook.description": "Incoming Webhook은 외부 시스템에서 메시지를 받을 수 있게합니다.",
"integrations.incomingWebhook.title": "Incoming Webhook",
"integrations.oauthApps.description": "OAuth 2.0 allows external applications to make authorized requests to the Mattermost API.",
@@ -1551,11 +1571,11 @@
"integrations.outgoingWebhook.title": "Outgoing Webhook",
"integrations.successful": "설정이 완료되었습니다.",
"intro_messages.DM": "{teammate}와 개인 메시지의 시작입니다.<br />개인 메시지나 여기서 공유된 파일들은 외부에서 보여지지 않습니다.",
- "intro_messages.GM": "{teammate}와 개인 메시지의 시작입니다.<br />개인 메시지나 여기서 공유된 파일들은 외부에서 보여지지 않습니다.",
+ "intro_messages.GM": "{names}와 그룹 메시지의 시작입니다.<br />개인 메시지나 여기서 공유된 파일들은 외부에서 보여지지 않습니다.",
"intro_messages.anyMember": " 모든 회원이 채널에 가입하고 글을 읽을 수 있습니다.",
"intro_messages.beginning": "{name}의 시작",
"intro_messages.channel": "채널",
- "intro_messages.creator": "{name} {type}입니다. 만들어진 날짜: {date}.",
+ "intro_messages.creator": "이것은 {date}에 {creator} 님이 작성한 {name} {type}의 시작입니다.",
"intro_messages.default": "<h4 class='channel-intro__title'>Beginning of {display_name}</h4><p class='channel-intro__content'><strong>Welcome to {display_name}!</strong><br/><br/>Post messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.</p>",
"intro_messages.group": "비공개 채널",
"intro_messages.group_message": "This is the start of your direct message history with this teammate. Direct messages and files shared here are not shown to people outside this area.",
@@ -1657,7 +1677,7 @@
"mfa.setup.step3": "<strong>Step 3: </strong>Enter the code generated by Google Authenticator",
"mfa.setupTitle": "Enable Multi-factor Authentication:",
"mobile.about.appVersion": "App Version: {version} (Build {number})",
- "mobile.about.copyright": "Copyright 2016 Mattermost, Inc. All rights reserved",
+ "mobile.about.copyright": "Copyright 2015-{currentYear} Mattermost, Inc. All rights reserved",
"mobile.about.database": "Database: {type}",
"mobile.about.serverVersion": "Server Version: {version} (Build {number})",
"mobile.about.serverVersionNoBuild": "Server Version: {version}",
@@ -1669,8 +1689,8 @@
"mobile.account_notifications.threads_start": "Threads that I start",
"mobile.account_notifications.threads_start_participate": "Threads that I start or participate in",
"mobile.channel_drawer.search": "Jump to a conversation",
- "mobile.channel_info.alertMessageDeleteChannel": "정말 {term}을 삭제하시겠습니까?",
- "mobile.channel_info.alertMessageLeaveChannel": "정말 {term}을 삭제하시겠습니까?",
+ "mobile.channel_info.alertMessageDeleteChannel": "{term} {name}을 (를) 삭제 하시겠습니까?",
+ "mobile.channel_info.alertMessageLeaveChannel": "{term} {name}을 (를) 종료 하시겠습니까?",
"mobile.channel_info.alertNo": "아니요",
"mobile.channel_info.alertTitleDeleteChannel": "{term} 삭제...",
"mobile.channel_info.alertTitleLeaveChannel": "{term} 떠나기",
@@ -1678,7 +1698,7 @@
"mobile.channel_info.delete_failed": "We couldn't delete the channel {displayName}. Please check your connection and try again.",
"mobile.channel_info.privateChannel": "비공개 채널",
"mobile.channel_info.publicChannel": "공개 채널",
- "mobile.channel_list.alertMessageLeaveChannel": "정말 {term}을 삭제하시겠습니까?",
+ "mobile.channel_list.alertMessageLeaveChannel": "{term} {name}을 (를) 종료 하시겠습니까?",
"mobile.channel_list.alertNo": "아니요",
"mobile.channel_list.alertTitleLeaveChannel": "{term} 떠나기",
"mobile.channel_list.alertYes": "네",
@@ -1713,7 +1733,7 @@
"mobile.file_upload.more": "더 보기",
"mobile.file_upload.video": "Video Library",
"mobile.help.title": "도움말",
- "mobile.intro_messages.DM": "{teammate}와 개인 메시지의 시작입니다.<br />개인 메시지나 여기서 공유된 파일들은 외부에서 보여지지 않습니다.",
+ "mobile.intro_messages.DM": "{teammate}와 개인 메시지의 시작입니다. 개인 메시지나 여기서 공유된 파일들은 외부에서 보여지지 않습니다.",
"mobile.intro_messages.default_message": "This is the first channel teammates see when they sign up - use it for posting updates everyone needs to know.",
"mobile.intro_messages.default_welcome": "Welcome to {name}!",
"mobile.join_channel.error": "We couldn't join the channel {displayName}. Please check your connection and try again.",
@@ -1727,7 +1747,7 @@
"mobile.offlineIndicator.offline": "No internet connection",
"mobile.open_dm.error": "We couldn't open a direct message with {displayName}. Please check your connection and try again.",
"mobile.post.cancel": "취소",
- "mobile.post.delete_question": "정말 {term}을 삭제하시겠습니까?",
+ "mobile.post.delete_question": "정말 게시물을 삭제하시겠습니까?",
"mobile.post.delete_title": "Delete Post",
"mobile.post.failed_delete": "Delete Message",
"mobile.post.failed_retry": "Try Again",
@@ -1764,6 +1784,9 @@
"mobile.server_upgrade.title": "Server upgrade required",
"mobile.server_url.invalid_format": "URL 주소는 http:// 또는 https:// 로 시작되어야 합니다",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications.",
+ "mobile.settings.clear": "Clear Offline Store",
+ "mobile.settings.clear_button": "Clear",
+ "mobile.settings.clear_message": "\nThis will clear all offline data and restart the app. You will be automatically logged back in once the app restarts.\n",
"mobile.settings.team_selection": "팀 선택",
"modal.manaul_status.ask": "Do not ask me again",
"modal.manaul_status.button": "Yes, set my status to \"Online\"",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Start typing then use TAB to toggle channels/teams, ↑↓ to browse, ↵ to select, and ESC to dismiss.",
+ "quick_switch_modal.help_mobile": "Type to find a channel.",
"quick_switch_modal.help_no_team": "Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.",
"quick_switch_modal.teams": "서비스 약관",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,15 +1986,15 @@
"setting_upload.import": "가져오기",
"setting_upload.noFile": "파일이 선택되지 않았습니다.",
"setting_upload.select": "파일 선택",
- "sidebar.channels": "채널",
+ "sidebar.channels": "PUBLIC CHANNELS",
"sidebar.createChannel": "공개 채널 만들기",
"sidebar.createGroup": "공개 채널 만들기",
- "sidebar.direct": "개인 메시지",
- "sidebar.favorite": "즐겨찾기",
+ "sidebar.direct": "DIRECT MESSAGES",
+ "sidebar.favorite": "FAVORITE CHANNELS",
"sidebar.more": "더 보기",
"sidebar.moreElips": "더 보기...",
"sidebar.otherMembers": "팀 외부",
- "sidebar.pg": "비공개 채널",
+ "sidebar.pg": "PRIVATE CHANNELS",
"sidebar.removeList": "목록에서 제거",
"sidebar.tutorialScreen1": "<h4>채널</h4><p><strong>채널</strong>을 통해 주제별로 대화를 구성합니다. 팀의 모든 일원에게 공개되어 있습니다. 공개하고 싶지 않은 메시지는 <strong>개인 메시지</strong>나 <strong>비공개 그룹</strong>으로 전달할 수 있습니다. </p>",
"sidebar.tutorialScreen2": "<h4>\"{townsquare}\" 와 \"{offtopic}\" 채널</h4><p>두 채널과 함께 시작합니다:</p><p><strong>{townsquare}</strong>(은)는 팀 전체의 소통을 위한 공간입니다. 모든 팀의 구성원들이 확인할 수 있습니다.</p><p><strong>{offtopic}</strong> 비업무 대화를 위한 공간입니다. 당신의 팀에 어떤 채널을 만들고 운영할지 결정할 수 있습니다.</p>",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "이 곳에 파일을 끌어 업로드하세요.",
"user.settings.advance.embed_preview": "For the first web link in a message, display a preview of website content below the message, if available",
"user.settings.advance.embed_toggle": "미리보기 토글 버튼 보여주기",
- "user.settings.advance.emojipicker": "Enable emoji picker for reactions and message input box",
"user.settings.advance.enabledFeatures": "{count, number}개 기능 활성화",
"user.settings.advance.formattingDesc": "활성화 하면 링크, 이모티콘, 글자 스타일 등을 사용할 수 있습니다. 기본적으로 활성화 되있습니다. 설정을 변경하려면 페이지 새로고침이 필요합니다.",
"user.settings.advance.formattingTitle": "마크다운으로 글쓰기",
diff --git a/webapp/i18n/nl.json b/webapp/i18n/nl.json
index cd63c2731..d25466bc4 100644
--- a/webapp/i18n/nl.json
+++ b/webapp/i18n/nl.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Voeg een link toe naar de download pagina voor de Mattermost apps. Als er een link is, een optie met \"Download Mattermost Apps\" zal worden toegevoegd aan het Hoofdmenu, zodat gebruikers de download pagina kunnen vinden. Laat dit veld leef om deze optie te verbergen in het Hoofdmenu.",
"admin.customization.appDownloadLinkTitle": "Mattermost Apps Download Pagina Link:",
"admin.customization.customBrand": "Aangepaste huisstijl",
- "admin.customization.customEmoji": "Aangepaste emoji",
+ "admin.customization.emoji": "Emoji",
"admin.customization.enableCustomEmojiDesc": "Inschakelen dat gebruikers aangepaste emojis kunnen maken voor in berichten. Wanneer ingeschakeld, Aagepaste Emoji instellingen staan dan bij wisselen van team en dan op de drie puntjes klikken, en selecteer \"Aangepaste Emoji\".",
"admin.customization.enableCustomEmojiTitle": "Aangepaste emoji inschakelen:",
+ "admin.customization.enableEmojiPickerDesc": "The emoji picker allows users to select emoji to add as reactions or use in messages. Enabling the emoji picker with a large number of custom emoji may slow down performance.",
+ "admin.customization.enableEmojiPickerTitle": "Enable Emoji Picker:",
"admin.customization.enableLinkPreviewsDesc": "Enable users to display a preview of website content below the message, if available. When true, website previews can be enabled from Account Settings > Advanced > Preview pre-release features.",
"admin.customization.enableLinkPreviewsTitle": "Enable Link Previews:",
"admin.customization.iosAppDownloadLinkDesc": "Voeg een link toe naar de iOs app. Gebruikers die via een mobiele webbrowser de site bezoeken zullen een pagina krijgen met de optie om de app te downloaden. Laat dit veld leeg om deze pagina niet weer te geven. ",
@@ -601,13 +603,20 @@
"admin.rate.title": "Snelheidslimiet instellingen",
"admin.recycle.button": "Recycle database verbindingen",
"admin.recycle.loading": " Recyclen...",
- "admin.recycle.recycleDescription": "Deployments die gebruik maken van meerdere databases kunnen omschakelen van 1 hoofd database naar een andere zonder het herstarten van de Mattermost server door het bijwerken van de \"config.json\" met de nieuwe configuratie en gebruik makend van de <a href=\"../general/configuration\"><b>Configuration > Herlaad Configuratie van Disk</b></a> terwijl de server draait. De beheerder zal dan gebruik moeten maken van <b>Recycle Database Connecties</b> om de database connecties te herladen met de nieuwe instellingen.",
+ "admin.recycle.recycleDescription": "Deployments die gebruik maken van meerdere databases kunnen omschakelen van 1 hoofd database naar een andere zonder het herstarten van de Mattermost server door het bijwerken van de \"config.json\" met de nieuwe configuratie en gebruik makend van de <b>Configuration > Herlaad Configuratie van Disk</b> terwijl de server draait. De beheerder zal dan gebruik moeten maken van <a href=\"../advanced/database\"><b>Database > Recycle Database Connecties</b></a> om de database connecties te herladen met de nieuwe instellingen.",
+ "admin.recycle.recycleDescription.featureName": "Recycle database verbindingen",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Configuration > Reload Configuration from Disk",
"admin.recycle.reloadFail": "Recycling was niet succesvol: {error}",
"admin.regenerate": "Opnieuw genereren",
"admin.reload.button": "Configuratiebestand herladen",
"admin.reload.loading": "Laden...",
"admin.reload.reloadDescription": "Deployments die gebruik maken van meerdere databases kunnen omschakelen van 1 hoofd database naar een andere zonder het herstarten van de Mattermost server door het bijwerken van de \"config.json\" met de nieuwe configuratie en gebruik makend van de <b>Configuration > Herlaad Configuratie van Disk</b> terwijl de server draait. De beheerder zal dan gebruik moeten maken van <a href=\"../advanced/database\"><b>Database > Recycle Database Connecties</b></a> om de database connecties te herladen met de nieuwe instellingen.",
+ "admin.reload.reloadDescription.featureName": "Configuratiebestand herladen",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Database > Recycle Database Connections",
"admin.reload.reloadFail": "Verbinding was niet succesvol: {error}",
+ "admin.requestButton.loading": "Laden...",
+ "admin.requestButton.requestFailure": "Sync Mislukt: {error}",
+ "admin.requestButton.requestSuccess": "Installatie Succesvol",
"admin.reset_password.close": "Afsluiten",
"admin.reset_password.newPassword": "Nieuw wachtwoord",
"admin.reset_password.select": "Selecteer",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "Cross-origin Requests toestaan van:",
"admin.service.developerDesc": "Javascript fout worden weergeven in een rode bar boven in de user interface. Niet aangeraden voor productie.",
"admin.service.developerTitle": "Developer mode inschakelen: ",
+ "admin.service.enableAPIv3": "Allow use of API v3 endpoints:",
+ "admin.service.enableAPIv3Description": "Set to false to disable all version 3 endpoints of the REST API. Integrations that rely on API v3 will fail and can then be identified for migration to API v4. API v3 is deprecated and will be removed in the near future. See <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> for details.",
"admin.service.enforceMfaDesc": "When true, <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>multi-factor authentication</a> is required for login. New users will be required to configure MFA on signup. Logged in users without MFA configured are redirected to the MFA setup page until configuration is complete.<br/><br/>If your system has users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost.",
"admin.service.enforceMfaTitle": "Aanzetten multi-factor authenticatie:",
"admin.service.forward80To443": "Forward port 80 to 443:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "Configuratie",
"admin.sidebar.connections": "Verbindingen",
"admin.sidebar.customBrand": "Aangepast huisstijl",
- "admin.sidebar.customEmoji": "Aangepaste Emoji",
"admin.sidebar.customIntegrations": "Aangepaste Intergraties",
"admin.sidebar.customization": "Customisatie",
"admin.sidebar.database": "Database",
"admin.sidebar.developer": "Ontwikkelaar",
"admin.sidebar.email": "E-mail",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "Externe services",
"admin.sidebar.files": "Bestanden",
"admin.sidebar.general": "Algemeen",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "Kanaal URL moet 2 of meer kleine alfanumerieke karakters bevatten",
"channel_flow.invalidName": "Ongeldige kanaal naam",
"channel_flow.set_url_title": "Set Channel URL",
+ "channel_header.addChannelHeader": "Add a channel description",
"channel_header.addMembers": "Leden toevoegen",
"channel_header.addToFavorites": "Add to Favorites",
"channel_header.channelHeader": "Edit Channel Header",
+ "channel_header.channelMembers": " Leden",
"channel_header.delete": "Verwijder kanaal...",
"channel_header.flagged": "Gemarkeerde Berichten",
"channel_header.leave": "Verlaat kanaal",
"channel_header.manageMembers": "Leden beheren",
"channel_header.notificationPreferences": "Meldings-voorkeuren",
+ "channel_header.pinnedPosts": "Pinned Posts",
"channel_header.recentMentions": "Recente vermeldingen",
"channel_header.removeFromFavorites": "Remove from Favorites",
"channel_header.rename": "Hernoem kanaal...",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "This action permanently deletes the slash command and breaks any integrations using it. Are you sure you want to delete it?",
"installed_commands.empty": "Geen opdrachten gevonden",
"installed_commands.header": "Slash opdrachten",
- "installed_commands.help": "Maak slash commando's voor gebruik in externe integraties. Bekijk de {link} om hier meer over te lezen.",
- "installed_commands.helpLink": "documentatie",
+ "installed_commands.help": "Use slash commands to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_commands.help.appDirectory": "App Directory",
+ "installed_commands.help.buildYourOwn": "Build your own",
"installed_commands.search": "Zoek Slash Commando's",
"installed_commands.unnamed_command": "Slash opdracht zonder naam",
"installed_incoming_webhooks.add": "Inkomende webhook toevoegen",
"installed_incoming_webhooks.delete.confirm": "This action permanently deletes the incoming webhook and breaks any integrations using it. Are you sure you want to delete it?",
"installed_incoming_webhooks.empty": "Geen inkomende webhooks gevonden",
"installed_incoming_webhooks.header": "Inkomende webhooks",
- "installed_incoming_webhooks.help": "Maak inkomende webhook URLs voor gebruik in externe integraties. Bekijk de {link} om hier meer over te lezen.",
- "installed_incoming_webhooks.helpLink": "documentatie",
+ "installed_incoming_webhooks.help": "Use incoming webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_incoming_webhooks.help.appDirectory": "App Directory",
+ "installed_incoming_webhooks.help.buildYourOwn": "Build your own",
"installed_incoming_webhooks.search": "Zoek Inkomende Webhooks",
"installed_incoming_webhooks.unknown_channel": "Een privé webhook",
"installed_integrations.callback_urls": "Callback URLs: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Omschrijving",
"installed_oauth_apps.empty": "Geen OAuth 2.0 Applicaties gevonden",
"installed_oauth_apps.header": "OAuth 2.0 Applicaties",
- "installed_oauth_apps.help": "Create OAuth 2.0 applications to securely integrate bots and third-party applications with Mattermost. Please see {link} to learn more.",
- "installed_oauth_apps.helpLink": "documentatie",
+ "installed_oauth_apps.help": "Create {oauthApplications} to securely integrate bots and third-party apps with Mattermost. Visit the {appDirectory} to find available self-hosted apps.",
+ "installed_oauth_apps.help.appDirectory": "App Directory",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 Applicaties",
"installed_oauth_apps.homepage": "Homepagina",
"installed_oauth_apps.iconUrl": "Pictogram-URL",
"installed_oauth_apps.is_trusted": "Is Vertrouwd: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "This action permanently deletes the outgoing webhook and breaks any integrations using it. Are you sure you want to delete it?",
"installed_outgoing_webhooks.empty": "Geen uitgaande webhooks gevonden",
"installed_outgoing_webhooks.header": "Uitgaande webhooks",
- "installed_outgoing_webhooks.help": "Maak uitgaande webhook URLs voor gebruik in externe integraties. Bekijk de {link} om hier meer over te lezen.",
- "installed_outgoing_webhooks.helpLink": "documentatie",
+ "installed_outgoing_webhooks.help": "Use outgoing webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_outgoing_webhooks.help.appDirectory": "App Directory",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Build your own",
"installed_outgoing_webhooks.search": "Zoek Uitgaande Webhooks",
"installed_outgoing_webhooks.unknown_channel": "Een privé webhook",
"integrations.add": "Toevoegen",
@@ -1543,6 +1561,8 @@
"integrations.done": "Gereed",
"integrations.edit": "Bewerken",
"integrations.header": "Integraties",
+ "integrations.help": "Visit the {appDirectory} to find self-hosted, third-party apps and integrations for Mattermost.",
+ "integrations.help.appDirectory": "App Directory",
"integrations.incomingWebhook.description": "Inkomende webhooks laten externel integraties toe om berichten te sturen",
"integrations.incomingWebhook.title": "Inkomende webhook",
"integrations.oauthApps.description": "OAuth 2.0 staat externe applicaties toe om geautoriseerde verzoeken te sturen naar de Mattermost API.",
@@ -1764,6 +1784,9 @@
"mobile.server_upgrade.title": "Server upgrade required",
"mobile.server_url.invalid_format": "Moet beginnen met http:// of https://",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications.",
+ "mobile.settings.clear": "Clear Offline Store",
+ "mobile.settings.clear_button": "Clear",
+ "mobile.settings.clear_message": "\nThis will clear all offline data and restart the app. You will be automatically logged back in once the app restarts.\n",
"mobile.settings.team_selection": "Team Selectie",
"modal.manaul_status.ask": "Do not ask me again",
"modal.manaul_status.button": "Yes, set my status to \"Online\"",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Start typing then use TAB to toggle channels/teams, ↑↓ to browse, ↵ to select, and ESC to dismiss.",
+ "quick_switch_modal.help_mobile": "Type to find a channel.",
"quick_switch_modal.help_no_team": "Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.",
"quick_switch_modal.teams": "Termen",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,15 +1986,15 @@
"setting_upload.import": "Importeer",
"setting_upload.noFile": "Geen bestand geselecteerd.",
"setting_upload.select": "Selecteer een bestand",
- "sidebar.channels": "Kanalen",
+ "sidebar.channels": "PUBLIC CHANNELS",
"sidebar.createChannel": "Maak een publiek kanaal",
"sidebar.createGroup": "Maak een publiek kanaal",
- "sidebar.direct": "Privé berichten",
- "sidebar.favorite": "Favorites",
+ "sidebar.direct": "DIRECT MESSAGES",
+ "sidebar.favorite": "FAVORITE CHANNELS",
"sidebar.more": "Meer",
"sidebar.moreElips": "Meer...",
"sidebar.otherMembers": "Buiten dit team",
- "sidebar.pg": "Verlaat kanaal",
+ "sidebar.pg": "PRIVATE CHANNELS",
"sidebar.removeList": "Uit de lijst verwijderen",
"sidebar.tutorialScreen1": "<h4>Kanalen</h4><p><strong>Kanalen</strong> organiseren conversaties in verschillende onderwerpen. Ze zijn open voor iedereen in je team. Om privéberichten te sturen, gebruik <strong>Directe Berichten</strong> voor een enkel persoon of <strong>Privé Groepen</strong> voor meerdere personen.</p>",
"sidebar.tutorialScreen2": "<h4>\"{townsquare}\" en \"{offtopic}\" kanalen</h4><p>Hier zijn 2 publieke kanalen om te starten:</p><p><strong>{townsquare}</strong> is een plaats voor team wijde communicatie. Iedereen in jouw team is lid van dit kanaal.</p><p><strong>{offtopic}</strong> is een plaats voor ontspanning en humor buiten werk gerelateerde zaken en kanalen. Jij en jouw team kunnen beslissen wel andere kanalen er gemaakt moeten worden.</p>",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "Sleep hier een bestand om te uploaden.",
"user.settings.advance.embed_preview": "For the first web link in a message, display a preview of website content below the message, if available",
"user.settings.advance.embed_toggle": "Toon schakel optie voor alle ingesloten voorbeelden",
- "user.settings.advance.emojipicker": "Enable emoji picker for reactions and message input box",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {Feature} other {Features}} Ingeschakeld",
"user.settings.advance.formattingDesc": "Indien ingeschakeld, worden berichten opgemaakt met links, emoji, stijl van de tekst, en regeleinden toevoegen. Standaard is deze instelling ingeschakeld. Het wijzigen van deze instelling vereist dat de pagina vernieuwd wordt.",
"user.settings.advance.formattingTitle": "Bericht opmaak inschakelen",
diff --git a/webapp/i18n/pl.json b/webapp/i18n/pl.json
index 692b6adea..8bd4c96cc 100644
--- a/webapp/i18n/pl.json
+++ b/webapp/i18n/pl.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Dodaj link służący do pobrania aplikacji Mattermost. Gdy link jest podany zostanie dodana opcja \"Pobierz aplikacje Mattermost\" do menu głównego, żeby użytkownicy mogli znaleźć stronę pobrań. Jeśli zostawisz to pole puste ta opcja będzie ukryta w menu głównym.",
"admin.customization.appDownloadLinkTitle": "Link do strony pobrań aplikacji Mattermost:",
"admin.customization.customBrand": "Własna marka",
- "admin.customization.customEmoji": "Własne emotikony",
+ "admin.customization.emoji": "Emoji",
"admin.customization.enableCustomEmojiDesc": "Pozwól użytkownikom na tworzenie własnych emoji do użytku w wiadomościach. Jeśli zostanie włączone ustawienia własnych emoji można znaleźć przez przełączenie się na zespół, kliknięcie trzech kropek nad paskiem bocznym kanału i wybranie \"Własne Emoji\".",
"admin.customization.enableCustomEmojiTitle": "Włącz własne emotikony:",
+ "admin.customization.enableEmojiPickerDesc": "The emoji picker allows users to select emoji to add as reactions or use in messages. Enabling the emoji picker with a large number of custom emoji may slow down performance.",
+ "admin.customization.enableEmojiPickerTitle": "Enable Emoji Picker:",
"admin.customization.enableLinkPreviewsDesc": "Włącz użytkownikom możliwość wyświetlania podglądu treści strony pod wiadomością, jeśli dostępne. Jeśli włączone, podgląd strony może być odblokowany przez użytkowników w Ustawienia Konta > Zaawansowane > Podgląd wstępnych funkcjonalności",
"admin.customization.enableLinkPreviewsTitle": "Włącz podgląd linków:",
"admin.customization.iosAppDownloadLinkDesc": "Dodaj link służący do pobrania aplikacji iOS. Użytkownicy, którzy korzystają ze strony na przeglądarce mobilnej zobaczą stronę z możliwością pobrania aplikacji. Jeśli zostawisz to pole puste ta strona nie pokaże się. ",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "Np. \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "Wartość losowa do zaproszeń Email:",
"admin.email.mhpns": "Użyj szyfrowanego, produkcyjnej jakości połączenia HPNS do aplikacji iOS i Android",
- "admin.email.mhpnsHelp": "Pobierz <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target=\"_blank\">aplikację Mattermost na iOS</a> z iTunes. Pobierz <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target=\"_blank\">aplikację Mattermost na Androida</a> z Google Play. Dowiedz się więcej o <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target=\"_blank\">HPNS (jęz. angielski)</a>.",
+ "admin.email.mhpnsHelp": "Pobierz <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>aplikację Mattermost na iOS</a> z iTunes. Pobierz <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>aplikację Mattermost na Androida</a> z Google Play. Dowiedz się więcej o <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target=\"_blank\">HPNS (jęz. angielski)</a>.",
"admin.email.mtpns": "Użyj aplikacji na iOS i Android na iTunes i Google Play z TPNS",
- "admin.email.mtpnsHelp": "Pobierz <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target=\"_blank\">aplikację Mattermost na iOS</a> z iTunes. Pobierz <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target=\"_blank\">aplikację Mattermost na Androida</a> z Google Play. Dowiedz się więcej o <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target=\"_blank\">TPNS (jęz. angielski)</a>. ",
+ "admin.email.mtpnsHelp": "Pobierz <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>aplikację Mattermost na iOS</a> z iTunes. Pobierz <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>aplikację Mattermost na Androida</a> z Google Play. Dowiedz się więcej o <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target=\"_blank\">TPNS (jęz. angielski)</a>. ",
"admin.email.nofificationOrganizationExample": "Np. \"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "Nazwa wyświetlana w powiadomieniach mailowych wysyłanych z Mattermost.",
"admin.email.notificationDisplayExample": "np: \"Powiadomienia Mattermost\", \"System\", \"No-Reply\", \"Nie odpowiadać\"",
@@ -601,13 +603,20 @@
"admin.rate.title": "Ustawienia Ograniczeń Prędkości",
"admin.recycle.button": "Ponownie Wprowadź Do Obiegu Połączenia z Bazą Danych",
"admin.recycle.loading": "Ponowne wprowadzanie do obiegu...",
- "admin.recycle.recycleDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the <a href=\"../general/configuration\"><b>Configuration > Reload Configuration from Disk</b></a> feature to load the new settings while the server is running. The administrator should then use <b>Recycle Database Connections</b> feature to recycle the database connections based on the new settings.",
+ "admin.recycle.recycleDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the {reloadConfiguration} feature to load the new settings while the server is running. The administrator should then use {featureName} feature to recycle the database connections based on the new settings.",
+ "admin.recycle.recycleDescription.featureName": "Ponownie Wprowadź Do Obiegu Połączenia z Bazą Danych",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Configuration > Reload Configuration from Disk",
"admin.recycle.reloadFail": "Odzyskiwanie nie powiodło się: {error}",
"admin.regenerate": "Regeneruj",
"admin.reload.button": "Ponownie odczytaj konfigurację z dysku",
"admin.reload.loading": "Ładowanie...",
- "admin.reload.reloadDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the <b>Reload Configuration from Disk</b> feature to load the new settings while the server is running. The administrator should then use the <a href=\"../advanced/database\"><b>Database > Recycle Database Connections</b></a> feature to recycle the database connections based on the new settings.",
+ "admin.reload.reloadDescription": "Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating \"config.json\" to the new desired configuration and using the {featureName} feature to load the new settings while the server is running. The administrator should then use the {recycleDatabaseConnections} feature to recycle the database connections based on the new settings.",
+ "admin.reload.reloadDescription.featureName": "Ponownie odczytaj konfigurację z dysku",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Database > Recycle Database Connections",
"admin.reload.reloadFail": "Przeładowanie nieudane: {error}",
+ "admin.requestButton.loading": " Ładowanie...",
+ "admin.requestButton.requestFailure": "Niepowodzenie testu: {error}",
+ "admin.requestButton.requestSuccess": "Test zakończony sukcesem",
"admin.reset_password.close": "Zamknij",
"admin.reset_password.newPassword": "Nowe hasło",
"admin.reset_password.select": "Wybierz",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "Pozwól na zapytania Cross-domain z:",
"admin.service.developerDesc": "Gdy włączone, błędy JavaScript wyświetlane są na czerwonym pasku u góry interfejsu użytkownika. Nie zalecane w wersji produkcyjnej. ",
"admin.service.developerTitle": "Włączyć Tryb Dewelopera: ",
+ "admin.service.enableAPIv3": "Allow use of API v3 endpoints:",
+ "admin.service.enableAPIv3Description": "Set to false to disable all version 3 endpoints of the REST API. Integrations that rely on API v3 will fail and can then be identified for migration to API v4. API v3 is deprecated and will be removed in the near future. See <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> for details.",
"admin.service.enforceMfaDesc": "When true, <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>multi-factor authentication</a> is required for login. New users will be required to configure MFA on signup. Logged in users without MFA configured are redirected to the MFA setup page until configuration is complete.<br/><br/>If your system has users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost.",
"admin.service.enforceMfaTitle": "Wymuszaj uwierzytelnianie wieloskładnikowe:",
"admin.service.forward80To443": "Przekaż port 80 do 443:",
@@ -732,7 +743,7 @@
"admin.service.siteURLExample": "Np.: \"https://mattermost.example.com:1234\"",
"admin.service.ssoSessionDays": "Długość sesji SSO (dni):",
"admin.service.ssoSessionDaysDesc": "Ilość dni od momentu, gdy użytkownik się zaloguje do wygaśnięcia jego sesji. Jeśli sposób logowania to SAML lub GitLab, użytkownik może zostać automatycznie ponownie zalogowany do Mattermost, jeśli jest akurat zalogowany w SAML lub GitLab. Po zmianie tej wartości, nowa długość sesji będzie brana pod uwagę po kolejnym zalogowaniu się użytkownika. ",
- "admin.service.testingDescription": "Jeśli włączone, za pomocą polecenia z ukośnikiem /loadtest można ładować testowe konta, dane i formatowanie tekstu. Aby wprowadzić zmiany, wymagany jest restart serwera.",
+ "admin.service.testingDescription": "Jeśli włączone, za pomocą polecenia z ukośnikiem /test można ładować testowe konta, dane i formatowanie tekstu. Aby wprowadzić zmiany, wymagany jest restart serwera.",
"admin.service.testingTitle": "Włącz Testowe Polecenia:",
"admin.service.tlsCertFile": "Plik Certyfikatu TLS:",
"admin.service.tlsCertFileDescription": "Plik certyfikatu który używać.",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "Konfiguracja",
"admin.sidebar.connections": "Połączenia",
"admin.sidebar.customBrand": "Własna marka",
- "admin.sidebar.customEmoji": "Własne emotikony",
"admin.sidebar.customIntegrations": "Niestandardowe integracje",
"admin.sidebar.customization": "Dostosowywanie",
"admin.sidebar.database": "Baza danych",
"admin.sidebar.developer": "Twórca",
"admin.sidebar.email": "E-mail",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "Zewnętrzne usługi",
"admin.sidebar.files": "Pliki",
"admin.sidebar.general": "Ogólne",
@@ -874,13 +885,13 @@
"admin.team.restrict_direct_message_team": "Dowolny uczestnik zespołu",
"admin.team.showFullname": "Show first and last name (default)",
"admin.team.showNickname": "Pokaż nick, jeśli taki istnieje, w przeciwnym przypadku wyświetl imię i nazwisko",
- "admin.team.showUsername": "Show username",
+ "admin.team.showUsername": "Pokaż nazwę użytkownika",
"admin.team.siteNameDescription": "Nazwa usługi wyświetlona na stronie logowania i w interfejsie użytkownika.",
"admin.team.siteNameExample": "Np.: \"Mattermost\"",
"admin.team.siteNameTitle": "Nazwa witryny",
"admin.team.teamCreationDescription": "Jeśli wyłączone, tylko Systemowi Administratorzy mogą tworzyć zespoły.",
"admin.team.teamCreationTitle": "Włącz Tworzenie Zespołów:",
- "admin.team.teammateNameDisplay": "Wyświetlana nazwa",
+ "admin.team.teammateNameDisplay": "Wyświetlana nazwa zespołu:",
"admin.team.teammateNameDisplayDesc": "Ustawia jak wyświetlać nazwy innych użytkowników w postach i wiadomościach bezpośrednich.",
"admin.team.upload": "Wyślij",
"admin.team.uploadDesc": "Dostosuj wrażenia użytkownika, dodając niestandardowy obraz do ekranu logowania. Zalecany maksymalny rozmiar obrazu to mniej niż 2 MB.",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "Adres URL kanału musi zawierać 2 lub więcej małych znaków alfanumerycznych",
"channel_flow.invalidName": "Nieprawidłowa nazwa kanału",
"channel_flow.set_url_title": "Ustaw URL Kanału",
+ "channel_header.addChannelHeader": "Add a channel description",
"channel_header.addMembers": "Dodaj użytkowników",
"channel_header.addToFavorites": "Dodaj do ulubionych",
"channel_header.channelHeader": "Edytuj nagłówek kanału",
+ "channel_header.channelMembers": "Użytkownicy",
"channel_header.delete": "Usuń kanał",
"channel_header.flagged": "Oznaczone posty",
"channel_header.leave": "Opuść kanał",
"channel_header.manageMembers": "Zarządzaj użytkownikami",
"channel_header.notificationPreferences": "Ustawienia powiadomień",
+ "channel_header.pinnedPosts": "Przypiente posty",
"channel_header.recentMentions": "Ostatnie wzmianki",
"channel_header.removeFromFavorites": "Usuń z ulubionych",
"channel_header.rename": "Zmień nazwę kanału",
@@ -1108,7 +1122,7 @@
"channel_loader.connection_error": "Wygląda na to, że wystąpił problem z twoim połączeniem internetowym.",
"channel_loader.posted": "Wysłany",
"channel_loader.postedImage": " wysłano obraz",
- "channel_loader.socketError": "Please check connection, Mattermost unreachable. If issue persists, ask administrator to <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">check WebSocket port</a>.",
+ "channel_loader.socketError": "Proszę, sprawdź połączenie, Mattermost nie jest dostępny. Jeśli problem nie zostanie rozwiązany, skontaktuj się z administratorem <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">sprawdź portyWebSocket</a>.",
"channel_loader.someone": "Ktoś",
"channel_loader.something": " zrobił/a coś nowego",
"channel_loader.unknown_error": "Otrzymaliśmy nieoczekiwany kod statusu z serwera.",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "Skasowanie polecenia slash uszkodzi wszystkie integracje, które je wykorzystują. Czy jesteś pewien, że chcesz je skasować?",
"installed_commands.empty": "Nie znaleziono poleceń",
"installed_commands.header": "Polecenia",
- "installed_commands.help": "Utwórz komendy do użytku w zewnętrznych integracjach. Więcej informacji można znaleźć na {link}.",
- "installed_commands.helpLink": "dokumentacja",
+ "installed_commands.help": "Use slash commands to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_commands.help.appDirectory": "App Directory",
+ "installed_commands.help.buildYourOwn": "Build your own",
"installed_commands.search": "Szukaj poleceń",
"installed_commands.unnamed_command": "Nienazwane polecenie",
"installed_incoming_webhooks.add": "Dodaj przychodzący Webhook",
"installed_incoming_webhooks.delete.confirm": "Skasowanie przychodzącego webhooka uszkodzi wszystkie integracje, które go wykorzystują. Czy jesteś pewien, że chcesz go skasować?",
"installed_incoming_webhooks.empty": "Nie znaleziono wychodzących webhook'ów",
"installed_incoming_webhooks.header": "Przychodzące Webhooki",
- "installed_incoming_webhooks.help": "Utwórz komendy do użytku w zewnętrznych integracjach. Więcej informacji można znaleźć na {link}.",
- "installed_incoming_webhooks.helpLink": "dokumentacja",
+ "installed_incoming_webhooks.help": "Use incoming webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_incoming_webhooks.help.appDirectory": "App Directory",
+ "installed_incoming_webhooks.help.buildYourOwn": "Build your own",
"installed_incoming_webhooks.search": "Szukaj wychodzących webhooków",
"installed_incoming_webhooks.unknown_channel": "Prywatny webhook",
"installed_integrations.callback_urls": "Adresy zwrotne: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Opis",
"installed_oauth_apps.empty": "Nie znaleziono aplikacji OAuth 2.0",
"installed_oauth_apps.header": "Aplikacje OAuth 2.0",
- "installed_oauth_apps.help": "Utwórz aplikacje OAuth 2.0, aby bezpiecznie integrować boty i aplikacje innych firm z Mattermost. Więcej informacji można znaleźć pod {link}.",
- "installed_oauth_apps.helpLink": "dokumentacja",
+ "installed_oauth_apps.help": "Create {oauthApplications} to securely integrate bots and third-party apps with Mattermost. Visit the {appDirectory} to find available self-hosted apps.",
+ "installed_oauth_apps.help.appDirectory": "App Directory",
+ "installed_oauth_apps.help.oauthApplications": "Aplikacje OAuth 2.0",
"installed_oauth_apps.homepage": "Strona domowa",
"installed_oauth_apps.iconUrl": "URL ikony",
"installed_oauth_apps.is_trusted": "Jest Zaufany: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "Skasowanie wychodzącego webhooka uszkodzi wszystkie integracje, które go wykorzystują. Czy jesteś pewien, że chcesz go skasować? ",
"installed_outgoing_webhooks.empty": "Nie znaleziono wychodzących webhooków",
"installed_outgoing_webhooks.header": "Wychodzące Webhooki",
- "installed_outgoing_webhooks.help": "Utwórz komendy do użytku w zewnętrznych integracjach. Więcej informacji można znaleźć na {link}.",
- "installed_outgoing_webhooks.helpLink": "dokumentacja",
+ "installed_outgoing_webhooks.help": "Use outgoing webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_outgoing_webhooks.help.appDirectory": "App Directory",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Build your own",
"installed_outgoing_webhooks.search": "Szukaj wychodzącego webhooka",
"installed_outgoing_webhooks.unknown_channel": "Prywatny webhook",
"integrations.add": "Dodaj",
@@ -1543,6 +1561,8 @@
"integrations.done": "Ukończono",
"integrations.edit": "Edycja",
"integrations.header": "Integracje",
+ "integrations.help": "Visit the {appDirectory} to find self-hosted, third-party apps and integrations for Mattermost.",
+ "integrations.help.appDirectory": "App Directory",
"integrations.incomingWebhook.description": "Przychodzące webhooki pozwalają zewnętrznym integracją wysyłać wiadomości",
"integrations.incomingWebhook.title": "Przychodzący Webhook",
"integrations.oauthApps.description": "OAuth 2.0 allows external applications to make authorized requests to the Mattermost API.",
@@ -1764,6 +1784,9 @@
"mobile.server_upgrade.title": "Server upgrade required",
"mobile.server_url.invalid_format": "Adres musi zaczynać się od http:// lub https://",
"mobile.session_expired": "Sesja wygasła: zaloguj się, aby kontynuować otrzymywanie powiadomień.",
+ "mobile.settings.clear": "Clear Offline Store",
+ "mobile.settings.clear_button": "Clear",
+ "mobile.settings.clear_message": "\nThis will clear all offline data and restart the app. You will be automatically logged back in once the app restarts.\n",
"mobile.settings.team_selection": "Wybór zespołu",
"modal.manaul_status.ask": "Nie pytaj ponownie",
"modal.manaul_status.button": "Tak, ustaw mój status na \"Online\"",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Start typing then use TAB to toggle channels/teams, ↑↓ to browse, ↵ to select, and ESC to dismiss.",
+ "quick_switch_modal.help_mobile": "Type to find a channel.",
"quick_switch_modal.help_no_team": "Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.",
"quick_switch_modal.teams": "Warunki",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,15 +1986,15 @@
"setting_upload.import": "Zaimportuj",
"setting_upload.noFile": "Nie wybrano pliku.",
"setting_upload.select": "Wybierz plik",
- "sidebar.channels": "Kanały",
+ "sidebar.channels": "PUBLIC CHANNELS",
"sidebar.createChannel": "Stwórz nowy kanał publiczny",
"sidebar.createGroup": "Stwórz nowy kanał prywatny",
- "sidebar.direct": "Wiadomości bezpośrednie",
- "sidebar.favorite": "Ulubione",
+ "sidebar.direct": "DIRECT MESSAGES",
+ "sidebar.favorite": "FAVORITE CHANNELS",
"sidebar.more": "Więcej",
"sidebar.moreElips": "Więcej...",
"sidebar.otherMembers": "Poza tym zespołem",
- "sidebar.pg": "Kanały prywatne",
+ "sidebar.pg": "PRIVATE CHANNELS",
"sidebar.removeList": "Usuń z listy",
"sidebar.tutorialScreen1": "<h4>Kanały</h4><p><strong>Kanały</strong> organizują rozmowy o różnych tematach. Są dostępne dla wszystkich członków zespołu. Do prywatnych rozmów proszę używać <strong>Wiadomości bezpośrednich</strong> do pojedynczych użytkowników lub <strong>Prywatnych grup</strong> dla rozmów w grupie użytkowników.</p>",
"sidebar.tutorialScreen2": "<h4>\"{townsquare}\" i \"{offtopic}\"</h4><p> oto dwa startowe kanały publiczne:</p><p><strong>{townsquare}</strong> - to miejsce do szerokiej komunikacji. Każda osoba w zespole jest członkiem tego kanału.</p><p><strong>{offtopic}</strong> - jest to miejsce do zabawy poza kanałami związanych z pracą. Ty i Twój zespół zdecydować, jakie inne kanały utworzyć.</p>",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "Upuść plik, aby go wysłać.",
"user.settings.advance.embed_preview": "W przypadku pierwszego łącza internetowego w wiadomości wyświetl podgląd treści witryny poniżej wiadomości, jeśli jest dostępna",
"user.settings.advance.embed_toggle": "Pokaż przełącznik dla wszystkich osadzonych podglądów",
- "user.settings.advance.emojipicker": "Włącz funkcję selekcji emoji dla reakcji i pola wprowadzania wiadomości",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {Feature} other {Features}} Enabled",
"user.settings.advance.formattingDesc": "Jeśli jest włączone, posty będą formatowane w celu utworzenia linków, wyświetlania emoji, stylowania tekstu i dodawania linii. Domyślnie to ustawienie jest włączone. Zmiana tego ustawienia wymaga odświeżenia strony.",
"user.settings.advance.formattingTitle": "Włączenie formatowania wiadomości",
diff --git a/webapp/i18n/pt-BR.json b/webapp/i18n/pt-BR.json
index 8a344a4a1..9d7342519 100644
--- a/webapp/i18n/pt-BR.json
+++ b/webapp/i18n/pt-BR.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Adiciona um link para página de download dos apps Mattermost. Quando um link está presente, a opção \"Download Apps Mattermost\" será adicionada no Menu Principal então os usuários poderão acessar a página de download. Deixe este campo em branco para ocultar a opção no Menu Principal.",
"admin.customization.appDownloadLinkTitle": "Apps Mattermost Link para Página de Download:",
"admin.customization.customBrand": "Marca Personalizada",
- "admin.customization.customEmoji": "Emoji Personalizado",
+ "admin.customization.emoji": "Emoji",
"admin.customization.enableCustomEmojiDesc": "Habilitar para os usuários a criação de emoji personalizados para usar nas mensagens. Quando habilitado, as configurações dos Emoji personalizados podem ser acessadas trocando para Time e clicando nos três pontos encima do canal, e selecionando \"Emoji Personalizados\".",
"admin.customization.enableCustomEmojiTitle": "Ativar Emoji Personalizado:",
+ "admin.customization.enableEmojiPickerDesc": "O seletor de emoji permite aos usuários selecionar emoji para adicionar como reações ou usar em mensagens. Habilitar o seletor de emoji com um grande número de emoji personalizados pode diminuir o desempenho.",
+ "admin.customization.enableEmojiPickerTitle": "Ativar Seletor de Emoji:",
"admin.customization.enableLinkPreviewsDesc": "Permitir que os usuários exibam uma visualização do conteúdo do site abaixo da mensagem, se disponível. Quando verdadeiro, as pré-visualizações do site podem ser ativadas em Configurações da conta > Avançado > Visualizar recursos de pré-lançamento.",
"admin.customization.enableLinkPreviewsTitle": "Habilitar Visualizações de Links:",
"admin.customization.iosAppDownloadLinkDesc": "Adiciona um link para download do app iOS. Usuários que acessarem o site em um navegador móvel serão perguntados com uma página dando a opção para download do app. Deixe este campo em branco para evitar que a página apareça.",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "Ex.: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "Salt Email Convite:",
"admin.email.mhpns": "Use criptografado, com qualidade de produção conexão HPNS com aplicativos Android e iOS",
- "admin.email.mhpnsHelp": "Download <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS app</a> no iTunes. Download <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android app</a> no Google Play. Leia mais sobre <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
+ "admin.email.mhpnsHelp": "Download <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> no iTunes. Download <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a> no Google Play. Leia mais sobre <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
"admin.email.mtpns": "Use apps iOS e Android no iTunes e Google Play com TPMS",
- "admin.email.mtpnsHelp": "Download <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS app</a> no iTunes. Download <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android app</a> no Google Play. Leia mais sobre <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
+ "admin.email.mtpnsHelp": "Download <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> no iTunes. Download <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a> no Google Play. Leia mais sobre <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
"admin.email.nofificationOrganizationExample": "Ex. \"® Empresa ABC, Av. Paulista, 1000, São Paulo, SP, 12345-150, BRA\"",
"admin.email.notificationDisplayDescription": "Mostra o nome da conta de e-mail usada quando a notificação de e-mail é enviado do Mattermost.",
"admin.email.notificationDisplayExample": "Ex: \"Mattermost Notificação\", \"Sistema\", \"Não-Responda\"",
@@ -601,13 +603,20 @@
"admin.rate.title": "Configurações de Velocidade",
"admin.recycle.button": "Reciclar Conexão do Banco de Dados",
"admin.recycle.loading": " Reciclando...",
- "admin.recycle.recycleDescription": "Instalações usando vários bancos de dados podem trocar de um banco de dados principal para outro sem reiniciar o servidor Mattermost, atualizando \"config.json\" com a nova configuração desejada e usando <a href=\"../general/configuration\"><b>Configuração > Recarregar Configuração do Disco</b></a> recarrega as novas configurações enquanto o servidor está em execução. O administrador deve então usar <b>Reciclagem de Conexões do Banco de Dados</b> recurso para reciclar as conexões do banco de dados com base nas novas definições.",
+ "admin.recycle.recycleDescription": "Instalações usando vários bancos de dados podem trocar de um banco de dados principal para outro sem reiniciar o servidor Mattermost, atualizando \"config.json\" com a nova configuração desejada e usando o recurso {reloadConfiguration} para recarregar as novas configurações enquanto o servidor está em execução. O administrador pode então usar o recurso {featureName} para reciclar as conexões do banco de dados com base nas novas definições.",
+ "admin.recycle.recycleDescription.featureName": "Reciclar Conexão do Banco de Dados",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Configuração > Recarregar Configurações do Disco",
"admin.recycle.reloadFail": "Reciclagem malsucedida: {error}",
"admin.regenerate": "Re-Gerar",
"admin.reload.button": "Recarregar Configuração do Disco",
"admin.reload.loading": " Carregando...",
- "admin.reload.reloadDescription": "Instalações usando vários bancos de dados podem trocar de um banco de dados principal para outro sem reiniciar o servidor Mattermost, atualizando \"config.json\" com a nova configuração desejada e usando <b>Recarregar Configuração do Disco</b> recarrega as novas configurações enquanto o servidor está em execução. O administrador deve então usar <a href=\"../advanced/database\"><b>Banco de Dados > Reciclagem de Conexões do Banco de Dados</b></a> recurso para reciclar as conexões do banco de dados com base nas novas definições.",
+ "admin.reload.reloadDescription": "Instalações usando vários bancos de dados podem trocar de um banco de dados principal para outro sem reiniciar o servidor Mattermost, atualizando \"config.json\" com a nova configuração desejada e usando o recurso {featureName} para carregar as novas configurações enquanto o servidor está em execução. O administrador pode então usar o recurso {recycleDatabaseConnections} para reciclar as conexões do banco de dados com base nas novas definições.",
+ "admin.reload.reloadDescription.featureName": "Recarregar Configuração do Disco",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Banco de Dados > Reciclar Conexão do Banco de Dados",
"admin.reload.reloadFail": "Recarregamento malsucedido: {error}",
+ "admin.requestButton.loading": " Carregando...",
+ "admin.requestButton.requestFailure": "Falha de Teste: {error}",
+ "admin.requestButton.requestSuccess": "Teste bem Sucedido",
"admin.reset_password.close": "Fechar",
"admin.reset_password.newPassword": "Nova Senha",
"admin.reset_password.select": "Selecionar",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "Permitir requisição cross-origin de:",
"admin.service.developerDesc": "Quando verdadeiro, os erros de Javascript serão mostrados em uma barra roxa no topo da interface de usuário. Não recomendado para uso em produção. ",
"admin.service.developerTitle": "Ativar o Modo Desenvolvedor: ",
+ "admin.service.enableAPIv3": "Permitir o uso do ponto final API v3:",
+ "admin.service.enableAPIv3Description": "Definir como falso para desativar todos os pontos finais da versão 3 da API REST. As integrações que dependem da API v3 falharão e poderão ser identificadas para a migração para a API v4. A API v3 está obsoleta e será removida no futuro próximo. Veja <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> para mais detalhes.",
"admin.service.enforceMfaDesc": "Quando verdadeiro, <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>autenticação pode multi-fator</a> será requerida para o login. O configuração do MFA será requerida para os novos usuários na inscrição. Usuários logados sem o MFA configurado serão redirecionados para a página de configuração do MFA até a configuração estiver completa.<br/><br/>Se o seu sistema tiver usuários com outros métodos de login que não AD/LDAP e por email, o MFA deverá ser aplicado um provedor de autenticação externo ao Mattermost.",
"admin.service.enforceMfaTitle": "Impor Autenticação Multi-Fator:",
"admin.service.forward80To443": "Redirecionamento porta 80 para 443:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "Configuração",
"admin.sidebar.connections": "Conexões",
"admin.sidebar.customBrand": "Marca Personalizada",
- "admin.sidebar.customEmoji": "Emoji Personalizado",
"admin.sidebar.customIntegrations": "Integrações Personalizadas",
"admin.sidebar.customization": "Customização",
"admin.sidebar.database": "Banco de dados",
"admin.sidebar.developer": "Desenvolvedor",
"admin.sidebar.email": "E-mail",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "Serviços Externos",
"admin.sidebar.files": "Arquivos",
"admin.sidebar.general": "Geral",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "URL do canal precisa ter 2 ou mais caracteres minúsculos alfanuméricos",
"channel_flow.invalidName": "Nome do Canal Inválido",
"channel_flow.set_url_title": "Definir URL do Canal",
+ "channel_header.addChannelHeader": "Adicionar descrição do canal",
"channel_header.addMembers": "Adicionar Membros",
"channel_header.addToFavorites": "Adicionar aos Favoritos",
"channel_header.channelHeader": "Editar Cabeçalho do Canal",
+ "channel_header.channelMembers": "Membros",
"channel_header.delete": "Excluir Canal",
"channel_header.flagged": "Posts Marcados",
"channel_header.leave": "Deixar o Canal",
"channel_header.manageMembers": "Gerenciar Membros",
"channel_header.notificationPreferences": "Preferências de Notificação",
+ "channel_header.pinnedPosts": "Posts Fixados",
"channel_header.recentMentions": "Menções Recentes",
"channel_header.removeFromFavorites": "Remover dos Favoritos",
"channel_header.rename": "Renomear o Canal",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "Esta ação irá apagar permanentemente o comando slash e irá quebrar qualquer integração que a use. Você está certo que deseja apagar?",
"installed_commands.empty": "Nenhum comando encotrado",
"installed_commands.header": "Comandos Slash",
- "installed_commands.help": "Criar comandos slash para uso em integrações internas. Por favor veja {link} para aprender mais.",
- "installed_commands.helpLink": "documentação",
+ "installed_commands.help": "Use comandos barra para conectar a ferramentas externas ao Mattermost. {buildYourOwn} ou visite o {appDirectory} para encontrar aplicativos nativos, de terceiros e integrações.",
+ "installed_commands.help.appDirectory": "Diretório de Aplicativos",
+ "installed_commands.help.buildYourOwn": "Construa o seu próprio",
"installed_commands.search": "Pesquisar Comandos Slash",
"installed_commands.unnamed_command": "Comando Slash sem Nome",
"installed_incoming_webhooks.add": "Adicionar Webhooks Entrada",
"installed_incoming_webhooks.delete.confirm": "Esta ação irá apagar permanentemente o webhook de entrada e irá quebrar qualquer integração que a use. Você está certo que deseja apagar?",
"installed_incoming_webhooks.empty": "Nenhum webhook de entrada encontrado",
"installed_incoming_webhooks.header": "Webhooks Entrada",
- "installed_incoming_webhooks.help": "Criar URLs para webhook de entrada para uso em integrações externas. Por favor veja {link} para aprender mais.",
- "installed_incoming_webhooks.helpLink": "documentação",
+ "installed_incoming_webhooks.help": "Use webhooks recebidos para conectar a ferramentas externas ao Mattermost. {buildYourOwn} ou visite o {appDirectory} para encontrar aplicativos nativos, de terceiros e integrações.",
+ "installed_incoming_webhooks.help.appDirectory": "Diretório de Aplicativos",
+ "installed_incoming_webhooks.help.buildYourOwn": "Construa o seu próprio",
"installed_incoming_webhooks.search": "Pesquisar Webhooks de Entrada",
"installed_incoming_webhooks.unknown_channel": "Webhook Privado",
"installed_integrations.callback_urls": "Callback URLs: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Descrição",
"installed_oauth_apps.empty": "Nenhum Aplicativo OAuth 2.0 encontrado",
"installed_oauth_apps.header": "Aplicativos OAuth 2.0",
- "installed_oauth_apps.help": "Criar aplicações OAuth 2.0 para integrar com segurança bots e aplicativos de terceiros com Mattermost. Por favor veja {link} para saber mais.",
- "installed_oauth_apps.helpLink": "documentação",
+ "installed_oauth_apps.help": "Crie {oauthApplications} para integrar de forma segura bots e aplicativos de terceiros com o Mattermost. Visite o {appDirectory} para encontrar aplicativos nativos.",
+ "installed_oauth_apps.help.appDirectory": "Diretório de Aplicativos",
+ "installed_oauth_apps.help.oauthApplications": "Aplicativos OAuth 2.0",
"installed_oauth_apps.homepage": "Página inicial",
"installed_oauth_apps.iconUrl": "URL do Ícone",
"installed_oauth_apps.is_trusted": "É Confiável: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "Esta ação irá apagar permanentemente o webhook de saída e irá quebrar qualquer integração que a use. Você está certo que deseja apagar?",
"installed_outgoing_webhooks.empty": "Nenhum webhook de saída encontrado",
"installed_outgoing_webhooks.header": "Webhooks Saída",
- "installed_outgoing_webhooks.help": "Criar URLs para webhook de saída para uso em integrações externas. Por favor veja {link} para aprender mais.",
- "installed_outgoing_webhooks.helpLink": "documentação",
+ "installed_outgoing_webhooks.help": "Use webhooks de saída para conectar ferramentas externas ao Mattermost. {buildYourOwn} ou visite o {appDirectory} para encontrar aplicativos nativos, de terceiros e integrações.",
+ "installed_outgoing_webhooks.help.appDirectory": "Diretório de Aplicativos",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Construa o seu próprio",
"installed_outgoing_webhooks.search": "Pesquisar Webhooks de Saída",
"installed_outgoing_webhooks.unknown_channel": "Webhook Privado",
"integrations.add": "Adicionar",
@@ -1543,6 +1561,8 @@
"integrations.done": "Feito",
"integrations.edit": "Editar",
"integrations.header": "Integrações",
+ "integrations.help": "Visite o {appDirectory} para encontrar aplicativos nativos, de terceiros e integrações para o Mattermost.",
+ "integrations.help.appDirectory": "Diretório de Aplicativos",
"integrations.incomingWebhook.description": "Webhooks de entrada permite que integrações externas envie mensagens",
"integrations.incomingWebhook.title": "Webhooks Entrada",
"integrations.oauthApps.description": "OAuth 2.0 permite que aplicativos externos façam solicitações autorizada para a API Mattermost.",
@@ -1764,6 +1784,9 @@
"mobile.server_upgrade.title": "Atualização do servidor necessária",
"mobile.server_url.invalid_format": "URL deve começar com http:// ou https://",
"mobile.session_expired": "Sessão Expirada: Por favor faça o login para continuar recebendo as notificações.",
+ "mobile.settings.clear": "Apagar Armazenamento Offline",
+ "mobile.settings.clear_button": "Limpar",
+ "mobile.settings.clear_message": "\nIsto irá apagar todos os dados offline e reiniciar o aplicativo. Você será automaticamente conectado novamente quando o aplicativo for reiniciado.\n",
"mobile.settings.team_selection": "Seleção da Equipe",
"modal.manaul_status.ask": "Não me pergunte novamente",
"modal.manaul_status.button": "Sim, defina meu status para \"Online\"",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Comece a digitar e então use TAB para alternar canais/equipes, ↑↓ para navegar, ↵ para selecionar e ESC para descartar.",
+ "quick_switch_modal.help_mobile": "Digite para encontrar um canal.",
"quick_switch_modal.help_no_team": "Digite para procurar um canal. Utilize ↑↓ para navegar, ↵ para selecionar, ESC para dispensar.",
"quick_switch_modal.teams": "Equipes",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,15 +1986,15 @@
"setting_upload.import": "Importar",
"setting_upload.noFile": "Nenhum arquivo selecionado.",
"setting_upload.select": "Selecione o arquivo",
- "sidebar.channels": "Canais",
+ "sidebar.channels": "CANAIS PÚBLICOS",
"sidebar.createChannel": "Criar um novo canal público",
"sidebar.createGroup": "Criar um novo canal privado",
- "sidebar.direct": "Mensagens Diretas",
- "sidebar.favorite": "Favoritos",
+ "sidebar.direct": "MENSAGENS DIRETAS",
+ "sidebar.favorite": "CANAIS FAVORITOS",
"sidebar.more": "Mais",
"sidebar.moreElips": "Mais...",
"sidebar.otherMembers": "Fora desta equipe",
- "sidebar.pg": "Canais Privados",
+ "sidebar.pg": "CANAIS PRIVADOS",
"sidebar.removeList": "Remover da lista",
"sidebar.tutorialScreen1": "<h4>Canais</h4><p><strong>Canais</strong> organizam conversas em diferentes tópicos. Eles estão abertos a todos em sua equipe. Para enviar comunicações privadas utilize <strong>Mensagens Diretas</strong> para uma única pessoa ou <strong>Canais Privados</strong> para várias pessoas.</p>",
"sidebar.tutorialScreen2": "<h4>Canais \"{townsquare}\" e \"{offtopic}\"</h4><p>Aqui estão dois canais públicos para começar:</p><p><strong>{townsquare}</strong> é um lugar comunicação de toda equipe. Todo mundo em sua equipe é um membro deste canal.</p><p><strong>{offtopic}</strong> é um lugar para diversão e humor fora dos canais relacionados com o trabalho. Você e sua equipe podem decidir qual outros canais serão criados.</p>",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "Soltar um arquivo para enviá-lo.",
"user.settings.advance.embed_preview": "Para o primeiro link da web em uma mensagem, exiba uma visualização do conteúdo do site abaixo da mensagem, se disponível",
"user.settings.advance.embed_toggle": "Exibir mostrar/esconder para todas as pre-visualizações",
- "user.settings.advance.emojipicker": "Ativar o seletor de emoji para reações e na caixa de entrada de mensagem",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {Recurso} other {Recursos}} Ativado",
"user.settings.advance.formattingDesc": "Se ativado, posts serão formatados para criar links, exibir emoji, estilo de texto e adicionar quebra de linhas. Por padrão é definido como ativado. Mudando está configuração será necessário recarregar a página.",
"user.settings.advance.formattingTitle": "Ativar Formatação de Post",
diff --git a/webapp/i18n/ru.json b/webapp/i18n/ru.json
index 43ae9a8a6..2c00ff662 100644
--- a/webapp/i18n/ru.json
+++ b/webapp/i18n/ru.json
@@ -1,6 +1,6 @@
{
"about.close": "Закрыть",
- "about.copyright": "Copyright 2015-{currentYear} Mattermost, Inc. Все права защищены",
+ "about.copyright": "Copyright 2015 - {currentYear} Mattermost, Inc. Все права защищены",
"about.database": "База данных:",
"about.date": "Дата сборки:",
"about.enterpriseEditionLearn": "Подробнее о редакции Enterprise читайте на ",
@@ -16,8 +16,8 @@
"about.teamEditiont1": "Enterprise Edition",
"about.title": "О Mattermost",
"about.version": "Версия:",
- "access_history.title": "История доступа",
- "activity_log.activeSessions": "Активные сеансы",
+ "access_history.title": "История активности",
+ "activity_log.activeSessions": "Активные сессии",
"activity_log.browser": "Браузер: {browser}",
"activity_log.firstTime": "Первая активность: {date}, {time}",
"activity_log.lastActivity": "Последняя активность: {date}, {time}",
@@ -25,7 +25,7 @@
"activity_log.moreInfo": "Подробнее",
"activity_log.os": "ОС: {os}",
"activity_log.sessionId": "Идентификатор сессии: {id}",
- "activity_log.sessionsDescription": "Создание сессий происходит при входе с нового браузера или устройства. Они позволяют использовать Mattermost без необходимости повторного входа на протяжении времени установленного Системным Администратором. Если вы хотите завершить сессию, нажмите кнопку 'Выйти'.",
+ "activity_log.sessionsDescription": "Создание сессии происходит при входе с нового браузера или устройства. Они позволяют использовать Mattermost без необходимости повторного входа на протяжении времени, установленного Администратором системы. Если вы хотите завершить сессию, нажмите кнопку 'Выйти'.",
"activity_log_modal.android": "Android",
"activity_log_modal.androidNativeApp": "Приложение для Android",
"activity_log_modal.desktop": "Приложение для ПК",
@@ -137,7 +137,7 @@
"add_outgoing_webhook.triggerWordsTriggerWhen.help": "Выберите, будет ли вебхук отправлен только если первое слово точно совпадает с ключевым словом или если оно хотя бы начинается с него.",
"add_outgoing_webhook.triggerWordsTriggerWhenFullWord": "Первое слово соответствует слову события полностью",
"add_outgoing_webhook.triggerWordsTriggerWhenStartsWith": "Первое слово начинается со слова триггера",
- "add_users_to_team.title": "Добавить Нового Участника в Команду {teamName}",
+ "add_users_to_team.title": "Добавить нового участника в команду {teamName}",
"admin.advance.cluster": "Высокая доступность",
"admin.advance.metrics": "Мониторинг производительности",
"admin.audits.reload": "Перезагрузить логи активности пользователя",
@@ -157,7 +157,7 @@
"admin.cluster.interNodeUrlsEx": "Например: \"http://10.10.10.30, http://10.10.10.31\"",
"admin.cluster.interNodeUrlsTitle": "Межузловые URL:",
"admin.cluster.loadedFrom": "Конфигурационный файл был загружен с узла с идентификатором {clusterId}. Пожалуйста, обратитесь к руководству по разрешению проблем в нашей <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>документации</a>, если вы открываете системную консоль через балансировщик нагрузки и испытываете проблемы.",
- "admin.cluster.noteDescription": "Изменение свойств в этой секции потребует перезапуска сервера для активации настроек. Когда режим Высокой доступности включен, Системная консоль устанавливается в режим только для чтения и может быть изменена через файл конфигурации.",
+ "admin.cluster.noteDescription": "Изменение свойств в этой секции потребуют перезагрузки сервера. При использованиии режима высокой доступности, системная консоль устанавливается в режим только для чтения и настройки могут быть изменены только через файл конфигурации, если ReadOnlyConfig отключён.",
"admin.cluster.should_not_change": "ВНИМАНИЕ: Эти настройки могут не синхронизироваться с остальными серверами в кластере. Межузловая связь высокой доступности не запустится, пока вы не сделаете config.json одинаковым на всех серверах и не перезапустите Mattermost. Пожалуйста, обратитесь к <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>документации</a>, чтобы узнать, как добавить или удалить сервер из кластера. Если вы открываете системную консоль через балансировщик нагрузки и испытываете проблемы, пожалуйста, смотрите руководство по разрешению проблем в нашей <a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>документации</a>.",
"admin.cluster.status_table.config_hash": "MD5-хеш файла конфигурации",
"admin.cluster.status_table.hostname": "Имя сервера",
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Добавляет ссылку на страницу скачивания приложений Mattermost. Когда ссылка присутствует, опция \"Скачать приложения Mattermost\" будет добавлена в главное меню, с тем чтобы пользователи смогли найти страницу загрузки. Оставьте это поле пустым, чтобы скрыть эту опцию из главного меню.",
"admin.customization.appDownloadLinkTitle": "Ссылка на страницу загрузки приложений Mattermost:",
"admin.customization.customBrand": "Произвольный брендинг",
- "admin.customization.customEmoji": "Пользовательские смайлы",
+ "admin.customization.emoji": "Эмодзи",
"admin.customization.enableCustomEmojiDesc": "Разрешите пользователя создавать Специальные Эмодзи для использования в сообщениях. После разрешения, настройки Специальных Эмодзи могут быть доступны в разделе Команда, нажатием на три точки над боковой панелью и выбором \"Специальные Эмодзи\".",
"admin.customization.enableCustomEmojiTitle": "Включить пользовательские смайлы:",
+ "admin.customization.enableEmojiPickerDesc": "The emoji picker allows users to select emoji to add as reactions or use in messages. Enabling the emoji picker with a large number of custom emoji may slow down performance.",
+ "admin.customization.enableEmojiPickerTitle": "Enable Emoji Picker:",
"admin.customization.enableLinkPreviewsDesc": "Разрешить пользователю предпросмотр интернет ссылок под сообщением. Если включено, предпросмотр страниц может быть включен в Учетная запись > Дополнительно > Просмотр возможностей предрелиза",
"admin.customization.enableLinkPreviewsTitle": "Включить предпросмотр ссылок:",
"admin.customization.iosAppDownloadLinkDesc": "Добавляет ссылку для скачивания приложения для IOS. Пользователям, которые посещают сайт через мобильный браузер, на специальной странице будет предложена возможность скачать приложение. Оставьте это поле пустым, чтобы предотвратить появление этой страницы.",
@@ -250,13 +252,13 @@
"admin.email.enableEmailBatchingTitle": "Включить почтовые объединения:",
"admin.email.fullPushNotification": "Послать полный фрагмент сообщения",
"admin.email.genericPushNotification": "Отправить общее описание с именами пользователей и каналов",
- "admin.email.inviteSaltDescription": "32-символа \"соли\" для подписи приглашений по эл. почте. При установке создается случайная \"соль\". Нажмите \"Перегенерировать\" чтобы создать новую.",
+ "admin.email.inviteSaltDescription": "32-символьная соль для подписи приглашений по электронной почте. Случайно генерируется во время инсталляции. Нажмите \"Создать новую\" для генерации новой соли.",
"admin.email.inviteSaltExample": "Например: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "\"Соль\" для почтового приглашения:",
"admin.email.mhpns": "Используйте шифрованное, качественное HPNS соединение с iOS и Android приложениями",
- "admin.email.mhpnsHelp": "Загрузить <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost </a> из iTunes. Загрузить <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost</a> из Google Play. Узнать больше о <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
+ "admin.email.mhpnsHelp": "Загрузить <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> из iTunes. Загрузить <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android</a> из Google Play. Узнать больше о <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
"admin.email.mtpns": "Используйте iOS и Android приложения из iTunes и Google Play с TPNS",
- "admin.email.mtpnsHelp": "Загрузить <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost </a> из iTunes. Загрузить <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost</a> из Google Play. Узнать больше о <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target=\"_blank\">TPNS</a>.",
+ "admin.email.mtpnsHelp": "Загрузить <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a> из iTunes. Загрузить <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android</a> из Google Play. Узнать больше о <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>.",
"admin.email.nofificationOrganizationExample": "Например: \"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "Отображаемое имя пользователя учётной записи электронной почты от которого происходит отправка уведомлений Mattermost.",
"admin.email.notificationDisplayExample": "Например: \"Mattermost Notification\", \"System\", \"No-Reply\"",
@@ -269,7 +271,7 @@
"admin.email.notificationOrganizationExample": "Например: \"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationsDescription": "Обычно включают в продуктивной системе. Если включено, Mattermost пытается отправить уведомление по эл. почте. Разработчики могут выключить чтобы уведомления не отправлялись.<br />Включение этой настройки удаляет баннер режима предпросмотра (требуется перезайти в систему для применения настроек).",
"admin.email.notificationsTitle": "Включить уведомления по электронной почте: ",
- "admin.email.passwordSaltDescription": "32-символа \"соли\" добавлено в письмо сброса пароля. Они случайно сгенерированны при установке. Кликните \"Перегенерировать\" чтобы создать новую \"соль\".",
+ "admin.email.passwordSaltDescription": "32-символьная соль для подписи сообщений сброса пароля. Случайно генерируется во время инсталляции. Нажмите \"Создать новую\" для генерации новой соли.",
"admin.email.passwordSaltExample": "Например: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.passwordSaltTitle": "\"Соль\" при сбросе пароля:",
"admin.email.pushContentDesc": "Выбор \"Отправить общее описание с именами пользователей и каналов\" обеспечивает push-уведомления с общими сообщениями, включая имена пользователей и каналов, но без специфических деталей в текстах сообщений.<br /><br />Выбор \"Отправить полную вырезку сообщений\" отправляет выборки из сообщений, инициировавших уведомления со специфическими особенностями, и может включать конфиденциальную информацию, отправленную в сообщениях. Если Ваша служба push-уведомлений находится за пределами Вашего брандмауэра, НАСТОЯТЕЛЬНО РЕКОМЕНДУЕМ использовать эту опцию только с https протоколом для шифрования Вашего соединения.",
@@ -415,7 +417,7 @@
"admin.image.maxFileSizeDescription": "Максимальный размер файла для отправки в сообщениях. Внимание: Проверьте, что памяти сервера достаточно для этой настройки. Файлы больших размеров увеличивают риск сбоя сервера и неудачных загрузок файлов из-за проблем в подключении к сети.",
"admin.image.maxFileSizeExample": "50",
"admin.image.maxFileSizeTitle": "Максимальный размер файла:",
- "admin.image.publicLinkDescription": "32-символьная соль для подписи ссылок на публичные изображения. Генерируется во время инсталляции. Нажмите \"Перегенерировать\" для генерации новой соли.",
+ "admin.image.publicLinkDescription": "32-символьная соль для подписи ссылок на публичные изображения. Случайно генерируется во время инсталляции. Нажмите \"Создать новую\" для генерации новой соли.",
"admin.image.publicLinkExample": "Например: \"gxHVDcKUyP2y1eiyW8S8na1UYQAfq6J6\"",
"admin.image.publicLinkTitle": "Соль для публичных ссылок:",
"admin.image.shareDescription": "Разрешить пользователям обмениваться общедоступными ссылками на файлы и изображения.",
@@ -442,7 +444,7 @@
"admin.ldap.firstnameAttrDesc": "(Опционально) Этот атрибут для AD/LDAP сервера который будет использоваться для заполнения имени пользователя в Mattermost. Если он установлен, пользователи не смогут редактировать свои имена т.к. они будут синхронизироваться с LDAP сервером. Если атрибут не заполнен, пользователи смогут изменить их собственные имена в Настройках пользователя.",
"admin.ldap.firstnameAttrEx": "Например: \"givenName\"",
"admin.ldap.firstnameAttrTitle": "Атрибут имени",
- "admin.ldap.idAttrDesc": "Атрибут AD/LDAP, который будет использоваться в качестве уникального идентификатора в Mattermost. Укажите атрибут, значение которого не будет меняться, например имя пользователя или его идентификатор. Если значение этого атрибута изменится, в Mattermost будет создана новая учетная запись, не имеющая к старой никакого отношения. Значение этого атрибута используется в поле \"Имя пользователя AD/LDAP\" на странице входа в Mattermost. В большинстве случаев это тот же атрибут, что используется в качестве \"Атрибута имени пользователя\" выше. Если ваша команда обычно использует учетные записи в стиле домен\\\\пользователь для входа в другие сервисы с использованием AD/LDAP, вы можете указать это же значение и здесь для сохранения единообразия.",
+ "admin.ldap.idAttrDesc": "Атрибут AD/LDAP, который будет использоваться в качестве уникального идентификатора в Mattermost. Это должен быть атрибут AD/LDAP, значение которого не будет меняться, например имя пользователя или его идентификатор. Если значение этого атрибута изменится, в Mattermost будет создана новая учетная запись, не имеющая к старой никакого отношения. Значение этого атрибута используется в поле \"Имя пользователя AD/LDAP\" на странице входа в Mattermost. В большинстве случаев, это тот же атрибут, что используется в качестве \"Атрибута имени пользователя\" выше. Если ваша команда обычно использует учетные записи в стиле domain\\\\username для входа в другие сервисы с использованием AD/LDAP, вы можете указать domain\\\\username и здесь для сохранения единообразия.",
"admin.ldap.idAttrEx": "Например: \"sAMAccountName\"",
"admin.ldap.idAttrTitle": "ID атрибут:",
"admin.ldap.lastnameAttrDesc": "(Опционально) Этот атрибут для AD/LDAP сервера который будет использоваться для заполнения фамилии пользователя в Mattermost. Если он установлен, пользователи не смогут редактировать свои фамилии т.к. они будут синхронизироваться с LDAP сервером. Если атрибут не заполнен, пользователи смогут изменить их собственные фамилии в Настройках пользователя.",
@@ -601,13 +603,20 @@
"admin.rate.title": "Настройки ограничения скорости",
"admin.recycle.button": "Обновить подключения баз данных",
"admin.recycle.loading": " Обработка...",
- "admin.recycle.recycleDescription": "Развертывать без перезапуска сервера Mattermost можно используя несколько баз данных, необходимо переключиться с одной основной базы данных на другую путем обновления \"config.json\" и с помощью функции <a href=\"../general/configuration\"><b>Конфигурация > Обновить конфигурацию с диска</b></a> загрузить новые настройки во время работы сервера. Затем администратору необходимо использовать функцию <b>Сбросить соединения БД</b>, чтобы перезапустить соединения с базой данных для использования другой БД.",
+ "admin.recycle.recycleDescription": "Варианты развертывания с использованием нескольких баз данных могут переключаться с одной основной базы данных на другую без перезапуска сервера Mattermost путем обновления файла \"config.json\" для новой требуемой конфигурации и использования функции {reloadConfiguration} для загрузки новых настроек во время работы сервера. После этого, администратор должен использовать выполнить функцию {featureName} для обновления соединения с базой данных на основе новых настроек.",
+ "admin.recycle.recycleDescription.featureName": "Обновить подключения к базе данных",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Конфигурация > Перезагрузить конфигурацию с диска",
"admin.recycle.reloadFail": "Обновление не удалось: {error}",
- "admin.regenerate": "Перегенерировать",
+ "admin.regenerate": "Создать новую",
"admin.reload.button": "Перезагрузить конфигурацию с диска",
"admin.reload.loading": " Загрузка…",
- "admin.reload.reloadDescription": "Варианты развертывания с использованием нескольких баз данных могут переключаться с одной основной базы данных на другую без перезапуска сервера Mattermost путем обновления файла \"config.json\" для новой требуемой конфигурации с дальнейшим вызовом функции <b>Перезагрузить конфигурацию с диска</b> для загрузки новых настроек во время работы сервера. Затем администратор должен выполнить функцию <a href=\"../advanced/database\"><b>База данных > Обновить подключения баз данных</b></a> для обновления соединения с базой на основе новых настроек.",
+ "admin.reload.reloadDescription": "Варианты развертывания с использованием нескольких баз данных могут переключаться с одной основной базы данных на другую без перезапуска сервера Mattermost путем обновления файла \"config.json\" для новой требуемой конфигурации и использования функции {featureName} для загрузки новых настроек во время работы сервера. После этого, администратор должен использовать выполнить функцию {recycleDatabaseConnections} для обновления соединения с базой данных на основе новых настроек.",
+ "admin.reload.reloadDescription.featureName": "Перезагрузить конфигурацию с диска",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "База данных > Обновить подключения к базе данных",
"admin.reload.reloadFail": "Неудачная перезагрузка: {error}",
+ "admin.requestButton.loading": " Загрузка…",
+ "admin.requestButton.requestFailure": "Сбой теста: {error}",
+ "admin.requestButton.requestSuccess": "Тестирование успешно завершено",
"admin.reset_password.close": "Закрыть",
"admin.reset_password.newPassword": "Новый пароль",
"admin.reset_password.select": "Выбор",
@@ -692,8 +701,10 @@
"admin.service.corsDescription": "Разрешить кросс-доменные запросы с указанного домена. Укажите \"*\", если Вы хотите разрешить CORS с любого домена, или оставьте поле пустым, что бы отключить эту возможность.",
"admin.service.corsEx": "http://example.com",
"admin.service.corsTitle": "Разрешить кроссдоменные запросы от:",
- "admin.service.developerDesc": "Когда включено, на красной панели сверху будут показываться ошибки JavaScript. Не рекомендуется использовать на \"боевом\" сервере. ",
+ "admin.service.developerDesc": "Если включён, на красной панели сверху будут показываться ошибки JavaScript. Не рекомендуется использовать на \"боевом\" сервере. ",
"admin.service.developerTitle": "Включить режим разработчика:",
+ "admin.service.enableAPIv3": "Разрешить использование API v3:",
+ "admin.service.enableAPIv3Description": "Set to false to disable all version 3 endpoints of the REST API. Integrations that rely on API v3 will fail and can then be identified for migration to API v4. API v3 is deprecated and will be removed in the near future. See <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> for details.",
"admin.service.enforceMfaDesc": "When true, <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>multi-factor authentication</a> is required for login. New users will be required to configure MFA on signup. Logged in users without MFA configured are redirected to the MFA setup page until configuration is complete.<br/><br/>If your system has users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost.",
"admin.service.enforceMfaTitle": "Принудительная многофакторная аутентификация:",
"admin.service.forward80To443": "Перенаправить 80 порт на 443:",
@@ -732,8 +743,8 @@
"admin.service.siteURLExample": "Например: \"https://mattermost.example.com:1234\"",
"admin.service.ssoSessionDays": "Длина сессии SSO (дней):",
"admin.service.ssoSessionDaysDesc": "Количество дней с последнего ввода пользователем своих учетных данных до истечения срока пользовательской сессии. Если метод аутентификации - SAML или GitLab, пользователь может быть автоматически впущен обратно в Mattermost, если он уже вошел в SAML или GitLab. После изменения этого параметра он вступит в силу после следующего ввода пользователем своих учетных данных.",
- "admin.service.testingDescription": "Если истина, становится доступна слэш-команда /loadtest, предназначенная для загрузки тестовых учетных записей, данных и форматирования текста. Изменение этого параметра требует перезагрузки сервера для вступления в силу.",
- "admin.service.testingTitle": "Разрешить команды тестирования: ",
+ "admin.service.testingDescription": "Если включена, становится доступна слеш-команда /test, предназначенная для загрузки тестовых учетных записей, данных и форматирования текста. Изменение этого параметра требует перезагрузки сервера для вступления в силу.",
+ "admin.service.testingTitle": "Включить команду тестирования: ",
"admin.service.tlsCertFile": "Файл сертификата TLS:",
"admin.service.tlsCertFileDescription": "Файл сертификата для использования.",
"admin.service.tlsKeyFile": "Файл ключа TLS:",
@@ -743,7 +754,7 @@
"admin.service.webSessionDays": "Продолжительность сессии AD/LDAP и электронной почты (в днях):",
"admin.service.webSessionDaysDesc": "Количество дней с последнего ввода пользователем своих учетных данных до истечения срока пользовательской сессии. После изменения этого параметра, новая продолжительность сессии вступит в силу после следующего ввода пользователями своих учетных данных.",
"admin.service.webhooksDescription": "Если истина, входящие вебхуки будут разрешены. В целях борьбы с фишинговыми атаками, все посты от имени вебхуков будут помечены тэгом БОТ. Смотрите <a href='http://docs.mattermost.com/developer/webhooks-incoming.html' target='_blank'>документацию</a>, чтобы узнать больше.",
- "admin.service.webhooksTitle": "Включить входящие Webhook'и: ",
+ "admin.service.webhooksTitle": "Разрешить входящие вебхуки:",
"admin.service.writeTimeout": "Тайм-аут записи:",
"admin.service.writeTimeoutDescription": "При использовании HTTP (небезопасно) — максимально допустимое время с момента окончания чтения заголовка запроса до окончания записи ответа. В случае с HTTPS — полное время с момента установки соединения до окончания записи ответа.",
"admin.sidebar.advanced": "Дополнительно",
@@ -754,17 +765,17 @@
"admin.sidebar.configuration": "Конфигурация",
"admin.sidebar.connections": "Соединения",
"admin.sidebar.customBrand": "Пользовательский бренд",
- "admin.sidebar.customEmoji": "Пользовательские смайлы",
"admin.sidebar.customIntegrations": "Пользовательские интеграции",
"admin.sidebar.customization": "Настройка",
"admin.sidebar.database": "База данных",
"admin.sidebar.developer": "Разработчик",
- "admin.sidebar.email": "Email",
+ "admin.sidebar.email": "Электронная почта",
+ "admin.sidebar.emoji": "Эмодзи",
"admin.sidebar.external": "Внешние службы",
"admin.sidebar.files": "Файлы",
"admin.sidebar.general": "Общие",
"admin.sidebar.gitlab": "GitLab",
- "admin.sidebar.integrations": "Интеграция",
+ "admin.sidebar.integrations": "Интеграции",
"admin.sidebar.ldap": "AD/LDAP",
"admin.sidebar.legalAndSupport": "Право и поддержка",
"admin.sidebar.license": "Редакция и Лицензия",
@@ -774,7 +785,7 @@
"admin.sidebar.login": "Login",
"admin.sidebar.logs": "Журналы",
"admin.sidebar.metrics": "Мониторинг производительности",
- "admin.sidebar.mfa": "MFA",
+ "admin.sidebar.mfa": "МФА",
"admin.sidebar.nativeAppLinks": "Ссылки на приложения Mattermost",
"admin.sidebar.notifications": "Уведомления",
"admin.sidebar.oauth": "OAuth 2.0",
@@ -802,22 +813,22 @@
"admin.sidebarHeader.systemConsole": "Системная консоль",
"admin.sql.dataSource": "Источник данных:",
"admin.sql.driverName": "Имя драйвера:",
- "admin.sql.keyDescription": "32-ух символьная соль для шифрования и дешифровки чувствительных полей в базе данных.",
+ "admin.sql.keyDescription": "32-символьная соль для шифрования и дешифрования чувствительных полей в базе данных.",
"admin.sql.keyExample": "Например: \"gxHVDcKUyP2y1eiyW8S8na1UYQAfq6J6\"",
- "admin.sql.keyTitle": "At Rest Encrypt Key:",
- "admin.sql.maxConnectionsDescription": "Максимально количество неактивных соединений, которые остаются открытыми для базы данных.",
+ "admin.sql.keyTitle": "Ключ шифрования At Rest:",
+ "admin.sql.maxConnectionsDescription": "Максимальное количество неактивных соединений, которые остаются открытыми для базы данных.",
"admin.sql.maxConnectionsExample": "Например: \"10\"",
- "admin.sql.maxConnectionsTitle": "Максимальное число неактивных (idle) соединений:",
- "admin.sql.maxOpenDescription": "Максимально количество неактивных соединений, которые остаются открытыми для базы данных.",
+ "admin.sql.maxConnectionsTitle": "Максимальное число неактивных соединений:",
+ "admin.sql.maxOpenDescription": "Максимальное количество открытых соединений, которые остаются открытыми для базы данных.",
"admin.sql.maxOpenExample": "Например: \"10\"",
"admin.sql.maxOpenTitle": "Максимальное число открытых соединений:",
"admin.sql.noteDescription": "Изменение параметров в этой секции потребует перезагрузки сервера.",
"admin.sql.noteTitle": "Заметка:",
"admin.sql.queryTimeoutDescription": "The number of seconds to wait for a response from the database after opening a connection and sending the query. Errors that you see in the UI or in the logs as a result of a query timeout can vary depending on the type of query.",
"admin.sql.queryTimeoutExample": "Например: \"30\"",
- "admin.sql.queryTimeoutTitle": "Query Timeout:",
+ "admin.sql.queryTimeoutTitle": "Тайм-аут запроса:",
"admin.sql.replicas": "Реплики источника данных:",
- "admin.sql.traceDescription": "(Режим разработчика) Если включено, все исполняемые SQL-запросы будут записаны в лог.",
+ "admin.sql.traceDescription": "(Режим разработчика) Если включена, все исполняемые SQL-запросы будут записаны в лог.",
"admin.sql.traceTitle": "Трассировка:",
"admin.sql.warning": "Внимание: генерация новой соли может привести к возвращению пустых результатов из базы данных для некоторых колонок.",
"admin.support.aboutDesc": "URL страницы \"О программе\", отображаемый на странице входа. Если поле не заполнено, ссылка \"О программе\" скрыта.",
@@ -872,9 +883,9 @@
"admin.team.restrictTitle": "Ограничить создание аккаунтов с указанных почтовых доменов:",
"admin.team.restrict_direct_message_any": "Все пользователи сервера Mattermost",
"admin.team.restrict_direct_message_team": "Все участники команды",
- "admin.team.showFullname": "Show first and last name (default)",
- "admin.team.showNickname": "Показывать псевдоним, если он существует, в противном случае показывать имя и фамилию",
- "admin.team.showUsername": "Show username",
+ "admin.team.showFullname": "Показывать имя и фамилию (по умолчанию)",
+ "admin.team.showNickname": "Показывать псевдоним, если существует, иначе показывать имя и фамилию",
+ "admin.team.showUsername": "Показывать имя пользователя",
"admin.team.siteNameDescription": "Отображаемое имя сервиса в окне входа и пользовательском интерфейсе.",
"admin.team.siteNameExample": "Например: \"Mattermost\"",
"admin.team.siteNameTitle": "Название сайта:",
@@ -891,8 +902,8 @@
"admin.team_analytics.activeUsers": "Активные пользователи с сообщениями",
"admin.team_analytics.totalPosts": "Всего сообщений",
"admin.true": "да",
- "admin.user_item.authServiceEmail": ", <strong>Метод входа:</strong> Email",
- "admin.user_item.authServiceNotEmail": ", <strong>Метод входа:</strong> {service}",
+ "admin.user_item.authServiceEmail": "<strong>Метод входа:</strong> Электронная почта",
+ "admin.user_item.authServiceNotEmail": "<strong>Метод входа:</strong> {service}",
"admin.user_item.confirmDemoteDescription": "If you demote yourself from the System Admin role and there is not another user with System Admin privileges, you'll need to re-assign a System Admin by accessing the Mattermost server through a terminal and running the following command.",
"admin.user_item.confirmDemoteRoleTitle": "Подтверждение понижения администратором системы",
"admin.user_item.confirmDemotion": "Подтвердить понижение",
@@ -904,7 +915,7 @@
"admin.user_item.makeMember": "Сделать участником",
"admin.user_item.makeSysAdmin": "Сделать администратором системы",
"admin.user_item.makeTeamAdmin": "Сделать администратором команды",
- "admin.user_item.manageTeams": "Manage Teams",
+ "admin.user_item.manageTeams": "Управление командами",
"admin.user_item.member": "Участник",
"admin.user_item.mfaNo": ", <strong>MFA</strong>: Нет",
"admin.user_item.mfaYes": ", <strong>MFA</strong>: Да",
@@ -951,8 +962,8 @@
"analytics.system.dailyActiveUsers": "Активность пользователей за день",
"analytics.system.monthlyActiveUsers": "Активность пользователей за месяц",
"analytics.system.postTypes": "Сообщения, файлы и хештэги",
- "analytics.system.privateGroups": "Личные каналы",
- "analytics.system.publicChannels": "Публичные Каналы",
+ "analytics.system.privateGroups": "Приватные каналы",
+ "analytics.system.publicChannels": "Публичные каналы",
"analytics.system.skippedIntensiveQueries": "Для максимальной производительности некоторая статистика отключена. Вы можете включить её снова в файле конфигурации config.json. Смотрите: <a href='https://docs.mattermost.com/administration/statistics.html' target='_blank'>https://docs.mattermost.com/administration/statistics.html</a>",
"analytics.system.textPosts": "Только текстовые сообщения",
"analytics.system.title": "Статистика системы",
@@ -960,7 +971,7 @@
"analytics.system.totalCommands": "Всего комманд",
"analytics.system.totalFilePosts": "Сообщения с файлами",
"analytics.system.totalHashtagPosts": "Сообщения с хештегами",
- "analytics.system.totalIncomingWebhooks": "Входящие Webhook-и",
+ "analytics.system.totalIncomingWebhooks": "Входящие вебхуки",
"analytics.system.totalMasterDbConnections": "Подключений к главной БД",
"analytics.system.totalOutgoingWebhooks": "Исходящие Webhook-и",
"analytics.system.totalPosts": "Всего сообщений",
@@ -970,9 +981,9 @@
"analytics.system.totalUsers": "Всего пользователей",
"analytics.system.totalWebsockets": "Соединений Websocket",
"analytics.team.activeUsers": "Активные пользователи с сообщениями",
- "analytics.team.newlyCreated": "Вновь созданные пользователи",
+ "analytics.team.newlyCreated": "Новые пользователи",
"analytics.team.noTeams": "There are no teams on this server for which to view statistics.",
- "analytics.team.privateGroups": "Личные Каналы",
+ "analytics.team.privateGroups": "Приватные каналы",
"analytics.team.publicChannels": "Публичные каналы",
"analytics.team.recentActive": "Недавние активные пользователи",
"analytics.team.recentUsers": "Недавние активные пользователи",
@@ -996,7 +1007,7 @@
"audit_table.action": "Действие",
"audit_table.attemptedAllowOAuthAccess": "Attempted to allow a new OAuth service access",
"audit_table.attemptedLicenseAdd": "Попытка добавления новой лицензии",
- "audit_table.attemptedLogin": "Попытался войти",
+ "audit_table.attemptedLogin": "Попытка входа",
"audit_table.attemptedOAuthToken": "Попытка получить токен OAuth",
"audit_table.attemptedPassword": "Попытка изменить пароль",
"audit_table.attemptedRegisterApp": "Попытка регистрации нового OAuth приложения с идентификатором {id}",
@@ -1053,9 +1064,9 @@
"backstage_list.search": "Поиск",
"backstage_navbar.backToMattermost": "Возврат к {siteName}",
"backstage_sidebar.emoji": "Пользовательские эмодзи",
- "backstage_sidebar.integrations": "Интеграция",
+ "backstage_sidebar.integrations": "Интеграции",
"backstage_sidebar.integrations.commands": "Cлэш-команды",
- "backstage_sidebar.integrations.incoming_webhooks": "Входящие Webhook'и",
+ "backstage_sidebar.integrations.incoming_webhooks": "Входящие вебхуки",
"backstage_sidebar.integrations.oauthApps": "OAuth 2.0 приложения",
"backstage_sidebar.integrations.outgoing_webhooks": "Исходящие Webhook'и",
"calling_screen": "Вызов",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "Ссылка на канал должна быть не короче 2-х буквенных символов",
"channel_flow.invalidName": "Недопустимое имя канала",
"channel_flow.set_url_title": "Установить адрес канала",
+ "channel_header.addChannelHeader": "Добавить описание канала",
"channel_header.addMembers": "Добавить участников",
"channel_header.addToFavorites": "Добавить в избранное",
"channel_header.channelHeader": "Изменить заголовок канала",
+ "channel_header.channelMembers": "Участники",
"channel_header.delete": "Удалить канал",
"channel_header.flagged": "Отмеченные сообщения",
"channel_header.leave": "Покинуть Канал",
"channel_header.manageMembers": "Управление участниками",
"channel_header.notificationPreferences": "Настройка уведомлений",
+ "channel_header.pinnedPosts": "Прикреплённые сообщения",
"channel_header.recentMentions": "Недавние упоминания",
"channel_header.removeFromFavorites": "Удалить из избранного",
"channel_header.rename": "Переименовать канал",
@@ -1136,8 +1150,8 @@
"channel_modal.nameEx": "Например: \"Bugs\", \"Маркетинг\", \"客户支持\"",
"channel_modal.optional": "(необязательно)",
"channel_modal.privateGroup1": "Создать новый приватный канал с ограниченным доступом. ",
- "channel_modal.privateGroup2": "Создать личный канал",
- "channel_modal.publicChannel1": "Создать общедоступный канал",
+ "channel_modal.privateGroup2": "Создать приватный канал",
+ "channel_modal.publicChannel1": "Создать публичный канал",
"channel_modal.publicChannel2": "Создать новый публичный канал. ",
"channel_modal.purpose": "Назначение",
"channel_modal.purposeEx": "Например: \"Канал для ошибок и пожеланий\"",
@@ -1158,7 +1172,7 @@
"channel_switch_modal.failed_to_open": "Не удалось открыть канал.",
"channel_switch_modal.not_found": "Совпадений не найдено.",
"channel_switch_modal.submit": "Переключить",
- "channel_switch_modal.title": "Сменить каналы",
+ "channel_switch_modal.title": "Сменить канал",
"claim.account.noEmail": "Email не указан",
"claim.email_to_ldap.enterLdapPwd": "Введите идентификатор и пароль от Вашего AD/LDAP аккаунта",
"claim.email_to_ldap.enterPwd": "Введите пароль для вашего почтового аккаунта {site}",
@@ -1236,7 +1250,7 @@
"deactivate_member_modal.cancel": "Отмена",
"deactivate_member_modal.deactivate": "Деактивировать",
"deactivate_member_modal.desc": "This action deactivates {username}. They will be logged out and not have access to any teams or channels on this system. Are you sure you want to deactivate {username}?",
- "deactivate_member_modal.title": "Deactivate {username}",
+ "deactivate_member_modal.title": "Деактивировать {username}",
"default_channel.purpose": "Post messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.",
"delete_channel.cancel": "Отмена",
"delete_channel.confirm": "Подтверждение УДАЛЕНИЯ канала",
@@ -1269,7 +1283,7 @@
"edit_post.edit": "Редактировать {title}",
"edit_post.editPost": "Редактировать сообщение...",
"edit_post.save": "Сохранить",
- "email_signup.address": "Email адрес",
+ "email_signup.address": "Адрес электронной почты",
"email_signup.createTeam": "Создать команду",
"email_signup.emailError": "Пожалуйста, введите корректный адрес электронной почты.",
"email_signup.find": "Найти мои команды",
@@ -1297,7 +1311,7 @@
"emoji_list.search": "Найти кастомные Emoji",
"emoji_list.somebody": "Кто-то в другой команде",
"emoji_picker.activity": "Активность",
- "emoji_picker.custom": "Custom",
+ "emoji_picker.custom": "По выбору",
"emoji_picker.emojiPicker": "Выбор эмодзи",
"emoji_picker.flags": "Флаги",
"emoji_picker.food": "Еда",
@@ -1329,7 +1343,7 @@
"file_upload.disabled": "Прикрепление файлов отключено.",
"file_upload.fileAbove": "Нельзя загрузить файл больше {max}МБ: {filename}",
"file_upload.filesAbove": "Нельзя загрузить файлы больше {max}МБ: {filenames}",
- "file_upload.limited": "Загрузка ограничена максимум {count} файлами(ом). Пожалуйста используйте дополнительные сообщения для отправки большего количества.more files.",
+ "file_upload.limited": "Загрузка ограничена максимум {count, number} файлами. Пожалуйста используйте дополнительные сообщения для отправки большего количества файлов.",
"file_upload.pasted": "Изображение вставлено в ",
"filtered_channels_list.search": "Поиск каналов",
"filtered_user_list.any_team": "Все пользователи",
@@ -1343,7 +1357,7 @@
"filtered_user_list.searchButton": "Поиск",
"filtered_user_list.show": "Фильтр:",
"filtered_user_list.team_only": "Участники команды",
- "find_team.email": "Email",
+ "find_team.email": "Электронная почта",
"find_team.findDescription": "Сообщение отправлено на вашу электронную почту со ссылками на все команды, в которых вы участник.",
"find_team.findTitle": "Поиск вашей команды",
"find_team.getLinks": "Получить сообщение на электронную почту со ссылками на все команды, где вы участник.",
@@ -1353,7 +1367,7 @@
"flag_post.flag": "Отметить для отслеживания",
"flag_post.unflag": "Не помечено",
"general_tab.chooseDescription": "Пожалуйста, выберите новое описание для вашей команды",
- "general_tab.codeDesc": "Нажмите 'Редактировать' для перегенерации кода приглашения.",
+ "general_tab.codeDesc": "Нажмите 'Редактировать' для создания нового кода приглашения.",
"general_tab.codeLongDesc": "Код приглашения используется как часть URL в ссылке приглашения в команду, созданная в разделе {getTeamInviteLink} в главном меню. Пересоздание создаст новую ссылку для приглашения и сделает предыдущую недействительной.",
"general_tab.codeTitle": "Код приглашения",
"general_tab.emptyDescription": "Нажмите 'Редактировать' для добавления описания.",
@@ -1362,7 +1376,7 @@
"general_tab.no": "Нет",
"general_tab.openInviteDesc": "Если разрешено, ссылка на эту команду будет отображаться на странице входа, позволяя любому пользователю войти в команду.",
"general_tab.openInviteTitle": "Разрешить вход любому пользователю с учетной записью на этом сервере",
- "general_tab.regenerate": "Regenerate",
+ "general_tab.regenerate": "Создать новый",
"general_tab.required": "Обязательное поле",
"general_tab.teamDescription": "Описание команды",
"general_tab.teamDescriptionInfo": "Описание команды предоставляет дополнительную информацию, помогающую пользователям выбрать нужную им команду. Максимум 50 символов.",
@@ -1386,7 +1400,7 @@
"get_post_link_modal.title": "Скопировать постоянную ссылку",
"get_public_link_modal.help": "Ссылка ниже позволяет видеть этот файл любому, не будучи зарегистрированным на этом сервере.",
"get_public_link_modal.title": "Получить публичную ссылку",
- "get_team_invite_link_modal.help": "Отправьте товарищам эту ссылку для регистрации в команде. Ссылку можно отправить нескольким людям, т.к. она не меняется и может быть перегенерирована в настройках команды администратором команды.",
+ "get_team_invite_link_modal.help": "Отправьте товарищам эту ссылку для регистрации в команде. Ссылку можно отправить нескольким людям, так как она не изменится, пока Администратор команды не создаст новую в Настройках команды.",
"get_team_invite_link_modal.helpDisabled": "Создание пользователей было отключено для вашей команды. Пожалуйста, обратитесь к администратору команды за подробностями.",
"get_team_invite_link_modal.title": "Ссылка для приглашения в команду",
"help.attaching.downloading": "#### Загрузка файлов\nДля загрузки вложенного файла щелкните иконку рядом с миниатюрой файла или в окне просмотра по надписи **Загрузить**.",
@@ -1411,7 +1425,7 @@
"help.composing.deleting": "## Удаление сообщений\nДля удаления сообщения нажмите иконку **[...]** рядом с любым размещенным вами сообщением, затем нажмите **Удалить**. Администраторы системы и команды могут удалять любые сообщения в их системе или команде.",
"help.composing.editing": "## Редактирование сообщения\nДля редактирования сообщения нажмите иконку **[...]** рядом с отправленным вами сообщением, затем щелкните **Редактировать**. После внесения изменений, нажмите **ENTER** для сохранения. Редактирование сообщений не вызывает триггер @mention notifications, всплывающие уведомления или звуковые уведомления.",
"help.composing.linking": "## Ссылка на сообщение\nОпция **Постоянная ссылка** создает ссылку к любому сообщению. Её использование в канале позволяет пользователям просматривать связанное сообщение в архиве сообщений. Пользователи которые не являются членами канала с сообщением, на которое была размещена ссылка, не могут просмотреть сообщение. Для получения постоянной ссылки на сообщение щелкните иконку **[...]** рядом с сообщением > **Постоянная ссылка** > **Копировать ссылку**.",
- "help.composing.posting": "## Отправка сообщения\nНапишите сообщение введя текст в окне ввода сообщения, затем нажмите **ENTER** для отправки. Используйте **Shift + ENTER** для перехода на новую строку без отправки сообщения. Для отправки сообщений по **CTRL+ENTER** зайдите в **Главное меню > Настройки аккаунта > Отправлять сообщения по CTRL + ENTER**.",
+ "help.composing.posting": "## Отправка сообщений\nНапишите сообщение введя текст в окне ввода сообщения, затем нажмите **ENTER** для отправки. Используйте **SHIFT+ENTER** для перехода на новую строку без отправки сообщения. Для отправки сообщений по **CTRL+ENTER** зайдите в **Главное меню > Учётная запись > Отправлять сообщения по CTRL+ENTER**.",
"help.composing.posts": "#### Сообщения\nСообщения могут содержать родительские сообщения. Эти сообщения часто начинаются с цепочки ответов. Сообщения пишут в текстовом поле ввода и отправляют нажатием на кнопку в центральной панели.",
"help.composing.replies": "#### Ответы\nЧтобы ответить на сообщение кликните на пиктограмму следующую за любым текстом сообщения. Это действие откроет правую боковую панель где вы можете увидеть ветвь сообщения, там напишите и отправьте ваш ответ. Ответы выделены отступом в центральной панели это означает, что это дочерние сообщения от родительского сообщения.\n\nКогда пишите ответ в правой панели кликните пиктограмму развернуть/свернуть (перекрестие) в верху боковой панели, это облегчит чтение.",
"help.composing.title": "# Отправка сообщений\n_____",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "This action permanently deletes the slash command and breaks any integrations using it. Are you sure you want to delete it?",
"installed_commands.empty": "Команда не найдена",
"installed_commands.header": "Слэш-команды",
- "installed_commands.help": "Создание команды слэш для использования c внешними интеграциями. Пожалуйста, смотрите {link}, чтобы узнать больше.",
- "installed_commands.helpLink": "документация",
+ "installed_commands.help": "Use slash commands to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_commands.help.appDirectory": "Каталог приложений",
+ "installed_commands.help.buildYourOwn": "Build your own",
"installed_commands.search": "Поиск по слэш-командам",
"installed_commands.unnamed_command": "Неизвестная Slash-команда",
"installed_incoming_webhooks.add": "Добавить входящий Webhook",
"installed_incoming_webhooks.delete.confirm": "This action permanently deletes the incoming webhook and breaks any integrations using it. Are you sure you want to delete it?",
"installed_incoming_webhooks.empty": "Не обнаружено входящих webhook'ов",
- "installed_incoming_webhooks.header": "Входящие Webhook'и",
- "installed_incoming_webhooks.help": "Создание входящих webhook URL для использования с внешними интеграциями. Пожалуйста, смотрите ссылку {link}, чтобы узнать больше.",
- "installed_incoming_webhooks.helpLink": "документация",
+ "installed_incoming_webhooks.header": "Входящие вебхуки",
+ "installed_incoming_webhooks.help": "Use incoming webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_incoming_webhooks.help.appDirectory": "Каталог приложений",
+ "installed_incoming_webhooks.help.buildYourOwn": "Build your own",
"installed_incoming_webhooks.search": "Поиск Входящих Webhooks",
"installed_incoming_webhooks.unknown_channel": "Приватный Webhook",
"installed_integrations.callback_urls": "Адреса колбэка: {urls}",
@@ -1501,8 +1517,8 @@
"installed_integrations.delete": "Удалить",
"installed_integrations.edit": "Редактировать",
"installed_integrations.hideSecret": "Скрыть Secret",
- "installed_integrations.regenSecret": "Перегенерировать Secret",
- "installed_integrations.regenToken": "Регенерировать токен",
+ "installed_integrations.regenSecret": "Создать новый Secret",
+ "installed_integrations.regenToken": "Создать новый токен",
"installed_integrations.showSecret": "Показать Secret",
"installed_integrations.token": "Token: {token}",
"installed_integrations.triggerWhen": "Триггер Когда: {triggerWhen}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Описание",
"installed_oauth_apps.empty": "OAuth 2.0 приложения не найдены",
"installed_oauth_apps.header": "OAuth 2.0 приложения",
- "installed_oauth_apps.help": "Создание OAuth 2.0 приложений для безопасной интеграции ботов и сторонних приложений с Mattermost. Пожалуйста, смотрите {link}, чтобы узнать больше.",
- "installed_oauth_apps.helpLink": "документация",
+ "installed_oauth_apps.help": "Create {oauthApplications} to securely integrate bots and third-party apps with Mattermost. Visit the {appDirectory} to find available self-hosted apps.",
+ "installed_oauth_apps.help.appDirectory": "Каталог приложений",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 приложения",
"installed_oauth_apps.homepage": "Домашняя страница",
"installed_oauth_apps.iconUrl": "URL иконки",
"installed_oauth_apps.is_trusted": "Доверенное: <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "This action permanently deletes the outgoing webhook and breaks any integrations using it. Are you sure you want to delete it?",
"installed_outgoing_webhooks.empty": "Не обнаружено исходящих вебхуков",
"installed_outgoing_webhooks.header": "Исходящие Webhook'и",
- "installed_outgoing_webhooks.help": "Создание исходящих webhook URL для использования c внешними интеграцями. Пожалуйста, смотрите {link}, чтобы узнать больше.",
- "installed_outgoing_webhooks.helpLink": "документация",
+ "installed_outgoing_webhooks.help": "Use outgoing webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",
+ "installed_outgoing_webhooks.help.appDirectory": "Каталог приложений",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Build your own",
"installed_outgoing_webhooks.search": "Поиск Исходящих Webhooks",
"installed_outgoing_webhooks.unknown_channel": "Приватный вебхук",
"integrations.add": "Добавить",
@@ -1542,30 +1560,32 @@
"integrations.delete.confirm.title": "Удалить интеграцию",
"integrations.done": "Завершено",
"integrations.edit": "Редактировать",
- "integrations.header": "Интеграция",
+ "integrations.header": "Интеграции",
+ "integrations.help": "Visit the {appDirectory} to find self-hosted, third-party apps and integrations for Mattermost.",
+ "integrations.help.appDirectory": "Каталог приложений",
"integrations.incomingWebhook.description": "Входящие вебхуки позволяют внешним приложениям отправлять сообщения",
- "integrations.incomingWebhook.title": "Входящие Webhook'и",
+ "integrations.incomingWebhook.title": "Входящие вебхуки",
"integrations.oauthApps.description": "OAuth 2.0 позволяет внешним приложения делать авторизованные запросы к Mattermost API.",
"integrations.oauthApps.title": "OAuth 2.0 приложения",
"integrations.outgoingWebhook.description": "Исходящие вебхуки позволяют получать и отвечать на сообщения",
"integrations.outgoingWebhook.title": "Исходящий вебхук",
"integrations.successful": "Установлено",
- "intro_messages.DM": "Начало истории личных сообщений с {teammate}.<br />Личные сообщения и файлы доступны здесь и не видны за пределами этой области.",
- "intro_messages.GM": "Начало истории личных сообщений с {teammate}.<br />Личные сообщения и файлы доступны здесь и не видны за пределами этой области.",
+ "intro_messages.DM": "Начало истории личных сообщений с {teammate}.<br />Рамещённые здесь сообщения и файлы не видны за пределами этой области.",
+ "intro_messages.GM": "Начало истории групповых сообщений с {names}.<br />Размещённые здесь сообщения и файлы не видны за пределами этой области.",
"intro_messages.anyMember": " Любой участник может зайти и читать этот канал.",
- "intro_messages.beginning": "Начало общения с {name}",
+ "intro_messages.beginning": "Начало {name}",
"intro_messages.channel": "канал",
- "intro_messages.creator": "Тут начался {type} {name}, созданный {creator} {date}.",
- "intro_messages.default": "<h4 class='channel-intro__title'>Beginning of {display_name}</h4><p class='channel-intro__content'><strong>Welcome to {display_name}!</strong><br/><br/>Post messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.</p>",
- "intro_messages.group": "личный канал",
- "intro_messages.group_message": "Начало истории личных сообщений с участником. Личные сообщения и файлы доступны здесь и не видны за пределами этой области.",
+ "intro_messages.creator": "{name} - {type}, созданный {creator} {date}",
+ "intro_messages.default": "<h4 class='channel-intro__title'>Начало {display_name}</h4><p class='channel-intro__content'><strong>Добро пожаловать в {display_name}!</strong><br/><br/>Отправляйте сообщения здесь, если хотите чтобы его увидели все. Каждый автоматически становится участником этого канала при входе в команду.</p>",
+ "intro_messages.group": "приватный канал",
+ "intro_messages.group_message": "Начало истории групповых сообщений с участниками. Размещённые здесь сообщения и файлы не видны за пределами этой области.",
"intro_messages.invite": "Пригласить других в {type}",
"intro_messages.inviteOthers": "Пригласить других в эту команду",
- "intro_messages.noCreator": "Начало общения в {name} {type}, созданная {date}.",
- "intro_messages.offTopic": "<h4 class=\"channel-intro__title\">{display_name} - начало общения</h4><p class=\"channel-intro__content\">{display_name}, канал для общения по нерабочим вопросам.<br/></p>",
+ "intro_messages.noCreator": "{name} - {type}, созданный {date}",
+ "intro_messages.offTopic": "<h4 class=\"channel-intro__title\">Начало {display_name}</h4><p class=\"channel-intro__content\">{display_name}, канал для общения по нерабочим вопросам.<br/></p>",
"intro_messages.onlyInvited": " Только приглашенные пользователи могут видеть этот приватный канал.",
"intro_messages.purpose": " Назначение для {type}: {purpose}.",
- "intro_messages.setHeader": "Установить заголовок",
+ "intro_messages.setHeader": "Изменить заголовок",
"intro_messages.teammate": "Начало истории личных сообщений с участником. Личные сообщения и файлы доступны здесь и не видны за пределами этой области.",
"invite_member.addAnother": "Добавить следующего",
"invite_member.autoJoin": "Приглашённые пользователи автоматически присоединяются к каналу <strong>{channel}</strong>.",
@@ -1579,7 +1599,7 @@
"invite_member.modalButton": "Да, Отменить",
"invite_member.modalMessage": "Вы имеете неотправленные приглашения, вы уверены, что хотите отменить их?",
"invite_member.modalTitle": "Отклонить приглашение?",
- "invite_member.newMember": "Send Email Invite",
+ "invite_member.newMember": "Отправить приглашение на электронную почту",
"invite_member.send": "Выслать приглашение",
"invite_member.send2": "Выслать приглашения",
"invite_member.sending": " Отправка",
@@ -1592,7 +1612,7 @@
"leave_private_channel_modal.leave": "Да, покинуть канал",
"leave_private_channel_modal.message": "Are you sure you wish to leave the private channel {channel}? You must be re-invited in order to re-join this channel in the future.",
"leave_private_channel_modal.title": "Покинуть приватный канал {channel}",
- "leave_team_modal.desc": "Вы будете удалены из всех публичных каналов и приватных групп. Если команда приватная, то вы не сможете вернуться. Вы уверены?",
+ "leave_team_modal.desc": "Вы будете удалены из всех публичных и приватных каналов. Если команда приватная, то вы не сможете вернуться. Вы уверены?",
"leave_team_modal.no": "Нет",
"leave_team_modal.title": "Покинуть команду?",
"leave_team_modal.yes": "Да",
@@ -1601,7 +1621,7 @@
"login.create": "Создать сейчас",
"login.createTeam": "Создать команду",
"login.createTeamAdminOnly": "Эта опция доступна только для системных администраторов и не видна другим пользователям.",
- "login.email": "Email",
+ "login.email": "Электронная почта",
"login.find": "Искать другие команды",
"login.forgot": "Я забыл свой пароль",
"login.gitlab": "GitLab",
@@ -1676,7 +1696,7 @@
"mobile.channel_info.alertTitleLeaveChannel": "Покинуть {term}",
"mobile.channel_info.alertYes": "Да",
"mobile.channel_info.delete_failed": "We couldn't delete the channel {displayName}. Please check your connection and try again.",
- "mobile.channel_info.privateChannel": "Личный Канал",
+ "mobile.channel_info.privateChannel": "Приватный канал",
"mobile.channel_info.publicChannel": "Публичные каналы",
"mobile.channel_list.alertMessageLeaveChannel": "Вы действительно хотите покинуть {term} {name}?",
"mobile.channel_list.alertNo": "Нет",
@@ -1684,37 +1704,37 @@
"mobile.channel_list.alertYes": "Да",
"mobile.channel_list.closeDM": "Close Direct Message",
"mobile.channel_list.closeGM": "Close Group Message",
- "mobile.channel_list.dm": "Прямое сообщение",
+ "mobile.channel_list.dm": "Личное сообщение",
"mobile.channel_list.gm": "Group Message",
- "mobile.channel_list.not_member": "NOT A MEMBER",
+ "mobile.channel_list.not_member": "НЕ УЧАСТНИК",
"mobile.channel_list.open": "Открыть {term}",
"mobile.channel_list.openDM": "Open Direct Message",
"mobile.channel_list.openGM": "Open Group Message",
- "mobile.channel_list.privateChannel": "Личный Канал",
- "mobile.channel_list.publicChannel": "Публичные Каналы",
+ "mobile.channel_list.privateChannel": "Приватный канал",
+ "mobile.channel_list.publicChannel": "Публичный канал",
"mobile.channel_list.unreads": "НЕПРОЧИТАННЫЕ",
"mobile.components.channels_list_view.yourChannels": "Ваши каналы:",
- "mobile.components.error_list.dismiss_all": "Dismiss All",
+ "mobile.components.error_list.dismiss_all": "Отменить все",
"mobile.components.select_server_view.continue": "Продолжить",
"mobile.components.select_server_view.enterServerUrl": "Введите адрес сервера",
"mobile.components.select_server_view.proceed": "Продолжить",
"mobile.components.select_server_view.siteUrlPlaceholder": "https://mattermost.example.com",
"mobile.create_channel": "Создать",
- "mobile.create_channel.private": "Новый Личный Канал",
+ "mobile.create_channel.private": "Новый приватный канал",
"mobile.create_channel.public": "Новый публичный канал",
"mobile.custom_list.no_results": "Нет результатов",
"mobile.drawer.teamsTitle": "Команды",
"mobile.edit_post.title": "Редактирование сообщения",
- "mobile.error_handler.button": "Relaunch",
- "mobile.error_handler.description": "\nClick relaunch to open the app again. After restart, you can report the problem from the settings menu.\n",
- "mobile.error_handler.title": "Unexpected error occurred",
+ "mobile.error_handler.button": "Перезапустить",
+ "mobile.error_handler.description": "\nНажмите на кнопку Перезапустить, чтобы открыть приложение заново. После запуска, вы можете сообщить о проблеме через меню настроек.\n",
+ "mobile.error_handler.title": "Произошла непредвиденная ошибка",
"mobile.file_upload.camera": "Сделать фото или видео",
"mobile.file_upload.library": "Библиотека изображений",
"mobile.file_upload.more": "Еще",
"mobile.file_upload.video": "Библиотека видео",
"mobile.help.title": "Помощь",
"mobile.intro_messages.DM": "Начало истории личных сообщений с {teammate}. Личные сообщения и файлы доступны здесь и не видны за пределами этой области.",
- "mobile.intro_messages.default_message": "This is the first channel teammates see when they sign up - use it for posting updates everyone needs to know.",
+ "mobile.intro_messages.default_message": "Это первый канал, который видит новый участник группы - используйте его для отправки сообщений, которые должны увидеть все.",
"mobile.intro_messages.default_welcome": "Добро пожаловать в {name}!",
"mobile.join_channel.error": "We couldn't join the channel {displayName}. Please check your connection and try again.",
"mobile.loading_channels": "Загрузка списка каналов...",
@@ -1757,13 +1777,16 @@
"mobile.routes.user_profile.send_message": "Отправить сообщение",
"mobile.select_team.choose": "Ваши команды: ",
"mobile.select_team.join_open": "Другие команды, к которым вы можете присоединиться.",
- "mobile.select_team.no_teams": "There are no available teams for you to join.",
- "mobile.server_ping_failed": "Cannot connect to the server. Please check your server URL and internet connection.",
+ "mobile.select_team.no_teams": "Нет доступных команд, к которым вы можете присоединиться.",
+ "mobile.server_ping_failed": "Не удалось подключиться к серверу. Проверьте адрес сервера и подключение к интернету.",
"mobile.server_upgrade.button": "OK",
- "mobile.server_upgrade.description": "\nA server upgrade is required to use the Mattermost app. Please ask your System Administrator for details.\n",
- "mobile.server_upgrade.title": "Server upgrade required",
+ "mobile.server_upgrade.description": "\nДля продолжения работы требуется обновление сервера Mattermost. Пожалуйста, обратитесь к администратору за подробностями.\n",
+ "mobile.server_upgrade.title": "Требуется обновление сервера",
"mobile.server_url.invalid_format": "Адрес должен начинаться с http:// или https://",
- "mobile.session_expired": "Session Expired: Please log in to continue receiving notifications.",
+ "mobile.session_expired": "Сессия истекла: войдите, чтобы продолжить получение уведомлений.",
+ "mobile.settings.clear": "Очистить локальное хранилище",
+ "mobile.settings.clear_button": "Очистить",
+ "mobile.settings.clear_message": "\nДанное действие приведёт к очистке локальных данных и перезапуску приложения.\n",
"mobile.settings.team_selection": "Выбор команды",
"modal.manaul_status.ask": "Не задавать больше этот вопрос",
"modal.manaul_status.button": "Да, установите мой статус \"В сети\"",
@@ -1804,19 +1827,19 @@
"navbar.toggle1": "Свернуть меню",
"navbar.toggle2": "Развернуть меню",
"navbar.viewInfo": "Информация",
- "navbar.viewPinnedPosts": "Просмотреть прикрепленные посты",
+ "navbar.viewPinnedPosts": "Просмотреть прикрепленные сообщения",
"navbar_dropdown.about": "О Mattermost",
"navbar_dropdown.accountSettings": "Учетная запись",
- "navbar_dropdown.addMemberToTeam": "Добавить пользователей в команду",
+ "navbar_dropdown.addMemberToTeam": "Добавить в команду",
"navbar_dropdown.console": "Системная консоль",
"navbar_dropdown.create": "Создать команду",
"navbar_dropdown.emoji": "Пользовательские смайлы",
"navbar_dropdown.help": "Помощь",
- "navbar_dropdown.integrations": "Интеграция",
- "navbar_dropdown.inviteMember": "Send Email Invite",
+ "navbar_dropdown.integrations": "Интеграции",
+ "navbar_dropdown.inviteMember": "Отправить приглашение на электронную почту",
"navbar_dropdown.join": "Присоединиться к другой команде",
- "navbar_dropdown.keyboardShortcuts": "Клавиши быстрого доступа",
- "navbar_dropdown.leave": "Уйти из команды",
+ "navbar_dropdown.keyboardShortcuts": "Горячие клавиши",
+ "navbar_dropdown.leave": "Выйти из команды",
"navbar_dropdown.logout": "Выйти",
"navbar_dropdown.manageMembers": "Участники",
"navbar_dropdown.nativeApps": "Скачать приложения",
@@ -1829,7 +1852,7 @@
"notification.dm": "Прямое сообщение",
"notify_all.confirm": "Подтвердить",
"notify_all.question": "By using @all or @channel you are about to send notifications to {totalMembers} people. Are you sure you want to do this?",
- "notify_all.title.confirm": "Confirm sending notifications to entire channel",
+ "notify_all.title.confirm": "Подтвердите отправку уведомления всему каналу",
"passwordRequirements": "Требования к паролю:",
"password_form.change": "Изменить пароль",
"password_form.click": "Щёлкните <a href={url}>сюда</a> для входа в систему.",
@@ -1840,7 +1863,7 @@
"password_form.update": "Ваш пароль успешно изменён.",
"password_send.checkInbox": "Проверьте свои входящие.",
"password_send.description": "Для сброса пароля введите email адрес, использованный при регистрации",
- "password_send.email": "Email",
+ "password_send.email": "Электронная почта",
"password_send.error": "Пожалуйста, введите корректный email.",
"password_send.link": "Если аккаунт существует, вы получите письмо с инструкциями по восстановлению пароля на: <br/><b>{email}</b><br/><br/>",
"password_send.reset": "Сбросить пароль",
@@ -1864,21 +1887,22 @@
"post_info.mobile.flag": "Отметить",
"post_info.mobile.unflag": "Не помечено",
"post_info.permalink": "Постоянная ссылка",
- "post_info.pin": "Pin to channel",
+ "post_info.pin": "Прикрепить",
"post_info.pinned": "Прикреплено",
"post_info.reply": "Ответить",
"post_info.system": "Система",
- "post_info.unpin": "Un-pin from channel",
+ "post_info.unpin": "Открепить",
"post_message_view.edited": "(отредактировано)",
"posts_view.loadMore": "Больше сообщений",
- "posts_view.loadingMore": "Больше сообщений",
+ "posts_view.loadingMore": "Загрузка сообщений...",
"posts_view.newMsg": "Новые сообщения",
"posts_view.newMsgBelow": "{count, plural, one {Новое сообщение} other {Новые сообщения}} ниже",
"quick_switch_modal.channels": "Каналы",
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
- "quick_switch_modal.help": "Start typing then use TAB to toggle channels/teams, ↑↓ to browse, ↵ to select, and ESC to dismiss.",
- "quick_switch_modal.help_no_team": "Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.",
+ "quick_switch_modal.help": "Начните печатать, а затем используйте TAB для переключения между каналами/командами, ↑↓ для навигации, ↵ для выбора или ESC для отмены.",
+ "quick_switch_modal.help_mobile": "Вводите для поиска канала.",
+ "quick_switch_modal.help_no_team": "Вводите для поиска канала. Используйте ↑↓ для навигации, ↵ для выбора и ESC для отмены.",
"quick_switch_modal.teams": "Команды",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
"quick_switch_modal.teamsShortcut.windows": "- CTRL+ALT+K",
@@ -1902,7 +1926,7 @@
"rename_channel.defaultError": " - Нельзя изменить для канала по умолчанию",
"rename_channel.displayName": "Имя",
"rename_channel.displayNameHolder": "Введите имя",
- "rename_channel.handleHolder": "Должны быть буквы или цифры в нижнем регистре",
+ "rename_channel.handleHolder": "буквы или цифры в нижнем регистре",
"rename_channel.lowercase": "Должны быть буквы или цифры в нижнем регистре",
"rename_channel.maxLength": "Содержание поля должно быть короче 22 байт",
"rename_channel.required": "Обязательное поле",
@@ -1917,7 +1941,7 @@
"rhs_comment.permalink": "Постоянная ссылка",
"rhs_header.backToCallTooltip": "Обратно к вызову",
"rhs_header.backToFlaggedTooltip": "Вернуться к отмеченным сообщениям",
- "rhs_header.backToPinnedTooltip": "Вернуться к отмеченным сообщениям",
+ "rhs_header.backToPinnedTooltip": "Вернуться к прикреплённым сообщениям",
"rhs_header.backToResultsTooltip": "Назад к результатам поиска",
"rhs_header.closeSidebarTooltip": "Закрыть боковую панель",
"rhs_header.closeTooltip": "Закрыть боковую панель",
@@ -1931,48 +1955,48 @@
"rhs_root.mobile.flag": "Отметить",
"rhs_root.mobile.unflag": "Не помечено",
"rhs_root.permalink": "Постоянная ссылка",
- "rhs_root.pin": "Pin to channel",
- "rhs_root.unpin": "Un-pin from channel",
+ "rhs_root.pin": "Прикрепить",
+ "rhs_root.unpin": "Открепить",
"search_bar.search": "Поиск",
"search_bar.usage": "<h4>Параметры поиска</h4><ul><li><span>Используйте </span><b>\"кавычки\"</b><span> для поиска фраз</span></li><li><span>Используйте слово </span><b>from:</b><span> для поиска сообщений нужного пользователя и слово </span><b>in:</b><span> для поиска сообщений на нужном канале</span></li></ul>",
"search_header.results": "Результаты поиска",
"search_header.title2": "Недавние упоминания",
"search_header.title3": "Отмеченные сообщения",
- "search_header.title4": "Pinned posts in {channelDisplayName}",
+ "search_header.title4": "Прикреплённые сообщения в {channelDisplayName}",
"search_item.direct": "Личное сообщение ({username})",
"search_item.jump": "Переход",
- "search_results.because": "<ul><li>Если Вы ищите часть фразы (например, \"rea\", как часть фразы \"reach\" или \"reaction\"), добавьте * в маску поиска.</li><li>Двухбуквенные слова и общие слова, такие как \"this\", \"a\" и \"is\" не появятся в результатах поиска, для исключения лишних результатов.</li></ul>",
+ "search_results.because": "<ul><li>Если вы ищете часть фразы (например, \"rea\", как часть фразы \"reach\" или \"reaction\"), добавьте * в маску поиска.</li><li>Двухбуквенные слова и общие слова, такие как \"this\", \"a\" и \"is\" не появятся в результатах поиска для исключения лишних результатов.</li></ul>",
"search_results.noResults": "Ничего не найдено. Попробовать еще?",
"search_results.usage": "<ul><li>Используйте <b>\"кавычки\"</b> для поиска фраз</li><li>Используйте <b>from:</b> для поиска сообщений пользователя и <b>in:</b> для поиска в канале</li></ul>",
"search_results.usageFlag1": "Вы не имеете отмеченных сообщений.",
"search_results.usageFlag2": "Вы можете добавить флаг в сообщения и комментарии, нажав",
"search_results.usageFlag3": " иконка напротив временной метки.",
"search_results.usageFlag4": "Флаги - один из способов, пометки сообщений для последующей деятельности. Ваши флаги не могут быть просмотрены другими пользователями.",
- "search_results.usagePin1": "There are no pinned messages yet.",
- "search_results.usagePin2": "All members of this channel can pin important or useful messages.",
- "search_results.usagePin3": "Pinned messages are visible to all channel members.",
- "search_results.usagePin4": "To pin a message: Go to the message that you want to pin and click [...] > \"Pin to channel\".",
+ "search_results.usagePin1": "Пока нет ни одного прикреплённого сообщения.",
+ "search_results.usagePin2": "Все участники канала могут прикреплять важные или полезные сообщения.",
+ "search_results.usagePin3": "Прикреплённые сообщения видны всем участникам канала.",
+ "search_results.usagePin4": "Для прикрепления сообщения: Выберите нужно сообщение и нажмите [...] > \"Прикрепить\".",
"setting_item_max.cancel": "Отмена",
"setting_item_max.save": "Сохранить",
"setting_item_min.edit": "Изменить",
"setting_picture.cancel": "Отмена",
- "setting_picture.help": "Загрузите изображение профиля в формате JPG или PNG, разрешением не меньше {width} пикселей по ширине и {height} пикселей по высоте.",
+ "setting_picture.help": "Загрузите изображение профиля в формате BMP, JPG, JPEG или PNG, разрешением не меньше {width} пикселей по ширине и {height} пикселей по высоте.",
"setting_picture.save": "Сохранить",
"setting_picture.select": "Выбрать",
"setting_upload.import": "Импорт",
"setting_upload.noFile": "Файл не выбран.",
"setting_upload.select": "Выбрать файл",
- "sidebar.channels": "Каналы",
+ "sidebar.channels": "ПУБЛИЧНЫЕ КАНАЛЫ",
"sidebar.createChannel": "Создать публичный канал",
- "sidebar.createGroup": "Создать личный канал",
- "sidebar.direct": "Личные сообщения",
- "sidebar.favorite": "Избранные",
+ "sidebar.createGroup": "Создать приватный канал",
+ "sidebar.direct": "ЛИЧНЫЕ СООБЩЕНИЯ",
+ "sidebar.favorite": "ИЗБРАННЫЕ КАНАЛЫ",
"sidebar.more": "Еще",
"sidebar.moreElips": "Еще...",
"sidebar.otherMembers": "За пределами команды",
- "sidebar.pg": "Личные Каналы",
+ "sidebar.pg": "ПРИВАТНЫЕ КАНАЛЫ",
"sidebar.removeList": "Удалить из списка",
- "sidebar.tutorialScreen1": "<h4>Каналы</h4><p><strong>Каналы</strong> предназначены для организации обсуждений на разные темы. Они открыты для всех в вашей команде. Чтобы отправлять приватные сообщения, используйте <strong>личные сообщения</strong> для диалогов или <strong>приватные группы</strong> для бесед.</p>",
+ "sidebar.tutorialScreen1": "<h4>Каналы</h4><p><strong>Каналы</strong> предназначены для организации обсуждений на разные темы. Они открыты для всех в вашей команде. Чтобы отправлять приватные коммуникации, используйте <strong>личные сообщения</strong> для диалогов или <strong>приватные каналы</strong> для общения с несколькими человеками.</p>",
"sidebar.tutorialScreen2": "<h4>Каналы \"{townsquare}\" и \"{offtopic}\"</h4><p>Для начала вам будут доступны два публичных канала:</p><p><strong>{townsquare}</strong> используется для внутрикомандного общения. Каждый из вашей команды является участником этого канала.</p><p><strong>{offtopic}</strong> предназначен для юмора и развлечений отдельно от рабочих каналов. Вы и Ваша команда может выбрать какие другие каналы вам потребуются.</p>",
"sidebar.tutorialScreen3": "<h4>Создание и присоединение к каналу</h4><p>Нажмите <strong>\"Больше...\"</strong> для создания или присоединения к одному из каналов.</p><p>Вы также можете создать канал или приватную группу, нажав на <strong>\"+\" symbol</strong>, идущего после заголовка канала или приватной группы.</p>",
"sidebar.unreadAbove": "Непрочтённые сообщения выше",
@@ -1983,7 +2007,7 @@
"sidebar_right_menu.console": "Системная консоль",
"sidebar_right_menu.flagged": "Отмеченные сообщения",
"sidebar_right_menu.help": "Помощь",
- "sidebar_right_menu.inviteNew": "Send Email Invite",
+ "sidebar_right_menu.inviteNew": "Отправить приглашение на электронную почту",
"sidebar_right_menu.logout": "Выйти",
"sidebar_right_menu.manageMembers": "Участники",
"sidebar_right_menu.nativeApps": "Скачать приложения",
@@ -1993,7 +2017,7 @@
"sidebar_right_menu.teamSettings": "Настройки команды",
"sidebar_right_menu.viewMembers": "Просмотреть список участников",
"signup.email": "Email и Пароль",
- "signup.gitlab": "GitLab SSO",
+ "signup.gitlab": "GitLab Single Sign-On",
"signup.google": "Аккаунт Google",
"signup.ldap": "Данные AD/LDAP",
"signup.office365": "Office 365",
@@ -2047,7 +2071,7 @@
"status_dropdown.set_offline": "Не в сети",
"status_dropdown.set_online": "В сети",
"suggestion.loading": "Загрузка...",
- "suggestion.mention.all": "CAUTION: This mentions everyone in channel",
+ "suggestion.mention.all": "ВНИМАНИЕ: это приведёт к уведомлению всех в этом канале",
"suggestion.mention.channel": "Уведомляет всех на канале",
"suggestion.mention.channels": "Мои каналы",
"suggestion.mention.here": "Уведомлять всех в канале и на сайте",
@@ -2057,7 +2081,7 @@
"suggestion.mention.nonmembers": "Не в канале",
"suggestion.mention.not_in_channel": "Другие каналы",
"suggestion.mention.special": "Специальные функции",
- "suggestion.search.private": "Личные Каналы",
+ "suggestion.search.private": "Приватные каналы",
"suggestion.search.public": "Общедоступные каналы",
"system_users_list.count": "{count, number} {count, plural, one {user} other {users}}",
"system_users_list.countPage": "{startCount, number} - {endCount, number} {count, plural, =0 {0 участников} one {участник} few {участника} other {участников}} из {total}",
@@ -2116,14 +2140,14 @@
"tutorial_intro.mobileAppsLinkText": "PC, Mac, iOS и Android",
"tutorial_intro.next": "Далее",
"tutorial_intro.screenOne": "<h3>Добро пожаловать в:</h3><h1>Mattermost</h1><p>Средство общения команды, доступное всегда и везде.</p><p>Сосредоточьте вашу команду на том, что действительно важно.</p>",
- "tutorial_intro.screenTwo": "<h3>Как работает Mattermost:</h3><p>Общение происходит в публичных каналах обсуждения, личных группах и личных сообщениях.</p><p>Всё архивируется и доступно для поиска с любого подключенного к интернету настольного компьютера, ноутбука или телефона.</p>",
+ "tutorial_intro.screenTwo": "<h3>Как работает Mattermost:</h3><p>Общение происходит в публичных и приватных каналах и в личных сообщениях.</p><p>Всё архивируется и доступно для поиска с любого подключенного к интернету настольного компьютера, ноутбука или телефона.</p>",
"tutorial_intro.skip": "Пропустить обучение",
"tutorial_intro.support": "Если что-то нужно, просто напишите нам по ",
"tutorial_intro.teamInvite": "Пригласить участников",
"tutorial_intro.whenReady": " когда будете готовы.",
"tutorial_tip.next": "Далее",
"tutorial_tip.ok": "Хорошо",
- "tutorial_tip.out": "Opt out of these tips.",
+ "tutorial_tip.out": "Скрыть советы.",
"tutorial_tip.seen": "Уже видели? ",
"update_command.cancel": "Отмена",
"update_command.confirm": "Редактировать команду",
@@ -2131,12 +2155,11 @@
"update_command.update": "Обновить",
"update_incoming_webhook.update": "Обновить",
"update_outgoing_webhook.confirm": "Добавить исходящий вебхук",
- "update_outgoing_webhook.question": "Ваши изменения могут повредить существующую слэш-команду. Вы уверены, что хотите продолжить?",
+ "update_outgoing_webhook.question": "Ваши изменения могут повредить существующий исходящий вебхук. Вы уверены, что хотите продолжить?",
"update_outgoing_webhook.update": "Обновить",
"upload_overlay.info": "Бросьте сюда файл, чтобы загрузить его.",
"user.settings.advance.embed_preview": "Для первой веб-ссылки в сообщении показывать предпросмотр содержимого веб-сайта ниже сообщения, если это возможно",
"user.settings.advance.embed_toggle": "Показывать переключатель для всех встроенных превью",
- "user.settings.advance.emojipicker": "Enable emoji picker for reactions and message input box",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, one {возможность включена} few {возможности включены} other {возможностей включены}}",
"user.settings.advance.formattingDesc": "Если включено, сообщения будут отформатированы с созданием ссылок, показом смайликов, стилями текста и переносами. По-умолчанию, эта настройка включена. Изменение этой настройки потребует обновления страницы.",
"user.settings.advance.formattingTitle": "Разрешить форматирование сообщений",
@@ -2148,7 +2171,7 @@
"user.settings.advance.preReleaseDesc": "Check any pre-released features you'd like to preview. You may also need to refresh the page before the setting will take effect.",
"user.settings.advance.preReleaseTitle": "Просмотр возможностей предрелиза",
"user.settings.advance.sendDesc": "Если включено, `ENTER` вставляет новую строку, а `CTRL + ENTER` отправляет сообщение.",
- "user.settings.advance.sendTitle": "Отправлять сообщения сочетанием клавиш CTRL + ENTER",
+ "user.settings.advance.sendTitle": "Отправлять сообщения сочетанием клавиш CTRL+ENTER",
"user.settings.advance.slashCmd_autocmp": "Включить внешнее приложение для реализации функции автодополнения слэш-команд",
"user.settings.advance.title": "Дополнительные параметры",
"user.settings.advance.webrtc_preview": "Включить возможность совершать и принимать WebRTC звонки.",
@@ -2198,7 +2221,7 @@
"user.settings.display.normalClock": "12-часовой формат (пример: 4:00 PM)",
"user.settings.display.preferTime": "Выберите предпочитаемый формат времени.",
"user.settings.display.showFullname": "Показывать имя и фамилию",
- "user.settings.display.showNickname": "Показывать псевдоним, если он существует, в противном случае показывать имя и фамилию",
+ "user.settings.display.showNickname": "Показывать псевдоним, если существует, иначе показывать имя и фамилию",
"user.settings.display.showUsername": "Показывать имя пользователя (по умолчанию)",
"user.settings.display.teammateNameDisplay": "Отображение имени в команде",
"user.settings.display.theme.applyToAllTeams": "Применить новую тему для всех моих команд",
@@ -2212,22 +2235,22 @@
"user.settings.general.checkEmail": "Для верификации адреса проверьте почтовый ящик {email}.",
"user.settings.general.checkEmailNoAddress": "Для верификации нового адреса проверьте ваш почтовый ящик",
"user.settings.general.close": "Закрыть",
- "user.settings.general.confirmEmail": "Подтвердите Email",
+ "user.settings.general.confirmEmail": "Подтвердите адрес электронной почты",
"user.settings.general.currentEmail": "Текущий адрес электронной почты",
- "user.settings.general.email": "Email",
+ "user.settings.general.email": "Адрес электронной почты",
"user.settings.general.emailGitlabCantUpdate": "Login occurs through GitLab. Email cannot be updated. Email address used for notifications is {email}.",
"user.settings.general.emailGoogleCantUpdate": "Вход осуществлен через Google. Адрес электронной почты не может быть обновлен. Адрес электронной почты используемый для уведомлений {email}.",
"user.settings.general.emailHelp1": "Email, использующийся для входа, уведомлений и сброса пароля. После изменения Email требуется его верификация.",
"user.settings.general.emailHelp2": "Email отключен системным администратором. Уведомления на email не будут высылаться пока не будет включено.",
- "user.settings.general.emailHelp3": "Email используется для входа, уведомлений и сброса пароля.",
+ "user.settings.general.emailHelp3": "Адрес электронной почты используется для входа, уведомлений и сброса пароля.",
"user.settings.general.emailHelp4": "Письмо для верификации отправлено на {email}.",
"user.settings.general.emailLdapCantUpdate": "Вход осуществлен через AD/LDAP. Email не может быть обновлен. Используемый для оповещений Email: {email}.",
"user.settings.general.emailMatch": "Введенные пароли не совпадают.",
"user.settings.general.emailOffice365CantUpdate": "При входе через Office 365 адрес электронной почты не может быть обновлен. Адрес, используемый для уведомлений: {email}.",
"user.settings.general.emailSamlCantUpdate": "Вход осуществлен через SAML. Email не может быть обновлен. Используемый для оповещений Email: {email}.",
"user.settings.general.emailUnchanged": "Новый адрес email не отличается от предыдущего.",
- "user.settings.general.emptyName": "Нажмите 'Изменить' для добавления Вашего полного имени",
- "user.settings.general.emptyNickname": "Нажмите 'Изменить' для добавления Вашего псевдонима",
+ "user.settings.general.emptyName": "Нажмите 'Изменить' для добавления вашего полного имени",
+ "user.settings.general.emptyNickname": "Нажмите 'Изменить' для добавления псевдонима",
"user.settings.general.emptyPosition": "Нажмите 'Изменить', чтобы указать свою должность.",
"user.settings.general.field_handled_externally": "This field is handled through your login provider. If you want to change it, you need to do so through your login provider.",
"user.settings.general.firstName": "Имя",
@@ -2235,20 +2258,20 @@
"user.settings.general.imageTooLarge": "Невозможно загрузить изображение. Файл слишком большой.",
"user.settings.general.imageUpdated": "Последнее обновление {date}",
"user.settings.general.lastName": "Фамилия",
- "user.settings.general.loginGitlab": "Login done through GitLab ({email})",
+ "user.settings.general.loginGitlab": "Успешный вход через GitLab ({email})",
"user.settings.general.loginGoogle": "Вход выполнен через GitLab ({email})",
"user.settings.general.loginLdap": "Вход завершен через AD/LDAP ({email})",
"user.settings.general.loginOffice365": "Вход через Office 365 ({email})",
"user.settings.general.loginSaml": "Вход выполнен через SAML ({email})",
- "user.settings.general.mobile.emptyName": "Нажмите 'Изменить' для добавления Вашего полного имени",
- "user.settings.general.mobile.emptyNickname": "Нажмите 'Изменить' для добавления Вашего псевдонима",
- "user.settings.general.mobile.emptyPosition": "Нажмите 'Изменить', чтобы указать свою должность.",
- "user.settings.general.mobile.uploadImage": "Нажмите 'Изменить' для загрузки изображения.",
+ "user.settings.general.mobile.emptyName": "Нажмите для добавления Вашего полного имени",
+ "user.settings.general.mobile.emptyNickname": "Нажмите для добавления псевдонима",
+ "user.settings.general.mobile.emptyPosition": "Нажмите, чтобы указать свою должность.",
+ "user.settings.general.mobile.uploadImage": "Нажмите для загрузки изображения.",
"user.settings.general.newAddress": "Новый адрес: {email}<br />Проверьте ваш E-Mail для подтверждения адреса выше.",
"user.settings.general.newEmail": "Новый адрес электронной почты",
"user.settings.general.nickname": "Псеводним",
- "user.settings.general.nicknameExtra": "Используйте псевдоним в качестве имени, если Вас можно называть отлично от имени или имени пользователя. Псевдоним полезно использовать, когда два или более человека имеют созвучные имена или имена пользователей.",
- "user.settings.general.notificationsExtra": "По умолчанию Вы получаете уведомления о упоминаниях, когда кто-либо пишет Ваше имя. Для изменения перейдите в настройки {notify}.",
+ "user.settings.general.nicknameExtra": "Используйте псевдоним в качестве имени, если вас можно называть отлично от имени или имени пользователя. Псевдоним полезно использовать, когда два или более человека имеют созвучные имена или имена пользователей.",
+ "user.settings.general.notificationsExtra": "По умолчанию вы будете получать уведомления, когда кто-либо напишет ваше имя. Для изменения поведения перейдите в настройки {notify}.",
"user.settings.general.notificationsLink": "Уведомления",
"user.settings.general.position": "Должность",
"user.settings.general.positionExtra": "Укажите вашу должность. Эта информация будет отображена в вашем профиле.",
@@ -2256,7 +2279,7 @@
"user.settings.general.title": "Общие настройки",
"user.settings.general.uploadImage": "Нажмите 'Изменить' для загрузки изображения.",
"user.settings.general.username": "Имя пользователя",
- "user.settings.general.usernameInfo": "Выберите что-нибудь простое для того, чтобы участники команды вас распознали и запомнили.",
+ "user.settings.general.usernameInfo": "Выберите какое-нибудь простое для того, чтобы пользователи могли вас узнать.",
"user.settings.general.usernameReserved": "Это имя зарезервировано, выберите новое, пожалуйста.",
"user.settings.general.usernameRestrictions": "Имя пользователя должно начинаться с буквы и содержать от {min} до {max} символов в нижнем регистре, среди которых могут быть буквы, цифры и символы '.', '-', и '_'.",
"user.settings.general.validEmail": "Пожалуйста, введите корректный email",
@@ -2289,7 +2312,7 @@
"user.settings.modal.security": "Безопасность",
"user.settings.modal.title": "Настройки учетной записи",
"user.settings.notifications.allActivity": "При любой активности",
- "user.settings.notifications.channelWide": "Channel-wide mentions \"@channel\", \"@all\"",
+ "user.settings.notifications.channelWide": "Упоминание участников канала \"@channel\", \"@all\", \"@here\" ",
"user.settings.notifications.close": "Закрыть",
"user.settings.notifications.comments": "Уведомление об ответе",
"user.settings.notifications.commentsAny": "Trigger notifications on messages in reply threads that I start or participate in",
@@ -2371,7 +2394,7 @@
"user.settings.security.gitlab": "GitLab",
"user.settings.security.google": "Google",
"user.settings.security.inactive": "Неактивен",
- "user.settings.security.lastUpdated": "Последние изменения: {date} в {time}",
+ "user.settings.security.lastUpdated": "Последнее изменение {date} at {time}",
"user.settings.security.ldap": "AD/LDAP",
"user.settings.security.loginGitlab": "Вход выполнен с помощью GitLab",
"user.settings.security.loginGoogle": "Выполнен вход через Google Apps",
@@ -2389,29 +2412,29 @@
"user.settings.security.oneSignin": "You may only have one sign-in method at a time. Switching sign-in method will send an email notifying you if the change was successful.",
"user.settings.security.password": "Пароль",
"user.settings.security.passwordError": "Пароль должен содержать от {min} до {max} символов.",
- "user.settings.security.passwordErrorLowercase": "Пароль должен быть не короче {min} символов и содержать хотя бы одну строчную букву.",
- "user.settings.security.passwordErrorLowercaseNumber": "Пароль должен быть не короче {min} символов и содержать хотя бы одну строчную букву и цифру.",
- "user.settings.security.passwordErrorLowercaseNumberSymbol": "Пароль должен быть не короче {min} символов и содержать хотя бы одну строчную букву, цифру и символ пунктуации (например, \"~!@#$%^&*()\").",
- "user.settings.security.passwordErrorLowercaseSymbol": "Ваш пароль должен быть не менее {min} символов, как минимум одну букву нижнего регистра и хотя бы один символ пунктуации (например, \"~!@#$%^&*()\").",
- "user.settings.security.passwordErrorLowercaseUppercase": "Пароль должен быть не менее {min} символов, как минимум одну букву нижнего регистра и хотя бы один символ верхнего регистра.",
- "user.settings.security.passwordErrorLowercaseUppercaseNumber": "Пароль должен быть не менее {min} символов и содержать хотя бы одну букву нижнего регистра, хотя бы одну букву верхнего регистра и хотя бы одну цифру.",
- "user.settings.security.passwordErrorLowercaseUppercaseNumberSymbol": "Пароль должен быть не короче {min} символов и содержать хотя бы одну прописную букву, хотя бы одну заглавную букву и хотя бы один спецсимвол (например, \"~!@#$%^&*()\").",
- "user.settings.security.passwordErrorLowercaseUppercaseSymbol": "Пароль должен быть не короче {min} символов и содержать хотя бы одну прописную букву, хотя бы одну заглавную букву и хотя бы один символ пунктуации (например, \"~!@#$%^&*()\").",
- "user.settings.security.passwordErrorNumber": "Пароль должен быть не короче {min} символов и содержать хотя бы одну цифру.",
- "user.settings.security.passwordErrorNumberSymbol": "Пароль должен быть не короче {min} символов и содержать хотя бы одну цифру и хотя бы один символ пунктуации (например, \"~!@#$%^&*()\").",
- "user.settings.security.passwordErrorSymbol": "Пароль должен быть не короче {min} символов и содержать хотя бы один символ пунктуации (например, \"~!@#$%^&*()\").",
- "user.settings.security.passwordErrorUppercase": "Пароль должен быть не короче {min} символов и содержать хотя бы один символ в верхнем регистре.",
- "user.settings.security.passwordErrorUppercaseNumber": "Пароль должен быть не короче {min} символов и содержать хотя бы один символ в верхнем регистре и хотя бы одну цифру.",
- "user.settings.security.passwordErrorUppercaseNumberSymbol": "Пароль должен быть не короче {min} символов и содержать хотя бы один символ в верхнем регистре, хотя бы одну цифру и хотя бы один символ пунктуации (например, \"~!@#$%^&*()\").",
- "user.settings.security.passwordErrorUppercaseSymbol": "Пароль должен быть не короче {min} символов и содержать хотя бы одну цифру и хотя бы один специальный символ (например, \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorLowercase": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную букву.",
+ "user.settings.security.passwordErrorLowercaseNumber": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную букву и цифру.",
+ "user.settings.security.passwordErrorLowercaseNumberSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную букву, цифру и один символ (например: \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorLowercaseSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную букву и один символ (например: \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorLowercaseUppercase": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную и прописную буквы.",
+ "user.settings.security.passwordErrorLowercaseUppercaseNumber": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную и прописную буквы и цифру.",
+ "user.settings.security.passwordErrorLowercaseUppercaseNumberSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную и прописную буквы, цифру и один символ (например: \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorLowercaseUppercaseSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну строчную и прописную буквы и один символ (например: \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorNumber": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну цифру.",
+ "user.settings.security.passwordErrorNumberSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну цифру и один символ (например: \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы один символ (например: \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorUppercase": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну прописную букву.",
+ "user.settings.security.passwordErrorUppercaseNumber": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну прописную букву и цифру.",
+ "user.settings.security.passwordErrorUppercaseNumberSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну прописную букву, цифру и один символ (например: \"~!@#$%^&*()\").",
+ "user.settings.security.passwordErrorUppercaseSymbol": "Пароль должен быть длиной от {min} до {max} символов и содержать хотя бы одну прописную букву и один символ (например: \"~!@#$%^&*()\").",
"user.settings.security.passwordGitlabCantUpdate": "Вход произошел через GitLab. Пароль не может быть изменен.",
- "user.settings.security.passwordGoogleCantUpdate": "Вход произошел через GitLab. Пароль не может быть изменен.",
+ "user.settings.security.passwordGoogleCantUpdate": "Вход совершен через Google Apps. Пароль не может быть изменен.",
"user.settings.security.passwordLdapCantUpdate": "Вход произведен через AD/LDAP. Пароль не может быть обновлен.",
"user.settings.security.passwordMatchError": "Введенные пароли не совпадают.",
"user.settings.security.passwordMinLength": "Длина пароля меньше минимальной, предпросмотр невозможен.",
"user.settings.security.passwordOffice365CantUpdate": "Вход произошел через Office 365. Пароль не может быть изменен.",
"user.settings.security.passwordSamlCantUpdate": "This field is handled through your login provider. If you want to change it, you need to do so through your login provider.",
- "user.settings.security.retypePassword": "Повторите новый пароль",
+ "user.settings.security.retypePassword": "Подтвердите новый пароль",
"user.settings.security.saml": "SAML",
"user.settings.security.switchEmail": "Перейти к использованию e-mail и пароль",
"user.settings.security.switchGitlab": "Перейки к использованию GitLab SSO",
@@ -2420,7 +2443,7 @@
"user.settings.security.switchOffice365": "Перейти к использованию Office 365 SSO",
"user.settings.security.switchSaml": "Перейти к использованию SAML SSO",
"user.settings.security.title": "Настройки безопасности",
- "user.settings.security.viewHistory": "Просмотр истории доступа",
+ "user.settings.security.viewHistory": "Просмотр истории активности",
"user_list.notFound": "Пользователи не найдены",
"user_profile.send.dm": "Отправить сообщение",
"user_profile.webrtc.call": "Видеовызов",
@@ -2445,9 +2468,9 @@
"webrtc.declined": "Ваш звонок был отклонён {username}.",
"webrtc.disabled": "{username} отключил WebRTC и не может принимать звонки. Чтобы использовать эту возможность, он должен проследовать в **Настройки учётной записи** > **Дополнительно** > **Просмотр возможностей предрелиза** и включить WebRTC.",
"webrtc.failed": "Проблема с подключением к видео-звонку.",
- "webrtc.hangup": "Повесить трубку",
+ "webrtc.hangup": "Завершить разговор",
"webrtc.header": "Разговор с {username}",
- "webrtc.inProgress": "У вас есть текущий вызов. Пожалуйста завершите разговор.",
+ "webrtc.inProgress": "У вас есть текущий вызов. Пожалуйста, сначала завершите разговор.",
"webrtc.mediaError": "Не удается получить доступ к камере или микрофону.",
"webrtc.mute_audio": "Выключить микрофон",
"webrtc.noAnswer": "{username} не отвечает на вызов.",
diff --git a/webapp/i18n/tr.json b/webapp/i18n/tr.json
index 82101c5e3..536688696 100644
--- a/webapp/i18n/tr.json
+++ b/webapp/i18n/tr.json
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "Mattermost uygulamalarının indirilebileceği bir bağlantı ekler. Bir bağlantı belirtildiğinde, kullanıcıları indirme sayfasına yönlendiren ana menüye \"Mattermost Uygulamalarını İndir\" seçeneği eklenir. Ana menüde bu seçeneğin görüntülenmemesi için bu alanı boş bırakın.",
"admin.customization.appDownloadLinkTitle": "Mattermost Uygulama İndirme Sayfası Bağlantısı:",
"admin.customization.customBrand": "Özel Marka",
- "admin.customization.customEmoji": "Özel Emoji",
+ "admin.customization.emoji": "Emoji",
"admin.customization.enableCustomEmojiDesc": "Kullanıcıların iletilerde özel emojiler kullanabilmesini sağlar. Bu seçenek etkinleştirildiğinde, bir takıma geçip kanal yan çubuğunun üzerindeki üç noktaya tıklayıp \"Özel Emoji\" seçilerek özel emoji ayarlarına erişilebilir.",
"admin.customization.enableCustomEmojiTitle": "Özel Emoji Kullanılsın:",
+ "admin.customization.enableEmojiPickerDesc": "Emoji seçici kullanıcıların iletilerde ifade emojileri kullanabilmesini sağlar. Emoji seçici çok sayıda özel emoji kullanılacak şekilde etkinleştirilirse başarım düşebilir.",
+ "admin.customization.enableEmojiPickerTitle": "Emoji Seçici Kullanılsın:",
"admin.customization.enableLinkPreviewsDesc": "Kullanıcılara web sitesi içeriği önizlemesi ile varsa aşağıdaki iletinin görüntülenmesini sağlar. Bu seçenek etkinleştirildiğinde Hesap Ayarları > Gelişmiş > Yeni uygulama önizlemesi bölümünden web sitesi önizlemeleri etkinleştirilebilir.",
"admin.customization.enableLinkPreviewsTitle": "Bağlantı Önizlemeleri Kullanılsın:",
"admin.customization.iosAppDownloadLinkDesc": "iOS uygulamasının indirilebileceği bir bağlantı ekler. Siteye mobil tarayıcı üzerinden erişen kullanıcılara uygulamayı indirebilecekleri bir sayfa görüntülenir. Sayfanın görüntülenmemesi için bu alanı boş bırakın.",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "Örnek: \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "E-posta Çağrı Çeşnisi:",
"admin.email.mhpns": "iOS ve Android uygulamaları için üretim kalitesinde şifrelenmiş HPNS bağlantısı kullanılsın",
- "admin.email.mhpnsHelp": "<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS uygulamasını</a> iTunes üzerinden indirin. <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android uygulamasını</a> Google Play üzerinden indirin. <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a> hakkında ayrıntılı bilgi alın.",
+ "admin.email.mhpnsHelp": "<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS uygulamasını</a> iTunes üzerinden indirin. <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a>Mattermost Android uygulamasını</a> Google Play üzerinden indirin. <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a> hakkında ayrıntılı bilgi alın.",
"admin.email.mtpns": "iOS ve Android uygulamalarını iTunes ve Google Play üzerinden TPNS ile kullanın",
- "admin.email.mtpnsHelp": "<a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS uygulamasını</a> iTunes üzerinden indirin. <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android uygulamasını</a> Google Play üzerinden indirin. <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>TPNS</a> hakkında ayrıntılı bilgi alın.",
+ "admin.email.mtpnsHelp": "<a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS uygulamasını</a> iTunes üzerinden indirin. <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android uygulamasını</a> Google Play üzerinden indirin. <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a> hakkında ayrıntılı bilgi alın.",
"admin.email.nofificationOrganizationExample": "Örnek \"© ABC Ltd., 565 Atatürk Cad, Ankara, 06000, Türkiye\"",
"admin.email.notificationDisplayDescription": "Matermost bildirim e-postaları gönderilirken kullanılacak e-posta hesabı için görüntülenecek ad.",
"admin.email.notificationDisplayExample": "Örnek: \"Mattermost Bildirimi\", \"Sistem\", \"No-Reply\"",
@@ -601,13 +603,20 @@
"admin.rate.title": "Hız Sınırı Ayarları",
"admin.recycle.button": "Veritabanı Bağlantılarını Yenile",
"admin.recycle.loading": " Yenileniyor...",
- "admin.recycle.recycleDescription": "Birden çok veritabanı kullanan kurulumlarda Mattermost sunucusu yeniden başlatılmadan \"config.json\" dosyasında istenilen değişiklik yapılarak ve <a href=\"../general/configuration\"><b>Ayarlar > Ayarları Diskten Yeniden Yükle</b></a> seçeneği kullanılarak sunucu çalışırken bir ana veritabanından diğerine geçiş yapılabilir. Veritabanı bağlantılarının yeni ayarlara göre yeniden kurulması için yönetici tarafından <b>Veritabanı Bağlantılarını Yenile</b> seçeneği kullanılmalıdır.",
+ "admin.recycle.recycleDescription": "Birden çok veritabanı kullanan kurulumlarda, Mattermost sunucusu yeniden başlatılmadan \"config.json\" dosyasında istenilen değişiklik yapılarak ve {reloadConfiguration} seçeneği kullanılarak sunucu çalışırken bir ana veritabanından diğerine geçiş yapılabilir. Veritabanı bağlantılarının yeni ayarlara göre yeniden kurulması için yönetici tarafından {featureName} seçeneği kullanılmalıdır.",
+ "admin.recycle.recycleDescription.featureName": "Veritabanı Bağlantılarını Yenile",
+ "admin.recycle.recycleDescription.reloadConfiguration": "Yapılandırma > Yapılandırmayı Diskten Yeniden Yükle",
"admin.recycle.reloadFail": "Yenilenemedi: {error}",
"admin.regenerate": "Yeniden Oluştur",
"admin.reload.button": "Ayarları Diskten Yeniden Yükle",
"admin.reload.loading": " Yükleniyor...",
- "admin.reload.reloadDescription": "Birden çok veritabanı kullanan kurulumlarda Mattermost sunucusu yeniden başlatılmadan \"config.json\" dosyasında istenilen değişiklik yapılarak ve <a href=\"../general/configuration\"><b>Ayarlar > Ayarları Diskten Yeniden Yükle</b></a> seçeneği kullanılarak sunucu çalışırken bir ana veritabanından diğerine geçiş yapılabilir. Veritabanı bağlantılarının yeni ayarlara göre yeniden kurulması için yönetici tarafından <a href=\"../advanced/database\"><b>Veritabanı > Veritabanı Bağlantılarını Yenile</b></a> seçeneği kullanılmalıdır.",
+ "admin.reload.reloadDescription": "Birden çok veritabanı kullanan kurulumlarda Mattermost sunucusu yeniden başlatılmadan \"config.json\" dosyasında istenilen değişiklik yapılarak ve {featureName} seçeneği kullanılarak sunucu çalışırken bir ana veritabanından diğerine geçiş yapılabilir. Veritabanı bağlantılarının yeni ayarlara göre yeniden kurulması için yönetici tarafından {recycleDatabaseConnections} seçeneği kullanılmalıdır.",
+ "admin.reload.reloadDescription.featureName": "Yapılandırmayı Diskten Yeniden Yükle",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "Veritabanı > Veritabanı Bağlantılarını Yenile",
"admin.reload.reloadFail": "Yeniden yüklenemedi: {error}",
+ "admin.requestButton.loading": " Yükleniyor...",
+ "admin.requestButton.requestFailure": "Sınama Başarısız: {error}",
+ "admin.requestButton.requestSuccess": "Sınama Başarılı",
"admin.reset_password.close": "Kapat",
"admin.reset_password.newPassword": "Yeni Parola",
"admin.reset_password.select": "Seçin",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "Şuradan gelen kaynaklar arası istekler alınsın:",
"admin.service.developerDesc": "Bu seçenek etkinleştirildiğinde, JavaScript hataları kullanıcı arayüzünün üst bölümünde mor bir çubuk içinde görüntülenir. Üretim ortamında kullanılması önerilmez. ",
"admin.service.developerTitle": "Geliştirici Kipi Kullanılsın: ",
+ "admin.service.enableAPIv3": "API v3 uç noktaları kullanılabilsin:",
+ "admin.service.enableAPIv3Description": "Tüm REST API v3 uç noktalarını devre dışı bırakmak için bu seçeneği devre dışı bırakın. Bu durumda API v3 kullanan bütünleştirmeler çalışmaz ve API v4 aktarımı için işaretlenebilir. API v3 kullanımdan kaldırıldığından yakın gelecekte tamamen kaldırılacak. Ayrıntılı bilgi almak için <a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a> adresine bakın.",
"admin.service.enforceMfaDesc": "Bu seçenek etkinleştirildiğinde oturum açmak için <a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>Çok Aşamalı Kimlik Doğrulaması</a> kullanılır. Yani kullanıcılardan kayıt olurken ÇOKD ayarlarını yapmaları istenir. ÇOKD ayarlarını yapmadan oturum açmış kullanıcılar bu ayarları yapanada kadar ÇOKD ayarları sayfasına yönlendirilir.<br /><br />Sisteminizde AD/LDAP ve e-posta dışında oturum açma yöntemleri kullanan kullanıcılar varsa, Mattermost dışındaki kimlik doğrlama hizmeti sağlayıcıları için ÇOKD kullanımı dayatılmalıdır.",
"admin.service.enforceMfaTitle": "Çok Aşamalı Kimlik Doğrulama Dayatılsın:",
"admin.service.forward80To443": "80 kapısı 443 numaraya yönlendirilsin:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "Ayarlar",
"admin.sidebar.connections": "Bağlantılar",
"admin.sidebar.customBrand": "Özel Marka",
- "admin.sidebar.customEmoji": "Özel Emoji",
"admin.sidebar.customIntegrations": "Özel Bütünleştirmeler",
"admin.sidebar.customization": "Özelleştirme",
"admin.sidebar.database": "Veritabanı",
"admin.sidebar.developer": "Geliştirici",
"admin.sidebar.email": "E-posta",
+ "admin.sidebar.emoji": "Emoji",
"admin.sidebar.external": "Dış Hizmetler",
"admin.sidebar.files": "Dosyalar",
"admin.sidebar.general": "Genel",
@@ -1067,8 +1078,8 @@
"change_url.noUnderscore": "Adreste arka arkaya iki alt çizgi bulunamaz.",
"change_url.startWithLetter": "Adresin başında bir harf ya da rakam olmalı.",
"change_url.urlLabel": "Kanal Adresi",
- "channelHeader.addToFavorites": "Sık Kullanılanlara Ekle",
- "channelHeader.removeFromFavorites": "Sık Kullanılanlardan Kaldır",
+ "channelHeader.addToFavorites": "Beğendiklerime Ekle",
+ "channelHeader.removeFromFavorites": "Beğendiklerimden Kaldır",
"channel_flow.alreadyExist": "Bu adresi kullanan bir kanal zaten var",
"channel_flow.changeUrlDescription": "Adreslerde kullanılamayan bazı karakterler silinebilir.",
"channel_flow.changeUrlTitle": "Kanal Adresini Değiştir",
@@ -1076,16 +1087,19 @@
"channel_flow.handleTooShort": "Kanal adresi içinde 2 ya da daha fazla küçük alfasayısal karakter bulunmalıdır",
"channel_flow.invalidName": "Kanal Adresi Geçersiz",
"channel_flow.set_url_title": "Kanal Adresini Ayarla",
+ "channel_header.addChannelHeader": "Bir kanal açıklaması yazın",
"channel_header.addMembers": "Üye Ekle",
- "channel_header.addToFavorites": "Sık Kullanılanlara Ekle",
+ "channel_header.addToFavorites": "Beğendiklerime Ekle",
"channel_header.channelHeader": "Kanal Başlığını Düzenle",
+ "channel_header.channelMembers": "Üyeler",
"channel_header.delete": "Kanalı Sil",
"channel_header.flagged": "İşaretlenmiş İletiler",
"channel_header.leave": "Kanaldan Ayrıl",
"channel_header.manageMembers": "Üye Yönetimi",
"channel_header.notificationPreferences": "Bildirim Ayarları",
+ "channel_header.pinnedPosts": "Sabitlenmiş İletiler",
"channel_header.recentMentions": "Son Anmalar",
- "channel_header.removeFromFavorites": "Sık Kullanılanlardan Kaldır",
+ "channel_header.removeFromFavorites": "Beğendiklerimden Kaldır",
"channel_header.rename": "Kanalı Yeniden Adlandır",
"channel_header.setHeader": "Kanal Başlığını Düzenle",
"channel_header.setPurpose": "Kanal Amacını Düzenle",
@@ -1211,7 +1225,7 @@
"create_post.error_message": "İletiniz çok uzun. Karakter sayısı: {length}/{limit}",
"create_post.post": "Gönder",
"create_post.shortcutsNotSupported": "Kullandığınız aygıt kısayol tuşlarını desteklemiyor.",
- "create_post.tutorialTip": "<h4>İletiler Gönderiliyor</h4><p>İletinizi buraya yazın ve göndermek için <strong>ENTER</strong> tuşuna basın.</p><p>Bir görsel ya da dosya yüklemek için <strong>Dosya Ekle</strong> düğmesine tıklayın.</p>",
+ "create_post.tutorialTip": "<h4>İleti Göndermek</h4><p>İletinizi buraya yazın ve göndermek için <strong>ENTER</strong> tuşuna basın.</p><p>Bir görsel ya da dosya yüklemek için <strong>Dosya Ekle</strong> düğmesine tıklayın.</p>",
"create_post.write": "Bir ileti yazın...",
"create_team.agreement": "Hesap açarak ve {siteName} kullanarak <a href={TermsOfServiceLink}>Hüküm ve Koşullar</a>ile <a href={PrivacyPolicyLink}>Gizlilik İlkesini</a>kabul etmiş olursunuz. Kabul etmiyorsanız {siteName} kullanamazsınız.",
"create_team.display_name.charLength": "Ad {min} ile {max} karakter arasında olmalıdır. Daha sonra daha uzun bir takım açıklaması ekleyebilirsiniz.",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "Bu işlem bölü komutunu kalıcı olarak siler ve kullanıldığı tüm bütünleştirmeleri bozar. Silmek istediğinize emin misiniz?",
"installed_commands.empty": "Herhangi bir komut bulunamadı",
"installed_commands.header": "Bölü Komutları",
- "installed_commands.help": "Dış bütünleştirmeler ile kullanılacak bölü komutları oluşturun. Ayrıntılı bilgi almak için {link} bölümüne bakın.",
- "installed_commands.helpLink": "belgeler",
+ "installed_commands.help": "Mattermost ile dış araçları bağlamak için bölü komutlarını kullanın. {buildYourOwn} ya da kendiliğinden sunulan üçüncü taraf uygulama ve bütünleştirmeleri bulmak için {appDirectory} bölümüne bakın.",
+ "installed_commands.help.appDirectory": "Uygulama Dizini",
+ "installed_commands.help.buildYourOwn": "Kendiniz oluşturun",
"installed_commands.search": "Bölü Komutu Arama",
"installed_commands.unnamed_command": "Adsız Bölü Komutu",
"installed_incoming_webhooks.add": "Gelen Web Bağlantısı Ekle",
"installed_incoming_webhooks.delete.confirm": "Bu işlem gelen web bağlantısını kalıcı olarak siler ve kullanıldığı tüm bütünleştirmeleri bozar. Silmek istediğinize emin misiniz?",
"installed_incoming_webhooks.empty": "Herhangi bir gelen web bağlantısı bulunamadı",
"installed_incoming_webhooks.header": "Gelen Web Bağlantıları",
- "installed_incoming_webhooks.help": "Dış bütünleştirmeler ile kullanılacak gelen bağlantılar oluşturun. Ayrıntılı bilgi almak için {link} bölümüne bakın.",
- "installed_incoming_webhooks.helpLink": "belgeler",
+ "installed_incoming_webhooks.help": "Mattermost ile dış araçları bağlamak için gelen web bağlantılarını kullanın. {buildYourOwn} ya da kendiliğinden sunulan üçüncü taraf uygulama ve bütünleştirmeleri bulmak için {appDirectory} bölümüne bakın.",
+ "installed_incoming_webhooks.help.appDirectory": "Uygulama Dizini",
+ "installed_incoming_webhooks.help.buildYourOwn": "Kendiniz oluşturun",
"installed_incoming_webhooks.search": "Gelen Web Bağlantısı Arama",
"installed_incoming_webhooks.unknown_channel": "Özel Bir Web Bağlantısı",
"installed_integrations.callback_urls": "Geri Çağırma Adresleri: {urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "Açıklama",
"installed_oauth_apps.empty": "Herhangi bir OAuth 2.0 uygulaması bulunamadı",
"installed_oauth_apps.header": "OAuth 2.0 Uygulamaları",
- "installed_oauth_apps.help": "Bot ve üçüncü taraf uygulamalarını Mattermost ile bütünleştirmek için OAuth 2.0 uygulamalarını oluşturur. Ayrıntılı bilgi almak için {link} bölümüne bakın.",
- "installed_oauth_apps.helpLink": "belgeler",
+ "installed_oauth_apps.help": "Mattermost ile bot ve üçüncü taraf uygulamaları güvenli olarak bütünleştirmek için {oauthApplications} kullanın. Kullanılabilecek kendiliğinden sunulan uygulamaları bulmak için {appDirectory} bölümüne bakın.",
+ "installed_oauth_apps.help.appDirectory": "Uygulama Dizini",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 Uygulamaları",
"installed_oauth_apps.homepage": "Ana Sayfa",
"installed_oauth_apps.iconUrl": "Simge Adresi",
"installed_oauth_apps.is_trusted": "Güvenilirlik <strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "Bu işlem giden web bağlantısını kalıcı olarak siler ve kullanıldığı tüm bütünleştirmeleri bozar. Silmek istediğinize emin misiniz?",
"installed_outgoing_webhooks.empty": "Herhangi bir giden web bağlantısı bulunamadı",
"installed_outgoing_webhooks.header": "Giden Web Bağlantıları",
- "installed_outgoing_webhooks.help": "Dış bütünleştirmeler ile kullanılacak giden bağlantılar oluşturun. Ayrıntılı bilgi almak için {link} bölümüne bakın.",
- "installed_outgoing_webhooks.helpLink": "belgeler",
+ "installed_outgoing_webhooks.help": "Mattermost ile dış araçları bağlamak için giden web bağlantılarını kullanın. {buildYourOwn} ya da kendiliğinden sunulan üçüncü taraf uygulama ve bütünleştirmeleri bulmak için {appDirectory} bölümüne bakın.",
+ "installed_outgoing_webhooks.help.appDirectory": "Uygulama Dizini",
+ "installed_outgoing_webhooks.help.buildYourOwn": "Kendiniz oluşturun",
"installed_outgoing_webhooks.search": "Giden Web Bağlantılarını Arama",
"installed_outgoing_webhooks.unknown_channel": "Özel Bir Web Bağlantısı",
"integrations.add": "Ekle",
@@ -1543,6 +1561,8 @@
"integrations.done": "Bitti",
"integrations.edit": "Düzenle",
"integrations.header": "Bütünleştirmeler",
+ "integrations.help": "Kendiliğinden sunulan üçüncü taraf uygulama ve bütünleştirmeleri bulmak için {appDirectory} bölümüne bakın.",
+ "integrations.help.appDirectory": "Uygulama Dizini",
"integrations.incomingWebhook.description": "Gelen web bağlantıları ileti göndermek için dış bütünleştirmelerin kullanılmasını sağlar",
"integrations.incomingWebhook.title": "Gelen Web Bağlantısı",
"integrations.oauthApps.description": "OAuth 2.0, dış uygulamaların Mattermost API uygulaması üzerinden kimliği doğrulanmış istekler göndermesini sağlar.",
@@ -1737,7 +1757,7 @@
"mobile.routes.channelInfo": "Bilgiler",
"mobile.routes.channelInfo.createdBy": "{creator} tarafından şu zamanda oluşturuldu ",
"mobile.routes.channelInfo.delete_channel": "Kanalı Sil",
- "mobile.routes.channelInfo.favorite": "Sık Kullanılanlara Ekle",
+ "mobile.routes.channelInfo.favorite": "Beğendiklerime Ekle",
"mobile.routes.channel_members.action": "Üyeleri Çıkar",
"mobile.routes.channel_members.action_message": "Kanaldan çıkarılacak en az bir üye seçmelisiniz.",
"mobile.routes.channel_members.action_message_confirm": "Seçilmiş üyeleri kanaldan çıkarmak istediğinize emin misiniz?",
@@ -1764,6 +1784,9 @@
"mobile.server_upgrade.title": "Sunucunun güncellenmesi gerekli",
"mobile.server_url.invalid_format": "Adres http:// yada https:// ile başlamalıdır",
"mobile.session_expired": "Oturumun Süresi Dolmuş: Lütfen bildirimleri almaya devam etmek için oturum açın.",
+ "mobile.settings.clear": "Çevrimdışı Depoyu Temizle",
+ "mobile.settings.clear_button": "Temizle",
+ "mobile.settings.clear_message": "\nBu işlem çevrimdışı verileri temizleyerek uygulamayı yeniden başlatır. Uygulama yeniden başlatıldığında oturumunuz otomatik olarak açılacak.\n",
"mobile.settings.team_selection": "Takım Seçimi",
"modal.manaul_status.ask": "Bir daha sorma",
"modal.manaul_status.button": "Evet, durumumu \"Çevrimiçi\" yap",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "Yazmaya başlayın ve kanal/takım değiştirmek için TAB, gezinmek için ↑↓, seçmek için ↵, iptal etmek için ESC tuşlarını kullanın.",
+ "quick_switch_modal.help_mobile": "Kanalı bulmak için adını yazmaya başlayın.",
"quick_switch_modal.help_no_team": "Bir kanal bulmayı deneyin Gezinmek için ↑↓, seçmek için ↵, iptal etmek için ESC tuşlarını kullanın.",
"quick_switch_modal.teams": "Takımlar",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,18 +1986,18 @@
"setting_upload.import": "İçe Aktar",
"setting_upload.noFile": "Herhangi bir dosya seçilmemiş.",
"setting_upload.select": "Dosya seçin",
- "sidebar.channels": "Kanallar",
+ "sidebar.channels": "HERKESE AÇIK KANALLAR",
"sidebar.createChannel": "Yeni herkese açık kanal ekle",
"sidebar.createGroup": "Yeni özel kanal ekle",
- "sidebar.direct": "Doğrudan İletiler",
- "sidebar.favorite": "Sık Kullanılanlar",
+ "sidebar.direct": "DOĞRUDAN İLETİLER",
+ "sidebar.favorite": "BEĞENDİĞİM KANALLAR",
"sidebar.more": "Diğer",
"sidebar.moreElips": "Diğer...",
"sidebar.otherMembers": "Bu takımın dışında",
- "sidebar.pg": "Özel Kanallar",
+ "sidebar.pg": "ÖZEL KANALLAR",
"sidebar.removeList": "Listeden çıkar",
"sidebar.tutorialScreen1": "<h4>Kanallar</h4><p><strong>Kanallar</strong> farklı konulardaki konuşmaları düzenlemek için kullanılır. Kanallar takımınızdaki herkese açıktır. Özel iletişim kurmak gerektiğinde bir kişi için <strong>Doğrudan İletileri</strong>, bir kaç kişi için <strong>Özel Kanalları</strong> kullanabilirsiniz.</p>",
- "sidebar.tutorialScreen2": "<h4>\"{townsquare}\" ve \"{offtopic}\" kanalları</h4><p>Başlangıçta iki herkese açık kanal bulunur:</p><p><strong>{townsquare}</strong> tüm takımla iletişim kurmak için kullanılır. Takımınızdaki herkes bu kanalın bir üyesidir.</p><p><strong>{offtopic}</strong> iş dışı kanallar dışında eğlence için kullanılır. Siz ve takımınız başka kanallar eklemeye karar verebilirsiniz.</p>",
+ "sidebar.tutorialScreen2": "<h4>\"{townsquare}\" ve \"{offtopic}\" kanalları</h4><p>Başlangıçta herkese açık iki kanal bulunur:</p><p><strong>{townsquare}</strong> tüm takımla iletişim kurmak için kullanılır. Takımınızdaki herkes bu kanalın bir üyesidir.</p><p><strong>{offtopic}</strong> iş dışı kanallar dışında eğlence için kullanılır. Siz ve takımınız başka kanallar eklemeye karar verebilirsiniz.</p>",
"sidebar.tutorialScreen3": "<h4>Kanal Eklemek ve Katılmak</h4><p>Yeni bir kanal eklemek ve varolan bir kanala katılmak için <strong>\"Diğer...\"</strong> üzerine tıklayın.</p><p>Ayrıca herkese açık ya da özel bir kanal başlığının yanındaki <strong>\"+\" simgesine</strong> tıklayarak da yeni bir kanal ekleyebilirsiniz.</p>",
"sidebar.unreadAbove": "Yukarıdaki okunmamış iletiler",
"sidebar.unreadBelow": "Aşağıdaki okunmamış iletiler",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "Yüklemek istediğiniz dosyayı sürükleyip buraya bırakın.",
"user.settings.advance.embed_preview": "Bir iletideki ilk web bağlantısı için, olabiliyorsa bir web sitesi içeriğinin önizlemesini iletinin altında görüntülensin",
"user.settings.advance.embed_toggle": "Tüm gömülü önizleme görüntülemeyi değiştir",
- "user.settings.advance.emojipicker": "Tepkiler ve ileti yazma kutusunda emoji seçici kullanılsın",
"user.settings.advance.enabledFeatures": "{count, number} {count, plural, bir {Feature} diğer {Features}} etkinleştirildi",
"user.settings.advance.formattingDesc": "Bu seçenek etkinleştirildiğinde, iletiler bağlantılar eklemek, emoji görüntülemek, metni biçimlendirmek ve satır sonları eklemek için biçimlendirilir. Varsayılan olarak bu seçenek etkinleştirilmiştir. Bu değer değiştirildikten sonra bu sayfanın yenilenmesi gerekir.",
"user.settings.advance.formattingTitle": "İletiler Biçimlendirilebilsin",
diff --git a/webapp/i18n/zh-CN.json b/webapp/i18n/zh-CN.json
index 506d92338..796cc7b2a 100644
--- a/webapp/i18n/zh-CN.json
+++ b/webapp/i18n/zh-CN.json
@@ -157,7 +157,7 @@
"admin.cluster.interNodeUrlsEx": "例如 \"http://10.10.10.30, http://10.10.10.31\"",
"admin.cluster.interNodeUrlsTitle": "互连节点网址:",
"admin.cluster.loadedFrom": "此配置文件是从节点 ID {clusterId} 加载的。如果您在通过负载均衡服务器访问系统控制时遇到问题,请参考我们的<a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>文档</a>中的排错手册。",
- "admin.cluster.noteDescription": "修改此分类中的属性需要重启服务器才能生效。当高可用性模式开启时,系统控制台将设为只读且只能通过修改配置文件进行改动。",
+ "admin.cluster.noteDescription": "修改此分类中的属性需要重启服务器才能生效。当高可用性模式开启时,系统控制台将设为只读且只能通过修改配置文件进行改动除非禁止配置文件里的 ReadOnlyConfig。",
"admin.cluster.should_not_change": "警告:这些设定可能不会与其他机群服务器同步。高可用性互连节点通讯只会在您确保所有服务器中的config.json一致并重启Mattermost后开启。请见<a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>文档</a>了解如何从机群里添加或删除服务器。如果您在通过负载均衡服务器访问系统控制且遇到问题,请见我们的<a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>文档</a>中的排错手册。",
"admin.cluster.status_table.config_hash": "配置文件MD5",
"admin.cluster.status_table.hostname": "主机名",
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "添加Mattermost应用下载链接。当链接存在时,主菜单将有“下载Mattermost应用”选项让用户找到下载页面。此栏留空将隐藏此选项。",
"admin.customization.appDownloadLinkTitle": "Mattermost 应用下载页面网址:",
"admin.customization.customBrand": "自定义品牌",
- "admin.customization.customEmoji": "自定义表情",
+ "admin.customization.emoji": "表情符",
"admin.customization.enableCustomEmojiDesc": "允许用户创建在消息中使用的自定义表情符。启用后,自定义的表情符的设置方式为:切换到一个团队,在侧边栏单击频道上面的三个点,然后选择“自定义表情符”。",
"admin.customization.enableCustomEmojiTitle": "启用自定义表情:",
+ "admin.customization.enableEmojiPickerDesc": "表情符选择器允许用户选择表情符做为反应或用在消息中。在拥有大量自定义表情符下开启表情符选择器将会降低性能。",
+ "admin.customization.enableEmojiPickerTitle": "开启表情符选择器:",
"admin.customization.enableLinkPreviewsDesc": "允许用户在消息下方显示网站预览。当设为是时,网站预览可在帐号设定 > 高级 > 预览先行发布功能开启。",
"admin.customization.enableLinkPreviewsTitle": "启用链接预览:",
"admin.customization.iosAppDownloadLinkDesc": "添加iOS应用下载链接。用移动设备访问的用户将看到应用下载提示页面。此栏留空将不显示。",
@@ -236,7 +238,7 @@
"admin.email.agreeHPNS": " 我理解并同意 Mattermost 推送提醒服务<a href=\"https://about.mattermost.com/hpns-terms/\" target=\"_blank\">服务条款</a>和<a href=\"https://about.mattermost.com/hpns-privacy/\" target='_blank'>隐私策略</a>。",
"admin.email.allowEmailSignInDescription": "当设置为是时,Mattermost允许用户使用电子邮件地址和密码登入。",
"admin.email.allowEmailSignInTitle": "开启使用邮件地址登入:",
- "admin.email.allowSignupDescription": "当设置为是时,Mattermost允许团队创建和使用电子邮件地址和密码注册帐户。此值唯一设为否的情况是你想使用 OAuth 或者 AD/LDAP 这种单点登录服务注册。",
+ "admin.email.allowSignupDescription": "当设置为是时,Mattermost 允许团队创建和使用电子邮件地址与密码注册帐户。此值唯一设为否的情况是你想使用 OAuth 或者 AD/LDAP 这种单点登录服务注册。",
"admin.email.allowSignupTitle": "开启使用邮件地址创建帐号:",
"admin.email.allowUsernameSignInDescription": "当设置为是时,Mattermost允许用户使用用户名和密码登录。此设置通常只用于当电子邮件验证被禁用时。",
"admin.email.allowUsernameSignInTitle": "开启使用用户名登入:",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "例如 \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "电子邮件邀请盐值:",
"admin.email.mhpns": "使用加密的,产品及质量的HPNS连接到iOS和Android应用程序",
- "admin.email.mhpnsHelp": "从 iTunes下载 <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS app</a>。从 Google Play 下载 <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android app</a>。 了解更多 <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>。",
+ "admin.email.mhpnsHelp": "从 iTunes下载 <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a>。从 Google Play 下载 <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a>。 了解更多 <a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>。",
"admin.email.mtpns": "在iTunes和TPNS的谷歌Play使用iOS和Android应用程序",
- "admin.email.mtpnsHelp": "从 iTunes下载 <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS app</a>。从 Google Play 下载 <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android app</a>。 了解更多 <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>。",
+ "admin.email.mtpnsHelp": "从 iTunes下载 <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS app</a>。从 Google Play 下载 <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android app</a>。 了解更多 <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>。",
"admin.email.nofificationOrganizationExample": "例如:\"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "从 Mattermost 发送的电子邮件通知时显示的电子邮件帐号名。",
"admin.email.notificationDisplayExample": "例如:\"Mattermost通知\", \"系统\", \"无答复\"",
@@ -442,7 +444,7 @@
"admin.ldap.firstnameAttrDesc": "(可选) AD/LDAP服务器中的属性用来填充 Mattermost 用户的名字。当设置后,用户将没法修改他们的名字,因为它时和 LDAP 服务器同步的。当留空时,用户可以在帐号设置里修改名字。",
"admin.ldap.firstnameAttrEx": "例如 \"givenName\"",
"admin.ldap.firstnameAttrTitle": "姓属性",
- "admin.ldap.idAttrDesc": "此属性在 AD/LDAP 服务器作为 Mattermost 中一个被用于做唯一标识符值。它将不可被修改,比如用户名或 uid。如果一个用户的 ID 属性被修改,它将创建一个新的 Mattermost 账户并且与之前的用户无关。它被用于在 Mattermost 登录时“AD/LDAP 用户名”字段在登录页面。一般该属性字段与上面的“用户名属性”字段相同。如果你的团队通常使用 域名\\\\用户名 登录到其他 AD/LDAP 服务,你可以选择在本栏使用 域名\\\\用户名 以跟其他站点保持一致。",
+ "admin.ldap.idAttrDesc": "此属性在 AD/LDAP 服务器作为 Mattermost 中一个被用于做唯一标识符值。它应该是 AD/LDAP 上不可被修改的属性,比如用户名或 uid。如果一个用户的 ID 属性被修改,它将创建一个新的 Mattermost 账户并且与之前的用户无关联。它被用于在 Mattermost 登录时“AD/LDAP 用户名”字段在登录页面。一般该属性字段与上面的“用户名属性”字段相同。如果你的团队通常使用 域名\\\\用户名 登录到其他 AD/LDAP 服务,你可以选择在本栏使用 域名\\\\用户名 以跟其他站点保持一致。",
"admin.ldap.idAttrEx": "例如 \"sAMAccountName\"",
"admin.ldap.idAttrTitle": "ID属性:",
"admin.ldap.lastnameAttrDesc": "(可选) AD/LDAP服务器中的属性用来填充 Mattermost 用户的姓氏。当设置后,用户将没法修改他们的姓氏,因为它时和 LDAP 服务器同步的。当留空时,用户可以在帐号设置里修改姓氏。",
@@ -474,7 +476,7 @@
"admin.ldap.skipCertificateVerification": "跳过证书验证:",
"admin.ldap.skipCertificateVerificationDesc": "跳过TLS或STARTTLS连接的证书验证。不建议用在需要TLS的正式环境下。仅限测试。",
"admin.ldap.syncFailure": "同步失败:{error}",
- "admin.ldap.syncIntervalHelpText": "AD/LDAP 的同步机制会将 Mattermost 中的用户信息同步以反映在 AD/LDAP 服务器上进行的更新。例如,当 AD/LDAP 服务器上一个用户姓名更改时,这一改变将在 Mattermost 同步执行。在 AD/LDAP 服务器中删除或禁用账户时将他们的 Mattermost 账号设置为\"停用\"并且已撤走会话。Mattermost 会按照一定的时间频率定期进行同步。例如, 如果设置为60,那么会在每60分钟进行同步。",
+ "admin.ldap.syncIntervalHelpText": "AD/LDAP 的同步机制会将 Mattermost 中的用户信息同步以反映在 AD/LDAP 服务器上进行的更新。例如,当 AD/LDAP 服务器上一个用户姓名更改时,这一改变将在 Mattermost 同步执行。在 AD/LDAP 服务器中删除或禁用账户时将他们的 Mattermost 账号设置为\"停用\"并且已撤走会话。Mattermost 会按照一定的时间频率定期进行同步。例如,如果设置为60,那么会在每 60 分钟进行同步。",
"admin.ldap.syncIntervalTitle": "同步间隔(分钟):",
"admin.ldap.syncNowHelpText": "立即启动一个 AD/LDAP 同步。",
"admin.ldap.sync_button": "开始 AD/LDAP 同步",
@@ -601,13 +603,20 @@
"admin.rate.title": "速度限制设置",
"admin.recycle.button": "回收数据库连接",
"admin.recycle.loading": "回收中...",
- "admin.recycle.recycleDescription": "在部署使用多数据库时可以在服务器运行情况下修改\"config.json\"且使用<a href=\"../general/configuration\"><b>设定 > 重新从磁盘载入配置 </b></a>来切换Mattermost主数据库至另外个。之后管理员需使用<b>回收数据库连接</b>功能来根据新设定回收数据库连接。",
+ "admin.recycle.recycleDescription": "在部署使用多数据库时可以在服务器运行情况下修改 \"config.json\"且使用 {reloadConfiguration} 功能以不重启服务器的情况下加载新的设定。之后管理员需使用 {featureName} 功能来根据新设定回收数据库连接。",
+ "admin.recycle.recycleDescription.featureName": "回收数据库连接",
+ "admin.recycle.recycleDescription.reloadConfiguration": "配置 > 从磁盘重加载配置",
"admin.recycle.reloadFail": "回收失败: {error}",
"admin.regenerate": "重新生成",
"admin.reload.button": "重新从磁盘载入配置",
"admin.reload.loading": "加载中...",
- "admin.reload.reloadDescription": "在部署使用多数据库时可以在服务器运行情况下修改\"config.json\"且使用 <b>重新从磁盘载入配置</b> 来切换Mattermost主数据库至另外个。之后管理员需使用<a href=\"../advanced/database\"><b>数据库 > 回收数据库链接</b></a> 功能来根据新设定回收数据库连接。",
+ "admin.reload.reloadDescription": "在部署使用多数据库时可以在服务器运行情况下修改 \"config.json\"且使用 {featureName} 功能以不重启服务器的情况下加载新的设定。之后管理员需使用 {recycleDatabaseConnections} 功能来根据新设定回收数据库连接。",
+ "admin.reload.reloadDescription.featureName": "重新从磁盘载入配置",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "数据库 > 回收数据库连接",
"admin.reload.reloadFail": "重载失败:{error}",
+ "admin.requestButton.loading": " 加载中...",
+ "admin.requestButton.requestFailure": "测试失败:{error}",
+ "admin.requestButton.requestSuccess": "测试成功",
"admin.reset_password.close": "关闭",
"admin.reset_password.newPassword": "新密码",
"admin.reset_password.select": "选择",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "允许来自以下跨源请求网址:",
"admin.service.developerDesc": "开启时,Javascript 错误将显示在页面顶端紫色条里。不推荐在正式环境使用。",
"admin.service.developerTitle": "开启开发者模式:",
+ "admin.service.enableAPIv3": "允许使用 API v3 接口:",
+ "admin.service.enableAPIv3Description": "设否以禁用所有 REST API 版本 3 的接口。依赖 API v3 接口的整合将失败并可以升级到 API v4。API v3 已淘汰并将在近期移除。详情请见<a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a>。",
"admin.service.enforceMfaDesc": "当设为是时,必须需要<a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>多重验证</a>登入。新用户将在注册时候设置多重验证。已登入并未设置多重验证的用户将重指向多重验证设置页面直到配置完成。<br/><br/>如果您的系统有 AD/LDAP 或电子邮件登入方式以外的用户,多重验证必须在 Mattermost 外的验证提供商设置。",
"admin.service.enforceMfaTitle": "强制多重身份验证:",
"admin.service.forward80To443": "映射端口 80 到 443:",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "配置",
"admin.sidebar.connections": "连接",
"admin.sidebar.customBrand": "自定义品牌",
- "admin.sidebar.customEmoji": "自定义表情符",
"admin.sidebar.customIntegrations": "自定义集成",
"admin.sidebar.customization": "自定义",
"admin.sidebar.database": "数据库",
"admin.sidebar.developer": "开发人员",
"admin.sidebar.email": "电子邮件",
+ "admin.sidebar.emoji": "表情符",
"admin.sidebar.external": "外部服务",
"admin.sidebar.files": "文件",
"admin.sidebar.general": "常规",
@@ -813,7 +824,7 @@
"admin.sql.maxOpenTitle": "最大的开放连接: ",
"admin.sql.noteDescription": "修改这段属性需要重启服务器才能生效。",
"admin.sql.noteTitle": "注释:",
- "admin.sql.queryTimeoutDescription": "连接数据库并发送查询后等待的结果秒数。您在 UI 或日志看到的查询超时导致的错误很可能跟不同查询类型有关。此设定不影响 PostgreSQL 数据库。",
+ "admin.sql.queryTimeoutDescription": "连接数据库并发送查询后等待的结果秒数。您在 UI 或日志看到的查询超时导致的错误很可能跟不同查询类型有关。",
"admin.sql.queryTimeoutExample": "例如:\"30\"",
"admin.sql.queryTimeoutTitle": "查询超时:",
"admin.sql.replicas": "数据源副本:",
@@ -872,16 +883,16 @@
"admin.team.restrictTitle": "只允许特定电子邮件域名创建帐号:",
"admin.team.restrict_direct_message_any": "在Mattermost服务器上的任何用户",
"admin.team.restrict_direct_message_team": "任何团队成员",
- "admin.team.showFullname": "Show first and last name (default)",
+ "admin.team.showFullname": "显示姓名 (默认)",
"admin.team.showNickname": "若存在昵称显示昵称,否则显示姓名",
- "admin.team.showUsername": "Show username",
+ "admin.team.showUsername": "显示用户名",
"admin.team.siteNameDescription": "登录画面和界面所显示的服务名称。",
"admin.team.siteNameExample": "例如 \"Mattermost\"",
"admin.team.siteNameTitle": "网站名称:",
"admin.team.teamCreationDescription": "当设为否时,只有系统管理能创建团队。",
"admin.team.teamCreationTitle": "开启创建团队:",
- "admin.team.teammateNameDisplay": "团队队友的名字显示",
- "admin.team.teammateNameDisplayDesc": "设置在信息和私信列表中如何显示其他用户的名字。",
+ "admin.team.teammateNameDisplay": "团队队友的名字显示:",
+ "admin.team.teammateNameDisplayDesc": "设置在消息和私信列表中如何显示其他用户的名字。",
"admin.team.upload": "上传",
"admin.team.uploadDesc": "添加一个自定义图片到登入界面以定制用户体验。推荐图片小于 2 MB。",
"admin.team.uploaded": "已上传!",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "频道网址必须为至少2个小写英文数字字符",
"channel_flow.invalidName": "无效的频道名称",
"channel_flow.set_url_title": "设置频道网址",
+ "channel_header.addChannelHeader": "添加频道描述",
"channel_header.addMembers": "添加成员",
"channel_header.addToFavorites": "添加到收藏",
"channel_header.channelHeader": "编辑频道标题",
+ "channel_header.channelMembers": "成员",
"channel_header.delete": "删除频道",
"channel_header.flagged": "已标记的信息",
"channel_header.leave": "离开频道",
"channel_header.manageMembers": "成员管理",
"channel_header.notificationPreferences": "消息通知设置",
+ "channel_header.pinnedPosts": "置顶消息",
"channel_header.recentMentions": "最近提及",
"channel_header.removeFromFavorites": "从收藏中移除",
"channel_header.rename": "重命名频道",
@@ -1107,8 +1121,8 @@
"channel_invite.close": "关闭",
"channel_loader.connection_error": "您的网络连接似乎出现一个问题。",
"channel_loader.posted": "已发布",
- "channel_loader.postedImage": "上传图片",
- "channel_loader.socketError": "Please check connection, Mattermost unreachable. If issue persists, ask administrator to <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">check WebSocket port</a>.",
+ "channel_loader.postedImage": " 上传了个图片",
+ "channel_loader.socketError": "请检查连接,无法连接 Mattermost。如果问题仍然持续,请让管理员<a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">检查 WebSocket 端口</a>。",
"channel_loader.someone": "有人",
"channel_loader.something": "新事物",
"channel_loader.unknown_error": "我们从服务器上接收到一个异常状态码。",
@@ -1248,7 +1262,7 @@
"delete_post.del": "删除",
"delete_post.post": "发布",
"delete_post.question": "您确认要删除{term}?",
- "delete_post.warning": "This post has {count, number} {count, plural, one {comment} other {comments}} on it.",
+ "delete_post.warning": "此消息有 {count, number} 条评论。",
"edit_channel_header.editHeader": "修改频道标题...",
"edit_channel_header.previewHeader": "编辑标题",
"edit_channel_header_modal.cancel": "取消",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "此操作降永久删除斜杠命令并让依赖的集成无法工作。您确定要删除它吗?",
"installed_commands.empty": "未找到命令",
"installed_commands.header": "斜杠命令",
- "installed_commands.help": "创建与外部系统集成的斜杠命令。详情请见 {link} 。",
- "installed_commands.helpLink": "文档",
+ "installed_commands.help": "使用斜杠命令以连接外部工具到 Mattermost。{buildYourOwn} 或访问 {appDirectory} 寻找自行假设的第三方应用或整合。",
+ "installed_commands.help.appDirectory": "应用目录",
+ "installed_commands.help.buildYourOwn": "创建您自己的",
"installed_commands.search": "搜索斜杠命令",
"installed_commands.unnamed_command": "未命名斜杠命令",
"installed_incoming_webhooks.add": "添加引入勾子",
"installed_incoming_webhooks.delete.confirm": "此操作降永久删除传入的 webhook 并让依赖的集成无法工作。您确定要删除它吗?",
"installed_incoming_webhooks.empty": "没有找到传入webhooks",
"installed_incoming_webhooks.header": "引入Webhooks",
- "installed_incoming_webhooks.help": "创建对内的网络钩子链接以便与内部系统集成。想了解更多请参考 {link}",
- "installed_incoming_webhooks.helpLink": "文档",
+ "installed_incoming_webhooks.help": "使用传入的 webhhoks 以连接外部工具到 Mattermost。{buildYourOwn} 或访问 {appDirectory} 寻找自行假设的第三方应用或整合。",
+ "installed_incoming_webhooks.help.appDirectory": "应用目录",
+ "installed_incoming_webhooks.help.buildYourOwn": "创建您自己的",
"installed_incoming_webhooks.search": "搜索传入Webhooks",
"installed_incoming_webhooks.unknown_channel": "私有Webhook",
"installed_integrations.callback_urls": "回调地址:{urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "描述",
"installed_oauth_apps.empty": "没有找到 OAuth 2.0 应用",
"installed_oauth_apps.header": "OAuth 2.0 应用",
- "installed_oauth_apps.help": "创建 OAuth 2.0 应用以安全得与 Mattermost 整合机器人和第三方应用。详情请见 {link}。",
- "installed_oauth_apps.helpLink": "文档",
+ "installed_oauth_apps.help": "创建 {oauthApplications} 以安全的整合机器人和第三方应用到 Mattermost。访问 {appDirectory} 寻找可自行假设的应用。",
+ "installed_oauth_apps.help.appDirectory": "应用目录",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 应用",
"installed_oauth_apps.homepage": "首頁",
"installed_oauth_apps.iconUrl": "图标网址",
"installed_oauth_apps.is_trusted": "是受信任的:<strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "此操作降永久删除传出的 webhook 并让依赖的集成无法工作。您确定要删除它吗?",
"installed_outgoing_webhooks.empty": "没找到传出webhooks",
"installed_outgoing_webhooks.header": "对外Webhooks",
- "installed_outgoing_webhooks.help": "创建对外的网络钩子链接以便与外部部系统集成。想了解更多请参考 {link}",
- "installed_outgoing_webhooks.helpLink": "文档",
+ "installed_outgoing_webhooks.help": "使用传出的 webbhooks 以连接外部工具到 Mattermost。{buildYourOwn} 或访问 {appDirectory} 寻找自行假设的第三方应用或整合。",
+ "installed_outgoing_webhooks.help.appDirectory": "应用目录",
+ "installed_outgoing_webhooks.help.buildYourOwn": "创建您自己的",
"installed_outgoing_webhooks.search": "搜索传入Webhooks",
"installed_outgoing_webhooks.unknown_channel": "私有Webhook",
"integrations.add": "添加",
@@ -1543,6 +1561,8 @@
"integrations.done": "完成",
"integrations.edit": "编辑",
"integrations.header": "集成",
+ "integrations.help": "访问 {appDirectory} 寻找自行假设的第三方应用或整合。",
+ "integrations.help.appDirectory": "应用目录",
"integrations.incomingWebhook.description": "传入的webhooks允许外部集成发送信息",
"integrations.incomingWebhook.title": "引入Webhook",
"integrations.oauthApps.description": "OAuth 2.0 允许外部引用向 Mattermost API 发出已授权的请求。",
@@ -1705,9 +1725,9 @@
"mobile.custom_list.no_results": "无结果",
"mobile.drawer.teamsTitle": "团队",
"mobile.edit_post.title": "编辑消息",
- "mobile.error_handler.button": "Relaunch",
- "mobile.error_handler.description": "\nClick relaunch to open the app again. After restart, you can report the problem from the settings menu.\n",
- "mobile.error_handler.title": "Unexpected error occurred",
+ "mobile.error_handler.button": "重加载",
+ "mobile.error_handler.description": "\n点击重启动应用。重启后,您可以在设定菜单汇报问题。\n",
+ "mobile.error_handler.title": "发生未知错误",
"mobile.file_upload.camera": "拍照或视频",
"mobile.file_upload.library": "照片库",
"mobile.file_upload.more": "更多",
@@ -1759,11 +1779,14 @@
"mobile.select_team.join_open": "您可以加入的开放团队",
"mobile.select_team.no_teams": "没有您可以加入的团队。",
"mobile.server_ping_failed": "无法连接服务器。请检查您的服务器网址和网络连接。",
- "mobile.server_upgrade.button": "OK",
- "mobile.server_upgrade.description": "\nA server upgrade is required to use the Mattermost app. Please ask your System Administrator for details.\n",
- "mobile.server_upgrade.title": "Server upgrade required",
+ "mobile.server_upgrade.button": "确定",
+ "mobile.server_upgrade.description": "\n服务器需要更新才能使用 Mattermost 应用。请询问系统管理员了解详情。\n",
+ "mobile.server_upgrade.title": "服务器需要更新",
"mobile.server_url.invalid_format": "每个 URL 必须以 http:// 或 https:// 开头",
"mobile.session_expired": "会话已超时:请登入再继续接收通知。",
+ "mobile.settings.clear": "清除离线储存",
+ "mobile.settings.clear_button": "清除",
+ "mobile.settings.clear_message": "\n这将清除所有离线数据并重启应用。您将会在应用重启后自动登入。\n",
"mobile.settings.team_selection": "团队选择",
"modal.manaul_status.ask": "不要再次询问",
"modal.manaul_status.button": "是,设置我的状态为 \"在线\"",
@@ -1788,7 +1811,7 @@
"msg_typing.someone": "有人",
"multiselect.add": "添加",
"multiselect.go": "转到",
- "multiselect.numPeopleRemaining": "Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",
+ "multiselect.numPeopleRemaining": "使用↑↓浏览,↵选择。您可以添加 {num, number} 位用户。",
"multiselect.numRemaining": "您还可以添加 {num, number} 位",
"multiselect.placeholder": "搜索并添加成员",
"navbar.addMembers": "添加成员",
@@ -1878,6 +1901,7 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "开始输入后用 TAB 切换频道/团队,↑↓浏览,↵选择,以及 ESC 退出。",
+ "quick_switch_modal.help_mobile": "输入以搜索频道。",
"quick_switch_modal.help_no_team": "开始输入以搜索频道。使用 ↑↓ 浏览,↵ 选择,ESC 退出。",
"quick_switch_modal.teams": "团队",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
@@ -1962,11 +1986,11 @@
"setting_upload.import": "导入",
"setting_upload.noFile": "未选择文件。",
"setting_upload.select": "选择文件",
- "sidebar.channels": "频道",
+ "sidebar.channels": "公开频道",
"sidebar.createChannel": "创建公共频道",
"sidebar.createGroup": "创建私有频道",
"sidebar.direct": "私信",
- "sidebar.favorite": "收藏",
+ "sidebar.favorite": "我的最爱频道",
"sidebar.more": "更多",
"sidebar.moreElips": "更多...",
"sidebar.otherMembers": "此团队之外",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "拖动文件上传。",
"user.settings.advance.embed_preview": "如果邮件中的第一个网络链接可用,在邮件下方会显示网站内容的预览",
"user.settings.advance.embed_toggle": "显示切换所有嵌入预览",
- "user.settings.advance.emojipicker": "开启反应和消息输入栏中表情选择器",
"user.settings.advance.enabledFeatures": "已启用 {count, number} 项功能",
"user.settings.advance.formattingDesc": "开启时,文章会显示链接,表情符,格式,以及添加断行。默认下,此选项时开启的。修改此设定需要刷新页面。",
"user.settings.advance.formattingTitle": "启用帖文格式",
diff --git a/webapp/i18n/zh-TW.json b/webapp/i18n/zh-TW.json
index 8dcf58658..cb2d07a8e 100644
--- a/webapp/i18n/zh-TW.json
+++ b/webapp/i18n/zh-TW.json
@@ -157,14 +157,14 @@
"admin.cluster.interNodeUrlsEx": "如:\"http://10.10.10.30, http://10.10.10.31\"",
"admin.cluster.interNodeUrlsTitle": "節點間網址:",
"admin.cluster.loadedFrom": "此設定檔是從節點 ID {clusterId} 讀取。如果您是經由負載平衡器存取系統控制台且遇到了問題,請參閱<a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>文件</a>中的疑難排解指引。",
- "admin.cluster.noteDescription": "修改此節的屬性需要重啟伺服器以生效。啟用高可用性模式時,系統控制台會被設成唯讀,只能經由設定檔來修改。",
+ "admin.cluster.noteDescription": "修改此節的屬性需要重啟伺服器以生效。啟用高可用性模式時,在設定檔沒有停用 ReadOnlyConfig 時,系統控制台會被設成唯讀,只能經由設定檔來修改。",
"admin.cluster.should_not_change": "警告:這些設定可能不會跟此叢集內其他的伺服器同步。高可用性節點間通訊在所有伺服器的 config.json 被修改成一樣並重新啟動 Mattermost 之前不會開始。如何從叢集中增加或移除伺服器請看<a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>文件</a>。如果您是經由負載平衡器存取系統控制台且遇到了問題,請參閱<a href=\"http://docs.mattermost.com/deployment/cluster.html\" target='_blank'>文件</a>中的疑難排解指引。",
"admin.cluster.status_table.config_hash": "設定檔 MD5",
"admin.cluster.status_table.hostname": "主機名稱",
"admin.cluster.status_table.id": "節點 ID",
"admin.cluster.status_table.reload": " 重新讀取叢集狀態",
"admin.cluster.status_table.status": "狀態",
- "admin.cluster.status_table.url": "Gossip Address",
+ "admin.cluster.status_table.url": "Gossip 位址",
"admin.cluster.status_table.version": "版本",
"admin.cluster.unknown": "不明",
"admin.compliance.directoryDescription": "規範報告的寫入目錄,若空白,則設定為 ./data/。",
@@ -216,9 +216,11 @@
"admin.customization.appDownloadLinkDesc": "新增前往 Mattermost 應用程式下載頁面的連結。當有連結時主選單將會新增 \"下載 Mattermost 應用程式\" 讓使用者前往下載頁面。此欄留空則主選單不會出現該選項。",
"admin.customization.appDownloadLinkTitle": "Mattermost 應用程式下載頁面連結:",
"admin.customization.customBrand": "自訂品牌",
- "admin.customization.customEmoji": "自訂繪文字",
+ "admin.customization.emoji": "繪文字",
"admin.customization.enableCustomEmojiDesc": "允許使用者新增用於訊息當中的自訂繪文字。允許之後,自訂繪文字設定的檢視方式為:變更到一個團隊,按頻道側邊欄上面的三個點,然後選擇\"自訂繪文字\"。",
"admin.customization.enableCustomEmojiTitle": "啟用自訂繪文字:",
+ "admin.customization.enableEmojiPickerDesc": "繪文字選擇器讓使用者選擇繪文字作為互動或在訊息中使用。在有大量自動繪文字時啟用繪文字選擇器可能會對效能有不良影響。",
+ "admin.customization.enableEmojiPickerTitle": "啟用繪文字選擇器:",
"admin.customization.enableLinkPreviewsDesc": "允許使用者在可能時訊息下方顯示網站預覽。啟用時,網頁預覽可以在帳號設定 > 進階 > 預覽預先發佈功能開啟",
"admin.customization.enableLinkPreviewsTitle": "啟用連結預覽:",
"admin.customization.iosAppDownloadLinkDesc": "新增下載 iOS 應用程式的連結。用行動網頁瀏覽器存取站台的使用者將會看到提示頁面以下載應用程式。此欄留空則不會出現提示頁面。",
@@ -236,7 +238,7 @@
"admin.email.agreeHPNS": " 我理解並接受 Mattermost Hosted 推播通知服務<a href=\"https://about.mattermost.com/hpns-terms/\" target='_blank'>服務條款</a>與<a href=\"https://about.mattermost.com/hpns-privacy/\" target='_blank'>隱私政策</a>。",
"admin.email.allowEmailSignInDescription": "啟用時 Mattermost 允許使用者用他們的電子郵件與密碼登入。",
"admin.email.allowEmailSignInTitle": "啟用電子郵件登入:",
- "admin.email.allowSignupDescription": "啟用時 Mattermost 允許團隊以電子郵件與密碼註冊帳號。應該只在想限制以 OAuth 或 AD/LDAP 一類的單一登入服務註冊時,設為停用。",
+ "admin.email.allowSignupDescription": "啟用時 Mattermost 允許團隊以電子郵件與密碼註冊帳號。應該只在想限制使用者以 OAuth 或 AD/LDAP 一類的單一登入服務註冊時,設為停用。",
"admin.email.allowSignupTitle": "啟用以電子郵件建立帳號:",
"admin.email.allowUsernameSignInDescription": "啟用時 Mattermost 允許使用者用他們的名稱與密碼登入。通常只有停用電子郵件地址驗證時才啟用。",
"admin.email.allowUsernameSignInTitle": "啟用以使用者名稱登入:",
@@ -254,9 +256,9 @@
"admin.email.inviteSaltExample": "如:\"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
"admin.email.inviteSaltTitle": "電子郵件邀請 Salt:",
"admin.email.mhpns": "使用有加密、產品品質的 HPNS 連線到 iOS 與 Android 應用程式",
- "admin.email.mhpnsHelp": "從iTunes下載 <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS 應用程式</a>。從Google Play 下載 <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android 應用程式</a>。瞭解更多關於<a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
+ "admin.email.mhpnsHelp": "從iTunes下載 <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS 應用程式</a>。從Google Play 下載 <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android 應用程式</a>。瞭解更多關於<a href=\"http://docs.mattermost.com/deployment/push.html#hosted-push-notifications-service-hpns\" target='_blank'>HPNS</a>.",
"admin.email.mtpns": "使用 TPNS 以及 iTunes 和 GooglePlay 上的 iOS 與 Android 應用程式",
- "admin.email.mtpnsHelp": "從 iTunes 下載 <a href=\"https://itunes.apple.com/us/app/mattermost/id984966508?mt=8\" target='_blank'>Mattermost iOS 應用程式</a>。從Google Play下載 <a href=\"https://play.google.com/store/apps/details?id=com.mattermost.mattermost&hl=en\" target='_blank'>Mattermost Android 應用程式</a>。瞭解更多關於 <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>。",
+ "admin.email.mtpnsHelp": "從 iTunes 下載 <a href=\"https://about.mattermost.com/mattermost-ios-app\" target='_blank'>Mattermost iOS 應用程式</a>。從Google Play下載 <a href=\"https://about.mattermost.com/mattermost-android-app\" target='_blank'>Mattermost Android 應用程式</a>。瞭解更多關於 <a href=\"http://docs.mattermost.com/deployment/push.html#test-push-notifications-service-tpns\" target='_blank'>TPNS</a>。",
"admin.email.nofificationOrganizationExample": "如:\"© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA\"",
"admin.email.notificationDisplayDescription": "從 Mattermost 傳送通知電子郵件時發件者的顯示名稱。",
"admin.email.notificationDisplayExample": "例如:\"Mattermost 通知\"、\"系統\"、\"勿回信\"",
@@ -442,7 +444,7 @@
"admin.ldap.firstnameAttrDesc": "(非必須) 用於設定 Mattermost 使用者名字的 AD/LDAP 伺服器屬性。當設定之後由於將會跟 LDAP 伺服器同步名字,使用者將無法編輯。留白時使用者可以在帳號設定中設定他們自己的名字。",
"admin.ldap.firstnameAttrEx": "如:\"givenName\"",
"admin.ldap.firstnameAttrTitle": "名字屬性",
- "admin.ldap.idAttrDesc": "此屬性在 AD/LDAP 伺服器上的值將會被用做 Mattermost 裡獨特、唯一的識別值。此屬性應該選用不會變更的屬性,例如使用者名稱 或 uid。如果一個使用者的這個屬性值有所變更,Mattermost 將會根據新值建立一個跟原本帳戶無關的新帳戶。這將是未來使用者在 Mattermost 登入頁面所要填入\"AD/LDAP 使用者名稱\"欄位的值。通常此屬性設定成與上面的\"用戶名稱\"屬性相同。如果您的團隊習慣用 domain\\\\username 登入其他使用 AD/LDAP 認證的服務,最好在本欄位填入 domain\\\\username 以保持一致性。",
+ "admin.ldap.idAttrDesc": "此屬性在 AD/LDAP 伺服器上的值將會被用做 Mattermost 裡獨特、唯一的識別值。此屬性應該選用不會變更的屬性,例如使用者名稱 或 uid。如果一個使用者的 ID 屬性值有所變更,Mattermost 將會建立一個跟原本帳戶無關的新帳戶。這將是未來使用者在 Mattermost 登入頁面所要填入\"AD/LDAP 使用者名稱\"欄位的值。通常此屬性設定成與上面的\"用戶名稱\"屬性相同。如果您的團隊習慣用 domain\\\\username 登入其他使用 AD/LDAP 認證的服務,最好在本欄位填入 domain\\\\username 以保持一致性。",
"admin.ldap.idAttrEx": "如:\"sAMAccountName\"",
"admin.ldap.idAttrTitle": "ID 的屬性:",
"admin.ldap.lastnameAttrDesc": "(非必須) 用於設定 Mattermost 使用者姓氏的 AD/LDAP 伺服器屬性。當設定之後由於將會跟 LDAP 伺服器同步姓氏,使用者將無法編輯。留白時使用者可以在帳號設定中設定他們自己的姓氏。",
@@ -474,7 +476,7 @@
"admin.ldap.skipCertificateVerification": "跳過驗證憑證:",
"admin.ldap.skipCertificateVerificationDesc": "TLS 或 STARTTLS 連線時跳過驗證憑證。不建議使用於需要 TLS 的正式環境。測試用設定。",
"admin.ldap.syncFailure": "同步失敗:{error}",
- "admin.ldap.syncIntervalHelpText": "AD/LDAP 同步更新 Mattermost 使用者資料以反應 AD/LDAP 伺服器上的變更。舉例來說,當 AD/LDAP 伺服器上一個使用者名字改變時,在執行同步的時候這個改變會更新 Mattermost。在 AD/LDAP 伺服器上被移除或是停用的帳號,其對應的 Mattermost 帳號會被設定成“停用”,並且撤銷帳號的工作階段。Mattermost 根據輸入的間隔執行同步。如,如果輸入60,Mattermost將會每60分鐘同步一次。",
+ "admin.ldap.syncIntervalHelpText": "AD/LDAP 同步更新 Mattermost 使用者資料以反應 AD/LDAP 伺服器上的變更。舉例來說,當 AD/LDAP 伺服器上一個使用者名字有所改變,這個改變會在執行同步的時更新 Mattermost。在 AD/LDAP 伺服器上被移除或是停用的帳號,其對應的 Mattermost 帳號會被設定成“停用”,並且撤銷帳號的工作階段。Mattermost 根據輸入的間隔執行同步。如,如果輸入60,Mattermost將會每60分鐘同步一次。",
"admin.ldap.syncIntervalTitle": "同步間隔(分):",
"admin.ldap.syncNowHelpText": "立刻開始 AD/LDAP 同步。",
"admin.ldap.sync_button": "開始 AD/LDAP 同步",
@@ -591,7 +593,7 @@
"admin.rate.memoryDescription": "能連到此系統的最大使用者工作階段數由下面\"根據遠端位址改變張貼頻率限制\"跟\"根據 HTTP 標頭改變張貼頻率限制\"設定所決定",
"admin.rate.memoryExample": "如:\"10000\"",
"admin.rate.memoryTitle": "記憶體儲存體大小:",
- "admin.rate.noteDescription": "變更此段落的設定值必須重啟伺服器以生效。",
+ "admin.rate.noteDescription": "除了站台網址以外,變更此段落的設定值必須重啟伺服器以生效。",
"admin.rate.noteTitle": "註:",
"admin.rate.queriesDescription": "限制 API 使用速率為每秒\"這邊指定的數量\"次要求。",
"admin.rate.queriesExample": "如:\"10\"",
@@ -601,13 +603,20 @@
"admin.rate.title": "張貼速率限制設定",
"admin.recycle.button": "回收資料庫連線",
"admin.recycle.loading": " 回收中...",
- "admin.recycle.recycleDescription": "在使用多個資料庫的情況下,可以經由修改\"config.json\"、在伺服器啟動的時候執行<a href=\"../general/configuration\"><b>設定 > 重新從磁碟載入設定</b></a>,來在無須重啟伺服器之下切換主要資料庫。系統管理員應該執行<b>回收資料庫連線</b>以根據新的設定回收資料庫連線。",
+ "admin.recycle.recycleDescription": "在使用多個資料庫的情況下,可以經由修改\"config.json\"、伺服器啟動時執行{reloadConfiguration},在無須重啟伺服器之下切換主要資料庫。系統管理員應該執行{featureName}以根據新的設定回收資料庫連線。",
+ "admin.recycle.recycleDescription.featureName": "回收資料庫連線",
+ "admin.recycle.recycleDescription.reloadConfiguration": "設定 > 重新從磁碟載入設定",
"admin.recycle.reloadFail": "回收失敗:{error}",
"admin.regenerate": "重新產生",
"admin.reload.button": "重新從磁碟載入設定",
"admin.reload.loading": " 載入中...",
- "admin.reload.reloadDescription": "在使用多個資料庫的情況下,可以經由修改\"config.json\"、在伺服器啟動的時候執行<b>重新從磁碟載入設定</b>,來在無須重啟伺服器之下切換主要資料庫。系統管理員應該執行<a href=\"../advanced/database\"><b>資料庫 > 回收資料庫連線</b></a>以根據新的設定回收資料庫連線。",
+ "admin.reload.reloadDescription": "在使用多個資料庫的情況下,可以經由修改\"config.json\"、伺服器啟動時執行{featureName},在無須重啟伺服器之下切換主要資料庫。系統管理員應該執行{recycleDatabaseConnections}以根據新的設定回收資料庫連線。",
+ "admin.reload.reloadDescription.featureName": "重新從磁碟載入設定",
+ "admin.reload.reloadDescription.recycleDatabaseConnections": "資料庫 > 回收資料庫連線",
"admin.reload.reloadFail": "重新載入失敗:{error}",
+ "admin.requestButton.loading": " 載入中...",
+ "admin.requestButton.requestFailure": "測試失敗:{error}",
+ "admin.requestButton.requestSuccess": "測試成功",
"admin.reset_password.close": "關閉",
"admin.reset_password.newPassword": "新密碼",
"admin.reset_password.select": "選擇",
@@ -694,6 +703,8 @@
"admin.service.corsTitle": "允許來自下列網址的跨站請求:",
"admin.service.developerDesc": "啟用時,Javascript 錯誤會顯示在使用者界面頂端上的紫色橫欄。不建議在正式環境中使用。",
"admin.service.developerTitle": "啟用開發者模式:",
+ "admin.service.enableAPIv3": "允許使用 API 版本 3 的端點:",
+ "admin.service.enableAPIv3Description": "設為停用以停止所有 REST API 版本3的端點。依靠 API 版本3的外部整合將會失效,可藉此識別並移轉至版本4。版本3已過時,不久後將會移除。詳情請參閱<a href='https://api.mattermost.com' target='_blank'>https://api.mattermost.com</a>。",
"admin.service.enforceMfaDesc": "啟用時,登入必須使用<a href='https://docs.mattermost.com/deployment/auth.html' target='_blank'>多重要素驗證</a>。新的使用者將會在登錄時被要求設定多重要素驗證。已登入但沒有設定多重要素驗證的使用者將會被重新導向至多重要素驗證設定頁面直到完成設定為止。<br/><br/>如果使用了 AD/LDAP 與電子郵件以外的登入方式,多重要素驗證必須要在認證提供者處設定。 ",
"admin.service.enforceMfaTitle": "強制使用多重要素驗證:",
"admin.service.forward80To443": "轉送80通訊埠至443:",
@@ -732,7 +743,7 @@
"admin.service.siteURLExample": "如:\"https://mattermost.example.com:1234\"",
"admin.service.ssoSessionDays": "SSO 的工作階段長度(以天計):",
"admin.service.ssoSessionDaysDesc": "從使用者最後一次輸入他們的認證到工作階段過期之間的天數。如果認證方式是 SAML 或 GitLab 且他們已經登入 SAML 或 GitLab,使用者將會自動再次登入 Mattermost。修改設定之後新的工作階段長度會在下次使用者輸入認證之後開始生效。",
- "admin.service.testingDescription": "啟用時,將啟用 /loadtest 斜線命令,該命令會載入測試帳號、資料以及文字格式。修改此項需要重啟伺服器以生效。",
+ "admin.service.testingDescription": "啟用時,將啟用 /test 斜線命令,該命令會載入測試帳號、資料以及文字格式。修改此項需要重啟伺服器以生效。",
"admin.service.testingTitle": "啟用測試指令:",
"admin.service.tlsCertFile": "TLS 憑證檔案:",
"admin.service.tlsCertFileDescription": "TLS 將使用的憑證檔案。",
@@ -754,12 +765,12 @@
"admin.sidebar.configuration": "設定",
"admin.sidebar.connections": "連線",
"admin.sidebar.customBrand": "自訂品牌",
- "admin.sidebar.customEmoji": "自訂繪文字",
"admin.sidebar.customIntegrations": "自訂整合",
"admin.sidebar.customization": "自訂",
"admin.sidebar.database": "資料庫",
"admin.sidebar.developer": "開發者",
"admin.sidebar.email": "電子郵件",
+ "admin.sidebar.emoji": "繪文字",
"admin.sidebar.external": "外部服務",
"admin.sidebar.files": "檔案",
"admin.sidebar.general": "一般",
@@ -813,7 +824,7 @@
"admin.sql.maxOpenTitle": "最大開啟連線:",
"admin.sql.noteDescription": "變更此段落設定必須重啟伺服器以生效。",
"admin.sql.noteTitle": "註:",
- "admin.sql.queryTimeoutDescription": "在開啟連線並發送查詢後等待資料庫回應的秒數。在使用者界面或紀錄中所見到因為查詢逾時而導致的錯誤可能會因為不同類型的查詢而改變。使用 PostgreSQL 資料庫時此設定沒有作用。",
+ "admin.sql.queryTimeoutDescription": "在開啟連線並發送查詢後等待資料庫回應的秒數。在使用者界面或紀錄中所見到因為查詢逾時而導致的錯誤可能會因為不同類型的查詢而改變。",
"admin.sql.queryTimeoutExample": "如:\"30\"",
"admin.sql.queryTimeoutTitle": "查詢時限:",
"admin.sql.replicas": "資料來源複本:",
@@ -872,16 +883,16 @@
"admin.team.restrictTitle": "限制僅有特定的電子郵件網域能建立帳號:",
"admin.team.restrict_direct_message_any": "任何 Mattermost 伺服器上的使用者",
"admin.team.restrict_direct_message_team": "任何團隊成員",
- "admin.team.showFullname": "Show first and last name (default)",
+ "admin.team.showFullname": "顯示姓跟名(預設)",
"admin.team.showNickname": "有暱稱時顯示暱稱,沒有時顯示姓跟名",
- "admin.team.showUsername": "Show username",
+ "admin.team.showUsername": "顯示使用者名稱",
"admin.team.siteNameDescription": "顯示於登入畫面與界面上的服務名稱.",
"admin.team.siteNameExample": "如:\"Mattermost\"",
"admin.team.siteNameTitle": "站台名稱:",
"admin.team.teamCreationDescription": "停用時,只有系統管理者能建立團隊。",
"admin.team.teamCreationTitle": "啟用建立團隊::",
- "admin.team.teammateNameDisplay": "團隊成員名稱顯示",
- "admin.team.teammateNameDisplayDesc": "設定在訊息及直接訊息列表該如何顯示其他使用者的名字。",
+ "admin.team.teammateNameDisplay": "團隊成員名稱顯示:",
+ "admin.team.teammateNameDisplayDesc": "設定在直接訊息列表該如何顯示其他使用者的名字。",
"admin.team.upload": "上傳",
"admin.team.uploadDesc": "增加自訂圖片到登入畫面以客製使用者體驗。建議影像檔案小於 2 MB。",
"admin.team.uploaded": "已上傳!",
@@ -1076,14 +1087,17 @@
"channel_flow.handleTooShort": "頻道網址必須為小寫英數字、至少兩個字元",
"channel_flow.invalidName": "無效的頻道名稱",
"channel_flow.set_url_title": "設定頻道網址",
+ "channel_header.addChannelHeader": "新增頻道敘述",
"channel_header.addMembers": "新增成員",
"channel_header.addToFavorites": "新增至我的最愛",
"channel_header.channelHeader": "編輯頻道標題",
+ "channel_header.channelMembers": "成員",
"channel_header.delete": "刪除頻道",
"channel_header.flagged": "被標記的訊息",
"channel_header.leave": "離開頻道",
"channel_header.manageMembers": "成員管理",
"channel_header.notificationPreferences": "通知喜好設定",
+ "channel_header.pinnedPosts": "釘選的訊息",
"channel_header.recentMentions": "最近提及",
"channel_header.removeFromFavorites": "從我的最愛中移除",
"channel_header.rename": "變更頻道名稱",
@@ -1108,7 +1122,7 @@
"channel_loader.connection_error": "您的網路似乎有問題。",
"channel_loader.posted": "已發文",
"channel_loader.postedImage": " 已上傳一張圖片",
- "channel_loader.socketError": "Please check connection, Mattermost unreachable. If issue persists, ask administrator to <a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">check WebSocket port</a>.",
+ "channel_loader.socketError": "請檢查連線,無法連線至 Mattermost。如果問題持續存在,請管理員<a href=\"https://about.mattermost.com/default-websocket-port-help\" target=\"_blank\">檢查 WebSocket 通訊埠</a>。",
"channel_loader.someone": "某人",
"channel_loader.something": " 做了新事",
"channel_loader.unknown_error": "從伺服器收到不在預期內的狀態碼。",
@@ -1248,7 +1262,7 @@
"delete_post.del": "刪除",
"delete_post.post": "訊息",
"delete_post.question": "確定要刪除{term}嘛?",
- "delete_post.warning": "This post has {count, number} {count, plural, one {comment} other {comments}} on it.",
+ "delete_post.warning": "此訊息有 {count, number} 個註解。",
"edit_channel_header.editHeader": "修改頻道標題",
"edit_channel_header.previewHeader": "修改標題",
"edit_channel_header_modal.cancel": "取消",
@@ -1329,13 +1343,13 @@
"file_upload.disabled": "檔案附件已被停用。",
"file_upload.fileAbove": "無法上傳超過{max}MB 的檔案:{filename}",
"file_upload.filesAbove": "無法上傳超過{max}MB 的檔案:{filenames}",
- "file_upload.limited": "同時只能上傳{count}個檔案。請用新訊息來上傳更多的檔案。",
+ "file_upload.limited": "同時只能上傳{count, number}個檔案。請用新訊息來上傳更多的檔案。",
"file_upload.pasted": "圖片已上傳至:",
"filtered_channels_list.search": "搜尋頻道",
"filtered_user_list.any_team": "所有使用者",
"filtered_user_list.count": "{count, number}使用者",
- "filtered_user_list.countTotal": "{total}位中{count, number}位使用者",
- "filtered_user_list.countTotalPage": "{total}位中{startCount, number} - {endCount, number}位使用者",
+ "filtered_user_list.countTotal": "{total, number}位中{count, number}位使用者",
+ "filtered_user_list.countTotalPage": "{total, number}位中{startCount, number} - {endCount, number}位使用者",
"filtered_user_list.member": "成員",
"filtered_user_list.next": "下一頁",
"filtered_user_list.prev": "上一頁",
@@ -1481,16 +1495,18 @@
"installed_commands.delete.confirm": "此動作將永久刪除該斜線命令,並中斷任何使用它的整合。確定要刪除嘛?",
"installed_commands.empty": "沒有命令",
"installed_commands.header": "斜線命令",
- "installed_commands.help": "建立給外部整合功能使用的斜線命令。詳情請看{link}。",
- "installed_commands.helpLink": "說明文件",
+ "installed_commands.help": "使用斜線命令以連結外部工具與 Mattermost。{buildYourOwn}或前往{appDirectory}尋找可自行架設的第三方應用程式及整合。",
+ "installed_commands.help.appDirectory": "應用程式目錄",
+ "installed_commands.help.buildYourOwn": "自行建置",
"installed_commands.search": "搜尋斜線命令",
"installed_commands.unnamed_command": "沒有名字的斜線命令",
"installed_incoming_webhooks.add": "增加傳入的 Webhook",
"installed_incoming_webhooks.delete.confirm": "此動作將永久刪除該傳入的 Webhook,並中斷任何使用它的整合。確定要刪除嘛?",
"installed_incoming_webhooks.empty": "沒有傳入的 Webhook",
"installed_incoming_webhooks.header": "傳入的 Webhook",
- "installed_incoming_webhooks.help": "建立給外部整合功能使用的傳入的 Webhook 網址。詳情請看{link}。",
- "installed_incoming_webhooks.helpLink": "說明文件",
+ "installed_incoming_webhooks.help": "使用傳入的 Webhook 以連結外部工具與 Mattermost。{buildYourOwn}或前往{appDirectory}尋找可自行架設的第三方應用程式及整合。",
+ "installed_incoming_webhooks.help.appDirectory": "應用程式目錄",
+ "installed_incoming_webhooks.help.buildYourOwn": "自行建置",
"installed_incoming_webhooks.search": "搜尋傳入的 Webhook",
"installed_incoming_webhooks.unknown_channel": "私人 Webhook",
"installed_integrations.callback_urls": "回呼網址:{urls}",
@@ -1516,8 +1532,9 @@
"installed_oauth_apps.description": "敘述",
"installed_oauth_apps.empty": "沒有找到 OAuth 2.0 應用程式",
"installed_oauth_apps.header": "OAuth 2.0 應用程式",
- "installed_oauth_apps.help": "建立 OAuth 2.0 應用程式以安全的將 Mattermost 與機器人跟第三方應用程式整合。詳請參閱{link}。",
- "installed_oauth_apps.helpLink": "說明文件",
+ "installed_oauth_apps.help": "建立{oauthApplications}以安全的整合 Mattermost 跟機器人、第三方應用程式。前往{appDirectory}尋找可自行架設的應用程式。",
+ "installed_oauth_apps.help.appDirectory": "應用程式目錄",
+ "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 應用程式",
"installed_oauth_apps.homepage": "首頁",
"installed_oauth_apps.iconUrl": "圖示網址",
"installed_oauth_apps.is_trusted": "是受信任的:<strong>{isTrusted}</strong>",
@@ -1531,8 +1548,9 @@
"installed_outgoing_webhooks.delete.confirm": "此動作將永久刪除該傳出的 Webhook,並中斷任何使用它的整合。確定要刪除嘛?",
"installed_outgoing_webhooks.empty": "沒有傳出的 Webhook",
"installed_outgoing_webhooks.header": "傳出的 Webhook",
- "installed_outgoing_webhooks.help": "建立給外部整合功能使用的傳出的 Webhook 網址。詳情請看{link}。",
- "installed_outgoing_webhooks.helpLink": "說明文件",
+ "installed_outgoing_webhooks.help": "使用傳出的 Webhook 以連結外部工具與 Mattermost。{buildYourOwn}或前往{appDirectory}尋找可自行架設的第三方應用程式及整合。",
+ "installed_outgoing_webhooks.help.appDirectory": "應用程式目錄",
+ "installed_outgoing_webhooks.help.buildYourOwn": "自行建置",
"installed_outgoing_webhooks.search": "搜尋傳出的 Webhook",
"installed_outgoing_webhooks.unknown_channel": "私人 Webhook",
"integrations.add": "新增",
@@ -1543,6 +1561,8 @@
"integrations.done": "完成",
"integrations.edit": "編輯",
"integrations.header": "整合",
+ "integrations.help": "前往{appDirectory}尋找為 Mattermost 所撰寫、可自行架設的第三方應用程式及整合。",
+ "integrations.help.appDirectory": "應用程式目錄",
"integrations.incomingWebhook.description": "傳入的 Webhook 讓外部整合功能可以傳送訊息",
"integrations.incomingWebhook.title": "傳入的 Webhook",
"integrations.oauthApps.description": "OAuth 2.0 允許外部應用程式向 Mattermost API 提出授權過的要求。",
@@ -1675,7 +1695,7 @@
"mobile.channel_info.alertTitleDeleteChannel": "刪除{term}",
"mobile.channel_info.alertTitleLeaveChannel": "退出{term}",
"mobile.channel_info.alertYes": "是",
- "mobile.channel_info.delete_failed": "We couldn't delete the channel {displayName}. Please check your connection and try again.",
+ "mobile.channel_info.delete_failed": "無法刪除頻道 {displayName}。請檢查連線並再試一次。",
"mobile.channel_info.privateChannel": "私人頻道",
"mobile.channel_info.publicChannel": "公開頻道",
"mobile.channel_list.alertMessageLeaveChannel": "確定要離開{term} {name} 嘛?",
@@ -1705,9 +1725,9 @@
"mobile.custom_list.no_results": "找不到相符的結果",
"mobile.drawer.teamsTitle": "團隊",
"mobile.edit_post.title": "編輯訊息",
- "mobile.error_handler.button": "Relaunch",
- "mobile.error_handler.description": "\nClick relaunch to open the app again. After restart, you can report the problem from the settings menu.\n",
- "mobile.error_handler.title": "Unexpected error occurred",
+ "mobile.error_handler.button": "重新啟動",
+ "mobile.error_handler.description": "\n點擊重新啟動以再次開啟 app。重新啟動後可以經由設定選單來回報問題。\n",
+ "mobile.error_handler.title": "發生未預期的錯誤。",
"mobile.file_upload.camera": "照相或錄影",
"mobile.file_upload.library": "相簿",
"mobile.file_upload.more": "更多",
@@ -1716,7 +1736,7 @@
"mobile.intro_messages.DM": "這是跟{teammate}之間直接訊息的起頭。直接訊息跟在這邊分享的檔案除了在此處以外的人都看不到。",
"mobile.intro_messages.default_message": "這將是團隊成員註冊後第一個看到的頻道,請利用它張貼所有人都應該知道的事項。",
"mobile.intro_messages.default_welcome": "歡迎來到{name}!",
- "mobile.join_channel.error": "We couldn't join the channel {displayName}. Please check your connection and try again.",
+ "mobile.join_channel.error": "無法加入頻道 {displayName}。請檢查連線並再試一次。 ",
"mobile.loading_channels": "正在載入頻道...",
"mobile.loading_members": "正在載入成員...",
"mobile.loading_posts": "正在載入訊息...",
@@ -1725,7 +1745,7 @@
"mobile.offlineIndicator.connected": "已連線",
"mobile.offlineIndicator.connecting": "連線中",
"mobile.offlineIndicator.offline": "沒有網際網路連線",
- "mobile.open_dm.error": "We couldn't open a direct message with {displayName}. Please check your connection and try again.",
+ "mobile.open_dm.error": "無法開啟與{displayName}的直接傳訊。請檢查連線並再試一次。 ",
"mobile.post.cancel": "取消",
"mobile.post.delete_question": "確定要刪除此訊息嘛?",
"mobile.post.delete_title": "刪除訊息",
@@ -1757,13 +1777,16 @@
"mobile.routes.user_profile.send_message": "發送訊息",
"mobile.select_team.choose": "您所屬的團隊:",
"mobile.select_team.join_open": "能加入的開放團隊。",
- "mobile.select_team.no_teams": "There are no available teams for you to join.",
+ "mobile.select_team.no_teams": "沒有能加入的團隊。",
"mobile.server_ping_failed": "無法與伺服器連線。請檢查伺服器網址與網際網路連線。",
- "mobile.server_upgrade.button": "OK",
- "mobile.server_upgrade.description": "\nA server upgrade is required to use the Mattermost app. Please ask your System Administrator for details.\n",
- "mobile.server_upgrade.title": "Server upgrade required",
+ "mobile.server_upgrade.button": "確定",
+ "mobile.server_upgrade.description": "\n在使用 Mattermost App 前需要更新伺服器。詳情請問系統管理員。\n",
+ "mobile.server_upgrade.title": "需要伺服器更新",
"mobile.server_url.invalid_format": "網址開頭必須是 http:// 或 https://",
"mobile.session_expired": "工作階段過期:請登入以繼續接收通知。",
+ "mobile.settings.clear": "清除離線儲存資料",
+ "mobile.settings.clear_button": "清除",
+ "mobile.settings.clear_message": "\n這將會清除所有離線資料並重新啟動 app 。在重啟 app 後會自動重新登入。\n",
"mobile.settings.team_selection": "選擇團隊",
"modal.manaul_status.ask": "別再問我",
"modal.manaul_status.button": "是,將狀態設定為\"線上\"",
@@ -1788,7 +1811,7 @@
"msg_typing.someone": "某人",
"multiselect.add": "新增",
"multiselect.go": "前往",
- "multiselect.numPeopleRemaining": "Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",
+ "multiselect.numPeopleRemaining": "用↑↓ 瀏覽、 ↵ 選擇。可以增加 {num, number}人。",
"multiselect.numRemaining": "還可以加 {num, number} 個",
"multiselect.placeholder": "搜尋與新增成員",
"navbar.addMembers": "新增成員",
@@ -1854,7 +1877,7 @@
"post_attachment.more": "展開...",
"post_body.commentedOn": "對 {name}{apostrophe} 訊息的註解:",
"post_body.deleted": "(訊息已刪除)",
- "post_body.plusMore": " plus {count, number} other {count, plural, one {file} other {files}}",
+ "post_body.plusMore": "以及其他 {count, number} 個檔案",
"post_delete.notPosted": "無法發布註解",
"post_delete.okay": "確定",
"post_delete.someone": "您嘗試註解的訊息已經被刪除。",
@@ -1878,7 +1901,8 @@
"quick_switch_modal.channelsShortcut.mac": "- ⌘K",
"quick_switch_modal.channelsShortcut.windows": "- CTRL+K",
"quick_switch_modal.help": "開始輸入然後用 TAB 切換頻道/團隊、↑↓ 瀏覽、 ↵ 選擇、 ESC 關閉。",
- "quick_switch_modal.help_no_team": "Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.",
+ "quick_switch_modal.help_mobile": "輸入以尋找頻道。",
+ "quick_switch_modal.help_no_team": "輸入以尋找頻道。 用↑↓ 瀏覽、 ↵ 選擇、ESC取消。",
"quick_switch_modal.teams": "團隊",
"quick_switch_modal.teamsShortcut.mac": "- ⌘⌥K",
"quick_switch_modal.teamsShortcut.windows": "- CTRL+ALT+K",
@@ -1962,10 +1986,10 @@
"setting_upload.import": "匯入",
"setting_upload.noFile": "未選取任何檔案。",
"setting_upload.select": "選取檔案",
- "sidebar.channels": "頻道",
+ "sidebar.channels": "公開頻道",
"sidebar.createChannel": "建立公開頻道",
"sidebar.createGroup": "建立私人頻道",
- "sidebar.direct": "直接訊息",
+ "sidebar.direct": "直接傳訊",
"sidebar.favorite": "我的最愛",
"sidebar.more": "更多",
"sidebar.moreElips": "更多...",
@@ -2060,8 +2084,8 @@
"suggestion.search.private": "私人頻道",
"suggestion.search.public": "公開頻道",
"system_users_list.count": "{count, number}使用者",
- "system_users_list.countPage": "{total}位中{startCount, number} - {endCount, number}位使用者",
- "system_users_list.countSearch": "{total}位中{count, number}位使用者",
+ "system_users_list.countPage": "{total, number}位中{startCount, number} - {endCount, number}位使用者",
+ "system_users_list.countSearch": "{total, number}位中{count, number}位使用者",
"team_export_tab.download": "下載",
"team_export_tab.export": "匯出",
"team_export_tab.exportTeam": "匯出團隊",
@@ -2136,7 +2160,6 @@
"upload_overlay.info": "將檔案拖曳到這裡上傳。",
"user.settings.advance.embed_preview": "訊息中第一個網站連結,嘗試顯示網站內容預覽於訊息下方",
"user.settings.advance.embed_toggle": "內嵌預覽顯示開關",
- "user.settings.advance.emojipicker": "在訊息輸入欄以及回應啟用繪文字選取器",
"user.settings.advance.enabledFeatures": "已啟用 {count, number} 項功能",
"user.settings.advance.formattingDesc": "啟用時,文章會顯示連結、顯示繪文字、套用樣式到文字上並自動斷行。此設定預設為開啟。修改此設定後需要重新讀取頁面以生效。",
"user.settings.advance.formattingTitle": "啟用文章格式設定",
@@ -2240,10 +2263,10 @@
"user.settings.general.loginLdap": "已經由 AD/LDAP 登入 ({email})",
"user.settings.general.loginOffice365": "已經由 Office 365 登入 ({email})",
"user.settings.general.loginSaml": "已經由 SAML 登入 ({email})",
- "user.settings.general.mobile.emptyName": "按'編輯'以增加全名",
- "user.settings.general.mobile.emptyNickname": "按'編輯'以增加暱稱",
- "user.settings.general.mobile.emptyPosition": "點選'編輯'以增加工作職稱/職位",
- "user.settings.general.mobile.uploadImage": "按下'編輯'以上傳圖像。",
+ "user.settings.general.mobile.emptyName": "點擊以增加全名",
+ "user.settings.general.mobile.emptyNickname": "點擊以增加暱稱",
+ "user.settings.general.mobile.emptyPosition": "點擊以增加工作職稱/職位",
+ "user.settings.general.mobile.uploadImage": "點擊以上傳圖像。",
"user.settings.general.newAddress": "新電子郵件地址:{email}<br />請檢查電子郵件信箱以驗證上面的地址。",
"user.settings.general.newEmail": "新的電子郵件",
"user.settings.general.nickname": "匿稱",
@@ -2428,7 +2451,7 @@
"user_profile.webrtc.unavailable": "在當前通訊結束前不能建立新的通訊",
"view_image.loading": "載入中",
"view_image_popover.download": "下載",
- "view_image_popover.file": "File {count, number} of {total, number}",
+ "view_image_popover.file": "第{count, number}個檔案,共有{total, number}個檔案",
"view_image_popover.publicLink": "取得公開連結",
"web.footer.about": "關於",
"web.footer.help": "說明",
diff --git a/webapp/package.json b/webapp/package.json
index 7b17d0b1d..c083b80f4 100644
--- a/webapp/package.json
+++ b/webapp/package.json
@@ -23,9 +23,9 @@
"jquery": "3.2.1",
"key-mirror": "1.0.1",
"localforage": "1.5.0",
- "marked": "mattermost/marked#8f5902fff9bad793cd6c66e0c44002c9e79e1317",
+ "marked": "mattermost/marked#c0b5f4a651b0af63e974522b20b93b7999490c53",
"match-at": "0.1.0",
- "mattermost-redux": "mattermost/mattermost-redux#webapp-master",
+ "mattermost-redux": "mattermost/mattermost-redux#webapp-4.0",
"object-assign": "4.1.1",
"pdfjs-dist": "1.8.474",
"perfect-scrollbar": "0.7.1",
diff --git a/webapp/reducers/views/channel.js b/webapp/reducers/views/channel.js
index 0deb2389e..1da6c2e29 100644
--- a/webapp/reducers/views/channel.js
+++ b/webapp/reducers/views/channel.js
@@ -62,8 +62,20 @@ function loadingPosts(state = {}, action) {
}
}
+function focusedPostId(state = '', action) {
+ switch (action.type) {
+ case ActionTypes.RECEIVED_FOCUSED_POST:
+ return action.data;
+ case ChannelTypes.SELECT_CHANNEL:
+ return '';
+ default:
+ return state;
+ }
+}
+
export default combineReducers({
postVisibility,
lastChannelViewTime,
- loadingPosts
+ loadingPosts,
+ focusedPostId
});
diff --git a/webapp/sass/components/_emoticons.scss b/webapp/sass/components/_emoticons.scss
index b91630a47..c8fd50226 100644
--- a/webapp/sass/components/_emoticons.scss
+++ b/webapp/sass/components/_emoticons.scss
@@ -80,6 +80,8 @@
.emoji-picker__search-container {
position: relative;
+ border-top-style: solid;
+ border-top-width: 1px;
.emoji-picker__search-icon {
padding-left: 6px;
@@ -89,8 +91,7 @@
}
.emoji-picker__search {
- border-width: 1px 0px 1px 0px;
- border-style: solid;
+ border-width: 0px;
padding: 2px 0 2px 25px;
width: 100%;
height: 25px;
@@ -108,6 +109,8 @@
overflow-y: auto;
padding: 0px 8px 8px 8px;
position: relative;
+ border-top-style: solid;
+ border-top-width: 1px;
.emoji-picker__category-header {
font-size: 12px;
diff --git a/webapp/sass/components/_popover.scss b/webapp/sass/components/_popover.scss
index 46e83f32d..90573c7ec 100644
--- a/webapp/sass/components/_popover.scss
+++ b/webapp/sass/components/_popover.scss
@@ -242,6 +242,7 @@
border-top: 1px solid;
cursor: pointer;
height: 45px;
+ overflow: hidden;
padding: 5px 19px 5px 17px;
&:hover {
diff --git a/webapp/sass/components/_search.scss b/webapp/sass/components/_search.scss
index e7fab0290..c9b8d4c02 100644
--- a/webapp/sass/components/_search.scss
+++ b/webapp/sass/components/_search.scss
@@ -78,8 +78,8 @@
top: 27px;
.search-bar__container & {
- right: 7px;
- top: 8px;
+ right: 12px;
+ top: 11px;
}
}
}
diff --git a/webapp/sass/components/_status-icon.scss b/webapp/sass/components/_status-icon.scss
index 03d9d0705..022cffa69 100644
--- a/webapp/sass/components/_status-icon.scss
+++ b/webapp/sass/components/_status-icon.scss
@@ -49,14 +49,14 @@
&.status--group {
border-radius: 2px;
- font-size: 11px;
+ font-size: 10px;
font-weight: 600;
- height: 16px;
+ height: 15px;
left: 1px;
- line-height: 15px;
+ line-height: 14px;
margin: 0 9px 0 -1px;
text-align: center;
- top: -1px;
+ top: -2px;
width: 15px;
.mentions__name & {
diff --git a/webapp/sass/components/_webrtc.scss b/webapp/sass/components/_webrtc.scss
index 839f9c8c1..05ef408e2 100644
--- a/webapp/sass/components/_webrtc.scss
+++ b/webapp/sass/components/_webrtc.scss
@@ -328,9 +328,4 @@
#videos.small {
position: relative;
}
-
- .search__form {
- margin-left: 5px;
- width: calc(100% - 80px);
- }
}
diff --git a/webapp/sass/layout/_headers.scss b/webapp/sass/layout/_headers.scss
index dd8440d19..9a4d6771e 100644
--- a/webapp/sass/layout/_headers.scss
+++ b/webapp/sass/layout/_headers.scss
@@ -128,15 +128,15 @@
white-space: nowrap;
.move--left & {
- max-width: calc(100vw - 830px);
+ max-width: calc(100vw - 850px);
.multi-teams & {
- max-width: calc(100vw - 880px);
+ max-width: calc(100vw - 905px);
}
}
.multi-teams & {
- max-width: calc(100vw - 830px);
+ max-width: calc(100vw - 850px);
}
}
@@ -195,12 +195,15 @@
.channel-header__description {
display: inline-block;
- height: 22px;
- margin-top: 3px;
- max-width: calc(100vw - 730px);
+ height: 35px;
+ margin-top: -10px;
+ max-width: calc(100vw - 740px);
overflow: hidden;
+ padding: 3px 0 0;
+ position: relative;
text-overflow: ellipsis;
- white-space: nowrap;
+ top: 10px;
+ white-space: pre;
word-break: break-word;
.markdown__heading {
@@ -209,7 +212,7 @@
}
.multi-teams & {
- max-width: calc(100vw - 780px);
+ max-width: calc(100vw - 810px);
}
&.light {
@@ -223,7 +226,11 @@
}
.move--left & {
- max-width: calc(100vw - 780px);
+ max-width: calc(100vw - 810px);
+
+ .multi-teams & {
+ max-width: calc(100vw - 860px);
+ }
}
.markdown-inline-img {
@@ -311,7 +318,7 @@
@include legacy-pie-clearfix;
@include display-flex();
@include flex-direction(row-reverse);
- padding: 16px 47px 12px 12px;
+ padding: 16px 40px 12px 12px;
position: relative;
&:before {
@@ -426,9 +433,9 @@
.team__name,
.user__name {
display: block;
- font-size: 16px;
+ font-size: 14px;
font-weight: 600;
- max-width: 85%;
+ max-width: 100%;
overflow: hidden;
text-decoration: none;
text-overflow: ellipsis;
diff --git a/webapp/sass/layout/_navigation.scss b/webapp/sass/layout/_navigation.scss
index 09b6534b0..f1bce335c 100644
--- a/webapp/sass/layout/_navigation.scss
+++ b/webapp/sass/layout/_navigation.scss
@@ -104,13 +104,13 @@
padding: 0 .5em;
.heading {
- color: $white;
display: inline-block;
font-weight: 600;
line-height: 50px;
margin-right: 5px;
max-width: calc(100% - 200px);
overflow: hidden;
+ text-overflow: ellipsis;
vertical-align: top;
}
diff --git a/webapp/sass/layout/_sidebar-left.scss b/webapp/sass/layout/_sidebar-left.scss
index cc0c4920f..4be608803 100644
--- a/webapp/sass/layout/_sidebar-left.scss
+++ b/webapp/sass/layout/_sidebar-left.scss
@@ -37,7 +37,7 @@
.sidebar-item__name {
display: inline-block;
- max-width: 167px;
+ max-width: 160px;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: top;
@@ -81,8 +81,8 @@
@include single-transition(all, .15s, ease-in);
display: block;
font-weight: 600;
- height: 50px;
- line-height: 50px;
+ height: 45px;
+ line-height: 40px;
padding: 0;
text-decoration: none;
width: 100%;
@@ -144,7 +144,7 @@
.nav-pills__container {
-webkit-overflow-scrolling: touch;
- height: calc(100% - 120px);
+ height: calc(100% - 115px);
overflow: auto;
position: relative;
}
@@ -215,6 +215,10 @@
&.has-close {
&:hover {
+ .sidebar-item__name {
+ max-width: 152px;
+ }
+
.btn-close {
@include opacity(.8);
display: block;
@@ -228,7 +232,7 @@
font-size: 21px;
font-weight: 600;
position: absolute;
- right: 18px;
+ right: 15px;
top: 0px;
&:hover {
diff --git a/webapp/sass/layout/_sidebar-right.scss b/webapp/sass/layout/_sidebar-right.scss
index 8181ac270..6d31c1606 100644
--- a/webapp/sass/layout/_sidebar-right.scss
+++ b/webapp/sass/layout/_sidebar-right.scss
@@ -128,7 +128,7 @@
color: inherit;
display: inline-block;
font-size: 26px;
- margin: 0 0 0 -14px;
+ margin-left: -14px;
text-align: center;
vertical-align: top;
width: 30px;
@@ -207,6 +207,11 @@
}
}
+ .sidebar--right__title {
+ @include clearfix;
+ padding-left: 15px;
+ }
+
.sidebar--right__header {
@include flex(0 0 44px);
border-bottom: 1px solid;
@@ -214,13 +219,14 @@
font-size: 1em;
height: 44px;
line-height: 44px;
- padding: 0 5px 0 15px;
+ overflow: hidden;
+ padding: 0 5px 0 0;
text-transform: uppercase;
}
.sidebar--right__subheader {
font-size: 1em;
- padding: 0.5em 1em 0;
+ padding: .5em 1em 0;
h4 {
font-size: 1em;
diff --git a/webapp/sass/responsive/_desktop.scss b/webapp/sass/responsive/_desktop.scss
index 67ec9e3a7..184b57710 100644
--- a/webapp/sass/responsive/_desktop.scss
+++ b/webapp/sass/responsive/_desktop.scss
@@ -91,7 +91,15 @@
max-width: calc(100vw - 800px);
.multi-teams & {
- max-width: calc(100vw - 750px);
+ max-width: calc(100vw - 775px);
+ }
+ }
+ }
+
+ .channel-header__info {
+ .channel-header__description {
+ .multi-teams & {
+ max-width: calc(100vw - 730px);
}
}
}
diff --git a/webapp/sass/responsive/_mobile.scss b/webapp/sass/responsive/_mobile.scss
index 862c3a59c..8f44a883f 100644
--- a/webapp/sass/responsive/_mobile.scss
+++ b/webapp/sass/responsive/_mobile.scss
@@ -781,10 +781,7 @@
.settings-content {
.section-edit {
- padding-right: 0;
- position: absolute;
- right: 15px;
- top: 14px;
+ text-align: left;
.fa {
display: inline-block;
@@ -873,16 +870,20 @@
.heading {
font-size: 17px;
font-weight: 400;
- line-height: normal;
+ line-height: 50px;
position: relative;
- top: 14px;
vertical-align: top;
+
+ .ios & {
+ line-height: 48px;
+ }
}
.header-dropdown__icon {
font-size: 12px;
+ line-height: 50px;
margin-left: 5px;
- top: 20px;
+ top: 0;
vertical-align: top;
}
}
@@ -1024,9 +1025,8 @@
.icon--refresh {
@include opacity(.6);
- color: $black;
- right: 30px;
- top: 15px;
+ right: 16px;
+ top: 9px;
}
.form-control {
@@ -1047,8 +1047,8 @@
@include single-transition(transform, .35s, ease);
@include translate3d(290px, 0, 0);
border: none;
- width: 290px;
visibility: hidden;
+ width: 290px;
&.visible {
display: block;
@@ -1078,7 +1078,7 @@
}
.nav-pills__container {
- height: calc(100% - 60px);
+ height: calc(100% - 55px);
}
> div {
@@ -1291,10 +1291,10 @@
.app__content {
margin: 0;
- padding-top: 56px;
+ padding-top: 50px;
.channel__wrap & {
- padding-top: 56px;
+ padding-top: 50px;
}
#channel-header {
@@ -1579,6 +1579,10 @@
}
@media screen and (max-width: 480px) {
+ #user-profile-popover {
+ left: 50px !important;
+ }
+
.post {
.img-div {
max-width: 100%;
diff --git a/webapp/sass/responsive/_tablet.scss b/webapp/sass/responsive/_tablet.scss
index 8b81f30ca..ef4c2e8e5 100644
--- a/webapp/sass/responsive/_tablet.scss
+++ b/webapp/sass/responsive/_tablet.scss
@@ -5,20 +5,20 @@
&.move--left {
.channel-header {
.heading {
- max-width: calc(100vw - 600px);
+ max-width: calc(100vw - 620px);
.multi-teams & {
- max-width: calc(100vw - 650px);
+ max-width: calc(100vw - 670px);
}
}
}
.channel-header__info {
.channel-header__description {
- max-width: calc(100vw - 600px);
+ max-width: calc(100vw - 620px);
.multi-teams & {
- max-width: calc(100vw - 650px);
+ max-width: calc(100vw - 670px);
}
}
}
@@ -34,20 +34,20 @@
.channel-header__info {
.channel-header__description {
- max-width: calc(100vw - 660px);
+ max-width: calc(100vw - 680px);
.multi-teams & {
- max-width: calc(100vw - 710px);
+ max-width: calc(100vw - 730px);
}
}
}
.channel-header {
.heading {
- max-width: calc(100vw - 700px);
+ max-width: calc(100vw - 720px);
.multi-teams & {
- max-width: calc(100vw - 750px);
+ max-width: calc(100vw - 770px);
}
}
}
diff --git a/webapp/utils/constants.jsx b/webapp/utils/constants.jsx
index b2693ecf5..abe891e28 100644
--- a/webapp/utils/constants.jsx
+++ b/webapp/utils/constants.jsx
@@ -493,7 +493,7 @@ export const Constants = {
buttonBg: '#166de0',
buttonColor: '#ffffff',
errorTextColor: '#fd5960',
- mentionHighlightBg: '#fff2bb',
+ mentionHighlightBg: '#ffe577',
mentionHighlightLink: '#166de0',
codeTheme: 'github',
image: mattermostThemeImage
diff --git a/webapp/utils/utils.jsx b/webapp/utils/utils.jsx
index a646f0e66..b14bdaf11 100644
--- a/webapp/utils/utils.jsx
+++ b/webapp/utils/utils.jsx
@@ -540,11 +540,11 @@ export function applyTheme(theme) {
if (theme.sidebarHeaderTextColor) {
changeCss('.app__body .status-wrapper .status_dropdown__toggle .status-edit, .multi-teams .team-sidebar .team-wrapper .team-container .team-btn, .sidebar--left .team__header .header__info, .app__body .sidebar--menu .team__header .header__info, .app__body .post-list__timestamp > div', 'color:' + theme.sidebarHeaderTextColor);
- changeCss('.app__body .sidebar--left .status-wrapper .status_dropdown__toggle .offline--icon, .app__body .sidebar-header-dropdown__icon svg', 'fill:' + theme.sidebarHeaderTextColor);
+ changeCss('.app__body .icon--sidebarHeaderTextColor svg, .app__body .sidebar--left .status-wrapper .status_dropdown__toggle .offline--icon, .app__body .sidebar-header-dropdown__icon svg', 'fill:' + theme.sidebarHeaderTextColor);
changeCss('.sidebar--left .team__header .user__name, .app__body .sidebar--menu .team__header .user__name', 'color:' + changeOpacity(theme.sidebarHeaderTextColor, 0.8));
changeCss('.sidebar--left .team__header:hover .user__name, .app__body .sidebar--menu .team__header:hover .user__name', 'color:' + theme.sidebarHeaderTextColor);
changeCss('.app__body .modal .modal-header .modal-title, .app__body .modal .modal-header .modal-title .name, .app__body .modal .modal-header button.close', 'color:' + theme.sidebarHeaderTextColor);
- changeCss('.app__body #navbar .navbar-default .navbar-brand .heading', 'color:' + theme.sidebarHeaderTextColor);
+ changeCss('.app__body #navbar .navbar-default .navbar-brand .dropdown-toggle', 'color:' + theme.sidebarHeaderTextColor);
changeCss('.app__body #navbar .navbar-default .navbar-toggle .icon-bar', 'background:' + theme.sidebarHeaderTextColor);
changeCss('.app__body .post-list__timestamp > div', 'border-color:' + changeOpacity(theme.sidebarHeaderTextColor, 0.5));
changeCss('@media(max-width: 768px){.app__body .search-bar__container', 'color:' + theme.sidebarHeaderTextColor);
@@ -677,13 +677,10 @@ export function applyTheme(theme) {
changeCss('.app__body .post-reaction:not(.post-reaction--current-user)', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.25));
changeCss('.app__body .post-reaction:not(.post-reaction--current-user)', 'color:' + changeOpacity(theme.centerChannelColor, 0.7));
changeCss('.app__body .emoji-picker', 'color:' + theme.centerChannelColor);
- changeCss('.app__body .emoji-picker, .app__body .emoji-picker__search-container .emoji-picker__search', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2));
- changeCss('.app__body .emoji-picker, .app__body .emoji-picker__items .emoji-picker__search-container .emoji-picker__search', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2));
+ changeCss('.app__body .emoji-picker', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2));
+ changeCss('.app__body .emoji-picker__preview, .app__body .emoji-picker__items, .app__body .emoji-picker__search-container', 'border-top-color:' + changeOpacity(theme.centerChannelColor, 0.2));
changeCss('.app__body .emoji-picker__items', 'background-color:' + changeOpacity(theme.centerChannelColor, 0.05));
- changeCss('.app__body .emoji-picker__categories', 'border-bottom-color:' + changeOpacity(theme.centerChannelColor, 0.2));
changeCss('.emoji-picker__category .fa:hover', 'color:' + changeOpacity(theme.centerChannelColor, 0.8));
-
- changeCss('.app__body .emoji-picker__preview', 'border-top-color:' + changeOpacity(theme.centerChannelColor, 0.2));
changeCss('.app__body .emoji-picker__category, .app__body .emoji-picker__category:focus, .app__body .emoji-picker__category:hover', 'color:' + changeOpacity(theme.centerChannelColor, 0.3));
changeCss('.app__body .emoji-picker__category--selected, .app__body .emoji-picker__category--selected:focus, .app__body .emoji-picker__category--selected:hover', 'color:' + theme.centerChannelColor);
changeCss('.app__body .emoji-picker__item-wrapper:hover', 'background-color:' + changeOpacity(theme.centerChannelColor, 0.8));
@@ -1110,7 +1107,7 @@ export function isDirectChannelForUser(otherUserId, channel) {
}
export function importSlack(file, success, error) {
- Client4.importTeam(file, 'slack').then(success).catch(error);
+ Client4.importTeam(TeamStore.getCurrent().id, file, 'slack').then(success).catch(error);
}
export function windowWidth() {
diff --git a/webapp/yarn.lock b/webapp/yarn.lock
index 21ac7dbef..a311ccaa0 100644
--- a/webapp/yarn.lock
+++ b/webapp/yarn.lock
@@ -5029,9 +5029,9 @@ map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
-marked@mattermost/marked#8f5902fff9bad793cd6c66e0c44002c9e79e1317:
+marked@mattermost/marked#c0b5f4a651b0af63e974522b20b93b7999490c53:
version "0.3.5"
- resolved "https://codeload.github.com/mattermost/marked/tar.gz/8f5902fff9bad793cd6c66e0c44002c9e79e1317"
+ resolved "https://codeload.github.com/mattermost/marked/tar.gz/c0b5f4a651b0af63e974522b20b93b7999490c53"
match-at@0.1.0:
version "0.1.0"
@@ -5045,9 +5045,9 @@ math-expression-evaluator@^1.2.14:
version "1.2.16"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.16.tgz#b357fa1ca9faefb8e48d10c14ef2bcb2d9f0a7c9"
-mattermost-redux@mattermost/mattermost-redux#webapp-master:
+mattermost-redux@mattermost/mattermost-redux#webapp-4.0:
version "0.0.1"
- resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/a850fc2696c7083a068f7852c1d4b8bce0ec72ba"
+ resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/ea67cb97d1e34b251e13a356583223284f544aa5"
dependencies:
deep-equal "1.0.1"
harmony-reflect "1.5.1"