Compare commits

...

72 Commits

Author SHA1 Message Date
Mattermost Build
40f61d6b2f Bump app build number to 256 (#3750) 2019-12-20 14:03:48 -03:00
Mattermost Build
f5b9583670 Fix RN patch for CBA support (#3747) 2019-12-20 14:00:25 -03:00
Mattermost Build
0134ab31b7 Bump app build number to 255 (#3742) 2019-12-19 21:47:35 -07:00
Mattermost Build
8d26937830 Automated cherry pick of #3738 (#3739)
* Fix headers for ESR 5.9

* check if reactions is defined to avoid a crash with servers without metadata

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2019-12-19 21:37:58 -07:00
Mattermost Build
09172ac532 Bump app build number to 254 (#3734) 2019-12-18 21:43:45 -07:00
Mattermost Build
387b6aec2b Bump app version number to 1.26.1 (#3731) 2019-12-18 21:39:29 -07:00
Miguel Alatzar
e653a290e8 Upgrade jsc-android (#3720) (#3728) 2019-12-18 21:29:14 -07:00
Mattermost Build
fcd57c81bf Bump app build number to 253 (#3714) 2019-12-16 20:12:22 -07:00
Miguel Alatzar
d82a0c6970 [MM-21270] Fixing team join without the invite id (#3710) (#3712)
* Fixing team join without the invite id

* Fixing tests

* Adding tests to verify proper behavior calling the correct function based on the server version

* Extract server version from headers

* Make linter happy

* Update mattermost-redux

* Update mattermost-redux
2019-12-16 19:16:25 -07:00
Mattermost Build
04a161f38c Bump app build number to 252 (#3707) 2019-12-16 07:41:27 -03:00
Elias Nahum
a34c7e3341 Fix Hamburger and iOS App Icon badge number when marking channel as unread (#3705)
* Fix Hamburger and App Icon badge number when marking channel as unread

* Temp mm-redux commit hash

* Update mm-redux commit hash
2019-12-16 07:33:23 -03:00
Mattermost Build
491c8e8a15 Bump app build number to 251 (#3704) 2019-12-13 18:17:58 -03:00
Saturnino Abril
c77046b4ba MM-21153 Count mentions in DM channels using mention_count #3700 (#3702) 2019-12-13 18:12:29 -03:00
CJ
fe5e702138 MM-18054 CherryPick for 1.26 (#3698)
CherryPick for 1.26
2019-12-12 19:45:05 -05:00
Elias Nahum
59a5ed746d Add ruby setup to circleCI deploy jobs 2019-12-10 20:58:12 -03:00
Mattermost Build
59ad6d4ba9 Set up Ruby step (#3692) 2019-12-10 20:22:24 -03:00
Mattermost Build
e7a69afc65 Use ruby 2.6.3 on circleCI (#3690) 2019-12-10 18:04:03 -03:00
Mattermost Build
b8e7fcaa21 Bump app build number to 250 (#3688) 2019-12-10 17:19:57 -03:00
Mattermost Build
be4c0401a6 MM-20947 Don't mark channel as read when reconnecting to manually unread channel (#3687) 2019-12-10 16:51:31 -03:00
Mattermost Build
d9cd23f68c MM-21062 Added margin to custom Emoji (#3686)
Added margin to custom emoji style to match native emoji.
2019-12-10 13:37:04 -03:00
Elias Nahum
9ab6b36e2f translations PR 20191209 (#3680) 2019-12-09 17:35:48 -07:00
Mattermost Build
7378e116d6 Automated cherry pick of #3677 (#3679)
* MM-21085 Updated waitHydration

Updated the hydration of hte store to first check if it completed as this was being caused due to a race condition.

* MM-21085 Updated for callback

MM-21085 Updated for callback
2019-12-09 12:58:09 -07:00
Mattermost Build
62758221d4 Add channel ID to push notification sent on failed reply (#3678) 2019-12-09 12:23:59 -07:00
Mattermost Build
6953801afa Pass callback to waitForHydration (#3671) 2019-12-06 12:13:55 -07:00
Mattermost Build
6ed2975f71 Show autocomplete view only when there are children (#3670) 2019-12-06 11:39:24 -07:00
Mattermost Build
4ef1fb0eab Set number to 0 only if null (#3669) 2019-12-06 11:38:23 -07:00
Mattermost Build
b19d804c39 Bump app build number to 249 (#3661) 2019-12-03 16:15:39 -03:00
Mattermost Build
36228c89a1 Automated cherry pick of #3655 (#3660)
* MM-20790 Mark as Unread option should not be available on mobile if the server does not support it

 * Check for server version with min 5.18v for showing the option
   to mark as unread

* Change if condition
2019-12-03 16:12:22 -03:00
Mattermost Build
79881556cf Fix SSO login on iOS (#3658) 2019-12-03 13:44:02 -03:00
Elias Nahum
d5f6bf722b translations PR 20191202 (#3652) 2019-12-03 06:44:04 -03:00
Mattermost Build
a730bec201 MM-20778 Remove caption as part of the file path (#3654) 2019-12-02 21:43:42 -03:00
Mattermost Build
66424a698b MM-20780 MM-20782 Clear cookies on logout (#3653) 2019-12-03 08:36:35 +08:00
Hossein Ahmadian-Yazdi
162f4ffa96 updated redux hash for release-1.26 (#3651) 2019-12-02 14:50:11 -05:00
Mattermost Build
14c937ee2c Automated cherry pick of #3644 (#3649)
* Remove extra info from logs

* Review feedback
2019-12-02 09:31:33 -07:00
Mattermost Build
00ced38382 MM-20779 Handle Android notification reply with special characters (#3648) 2019-12-02 08:29:08 -07:00
Mattermost Build
4f3e5dac1e MM-20789 Enforce SECURE_SOFTWARE (#3647) 2019-12-02 08:26:54 -07:00
Mattermost Build
49d9e5ef73 Automated cherry pick of #3635 (#3641)
* MM-20758 MM-20762 Fix archived channels in more channels screen

* Separate archived and public channels
2019-12-02 06:52:14 -03:00
Mattermost Build
7b0434dcf9 MM-20228 Update Mark as Unread menu option text (#3639) 2019-11-30 14:16:30 -03:00
Mattermost Build
6e4e8407ac Automated cherry pick of #3607 (#3629)
* Update NOTICE.txt

* Update NOTICE.txt

* Update NOTICE.txt
2019-11-28 08:22:52 -05:00
Mattermost Build
dfc50b7dff Automated cherry pick of #3618 (#3627)
* Use bottom sheet over modal

* check-style fixes
2019-11-28 08:12:45 -03:00
Mattermost Build
4b58f01597 MM-19896 Correct helper text on Email Notifications (#3625) 2019-11-28 07:58:24 -03:00
Mattermost Build
ae6e3dfb6d MM-20729 & MM-20731 Fix YouTube playback and rotation (#3624) 2019-11-28 07:55:55 -03:00
Mattermost Build
5a16752275 Automated cherry pick of #3623 (#3626)
* MM-20689 Long post to use all available space

* Add footer and update snapshots

* Fix footer ui

* Remove file_ids from connected component
2019-11-28 17:41:23 +08:00
Mattermost Build
05f5b31815 Automated cherry pick of #3608 (#3620)
* MM-20326 - Updating markdown table css

* Updating UI

* MM-20326 - Updating markdown table css
2019-11-28 03:23:32 +08:00
Mattermost Build
a43a4d1c80 Automated cherry pick of #3595 (#3619)
* Fix autocomplete when editing channel header

* Fix iOS scroll

* Use zIndex on header help text view

* No need to use innerRef

* Fix typos
2019-11-27 10:46:08 -07:00
Mattermost Build
551456554d Automated cherry pick of #3610 (#3616)
* MM-20694 Fix race condition when the store has not rehydrated

* Making waitForHydration re-usable
2019-11-27 12:10:51 -03:00
Mattermost Build
06a10b9b75 Remove react-native-cookies patch (#3615) 2019-11-27 11:36:27 -03:00
Mattermost Build
ec8c83c2eb Android release launch screen (#3613) 2019-11-27 07:05:12 -03:00
Mattermost Build
bb8ebfba42 Automated cherry pick of #3572 (#3612)
* MM-19834 Fixed direct mentions highlight color

Updated the AtMention to check if it will be highlighted before applying it's color. The highlight function was applying it's color before the AtMention color, so it was being overwritten.

* MM-19834 Start Unit Test

* MM-19834 Added Unit Tests

Added unit tests for the rendering of highlighted/non-highlighted displayname.
2019-11-27 09:12:10 +08:00
Mattermost Build
9661a61353 Fix video player refs (#3605) 2019-11-25 17:31:16 -07:00
Mattermost Build
2a261249bb Automated cherry pick of #3601 (#3602)
* Bump app build number to 248

* Bump app version number to 1.26.0
2019-11-22 15:47:56 -03:00
Mattermost Build
c4727e2492 Automated cherry pick of #3588 (#3596)
* MM-20201 Fixed asterisk on Nickname

Added optional prop to the Nickname field, which removes the asterisk

* MM-20201 Updated Position field also

Added optional prop to position field.
2019-11-21 18:05:06 -07:00
Mattermost Build
591d65e57b Automated cherry pick of #3586 (#3594)
* Fix id-loaded on Android

* Fix id-loaded on iOS

* Remove constant for PUSH_TYPE_ID_LOADED
2019-11-21 19:47:44 -03:00
Elias Nahum
8838fd92c2 Bump app build number to 247 (#3593) 2019-11-21 13:21:21 -03:00
Mattermost Build
9b08098572 Automated cherry pick of #3590 (#3592)
* Create notification channels only if supported

* Update comment
2019-11-21 13:18:04 -03:00
Elias Nahum
dd0f424a63 Bump version to 1.25.1 and Build number to 246 (#3587)
* Bump app build number to 246

* Bump app version number to 1.25.1

* Update Fastlane
2019-11-20 21:21:58 -03:00
Mattermost Build
04c660a2e8 Use LifecycleEventListener for MattermostManagedModule (#3585) 2019-11-20 15:32:47 -07:00
Mattermost Build
b9c95a7953 Avoid OOM crash on iOS13 Share Extension (#3583) 2019-11-20 10:53:24 -07:00
Mattermost Build
99e6091014 Fixes crash when sso cookies does not contain an expiration date (#3582) 2019-11-20 10:13:50 -07:00
Harrison Healey
3ba989f521 Merge branch 'mark-as-unread' into release-1.26 2019-11-19 16:07:42 -05:00
Mattermost Build
b7d4d592cc Automated cherry pick of #3571 (#3577)
* Preview markdown table as 5x5 max

* Make linter happy

* Determine max columns from device width

* Add snapshot test

* Use Dimensions and update unit tests

* Remove async
2019-11-19 12:32:12 -07:00
Mattermost Build
1111818d9f Fix CircleCI iOS build by adding watchman (#3576) 2019-11-19 13:55:32 -03:00
Elias Nahum
c1d3610e0d Update Podfile.lock 2019-11-19 13:47:47 -03:00
Elias Nahum
40102b0cbc translations PR 20191118 (#3569) 2019-11-19 14:41:03 +08:00
Matheus Cardoso
3bd3e56025 MM-17838 Wrap reactions when they exceed screen size (#3144)
* MM-17838 Wrap reactions when they exceed screen size

* Hide add reaction button after 40 reactions

* Hide add reaction button after 40 reactions

* Fix tests

* Fix crash when post has no reactions and convert to factory

* Create constant and use a separate prop for allowing more reactions
2019-11-18 22:13:34 -03:00
Elias Nahum
07ee9f0cc9 Update Podfile.lock 2019-11-18 21:11:48 -03:00
Mattermost Build
68d7aad120 Automated cherry pick of #3562 (#3570)
* Android: Fetch notification in notificationReceiptDelivery (#3552)

* Fetch notification in notificationReceiptDelivery

* Fix patch

* Fix patch take 2

* No need to send user_id to ack endpoint

* Just putString in mNotificationProps

* Fix patch take 3

* Revert react-native-notifications patch

* Update patch and fix rejections

* Remove trailing newline in patch

* Move PushNotification changes to end of patch

* npm cache test

* Revert "npm cache test"

This reverts commit d31030aaee.

* Created patch after upgrading node

* Created patch after upgrading node take 2

* Remove androidx changes from patch

* Patch packages then jetify

* Cache node_modules without patches

* Remove adding of default message (#3557)

* iOS: Fetch id-loaded push notification from server (#3556)

* Fetch notification from server

* Parse fetched notification response

* Fix id-loaded notifications for DM/GM's

* Only add keys if they exist

* Throw exception if response code is not 200
2019-11-18 14:40:43 -08:00
Mattermost Build
7fd1e26678 MM-19991 Filtering search by channel should also show the channel name and not only its ID (#3568) 2019-11-18 12:59:27 -03:00
Mattermost Build
3d7acb2eb9 MM-20007 Fix app crashes when previewing some gif files (#3567) 2019-11-18 12:36:29 -03:00
Mattermost Build
df5c1d73fe Fix theme color for the more channel options (#3566) 2019-11-18 12:19:23 -03:00
Valentijn Nieman
6020df0b38 MM-19337 Enable users to view archived channels (#3514)
* Archived channels dropdown in more channels modal

* Rename redux actions for archived channels

* Fixed tests and updated snapshots

* Unit test for search in more_channels

* Use translation for dropdown label

* Minimum server requirement for dropdown

* Use BottomSheet instead of Picker component

* loadPublicAndArchivedChannels action instead of separate channel get actions

* Add styles to StyleSheet

* Update mattermost-redux hash

* Update mattermost-redux hash

* Default case for switching channels dropdown

* Improve imports in more_channels.js component

* Fix typo in import

* Add padding to dropdown if landscape

* Update snapshot

* Page counter for public and archive channels

* Updated mattermost-redux commit hash

* Bottom sheet title for ios

* i18n-extract for new showArchived and showPublic strings

* Update mattermost-redux commit hash to latest master
2019-11-18 22:46:50 +08:00
Mattermost Build
fbf712dc8e MM-19993 Fix Channel spinner is black on dark theme (#3564) 2019-11-18 11:09:09 -03:00
113 changed files with 4563 additions and 4034 deletions

View File

@@ -42,6 +42,7 @@ commands:
for:
type: string
steps:
- ruby-setup
- restore_cache:
name: Restore Fastlane cache
key: v1-gems-<< parameters.for >>-{{ checksum "fastlane/Gemfile.lock" }}-{{ arch }}
@@ -198,6 +199,12 @@ commands:
- store_artifacts:
path: ~/mattermost-mobile/<<parameters.filename>>
ruby-setup:
steps:
- run:
name: Set Ruby Version
command: echo "ruby-2.6.3" > ~/.ruby-version
jobs:
test:
working_directory: ~/mattermost-mobile
@@ -311,6 +318,7 @@ jobs:
name: android
resource_class: medium
steps:
- ruby-setup
- deploy-to-store:
task: "Deploy to Google Play"
target: android
@@ -321,6 +329,7 @@ jobs:
name: android
resource_class: medium
steps:
- ruby-setup
- deploy-to-store:
task: "Deploy to Google Play"
target: android
@@ -329,6 +338,7 @@ jobs:
deploy-ios-release:
executor: ios
steps:
- ruby-setup
- deploy-to-store:
task: "Deploy to TestFlight"
target: ios
@@ -337,6 +347,7 @@ jobs:
deploy-ios-beta:
executor: ios
steps:
- ruby-setup
- deploy-to-store:
task: "Deploy to TestFlight"
target: ios

View File

@@ -78,6 +78,41 @@ SOFTWARE.
---
## @react-native-community/cameraroll
This product contains 'cameraroll' by Bartol Karuza.
React-native native module that provides access to the local camera roll or photo library
* HOMEPAGE:
* https://github.com/react-native-community/react-native-cameraroll
* LICENSE: MIT
MIT License
Copyright (c) 2015-present, Facebook, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
## @react-native-community/netinfo
This product contains 'netinfo' by Matt Oakes.
@@ -113,6 +148,41 @@ SOFTWARE.
---
## @sentry/react-native
This product contains 'react-native-sentry' by Sentry.
Official Sentry SDK for react-native
* HOMEPAGE:
* https://github.com/getsentry/react-native-sentry
* LICENSE: MIT
The MIT License (MIT)
Copyright (c) 2017 Sentry
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
## analytics-react-native
This product contains 'analytics-react-native' by Javier Alvarez.
@@ -444,6 +514,39 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---
## form-data
This product contains 'form-data' by form-data.
A module to create readable "multipart/form-data" streams. Can be used to submit forms and file uploads to other web applications.
* HOMEPAGE:
* https://github.com/form-data/form-data
* LICENSE: MIT
Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---
## fuse.js
This product contains 'fuse.js' by Kirollos Risk.
@@ -1578,6 +1681,41 @@ SOFTWARE.
---
## react-native-fast-image
This product contains 'react-native-fast-image' by Dylan Vann.
Performant React Native image component
* HOMEPAGE:
* https://github.com/DylanVann/react-native-fast-image
* LICENSE: MIT
MIT License
Copyright (c) 2017 Dylan Vann
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
## react-native-gesture-handler
This product contains 'react-native-gesture-handler' by Krzysztof Magiera.
@@ -2067,41 +2205,6 @@ limitations under the License.
---
## react-native-sentry
This product contains 'react-native-sentry' by Sentry.
Official Sentry SDK for react-native
* HOMEPAGE:
* https://github.com/getsentry/react-native-sentry
* LICENSE: MIT
The MIT License (MIT)
Copyright (c) 2017 Sentry
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
## react-native-slider
This product contains 'react-native-slider' by Jean Regisser.
@@ -2377,6 +2480,29 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
## react-navigation-stack
This product contains 'react-navigation-stack' by react-navigation.
Stack navigator for React Navigation
* HOMEPAGE:
* https://github.com/react-navigation/stack
* LICENSE: MIT
MIT License
Copyright (c) 2017 React Native Community
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
----
## react-redux
This product contains 'react-redux' by Dan Abramov.
@@ -2482,6 +2608,41 @@ SOFTWARE.
---
## redux-offline
This product contains 'redux-offline' by redux-offline.
Build Offline-First Apps for Web and React Native
* HOMEPAGE:
* https://github.com/redux-offline/redux-offline
* LICENSE: MIT
MIT License
Copyright (c) 2017 Jani Eväkallio
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
## redux-persist
This product contains 'redux-persist' by Zack Story.

View File

@@ -140,8 +140,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
missingDimensionStrategy "RNN.reactNativeVersion", "reactNative60"
versionCode 245
versionName "1.25.0"
versionCode 256
versionName "1.26.1"
multiDexEnabled = true
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'

View File

@@ -50,7 +50,6 @@ public class CustomPushNotification extends PushNotification {
private static final String PUSH_TYPE_MESSAGE = "message";
private static final String PUSH_TYPE_CLEAR = "clear";
private static final String PUSH_TYPE_ID_LOADED = "id_loaded";
private static final String PUSH_TYPE_UPDATE_BADGE = "update_badge";
private NotificationChannel mHighImportanceChannel;
@@ -107,13 +106,14 @@ public class CustomPushNotification extends PushNotification {
final String ackId = initialData.getString("ack_id");
final String postId = initialData.getString("post_id");
final String channelId = initialData.getString("channel_id");
final boolean isIdLoaded = initialData.getString("id_loaded") != null ? initialData.getString("id_loaded").equals("true") : false;
int notificationId = MESSAGE_NOTIFICATION_ID;
if (ackId != null) {
notificationReceiptDelivery(ackId, postId, type, new ResolvePromise() {
notificationReceiptDelivery(ackId, postId, type, isIdLoaded, new ResolvePromise() {
@Override
public void resolve(@Nullable Object value) {
if (PUSH_TYPE_ID_LOADED.equals(type)) {
if (isIdLoaded) {
Bundle response = (Bundle) value;
mNotificationProps = createProps(response);
}
@@ -279,7 +279,7 @@ public class CustomPushNotification extends PushNotification {
private void setNotificationNumber(Notification.Builder notification, String channelId) {
Integer number = channelIdToNotificationCount.get(channelId);
if (number != null) {
if (number == null) {
number = 0;
}
notification.setNumber(number);
@@ -330,7 +330,7 @@ public class CustomPushNotification extends PushNotification {
}
private void setMessagingStyleConversationTitle(Notification.MessagingStyle messagingStyle, String conversationTitle, Bundle bundle) {
String channelName = bundle.getString("channel_name");
String channelName = getConversationTitle(bundle);
String senderName = bundle.getString("sender_name");
if (android.text.TextUtils.isEmpty(senderName)) {
senderName = getSenderName(bundle);
@@ -358,6 +358,9 @@ public class CustomPushNotification extends PushNotification {
Bundle data = bundleList.get(i);
String message = data.getString("message");
String senderId = data.getString("sender_id");
if (senderId == null) {
senderId = "sender_id";
}
Bundle userInfoBundle = data.getBundle("userInfo");
String senderName = getSenderName(data);
if (userInfoBundle != null) {
@@ -518,18 +521,23 @@ public class CustomPushNotification extends PushNotification {
}
}
return " ";
return getConversationTitle(bundle);
}
private String removeSenderNameFromMessage(String message, String senderName) {
return message.replaceFirst(senderName, "").replaceFirst(": ", "").trim();
}
private void notificationReceiptDelivery(String ackId, String postId, String type, ResolvePromise promise) {
ReceiptDelivery.send(context, ackId, postId, type, promise);
private void notificationReceiptDelivery(String ackId, String postId, String type, boolean isIdLoaded, ResolvePromise promise) {
ReceiptDelivery.send(context, ackId, postId, type, isIdLoaded, promise);
}
private void createNotificationChannels() {
// Notification channels are not supported in Android Nougat and below
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
return;
}
final NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
mHighImportanceChannel = new NotificationChannel("channel_01", "High Importance", NotificationManager.IMPORTANCE_HIGH);

View File

@@ -12,7 +12,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.mattermost.share.ShareModule;
import com.learnium.RNDeviceInfo.RNDeviceModule;
import com.imagepicker.ImagePickerModule;
@@ -208,8 +207,6 @@ public class MainApplication extends NavigationApplication implements INotificat
super.onCreate();
instance = this;
registerActivityLifecycleCallbacks(new ManagedActivityLifecycleCallbacks());
// Delete any previous temp files created by the app
File tempFolder = new File(getApplicationContext().getCacheDir(), "mmShare");
RealPathUtil.deleteTempFiles(tempFolder);
@@ -269,7 +266,7 @@ public class MainApplication extends NavigationApplication implements INotificat
}
public synchronized Bundle getManagedConfig() {
if (mManagedConfig!= null && mManagedConfig.size() > 0) {
if (mManagedConfig != null && mManagedConfig.size() > 0) {
return mManagedConfig;
}

View File

@@ -1,145 +0,0 @@
package com.mattermost.rnbeta;
import android.os.Bundle;
import android.app.Activity;
import android.app.Application.ActivityLifecycleCallbacks;
import android.content.Context;
import android.content.RestrictionsManager;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.util.ArraySet;
import android.util.Log;
import java.util.Set;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.modules.core.DeviceEventManagerModule;
public class ManagedActivityLifecycleCallbacks implements ActivityLifecycleCallbacks {
private static final String TAG = ManagedActivityLifecycleCallbacks.class.getSimpleName();
private final IntentFilter restrictionsFilter =
new IntentFilter(Intent.ACTION_APPLICATION_RESTRICTIONS_CHANGED);
private final BroadcastReceiver restrictionsReceiver = new BroadcastReceiver() {
@Override public void onReceive(Context ctx, Intent intent) {
if (ctx != null) {
Bundle managedConfig = MainApplication.instance.loadManagedConfig(ctx);
// Check current configuration settings, change your app's UI and
// functionality as necessary.
Log.i(TAG, "Managed Configuration Changed");
sendConfigChanged(managedConfig);
}
}
};
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
MattermostManagedModule managedModule = MattermostManagedModule.getInstance();
if (managedModule != null && managedModule.isBlurAppScreenEnabled() && activity != null) {
activity.getWindow().setFlags(LayoutParams.FLAG_SECURE,
LayoutParams.FLAG_SECURE);
}
Bundle managedConfig = MainApplication.instance.getManagedConfig();
if (managedConfig != null && activity != null) {
activity.registerReceiver(restrictionsReceiver, restrictionsFilter);
}
}
@Override
public void onActivityResumed(Activity activity) {
ReactContext ctx = MainApplication.instance.getRunningReactContext();
Bundle managedConfig = MainApplication.instance.getManagedConfig();
if (ctx != null) {
Bundle newConfig = MainApplication.instance.loadManagedConfig(ctx);
if (!equalBundles(newConfig, managedConfig)) {
Log.i(TAG, "onResumed Managed Configuration Changed");
sendConfigChanged(newConfig);
}
}
}
@Override
public void onActivityStopped(Activity activity) {
Bundle managedConfig = MainApplication.instance.getManagedConfig();
if (managedConfig != null) {
try {
activity.unregisterReceiver(restrictionsReceiver);
} catch (IllegalArgumentException e) {
// Just ignore this cause the receiver wasn't registered for this activity
}
}
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
private void sendConfigChanged(Bundle config) {
WritableMap result = Arguments.createMap();
if (config != null) {
result = Arguments.fromBundle(config);
}
ReactContext ctx = MainApplication.instance.getRunningReactContext();
if (ctx != null) {
ctx.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("managedConfigDidChange", result);
}
}
private boolean equalBundles(Bundle one, Bundle two) {
if (one == null || two == null)
return false;
if(one.size() != two.size())
return false;
Set<String> setOne = new ArraySet<String>();
setOne.addAll(one.keySet());
setOne.addAll(two.keySet());
Object valueOne;
Object valueTwo;
for(String key : setOne) {
if (!one.containsKey(key) || !two.containsKey(key))
return false;
valueOne = one.get(key);
valueTwo = two.get(key);
if(valueOne instanceof Bundle && valueTwo instanceof Bundle &&
!equalBundles((Bundle) valueOne, (Bundle) valueTwo)) {
return false;
}
else if(valueOne == null) {
if(valueTwo != null)
return false;
}
else if(!valueOne.equals(valueTwo))
return false;
}
return true;
}
}

View File

@@ -4,8 +4,15 @@ import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.BroadcastReceiver;
import android.os.Bundle;
import android.provider.Settings;
import android.view.WindowManager.LayoutParams;
import android.util.ArraySet;
import android.util.Log;
import java.util.Set;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.NativeModule;
@@ -15,14 +22,34 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.LifecycleEventListener;
import com.facebook.react.modules.core.DeviceEventManagerModule;
public class MattermostManagedModule extends ReactContextBaseJavaModule {
public class MattermostManagedModule extends ReactContextBaseJavaModule implements LifecycleEventListener {
private static MattermostManagedModule instance;
private boolean shouldBlurAppScreen = false;
private static final String TAG = MattermostManagedModule.class.getSimpleName();
private final IntentFilter restrictionsFilter =
new IntentFilter(Intent.ACTION_APPLICATION_RESTRICTIONS_CHANGED);
private final BroadcastReceiver restrictionsReceiver = new BroadcastReceiver() {
@Override public void onReceive(Context ctx, Intent intent) {
if (ctx != null) {
Bundle managedConfig = MainApplication.instance.loadManagedConfig(ctx);
// Check current configuration settings, change your app's UI and
// functionality as necessary.
Log.i(TAG, "Managed Configuration Changed");
sendConfigChanged(managedConfig);
handleBlurScreen(managedConfig);
}
}
};
private MattermostManagedModule(ReactApplicationContext reactContext) {
super(reactContext);
reactContext.addLifecycleEventListener(this);
}
public static MattermostManagedModule getInstance(ReactApplicationContext reactContext) {
@@ -42,15 +69,6 @@ public class MattermostManagedModule extends ReactContextBaseJavaModule {
return "MattermostManaged";
}
@ReactMethod
public void blurAppScreen(boolean enabled) {
shouldBlurAppScreen = enabled;
}
public boolean isBlurAppScreenEnabled() {
return shouldBlurAppScreen;
}
@ReactMethod
public void getConfig(final Promise promise) {
try {
@@ -96,4 +114,110 @@ public class MattermostManagedModule extends ReactContextBaseJavaModule {
getCurrentActivity().finish();
System.exit(0);
}
@Override
public void onHostResume() {
Activity activity = getCurrentActivity();
Bundle managedConfig = MainApplication.instance.getManagedConfig();
if (activity != null && managedConfig != null) {
activity.registerReceiver(restrictionsReceiver, restrictionsFilter);
}
ReactContext ctx = MainApplication.instance.getRunningReactContext();
Bundle newManagedConfig = null;
if (ctx != null) {
newManagedConfig = MainApplication.instance.loadManagedConfig(ctx);
if (!equalBundles(newManagedConfig, managedConfig)) {
Log.i(TAG, "onResumed Managed Configuration Changed");
sendConfigChanged(newManagedConfig);
}
}
handleBlurScreen(newManagedConfig);
}
@Override
public void onHostPause() {
Activity activity = getCurrentActivity();
Bundle managedConfig = MainApplication.instance.getManagedConfig();
if (activity != null && managedConfig != null) {
try {
activity.unregisterReceiver(restrictionsReceiver);
} catch (IllegalArgumentException e) {
// Just ignore this cause the receiver wasn't registered for this activity
}
}
}
@Override
public void onHostDestroy() {
}
private void handleBlurScreen(Bundle config) {
Activity activity = getCurrentActivity();
boolean blurAppScreen = false;
if (config != null) {
blurAppScreen = Boolean.parseBoolean(config.getString("blurApplicationScreen"));
}
if (blurAppScreen) {
activity.getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
} else {
activity.getWindow().clearFlags(LayoutParams.FLAG_SECURE);
}
}
private void sendConfigChanged(Bundle config) {
WritableMap result = Arguments.createMap();
if (config != null) {
result = Arguments.fromBundle(config);
}
ReactContext ctx = MainApplication.instance.getRunningReactContext();
if (ctx != null) {
ctx.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("managedConfigDidChange", result);
}
}
private boolean equalBundles(Bundle one, Bundle two) {
if (one == null && two == null) {
return true;
}
if (one == null || two == null)
return false;
if(one.size() != two.size())
return false;
Set<String> setOne = new ArraySet<String>();
setOne.addAll(one.keySet());
setOne.addAll(two.keySet());
Object valueOne;
Object valueTwo;
for(String key : setOne) {
if (!one.containsKey(key) || !two.containsKey(key))
return false;
valueOne = one.get(key);
valueTwo = two.get(key);
if(valueOne instanceof Bundle && valueTwo instanceof Bundle &&
!equalBundles((Bundle) valueOne, (Bundle) valueTwo)) {
return false;
}
else if(valueOne == null) {
if(valueTwo != null)
return false;
}
else if(!valueOne.equals(valueTwo))
return false;
}
return true;
}
}

View File

@@ -21,6 +21,9 @@ import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.json.JSONObject;
import org.json.JSONException;
import com.mattermost.react_native_interface.ResolvePromise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.WritableMap;
@@ -60,7 +63,7 @@ public class NotificationReplyBroadcastReceiver extends BroadcastReceiver {
String token = map.getString("password");
String serverUrl = map.getString("service");
Log.i("ReactNative", String.format("URL=%s TOKEN=%s", serverUrl, token));
Log.i("ReactNative", String.format("URL=%s", serverUrl));
replyToMessage(serverUrl, token, notificationId, message);
}
}
@@ -84,7 +87,6 @@ public class NotificationReplyBroadcastReceiver extends BroadcastReceiver {
final OkHttpClient client = new OkHttpClient();
final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
String json = buildReplyPost(channelId, rootId, message.toString());
Log.i("ReactNative", String.format("JSON STRING %s", json));
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.header("Authorization", String.format("Bearer %s", token))
@@ -96,7 +98,7 @@ public class NotificationReplyBroadcastReceiver extends BroadcastReceiver {
client.newCall(request).enqueue(new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i("ReactNative", String.format("Reply with message %s FAILED exception %s", message, e.getMessage()));
Log.i("ReactNative", String.format("Reply FAILED exception %s", e.getMessage()));
onReplyFailed(notificationManager, notificationId, channelId);
}
@@ -104,9 +106,9 @@ public class NotificationReplyBroadcastReceiver extends BroadcastReceiver {
public void onResponse(Call call, final Response response) throws IOException {
if (response.isSuccessful()) {
onReplySuccess(notificationManager, notificationId, channelId);
Log.i("ReactNative", String.format("Reply with message %s", message));
Log.i("ReactNative", "Reply SUCCESS");
} else {
Log.i("ReactNative", String.format("Reply with message %s FAILED status %s BODY %s", message, response.code(), response.body().string()));
Log.i("ReactNative", String.format("Reply FAILED status %s BODY %s", response.code(), response.body().string()));
onReplyFailed(notificationManager, notificationId, channelId);
}
}
@@ -114,11 +116,15 @@ public class NotificationReplyBroadcastReceiver extends BroadcastReceiver {
}
protected String buildReplyPost(String channelId, String rootId, String message) {
return "{"
+ "\"channel_id\": \"" + channelId + "\","
+ "\"message\": \"" + message + "\","
+ "\"root_id\": \"" + rootId + "\""
+ "}";
try {
JSONObject json = new JSONObject();
json.put("channel_id", channelId);
json.put("message", message);
json.put("root_id", rootId);
return json.toString();
} catch(JSONException e) {
return "{}";
}
}
protected void onReplyFailed(NotificationManager notificationManager, int notificationId, String channelId) {
@@ -127,12 +133,16 @@ public class NotificationReplyBroadcastReceiver extends BroadcastReceiver {
String packageName = mContext.getPackageName();
int smallIconResId = res.getIdentifier("ic_notification", "mipmap", packageName);
Bundle userInfoBundle = new Bundle();
userInfoBundle.putString("channel_id", channelId);
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_ID, NotificationManager.IMPORTANCE_LOW);
notificationManager.createNotificationChannel(channel);
Notification notification =
new Notification.Builder(mContext, CHANNEL_ID)
.setContentTitle("Message failed to send.")
.setSmallIcon(smallIconResId)
.addExtras(userInfoBundle)
.build();
CustomPushNotification.clearNotification(mContext, notificationId, channelId);

View File

@@ -26,7 +26,7 @@ import com.mattermost.react_native_interface.ResolvePromise;
public class ReceiptDelivery {
static final String CURRENT_SERVER_URL = "@currentServerUrl";
public static void send(Context context, final String ackId, final String postId, final String type, ResolvePromise promise) {
public static void send(Context context, final String ackId, final String postId, final String type, final boolean isIdLoaded, ResolvePromise promise) {
final ReactApplicationContext reactApplicationContext = new ReactApplicationContext(context);
MattermostCredentialsHelper.getCredentialsForCurrentServer(reactApplicationContext, new ResolvePromise() {
@@ -48,14 +48,14 @@ public class ReceiptDelivery {
}
}
Log.i("ReactNative", String.format("Send receipt delivery ACK=%s TYPE=%s to URL=%s with TOKEN=%s", ackId, type, serverUrl, token));
execute(serverUrl, postId, token, ackId, type, promise);
Log.i("ReactNative", String.format("Send receipt delivery ACK=%s TYPE=%s to URL=%s with ID-LOADED=%s", ackId, type, serverUrl, isIdLoaded));
execute(serverUrl, postId, token, ackId, type, isIdLoaded, promise);
}
}
});
}
protected static void execute(String serverUrl, String postId, String token, String ackId, String type, ResolvePromise promise) {
protected static void execute(String serverUrl, String postId, String token, String ackId, String type, boolean isIdLoaded, ResolvePromise promise) {
if (token == null) {
promise.reject("Receipt delivery failure", "Invalid token");
return;
@@ -75,6 +75,7 @@ public class ReceiptDelivery {
json.put("platform", "android");
json.put("type", type);
json.put("post_id", postId);
json.put("is_id_loaded", isIdLoaded);
} catch (JSONException e) {
Log.e("ReactNative", "Receipt delivery failed to build json payload");
promise.reject("Receipt delivery failure", e.toString());
@@ -96,8 +97,8 @@ public class ReceiptDelivery {
try {
Response response = client.newCall(request).execute();
String responseBody = response.body().toString();
if (response.code() != 200) {
String responseBody = response.body().string();
if (response.code() != 200 || !isIdLoaded) {
throw new Exception(responseBody);
}
JSONObject jsonResponse = new JSONObject(responseBody);

View File

@@ -14,8 +14,6 @@ import {
leaveChannel as serviceLeaveChannel,
selectChannel,
getChannelStats,
getChannels,
getArchivedChannels,
} from 'mattermost-redux/actions/channels';
import {
getPosts,
@@ -35,6 +33,7 @@ import {
getMyChannelMember,
getRedirectChannelNameForTeam,
getChannelsNameMapInTeam,
isManuallyUnread,
} from 'mattermost-redux/selectors/entities/channels';
import {getCurrentTeamId, getTeamByName} from 'mattermost-redux/selectors/entities/teams';
@@ -75,26 +74,6 @@ export function loadChannelsByTeamName(teamName) {
};
}
export function loadPublicAndArchivedChannels(teamId, publicPage, archivedPage, perPage, shouldLoadArchivedChannels) {
return async (dispatch) => {
return dispatch(getChannels(
teamId,
publicPage,
perPage
)).then(async (publicChannels) => {
if (shouldLoadArchivedChannels) {
const archivedChannels = await dispatch(getArchivedChannels(
teamId,
archivedPage,
perPage
));
return archivedChannels;
}
return publicChannels;
});
};
}
export function loadProfilesAndTeamMembersForDMSidebar(teamId) {
return async (dispatch, getState) => {
const state = getState();
@@ -469,6 +448,17 @@ export function markChannelViewedAndRead(channelId, previousChannelId, markOnSer
};
}
export function markChannelViewedAndReadOnReconnect(channelId) {
return (dispatch, getState) => {
if (isManuallyUnread(getState(), channelId)) {
return;
}
dispatch(markChannelAsRead(channelId));
dispatch(markChannelAsViewed(channelId));
};
}
export function toggleDMChannel(otherUserId, visible, channelId) {
return async (dispatch, getState) => {
const state = getState();

View File

@@ -0,0 +1,39 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`AtMention should match snapshot, no highlight 1`] = `
<Text>
@John.Smith
</Text>
`;
exports[`AtMention should match snapshot, with highlight 1`] = `
<Text
onLongPress={[Function]}
onPress={[Function]}
>
<Text
style={null}
>
@John.Smith
</Text>
</Text>
`;
exports[`AtMention should match snapshot, without highlight 1`] = `
<Text
onLongPress={[Function]}
onPress={[Function]}
>
<Text
style={
Object {
"color": "#ff0000",
}
}
>
@Victor.Welch
</Text>
</Text>
`;

View File

@@ -16,6 +16,7 @@ import {goToScreen} from 'app/actions/navigation';
export default class AtMention extends React.PureComponent {
static propTypes = {
isSearchResult: PropTypes.bool,
mentionKeys: PropTypes.array.isRequired,
mentionName: PropTypes.string.isRequired,
mentionStyle: CustomPropTypes.Style,
onPostPress: PropTypes.func,
@@ -111,7 +112,7 @@ export default class AtMention extends React.PureComponent {
};
render() {
const {isSearchResult, mentionName, mentionStyle, onPostPress, teammateNameDisplay, textStyle} = this.props;
const {isSearchResult, mentionName, mentionStyle, onPostPress, teammateNameDisplay, textStyle, mentionKeys} = this.props;
const {user} = this.state;
if (!user.username) {
@@ -119,6 +120,7 @@ export default class AtMention extends React.PureComponent {
}
const suffix = this.props.mentionName.substring(user.username.length);
const highlighted = mentionKeys.some((item) => item.key === user.username);
return (
<Text
@@ -126,7 +128,7 @@ export default class AtMention extends React.PureComponent {
onPress={isSearchResult ? onPostPress : this.goToUserProfile}
onLongPress={this.handleLongPress}
>
<Text style={mentionStyle}>
<Text style={highlighted ? null : mentionStyle}>
{'@' + displayUsername(user, teammateNameDisplay)}
</Text>
{suffix}

View File

@@ -0,0 +1,43 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import {shallow} from 'enzyme';
import AtMention from './at_mention.js';
describe('AtMention', () => {
const baseProps = {
usersByUsername: {},
mentionKeys: [{key: 'John.Smith'}, {key: 'Jane.Doe'}],
teammateNameDisplay: '',
mentionName: 'John.Smith',
mentionStyle: {color: '#ff0000'},
theme: {},
};
test('should match snapshot, no highlight', () => {
const wrapper = shallow(
<AtMention {...baseProps}/>
);
expect(wrapper.getElement()).toMatchSnapshot();
});
test('should match snapshot, with highlight', () => {
const wrapper = shallow(
<AtMention {...baseProps}/>
);
wrapper.setState({user: {username: 'John.Smith'}});
expect(wrapper.getElement()).toMatchSnapshot();
});
test('should match snapshot, without highlight', () => {
const wrapper = shallow(
<AtMention {...baseProps}/>
);
wrapper.setState({user: {username: 'Victor.Welch'}});
expect(wrapper.getElement()).toMatchSnapshot();
});
});

View File

@@ -3,7 +3,7 @@
import {connect} from 'react-redux';
import {getUsersByUsername} from 'mattermost-redux/selectors/entities/users';
import {getUsersByUsername, getCurrentUserMentionKeys} from 'mattermost-redux/selectors/entities/users';
import {getTeammateNameDisplaySetting, getTheme} from 'mattermost-redux/selectors/entities/preferences';
@@ -13,6 +13,7 @@ function mapStateToProps(state) {
return {
theme: getTheme(state),
usersByUsername: getUsersByUsername(state),
mentionKeys: getCurrentUserMentionKeys(state),
teammateNameDisplay: getTeammateNameDisplaySetting(state),
};
}

View File

@@ -13,6 +13,7 @@ import EventEmitter from 'mattermost-redux/utils/event_emitter';
import {DeviceTypes} from 'app/constants';
import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
import {emptyFunction} from 'app/utils/general';
import AtMention from './at_mention';
import ChannelMention from './channel_mention';
@@ -34,6 +35,8 @@ export default class Autocomplete extends PureComponent {
valueEvent: PropTypes.string,
cursorPositionEvent: PropTypes.string,
nestedScrollEnabled: PropTypes.bool,
expandDown: PropTypes.bool,
onVisible: PropTypes.func,
};
static defaultProps = {
@@ -41,6 +44,7 @@ export default class Autocomplete extends PureComponent {
cursorPosition: 0,
enableDateSuggestion: false,
nestedScrollEnabled: false,
onVisible: emptyFunction,
};
static getDerivedStateFromProps(props, state) {
@@ -73,6 +77,8 @@ export default class Autocomplete extends PureComponent {
keyboardOffset: 0,
value: props.value,
};
this.containerRef = React.createRef();
}
componentDidMount() {
@@ -101,6 +107,11 @@ export default class Autocomplete extends PureComponent {
}
}
componentDidUpdate() {
const visible = Boolean(this.containerRef.current?._children.length);
this.props.onVisible(visible);
}
onChangeText = (value) => {
this.props.onChangeText(value, true);
};
@@ -160,32 +171,37 @@ export default class Autocomplete extends PureComponent {
}
render() {
const style = getStyleFromTheme(this.props.theme);
const {theme, isSearch, expandDown} = this.props;
const style = getStyleFromTheme(theme);
const wrapperStyle = [];
const containerStyle = [];
if (this.props.isSearch) {
wrapperStyle.push(style.base, style.searchContainer);
containerStyle.push(style.content);
const wrapperStyles = [];
const containerStyles = [];
if (isSearch) {
wrapperStyles.push(style.base, style.searchContainer);
containerStyles.push(style.content);
} else {
containerStyle.push(style.base, style.container);
const containerStyle = expandDown ? style.containerExpandDown : style.container;
containerStyles.push(style.base, containerStyle);
}
// We always need to render something, but we only draw the borders when we have results to show
const {atMentionCount, channelMentionCount, emojiCount, commandCount, dateCount, cursorPosition, value} = this.state;
if (atMentionCount + channelMentionCount + emojiCount + commandCount + dateCount > 0) {
if (this.props.isSearch) {
wrapperStyle.push(style.bordersSearch);
wrapperStyles.push(style.bordersSearch);
} else {
containerStyle.push(style.borders);
containerStyles.push(style.borders);
}
}
const maxListHeight = this.maxListHeight();
return (
<View style={wrapperStyle}>
<View style={containerStyle}>
<View style={wrapperStyles}>
<View
ref={this.containerRef}
style={containerStyles}
>
<AtMention
{...this.props}
cursorPosition={cursorPosition}
@@ -256,6 +272,9 @@ const getStyleFromTheme = makeStyleSheetFromTheme((theme) => {
container: {
bottom: 0,
},
containerExpandDown: {
top: 0,
},
content: {
flex: 1,
},

View File

@@ -31,16 +31,6 @@ exports[`CustomList should match snapshot with FlatList 1`] = `
onEndReachedThreshold={2}
onLayout={[Function]}
onScroll={[Function]}
refreshControl={
<RefreshControlMock
colors={
Array [
"#3d3c40",
]
}
tintColor="#3d3c40"
/>
}
removeClippedSubviews={true}
renderItem={[Function]}
scrollEventThrottle={60}

View File

@@ -18,6 +18,7 @@ export default class CustomList extends PureComponent {
static propTypes = {
data: PropTypes.array.isRequired,
extraData: PropTypes.any,
canRefresh: PropTypes.bool,
listType: PropTypes.oneOf([FLATLIST, SECTIONLIST]),
loading: PropTypes.bool,
loadingComponent: PropTypes.element,
@@ -35,10 +36,11 @@ export default class CustomList extends PureComponent {
};
static defaultProps = {
canRefresh: true,
isLandscape: false,
listType: FLATLIST,
showNoResults: true,
shouldRenderSeparator: true,
isLandscape: false,
};
constructor(props) {
@@ -110,16 +112,19 @@ export default class CustomList extends PureComponent {
};
renderFlatList = () => {
const {data, extraData, theme, onRefresh, refreshing} = this.props;
const {canRefresh, data, extraData, theme, onRefresh, refreshing} = this.props;
const style = getStyleFromTheme(theme);
const refreshControl = (
<RefreshControl
refreshing={refreshing}
onRefresh={onRefresh}
colors={[theme.centerChannelColor]}
tintColor={theme.centerChannelColor}
/>);
let refreshControl;
if (canRefresh) {
refreshControl = (
<RefreshControl
refreshing={refreshing}
onRefresh={onRefresh}
colors={[theme.centerChannelColor]}
tintColor={theme.centerChannelColor}
/>);
}
return (
<FlatList

View File

@@ -11,6 +11,7 @@ import CustomList, {FLATLIST, SECTIONLIST} from './index';
describe('CustomList', () => {
const baseProps = {
canRefresh: false,
data: [{username: 'username_1'}, {username: 'username_2'}],
listType: FLATLIST,
loading: false,

View File

@@ -11,6 +11,8 @@ exports[`EditChannelInfo should match snapshot 1`] = `
extraScrollHeight={0}
keyboardOpeningTime={250}
keyboardShouldPersistTaps="always"
onKeyboardDidHide={[Function]}
onKeyboardDidShow={[Function]}
style={
Object {
"backgroundColor": "#ffffff",
@@ -199,6 +201,7 @@ exports[`EditChannelInfo should match snapshot 1`] = `
</View>
</View>
<View
onLayout={[Function]}
style={
Array [
Object {
@@ -234,13 +237,6 @@ exports[`EditChannelInfo should match snapshot 1`] = `
}
/>
</View>
<ForwardRef(forwardConnectRef)
cursorPosition={6}
maxHeight={200}
nestedScrollEnabled={true}
onChangeText={[Function]}
value="header"
/>
<View
style={
Array [
@@ -288,7 +284,21 @@ exports[`EditChannelInfo should match snapshot 1`] = `
value="header"
/>
</View>
<View>
<ForwardRef(forwardConnectRef)
cursorPosition={6}
expandDown={true}
maxHeight={200}
nestedScrollEnabled={true}
onChangeText={[Function]}
value="header"
/>
<View
style={
Object {
"zIndex": -1,
}
}
>
<FormattedText
defaultMessage="Set text that will appear in the header of the channel beside the channel name. For example, include frequently used links by typing [Link Title](http://example.com)."
id="channel_modal.headerHelp"

View File

@@ -7,7 +7,6 @@ import {
Platform,
TouchableWithoutFeedback,
View,
findNodeHandle,
} from 'react-native';
import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
@@ -67,8 +66,11 @@ export default class EditChannelInfo extends PureComponent {
this.urlInput = React.createRef();
this.purposeInput = React.createRef();
this.headerInput = React.createRef();
this.lastText = React.createRef();
this.scroll = React.createRef();
this.state = {
keyboardVisible: false,
};
}
blur = () => {
@@ -154,12 +156,37 @@ export default class EditChannelInfo extends PureComponent {
}
};
scrollToEnd = () => {
if (this.scroll?.current && this.lastText?.current) {
this.scroll.current.scrollToFocusedInput(findNodeHandle(this.lastText.current));
onHeaderLayout = ({nativeEvent}) => {
this.setState({headerPosition: nativeEvent.layout.y});
}
onKeyboardDidShow = () => {
this.setState({keyboardVisible: true});
if (this.state.headerHasFocus) {
this.setState({headerHasFocus: false});
this.scrollHeaderToTop();
}
}
onKeyboardDidHide = () => {
this.setState({keyboardVisible: false});
}
onHeaderFocus = () => {
if (this.state.keyboardVisible) {
this.scrollHeaderToTop();
} else {
this.setState({headerHasFocus: true});
}
};
scrollHeaderToTop = () => {
if (this.scroll.current) {
this.scroll.current.scrollToPosition(0, this.state.headerPosition);
}
}
render() {
const {
theme,
@@ -170,8 +197,10 @@ export default class EditChannelInfo extends PureComponent {
header,
purpose,
isLandscape,
error,
saving,
} = this.props;
const {error, saving} = this.props;
const {keyboardVisible} = this.state;
const style = getStyleSheet(theme);
@@ -205,6 +234,9 @@ export default class EditChannelInfo extends PureComponent {
ref={this.scroll}
style={style.container}
keyboardShouldPersistTaps={'always'}
onKeyboardDidShow={this.onKeyboardDidShow}
onKeyboardDidHide={this.onKeyboardDidHide}
enableAutomaticScroll={!keyboardVisible}
>
{displayError}
<TouchableWithoutFeedback onPress={this.blur}>
@@ -277,7 +309,10 @@ export default class EditChannelInfo extends PureComponent {
</View>
</View>
)}
<View style={[style.titleContainer15, padding(isLandscape)]}>
<View
onLayout={this.onHeaderLayout}
style={[style.titleContainer15, padding(isLandscape)]}
>
<FormattedText
style={style.title}
id='channel_modal.header'
@@ -289,13 +324,6 @@ export default class EditChannelInfo extends PureComponent {
defaultMessage='(optional)'
/>
</View>
<Autocomplete
cursorPosition={header.length}
maxHeight={200}
onChangeText={this.onHeaderChangeText}
value={header}
nestedScrollEnabled={true}
/>
<View style={[style.inputContainer, padding(isLandscape)]}>
<TextInputWithLocalizedPlaceholder
ref={this.headerInput}
@@ -308,14 +336,22 @@ export default class EditChannelInfo extends PureComponent {
placeholderTextColor={changeOpacity(theme.centerChannelColor, 0.5)}
multiline={true}
blurOnSubmit={false}
onFocus={this.scrollToEnd}
onFocus={this.onHeaderFocus}
textAlignVertical='top'
underlineColorAndroid='transparent'
disableFullscreenUI={true}
keyboardAppearance={getKeyboardAppearanceFromTheme(theme)}
/>
</View>
<View ref={this.lastText}>
<Autocomplete
cursorPosition={header.length}
maxHeight={200}
onChangeText={this.onHeaderChangeText}
value={header}
nestedScrollEnabled={true}
expandDown={true}
/>
<View style={style.headerHelpText}>
<FormattedText
style={[style.helpText, padding(isLandscape)]}
id='channel_modal.headerHelp'
@@ -382,5 +418,8 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => {
marginTop: 10,
marginHorizontal: 15,
},
headerHelpText: {
zIndex: -1,
},
};
});

View File

@@ -64,4 +64,31 @@ describe('EditChannelInfo', () => {
expect(instance.enableRightButton).toHaveBeenCalledTimes(1);
expect(instance.enableRightButton).toHaveBeenCalledWith(true);
});
test('should call scrollHeaderToTop', () => {
const wrapper = shallow(
<EditChannelInfo {...baseProps}/>
);
const instance = wrapper.instance();
instance.scrollHeaderToTop = jest.fn();
expect(instance.scrollHeaderToTop).not.toHaveBeenCalled();
wrapper.setState({keyboardVisible: false});
instance.onHeaderFocus();
expect(instance.scrollHeaderToTop).not.toHaveBeenCalled();
wrapper.setState({keyboardVisible: true});
instance.onHeaderFocus();
expect(instance.scrollHeaderToTop).toHaveBeenCalledTimes(1);
wrapper.setState({headerHasFocus: false});
instance.onKeyboardDidShow();
expect(instance.scrollHeaderToTop).toHaveBeenCalledTimes(1);
wrapper.setState({headerHasFocus: true});
instance.onKeyboardDidShow();
expect(instance.scrollHeaderToTop).toHaveBeenCalledTimes(2);
});
});

View File

@@ -40,6 +40,7 @@ export default class Emoji extends React.PureComponent {
size: PropTypes.number,
textStyle: CustomPropTypes.Style,
unicode: PropTypes.string,
customEmojiStyle: CustomPropTypes.Style,
};
static defaultProps = {
@@ -96,6 +97,7 @@ export default class Emoji extends React.PureComponent {
literal,
textStyle,
displayTextOnly,
customEmojiStyle,
} = this.props;
const {imageUrl} = this.state;
@@ -143,7 +145,7 @@ export default class Emoji extends React.PureComponent {
return (
<FastImage
key={key}
style={{width, height}}
style={[customEmojiStyle, {width, height}]}
source={{uri: imageUrl}}
onError={this.onError}
/>

View File

@@ -0,0 +1,205 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`MarkdownTable should match snapshot 1`] = `
<TouchableWithFeedbackIOS
onPress={[Function]}
style={
Object {
"paddingRight": 10,
}
}
type="opacity"
>
<ScrollViewMock
contentContainerStyle={
Object {
"width": 1000,
}
}
onContentSizeChange={[Function]}
onLayout={[Function]}
scrollEnabled={false}
showsVerticalScrollIndicator={false}
style={
Array [
Object {
"borderBottomWidth": 1,
"borderColor": "rgba(61,60,64,0.2)",
"borderRightWidth": 1,
"maxHeight": 300,
},
Object {
"maxWidth": 1000,
},
]
}
>
<View
style={
Array [
Object {
"borderColor": "rgba(61,60,64,0.2)",
"borderLeftWidth": 1,
"borderTopWidth": 1,
"width": "100%",
},
]
}
>
<
className="row"
>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
</>
<
className="row"
>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
</>
<
className="row"
>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
</>
<
className="row"
>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
</>
<
className="row"
isLastRow={true}
>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
<
className="col"
/>
</>
</View>
</ScrollViewMock>
<TouchableWithFeedbackIOS
onPress={[Function]}
style={
Object {
"height": 34,
"left": -20,
"width": 34,
}
}
type="native"
>
<View
style={
Array [
Object {
"alignItems": "flex-end",
"maxWidth": "100%",
"paddingBottom": 4,
"paddingRight": 14,
"paddingTop": 8,
},
Object {
"width": 1000,
},
]
}
>
<View
style={
Object {
"alignItems": "center",
"backgroundColor": "#ffffff",
"borderColor": "rgba(61,60,64,0.2)",
"borderRadius": 50,
"borderWidth": 1,
"height": 34,
"justifyContent": "center",
"marginRight": -6,
"marginTop": -32,
"width": 34,
}
}
>
<Icon
allowFontScaling={false}
name="expand"
size={12}
style={
Object {
"color": "#2389d7",
"fontSize": 13,
}
}
/>
</View>
</View>
</TouchableWithFeedbackIOS>
</TouchableWithFeedbackIOS>
`;

View File

@@ -6,7 +6,9 @@ import React from 'react';
import {intlShape} from 'react-intl';
import {
ScrollView,
Platform,
View,
Dimensions,
} from 'react-native';
import LinearGradient from 'react-native-linear-gradient';
import Icon from 'react-native-vector-icons/FontAwesome';
@@ -19,6 +21,7 @@ import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
import {goToScreen} from 'app/actions/navigation';
const MAX_HEIGHT = 300;
const MAX_PREVIEW_COLUMNS = 5;
export default class MarkdownTable extends React.PureComponent {
static propTypes = {
@@ -38,9 +41,23 @@ export default class MarkdownTable extends React.PureComponent {
containerWidth: 0,
contentHeight: 0,
contentWidth: 0,
maxPreviewColumns: MAX_PREVIEW_COLUMNS,
};
}
componentDidMount() {
Dimensions.addEventListener('change', this.setMaxPreviewColumns);
}
componentWillUnmount() {
Dimensions.removeEventListener('change', this.setMaxPreviewColumns);
}
setMaxPreviewColumns = ({window}) => {
const maxPreviewColumns = Math.floor(window.width / CELL_WIDTH);
this.setState({maxPreviewColumns});
}
getTableWidth = () => {
return this.props.numColumns * CELL_WIDTH;
};
@@ -73,6 +90,38 @@ export default class MarkdownTable extends React.PureComponent {
});
};
renderPreviewRows = (drawExtraBorders = true) => {
const {maxPreviewColumns} = this.state;
const style = getStyleSheet(this.props.theme);
const tableStyle = [style.table];
if (drawExtraBorders) {
tableStyle.push(style.tableExtraBorders);
}
// Add an extra prop to the last row of the table so that it knows not to render a bottom border
// since the container should be rendering that
const rows = React.Children.toArray(this.props.children).slice(0, maxPreviewColumns).map((row) => {
const children = React.Children.toArray(row.props.children).slice(0, maxPreviewColumns);
return {
...row,
props: {
...row.props,
children,
},
};
});
rows[rows.length - 1] = React.cloneElement(rows[rows.length - 1], {
isLastRow: true,
});
return (
<View style={tableStyle}>
{rows}
</View>
);
}
renderRows = (drawExtraBorders = true) => {
const style = getStyleSheet(this.props.theme);
@@ -131,10 +180,14 @@ export default class MarkdownTable extends React.PureComponent {
onPress={this.handlePress}
style={{...style.expandButton, left: this.state.containerWidth - 20}}
>
<Icon
name={'expand'}
style={style.icon}
/>
<View style={[style.iconContainer, {width: this.getTableWidth()}]}>
<View style={style.iconButton}>
<Icon
name={'expand'}
style={style.icon}
/>
</View>
</View>
</TouchableWithFeedback>
);
@@ -152,7 +205,7 @@ export default class MarkdownTable extends React.PureComponent {
showsVerticalScrollIndicator={false}
style={[style.container, {maxWidth: this.getTableWidth()}]}
>
{this.renderRows(false)}
{this.renderPreviewRows(false)}
</ScrollView>
{moreRight}
{moreBelow}
@@ -171,21 +224,43 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => {
maxHeight: MAX_HEIGHT,
},
expandButton: {
height: 30,
width: 30,
borderWidth: 1,
paddingTop: 6,
paddingLeft: 7,
borderColor: changeOpacity(theme.centerChannelColor, 0.2),
borderRadius: 15,
bottom: 20,
height: 34,
width: 34,
},
iconContainer: {
maxWidth: '100%',
alignItems: 'flex-end',
paddingTop: 8,
paddingBottom: 4,
...Platform.select({
ios: {
paddingRight: 14,
},
}),
},
iconButton: {
backgroundColor: theme.centerChannelBg,
marginTop: -32,
marginRight: -6,
borderWidth: 1,
borderRadius: 50,
borderColor: changeOpacity(theme.centerChannelColor, 0.2),
width: 34,
height: 34,
alignItems: 'center',
justifyContent: 'center',
},
icon: {
fontSize: 15,
fontSize: 14,
color: theme.linkColor,
...Platform.select({
ios: {
fontSize: 13,
},
}),
},
table: {
width: '100%',
borderColor: changeOpacity(theme.centerChannelColor, 0.2),
borderLeftWidth: 1,
borderTopWidth: 1,

View File

@@ -0,0 +1,55 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import {shallowWithIntl} from 'test/intl-test-helper';
import Preferences from 'mattermost-redux/constants/preferences';
import MarkdownTable from './markdown_table';
describe('MarkdownTable', () => {
const createCell = (type, children = null) => {
return React.createElement('', {key: Date.now(), className: type}, children);
};
const numColumns = 10;
const children = [];
for (let i = 0; i <= numColumns; i++) {
const cols = [];
for (let j = 0; j <= numColumns; j++) {
cols.push(createCell('col'));
}
children.push(createCell('row', cols));
}
const baseProps = {
children,
numColumns,
theme: Preferences.THEMES.default,
};
test('should match snapshot', () => {
const wrapper = shallowWithIntl(
<MarkdownTable {...baseProps}/>
);
expect(wrapper.getElement()).toMatchSnapshot();
});
test('should slice rows and columns', () => {
const wrapper = shallowWithIntl(
<MarkdownTable {...baseProps}/>
);
const {maxPreviewColumns} = wrapper.state();
expect(wrapper.find('.row')).toHaveLength(maxPreviewColumns);
expect(wrapper.find('.col')).toHaveLength(Math.pow(maxPreviewColumns, 2));
const newMaxPreviewColumns = maxPreviewColumns - 1;
wrapper.setState({maxPreviewColumns: newMaxPreviewColumns});
expect(wrapper.find('.row')).toHaveLength(newMaxPreviewColumns);
expect(wrapper.find('.col')).toHaveLength(Math.pow(newMaxPreviewColumns, 2));
});
});

View File

@@ -9,7 +9,7 @@ import {init as initWebSocket, close as closeWebSocket} from 'mattermost-redux/a
import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels';
import {connection} from 'app/actions/device';
import {markChannelViewedAndRead, setChannelRetryFailed} from 'app/actions/views/channel';
import {markChannelViewedAndReadOnReconnect, setChannelRetryFailed} from 'app/actions/views/channel';
import {setCurrentUserStatusOffline} from 'app/actions/views/user';
import {getConnection, isLandscape} from 'app/selectors/device';
@@ -35,7 +35,7 @@ function mapDispatchToProps(dispatch) {
connection,
initWebSocket,
logout,
markChannelViewedAndRead,
markChannelViewedAndReadOnReconnect,
setChannelRetryFailed,
setCurrentUserStatusOffline,
startPeriodicStatusUpdates,

View File

@@ -43,7 +43,7 @@ export default class NetworkIndicator extends PureComponent {
closeWebSocket: PropTypes.func.isRequired,
connection: PropTypes.func.isRequired,
initWebSocket: PropTypes.func.isRequired,
markChannelViewedAndRead: PropTypes.func.isRequired,
markChannelViewedAndReadOnReconnect: PropTypes.func.isRequired,
logout: PropTypes.func.isRequired,
setChannelRetryFailed: PropTypes.func.isRequired,
setCurrentUserStatusOffline: PropTypes.func.isRequired,
@@ -245,7 +245,7 @@ export default class NetworkIndicator extends PureComponent {
// foreground by tapping a notification from another channel
this.clearNotificationTimeout = setTimeout(() => {
PushNotifications.clearChannelNotifications(currentChannelId);
actions.markChannelViewedAndRead(currentChannelId);
actions.markChannelViewedAndReadOnReconnect(currentChannelId);
}, 1000);
}
} else {

View File

@@ -10,6 +10,7 @@ import {isChannelReadOnlyById} from 'mattermost-redux/selectors/entities/channel
import {getPost, makeGetCommentCountForPost, makeIsPostCommentMention} from 'mattermost-redux/selectors/entities/posts';
import {getUser, getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
import {getMyPreferences, getTheme} from 'mattermost-redux/selectors/entities/preferences';
import {isStartOfNewMessages} from 'mattermost-redux/utils/post_list';
import {isPostFlagged, isSystemMessage} from 'mattermost-redux/utils/post_utils';
import {insertToDraft, setPostTooltipVisible} from 'app/actions/views/channel';
@@ -40,7 +41,8 @@ function makeMapStateToProps() {
const isPostCommentMention = makeIsPostCommentMention();
return function mapStateToProps(state, ownProps) {
const post = ownProps.post || getPost(state, ownProps.postId);
const previousPost = getPost(state, ownProps.previousPostId);
const previousPostId = isStartOfNewMessages(ownProps.previousPostId) ? ownProps.beforePrevPostId : ownProps.previousPostId;
const previousPost = getPost(state, previousPostId);
const beforePrevPost = getPost(state, ownProps.beforePrevPostId);
const myPreferences = getMyPreferences(state);
@@ -52,7 +54,7 @@ function makeMapStateToProps() {
let commentedOnPost = null;
if (ownProps.renderReplies && post && post.root_id) {
if (ownProps.previousPostId) {
if (previousPostId) {
if (previousPost && (previousPost.id === post.root_id || previousPost.root_id === post.root_id)) {
// Previous post is root post or previous post is in same thread
isFirstReply = false;

View File

@@ -254,7 +254,6 @@ export default class Post extends PureComponent {
isLandscape,
previousPostExists,
beforePrevPostUserId,
isFirstReply,
} = this.props;
if (!post) {
@@ -306,7 +305,6 @@ export default class Post extends PureComponent {
theme={theme}
previousPostExists={previousPostExists}
beforePrevPostUserId={beforePrevPostUserId}
isFirstReply={isFirstReply}
/>
);
}

View File

@@ -311,6 +311,23 @@ exports[`PostHeader should match snapshot when post is same thread, so dont disp
/>
</View>
</View>
<FormattedText
defaultMessage="Commented on {name}{apostrophe} message: "
id="post_body.commentedOn"
style={
Object {
"color": "rgba(61,60,64,0.65)",
"lineHeight": 21,
"marginBottom": 3,
}
}
values={
Object {
"apostrophe": "'s",
"name": "John Doe",
}
}
/>
</React.Fragment>
`;

View File

@@ -46,7 +46,6 @@ export default class PostHeader extends PureComponent {
previousPostExists: PropTypes.bool,
post: PropTypes.object,
beforePrevPostUserId: PropTypes.string,
isFirstReply: PropTypes.bool,
};
static defaultProps = {
@@ -69,9 +68,8 @@ export default class PostHeader extends PureComponent {
previousPostExists,
renderReplies,
theme,
isFirstReply,
} = this.props;
if (!isFirstReply || !renderReplies || !commentedOnDisplayName || (!previousPostExists && post.user_id === beforePrevPostUserId)) {
if (!renderReplies || !commentedOnDisplayName || (!previousPostExists && post.user_id === beforePrevPostUserId)) {
return null;
}

View File

@@ -44,7 +44,12 @@ function makeMapStateToProps() {
channel: channelId,
permission: Permissions.ADD_REACTION,
});
canAddMoreReactions = Object.values(reactions).length < MAX_ALLOWED_REACTIONS;
if (reactions) {
// On servers without metadata reactions at this point can be undefined
canAddMoreReactions = Object.values(reactions).length < MAX_ALLOWED_REACTIONS;
}
canRemoveReaction = haveIChannelPermission(state, {
team: teamId,
channel: channelId,

View File

@@ -49,6 +49,7 @@ export default class Reaction extends PureComponent {
emojiName={emojiName}
size={20}
textStyle={{color: 'black', fontWeight: 'bold'}}
customEmojiStyle={{marginHorizontal: 3}}
padding={5}
/>
<Text style={styles.count}>{count}</Text>

View File

@@ -29,7 +29,11 @@ export const setAppCredentials = (deviceToken, currentUserId, token, url) => {
EphemeralStore.deviceToken = deviceToken;
EphemeralStore.currentServerUrl = url;
AsyncStorage.setItem(CURRENT_SERVER, url);
KeyChain.setInternetCredentials(url, username, token, {accessGroup: mattermostManaged.appGroupIdentifier});
const options = {
accessGroup: mattermostManaged.appGroupIdentifier,
securityLevel: 'SECURE_SOFTWARE',
};
KeyChain.setInternetCredentials(url, username, token, options);
} catch (e) {
console.warn('could not set credentials', e); //eslint-disable-line no-console
}

View File

@@ -7,7 +7,7 @@ import RNFetchBlob from 'rn-fetch-blob';
import urlParse from 'url-parse';
import {Client4} from 'mattermost-redux/client';
import {ClientError} from 'mattermost-redux/client/client4';
import {ClientError, HEADER_X_VERSION_ID} from 'mattermost-redux/client/client4';
import mattermostBucket from 'app/mattermost_bucket';
import mattermostManaged from 'app/mattermost_managed';
@@ -111,6 +111,13 @@ Client4.doFetchWithResponse = async (url, options) => {
Client4.setToken(token);
}
if (headers[HEADER_X_VERSION_ID] && !headers['Cache-Control']) {
const serverVersion = headers[HEADER_X_VERSION_ID];
if (serverVersion && Client4.serverVersion !== serverVersion) {
Client4.serverVersion = serverVersion; /* eslint-disable-line require-atomic-updates */
}
}
if (response.ok) {
const headersMap = new Map();
Object.keys(headers).forEach((key) => {

View File

@@ -2,7 +2,9 @@
// See LICENSE.txt for license information.
import {Alert, AppState, Dimensions, Linking, NativeModules, Platform} from 'react-native';
import CookieManager from 'react-native-cookies';
import DeviceInfo from 'react-native-device-info';
import RNFetchBlob from 'rn-fetch-blob';
import semver from 'semver';
import {setAppState, setServerVersion} from 'mattermost-redux/actions/general';
@@ -22,6 +24,7 @@ import {showOverlay} from 'app/actions/navigation';
import {loadConfigAndLicense, setDeepLinkURL, startDataCleanup} from 'app/actions/views/root';
import {NavigationTypes, ViewTypes} from 'app/constants';
import {getTranslations, resetMomentLocale} from 'app/i18n';
import mattermostBucket from 'app/mattermost_bucket';
import mattermostManaged from 'app/mattermost_managed';
import PushNotifications from 'app/push_notifications';
import {getCurrentLocale} from 'app/selectors/i18n';
@@ -148,11 +151,36 @@ class GlobalEventHandler {
onLogout = async () => {
this.store.dispatch(closeWebSocket(false));
this.store.dispatch(setServerVersion(''));
deleteFileCache();
removeAppCredentials();
deleteFileCache();
resetMomentLocale();
// TODO: Handle when multi-server support is added
CookieManager.clearAll(Platform.OS === 'ios');
PushNotifications.clearNotifications();
const cacheDir = RNFetchBlob.fs.dirs.CacheDir;
const mainPath = cacheDir.split('/').slice(0, -1).join('/');
try {
await RNFetchBlob.fs.unlink(cacheDir);
} catch (e) {
console.log('Failed to remove cache folder', e); //eslint-disable-line no-console
}
mattermostBucket.removePreference('cert');
if (Platform.OS === 'ios') {
mattermostBucket.removeFile('entities');
} else {
const cookies = await RNFetchBlob.fs.exists(`${mainPath}/app_webview/Cookies`);
const cookiesJ = await RNFetchBlob.fs.exists(`${mainPath}/app_webview/Cookies-journal`);
if (cookies) {
RNFetchBlob.fs.unlink(`${mainPath}/app_webview/Cookies`);
}
if (cookiesJ) {
RNFetchBlob.fs.unlink(`${mainPath}/app_webview/Cookies-journal`);
}
}
if (this.launchApp) {
this.launchApp();

View File

@@ -6,6 +6,7 @@ import thunk from 'redux-thunk';
import intitialState from 'app/initial_state';
import PushNotification from 'app/push_notifications';
import mattermostBucket from 'app/mattermost_bucket';
import * as I18n from 'app/i18n';
import GlobalEventHandler from './global_event_handler';
@@ -43,10 +44,14 @@ describe('GlobalEventHandler', () => {
it('should clear notifications and reset moment locale on logout', async () => {
const clearNotifications = jest.spyOn(PushNotification, 'clearNotifications');
const resetMomentLocale = jest.spyOn(I18n, 'resetMomentLocale');
const removePreference = jest.spyOn(mattermostBucket, 'removePreference');
const removeFile = jest.spyOn(mattermostBucket, 'removeFile');
await GlobalEventHandler.onLogout();
expect(clearNotifications).toHaveBeenCalled();
expect(resetMomentLocale).toHaveBeenCalledWith();
expect(resetMomentLocale).toHaveBeenCalled();
expect(removePreference).toHaveBeenCalledWith('cert');
expect(removeFile).toHaveBeenCalledWith('entities');
});
it('should call onAppStateChange after configuration', () => {

View File

@@ -16,6 +16,7 @@ import 'app/init/fetch';
import globalEventHandler from 'app/init/global_event_handler';
import {registerScreens} from 'app/screens';
import store from 'app/store';
import {waitForHydration} from 'app/store/utils';
import EphemeralStore from 'app/store/ephemeral_store';
import telemetry from 'app/telemetry';
import pushNotificationsUtils from 'app/utils/push_notifications';
@@ -47,15 +48,17 @@ const init = async () => {
}
};
const launchApp = async (credentials) => {
const launchApp = (credentials) => {
telemetry.start([
'start:select_server_screen',
'start:channel_screen',
]);
if (credentials) {
store.dispatch(loadMe());
resetToChannel({skipMetrics: true});
waitForHydration(store, () => {
store.dispatch(loadMe());
resetToChannel({skipMetrics: true});
});
} else {
resetToSelectServer(emmProvider.allowOtherServers);
}

View File

@@ -5,6 +5,8 @@ import {NativeModules, DeviceEventEmitter} from 'react-native';
import LocalAuth from 'react-native-local-auth';
import JailMonkey from 'jail-monkey';
import {emptyFunction} from 'app/utils/general';
const {MattermostManaged} = NativeModules;
const listeners = [];
@@ -35,7 +37,7 @@ export default {
}
},
authenticate: LocalAuth.auth,
blurAppScreen: MattermostManaged.blurAppScreen,
blurAppScreen: emptyFunction,
appGroupIdentifier: null,
hasSafeAreaInsets: null,
isRunningInSplitView: MattermostManaged.isRunningInSplitView,

View File

@@ -45,6 +45,7 @@ exports[`ChannelMembers should match snapshot 1`] = `
/>
</View>
<CustomList
canRefresh={true}
data={Array []}
extraData={Object {}}
isLandscape={false}

View File

@@ -61,6 +61,7 @@ export default class EditPost extends PureComponent {
this.state = {
message: props.post.message,
cursorPosition: 0,
autocompleteVisible: false,
};
this.rightButton.color = props.theme.sidebarHeaderTextColor;
@@ -163,9 +164,13 @@ export default class EditPost extends PureComponent {
this.setState({cursorPosition});
};
onAutocompleteVisible = (autocompleteVisible) => {
this.setState({autocompleteVisible});
}
render() {
const {deviceHeight, deviceWidth, theme, isLandscape} = this.props;
const {editing, message, error} = this.state;
const {editing, message, error, autocompleteVisible} = this.state;
const style = getStyleSheet(theme);
@@ -190,6 +195,10 @@ export default class EditPost extends PureComponent {
}
const height = Platform.OS === 'android' ? (deviceHeight / 2) - 40 : (deviceHeight / 2);
const autocompleteStyles = [
style.autocompleteContainer,
{flex: autocompleteVisible ? 1 : 0},
];
return (
<View style={style.container}>
@@ -215,13 +224,14 @@ export default class EditPost extends PureComponent {
/>
</View>
</View>
<KeyboardTrackingView style={style.autocompleteContainer}>
<KeyboardTrackingView style={autocompleteStyles}>
<Autocomplete
cursorPosition={this.state.cursorPosition}
maxHeight={AUTOCOMPLETE_MAX_HEIGHT}
onChangeText={this.onPostChangeText}
value={message}
nestedScrollEnabled={true}
onVisible={this.onAutocompleteVisible}
/>
</KeyboardTrackingView>
</View>

View File

@@ -470,6 +470,7 @@ export default class EditProfile extends PureComponent {
theme={theme}
value={nickname}
isLandscape={isLandscape}
optional={true}
/>
);
};
@@ -493,6 +494,7 @@ export default class EditProfile extends PureComponent {
theme={theme}
value={position}
isLandscape={isLandscape}
optional={true}
/>
);
};

View File

@@ -89,7 +89,7 @@ export default class Downloader extends PureComponent {
ToastAndroid.show(started, ToastAndroid.SHORT);
onDownloadStart();
let dest = `${RNFetchBlob.fs.dirs.DownloadDir}/${data.id}-${file.caption}`;
let dest = `${RNFetchBlob.fs.dirs.DownloadDir}/${data.id}-${data.name}`;
let downloadFile = true;
if (data.localPath) {

View File

@@ -13,6 +13,7 @@ import {
Text,
TouchableOpacity,
View,
findNodeHandle,
} from 'react-native';
import RNFetchBlob from 'rn-fetch-blob';
import Icon from 'react-native-vector-icons/Ionicons';
@@ -32,8 +33,8 @@ import {getLocalFilePathFromFile, isDocument, isVideo} from 'app/utils/file';
import {emptyFunction} from 'app/utils/general';
import {calculateDimensions} from 'app/utils/images';
import {t} from 'app/utils/i18n';
import BottomSheet from 'app/utils/bottom_sheet';
import {
showModalOverCurrentContext,
dismissModal,
mergeNavigationOptions,
} from 'app/actions/navigation';
@@ -89,6 +90,8 @@ export default class ImagePreview extends PureComponent {
showDownloader: false,
target: props.target,
};
this.headerRef = React.createRef();
}
componentDidMount() {
@@ -267,6 +270,7 @@ export default class ImagePreview extends PureComponent {
return (
<TouchableOpacity
ref={this.headerRef}
onPress={action}
style={style.headerIcon}
>
@@ -434,7 +438,9 @@ export default class ImagePreview extends PureComponent {
}
this.setState({showHeaderFooter: show});
StatusBar.setHidden(!show, 'slide');
if (Platform.OS === 'ios') {
StatusBar.setHidden(!show, 'slide');
}
Animated.timing(this.headerFooterAnim, {
...ANIM_CONFIG,
@@ -465,7 +471,8 @@ export default class ImagePreview extends PureComponent {
showDownloadOptionsIOS = async () => {
const {formatMessage} = this.context.intl;
const file = this.getCurrentFile();
const items = [];
const options = [];
const actions = [];
let permissionRequest;
const hasPermissionToStorage = await Permissions.check('photo');
@@ -510,37 +517,37 @@ export default class ImagePreview extends PureComponent {
const path = getLocalFilePathFromFile(VIDEOS_PATH, file);
const exist = await RNFetchBlob.fs.exists(path);
if (exist) {
items.push({
action: this.saveVideoIOS,
text: {
id: t('mobile.image_preview.save_video'),
defaultMessage: 'Save Video',
},
});
options.push(formatMessage({
id: t('mobile.image_preview.save_video'),
defaultMessage: 'Save Video',
}));
actions.push(this.saveVideoIOS);
} else {
this.showVideoDownloadRequiredAlertIOS();
}
} else {
items.push({
action: this.showDownloader,
text: {
id: t('mobile.image_preview.save'),
defaultMessage: 'Save Image',
},
});
options.push(formatMessage({
id: t('mobile.image_preview.save'),
defaultMessage: 'Save Image',
}));
actions.push(this.showDownloader);
}
if (items.length) {
this.setHeaderAndFooterVisible(false);
if (options.length) {
options.push(formatMessage({
id: 'mobile.post.cancel',
defaultMessage: 'Cancel',
}));
actions.push(emptyFunction);
const screen = 'OptionsModal';
const passProps = {
BottomSheet.showBottomSheetWithOptions({
options,
cancelButtonIndex: options.length - 1,
title: file.caption,
items,
onCancelPress: () => this.setHeaderAndFooterVisible(true),
};
showModalOverCurrentContext(screen, passProps);
anchor: this.headerRef.current ? findNodeHandle(this.headerRef.current) : null,
}, (buttonIndex) => {
actions[buttonIndex]();
});
}
};

View File

@@ -6,10 +6,12 @@ import {shallow} from 'enzyme';
import {
TouchableOpacity,
} from 'react-native';
import RNFetchBlob from 'rn-fetch-blob';
import Preferences from 'mattermost-redux/constants/preferences';
import * as NavigationActions from 'app/actions/navigation';
import BottomSheet from 'app/utils/bottom_sheet';
import ImagePreview from './image_preview';
@@ -20,6 +22,11 @@ jest.mock('react-native-doc-viewer', () => {
OpenFile: jest.fn(),
};
});
jest.mock('react-native-permissions', () => {
return {
check: jest.fn(),
};
});
describe('ImagePreview', () => {
const baseProps = {
@@ -108,4 +115,111 @@ describe('ImagePreview', () => {
},
);
});
test('should show bottom sheet when showDownloadOptionsIOS is called for existing video', async () => {
BottomSheet.showBottomSheetWithOptions = jest.fn();
RNFetchBlob.fs.exists = jest.fn().mockReturnValue(true);
const formatMessage = jest.fn(({defaultMessage}) => {
return defaultMessage;
});
const index = 0;
const files = [{
caption: 'caption',
data: {
mime_type: 'video/mp4',
},
}];
const props = {
...baseProps,
index,
files,
};
const wrapper = shallow(
<ImagePreview
{...props}
/>,
{context: {intl: {formatMessage}}},
);
const instance = wrapper.instance();
await instance.showDownloadOptionsIOS();
const expectedOptions = {
options: ['Save Video', 'Cancel'],
cancelButtonIndex: 1,
anchor: null,
title: files[index].caption,
};
expect(BottomSheet.showBottomSheetWithOptions).
toHaveBeenCalledWith(expectedOptions, expect.any(Function));
});
test('should not show bottom sheet when showDownloadOptionsIOS is called for non-existing video', async () => {
BottomSheet.showBottomSheetWithOptions = jest.fn();
RNFetchBlob.fs.exists = jest.fn().mockReturnValue(false);
const index = 0;
const files = [{
caption: 'caption',
data: {
mime_type: 'video/mp4',
},
}];
const props = {
...baseProps,
index,
files,
};
const wrapper = shallow(
<ImagePreview
{...props}
/>,
{context: {intl: {formatMessage: jest.fn()}}},
);
const instance = wrapper.instance();
await instance.showDownloadOptionsIOS();
expect(BottomSheet.showBottomSheetWithOptions).not.toHaveBeenCalled();
});
test('should show bottom sheet when showDownloadOptionsIOS is called for image', async () => {
BottomSheet.showBottomSheetWithOptions = jest.fn();
RNFetchBlob.fs.exists = jest.fn().mockReturnValue(true);
const formatMessage = jest.fn(({defaultMessage}) => {
return defaultMessage;
});
const index = 0;
const files = [{
caption: 'caption',
data: {
mime_type: 'image/jpeg',
},
}];
const props = {
...baseProps,
index,
files,
};
const wrapper = shallow(
<ImagePreview
{...props}
/>,
{context: {intl: {formatMessage}}},
);
const instance = wrapper.instance();
await instance.showDownloadOptionsIOS();
const expectedOptions = {
options: ['Save Image', 'Cancel'],
cancelButtonIndex: 1,
anchor: null,
title: files[index].caption,
};
expect(BottomSheet.showBottomSheetWithOptions).
toHaveBeenCalledWith(expectedOptions, expect.any(Function));
});
});

View File

@@ -164,16 +164,16 @@ export default class VideoPreview extends PureComponent {
};
onReplay = () => {
if (this.refs.videoPlayer) {
if (this.videoPlayerRef) {
this.setState({playerState: PLAYER_STATE.PLAYING, paused: false});
this.refs.videoPlayer.seek(0);
this.videoPlayerRef.seek(0);
}
};
onSeek = (seek) => {
if (this.refs.videoPlayer) {
if (this.videoPlayerRef) {
this.setState({currentTime: seek}, () => {
this.refs.videoPlayer.seek(seek);
this.videoPlayerRef.seek(seek);
});
}
};
@@ -215,7 +215,7 @@ export default class VideoPreview extends PureComponent {
<TouchableOpacity
style={StyleSheet.absoluteFill}
activeOpacity={1}
onPress={() => this.refs.controls.fadeInControls()}
onPress={() => this.controlsRef?.fadeInControls()}
>
<Video
ref={this.setVideoPlayerRef}

View File

@@ -38,7 +38,6 @@ LongPost {
"loadThreadIfNecessary": [MockFunction],
"selectPost": [MockFunction],
},
"fileIds": Array [],
"intl": Object {
"defaultFormats": Object {},
"defaultLocale": "en",
@@ -150,7 +149,6 @@ LongPost {
"selectPost": [MockFunction],
}
}
fileIds={Array []}
intl={
Object {
"defaultFormats": Object {},
@@ -337,6 +335,22 @@ LongPost {
showLongPost={true}
/>
</ScrollViewMock>
<View
style={
Object {
"alignItems": "flex-start",
"backgroundColor": "#ffffff",
"borderBottomColor": "rgba(61,60,64,0.2)",
"borderBottomLeftRadius": 6,
"borderBottomRightRadius": 6,
"borderBottomWidth": 1,
"flexDirection": "column",
"justifyContent": "center",
"marginBottom": 10,
"paddingLeft": 16,
}
}
/>
</withAnimatable(View)>
</View>
</Connect(SafeAreaIos)>,

View File

@@ -23,7 +23,6 @@ function makeMapStateToProps() {
return {
channelName: channel ? channel.display_name : '',
inThreadView: Boolean(state.entities.posts.selectedPostId),
fileIds: post ? post.file_ids : false,
theme: getTheme(state),
isLandscape: isLandscape(state),
};

View File

@@ -13,12 +13,10 @@ import * as Animatable from 'react-native-animatable';
import MaterialIcon from 'react-native-vector-icons/MaterialIcons';
import {Navigation} from 'react-native-navigation';
import FileAttachmentList from 'app/components/file_attachment_list';
import FormattedText from 'app/components/formatted_text';
import Post from 'app/components/post';
import SafeAreaView from 'app/components/safe_area_view';
import {marginHorizontal as margin} from 'app/components/safe_area_view/iphone_x_spacing';
import {emptyFunction} from 'app/utils/general';
import {preventDoubleTap} from 'app/utils/tap';
import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
import {goToScreen, dismissModal} from 'app/actions/navigation';
@@ -47,7 +45,6 @@ export default class LongPost extends PureComponent {
selectPost: PropTypes.func.isRequired,
}).isRequired,
channelName: PropTypes.string,
fileIds: PropTypes.array,
isPermalink: PropTypes.bool,
inThreadView: PropTypes.bool,
managedConfig: PropTypes.object,
@@ -58,10 +55,6 @@ export default class LongPost extends PureComponent {
isLandscape: PropTypes.bool.isRequired,
};
static defaultProps = {
fileIds: [],
};
static contextTypes = {
intl: intlShape.isRequired,
};
@@ -115,33 +108,9 @@ export default class LongPost extends PureComponent {
}
};
renderFileAttachments(style) {
const {
fileIds,
postId,
} = this.props;
let attachments;
if (fileIds.length > 0) {
attachments = (
<View style={style.attachments}>
<FileAttachmentList
fileIds={fileIds}
isFailed={false}
onLongPress={emptyFunction}
postId={postId}
toggleSelected={emptyFunction}
/>
</View>
);
}
return attachments;
}
render() {
const {
channelName,
fileIds,
managedConfig,
onHashtagPress,
onPermalinkPress,
@@ -151,15 +120,6 @@ export default class LongPost extends PureComponent {
} = this.props;
const style = getStyleSheet(theme);
let footer;
if (fileIds.length) {
footer = (
<View style={style.footer}>
{this.renderFileAttachments(style)}
</View>
);
}
return (
<SafeAreaView
backgroundColor='transparent'
@@ -211,7 +171,7 @@ export default class LongPost extends PureComponent {
managedConfig={managedConfig}
/>
</ScrollView>
{footer}
<View style={style.footer}/>
</Animatable.View>
</View>
</SafeAreaView>
@@ -267,19 +227,14 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => {
footer: {
alignItems: 'flex-start',
justifyContent: 'center',
borderTopColor: changeOpacity(theme.centerChannelColor, 0.2),
borderTopWidth: 1,
borderBottomColor: changeOpacity(theme.centerChannelColor, 0.2),
borderBottomWidth: 1,
backgroundColor: theme.centerChannelBg,
borderBottomLeftRadius: 6,
borderBottomRightRadius: 6,
flexDirection: 'column',
marginVertical: 10,
marginBottom: 10,
paddingLeft: 16,
},
attachments: {
backgroundColor: theme.centerChannelBg,
height: 95,
width: '100%',
},
};
});

View File

@@ -73,6 +73,7 @@ exports[`MoreChannels should match snapshot 1`] = `
</Text>
</View>
<CustomList
canRefresh={false}
data={
Array [
Object {

View File

@@ -6,7 +6,7 @@ import {connect} from 'react-redux';
import {createSelector} from 'reselect';
import {isLandscape} from 'app/selectors/device';
import {General} from 'mattermost-redux/constants';
import {joinChannel, searchChannels} from 'mattermost-redux/actions/channels';
import {getArchivedChannels, getChannels, joinChannel, searchChannels} from 'mattermost-redux/actions/channels';
import {getChannelsInCurrentTeam, getMyChannelMemberships} from 'mattermost-redux/selectors/entities/channels';
import {getCurrentUserId, getCurrentUserRoles} from 'mattermost-redux/selectors/entities/users';
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
@@ -15,7 +15,7 @@ import {isAdmin, isSystemAdmin} from 'mattermost-redux/utils/user_utils';
import {getTheme} from 'mattermost-redux/selectors/entities/preferences';
import {getConfig, getLicense} from 'mattermost-redux/selectors/entities/general';
import {handleSelectChannel, setChannelDisplayName, loadPublicAndArchivedChannels} from 'app/actions/views/channel';
import {handleSelectChannel, setChannelDisplayName} from 'app/actions/views/channel';
import MoreChannels from './more_channels';
@@ -26,7 +26,7 @@ const joinablePublicChannels = createSelector(
getMyChannelMemberships,
(channels, myMembers) => {
return channels.filter((c) => {
return (!myMembers[c.id] && c.type === General.OPEN_CHANNEL);
return (!myMembers[c.id] && c.type === General.OPEN_CHANNEL && c.delete_at === 0);
});
}
);
@@ -45,6 +45,8 @@ function mapStateToProps(state) {
const channels = joinablePublicChannels(state);
const archivedChannels = teamArchivedChannels(state);
const currentTeamId = getCurrentTeamId(state);
const canShowArchivedChannels = config.ExperimentalViewArchivedChannels === 'true' &&
isMinimumServerVersion(state.entities.general.serverVersion, 5, 18);
return {
canCreateChannels: showCreateOption(state, config, license, currentTeamId, General.OPEN_CHANNEL, isAdmin(roles), isSystemAdmin(roles)),
@@ -54,16 +56,17 @@ function mapStateToProps(state) {
archivedChannels,
theme: getTheme(state),
isLandscape: isLandscape(state),
canShowArchivedChannels: isMinimumServerVersion(state.entities.general.serverVersion, 5, 18),
canShowArchivedChannels,
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators({
getArchivedChannels,
getChannels,
handleSelectChannel,
joinChannel,
loadPublicAndArchivedChannels,
searchChannels,
setChannelDisplayName,
}, dispatch),

View File

@@ -21,7 +21,7 @@ import KeyboardLayout from 'app/components/layout/keyboard_layout';
import Loading from 'app/components/loading';
import SearchBar from 'app/components/search_bar';
import StatusBar from 'app/components/status_bar';
import {alertErrorWithFallback} from 'app/utils/general';
import {alertErrorWithFallback, emptyFunction} from 'app/utils/general';
import {goToScreen, dismissModal, setButtons} from 'app/actions/navigation';
import {
changeOpacity,
@@ -33,9 +33,10 @@ import {
export default class MoreChannels extends PureComponent {
static propTypes = {
actions: PropTypes.shape({
getArchivedChannels: PropTypes.func.isRequired,
getChannels: PropTypes.func.isRequired,
handleSelectChannel: PropTypes.func.isRequired,
joinChannel: PropTypes.func.isRequired,
loadPublicAndArchivedChannels: PropTypes.func.isRequired,
searchChannels: PropTypes.func.isRequired,
setChannelDisplayName: PropTypes.func.isRequired,
}).isRequired,
@@ -65,7 +66,8 @@ export default class MoreChannels extends PureComponent {
this.searchTimeoutId = 0;
this.publicPage = -1;
this.archivedPage = -1;
this.next = true;
this.nextPublic = true;
this.nextArchived = true;
this.mounted = false;
this.state = {
@@ -104,6 +106,7 @@ export default class MoreChannels extends PureComponent {
componentWillReceiveProps(nextProps) {
const {term} = this.state;
let channels;
let archivedChannels;
if (this.props.theme !== nextProps.theme) {
setNavigatorStyles(this.props.componentId, nextProps.theme);
@@ -116,8 +119,24 @@ export default class MoreChannels extends PureComponent {
}
}
if (nextProps.archivedChannels !== this.props.archivedChannels) {
archivedChannels = nextProps.archivedChannels;
if (term) {
archivedChannels = this.filterChannels(nextProps.archivedChannels, term);
}
}
const nextState = {};
if (channels) {
this.setState({channels});
nextState.channels = channels;
}
if (archivedChannels) {
nextState.archivedChannels = archivedChannels;
}
if (nextState.archivedChannels || nextState.channels) {
this.setState(nextState);
}
}
@@ -152,17 +171,30 @@ export default class MoreChannels extends PureComponent {
doGetChannels = () => {
const {actions, currentTeamId, canShowArchivedChannels} = this.props;
const {loading, term} = this.state;
const {loading, term, typeOfChannels} = this.state;
if (this.next && !loading && !term && this.mounted) {
if (!loading && !term && this.mounted) {
this.setState({loading: true}, () => {
actions.loadPublicAndArchivedChannels(
currentTeamId,
this.publicPage + 1,
this.archivedPage + 1,
General.CHANNELS_CHUNK_SIZE,
canShowArchivedChannels,
).then(this.loadedChannels);
switch (typeOfChannels) {
case 'public':
if (this.nextPublic) {
actions.getChannels(
currentTeamId,
this.publicPage + 1,
General.CHANNELS_CHUNK_SIZE,
).then(this.loadedChannels);
}
break;
case 'archived':
if (canShowArchivedChannels && this.nextArchived) {
actions.getArchivedChannels(
currentTeamId,
this.archivedPage + 1,
General.CHANNELS_CHUNK_SIZE,
).then(this.loadedChannels);
}
break;
}
});
}
};
@@ -191,11 +223,17 @@ export default class MoreChannels extends PureComponent {
loadedChannels = ({data}) => {
if (this.mounted) {
if (data && !data.length) {
this.next = false;
const {typeOfChannels} = this.state;
const isPublic = typeOfChannels === 'public';
if (isPublic) {
this.publicPage += 1;
this.nextPublic = (data && !data.length);
} else {
this.archivedPage += 1;
this.nextArchived = (data && !data.length);
}
this.page += 1;
this.setState({loading: false});
}
};
@@ -253,10 +291,12 @@ export default class MoreChannels extends PureComponent {
};
renderLoading = () => {
const {theme, channels} = this.props;
const {theme} = this.props;
const {typeOfChannels} = this.state;
const style = getStyleFromTheme(theme);
if (!channels.length && this.page <= 0) {
if ((typeOfChannels === 'public' && !this.nextPublic) ||
(typeOfChannels === 'archived' && !this.nextArchived)) {
return null;
}
@@ -362,7 +402,10 @@ export default class MoreChannels extends PureComponent {
default:
typeOfChannels = this.state.typeOfChannels;
}
this.setState({typeOfChannels});
if (typeOfChannels !== this.state.typeOfChannels) {
this.setState({typeOfChannels, loading: false}, this.doGetChannels);
}
});
}
@@ -370,7 +413,7 @@ export default class MoreChannels extends PureComponent {
const {formatMessage} = this.context.intl;
const {theme, isLandscape, canShowArchivedChannels} = this.props;
const {adding, channels, archivedChannels, loading, term, typeOfChannels} = this.state;
const more = term ? () => true : this.getChannels;
const more = term ? emptyFunction : this.getChannels;
const style = getStyleFromTheme(theme);
const publicChannelsText = formatMessage({id: 'more_channels.showPublicChannels', defaultMessage: 'Show: Public Channels'});
@@ -440,6 +483,7 @@ export default class MoreChannels extends PureComponent {
</View>
{channelDropdown}
<CustomList
canRefresh={false}
data={activeChannels}
extraData={loading}
key='custom_list'

View File

@@ -16,7 +16,8 @@ describe('MoreChannels', () => {
const actions = {
handleSelectChannel: jest.fn(),
joinChannel: jest.fn(),
loadPublicAndArchivedChannels: jest.fn().mockResolvedValue({data: [{id: 'id2', name: 'name2', display_name: 'display_name2'}]}),
getArchivedChannels: jest.fn().mockResolvedValue({data: [{id: 'id2', name: 'name2', display_name: 'display_name2', delete_at: 123}]}),
getChannels: jest.fn().mockResolvedValue({data: [{id: 'id', name: 'name', display_name: 'display_name'}]}),
searchChannels: jest.fn(),
setChannelDisplayName: jest.fn(),
};
@@ -25,7 +26,7 @@ describe('MoreChannels', () => {
actions,
canCreateChannels: true,
channels: [{id: 'id', name: 'name', display_name: 'display_name'}],
archivedChannels: [{id: 'id2', name: 'archived', display_name: 'archived channel'}],
archivedChannels: [{id: 'id2', name: 'archived', display_name: 'archived channel', delete_at: 123}],
closeButton: {},
currentUserId: 'current_user_id',
currentTeamId: 'current_team_id',

View File

@@ -119,7 +119,7 @@ exports[`PostOptions should match snapshot, no option for system message to user
icon="bookmark"
isLandscape={false}
onPress={[Function]}
text="Mark post as unread"
text="Mark as Unread"
theme={
Object {
"awayIndicator": "#ffbc42",
@@ -345,7 +345,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste
icon="bookmark"
isLandscape={false}
onPress={[Function]}
text="Mark post as unread"
text="Mark as Unread"
theme={
Object {
"awayIndicator": "#ffbc42",
@@ -607,7 +607,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = `
icon="bookmark"
isLandscape={false}
onPress={[Function]}
text="Mark post as unread"
text="Mark as Unread"
theme={
Object {
"awayIndicator": "#ffbc42",

View File

@@ -22,6 +22,7 @@ import {getTheme} from 'mattermost-redux/selectors/entities/preferences';
import {haveIChannelPermission} from 'mattermost-redux/selectors/entities/roles';
import {getCurrentTeamId, getCurrentTeamUrl} from 'mattermost-redux/selectors/entities/teams';
import {canEditPost} from 'mattermost-redux/utils/post_utils';
import {isMinimumServerVersion} from 'mattermost-redux/utils/helpers';
import {MAX_ALLOWED_REACTIONS} from 'app/constants/emoji';
import {THREAD} from 'app/constants/screen';
@@ -43,6 +44,8 @@ export function makeMapStateToProps() {
const currentChannelId = getCurrentChannelId(state);
const reactions = getReactionsForPostSelector(state, post.id);
const channelIsArchived = channel.delete_at !== 0;
const {serverVersion} = state.entities.general;
const canMarkAsUnread = isMinimumServerVersion(serverVersion, 5, 18);
let canAddReaction = true;
let canReply = true;
@@ -115,9 +118,9 @@ export function makeMapStateToProps() {
canDelete,
canFlag,
canPin,
canMarkAsUnread,
currentTeamUrl: getCurrentTeamUrl(state),
currentUserId,
isMyPost: currentUserId === post.user_id,
theme: getTheme(state),
isLandscape: isLandscape(state),
};

View File

@@ -35,6 +35,9 @@ describe('makeMapStateToProps', () => {
post_id: {},
},
},
general: {
serverVersion: '5.18',
},
},
};
@@ -65,4 +68,25 @@ describe('makeMapStateToProps', () => {
const props = mapStateToProps(baseState, ownProps);
expect(props.canFlag).toBe(true);
});
test('canMarkAsUnread is true when isMinimumServerVersion is 5.18v', () => {
const mapStateToProps = makeMapStateToProps();
const props = mapStateToProps(baseState, baseOwnProps);
expect(props.canMarkAsUnread).toBe(true);
});
test('canMarkAsUnread is false when isMinimumServerVersion is not 5.18v', () => {
const state = {
entities: {
...baseState.entities,
general: {
serverVersion: '5.17',
},
},
};
const mapStateToProps = makeMapStateToProps();
const props = mapStateToProps(state, baseOwnProps);
expect(props.canMarkAsUnread).toBe(false);
});
});

View File

@@ -38,12 +38,12 @@ export default class PostOptions extends PureComponent {
canFlag: PropTypes.bool,
canPin: PropTypes.bool,
canEdit: PropTypes.bool,
canMarkAsUnread: PropTypes.bool, //#backwards-compatibility:5.18v
canEditUntil: PropTypes.number.isRequired,
currentTeamUrl: PropTypes.string.isRequired,
currentUserId: PropTypes.string.isRequired,
deviceHeight: PropTypes.number.isRequired,
isFlagged: PropTypes.bool,
isMyPost: PropTypes.bool,
post: PropTypes.object.isRequired,
theme: PropTypes.object.isRequired,
isLandscape: PropTypes.bool.isRequired,
@@ -231,12 +231,12 @@ export default class PostOptions extends PureComponent {
const {post, isLandscape, theme} = this.props;
const {formatMessage} = this.context.intl;
if (!isSystemMessage(post)) {
if (!isSystemMessage(post) && this.props.canMarkAsUnread) {
return (
<PostOption
key='markUnread'
icon='bookmark'
text={formatMessage({id: 'mobile.post_info.mark_unread', defaultMessage: 'Mark post as unread'})}
text={formatMessage({id: 'mobile.post_info.mark_unread', defaultMessage: 'Mark as Unread'})}
onPress={this.handleMarkUnread}
isLandscape={isLandscape}
theme={theme}

View File

@@ -38,6 +38,7 @@ describe('PostOptions', () => {
canDelete: true,
canPin: true,
canEdit: true,
canMarkAsUnread: true,
canEditUntil: -1,
channelIsReadOnly: false,
currentTeamUrl: 'http://localhost:8065/team-name',
@@ -45,7 +46,6 @@ describe('PostOptions', () => {
deviceHeight: 600,
hasBeenDeleted: false,
isFlagged: false,
isMyPost: true,
isSystemMessage: false,
managedConfig: {},
post,
@@ -98,6 +98,12 @@ describe('PostOptions', () => {
expect(wrapper.findWhere((node) => node.key() === 'reply')).toMatchObject({});
});
test('should not show mark as unread option', () => {
const wrapper = getWrapper({canMarkAsUnread: false});
expect(wrapper.findWhere((node) => node.key() === 'markUnread')).toMatchObject({});
});
test('should remove post after delete', () => {
const wrapper = getWrapper();

View File

@@ -91,6 +91,7 @@ exports[`SelectTeam should match snapshot for teams 1`] = `
/>
</View>
<CustomList
canRefresh={true}
data={Array []}
extraData={false}
isLandscape={false}

View File

@@ -4,7 +4,7 @@
import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';
import {getTeams, joinTeam} from 'mattermost-redux/actions/teams';
import {getTeams, addUserToTeam, joinTeam} from 'mattermost-redux/actions/teams';
import {logout} from 'mattermost-redux/actions/users';
import {getJoinableTeams} from 'mattermost-redux/selectors/entities/teams';
import {getCurrentUser} from 'mattermost-redux/selectors/entities/users';
@@ -22,7 +22,9 @@ function mapStateToProps(state) {
teamsRequest: state.requests.teams.getTeams,
teams: getJoinableTeams(state),
isLandscape: isLandscape(state),
currentUserId: currentUser && currentUser.id,
currentUserIsGuest,
serverVersion: state.entities.general.serverVersion,
};
}
@@ -32,6 +34,7 @@ function mapDispatchToProps(dispatch) {
getTeams,
handleTeamChange,
joinTeam,
addUserToTeam,
logout,
}, dispatch),
};

View File

@@ -14,6 +14,7 @@ import {Navigation} from 'react-native-navigation';
import {RequestStatus} from 'mattermost-redux/constants';
import EventEmitter from 'mattermost-redux/utils/event_emitter';
import {isMinimumServerVersion} from 'mattermost-redux/utils/helpers';
import FormattedText from 'app/components/formatted_text';
import Loading from 'app/components/loading';
@@ -34,16 +35,19 @@ export default class SelectTeam extends PureComponent {
getTeams: PropTypes.func.isRequired,
handleTeamChange: PropTypes.func.isRequired,
joinTeam: PropTypes.func.isRequired,
addUserToTeam: PropTypes.func.isRequired,
logout: PropTypes.func.isRequired,
}).isRequired,
componentId: PropTypes.string.isRequired,
currentUrl: PropTypes.string.isRequired,
currentUserIsGuest: PropTypes.bool.isRequired,
currentUserId: PropTypes.string.isRequired,
userWithoutTeams: PropTypes.bool,
teams: PropTypes.array.isRequired,
theme: PropTypes.object,
teamsRequest: PropTypes.object.isRequired,
isLandscape: PropTypes.bool.isRequired,
serverVersion: PropTypes.string,
};
static defaultProps = {
@@ -128,13 +132,21 @@ export default class SelectTeam extends PureComponent {
onSelectTeam = async (team) => {
this.setState({joining: true});
const {userWithoutTeams} = this.props;
const {userWithoutTeams, currentUserId, serverVersion} = this.props;
const {
joinTeam,
addUserToTeam,
handleTeamChange,
} = this.props.actions;
const {error} = await joinTeam(team.invite_id, team.id);
let error;
if (isMinimumServerVersion(serverVersion, 5, 18)) {
const result = await addUserToTeam(team.id, currentUserId);
error = result.error;
} else {
const result = await joinTeam(team.invite_id, team.id);
error = result.error;
}
if (error) {
Alert.alert(error.message);
this.setState({joining: false});

View File

@@ -27,6 +27,7 @@ describe('SelectTeam', () => {
const actions = {
getTeams,
handleTeamChange: jest.fn(),
addUserToTeam: jest.fn(),
joinTeam: jest.fn(),
logout: jest.fn(),
};
@@ -35,6 +36,7 @@ describe('SelectTeam', () => {
actions,
currentChannelId: 'someId',
currentUserIsGuest: false,
currentUserId: 'fakeid',
currentUrl: 'test',
userWithoutTeams: false,
teams: [],
@@ -44,6 +46,7 @@ describe('SelectTeam', () => {
},
componentId: 'component-id',
isLandscape: false,
serverVersion: '5.18',
};
test('should match snapshot for fail of teams', async () => {
@@ -100,4 +103,34 @@ describe('SelectTeam', () => {
await getTeams();
expect(wrapper.getElement()).toMatchSnapshot();
});
test('should call joinTeam versions prior to 5.18', async () => {
const props = {
...baseProps,
serverVersion: '5.17',
};
const wrapper = shallow(
<SelectTeam {...props}/>,
);
wrapper.instance().onSelectTeam({id: 'test_id', invite_id: 'test_invite_id'});
expect(props.actions.joinTeam).toBeCalledWith('test_invite_id', 'test_id');
expect(props.actions.addUserToTeam).not.toBeCalled();
});
test('should call joinTeam versions posterior to 5.18', async () => {
const props = {
...baseProps,
serverVersion: '5.18',
};
const wrapper = shallow(
<SelectTeam {...props}/>,
);
wrapper.instance().onSelectTeam({id: 'test_id', invite_id: 'test_invite_id'});
expect(props.actions.joinTeam).not.toBeCalled();
expect(props.actions.addUserToTeam).toBeCalledWith('test_id', 'fakeid');
});
});

View File

@@ -52,6 +52,7 @@ exports[`SelectorScreen should match snapshot for channels 1`] = `
/>
</View>
<CustomList
canRefresh={true}
data={Array []}
isLandscape={false}
listType="flat"
@@ -148,6 +149,7 @@ exports[`SelectorScreen should match snapshot for channels 2`] = `
/>
</View>
<CustomList
canRefresh={true}
data={Array []}
isLandscape={false}
listType="flat"
@@ -244,6 +246,7 @@ exports[`SelectorScreen should match snapshot for explicit options 1`] = `
/>
</View>
<CustomList
canRefresh={true}
data={
Array [
Object {
@@ -347,6 +350,7 @@ exports[`SelectorScreen should match snapshot for searching 1`] = `
/>
</View>
<CustomList
canRefresh={true}
data={Array []}
isLandscape={false}
listType="flat"
@@ -443,6 +447,7 @@ exports[`SelectorScreen should match snapshot for users 1`] = `
/>
</View>
<CustomList
canRefresh={true}
data={Array []}
isLandscape={false}
listType="section"
@@ -539,6 +544,7 @@ exports[`SelectorScreen should match snapshot for users 2`] = `
/>
</View>
<CustomList
canRefresh={true}
data={Array []}
isLandscape={false}
listType="section"

View File

@@ -91,14 +91,9 @@ exports[`NotificationSettingsEmailAndroid should match snapshot 2`] = `
}
/>
<FormattedText
defaultMessage="Email notifications are sent for mentions and direct messages when you are offline or away from {siteName} for more than 5 minutes."
defaultMessage="Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes."
id="user.settings.notifications.emailInfo"
style={Object {}}
values={
Object {
"siteName": "Mattermost",
}
}
/>
</View>
<View

View File

@@ -3,13 +3,8 @@
exports[`NotificationSettingsEmailIos should match snapshot, renderEmailSection 1`] = `
<section
disableFooter={false}
footerDefaultMessage="Email notifications are sent for mentions and direct messages when you are offline or away from {siteName} for more than 5 minutes."
footerDefaultMessage="Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes."
footerId="user.settings.notifications.emailInfo"
footerValues={
Object {
"siteName": "Mattermost",
}
}
headerDefaultMessage="SEND EMAIL NOTIFICATIONS"
headerId="mobile.notification_settings.email.send"
isLandscape={false}

View File

@@ -41,7 +41,6 @@ function mapStateToProps(state) {
enableEmailBatching,
emailInterval,
sendEmailNotifications,
siteName: config.siteName || '',
theme: getTheme(state),
isLandscape: isLandscape(state),
};

View File

@@ -101,7 +101,6 @@ class NotificationSettingsEmailAndroid extends NotificationSettingsEmailBase {
const {
enableEmailBatching,
sendEmailNotifications,
siteName,
} = this.props;
const {newInterval} = this.state;
@@ -110,8 +109,7 @@ class NotificationSettingsEmailAndroid extends NotificationSettingsEmailBase {
helpText = (
<FormattedText
id='user.settings.notifications.emailInfo'
defaultMessage='Email notifications are sent for mentions and direct messages when you are offline or away from {siteName} for more than 5 minutes.'
values={{siteName}}
defaultMessage='Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes.'
style={style.modalHelpText}
/>
);

View File

@@ -24,7 +24,6 @@ describe('NotificationSettingsEmailAndroid', () => {
savePreferences: jest.fn(),
},
sendEmailNotifications: true,
siteName: 'Mattermost',
theme: Preferences.THEMES.default,
componentId: 'component-id',
};

View File

@@ -24,7 +24,6 @@ class NotificationSettingsEmailIos extends NotificationSettingsEmailBase {
const {
enableEmailBatching,
sendEmailNotifications,
siteName,
theme,
isLandscape,
} = this.props;
@@ -36,8 +35,7 @@ class NotificationSettingsEmailIos extends NotificationSettingsEmailBase {
headerId={t('mobile.notification_settings.email.send')}
headerDefaultMessage='SEND EMAIL NOTIFICATIONS'
footerId={t('user.settings.notifications.emailInfo')}
footerDefaultMessage='Email notifications are sent for mentions and direct messages when you are offline or away from {siteName} for more than 5 minutes.'
footerValues={{siteName}}
footerDefaultMessage='Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes.'
disableFooter={!sendEmailNotifications}
theme={theme}
isLandscape={isLandscape}

View File

@@ -31,7 +31,6 @@ describe('NotificationSettingsEmailIos', () => {
savePreferences: jest.fn(),
},
sendEmailNotifications: true,
siteName: 'Mattermost',
theme: Preferences.THEMES.default,
componentId: 'component-id',
isLandscape: false,

View File

@@ -23,7 +23,6 @@ export default class NotificationSettingsEmailBase extends PureComponent {
emailInterval: PropTypes.string.isRequired,
enableEmailBatching: PropTypes.bool.isRequired,
sendEmailNotifications: PropTypes.bool.isRequired,
siteName: PropTypes.string,
theme: PropTypes.object.isRequired,
};

View File

@@ -5,7 +5,6 @@ import React, {PureComponent} from 'react';
import PropTypes from 'prop-types';
import {injectIntl, intlShape} from 'react-intl';
import {
InteractionManager,
Text,
View,
Platform,
@@ -81,7 +80,7 @@ class SSO extends PureComponent {
this.state = {
error: null,
renderWebView: false,
renderWebView: true,
jsCode: '',
messagingEnabled: false,
};
@@ -106,16 +105,6 @@ class SSO extends PureComponent {
}
}
componentDidMount() {
InteractionManager.runAfterInteractions(this.clearPreviousCookies);
}
clearPreviousCookies = () => {
CookieManager.clearAll(this.useWebkit).then(() => {
this.setState({renderWebView: true});
});
};
goToChannel = () => {
tracker.initialLoad = Date.now();
@@ -232,7 +221,7 @@ class SSO extends PureComponent {
onLoadEnd={this.onLoadEnd}
onMessage={messagingEnabled ? this.onMessage : null}
useSharedProcessPool={true}
cacheEnabled={true}
cacheEnabled={false}
/>
);
}

View File

@@ -3,8 +3,7 @@
import {createSelector} from 'reselect';
import {getCurrentChannelId, getUnreadsInCurrentTeam} from 'mattermost-redux/selectors/entities/channels';
import {getCurrentTeamId, getTeamMemberships} from 'mattermost-redux/selectors/entities/teams';
import {getCurrentChannelId, getUnreads} from 'mattermost-redux/selectors/entities/channels';
const emptyDraft = {
draft: '',
@@ -45,23 +44,12 @@ export function getProfileImageUri(state) {
}
export const getBadgeCount = createSelector(
getCurrentTeamId,
getTeamMemberships,
getUnreadsInCurrentTeam,
(currentTeamId, myTeamMembers, {mentionCount, messageCount}) => {
let mentions = mentionCount;
let messages = messageCount;
const members = Object.values(myTeamMembers).filter((m) => m.team_id !== currentTeamId);
members.forEach((m) => {
mentions += (m.mention_count || 0);
messages += (m.msg_count || 0);
});
getUnreads,
({mentionCount, messageCount}) => {
let badgeCount = 0;
if (mentions) {
badgeCount = mentions;
} else if (messages) {
if (mentionCount) {
badgeCount = mentionCount;
} else if (messageCount) {
badgeCount = -1;
}

View File

@@ -40,3 +40,22 @@ export function transformSet(incoming, setTransforms, toStorage = true) {
return state;
}
export function waitForHydration(store, callback) {
if (store.getState().views.root.hydrationComplete) {
if (callback && typeof callback === 'function') {
callback();
}
} else {
const subscription = () => {
if (store.getState().views.root.hydrationComplete) {
unsubscribeFromStore();
if (callback && typeof callback === 'function') {
callback();
}
}
};
const unsubscribeFromStore = store.subscribe(subscription);
}
}

View File

@@ -103,6 +103,7 @@ export async function deleteFileCache() {
if (isVideosDir) {
await RNFetchBlob.fs.unlink(VIDEOS_PATH);
}
return true;
}
@@ -229,8 +230,8 @@ function populateMaps() {
}
export function getLocalFilePathFromFile(dir, file) {
if (dir && file && file.caption && file.data && file.data.id) {
return `${dir}/${file.data.id}-${decodeURIComponent(file.caption).replace(/\s+/g, '-')}`;
if (dir && file && file.data && file.data.id && file.data.extension) {
return `${dir}/${file.data.id}.${file.data.extension}`;
}
return null;

View File

@@ -1,7 +1,7 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {getExtensionFromContentDisposition} from 'app/utils/file';
import {generateId, getLocalFilePathFromFile, getExtensionFromContentDisposition} from 'app/utils/file';
describe('getExtensionFromContentDisposition', () => {
it('should return the extracted the extension', () => {
@@ -44,4 +44,34 @@ describe('getExtensionFromContentDisposition', () => {
expect(extension).toBe(null);
});
});
it('should return the path for the file', () => {
const data = {
id: generateId(),
name: 'Some Video file.mp4',
extension: 'mp4',
};
const localFile = getLocalFilePathFromFile('Videos', {data});
expect(localFile).toBe(`Videos/${data.id}.${data.extension}`);
});
it('should return the null as the path if it does not have an id set', () => {
const data = {
name: 'Some Video file.mp4',
extension: 'mp4',
};
const localFile = getLocalFilePathFromFile('Videos', {data});
expect(localFile).toBeNull();
});
it('should return the null as the path if it does not have an extension set', () => {
const data = {
id: generateId(),
name: 'Some Video file.mp4',
};
const localFile = getLocalFilePathFromFile('Videos', {data});
expect(localFile).toBeNull();
});
});

View File

@@ -23,6 +23,7 @@ import {getCurrentServerUrl, getAppCredentials} from 'app/init/credentials';
import PushNotifications from 'app/push_notifications';
import {getCurrentLocale} from 'app/selectors/i18n';
import EphemeralStore from 'app/store/ephemeral_store';
import {waitForHydration} from 'app/store/utils';
import {t} from 'app/utils/i18n';
class PushNotificationUtils {
@@ -64,9 +65,6 @@ class PushNotificationUtils {
onPushNotification = async (deviceNotification) => {
const {dispatch, getState} = this.store;
let unsubscribeFromStore = null;
let stopLoadingNotification = false;
const {data, foreground, message, userInteraction} = deviceNotification;
const notification = {
data,
@@ -88,15 +86,9 @@ class PushNotificationUtils {
this.loadFromNotification(notification);
}, 0);
} else {
const waitForHydration = () => {
if (getState().views.root.hydrationComplete && !stopLoadingNotification) {
stopLoadingNotification = true;
unsubscribeFromStore();
this.loadFromNotification(notification);
}
};
unsubscribeFromStore = this.store.subscribe(waitForHydration);
waitForHydration(this.store, () => {
this.loadFromNotification(notification);
});
}
}
}
@@ -164,8 +156,7 @@ class PushNotificationUtils {
};
onRegisterDevice = (data) => {
const {dispatch, getState} = this.store;
let unsubscribeFromStore = null;
const {dispatch} = this.store;
let prefix;
if (Platform.OS === 'ios') {
@@ -180,15 +171,10 @@ class PushNotificationUtils {
EphemeralStore.deviceToken = `${prefix}:${data.token}`;
// TODO: Remove when realm is ready
const waitForHydration = () => {
if (getState().views.root.hydrationComplete && !this.configured) {
this.configured = true;
dispatch(setDeviceToken(EphemeralStore.deviceToken));
unsubscribeFromStore();
}
};
unsubscribeFromStore = this.store.subscribe(waitForHydration);
waitForHydration(this.store, () => {
this.configured = true;
dispatch(setDeviceToken(EphemeralStore.deviceToken));
});
};
getNotification = () => {

View File

@@ -19,7 +19,14 @@ export function setCSRFFromCookie(url) {
CookieManager.get(url, false).then((res) => {
const token = res.MMCSRF;
if (token) {
Client4.setCSRF(token?.value || token);
let value = null;
if (typeof token === 'object' && Object.prototype.hasOwnProperty.call(token, 'value')) {
value = token.value;
} else {
value = token;
}
Client4.setCSRF(value);
}
resolve();
});

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "Ihre gesamte Team-Kommunikation an einem Ort, sofort durchsuchbar und überall verfügbar.",
"about.teamEditiont0": "Team Edition",
"about.teamEditiont1": "Enterprise Edition",
"about.title": "Über Mattermost",
"about.title": "Über {appTitle}",
"announcment_banner.dont_show_again": "Nicht erneut anzeigen",
"api.channel.add_member.added": "{addedUsername} durch {username} zum Kanal hinzugefügt.",
"archivedChannelMessage": "Sie sehen einen **archivierten Kanal**. Neue Nachrichten können nicht geschickt werden.",
@@ -35,8 +35,11 @@
"channel_modal.purposeEx": "Z.B.: \"Ein Kanal um Fehler und Verbesserungsvorschläge abzulegen\"",
"channel_notifications.ignoreChannelMentions.settings": "@channel, @here, @all ignorieren",
"channel_notifications.muteChannel.settings": "Kanal stummschalten",
"channel.channelHasGuests": "Dieser Kanal hat Gäste",
"channel.hasGuests": "Diese Gruppennachricht hat Gäste",
"channel.isGuest": "Diese Person ist ein Gast.",
"combined_system_message.added_to_channel.many_expanded": "{users} und {lastUser} wurden durch {actor} **zum Kanal hinzugefügt**.",
"combined_system_message.added_to_channel.one": "{firstUser} von {actor} **zum Kanal hinzugefügt**.",
"combined_system_message.added_to_channel.one": "{firstUser} durch {actor} **zum Kanal hinzugefügt**.",
"combined_system_message.added_to_channel.one_you": "Sie wurden durch {actor} **zum Kanal hinzugefügt**.",
"combined_system_message.added_to_channel.two": "{firstUser} und {secondUser} wurden durch {actor} **zum Kanal hinzugefügt**.",
"combined_system_message.added_to_team.many_expanded": "{users} und {lastUser} wurden durch {actor} **zum Team hinzugefügt**.",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{firstUser} und {secondUser} wurden durch {actor} **zum Team hinzugefügt**.",
"combined_system_message.joined_channel.many_expanded": "{users} und {lastUser} **sind dem Kanal beigetreten**.",
"combined_system_message.joined_channel.one": "{firstUser} **ist dem Kanal beigetreten**.",
"combined_system_message.joined_channel.one_you": "**sind dem Kanal beigetreten**.",
"combined_system_message.joined_channel.one_you": "Sie **sind dem Kanal beigetreten**.",
"combined_system_message.joined_channel.two": "{firstUser} und {secondUser} **sind dem Kanal beigetreten**.",
"combined_system_message.joined_team.many_expanded": "{users} und {lastUser} **sind dem Team beigetreten**.",
"combined_system_message.joined_team.one": "{firstUser} **ist dem Team beigetreten**.",
"combined_system_message.joined_team.one_you": "**ist dem Team beigetreten**.",
"combined_system_message.joined_team.one_you": "Sie **sind dem Team beigetreten**.",
"combined_system_message.joined_team.two": "{firstUser} und {secondUser} **sind dem Team beigetreten**.",
"combined_system_message.left_channel.many_expanded": "{users} und {lastUser} **haben den Kanal verlassen**.",
"combined_system_message.left_channel.one": "{firstUser} **hat den Kanal verlassen**.",
"combined_system_message.left_channel.one_you": "**hat den Kanal verlassen**.",
"combined_system_message.left_channel.one_you": "Sie **haben den Kanal verlassen**.",
"combined_system_message.left_channel.two": "{firstUser} und {secondUser} **haben den Kanal verlassen**.",
"combined_system_message.left_team.many_expanded": "{users} und {lastUser} **haben das Team verlassen**.",
"combined_system_message.left_team.one": "{firstUser} **hat das Team verlassen**.",
"combined_system_message.left_team.one_you": "**hat das Team verlassen**.",
"combined_system_message.left_team.one_you": "Sie **haben das Team verlassen**.",
"combined_system_message.left_team.two": "{firstUser} und {secondUser} **haben das Team verlassen**.",
"combined_system_message.removed_from_channel.many_expanded": "{users} und {lastUser} wurden **aus dem Kanal entfernt**.",
"combined_system_message.removed_from_channel.one": "{firstUser} wurde **aus dem Kanal entfernt**.",
@@ -70,21 +73,21 @@
"combined_system_message.you": "Sie",
"create_comment.addComment": "Kommentar hinzufügen...",
"create_post.deactivated": "Sie betrachten einen archivierten Kanal mit einem deaktivierten Benutzer.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "In {channelDisplayName} schreiben",
"date_separator.today": "Heute",
"date_separator.yesterday": "Gestern",
"edit_post.editPost": "Nachricht bearbeiten...",
"edit_post.save": "Speichern",
"error.team_not_found.title": "Team nicht gefunden",
"file_attachment.download": "Download",
"file_upload.fileAbove": "Datei über {max}MB kann nicht hochgeladen werden: {filename}",
"get_post_link_modal.title": "Kopiere Permalink",
"integrations.add": "Hinzufügen",
"intro_messages.anyMember": " Jedes Mitglied kann diesem Kanal beitreten und folgen.",
"intro_messages.beginning": "Start von {name}",
"intro_messages.channel": "Kanal",
"intro_messages.creator": "Dies ist der Start von {type} {name}, erstellt durch {creator} am {date}.",
"intro_messages.group": "Privater Kanal",
"intro_messages.creator": "Dies ist der Start von {name}, erstellt durch {creator} am {date}.",
"intro_messages.creatorPrivate": "Dies ist der Start von {name}, erstellt durch {creator} am {date}.",
"intro_messages.group_message": "Dies ist der Start ihres Gruppennachrichten-Verlaufs mit diesen Teammitgliedern. Nachrichten und hier geteilte Dateien sind für Personen außerhalb dieses Bereichs nicht sichtbar.",
"intro_messages.noCreator": "Dies ist der Start von {type} {name}, erstellt am {date}.",
"intro_messages.noCreator": "Dies ist der Start von {name}, erstellt am {date}.",
"intro_messages.onlyInvited": " Nur eingeladene Mitglieder können diesen privaten Kanal sehen.",
"last_users_message.added_to_channel.type": "wurden durch {actor} **dem Kanal hinzugefügt**.",
"last_users_message.added_to_team.type": "wurden durch {actor} **dem Team hinzugefügt**.",
@@ -98,7 +101,7 @@
"last_users_message.removed_from_team.type": "wurden **aus dem Team entfernt**.",
"login_mfa.enterToken": "Um ihre Anmeldung zu vervollständigen, geben Sie bitte den Token des Authenticators ein",
"login_mfa.token": "MFA Token",
"login_mfa.tokenReq": "Bitte geben Sie den MFA Token ein",
"login_mfa.tokenReq": "Bitte geben Sie den MFA-Token ein",
"login.email": "E-Mail-Adresse",
"login.forgot": "Ich habe mein Passwort vergessen",
"login.invalidPassword": "Ihr Passwort ist falsch.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Erwähnungen in Antworten",
"mobile.account_notifications.threads_start": "Diskussionen die ich starte",
"mobile.account_notifications.threads_start_participate": "Diskussionen die ich starte oder an denen ich teilnehme",
"mobile.account.settings.cancel": "Abbrechen",
"mobile.account.settings.save": "Speichern",
"mobile.action_menu.select": "Wählen Sie eine Option",
"mobile.advanced_settings.clockDisplay": "Uhrzeit-Format",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Dokumente & Daten löschen",
"mobile.advanced_settings.timezone": "Zeitzone",
"mobile.advanced_settings.title": "Erweiterte Einstellungen",
"mobile.android.camera_permission_denied_description": "Um Fotos und Videos mit ihrer Kamera aufzunehmen, ändern Sie bitte ihre Berechtigungseinstellungen.",
"mobile.android.camera_permission_denied_title": "Kamerazugrif wird benötigt",
"mobile.android.permission_denied_dismiss": "Verwerfen",
"mobile.android.permission_denied_retry": "Berechtigung einstellen",
"mobile.android.photos_permission_denied_description": "Um Bilder aus ihrer Bibliothek hochzuladen, ändern Sie bitte ihre Berechtigungseinstellungen.",
"mobile.android.photos_permission_denied_title": "Zugriff auf Fotobibliothek wird benötigt",
"mobile.android.storage_permission_denied_description": "Um Bilder von ihrem Android-Gerät hochzuladen, ändern Sie bitte ihre Berechtigungseinstellungen.",
"mobile.android.storage_permission_denied_title": "Zugriff auf Dateisystem wird benötigt",
"mobile.android.videos_permission_denied_description": "Um Videos aus ihrer Bibliothek hochzuladen, ändern Sie bitte ihre Berechtigungseinstellungen.",
"mobile.android.videos_permission_denied_title": "Zugriff auf Videobibliothek wird benötigt",
"mobile.alert_dialog.alertCancel": "Abbrechen",
"mobile.android.photos_permission_denied_description": "Laden Sie Fotos auf ihre Mattermost-Instanz hoch oder speichern Sie sie auf Ihrem Gerät. Öffnen Sie die Einstellungen, um Mattermost Lese- und Schreibzugriff auf ihre Fotobibliothek zu gewähren.",
"mobile.android.photos_permission_denied_title": "{applicationName} möchte auf Ihre Fotos zugreifen",
"mobile.android.videos_permission_denied_description": "Laden Sie Videos auf ihre Mattermost-Instanz hoch oder speichern Sie sie auf Ihrem Gerät. Öffnen Sie die Einstellungen, um Mattermost Lese- und Schreibzugriff auf ihre Videobibliothek zu gewähren.",
"mobile.android.videos_permission_denied_title": "{applicationName} möchte auf Ihre Videos zugreifen",
"mobile.announcement_banner.title": "Ankündigung",
"mobile.authentication_error.message": "Mattermost hat einen Fehler festgestellt. Bitte authentifizieren Sie sich erneut, um eine neue Sitzung zu beginnen.",
"mobile.authentication_error.title": "Authentifizierungsfehler",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Mo,Di,Mi,Do,Fr,Sa,So",
"mobile.calendar.monthNames": "Januar,Februar,März,April,Mai,Juni,July,August,September,Oktober,November,Dezember",
"mobile.calendar.monthNamesShort": "Jan,Feb,Mär,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez",
"mobile.camera_photo_permission_denied_description": "Nehmen Sie Fotos auf und laden sie auf ihre Mattermost-Instanz hoch oder speichern Sie sie auf Ihrem Gerät. Öffnen Sie die Einstellungen, um Mattermost Lese- und Schreibzugriff auf ihre Kamera zu gewähren.",
"mobile.camera_photo_permission_denied_title": "{applicationName} möchte auf Ihre Kamera zugreifen",
"mobile.camera_video_permission_denied_description": "Nehmen Sie Videos auf und laden sie auf ihre Mattermost-Instanz hoch oder speichern Sie sie auf Ihrem Gerät. Öffnen Sie die Einstellungen, um Mattermost Lese- und Schreibzugriff auf ihre Kamera zu gewähren.",
"mobile.camera_video_permission_denied_title": "{applicationName} möchte auf Ihre Kamera zugreifen",
"mobile.channel_drawer.search": "Springe zu...",
"mobile.channel_info.alertMessageConvertChannel": "Wenn Sie **{displayName}**** in einen privaten Kanal umwandeln, bleiben Historie und Mitgliedschaft erhalten. Öffentlich freigegebene Dateien bleiben für jeden mit dem Link zugänglich. Die Mitgliedschaft in einem privaten Kanal ist nur auf Einladung möglich. \n\nDie Änderung ist dauerhaft und kann nicht rückgängig gemacht werden.\n\nSind Sie sicher, dass Sie **{displayName}**** in einen privaten Kanal umwandeln möchten?",
"mobile.channel_info.alertMessageDeleteChannel": "Sind Sie sicher, dass Sie den {term} {name} archivieren möchten?",
"mobile.channel_info.alertMessageLeaveChannel": "Sind Sie sicher, dass Sie den {term} {name} verlassen möchten?",
"mobile.channel_info.alertNo": "Nein",
"mobile.channel_info.alertTitleConvertChannel": "{displayName} in privaten Kanal umwandeln?",
"mobile.channel_info.alertTitleDeleteChannel": "{term} archivieren",
"mobile.channel_info.alertTitleLeaveChannel": "{term} verlassen",
"mobile.channel_info.alertYes": "Ja",
"mobile.channel_info.convert": "In privaten Kanal umwandeln",
"mobile.channel_info.convert_failed": "Wir konnten {displayName} nicht in einen privaten Kanal umwandeln.",
"mobile.channel_info.convert_success": "{displayName} ist nun ein privater Kanal.",
"mobile.channel_info.copy_header": "Header kopieren",
"mobile.channel_info.copy_purpose": "Zweck kopieren",
"mobile.channel_info.delete_failed": "Der Kanal {displayName} konnte nicht archiviert werden. Bitte überprüfen Sie ihre Verbindung und versuchen es erneut.",
"mobile.channel_info.edit": "Kanal bearbeiten",
"mobile.channel_info.privateChannel": "Privater Kanal",
"mobile.channel_info.publicChannel": "Öffentlicher Kanal",
"mobile.channel_list.alertNo": "Nein",
"mobile.channel_list.alertYes": "Ja",
"mobile.channel_list.archived": "ARCHIVIERT",
"mobile.channel_list.channels": "KANÄLE",
"mobile.channel_list.closeDM": "Direktnachricht schließen",
"mobile.channel_list.closeGM": "Gruppennachricht schließen",
@@ -181,7 +190,7 @@
"mobile.client_upgrade.close": "Später Aktualisieren",
"mobile.client_upgrade.current_version": "Neueste Version: {version}",
"mobile.client_upgrade.download_error.message": "Es ist ein Fehler beim Herunterladen der neuen Version aufgetreten.",
"mobile.client_upgrade.download_error.title": "Aktualisierung konnte nicht installiert werden",
"mobile.client_upgrade.download_error.title": "Konnte Aktualisierung nicht installieren.",
"mobile.client_upgrade.latest_version": "Ihre Version: {version}",
"mobile.client_upgrade.listener.dismiss_button": "Verwerfen",
"mobile.client_upgrade.listener.learn_more_button": "Mehr erfahren",
@@ -204,8 +213,9 @@
"mobile.create_channel.public": "Neuer Öffentlicher Kanal",
"mobile.create_post.read_only": "Dieser Kanal ist schreibgeschützt",
"mobile.custom_list.no_results": "Keine Ergebnisse",
"mobile.display_settings.sidebar": "Seitenleiste",
"mobile.display_settings.theme": "Motiv",
"mobile.document_preview.failed_description": "Es trat ein Fehler beim Öffnen des Dokuments auf. Bitte stellen Sie sicher Sie haben einen Betrachter für {fileType} installiert und versuchen es erneut.\n",
"mobile.document_preview.failed_description": "Es ist ein Fehler beim Öffnen des Dokuments aufgetreten. Bitte stellen Sie sicher, dass Sie einen Betrachter für {fileType} installiert haben und versuchen es erneut.\n",
"mobile.document_preview.failed_title": "Dokument öffnen fehlgeschlagen",
"mobile.downloader.android_complete": "Herunterladen abgeschlossen",
"mobile.downloader.android_failed": "Herunterladen gescheitert",
@@ -216,13 +226,14 @@
"mobile.downloader.disabled_description": "Das Herunterladen von Dateien ist auf diesem Server deaktiviert. Bitte kontaktieren Sie ihren Systemadministrator.\n",
"mobile.downloader.disabled_title": "Herunterladen deaktiviert",
"mobile.downloader.downloading": "Wird heruntergeladen...",
"mobile.downloader.failed_description": "Beim Herunterladen der Datei ist ein Fehler aufgetreten. Überprüfen Sie ihre Internetverbindung und versuchen Sie es erneut.\n",
"mobile.downloader.failed_description": "Es ist ein Fehler beim Herunterladen der Datei aufgetreten. Überprüfen Sie ihre Internetverbindung und versuchen Sie es erneut.\n",
"mobile.downloader.failed_title": "Herunterladen gescheitert",
"mobile.downloader.image_saved": "Bild gespeichert",
"mobile.downloader.video_saved": "Video gespeichert",
"mobile.drawer.teamsTitle": "Teams",
"mobile.edit_channel": "Speichern",
"mobile.edit_post.title": "Nachricht bearbeiten",
"mobile.edit_profile.remove_profile_photo": "Foto entfernen",
"mobile.emoji_picker.activity": "AKTIVITÄTEN",
"mobile.emoji_picker.custom": "BENUTZERDEFINIERT",
"mobile.emoji_picker.flags": "FLAGGEN",
@@ -234,7 +245,7 @@
"mobile.emoji_picker.recent": "ZULETZT VERWENDET",
"mobile.emoji_picker.symbols": "SYMBOLE",
"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 das Einstellungsmenü melden.\n",
"mobile.error_handler.description": "\nTippen Sie auf Neustarten um die App neu zu öffnen. Nach dem Neustart können Sie das Problem über das Einstellungsmenü melden.\n",
"mobile.error_handler.title": "Ein unerwarteter Fehler ist aufgetreten",
"mobile.extension.authentication_required": "Authentifizierung erforderlich: Bitte melden Sie sich zuerst in der App an.",
"mobile.extension.file_error": "Es gab einen Fehler beim Lesen der zu teilenden Datei.\nBitte erneut versuchen.",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Dateianhänge, die in Mattermost geteilt werden, müssen kleiner als {size} sein.",
"mobile.extension.permission": "Mattermost benötigt Zugriff auf den Gerätespeicher, um Dateien teilen zu können.",
"mobile.extension.title": "In Mattermost teilen",
"mobile.failed_network_action.description": "Es scheint ein Problem mit ihrer Internetverbindung zu geben. Stellen Sie sicher, dass Sie über eine aktive Verbindung verfügen und versuchen Sie es erneut.",
"mobile.failed_network_action.retry": "Erneut versuchen",
"mobile.failed_network_action.shortDescription": "Stellen Sie sicher, dass Sie eine aktive Verbindung haben und versuchen es erneut.",
"mobile.failed_network_action.shortDescription": "Nachrichten werden geladen, wenn Sie eine Internetverbindung oder {refresh}.",
"mobile.failed_network_action.title": "Keine Internetverbindung",
"mobile.file_upload.browse": "Dateien durchsuchen",
"mobile.file_upload.camera_photo": "Foto aufnehmen",
"mobile.file_upload.camera_video": "Video aufnehmen",
"mobile.file_upload.library": "Foto-Bibliothek",
"mobile.file_upload.max_warning": "Uploads sind auf maximal fünf Dateien beschränkt.",
"mobile.file_upload.unsupportedMimeType": "Nur Dateien des folgenden MIME-Typen können hochgeladen werden:\n{mimeTypes}",
"mobile.file_upload.video": "Videobibliothek",
"mobile.files_paste.error_description": "Fehler beim Einfügen der Datei(en). Bitte erneut versuchen.",
"mobile.files_paste.error_dismiss": "Verwerfen",
"mobile.files_paste.error_title": "Einfügen fehlgeschlagen",
"mobile.flagged_posts.empty_description": "Markierungen dienen als Möglichkeit, Nachrichten für eine Wiedervorlage zu markieren. Ihre Markierungen sind persönlich und können nicht von anderen Benutzern gesehen werden.",
"mobile.flagged_posts.empty_title": "Keine markierte Nachrichten",
"mobile.help.title": "Hilfe",
@@ -260,7 +274,8 @@
"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.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.ios.photos_permission_denied_description": "Um Fotos und Videos in ihrer Bibliothek speichern zu können, ändern Sie bitte ihre Berechtigungseinstellungen.",
"mobile.ios.photos_permission_denied_description": "Laden Sie Fotos und Videos auf ihre Mattermost-Instanz hoch oder speichern Sie sie auf Ihrem Gerät. Öffnen Sie die Einstellungen, um Mattermost Lese- und Schreibzugriff auf ihre Foto- und Videobibliothek zu gewähren.",
"mobile.ios.photos_permission_denied_title": "{applicationName} möchte auf Ihre Fotos zugreifen",
"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...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "Blockiert durch {vendor}",
"mobile.managed.exit": "Beenden",
"mobile.managed.jailbreak": "Geräten mit Jailbreak wird von {vendor} nicht vertraut, bitte beenden Sie die App.",
"mobile.managed.not_secured.android": "Dieses Gerät muss mit einer Bildschirmsperre gesichert werden, um Mattermost verwenden zu können.",
"mobile.managed.not_secured.ios": "Dieses Gerät muss mit einem Passcode gesichert werden, um Mattermost verwenden zu können.\n \nGehen Sie zu Einstellungen > Face ID & Passwort.",
"mobile.managed.not_secured.ios.touchId": "Dieses Gerät muss mit einem Passcode gesichert werden, um Mattermost zu verwenden.\n \nGehen Sie zu Einstellungen > Touch ID & Passwort.",
"mobile.managed.secured_by": "Gesichert durch {vendor}",
"mobile.managed.settings": "Zu Einstellungen gehen",
"mobile.markdown.code.copy_code": "Code kopieren",
"mobile.markdown.code.plusMoreLines": "+{count, number} weitere {count, plural, one {Zeile} other {Zeilen}}",
"mobile.markdown.image.too_large": "Bild überschreitet die maximale Auflösung von {maxWidth} x {maxHeight}:",
"mobile.markdown.link.copy_url": "Adresse (URL) kopieren",
"mobile.mention.copy_mention": "Erwähnung kopieren",
"mobile.message_length.message": "Die Nachricht ist zu lang. Anzahl der Zeichen: {max}/{count}",
"mobile.message_length.message": "Die Nachricht ist zu lang. Anzahl der Zeichen: {count}/{max}",
"mobile.message_length.title": "Länge der Nachricht",
"mobile.more_dms.add_more": "Sie können {remaining, number} weitere Benutzer hinzufügen",
"mobile.more_dms.cannot_add_more": "Sie können keine weiteren Benutzer hinzufügen.",
@@ -302,7 +321,7 @@
"mobile.notification_settings_mobile.sound": "Ton",
"mobile.notification_settings_mobile.sounds_title": "Benachrichtigungston",
"mobile.notification_settings_mobile.test": "Schicke mir eine Testbenachrichtigung",
"mobile.notification_settings_mobile.test_push": "Dies ist eine Test-Push-Benachrichtigung",
"mobile.notification_settings_mobile.test_push": "Dies ist eine Test-Push-Benachrichtigung.",
"mobile.notification_settings_mobile.vibrate": "Vibrieren",
"mobile.notification_settings.auto_responder_short": "Automatische Antworten",
"mobile.notification_settings.auto_responder.default_message": "Hallo, ich bin derzeit nicht im Büro und kann nicht auf Nachrichten antworten.",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Der Direktnachrichtenkanal mit {displayName} konnte nicht geöffnet werden. Bitte überprüfen Sie ihre Verbindung und versuchen es erneut.",
"mobile.open_gm.error": "Der Gruppennachrichtenkanal mit diesen Benutzern konnte nicht geöffnet werden. Bitte überprüfen Sie ihre Verbindung und versuchen es erneut.",
"mobile.open_unknown_channel.error": "Konnte Kanal nicht beitreten. Bitte setzen Sie den Cache zurück und versuchen es erneut.",
"mobile.permission_denied_dismiss": "Nicht erlauben",
"mobile.permission_denied_retry": "Einstellungen",
"mobile.photo_library_permission_denied_description": "Um Fotos und Videos in ihrer Bibliothek speichern zu können, ändern Sie bitte ihre Berechtigungseinstellungen.",
"mobile.photo_library_permission_denied_title": "{applicationName} möchte auf Ihre Fotobibliothek zugreifen",
"mobile.pinned_posts.empty_description": "Wichtige Elemente anheften durch gedrückt halten einer Nachricht und wählen von \"An Kanal anheften\".",
"mobile.pinned_posts.empty_title": "Keine angehefteten Nachrichten",
"mobile.post_info.add_reaction": "Reaktion hinzufügen",
"mobile.post_info.copy_text": "Text kopieren",
"mobile.post_info.flag": "Markieren",
"mobile.post_info.mark_unread": "Als ungelesen markieren",
"mobile.post_info.pin": "An Kanal anheften",
"mobile.post_info.reply": "Antworten",
"mobile.post_info.unflag": "Markierung entfernen",
"mobile.post_info.unpin": "Vom Kanal abheften",
"mobile.post_pre_header.flagged": "Markiert",
"mobile.post_pre_header.pinned": "Angeheftet",
"mobile.post_pre_header.pinned_flagged": "Angeheftet und markiert",
"mobile.post_textbox.empty.message": "Sie versuchen, eine leere Nachricht zu senden.\nBitte stellen Sie sicher, dass die Nachricht Text oder eine angehängte Datei enthält.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Leere Nachricht",
"mobile.post_textbox.entire_channel.cancel": "Abbrechen",
"mobile.post_textbox.entire_channel.confirm": "Bestätigen",
"mobile.post_textbox.entire_channel.message": "Durch die Verwendung von @all oder @channel werden Sie Benachrichtigungen an {totalMembers} Personen senden. Sind Sie sicher, dass Sie dies tun wollen?",
"mobile.post_textbox.entire_channel.message.with_timezones": "Durch die Verwendung von @all oder @channel benachrichtigen Sie {totalMembers} Benutzer in {timezones, number} {timezones, plural, one {Zeitzone} other {Zeitzonen}}. Sind Sie sicher, dass sie dies tun möchten?",
"mobile.post_textbox.entire_channel.title": "Bestätigen Sie das Senden von Benachrichtigungen an den gesamten Kanal",
"mobile.post_textbox.uploadFailedDesc": "Einige Anhänge konnten nicht auf den Server hochgeladen werden. Sind Sie sicher, dass sie die Nachricht abschicken wollen?",
"mobile.post_textbox.uploadFailedTitle": "Anhang Fehler",
"mobile.post.cancel": "Abbrechen",
@@ -353,9 +380,14 @@
"mobile.post.delete_title": "Nachricht löschen",
"mobile.post.failed_delete": "Nachricht löschen",
"mobile.post.failed_retry": "Erneut versuchen",
"mobile.post.failed_title": "Ihre Nachricht konnte nicht gesendet werden",
"mobile.post.failed_title": "Konnte ihre Nachricht nicht senden.",
"mobile.post.retry": "Aktualisieren",
"mobile.posts_view.moreMsg": "Weitere neue Nachrichten oberhalb",
"mobile.privacy_link": "Datenschutzbedingungen",
"mobile.push_notification_reply.button": "Senden",
"mobile.push_notification_reply.placeholder": "Eine Antwort schreiben...",
"mobile.push_notification_reply.title": "Antworten",
"mobile.reaction_header.all_emojis": "Alle",
"mobile.recent_mentions.empty_description": "Hier werden Nachrichten auftauchen, die ihren Benutzernamen oder andere Wörter enthalten, die Erwähnungen auslösen.",
"mobile.recent_mentions.empty_title": "Keine letzten Erwähnungen",
"mobile.rename_channel.display_name_maxLength": "Kanalname muss kürzer als {maxLength, number} Zeichen sein",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Erstellt durch {creator} am ",
"mobile.routes.channelInfo.delete_channel": "Kanal archivieren",
"mobile.routes.channelInfo.favorite": "Favoriten",
"mobile.routes.channelInfo.groupManaged": "Mitglieder werden von verknüpften Gruppen verwaltet.",
"mobile.routes.code": "{language}-Code",
"mobile.routes.code.noLanguage": "Code",
"mobile.routes.edit_profile": "Profil bearbeiten",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} Diskussion",
"mobile.routes.thread_dm": "Direktnachrichten-Diskussion",
"mobile.routes.user_profile": "Profil",
"mobile.routes.user_profile.edit": "Bearbeiten",
"mobile.routes.user_profile.local_time": "LOKALE ZEIT",
"mobile.routes.user_profile.send_message": "Nachricht senden",
"mobile.search.after_modifier_description": "um Nachrichten nach einem spezifischen Datum zu finden",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Keine Ergebnisse gefunden",
"mobile.search.on_modifier_description": "um Nachrichten an einem spezifischen Datum zu finden",
"mobile.search.recent_title": "Letzte Suchen",
"mobile.select_team.guest_cant_join_team": "Ihr Gastkonto ist keinem Team oder Kanal zugeordnet. Bitte kontaktieren Sie den Administrator.",
"mobile.select_team.join_open": "Offene Teams, denen Sie beitreten können",
"mobile.select_team.no_teams": "Es sind keine Teams zum Betreten für Sie verfügbar.",
"mobile.server_upgrade.button": "OK",
"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.session_expired": "Die Sitzung ist abgelaufen: Bitte melden Sie sich an, um weiterhin Benachrichtigungen zu erhalten. Sitzungen für {siteName} sind so konfiguriert, dass sie nach {daysCount, number} {daysCount, plural, one {Tag} other {Tagen}} ablaufen.",
"mobile.set_status.away": "Abwesend",
"mobile.set_status.dnd": "Nicht stören",
"mobile.set_status.offline": "Offline",
@@ -422,19 +457,32 @@
"mobile.share_extension.error_message": "Es ist ein Fehler bei der Verwendung der Teilen-Erweiterung aufgetreten.",
"mobile.share_extension.error_title": "Erweiterungs-Fehler",
"mobile.share_extension.team": "Team",
"mobile.share_extension.too_long_message": "Zeichenanzahl: {count}/{max}",
"mobile.share_extension.too_long_title": "Nachricht ist zu lang",
"mobile.sidebar_settings.permanent": "Permanente Seitenleiste",
"mobile.sidebar_settings.permanent_description": "Seitenleiste permanent geöffnet lassen",
"mobile.storage_permission_denied_description": "Laden Sie Dateien auf ihre Mattermost-Instanz hoch. Öffnen Sie die Einstellungen, um Mattermost Lese- und Schreibzugriff auf Dateien auf diesem Gerät zu gewähren.",
"mobile.storage_permission_denied_title": "{applicationName} möchte auf Ihre Dateien zugreifen.",
"mobile.suggestion.members": "Mitglieder",
"mobile.system_message.channel_archived_message": "{username} hat den Kanal archiviert.",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} hat den Kanal-Anzeigenamen geändert von: {oldDisplayName} auf: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} hat die Kanalüberschrift entfernt (war: {oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} hat die Kanalüberschrift aktualisiert von: {oldHeader} auf: {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} hat die Kanalüberschrift geändert zu: {newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} hat den Kanalzweck entfernt (war: {oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} hat den Kanalzweck aktualisiert von: {oldPurpose} auf: {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} hat den Kanalzweck geändert zu: {newPurpose}",
"mobile.terms_of_service.alert_cancel": "Abbrechen",
"mobile.terms_of_service.alert_ok": "OK",
"mobile.terms_of_service.alert_retry": "Erneut versuchen",
"mobile.terms_of_service.get_terms_error_description": "Stellen Sie sicher, dass Sie über eine Internetverbindung verfügen und probieren Sie es erneut. Falls das Problem weiterhin besteht, kontaktieren Sie ihren Systemadministrator.",
"mobile.terms_of_service.get_terms_error_title": "Konnte Nutzungsbedingungen nicht laden.",
"mobile.terms_of_service.terms_rejected": "Sie müssen die Nutzungsbedingungen akzeptieren, bevor Sie {siteName} verwenden können. Bitte kontaktieren Sie ihren Systemadministrator für mehr Details.",
"mobile.timezone_settings.automatically": "Automatisch einstellen",
"mobile.timezone_settings.manual": "Zeitzone ändern",
"mobile.timezone_settings.select": "Zeitzone auswählen",
"mobile.tos_link": "Nutzungsbedingungen",
"mobile.user_list.deactivated": "Deaktiviert",
"mobile.user.settings.notifications.email.fifteenMinutes": "Alle 15 Minuten",
"mobile.video_playback.failed_description": "Beim Abspielen des Videos ist ein Fehler aufgetreten.\n",
"mobile.video_playback.failed_description": "Es ist ein Fehler beim Abspielen des Videos aufgetreten.\n",
"mobile.video_playback.failed_title": "Videowiedergabe fehlgeschlagen",
"mobile.video.save_error_message": "Um das Video zu speichern, müssen Sie es zuerst herunterladen.",
"mobile.video.save_error_title": "Fehler beim Speichern des Videos",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Möchten Sie ihren Status auf \"Nicht stören\" umschalten und automatische Antworten deaktivieren?",
"modal.manual_status.auto_responder.message_offline": "Möchten Sie ihren Status auf \"Offline\" umschalten und automatische Antworten deaktivieren?",
"modal.manual_status.auto_responder.message_online": "Möchten Sie ihren Status auf \"Online\" umschalten und automatische Antworten deaktivieren?",
"more_channels.archivedChannels": "Archivierte Kanäle",
"more_channels.dropdownTitle": "Anzeigen",
"more_channels.noMore": "Keine weiteren Kanäle zum Betreten",
"more_channels.publicChannels": "Öffentliche Kanäle",
"more_channels.showArchivedChannels": "Anzeigen: Archivierte Kanäle",
"more_channels.showPublicChannels": "Anzeigen: Öffentliche Kanäle",
"more_channels.title": "Weitere Kanäle",
"msg_typing.areTyping": "{users} und {last} tippen gerade...",
"msg_typing.isTyping": "{user} tippt...",
"navbar_dropdown.logout": "Abmelden",
"navbar.channel_drawer.button": "Kanäle und Teams",
"navbar.channel_drawer.hint": "Öffnet die Kanal- und Team-Schublade.",
"navbar.leave": "Kanal verlassen",
"password_form.title": "Passwort zurücksetzen",
"password_send.checkInbox": "Bitte prüfen Sie den Posteingang.",
@@ -458,25 +513,25 @@
"password_send.link": "Falls das Konto existiert, wurde eine E-Mail zur Passwortzurücksetzung gesendet an:",
"password_send.reset": "Mein Passwort zurücksetzen",
"permalink.error.access": "Der dauerhafte Link verweist auf eine gelöschte Nachricht oder einen Kanal auf den Sie keinen Zugriff haben.",
"post_body.check_for_out_of_channel_groups_mentions.message": "wurde durch diese Erwähnung nicht benachrichtigt, da sich der Benutzer nicht im Kanal befinden. Er kann dem Kanal nicht hinzugefügt werden, da er nicht Mitglied der verknüpften Gruppen ist. Um ihn zu diesem Kanal hinzuzufügen, müssen er zu den verknüpften Gruppen hinzugefügt werden.",
"post_body.check_for_out_of_channel_mentions.link.and": " und ",
"post_body.check_for_out_of_channel_mentions.link.private": "sie zu diesem privaten Kanal hinzufügen",
"post_body.check_for_out_of_channel_mentions.link.public": "sie zu diesem Kanal hinzufügen",
"post_body.check_for_out_of_channel_mentions.message_last": "? Sie werden Zugriff auf den Nachrichtenverlauf haben.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "wurden erwähnt, befinden sich aber nicht im Kanal. Möchten Sie ",
"post_body.check_for_out_of_channel_mentions.message.one": "wurde erwähnt, befinden sich aber nicht im Kanal. Möchten Sie ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "wurde durch diese Erwähnung nicht benachrichtigt, da der Benutzer sich nicht im Kanal befindet. Möchten Sie ",
"post_body.check_for_out_of_channel_mentions.message.one": "wurde durch diese Erwähnung nicht benachrichtigt, da der Benutzer sich nicht im Kanal befindet. Möchten Sie ",
"post_body.commentedOn": "Kommentierte auf die Nachricht von {name}: ",
"post_body.deleted": "(Nachricht gelöscht)",
"post_info.auto_responder": "AUTOMATISCHE ANTWORT",
"post_info.bot": "BOT",
"post_info.del": "Löschen",
"post_info.edit": "Bearbeiten",
"post_info.guest": "GAST",
"post_info.message.show_less": "Weniger anzeigen",
"post_info.message.show_more": "Mehr anzeigen",
"post_info.system": "System",
"post_message_view.edited": "(bearbeitet)",
"posts_view.newMsg": "Neue Nachrichten",
"rename_channel.handleHolder": "Kleinbuchstaben oder Ziffern",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Ein Teil dieses Nachrichtenverlaufes wurde wegen einer Datenaufbewahrungsrichtlinie gelöscht. Sie können nicht länger auf diesen Strang antworten.",
"search_bar.search": "Suche",
"search_header.results": "Suchergebnisse",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Offline",
"status_dropdown.set_online": "Online",
"status_dropdown.set_ooo": "Nicht im Büro",
"suggestion.mention.all": "ACHTUNG: Dies erwähnt jeden im Kanal",
"suggestion.mention.all": "Benachrichtigt jeden in diesem Kanal",
"suggestion.mention.channel": "Benachrichtigt jeden in diesem Kanal",
"suggestion.mention.channels": "Meine Kanäle",
"suggestion.mention.here": "Benachrichtigt jeden der im Kanal und online ist",
"suggestion.mention.here": "Benachrichtigt jeden in diesem Kanal",
"suggestion.mention.members": "Kanalmitglieder",
"suggestion.mention.morechannels": "Andere Kanäle",
"suggestion.mention.nonmembers": "Nicht im Kanal",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Ich stimme zu",
"terms_of_service.api_error": "Konnte die Anfrage nicht abschließen. Falls der Fehler weiterhin besteht, fragen Sie den Systemadministrator.",
"user.settings.display.clockDisplay": "Uhrzeit-Format",
"user.settings.display.custom_theme": "Benutzerdefiniertes Motiv",
"user.settings.display.militaryClock": "24-Stunden-Format (z.B.: 16:00)",
"user.settings.display.normalClock": "12-Stunden-Format (z.B.: 4:00 PM)",
"user.settings.display.preferTime": "Wählen Sie das bevorzugte Zeitformat aus.",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "Sofort",
"user.settings.notifications.email.never": "Nie",
"user.settings.notifications.email.send": "E-Mail-Benachrichtigungen senden",
"user.settings.notifications.emailInfo": "E-Mail-Benachrichtigungen werden bei Erwähnungen und Direktnachrichten gesendet, sobald Sie von {siteName} mehr als 5 Minuten offline oder abwesend waren.",
"user.settings.notifications.emailInfo": "E-Mail-Benachrichtigungen werden bei Erwähnungen und Direktnachrichten gesendet, sobald Sie mehr als 5 Minuten offline oder abwesend sind.",
"user.settings.notifications.never": "Nie",
"user.settings.notifications.onlyMentions": "Nur für Erwähnungen und Direktnachrichten",
"user.settings.push_notification.away": "Abwesend oder offline",

View File

@@ -360,7 +360,7 @@
"mobile.post_info.add_reaction": "Add Reaction",
"mobile.post_info.copy_text": "Copy Text",
"mobile.post_info.flag": "Flag",
"mobile.post_info.mark_unread": "Mark post as unread",
"mobile.post_info.mark_unread": "Mark as Unread",
"mobile.post_info.pin": "Pin to Channel",
"mobile.post_info.reply": "Reply",
"mobile.post_info.unflag": "Unflag",
@@ -594,7 +594,7 @@
"user.settings.notifications.email.immediately": "Immediately",
"user.settings.notifications.email.never": "Never",
"user.settings.notifications.email.send": "Send email notifications",
"user.settings.notifications.emailInfo": "Email notifications are sent for mentions and direct messages when you are offline or away from {siteName} for more than 5 minutes.",
"user.settings.notifications.emailInfo": "Email notifications are sent for mentions and direct messages when you are offline or away for more than 5 minutes.",
"user.settings.notifications.never": "Never",
"user.settings.notifications.onlyMentions": "Only for mentions and direct messages",
"user.settings.push_notification.away": "Away or offline",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "Todas las comunicaciones de tu equipo en un solo lugar, con búsquedas instantáneas y accesible de todas partes.",
"about.teamEditiont0": "Edición Team T0",
"about.teamEditiont1": "Edición Team T1",
"about.title": "Acerca de Mattermost",
"about.title": "Acerca de {appTitle}",
"announcment_banner.dont_show_again": "No volver a mostrar",
"api.channel.add_member.added": "{addedUsername} agregado al canal por {username}",
"archivedChannelMessage": "Estás viendo un **canal archivado**. No serán publicados nuevos mensajes.",
@@ -17,7 +17,7 @@
"channel_header.addMembers": "Agregar Miembros",
"channel_header.directchannel.you": "{displayname} (tu) ",
"channel_header.manageMembers": "Administrar Miembros",
"channel_header.pinnedPosts": "Mensajes Anclados",
"channel_header.pinnedPosts": "Mensajes Destacados",
"channel_header.viewMembers": "Ver Miembros",
"channel_info.header": "Encabezado:",
"channel_info.purpose": "Propósito:",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "Ej: \"Un canal para describir errores y mejoras\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignorar @channel, @here, @all",
"channel_notifications.muteChannel.settings": "Silenciar canal",
"channel.channelHasGuests": "Este canal tiene huéspedes",
"channel.hasGuests": "Este grupo de mensajes tiene huéspedes",
"channel.isGuest": "Esta persona es un huésped",
"combined_system_message.added_to_channel.many_expanded": "{users} y {lastUser} fueron **agregados al canal** por {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} **agregado al canal** por {actor}.",
"combined_system_message.added_to_channel.one_you": "Fuiste **agregado al canal** por {actor}.",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{firstUser} y {secondUser} **agregados al equipo** por {actor}.",
"combined_system_message.joined_channel.many_expanded": "{users} and {lastUser} **se unieron al canal**.",
"combined_system_message.joined_channel.one": "{firstUser} **se unió al canal**.",
"combined_system_message.joined_channel.one_you": "**unieron al canal**.",
"combined_system_message.joined_channel.one_you": "Tú **te uniste al canal**.",
"combined_system_message.joined_channel.two": "{firstUser} y {secondUser} **se unieron al canal**.",
"combined_system_message.joined_team.many_expanded": "{users} y {lastUser} **se unieron al equipo**.",
"combined_system_message.joined_team.one": "{firstUser} **se unió al equipo**.",
"combined_system_message.joined_team.one_you": "**unieron al equipo**.",
"combined_system_message.joined_team.one_you": "Tú **te uniste al equipo**.",
"combined_system_message.joined_team.two": "{firstUser} y {secondUser} **se unieron al equipo**.",
"combined_system_message.left_channel.many_expanded": "{users} y {lastUser} **abandonaron el canal**.",
"combined_system_message.left_channel.one": "{firstUser} **abandonó el canal**.",
"combined_system_message.left_channel.one_you": "**abandonaron el canal**.",
"combined_system_message.left_channel.one_you": "**abandonaste el canal**.",
"combined_system_message.left_channel.two": "{firstUser} y {secondUser} **abandonaron el canal**.",
"combined_system_message.left_team.many_expanded": "{users} y {lastUser} **abandonaron el equipo**.",
"combined_system_message.left_team.one": "{firstUser} **abandonó el equipo**.",
"combined_system_message.left_team.one_you": "**abandonó el equipo**.",
"combined_system_message.left_team.one_you": "**abandonaste el equipo**.",
"combined_system_message.left_team.two": "{firstUser} y {secondUser} **abandonaron el equipo**.",
"combined_system_message.removed_from_channel.many_expanded": "{users} y {lastUser} fueron **eliminados del canal**.",
"combined_system_message.removed_from_channel.one": "{firstUser} fue **eliminado del canal**.",
@@ -70,21 +73,21 @@
"combined_system_message.you": "Tu",
"create_comment.addComment": "Agregar un comentario...",
"create_post.deactivated": "Estás viendo un canal archivado con un usuario desactivado.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "Escribir en {channelDisplayName}",
"date_separator.today": "Hoy",
"date_separator.yesterday": "Ayer",
"edit_post.editPost": "Editar el mensaje...",
"edit_post.save": "Guardar",
"error.team_not_found.title": "Equipo no encontrado",
"file_attachment.download": "Descargar",
"file_upload.fileAbove": "No se puede cargar un archivo de más de {max}MB: {filename}",
"get_post_link_modal.title": "Copiar enlace Permanente",
"integrations.add": "Agregar",
"intro_messages.anyMember": " Cualquier miembro se puede unir y leer este canal.",
"intro_messages.beginning": "Inicio de {name}",
"intro_messages.channel": "canal",
"intro_messages.creator": "Este es el inicio del {type} {name}, creado por {creator} el {date}.",
"intro_messages.group": "canal privado",
"intro_messages.creator": "Este es el inicio del canal {name}, creado por {creator} el {date}.",
"intro_messages.creatorPrivate": "Este es el inicio del canal privado {name}, creado por {creator} el {date}.",
"intro_messages.group_message": "Este es el inicio de tu historial del grupo de mensajes con estos compañeros. Los mensajes y archivos que se comparten aquí no son mostrados a personas fuera de esta área.",
"intro_messages.noCreator": "Este es el inicio del {type} {name}, creado el {date}.",
"intro_messages.noCreator": "Este es el inicio del canal {name}, creado el {date}.",
"intro_messages.onlyInvited": " Sólo miembros invitados pueden ver este canal privado.",
"last_users_message.added_to_channel.type": "fueron **agregados al canal** por {actor}.",
"last_users_message.added_to_team.type": "fueron **agregados al equipo** por {actor}.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Menciones en hilos",
"mobile.account_notifications.threads_start": "Hilos que yo comience",
"mobile.account_notifications.threads_start_participate": "Hilos que yo comience o participe",
"mobile.account.settings.cancel": "Cancelar",
"mobile.account.settings.save": "Guardar",
"mobile.action_menu.select": "Selecciona una opción",
"mobile.advanced_settings.clockDisplay": "Visualización de la hora",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Eliminar Documentos & Datos",
"mobile.advanced_settings.timezone": "Zona horaria",
"mobile.advanced_settings.title": "Configuración Avanzada",
"mobile.android.camera_permission_denied_description": "Para tomar fotos y videos con la cámara, por favor, cambia la configuración de permisos.",
"mobile.android.camera_permission_denied_title": "Acceso a la cámara es necesario",
"mobile.android.permission_denied_dismiss": "Cerrar",
"mobile.android.permission_denied_retry": "Establecer permisos",
"mobile.android.photos_permission_denied_description": "Para cargar imágenes desde tu biblioteca, por favor, cambia la configuración de permisos.",
"mobile.android.photos_permission_denied_title": "Acceso a la biblioteca de fotos es necesario",
"mobile.android.storage_permission_denied_description": "Para cargar imágenes desde tu biblioteca de Android, por favor, cambia la configuración de permisos.",
"mobile.android.storage_permission_denied_title": "Acceso a los Archivos es necesario",
"mobile.android.videos_permission_denied_description": "Para subir los vídeos de tu biblioteca, por favor, cambia la configuración de permisos.",
"mobile.android.videos_permission_denied_title": "Acceso a la biblioteca de vídeos es necesario",
"mobile.alert_dialog.alertCancel": "Cancelar",
"mobile.android.photos_permission_denied_description": "Subir fotos a tu servidor de Mattermost o guardarlos en el dispositivo. Abre la Configuración y otorga a Mattermost permisos de Lectura y Escritura a tu librería de fotos.",
"mobile.android.photos_permission_denied_title": "{applicationName} desea acceder a tus fotos",
"mobile.android.videos_permission_denied_description": "Subir videos a tu servidor de Mattermost o guardarlos en el dispositivo. Abre la Configuración y otorga a Mattermost permisos de Lectura y Escritura a tu librería de videos.",
"mobile.android.videos_permission_denied_title": "{applicationName} desea acceder a tus videos",
"mobile.announcement_banner.title": "Anuncio",
"mobile.authentication_error.message": "Mattermost a encontrado un error. Por favor vuelve a autenticar tu usuario para iniciar una nueva sesión.",
"mobile.authentication_error.title": "Error de Autenticación",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Dom,Lun,Mar,Mié,Jue,Vie,Sab",
"mobile.calendar.monthNames": "Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre",
"mobile.calendar.monthNamesShort": "Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic",
"mobile.camera_photo_permission_denied_description": "Captura fotos y súbelas a tu servidor de Mattermost o guárdalas en tu dispositivo. Abre la Configuración y otorga a Mattermost permisos de Lectura y Escritura para usar la cámara.",
"mobile.camera_photo_permission_denied_title": "{applicationName} desea acceder a tu cámara",
"mobile.camera_video_permission_denied_description": "Captura videos y súbelos a a tu servidor de Mattermost o guárdalos en tu dispositivo. Abre la Configuración y otorga a Mattermost permisos de Lectura y Escritura para acceder tu cámara.",
"mobile.camera_video_permission_denied_title": "{applicationName} desea acceder a tu cámara",
"mobile.channel_drawer.search": "Saltar a...",
"mobile.channel_info.alertMessageConvertChannel": "Al convertir {displayName} a un canal privado, la historia y la membresía son preservados. Archivos compartidos públicamente permanecerán accesibles para cualquier que tenga el enlace. La membresía en un canal privado es solo por invitación \n\nEste es un cambio permanente y no puede deshacerse.\n\n¿Estás seguro que quieres convertir {displayName} a un canal privado?",
"mobile.channel_info.alertMessageDeleteChannel": "¿Seguro quieres archivar el {term} {name}?",
"mobile.channel_info.alertMessageLeaveChannel": "¿Seguro quieres abandonar el {term} {name}?",
"mobile.channel_info.alertNo": "No",
"mobile.channel_info.alertTitleConvertChannel": "¿Convertir {displayName} a un canal privado?",
"mobile.channel_info.alertTitleDeleteChannel": "Archivar {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Abandonar {term}",
"mobile.channel_info.alertYes": "Sí",
"mobile.channel_info.convert": "Convertir a Canal Privado",
"mobile.channel_info.convert_failed": "No se pudo convertir {displayName} a canal privado.",
"mobile.channel_info.convert_success": "{displayName} ahora es un canal privado.",
"mobile.channel_info.copy_header": "Copiar Encabezado",
"mobile.channel_info.copy_purpose": "Copiar Propósito",
"mobile.channel_info.delete_failed": "No se pudo archivar el canal {displayName}. Por favor revisa tu conexión e intenta de nuevo.",
"mobile.channel_info.edit": "Editar Canal",
"mobile.channel_info.privateChannel": "Canal Privado",
"mobile.channel_info.publicChannel": "Canal Público",
"mobile.channel_list.alertNo": "No",
"mobile.channel_list.alertYes": "Sí",
"mobile.channel_list.archived": "ARCHIVADO",
"mobile.channel_list.channels": "CANALES",
"mobile.channel_list.closeDM": "Cerrar Mensaje Directo",
"mobile.channel_list.closeGM": "Cerrar Mensaje de Grupo",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Nuevo Canal Público",
"mobile.create_post.read_only": "Este canal es de sólo lectura",
"mobile.custom_list.no_results": "Sin resultados",
"mobile.display_settings.sidebar": "Barra lateral",
"mobile.display_settings.theme": "Tema",
"mobile.document_preview.failed_description": "Ocurrió un error al abrir el documento. Por favor verifica que tienes instalado un visor para archivos {fileType} e intenta de nuevo.\n",
"mobile.document_preview.failed_title": "Error Abriendo Documento",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Equipos",
"mobile.edit_channel": "Guardar",
"mobile.edit_post.title": "Editando Mensaje",
"mobile.edit_profile.remove_profile_photo": "Quitar Foto",
"mobile.emoji_picker.activity": "ACTIVIDAD",
"mobile.emoji_picker.custom": "PERSONALIZADO",
"mobile.emoji_picker.flags": "BANDERAS",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Los archivos a compartir en Mattermost no deben superar los {size}.",
"mobile.extension.permission": "Mattermost necesita acceso al almacenamiento del dispositivo para poder compartir archivos.",
"mobile.extension.title": "Compartir en Mattermost",
"mobile.failed_network_action.description": "Parece haber un problema con tu conexión de internet. Asegura que tienes una conexión activa e intenta de nuevo.",
"mobile.failed_network_action.retry": "Intentar de nuevo",
"mobile.failed_network_action.shortDescription": "Asegura de tener una conexión activa e intenta de nuevo.",
"mobile.failed_network_action.retry": "intenta de nuevo",
"mobile.failed_network_action.shortDescription": "Los Mensajes se cargarán cuando se establezca una conexión a internet o {refresh}.",
"mobile.failed_network_action.title": "Sin conexión a Internet",
"mobile.file_upload.browse": "Explorar Archivos",
"mobile.file_upload.camera_photo": "Capturar Foto",
"mobile.file_upload.camera_video": "Capturar Vídeo",
"mobile.file_upload.library": "Librería de Fotos",
"mobile.file_upload.max_warning": "Se pueden subir un máximo de 5 archivos.",
"mobile.file_upload.unsupportedMimeType": "Sólo archivos con el siguiente tipo pueden ser cargados:\n{mimeTypes}",
"mobile.file_upload.video": "Librería de Videos",
"mobile.files_paste.error_description": "Ocurrió un error mientras se pegaba(n) archivo(s). Por favor inténtelo de nuevo.",
"mobile.files_paste.error_dismiss": "Descartar",
"mobile.files_paste.error_title": "Pegar falló",
"mobile.flagged_posts.empty_description": "Las banderas son una forma de marcar los mensajes para hacerles seguimiento. Tus banderas son personales, y no puede ser vistas por otros usuarios.",
"mobile.flagged_posts.empty_title": "No hay Mensajes Marcados",
"mobile.help.title": "Ayuda",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "Es es el primer canal que tus compañeros ven cuando se registran - puedes utilizarlo para enviar mensajes que todos deben leer.",
"mobile.intro_messages.default_welcome": "¡Bienvenido a {name}!",
"mobile.intro_messages.DM": "Este es el inicio de tu historial de mensajes directos con {teammate}.Los mensajes directos y archivos que se comparten aquí no son mostrados a personas fuera de esta área.",
"mobile.ios.photos_permission_denied_description": "Para guardar imágenes y vídeos en tu librería, por favor, cambia la configuración de permisos.",
"mobile.ios.photos_permission_denied_description": "Sube fotos y videos a tu servidor de Mattermost o guárdalos en tu dispositivo. Abre la Configuración y otorga a Mattermost permisos de Lectura y Escritura para acceder tu librería de fotos y videos.",
"mobile.ios.photos_permission_denied_title": "{applicationName} desea acceder a tu librería de fotos",
"mobile.join_channel.error": "No pudimos unirnos al canal {displayName}. Por favor revisa tu conexión e intenta de nuevo.",
"mobile.loading_channels": "Cargando Canales...",
"mobile.loading_members": "Cargando Miembros...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "Bloqueado por {vendor}",
"mobile.managed.exit": "Salir",
"mobile.managed.jailbreak": "{vendor} no confía en los dispositivos con jailbreak, por favor, salga de la aplicación.",
"mobile.managed.not_secured.android": "Este dispositivo debe estar asegurado con un bloqueo de pantalla para utilizar Mattermost.",
"mobile.managed.not_secured.ios": "Este dispositivo debe estar protegido con un código de acceso para utilizar Mattermost.\n\nVaya a Configuración > Identificación Facial y clave de acceso.",
"mobile.managed.not_secured.ios.touchId": "Este dispositivo debe estar protegido con un código de acceso para utilizar Mattermost.\n\nVaya a Configuración > Identificación Táctil y clave de acceso.",
"mobile.managed.secured_by": "Asegurado por {vendor}",
"mobile.managed.settings": "Ir a configuración",
"mobile.markdown.code.copy_code": "Copiar código",
"mobile.markdown.code.plusMoreLines": "+{count, number} más {count, plural, one {línea} other {líneas}}",
"mobile.markdown.image.too_large": "La imagen excede la dimensión máxima de {maxWidth} x {maxHeight}:",
"mobile.markdown.link.copy_url": "Copiar URL",
"mobile.mention.copy_mention": "Copiar Mención",
"mobile.message_length.message": "El mensaje es demasiado largo. Actual número de caracteres: {max}/{count}",
"mobile.message_length.message": "El mensaje es demasiado largo. Actual número de caracteres: {count}/{max}",
"mobile.message_length.title": "Longitud del Mensaje",
"mobile.more_dms.add_more": "Puedes agregar {remaining, number} usuarios más",
"mobile.more_dms.cannot_add_more": "No puedes agregar más usuarios.",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "No pudimos abrir el canal de mensajes directos con {displayName}. Por favor revisa tu conexión e intenta de nuevo.",
"mobile.open_gm.error": "No pudimos abrir el canal del grupo con esos usuarios. Por favor revisa tu conexión e intenta de nuevo.",
"mobile.open_unknown_channel.error": "No se pudo unir al canal. Por favor elimina el cache e intenta de nuevo.",
"mobile.pinned_posts.empty_description": "Ancla elementos importantes manteniendo pulsado cualquier mensaje y selecciona la opción \"Anclar al Canal\".",
"mobile.pinned_posts.empty_title": "No hay Mensajes Anclados",
"mobile.permission_denied_dismiss": "No Permitir",
"mobile.permission_denied_retry": "Ajustes",
"mobile.photo_library_permission_denied_description": "Para guardar imágenes y vídeos en tu librería, por favor, cambia la configuración de permisos.",
"mobile.photo_library_permission_denied_title": "{applicationName} desea acceder a tu librería de fotos",
"mobile.pinned_posts.empty_description": "Destaca elementos importantes manteniendo pulsado cualquier mensaje y selecciona la opción \"Destacar\".",
"mobile.pinned_posts.empty_title": "No hay Mensajes Destacados",
"mobile.post_info.add_reaction": "Reaccionar",
"mobile.post_info.copy_text": "Copiar Texto",
"mobile.post_info.flag": "Marcar",
"mobile.post_info.pin": "Anclar al Canal",
"mobile.post_info.mark_unread": "Marcar No leído",
"mobile.post_info.pin": "Destacar",
"mobile.post_info.reply": "Responder",
"mobile.post_info.unflag": "Desmarcar",
"mobile.post_info.unpin": "Desprender del Canal",
"mobile.post_info.unpin": "No Destacar",
"mobile.post_pre_header.flagged": "Marcado",
"mobile.post_pre_header.pinned": "Anclado",
"mobile.post_pre_header.pinned_flagged": "Anclado y Marcado",
"mobile.post_textbox.empty.message": "Estas intentando enviar un mensaje vacío.\nPor favor asegurate de estar enviando un mensaje con texto o con al menos un archivo adjunto.",
"mobile.post_textbox.empty.ok": "Aceptar",
"mobile.post_textbox.empty.title": "Mensaje vacío",
"mobile.post_pre_header.pinned": "Destacado",
"mobile.post_pre_header.pinned_flagged": "Destacado y Marcado",
"mobile.post_textbox.entire_channel.cancel": "Cancelar",
"mobile.post_textbox.entire_channel.confirm": "Confirmar",
"mobile.post_textbox.entire_channel.message": "Al utilizar @all o @channel estás a punto de enviar una notificación a {totalMembers} personas. ¿Estás seguro que quieres hacerlo?",
"mobile.post_textbox.entire_channel.message.with_timezones": "Al utilizar @all ó @channel estás a punto de enviar notificaciones a {totalMembers} personas en {timezones, number} {zonas horarias, plural, one {zona horaria} other {zonas horarias}}. ¿Estás seguro de querer hacer esto?",
"mobile.post_textbox.entire_channel.title": "Confirma el envío de notificaciones a todo el canal",
"mobile.post_textbox.uploadFailedDesc": "Algunos archivos adjuntos no se han subido al servidor. ¿Quieres publicar el mensaje?",
"mobile.post_textbox.uploadFailedTitle": "Error Adjuntando",
"mobile.post.cancel": "Cancelar",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "No se pudo enviar el mensaje",
"mobile.post.retry": "Actualizar",
"mobile.posts_view.moreMsg": "Más Mensajes Arriba",
"mobile.privacy_link": "Política de Privacidad",
"mobile.push_notification_reply.button": "Enviar",
"mobile.push_notification_reply.placeholder": "Escribe una respuesta...",
"mobile.push_notification_reply.title": "Responder",
"mobile.reaction_header.all_emojis": "Todos",
"mobile.recent_mentions.empty_description": "Mensajes que contienen tu nombre de usuario u otras palabras que desencadenan menciones aparecerán aquí.",
"mobile.recent_mentions.empty_title": "No hay Menciones recientes",
"mobile.rename_channel.display_name_maxLength": "El nombre del canal debe tener menos de {maxLength, number} caracteres",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Creado por {creator} el ",
"mobile.routes.channelInfo.delete_channel": "Archivar Canal",
"mobile.routes.channelInfo.favorite": "Favorito",
"mobile.routes.channelInfo.groupManaged": "Los miembros son gestionados por grupos enlazados",
"mobile.routes.code": "Código {language}",
"mobile.routes.code.noLanguage": "Código",
"mobile.routes.edit_profile": "Editar Perfil",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "Hilo en {channelName}",
"mobile.routes.thread_dm": "Hilo de Mensaje Directo",
"mobile.routes.user_profile": "Perfil",
"mobile.routes.user_profile.edit": "Editar",
"mobile.routes.user_profile.local_time": "HORA LOCAL",
"mobile.routes.user_profile.send_message": "Enviar Mensaje",
"mobile.search.after_modifier_description": "encontrar mensajes después de una fecha específica",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "No se han encontrado resultados",
"mobile.search.on_modifier_description": "encontrar mensajes de una fecha específica",
"mobile.search.recent_title": "Búsquedas recientes",
"mobile.select_team.guest_cant_join_team": "Tu cuenta de huésped no tiene equipos o canales asignados. Por favor contacta a un administrador.",
"mobile.select_team.join_open": "Equipos a los que te puedes unir",
"mobile.select_team.no_teams": "No hay equipos disponibles a los que te puedas unir.",
"mobile.server_upgrade.button": "Aceptar",
"mobile.server_upgrade.description": "\nEs necesaria una actualización del servidor para utilizar la aplicación de Mattermost. Por favor, preguntale a tu Administrador del Sistema para obtener más detalles.\n",
"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.session_expired": "Sesión expirada: Inicia sesión para continuar recibiendo notificaciones. Las sesiones para {siteName} están configuradas para caducar cada {daysCount, number} {daysCount, plural, un {día} other {días}}.",
"mobile.set_status.away": "Ausente",
"mobile.set_status.dnd": "No Molestar",
"mobile.set_status.offline": "Desconectado",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "Ocurrió un error utilizando la extensión para compartir.",
"mobile.share_extension.error_title": "Error en la Extensión",
"mobile.share_extension.team": "Equipo",
"mobile.share_extension.too_long_message": "Número de letras: {count}/{max}",
"mobile.share_extension.too_long_title": "Mensaje es un largo",
"mobile.sidebar_settings.permanent": "Barra lateral permanente",
"mobile.sidebar_settings.permanent_description": "Mantiene la barra lateral abierta permanentemente",
"mobile.storage_permission_denied_description": "Sube archivos a tu servidor de Mattermost. Abre la Configuración para otorgar permisos de Lectura y Escritura para acceder archivos en este dispositivo.",
"mobile.storage_permission_denied_title": "{applicationName} desea acceder a tus archivos",
"mobile.suggestion.members": "Miembros",
"mobile.system_message.channel_archived_message": "{username} archivó el canal",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} actualizó el nombre del canal de: {oldDisplayName} a: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} eliminó el encabezado del canal (era: {oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} ha actualizado el encabezado del canal de: {oldHeader} a: {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} ha actualizado el encabezado del canal a: {newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} eliminó el propósito del canal (era: {oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} ha actualizado el propósito del canal de: {oldPurpose} a: {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} ha actualizado el propósito del canal a: {newPurpose}",
"mobile.terms_of_service.alert_cancel": "Cancelar",
"mobile.terms_of_service.alert_ok": "Aceptar",
"mobile.terms_of_service.alert_retry": "Intentar de nuevo",
"mobile.terms_of_service.get_terms_error_description": "Asegúrate de tener una conexión activa a internet e inténtalo de nuevo. Si este problema persiste, ponte en contacto con tu Administrador del Sistema.",
"mobile.terms_of_service.get_terms_error_title": "No se pueden cargar los términos de servicio.",
"mobile.terms_of_service.terms_rejected": "Debes aceptar los términos de servicio antes de acceder a {siteName}. Por favor, ponte en contacto con el Administrador del Sistema para obtener más detalles.",
"mobile.timezone_settings.automatically": "Asignar automáticamente",
"mobile.timezone_settings.manual": "Cambiar zona horaria",
"mobile.timezone_settings.select": "Seleccione la zona horaria",
"mobile.tos_link": "Términos de Servicio",
"mobile.user_list.deactivated": "Desactivado",
"mobile.user.settings.notifications.email.fifteenMinutes": "Cada 15 minutos",
"mobile.video_playback.failed_description": "Ocurrió un error al reproducir el vídeo.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "¿Quieres cambiar to estado a \"No Molestar\" e inhabilitar las respuestas automáticas?",
"modal.manual_status.auto_responder.message_offline": "¿Quieres cambiar to estado a \"Desconectado\" e inhabilitar las respuestas automáticas?",
"modal.manual_status.auto_responder.message_online": "¿Quieres cambiar to estado a \"En línea\" e inhabilitar las respuestas automáticas?",
"more_channels.archivedChannels": "Canales Archivados",
"more_channels.dropdownTitle": "Mostrar",
"more_channels.noMore": "No hay más canales para unirse",
"more_channels.publicChannels": "Canales Públicos",
"more_channels.showArchivedChannels": "Mostrar: Canales Archivados",
"more_channels.showPublicChannels": "Mostrar: Canales Públicos",
"more_channels.title": "Más Canales",
"msg_typing.areTyping": "{users} y {last} están escribiendo...",
"msg_typing.isTyping": "{user} está escribiendo...",
"navbar_dropdown.logout": "Cerrar sesión",
"navbar.channel_drawer.button": "Canales y equipos",
"navbar.channel_drawer.hint": "Abrir la lista de canales y equipos",
"navbar.leave": "Abandonar Canal",
"password_form.title": "Restablecer Contraseña",
"password_send.checkInbox": "Por favor revisa tu bandeja de entrada.",
@@ -458,25 +513,25 @@
"password_send.link": "Si la cuenta existe, una correo electrónico de reinicio de contraseña será enviado a:",
"password_send.reset": "Restablecer mi contraseña",
"permalink.error.access": "El Enlace permanente pertenece a un mensaje eliminado o a un canal al cual no tienes acceso.",
"post_body.check_for_out_of_channel_groups_mentions.message": "no fueron notificados por esta mención porque no se encuentra en este canal. No pueden ser agregados al canal porque no son miembros de los grupos enlazados. Para agregarlos a este canal, deben ser agregados a alguno de los grupos enlazados.",
"post_body.check_for_out_of_channel_mentions.link.and": " y ",
"post_body.check_for_out_of_channel_mentions.link.private": "agregarlos a este canal privado",
"post_body.check_for_out_of_channel_mentions.link.public": "agregarlos al canal",
"post_body.check_for_out_of_channel_mentions.message_last": "? Tendrán acceso al historial de mensajes.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "fueron mencionados pero no son parte de este canal. Quieres ",
"post_body.check_for_out_of_channel_mentions.message.one": "fue mencionado pero no es parte de este canal. Quieres ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "no fueron notificados por esta mención porque no se encuentran en el canal. Quieres ",
"post_body.check_for_out_of_channel_mentions.message.one": "no fue notificado por esta mención porque no se encuentra en el canal. Quieres ",
"post_body.commentedOn": "Comento en el mensaje de {name}: ",
"post_body.deleted": "(mensaje eliminado)",
"post_info.auto_responder": "RESPUESTA AUTOMÁTICA",
"post_info.bot": "BOT",
"post_info.del": "Borrar",
"post_info.edit": "Editar",
"post_info.guest": "HUÉSPEDES",
"post_info.message.show_less": "Ver Menos",
"post_info.message.show_more": "Ver Más",
"post_info.system": "Sistema",
"post_message_view.edited": "(editado)",
"posts_view.newMsg": "Nuevos Mensajes",
"rename_channel.handleHolder": "Debe tener caracteres alfanuméricos y en minúscula",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Parte de esta conversación ha sido eliminada debido a la política de retención de datos. No se puede seguir respondiendo a esta conversación.",
"search_bar.search": "Buscar",
"search_header.results": "Resultados de la Búsqueda",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Desconectado",
"status_dropdown.set_online": "En línea",
"status_dropdown.set_ooo": "Fuera de Oficina",
"suggestion.mention.all": "PRECAUCIÓN: Esto menciona a todos los usuarios en el canal",
"suggestion.mention.channel": "Notifica a todas las personas en el canal",
"suggestion.mention.all": "Notifica a todas las personas en este canal",
"suggestion.mention.channel": "Notifica a todas las personas en este canal",
"suggestion.mention.channels": "Mis Canales",
"suggestion.mention.here": "Notifica a todos en el canal que estén en línea",
"suggestion.mention.here": "Notifica a todas las personas disponibles en este canal",
"suggestion.mention.members": "Miembros del Canal",
"suggestion.mention.morechannels": "Otros Canales",
"suggestion.mention.nonmembers": "No en el Canal",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Acepto",
"terms_of_service.api_error": "No se puede completar la solicitud. Si el problema persiste, contacta a tu Administrador de Sistema.",
"user.settings.display.clockDisplay": "Visualización del Reloj",
"user.settings.display.custom_theme": "Tema Personalizado",
"user.settings.display.militaryClock": "Reloj de 24 horas (ejemplo: 16:00)",
"user.settings.display.normalClock": "Reloj de 12 horas (ejemplo: 4:00 pm)",
"user.settings.display.preferTime": "Selecciona como prefieres mostrar la hora.",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "Inmediatamente",
"user.settings.notifications.email.never": "Nunca",
"user.settings.notifications.email.send": "Enviar notificaciones de correo electrónico",
"user.settings.notifications.emailInfo": "El correo electrónico que se envía para notificaciones de menciones y mensajes directos cuando estás ausente o desconectado de {siteName} por más de 5 minutos.",
"user.settings.notifications.emailInfo": "El correo electrónico que se envía para notificaciones de menciones y mensajes directos cuando estás ausente o desconectado por más de 5 minutos.",
"user.settings.notifications.never": "Nunca",
"user.settings.notifications.onlyMentions": "Sólo para menciones y mensajes directos",
"user.settings.push_notification.away": "Ausente o desconectado",

View File

@@ -9,7 +9,7 @@
"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",
"about.title": "À propos de Mattermost",
"about.title": "A propos de {appTitle}",
"announcment_banner.dont_show_again": "Ne plus montrer",
"api.channel.add_member.added": "{addedUsername} a été ajouté au canal par {username}.",
"archivedChannelMessage": "Vous consultez un **canal archivé**. Vous ne pouvez pas publier de nouveaux messages.",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "Ex. : « Un canal pour rapporter des bogues ou des améliorations »",
"channel_notifications.ignoreChannelMentions.settings": "Ignorer @channel, @here et @all",
"channel_notifications.muteChannel.settings": "Mettre le canal en sourdine",
"channel.channelHasGuests": "The canal dispose d'utilisateurs invités",
"channel.hasGuests": "Ce groupe dispose d'utilisateurs invités",
"channel.isGuest": "Cet utilisateur est un utilisateur invité",
"combined_system_message.added_to_channel.many_expanded": "{users} et {lastUser} ont été **ajoutés au canal** par {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} **ajouté au canal** par {actor}.",
"combined_system_message.added_to_channel.one_you": "Vous avez été **ajouté au canal** par {actor}.",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{firstUser} et {secondUser} ont été **ajoutés à l'équipe** par {actor}.",
"combined_system_message.joined_channel.many_expanded": "{users} et {lastUser} ont **rejoint le canal**.",
"combined_system_message.joined_channel.one": "{firstUser} a **rejoint le canal**.",
"combined_system_message.joined_channel.one_you": "a **rejoint le canal**.",
"combined_system_message.joined_channel.one_you": "Vous avez **rejoint le canal**.",
"combined_system_message.joined_channel.two": "{firstUser} et {secondUser} ont **rejoint le canal**.",
"combined_system_message.joined_team.many_expanded": "{users} et {lastUser} ont **rejoint l'équipe**.",
"combined_system_message.joined_team.one": "{firstUser} a **rejoint l'équipe**.",
"combined_system_message.joined_team.one_you": "a **rejoint l'équipe**.",
"combined_system_message.joined_team.one_you": "Vous avez **rejoint l'équipe**.",
"combined_system_message.joined_team.two": "{firstUser} et {secondUser} ont **rejoint l'équipe**.",
"combined_system_message.left_channel.many_expanded": "{users} et {lastUser} ont **quitté le canal**.",
"combined_system_message.left_channel.one": "{firstUser} a **quitté le canal**.",
"combined_system_message.left_channel.one_you": "a **quitté le canal**.",
"combined_system_message.left_channel.one_you": "Vous avez **quitté le canal**.",
"combined_system_message.left_channel.two": "{firstUser} et {secondUser} ont **quitté le canal**.",
"combined_system_message.left_team.many_expanded": "{users} et {lastUser} ont **quitté l'équipe**.",
"combined_system_message.left_team.one": "{firstUser} a **quitté l'équipe**.",
"combined_system_message.left_team.one_you": "a **quitté l'équipe**.",
"combined_system_message.left_team.one_you": "Vous avez **quitté l'équipe**.",
"combined_system_message.left_team.two": "{firstUser} et {secondUser} ont **quitté l'équipe**.",
"combined_system_message.removed_from_channel.many_expanded": "{users} et {lastUser} ont été **retirés du canal**.",
"combined_system_message.removed_from_channel.one": "{firstUser} a été **retiré du canal**.",
@@ -70,21 +73,21 @@
"combined_system_message.you": "Vous",
"create_comment.addComment": "Commenter...",
"create_post.deactivated": "Ceci est un canal de messages personnels archivé contenant une discussion avec un utilisateur désactivé.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "Écrire à {channelDisplayName}",
"date_separator.today": "Aujourd'hui",
"date_separator.yesterday": "Hier",
"edit_post.editPost": "Modifier le message...",
"edit_post.save": "Enregistrer",
"error.team_not_found.title": "Équipe introuvable",
"file_attachment.download": "Télécharger",
"file_upload.fileAbove": "Le fichier plus grand que {max}Mo ne peut pas être téléchargé : {filename}",
"get_post_link_modal.title": "Copier le lien permanent",
"integrations.add": "Ajouter",
"intro_messages.anyMember": " Tout membre peut rejoindre et lire ce canal.",
"intro_messages.beginning": "Début de {name}",
"intro_messages.channel": "canal",
"intro_messages.creator": "Ceci est le début de {type} {name}, créé par {creator} le {date}.",
"intro_messages.group": "canal privé",
"intro_messages.creator": "Ceci est le début du canal {name}, créé par {creator} le {date}.",
"intro_messages.creatorPrivate": "Ceci est le début du canal privé {name}, créé par {creator} le {date}.",
"intro_messages.group_message": "Vous êtes au début de votre historique de messages de groupe avec ces utilisateurs. Les messages privés et les fichiers partagés ici ne sont pas visibles par les autres utilisateurs.",
"intro_messages.noCreator": "Ceci est le début de {name} {type}, créé le {date}.",
"intro_messages.noCreator": "Ceci est le début du canal {name}, créé le {date}.",
"intro_messages.onlyInvited": " Seuls les membres invités peuvent voir ce canal privé.",
"last_users_message.added_to_channel.type": "a été **ajouté au canal** par {actor}.",
"last_users_message.added_to_team.type": "a été **ajouté à l'équipe** par {actor}.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Mentions dans les fils de discussion",
"mobile.account_notifications.threads_start": "Fils de discussion que je démarre",
"mobile.account_notifications.threads_start_participate": "Fils de discussion que je démarre ou auxquels je participe",
"mobile.account.settings.cancel": "Annuler",
"mobile.account.settings.save": "Enregistrer",
"mobile.action_menu.select": "Sélectionnez une option",
"mobile.advanced_settings.clockDisplay": "Affichage de l'horloge",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Supprimer les documents et les données",
"mobile.advanced_settings.timezone": "Fuseau horaire",
"mobile.advanced_settings.title": "Paramètres avancés",
"mobile.android.camera_permission_denied_description": "Pour prendre des photos et des vidéos avec votre appareil photo, veuillez modifier vos paramètres d'autorisation.",
"mobile.android.camera_permission_denied_title": "L'accès à la caméra est requis",
"mobile.android.permission_denied_dismiss": "Rejeter",
"mobile.android.permission_denied_retry": "Définir les permissions",
"mobile.android.photos_permission_denied_description": "Pour envoyer des images à partir de votre bibliothèque, veuillez modifier vos paramètres d'autorisation.",
"mobile.android.photos_permission_denied_title": "L'accès à la bibliothèque de photos est requis",
"mobile.android.storage_permission_denied_description": "Pour envoyer des images à partir de votre appareil Android, veuillez modifier vos permissions.",
"mobile.android.storage_permission_denied_title": "L'accès au stockage de fichiers est requis",
"mobile.android.videos_permission_denied_description": "Pour envoyer des vidéos à partir de votre bibliothèque, veuillez modifier vos paramètres d'autorisation.",
"mobile.android.videos_permission_denied_title": "L'accès à la bibliothèque de vidéos est requis",
"mobile.alert_dialog.alertCancel": "Annuler",
"mobile.android.photos_permission_denied_description": "Utile pour envoyer des photos à votre instance Mattermost ou les sauvegarder sur votre appareil. Ouvrez les paramètres de votre appareil et accordez à Mattermost les accès de lecture et d'écriture à votre bibliothèque de photos.",
"mobile.android.photos_permission_denied_title": "{applicationName} aimerait accéder à vos photos",
"mobile.android.videos_permission_denied_description": "Utile pour envoyer des vidéos à votre instance Mattermost ou les sauvegarder sur votre appareil. Ouvrez les paramètres de votre appareil et accordez à Mattermost les accès de lecture et d'écriture à votre bibliothèque de vidéos.",
"mobile.android.videos_permission_denied_title": "{applicationName} aimerait accéder à vos vidéos",
"mobile.announcement_banner.title": "Annonce",
"mobile.authentication_error.message": "Mattermost a rencontré un problème. Veuillez vous authentifier à nouveau pour démarrer une nouvelle session.",
"mobile.authentication_error.title": "Erreur d'authentification",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Dim,Lun,Mar,Mer,Jeu,Ven,Sam",
"mobile.calendar.monthNames": "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre",
"mobile.calendar.monthNamesShort": "Jan,Fév,Mar,Avr,Mai,Juin,Juil,Aou,Sep,Oct,Nov,Déc",
"mobile.camera_photo_permission_denied_description": "Utile pour prendre des photos et les envoyer à votre instance Mattermost ou les sauvegarder sur votre appareil. Ouvrez les paramètres de votre appareil et accordez à Mattermost les accès de lecture et d'écriture à votre appareil photo.",
"mobile.camera_photo_permission_denied_title": "{applicationName} aimerait accéder à votre appareil photo",
"mobile.camera_video_permission_denied_description": "Utile pour prendre des vidéos et les envoyer à votre instance Mattermost ou les sauvegarder sur votre appareil. Ouvrez les paramètres de votre appareil et accordez à Mattermost les accès de lecture et d'écriture à votre appareil photo.",
"mobile.camera_video_permission_denied_title": "{applicationName} aimerait accéder à votre appareil photo",
"mobile.channel_drawer.search": "Aller à...",
"mobile.channel_info.alertMessageConvertChannel": "Lorsque vous convertissez **{displayName}** en canal privé, l'historique du canal ainsi que ses membres sont préservés. Les fichiers partagés publiquement restent accessibles à toute personne qui dispose du lien. Devenir membre d'un canal privé se fait sur invitation uniquement.\n\nVoulez-vous vraiment convertir **{displayName}** en canal privé ?",
"mobile.channel_info.alertMessageDeleteChannel": "Voulez-vous vraiment archiver le {term} {name} ?",
"mobile.channel_info.alertMessageLeaveChannel": "Voulez-vous vraiment quitter le {term} {name} ?",
"mobile.channel_info.alertNo": "Non",
"mobile.channel_info.alertTitleConvertChannel": "Convertir {displayName} en canal privé ?",
"mobile.channel_info.alertTitleDeleteChannel": "Archiver {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Quitter {term}",
"mobile.channel_info.alertYes": "Oui",
"mobile.channel_info.convert": "Convertir en canal privé",
"mobile.channel_info.convert_failed": "We were unable to convert {displayName} to a private channel.",
"mobile.channel_info.convert_success": "{displayName} is now a private channel.",
"mobile.channel_info.copy_header": "Copier l'entête",
"mobile.channel_info.copy_purpose": "Copier la description",
"mobile.channel_info.delete_failed": "Impossible d'archiver le canal {displayName}. Veuillez vérifier votre connexion et essayer à nouveau.",
"mobile.channel_info.edit": "Modifier le canal",
"mobile.channel_info.privateChannel": "Canal privé",
"mobile.channel_info.publicChannel": "Canal public",
"mobile.channel_list.alertNo": "Non",
"mobile.channel_list.alertYes": "Oui",
"mobile.channel_list.archived": "ARCHIVÉ",
"mobile.channel_list.channels": "CANAUX",
"mobile.channel_list.closeDM": "Fermer le message personnel",
"mobile.channel_list.closeGM": "Fermer le groupe de message",
@@ -204,12 +213,13 @@
"mobile.create_channel.public": "Nouveau canal public",
"mobile.create_post.read_only": "Ce canal est en lecture seule",
"mobile.custom_list.no_results": "Aucun résultat",
"mobile.display_settings.sidebar": "Barre latérale",
"mobile.display_settings.theme": "Thème",
"mobile.document_preview.failed_description": "Une erreur s'est produite lors de l'ouverture du document. Veuillez vous assurer que vous ayez un lecteur de {fileType} installé et réessayez.\n",
"mobile.document_preview.failed_title": "L'ouverture du document a échoué",
"mobile.downloader.android_complete": "Téléchargement terminé",
"mobile.downloader.android_failed": "Échec du téléchargement",
"mobile.downloader.android_permission": "Des permissions au dossier de téléchargements sont requises pour pouvoir sauvegarder les fichiers.",
"mobile.downloader.android_permission": "Des permissions au dossier de téléchargements sont requises pour pouvoir enregistrer des fichiers.",
"mobile.downloader.android_started": "Téléchargement commencé",
"mobile.downloader.android_success": "Téléchargement réussi",
"mobile.downloader.complete": "Téléchargement terminé",
@@ -218,11 +228,12 @@
"mobile.downloader.downloading": "Téléchargement en cours...",
"mobile.downloader.failed_description": "Une erreur s'est produite lors du téléchargement du fichier. Veuillez vérifier votre connexion internet et réessayez.\n",
"mobile.downloader.failed_title": "Échec du téléchargement",
"mobile.downloader.image_saved": "Image sauvegardée",
"mobile.downloader.video_saved": "Vidéo sauvegardée",
"mobile.downloader.image_saved": "Image enregistrée",
"mobile.downloader.video_saved": "Vidéo enregistrée",
"mobile.drawer.teamsTitle": "Équipes",
"mobile.edit_channel": "Enregistrer",
"mobile.edit_post.title": "Edition du message",
"mobile.edit_profile.remove_profile_photo": "Supprimer la photo",
"mobile.emoji_picker.activity": "ACTIVITÉ",
"mobile.emoji_picker.custom": "PERSONNALISÉ",
"mobile.emoji_picker.flags": "DRAPEAUX",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Les fichiers partagés dans Mattermost doivent faire moins de {size}.",
"mobile.extension.permission": "Mattermost requiert l'accès au stockage de l'appareil pour partager des fichiers.",
"mobile.extension.title": "Partager dans Mattermost",
"mobile.failed_network_action.description": "Il semble y avoir un problème avec votre connexion Internet. Veuillez vous assurer d'avoir une connexion active et réessayez.",
"mobile.failed_network_action.retry": "Réessayer",
"mobile.failed_network_action.shortDescription": "Assurez-vous d'avoir une connexion active et réessayez.",
"mobile.failed_network_action.retry": "réessayer",
"mobile.failed_network_action.shortDescription": "Les messages se chargeront une fois que vous aurez une connexion internet ou {refresh}.",
"mobile.failed_network_action.title": "Aucune connexion Internet",
"mobile.file_upload.browse": "Parcourir les fichiers",
"mobile.file_upload.camera_photo": "Prendre une photo",
"mobile.file_upload.camera_video": "Enregistrer une vidéo",
"mobile.file_upload.library": "Bibliothèque de photos",
"mobile.file_upload.max_warning": "Envois limités à maximum 5 fichiers.",
"mobile.file_upload.unsupportedMimeType": "Seuls les fichiers avec ce type MIME peuvent être envoyés :\n{mimeTypes}",
"mobile.file_upload.video": "Bibliothèque vidéo",
"mobile.files_paste.error_description": "Une erreur s'est produite lors de l'opération de collage de la photo. Veuillez réessayer.",
"mobile.files_paste.error_dismiss": "Rejeter",
"mobile.files_paste.error_title": "Paste failed",
"mobile.flagged_posts.empty_description": "Marquer un message est un bon moyen d'assurer le suivi. Marquer un message est personnel et ne peut être vu par les autres utilisateurs.",
"mobile.flagged_posts.empty_title": "Aucun message marqué d'un indicateur",
"mobile.help.title": "Aide",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "Il s'agit du premier canal que les utilisateurs voient lorsqu'ils s'inscrivent. Utilisezle pour poster des informations que tout le monde devrait connaître.",
"mobile.intro_messages.default_welcome": "Bienvenue {name} !",
"mobile.intro_messages.DM": "Vous êtes au début de votre historique de messages avec {teammate}. Les messages personnels et les fichiers partagés ici ne sont pas visibles par les autres utilisateurs.",
"mobile.ios.photos_permission_denied_description": "Pour sauvegarder des photos et des vidéos dans votre bibliothèque, veuillez modifier vos paramètres d'autorisation.",
"mobile.ios.photos_permission_denied_description": "Utile pour envoyer des photos ou vidéos à votre instance Mattermost ou les sauvegarder sur votre appareil. Ouvrez les paramètres de votre appareil et accordez à Mattermost les accès de lecture et d'écriture à votre bibliothèque de photos et vidéos.",
"mobile.ios.photos_permission_denied_title": "{applicationName} aimerait accéder à vos photos",
"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...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "Bloqué par {vendor}",
"mobile.managed.exit": "Quitter",
"mobile.managed.jailbreak": "Les dispositifs jailbreakés ne sont pas approuvés par {vendor}, veuillez quitter l'application.",
"mobile.managed.not_secured.android": "Cet appareil doit être sécurisé avec un verrouillage d'écran pour pouvoir utiliser Mattermost.",
"mobile.managed.not_secured.ios": "Cet appareil doit être sécurisé avec un code pour pouvoir utiliser Mattermost.\n\nAllez dans Réglages > Face ID et code.",
"mobile.managed.not_secured.ios.touchId": "Cet appareil doit être sécurisé avec un code pour pouvoir utiliser Mattermost.\n\nAllez dans Réglages > Touch ID et code.",
"mobile.managed.secured_by": "Sécurisé par {vendor}",
"mobile.managed.settings": "Aller dans les paramètres",
"mobile.markdown.code.copy_code": "Copier le code",
"mobile.markdown.code.plusMoreLines": "+{count, number} other {count, plural, one {ligne} other {lignes}}",
"mobile.markdown.image.too_large": "L'image dépasse les dimensions maximales de {maxWidth} par {maxHeight} :",
"mobile.markdown.link.copy_url": "Copier l'URL",
"mobile.mention.copy_mention": "Copier la mention",
"mobile.message_length.message": "Votre message courant est trop long. Nombre actuel de caractères : {max}/{count}",
"mobile.message_length.message": "Votre message courant est trop long. Nombre actuel de caractères : {count}/{max}",
"mobile.message_length.title": "Longueur de message",
"mobile.more_dms.add_more": "Vous pouvez encore ajouter {remaining, number} utilisateurs",
"mobile.more_dms.cannot_add_more": "Vous ne pouvez plus ajouter d'utilisateurs",
@@ -323,7 +342,7 @@
"mobile.notification_settings.modal_cancel": "ANNULER",
"mobile.notification_settings.modal_save": "ENREGISTRER",
"mobile.notification_settings.ooo_auto_responder": "Réponses automatiques aux messages personnels",
"mobile.notification_settings.save_failed_description": "Les paramètres de notification n'ont pas pu être enregistrés à cause d'un problème de connexion, merci d'essayer à nouveau.",
"mobile.notification_settings.save_failed_description": "Les paramètres de notification n'ont pas pu être enregistrés à cause d'un problème de connexion, veuillez réessayer.",
"mobile.notification_settings.save_failed_title": "Erreur de connexion",
"mobile.notification.in": " dans ",
"mobile.offlineIndicator.connected": "Connecté",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Impossible d'ouvrir un message personnel avec {displayName}. Veuillez vérifier votre connexion et essayer à nouveau.",
"mobile.open_gm.error": "Impossible d'ouvrir un message de groupe avec ces utilisateurs. Veuillez vérifier votre connexion et essayer à nouveau.",
"mobile.open_unknown_channel.error": "Impossible de rejoindre le canal. Veuillez réinitialiser le cache et réessayer.",
"mobile.permission_denied_dismiss": "Ne pas autoriser",
"mobile.permission_denied_retry": "Paramètres",
"mobile.photo_library_permission_denied_description": "Pour enregistrer des photos et des vidéos dans votre bibliothèque, veuillez modifier vos paramètres de permissions.",
"mobile.photo_library_permission_denied_title": "{applicationName} aimerait accéder à votre bibliothèque de photos",
"mobile.pinned_posts.empty_description": "Épingle des éléments importants en maintenant appuyé sur un message, puis en sélectionnant « Épingler au canal ».",
"mobile.pinned_posts.empty_title": "Aucun message épinglé",
"mobile.post_info.add_reaction": "Ajouter une réaction",
"mobile.post_info.copy_text": "Copier le texte",
"mobile.post_info.flag": "Marquer avec un indicateur",
"mobile.post_info.mark_unread": "Mark as Unread",
"mobile.post_info.pin": "Épingler au canal",
"mobile.post_info.reply": "Répondre",
"mobile.post_info.unflag": "Supprimer l'indicateur",
"mobile.post_info.unpin": "Désépingler du canal",
"mobile.post_pre_header.flagged": "Marqué d'un indicateur",
"mobile.post_pre_header.pinned": "Épinglé",
"mobile.post_pre_header.pinned_flagged": "Épinglé et marqué d'un indicateur",
"mobile.post_textbox.empty.message": "Vous êtes en train d'envoyer un message vide.\nVeuillez-vous assurer d'avoir spécifié un message ou d'avoir joint au moins un fichier.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Message vide",
"mobile.post_textbox.entire_channel.cancel": "Annuler",
"mobile.post_textbox.entire_channel.confirm": "Confirmer",
"mobile.post_textbox.entire_channel.message": "En utilisant @all ou @channel, vous êtes sur le point d'envoyer des notifications à {totalMembers, number} {totalMembers, plural, one {utilisateur} other {utilisateurs}}. Voulez-vous vraiment continuer ?",
"mobile.post_textbox.entire_channel.message.with_timezones": "En utilisant @all ou @channel, vous êtes sur le point d'envoyer des notifications à {totalMembers, number} {totalMembers, plural, one {utilisateur} other {utilisateurs}} dans {timezones, number} {timezones, plural, one {fuseau horaire} other {fuseaux horaires}}. Voulez-vous vraiment continuer ?",
"mobile.post_textbox.entire_channel.title": "Confirmez l'envoi de notifications au canal en entier",
"mobile.post_textbox.uploadFailedDesc": "Certains fichiers joints n'ont pas pu être envoyés au serveur. Voulez-vous vraiment envoyer votre message ?",
"mobile.post_textbox.uploadFailedTitle": "Erreur de pièces jointes",
"mobile.post.cancel": "Annuler",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Impossible d'envoyer votre message",
"mobile.post.retry": "Rafraîchir",
"mobile.posts_view.moreMsg": "Plus de nouveaux messages au-dessus",
"mobile.privacy_link": "Politique de respect de la vie privée",
"mobile.push_notification_reply.button": "Envoyer",
"mobile.push_notification_reply.placeholder": "Écrire une réponse...",
"mobile.push_notification_reply.title": "Répondre",
"mobile.reaction_header.all_emojis": "Toutes",
"mobile.recent_mentions.empty_description": "Les messages qui contiennent votre nom d'utilisateur et d'autres mots qui déclenchent des mentions apparaissent ici.",
"mobile.recent_mentions.empty_title": "Aucune mention récente",
"mobile.rename_channel.display_name_maxLength": "Ce champ doit faire moins de {maxLength, number} caractères",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Créé par {creator} le ",
"mobile.routes.channelInfo.delete_channel": "Archiver le canal",
"mobile.routes.channelInfo.favorite": "Favoris",
"mobile.routes.channelInfo.groupManaged": "Les membres sont gérés par groupes liés.",
"mobile.routes.code": "Code {language}",
"mobile.routes.code.noLanguage": "Code",
"mobile.routes.edit_profile": "Éditer le profil",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "Fil de discussion de {channelName}",
"mobile.routes.thread_dm": "Fil de discussion de messages personnels",
"mobile.routes.user_profile": "Profil",
"mobile.routes.user_profile.edit": "Modifier",
"mobile.routes.user_profile.local_time": "HEURE LOCALE",
"mobile.routes.user_profile.send_message": "Envoyer un message",
"mobile.search.after_modifier_description": "pour trouver des messages publiés après une date spécifique",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Aucun résultat trouvé",
"mobile.search.on_modifier_description": "pour trouver des messages publiés à une date spécifique",
"mobile.search.recent_title": "Recherches récentes",
"mobile.select_team.guest_cant_join_team": "Votre compte d'utilisateur invité n'a pas d'équipe ou de canal assigné. Veuillez contacter un administrateur.",
"mobile.select_team.join_open": "Les autres équipes que vous pouvez rejoindre.",
"mobile.select_team.no_teams": "Il n'y a aucune équipe disponible que vous pouvez rejoindre.",
"mobile.server_upgrade.button": "OK",
"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.description": "\nUne mise à jour du serveur est requise pour utiliser l'application Mattermost. Veuillez demander à votre administrateur système pour en savoir plus.\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.session_expired": "La session a expiré : Veuillez vous connecter pour continuer à recevoir des notifications. Les sessions pour {siteName} sont configurées pour expirer tous les {daysCount, number} {daysCount, plural, one {jour} other {jours}}.",
"mobile.set_status.away": "Absent",
"mobile.set_status.dnd": "Ne pas déranger",
"mobile.set_status.offline": "Hors ligne",
@@ -422,22 +457,35 @@
"mobile.share_extension.error_message": "Une erreur s'est produite lors de l'utilisation de l'extension de partage.",
"mobile.share_extension.error_title": "Erreur d'extension",
"mobile.share_extension.team": "Équipe",
"mobile.share_extension.too_long_message": "Character count: {count}/{max}",
"mobile.share_extension.too_long_title": "Message is too long",
"mobile.sidebar_settings.permanent": "Barre latérale permanente",
"mobile.sidebar_settings.permanent_description": "Conserver la barre latérale ouverte en permanence",
"mobile.storage_permission_denied_description": "Utile pour envoyer des fichiers à votre instance Mattermost. Ouvrez les paramètres de votre appareil et accordez à Mattermost les accès de lecture et d'écriture aux fichiers.",
"mobile.storage_permission_denied_title": "{applicationName} aimerait accéder à vos fichiers",
"mobile.suggestion.members": "Membres",
"mobile.system_message.channel_archived_message": "{username} a archivé le canal.",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} updated the channel display name from: {oldDisplayName} to: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} a supprimé l'entête du canal (précédemment: {old})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} a mis à jour l'entête du canal de : {old} en : {new}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} a mis à jour l'entête du canal en : {new}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} a supprimé la description du canal (précédemment: {old})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} a mis à jour la description du canal de: {old} en: {new}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} a mis à jour la description du canal en: {new}",
"mobile.terms_of_service.alert_cancel": "Annuler",
"mobile.terms_of_service.alert_ok": "OK",
"mobile.terms_of_service.alert_retry": "Réessayer",
"mobile.terms_of_service.get_terms_error_description": "Assurez-vous d'avoir une connexion internet active et réessayez. Si ce problème persiste, contactez votre administrateur système.",
"mobile.terms_of_service.get_terms_error_title": "Impossible de charger les conditions d'utilisation.",
"mobile.terms_of_service.terms_rejected": "Vous devez accepter les conditions d'utilisation avant de pouvoir accéder à {siteName}. Veuillez contacter votre administrateur système pour plus d'informations.",
"mobile.terms_of_service.terms_rejected": "Vous devez accepter les conditions d'utilisation avant de pouvoir accéder à {siteName}. Veuillez contacter votre administrateur système pour en savoir plus..",
"mobile.timezone_settings.automatically": "Définir automatiquement",
"mobile.timezone_settings.manual": "Changer le fuseau horaire",
"mobile.timezone_settings.select": "Sélectionner un fuseau horaire",
"mobile.tos_link": "Conditions d'utilisation",
"mobile.user_list.deactivated": "Désactivé",
"mobile.user.settings.notifications.email.fifteenMinutes": "Toutes les 15 minutes",
"mobile.video_playback.failed_description": "Une erreur s'est produite lors de la tentative de lecture de la vidéo.\n",
"mobile.video_playback.failed_title": "La lecture de la vidéo a échoué",
"mobile.video.save_error_message": "Pour enregistrer la vidéo, vous devez d'abord la télécharger.",
"mobile.video.save_error_title": "Erreur lors de la sauvegarde de la vidéo",
"mobile.video.save_error_title": "Erreur lors de l'enregistrement de la vidéo",
"mobile.youtube_playback_error.description": "Une erreur s'est produite lors de la lecture de la vidéo YouTube.\nDétails : {details}",
"mobile.youtube_playback_error.title": "Erreur de lecture YouTube",
"modal.manual_status.auto_responder.message_": "Voulez-vous changer votre statut sur « {status} » et désactiver les Réponses Automatiques ?",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Voulez-vous changer votre statut sur « Ne pas déranger » et désactiver les Réponses Automatiques ?",
"modal.manual_status.auto_responder.message_offline": "Voulez-vous changer votre statut sur « Hors ligne » et désactiver les Réponses Automatiques ?",
"modal.manual_status.auto_responder.message_online": "Voulez-vous changer votre statut sur « En ligne » et désactiver les Réponses Automatiques ?",
"more_channels.archivedChannels": "Canaux archivés",
"more_channels.dropdownTitle": "Show",
"more_channels.noMore": "Il n'y a plus d'autre canal que vous pouvez rejoindre",
"more_channels.publicChannels": "Canaux publics",
"more_channels.showArchivedChannels": "Show: Archived Channels",
"more_channels.showPublicChannels": "Nouveau canal public",
"more_channels.title": "Plus de canaux",
"msg_typing.areTyping": "{users} et {last} sont en train d'écrire...",
"msg_typing.isTyping": "{user} est en train d'écrire...",
"navbar_dropdown.logout": "Se déconnecter",
"navbar.channel_drawer.button": "Channels and teams",
"navbar.channel_drawer.hint": "Opens the channels and teams drawer",
"navbar.leave": "Quitter le canal",
"password_form.title": "Réinitialisation du mot de passe",
"password_send.checkInbox": "Veuillez vérifier votre boîte de réception.",
@@ -458,25 +513,25 @@
"password_send.link": "Si le compte existe, un e-mail de redéfinition de mot de passe sera envoyé à :",
"password_send.reset": "Réinitialiser mon mot de passe",
"permalink.error.access": "Ce lien correspond à un message supprimé ou appartenant à un canal auquel vous n'avez pas accès.",
"post_body.check_for_out_of_channel_groups_mentions.message": "n'a pas été notifié par cette mention. L'utilisateur n'est pas dans le canal et ne peut pas être ajouté à ce canal, car il ne fait pas partie des groupes liés. Pour l'ajouter à ce canal, l'utilisateur doit être ajouté aux groupes liés.",
"post_body.check_for_out_of_channel_mentions.link.and": " et ",
"post_body.check_for_out_of_channel_mentions.link.private": "ajouter à ce canal privé",
"post_body.check_for_out_of_channel_mentions.link.public": "ajouter à ce canal",
"post_body.check_for_out_of_channel_mentions.message_last": "? Ils auront alors accès à tout l'historique de messages pour ce canal.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "ont été mentionnés, mais ne sont pas dans le canal. Voulez-vous ",
"post_body.check_for_out_of_channel_mentions.message.one": "a été mentionné, mais n'est pas dans le canal. Voulez-vous ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "n'a pas été notifié par cette mention, car l'utilisateur n'est pas dans le canal. Voulez-vous ",
"post_body.check_for_out_of_channel_mentions.message.one": "n'a pas été notifié par cette mention, car l'utilisateur n'est pas dans le canal. Voulez-vous ",
"post_body.commentedOn": "a commenté le message de {name} : ",
"post_body.deleted": "(message supprimé)",
"post_info.auto_responder": "RÉPONSE AUTOMATIQUE",
"post_info.bot": "BOT",
"post_info.del": "Supprimer",
"post_info.edit": "Éditer",
"post_info.guest": "INVITÉ",
"post_info.message.show_less": "Afficher moins",
"post_info.message.show_more": "Afficher plus",
"post_info.system": "Système",
"post_message_view.edited": "(édité)",
"posts_view.newMsg": "Nouveaux messages",
"rename_channel.handleHolder": "caractères alphanumériques minuscules",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Une partie de ce fil de discussion a été supprimée à cause d'une politique de rétention de données. Vous ne pouvez plus répondre à ce fil.",
"search_bar.search": "Rechercher",
"search_header.results": "Résultats de la recherche",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Hors ligne",
"status_dropdown.set_online": "En ligne",
"status_dropdown.set_ooo": "Absent du bureau",
"suggestion.mention.all": "ATTENTION : Ceci mentionne tout le monde dans le canal",
"suggestion.mention.channel": "Notifier tout le monde dans le canal",
"suggestion.mention.all": "Envoie une notification à tous les membres de ce canal",
"suggestion.mention.channel": "Envoie une notification à tous les membres de ce canal",
"suggestion.mention.channels": "Mes canaux",
"suggestion.mention.here": "Notifier toutes les personnes connectées dans ce canal",
"suggestion.mention.here": "Envoie une notification à tous les membres considérés comme en ligne de ce canal",
"suggestion.mention.members": "Membres du canal",
"suggestion.mention.morechannels": "Autres canaux",
"suggestion.mention.nonmembers": "Pas dans le canal",
@@ -512,14 +567,15 @@
"terms_of_service.agreeButton": "Je suis d'accord",
"terms_of_service.api_error": "Impossible de terminer la requête. Si ce problème persiste, contactez votre administrateur système.",
"user.settings.display.clockDisplay": "Affichage de l'horloge",
"user.settings.display.custom_theme": "Thème personnalisé",
"user.settings.display.militaryClock": "Horloge 24 heures (ex. : 16:00)",
"user.settings.display.normalClock": "Horloge 12 heures (ex. : 4:00 PM)",
"user.settings.display.preferTime": "Choisissez la façon dont vous préférez voir les heures affichées dans l'application.",
"user.settings.general.email": "E-mail",
"user.settings.general.emailCantUpdate": "L'adresse e-mail ne peut être mise à jour qu'en utilisant un navigateur web ou l'application de bureau.",
"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 notifications par e-mail 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 par e-mail est {email} .",
"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.emailGoogleCantUpdate": "La connexion s'effectue par Google. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les notifications par e-mail est {email} .",
"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.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 par e-mail 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 notifications par e-mail est {email} .",
"user.settings.general.emailSamlCantUpdate": "La connexion s'effectue via SAML. L'adresse e-mail ne peut pas être mise à jour. L'adresse e-mail utilisée pour les notifications par e-mail est {email}.",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "Immédiatement",
"user.settings.notifications.email.never": "Jamais",
"user.settings.notifications.email.send": "Envoyer des notifications de bureau",
"user.settings.notifications.emailInfo": "Les e-mails de notification sont envoyés pour les mentions et les messages personnels reçus après que vous soyez passé hors-ligne ou absent de {siteName} pendant plus de 5 minutes.",
"user.settings.notifications.emailInfo": "Les notifications par e-mail sont envoyées pour les mentions et les messages personnels reçus après que vous soyez passé hors-ligne ou absent de {siteName} pendant plus de 5 minutes.",
"user.settings.notifications.never": "Jamais",
"user.settings.notifications.onlyMentions": "Seulement pour les mentions et messages personnels",
"user.settings.push_notification.away": "Absent ou hors ligne",

View File

@@ -7,9 +7,9 @@
"about.hashee": "Hash di compilazione EE:",
"about.teamEditionLearn": "Entra nella comunità Mattermost su ",
"about.teamEditionSt": "Tutte le tue comunicazioni in un posto, istantaneamente ricercabili e accessibili ovunque.",
"about.teamEditiont0": "Edizione Gruppo",
"about.teamEditiont0": "Edizione Squadra",
"about.teamEditiont1": "Edizione Enterprise",
"about.title": "Informazioni su Mattermost",
"about.title": "Informazioni su {appTitle}",
"announcment_banner.dont_show_again": "Non visualizzare di nuovo",
"api.channel.add_member.added": "{addedUsername} aggiunto al canale da {username}.",
"archivedChannelMessage": "Stai visualizzato un **canale archiviato**. Non si possono pubblicare nuovi messaggi.",
@@ -35,67 +35,70 @@
"channel_modal.purposeEx": "Es.: \"Un canale per segnalare bug e miglioramenti\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignora @channel, @here, @all",
"channel_notifications.muteChannel.settings": "Silenzia canale",
"channel.channelHasGuests": "Questo canale ha degli ospiti",
"channel.hasGuests": "Questo messaggio di gruppo ha degli ospiti",
"channel.isGuest": "Questa persona è un ospite",
"combined_system_message.added_to_channel.many_expanded": "{users} e {lastUser} sono stati **aggiunti al canale** da {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} **aggiunto al canale** da {actor}.",
"combined_system_message.added_to_channel.one_you": "Se stato **aggiunto al canale** da {actor}.",
"combined_system_message.added_to_channel.two": "{firstUser} e {secondUser} **aggiunti al canale** da {actor}.",
"combined_system_message.added_to_team.many_expanded": "{users} e {lastUser} sono stati **aggiunti al gruppo** da {actor}.",
"combined_system_message.added_to_team.one": "{firstUser} **aggiunto al gruppo** da {actor}.",
"combined_system_message.added_to_team.one_you": "Sei stato **aggiunto al gruppo** da {actor}.",
"combined_system_message.added_to_team.two": "{firstUser} e {secondUser} **aggiunti al gruppo** da {actor}.",
"combined_system_message.added_to_team.many_expanded": "{users} e {lastUser} sono stati **aggiunti alla squadra** da {actor}.",
"combined_system_message.added_to_team.one": "{firstUser} **aggiunto alla squadra** da {actor}.",
"combined_system_message.added_to_team.one_you": "Sei stato **aggiunto alla squadra** da {actor}.",
"combined_system_message.added_to_team.two": "{firstUser} e {secondUser} **aggiunti alla squadra** da {actor}.",
"combined_system_message.joined_channel.many_expanded": "{users} e {lastUser} **aggiunti al canale**.",
"combined_system_message.joined_channel.one": "{firstUser} **aggiunto al canale**.",
"combined_system_message.joined_channel.one_you": "**si è unito al canale**.",
"combined_system_message.joined_channel.one_you": "**Ti sei è unito al canale**.",
"combined_system_message.joined_channel.two": "{firstUser} e {secondUser} **aggiunto al canale**.",
"combined_system_message.joined_team.many_expanded": "{users} e {lastUser} **aggiunti al gruppo**.",
"combined_system_message.joined_team.one": "{firstUser} **aggiunto al gruppo**.",
"combined_system_message.joined_team.one_you": "**si è unito al gruppo**.",
"combined_system_message.joined_team.two": "{firstUser} e {secondUser} **aggiunto al gruppo**.",
"combined_system_message.joined_team.many_expanded": "{users} e {lastUser} **aggiunti alla squadra**.",
"combined_system_message.joined_team.one": "{firstUser} **aggiunto alla squadra**.",
"combined_system_message.joined_team.one_you": "**Ti sei è unito alla squadra**.",
"combined_system_message.joined_team.two": "{firstUser} e {secondUser} **aggiunto alla squadra**.",
"combined_system_message.left_channel.many_expanded": "{users} e {lastUser} hanno **abbandonato il canale**.",
"combined_system_message.left_channel.one": "{firstUser} ha **abbandonato il canale**.",
"combined_system_message.left_channel.one_you": "**ha abbandonato il canale**.",
"combined_system_message.left_channel.one_you": "**Hai abbandonato il canale**.",
"combined_system_message.left_channel.two": "{firstUser} e {secondUser} hanno **abbandonato il canale**.",
"combined_system_message.left_team.many_expanded": "{users} e {lastUser} hanno **abbandonato il canale**.",
"combined_system_message.left_team.one": "{firstUser} ha **abbandonato il gruppo**.",
"combined_system_message.left_team.one_you": "**ha abbandonato il gruppo**.",
"combined_system_message.left_team.two": "{firstUser} e {secondUser} hanno **abbandonato il gruppo**.",
"combined_system_message.left_team.many_expanded": "{users} e {lastUser} hanno **abbandonato la squadra**.",
"combined_system_message.left_team.one": "{firstUser} ha **abbandonato la squadra**.",
"combined_system_message.left_team.one_you": "**Hai abbandonato la squadra**.",
"combined_system_message.left_team.two": "{firstUser} e {secondUser} hanno **abbandonato la squadra**.",
"combined_system_message.removed_from_channel.many_expanded": "{users} e {lastUser} sono stati **rimossi dal canale**.",
"combined_system_message.removed_from_channel.one": "{firstUser} è stato **rimosso dal canale**.",
"combined_system_message.removed_from_channel.one_you": "Sei stato **rimosso dal canale**.",
"combined_system_message.removed_from_channel.two": "{firstUser} e {secondUser} sono stato **rimossi dal canale**.",
"combined_system_message.removed_from_team.many_expanded": "{users} e {lastUser} sono stati **rimossi dal gruppo**.",
"combined_system_message.removed_from_team.one": "{firstUser} è stato **rimosso dal gruppo**.",
"combined_system_message.removed_from_team.one_you": "Sei stato **rimosso dal gruppo**.",
"combined_system_message.removed_from_team.two": "{firstUser} e {secondUser} sono stati **rimossi dal gruppo**.",
"combined_system_message.removed_from_team.many_expanded": "{users} e {lastUser} sono stati **rimossi dalla squadra**.",
"combined_system_message.removed_from_team.one": "{firstUser} è stato **rimosso dalla squadra**.",
"combined_system_message.removed_from_team.one_you": "Sei stato **rimosso dalla squadra**.",
"combined_system_message.removed_from_team.two": "{firstUser} e {secondUser} sono stati **rimossi dalla squadra**.",
"combined_system_message.you": "Tu",
"create_comment.addComment": "Aggiungi un commento...",
"create_post.deactivated": "Stai visualizzando un canale archiviato con un utente disattivato.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "Scrivi a {channelDisplayName}",
"date_separator.today": "Oggi",
"date_separator.yesterday": "Ieri",
"edit_post.editPost": "Modifica post...",
"edit_post.save": "Salva",
"error.team_not_found.title": "Gruppo Non Trovato",
"file_attachment.download": "Scarica",
"file_upload.fileAbove": "File sopra i {max}MB non possono essere caricati: {filename}",
"get_post_link_modal.title": "Copia permalink",
"integrations.add": "Aggiungi",
"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.group": "canale privato",
"intro_messages.creator": "Questo è l'inizio di {name}, creato da {creator} il {date}.",
"intro_messages.creatorPrivate": "Questo è l'inizio della chat privata {name}, creato da {creator} il {date}.",
"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.noCreator": "Questo è l'inizio di {name} {type}, creato il {date}.",
"intro_messages.noCreator": "Questo è l'inizio di della chat {name}, creata il {date}.",
"intro_messages.onlyInvited": " Invita solo i membri che possono vedere questo canale privato.",
"last_users_message.added_to_channel.type": "sono stati **aggiunti al canale** da {actor}.",
"last_users_message.added_to_team.type": "sono stati **aggiunti al canale** da {actor}.",
"last_users_message.added_to_team.type": "sono stati **aggiunti alla squadra** da {actor}.",
"last_users_message.first": "{firstUser} e ",
"last_users_message.joined_channel.type": "**si è unito al canale**.",
"last_users_message.joined_team.type": "**si è unito al gruppo**.",
"last_users_message.joined_team.type": "**si è unito alla squadra**.",
"last_users_message.left_channel.type": "**ha abbandonato il canale**.",
"last_users_message.left_team.type": "**ha abbandonato il gruppo**.",
"last_users_message.left_team.type": "**ha abbandonato la squadra**.",
"last_users_message.others": "{numOthers} altri ",
"last_users_message.removed_from_channel.type": "sono stati **rimossi dal canale**.",
"last_users_message.removed_from_team.type": "sono stati **rimossi dal gruppo**.",
"last_users_message.removed_from_team.type": "sono stati **rimossi dalla squadra**.",
"login_mfa.enterToken": "Per completare il processo di accesso, inserisci un token di autenticatore dal tuo smartphone",
"login_mfa.token": "Token MFA",
"login_mfa.tokenReq": "Inserisci token MFA",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Citazioni nelle discussioni",
"mobile.account_notifications.threads_start": "Discussioni avviate da me",
"mobile.account_notifications.threads_start_participate": "Discussioni alle quali ho partecipato",
"mobile.account.settings.cancel": "Annulla",
"mobile.account.settings.save": "Salva",
"mobile.action_menu.select": "Seleziona un'opzione",
"mobile.advanced_settings.clockDisplay": "Visualizza orologio",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Cancella Documenti e Dati",
"mobile.advanced_settings.timezone": "Fuso orario",
"mobile.advanced_settings.title": "Impostazioni Avanzate",
"mobile.android.camera_permission_denied_description": "Per scattare foto e girare video con la videocamera, modificare i permessi nelle impostazioni.",
"mobile.android.camera_permission_denied_title": "L'accesso alla videocamera è richiesto",
"mobile.android.permission_denied_dismiss": "Annulla",
"mobile.android.permission_denied_retry": "Imposta permessi",
"mobile.android.photos_permission_denied_description": "Per caricare immagini dalla libreria modificare i permessi nelle impostazioni.",
"mobile.android.photos_permission_denied_title": "L'accesso alla libreria delle foto è richiesto",
"mobile.android.storage_permission_denied_description": "Per caricare immagini da dispostivi Android, modificare i permessi nelle impostazioni.",
"mobile.android.storage_permission_denied_title": "L'accesso alla memoria file è richiesto",
"mobile.android.videos_permission_denied_description": "Per caricare video dalla libreria modificare i permessi nelle impostazioni.",
"mobile.android.videos_permission_denied_title": "L'accesso alla libreria dei video è richiesto",
"mobile.alert_dialog.alertCancel": "Annulla",
"mobile.android.photos_permission_denied_description": "Carica immagini in Mattermost o salvale sul tuo dispositivo. Aprire le Impostazioni per consentire a Mattermost di Leggere e Scrivere sulla libreria foto.",
"mobile.android.photos_permission_denied_title": "{applicationName} vorrebbe accedere alle tue foto",
"mobile.android.videos_permission_denied_description": "Carica video in Mattermost o salvale sul tuo dispositivo. Aprire le Impostazioni per consentire a Mattermost di Leggere e Scrivere sulla libreria video. ",
"mobile.android.videos_permission_denied_title": "{applicationName} vorrebbe accedere ai tuoi video",
"mobile.announcement_banner.title": "Annuncio",
"mobile.authentication_error.message": "Mattermost ha incontrato un errore. Autenticarsi nuovamente per avviare una nuova sessione.",
"mobile.authentication_error.title": "Errore di autenticazione",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Dom,Lun,Mar,Mer,Gio,Ven,Sab",
"mobile.calendar.monthNames": "Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre",
"mobile.calendar.monthNamesShort": "Gen,Feb,Mar,Apr,Mag,Giu,Lug,Ago,Set,Ott,Nov,Dic",
"mobile.camera_photo_permission_denied_description": "Scatta foto e caricale in Mattermost o salvale sul tuo dispositivo. Aprire le Impostazioni per consentire a Mattermost di Leggere e Scrivere sulla tua fotocamera. ",
"mobile.camera_photo_permission_denied_title": "{applicationName} vorrebbe accedere alla tua fotocamera ",
"mobile.camera_video_permission_denied_description": "Registra video e caricali in Mattermost o salvali sul tuo dispositivo. Aprire le Impostazioni per consentire a Mattermost di Leggere e Scrivere sulla tua fotocamera.",
"mobile.camera_video_permission_denied_title": "{applicationName} vorrebbe accedere alla tua fotocamera ",
"mobile.channel_drawer.search": "Vai a...",
"mobile.channel_info.alertMessageConvertChannel": "Se converti {displayName} in un canale privato, la cronologia e le appartenenze saranno preservate. I file condivisi pubblicamente rimarranno accessibili a chiunque possegga il collegamento. L'ingresso in un canale privato è solo su invito. \n\nLa modifica è permanente e non può essere annullata.\n\nSicuro di voler convertire {displayName} in un canale privato?",
"mobile.channel_info.alertMessageDeleteChannel": "Sei sicuro di voler archiviare {term} {name}?",
"mobile.channel_info.alertMessageLeaveChannel": "Sei sicuro di voler tralasciare questo {term} {name}?",
"mobile.channel_info.alertNo": "No",
"mobile.channel_info.alertTitleConvertChannel": "Convertire {displayName} in canale privato?",
"mobile.channel_info.alertTitleDeleteChannel": "Archivia {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Tralascia {term}",
"mobile.channel_info.alertYes": "Si",
"mobile.channel_info.convert": "Converti in Canale Privato",
"mobile.channel_info.convert_failed": "Impossibile convertire {displayName} in un canale privato.",
"mobile.channel_info.convert_success": "{displayName} adesso è un canale privato.",
"mobile.channel_info.copy_header": "Copia Intestazione",
"mobile.channel_info.copy_purpose": "Copia Scopo",
"mobile.channel_info.delete_failed": "Impossibile archiviare il canale {displayName}. Controlla la connessione e riprova.",
"mobile.channel_info.edit": "Modifica Canale",
"mobile.channel_info.privateChannel": "Canale privato",
"mobile.channel_info.publicChannel": "Canale Pubblico",
"mobile.channel_list.alertNo": "No",
"mobile.channel_list.alertYes": "Si",
"mobile.channel_list.archived": "ARCHIVIATO",
"mobile.channel_list.channels": "CANALI",
"mobile.channel_list.closeDM": "Chudi Messaggio Diretto",
"mobile.channel_list.closeGM": "Chiudi Messaggio di Gruppo",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Nuovo Canale Pubblico",
"mobile.create_post.read_only": "Questo canale è in sola lettura",
"mobile.custom_list.no_results": "Nessun risultato",
"mobile.display_settings.sidebar": "Barra laterale",
"mobile.display_settings.theme": "Tema",
"mobile.document_preview.failed_description": "Errore durante l'apertura del documento. Assicurarsi di avere installato il visualizzatore per i file di tipo {fileType} e riprovare.\n",
"mobile.document_preview.failed_title": "Apertura Documento fallita",
@@ -220,9 +230,10 @@
"mobile.downloader.failed_title": "Download non riuscito",
"mobile.downloader.image_saved": "Immagine Salvata",
"mobile.downloader.video_saved": "Video Salvato",
"mobile.drawer.teamsTitle": "Gruppi",
"mobile.drawer.teamsTitle": "Squadre",
"mobile.edit_channel": "Salva",
"mobile.edit_post.title": "Modifica Messaggio",
"mobile.edit_profile.remove_profile_photo": "Cancella foto",
"mobile.emoji_picker.activity": "ATTIVITA'",
"mobile.emoji_picker.custom": "PERSONALIZZATO",
"mobile.emoji_picker.flags": "BANDIERE",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "I file allegati condivisi in Mattermost devono essere più piccoli di {size}.",
"mobile.extension.permission": "Mattermost necessità di accedere alla memoria del dispositivo per condividere i file.",
"mobile.extension.title": "Condividi in Mattermos",
"mobile.failed_network_action.description": "Sembra esserci un problema con la tua connessione internet. Assicurati di avere una connessione attiva e riprova.",
"mobile.failed_network_action.retry": "Riprova",
"mobile.failed_network_action.shortDescription": "Controlla che ci sia una connessione attiva e riprovare.",
"mobile.failed_network_action.shortDescription": "I messaggi saranno caricati quando sarà disponibile una connessione internet oppure {refresh}.",
"mobile.failed_network_action.title": "Nessuna connessione internet",
"mobile.file_upload.browse": "Sfoglia File",
"mobile.file_upload.camera_photo": "Scatta foto",
"mobile.file_upload.camera_video": "Gira video",
"mobile.file_upload.library": "Galleria Fotografica",
"mobile.file_upload.max_warning": "Numero massimo di file caricabili limitato a 5.",
"mobile.file_upload.unsupportedMimeType": "Solo i file con i seguenti tipi MIME possono essere caricati:\n{mimeTypes}",
"mobile.file_upload.video": "Libreria video",
"mobile.files_paste.error_description": "Si è verificato un errore incollando i file. Per favore riprova.",
"mobile.files_paste.error_dismiss": "Chiudi",
"mobile.files_paste.error_title": "Incolla fallito",
"mobile.flagged_posts.empty_description": "Contrassegnare i messaggi è uno strumento per seguirli. I contrassegni sono personali e non sono visibili agli altri utenti.",
"mobile.flagged_posts.empty_title": "Nessuna pubblicazione contrassegnata",
"mobile.help.title": "Aiuto",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "Questo è il primo canale che i colleghi vedranno una volta effettuato l'accesso - usalo per comunicare aggiornamenti che chiunque dovrebbe conoscere.",
"mobile.intro_messages.default_welcome": "Benvenuto a {name}!",
"mobile.intro_messages.DM": "Questo è l'inizio della tua conversazione privata con {teammate}. Messaggi diretti e file condivisi qui non saranno accessibili ad altre persone.",
"mobile.ios.photos_permission_denied_description": "Per salvare foto e video nella libreria, modificare i permessi nelle impostazioni.",
"mobile.ios.photos_permission_denied_description": "Scatta foto e registra video e caricali in Mattermost o salvali sul tuo dispositivo. Aprire le Impostazioni per consentire a Mattermost di Leggere e Scrivere sulla tua fotocamera. ",
"mobile.ios.photos_permission_denied_title": "{applicationName} vorrebbe accedere alla tua fotocamera",
"mobile.join_channel.error": "Impossibile aggiungere il canale {displayName}. Controlla la connessione e riprova.",
"mobile.loading_channels": "Caricamento Canali...",
"mobile.loading_members": "Caricamento Membri...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "Bloccati da {vendor}",
"mobile.managed.exit": "Esci",
"mobile.managed.jailbreak": "Dispositivi con jailbreak considerati non sicuri da {vendor}, per favore uscire dall'app.",
"mobile.managed.not_secured.android": "Questo dispositivo deve essere protetto con un blocco schermo per utilizzare Mattermost.",
"mobile.managed.not_secured.ios": "Questo dispositivo deve essere protetto da un codice per utilizzare Mattermost.\n\nAndare in Impostazioni > Face ID & Codice.",
"mobile.managed.not_secured.ios.touchId": "Questo dispositivo deve essere protetto da un codice per utilizzare Mattermost.\n\nAndare in Impostazioni > Touch ID & Codice.",
"mobile.managed.secured_by": "Verificato da {vendor}",
"mobile.managed.settings": "Vai alle impostazioni",
"mobile.markdown.code.copy_code": "Copia codice",
"mobile.markdown.code.plusMoreLines": "+{count, number} oltre {count, plural, one {line} other {lines}}",
"mobile.markdown.image.too_large": "L'immagine supera la dimensione massima consentita di {maxWidth}x{maxHeight}:",
"mobile.markdown.link.copy_url": "Copia URL",
"mobile.mention.copy_mention": "Copia citazione",
"mobile.message_length.message": "Il tuo messaggio è troppo lungo. Conteggio caratteri attuale: {max}/{count}",
"mobile.message_length.message": "Il tuo messaggio è troppo lungo. Conteggio caratteri attuale: {count}/{max}",
"mobile.message_length.title": "Lunghezza Messaggio",
"mobile.more_dms.add_more": "Puoi aggiungere ancora {remaining, number} utenti",
"mobile.more_dms.cannot_add_more": "Non puoi aggiungere altri utenti",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Impossibile aprire un messaggio diretto con {displayName}. Controlla la connessione e riprova.",
"mobile.open_gm.error": "Impossibile aprire un messaggio di gruppo con questi utenti. Controlla la tua connessione e riprova.",
"mobile.open_unknown_channel.error": "Impossibile entrare nel canale. Resettare la cache e riprovare.",
"mobile.permission_denied_dismiss": "Non consentire",
"mobile.permission_denied_retry": "Impostazioni",
"mobile.photo_library_permission_denied_description": "Per salvare foto e video nella libreria, modificare i permessi nelle impostazioni.",
"mobile.photo_library_permission_denied_title": "{applicationName} vorrebbe accedere alla tua libreria foto",
"mobile.pinned_posts.empty_description": "Blocca gli oggetti importanti tenendo cliccato su un messaggio qualsiasi e selezionando \"Blocca al canale\".",
"mobile.pinned_posts.empty_title": "Nessuna pubblicazione bloccata",
"mobile.post_info.add_reaction": "Aggiungi reazione",
"mobile.post_info.copy_text": "Copia Testo",
"mobile.post_info.flag": "Contrassegna",
"mobile.post_info.mark_unread": "Segna come Non letto",
"mobile.post_info.pin": "Blocca al canale",
"mobile.post_info.reply": "Rispondi",
"mobile.post_info.unflag": "Togli contrassegno",
"mobile.post_info.unpin": "Sblocca dal canale",
"mobile.post_pre_header.flagged": "Contrassegnato",
"mobile.post_pre_header.pinned": "Bloccato",
"mobile.post_pre_header.pinned_flagged": "Bloccato e Contrassegnato",
"mobile.post_textbox.empty.message": "Stai cercando di inviare un messaggio vuoto.\nAssicurati di aver scritto del testo o di aver allegato almeno un file.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Messaggio Vuoto",
"mobile.post_textbox.entire_channel.cancel": "Annulla",
"mobile.post_textbox.entire_channel.confirm": "Conferma",
"mobile.post_textbox.entire_channel.message": "Usando @all o @channel si inviano notifiche a {totalMembers} persone. Sicuro di volerlo fare?",
"mobile.post_textbox.entire_channel.message.with_timezones": "Usando @all oppure @channel si invia una notifica a **{totalMembers} persone** in **{timezones, number} {timezones, plural, one {timezone} other {timezones}}**. Sicuro di voler continuare?",
"mobile.post_textbox.entire_channel.title": "Conferma l'invio delle notifiche a tutto il canale",
"mobile.post_textbox.uploadFailedDesc": "Impossibile caricare alcuni allegati, sicuro di voler pubblicare il messaggio?",
"mobile.post_textbox.uploadFailedTitle": "Allegati non caricati",
"mobile.post.cancel": "Annulla",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Impossibile inviare il messaggio",
"mobile.post.retry": "Aggiorna",
"mobile.posts_view.moreMsg": "Aggiungere più nuovi messaggi sopra",
"mobile.privacy_link": "Politica sulla Privacy",
"mobile.push_notification_reply.button": "Invia",
"mobile.push_notification_reply.placeholder": "Scrivi una risposta...",
"mobile.push_notification_reply.title": "Rispondi",
"mobile.reaction_header.all_emojis": "Tutti",
"mobile.recent_mentions.empty_description": "I messaggi contenti il tuo nome utente e altre parole che scatenano citazioni appariranno qui.",
"mobile.recent_mentions.empty_title": "Nessuna Citazione Recente",
"mobile.rename_channel.display_name_maxLength": "Il nome del canale deve essere al massimo di {maxLength, number} caratteri",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Creato da {creator} il ",
"mobile.routes.channelInfo.delete_channel": "Archivia Canale",
"mobile.routes.channelInfo.favorite": "Preferiti",
"mobile.routes.channelInfo.groupManaged": "I membri sono gestiti dai gruppi collegati",
"mobile.routes.code": "{language} codice",
"mobile.routes.code.noLanguage": "Codice",
"mobile.routes.edit_profile": "Modifica Profilo",
@@ -385,7 +418,7 @@
"mobile.routes.loginOptions": "Selezionatore Login",
"mobile.routes.mfa": "Forza Autenticazione Multi-fattore",
"mobile.routes.selectChannel": "Seleziona Canale",
"mobile.routes.selectTeam": "Seleziona gruppo",
"mobile.routes.selectTeam": "Seleziona squadra",
"mobile.routes.settings": "Impostazioni",
"mobile.routes.sso": "Single SignOn",
"mobile.routes.table": "Tabella",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} Discussione",
"mobile.routes.thread_dm": "Discussione Messaggi Diretti",
"mobile.routes.user_profile": "Profilo",
"mobile.routes.user_profile.edit": "Modifica",
"mobile.routes.user_profile.local_time": "ORA LOCALE",
"mobile.routes.user_profile.send_message": "Invia messaggio",
"mobile.search.after_modifier_description": "per trovare le pubblicazioni successive alla data specificata",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Nessun risultato trovato",
"mobile.search.on_modifier_description": "per trovare le pubblicazioni di una specifica data",
"mobile.search.recent_title": "Ricerche recenti",
"mobile.select_team.join_open": "Gruppi aperti a cui puoi accedere",
"mobile.select_team.no_teams": "Non ci sono gruppi disponibili.",
"mobile.select_team.guest_cant_join_team": "I tuoi account ospite non hanno una squadra o un canale assegnato. Contatta un amministratore.",
"mobile.select_team.join_open": "Squadre aperti a cui puoi accedere",
"mobile.select_team.no_teams": "Non ci sono squadre disponibili.",
"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.session_expired": "Sessione Scaduta: Accesi per continuare a ricevere le notifiche. Le sessioni per {siteName} sono configurate per scadere ogni {daysCount, number} {daysCount, plural, one {day} other {days}}.",
"mobile.set_status.away": "Assente",
"mobile.set_status.dnd": "Non disturbare",
"mobile.set_status.offline": "Offline",
@@ -421,17 +456,30 @@
"mobile.share_extension.error_close": "Chiudi",
"mobile.share_extension.error_message": "Si è verificato un errore durante l'utilizzo dell'estensione di condivisione.",
"mobile.share_extension.error_title": "Errore Estensione",
"mobile.share_extension.team": "Gruppo",
"mobile.share_extension.team": "Squadra",
"mobile.share_extension.too_long_message": "Conteggio caratteri: {count}/{max}",
"mobile.share_extension.too_long_title": "Il messaggio è troppo lungo",
"mobile.sidebar_settings.permanent": "Barra laterale fissa",
"mobile.sidebar_settings.permanent_description": "Mantieni sempre aperta la barra laterale",
"mobile.storage_permission_denied_description": "Carica file su Mattermost. Aprire le Impostazioni per consentire a Mattermost di Leggere e Scrivere sul tuo dispositivo.",
"mobile.storage_permission_denied_title": "{applicationName} vorrebbe accedere ai tuoi file",
"mobile.suggestion.members": "Membri",
"mobile.system_message.channel_archived_message": "{username} ha archiviato il canale.",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} ha modificato il nome visualizzato del canale da: {oldDisplayName} a: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} ha rimosso l'intestazione del canale (era: {oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} ha aggiornato il titolo del canale da: {oldHeader} a: {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} ha aggiornato il titolo del canale a: {newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} ha cancellato lo scopo del canale (era: {oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} ha aggiornato lo scopo del canale da: {oldPurpose} a: {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} ha aggiornato lo scopo del canale a: {newPurpose}",
"mobile.terms_of_service.alert_cancel": "Annulla",
"mobile.terms_of_service.alert_ok": "OK",
"mobile.terms_of_service.alert_retry": "Riprova",
"mobile.terms_of_service.get_terms_error_description": "Assicurarsi di avere una connessione a internet attiva e riprovare. Se il problema persiste, contattare l'Amministratore di Sistema.",
"mobile.terms_of_service.get_terms_error_title": "Impossibile caricare i termini di servizio.",
"mobile.terms_of_service.terms_rejected": "Devi accettare i Termini di Servizio prima di poter accedere a {siteName}. Contattare l'Amministratore di Sistema per maggiori dettagli.",
"mobile.timezone_settings.automatically": "Imposta automaticamente",
"mobile.timezone_settings.manual": "Cambia fuso orario",
"mobile.timezone_settings.select": "Seleziona fuso orario",
"mobile.tos_link": "Termini di Servizio",
"mobile.user_list.deactivated": "Disattivato",
"mobile.user.settings.notifications.email.fifteenMinutes": "Ogni 15 minuti",
"mobile.video_playback.failed_description": "Si è verificato un errore durante la riproduzione del video.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Vuoi modificare il tuo stato a \"Non disturbare\" e disattivare le risposte automatiche?",
"modal.manual_status.auto_responder.message_offline": "Vuoi modificare il tuo stato a \"Non in linea\" e disattivare le risposte automatiche?",
"modal.manual_status.auto_responder.message_online": "Vuoi modificare il tuo stato a \"In linea\" e disattivare le risposte automatiche?",
"more_channels.archivedChannels": "Canali Archiviati",
"more_channels.dropdownTitle": "Mostra",
"more_channels.noMore": "Nessun altro canale in cui entrare",
"more_channels.publicChannels": "Canali Pubblici",
"more_channels.showArchivedChannels": "Visualizza: Canali Archiviati",
"more_channels.showPublicChannels": "Visualizza: Canali Pubblici",
"more_channels.title": "Più Canali",
"msg_typing.areTyping": "{users} e {last} stanno scrivendo...",
"msg_typing.isTyping": "{user} sta scrivendo...",
"navbar_dropdown.logout": "Esci",
"navbar.channel_drawer.button": "Canali e squadre",
"navbar.channel_drawer.hint": "Apri il cassetto dei canali e delle squadre",
"navbar.leave": "Elimina Canale",
"password_form.title": "Reimposta Password",
"password_send.checkInbox": "Per favore controlla la posta in arrivo.",
@@ -458,25 +513,25 @@
"password_send.link": "Se l'account esiste, verrà inviata un'email per reimpostare la password a:",
"password_send.reset": "Reimposta password",
"permalink.error.access": "Permalink appartenente a un messaggio cancellato o a un gruppo in cui non si può accedere.",
"post_body.check_for_out_of_channel_groups_mentions.message": "non sono stati avvisati di questa citazione poiché non sono nel canale. Non possono essere aggiunti al canale poiché non sono membri dei gruppi collegati. Per aggiungerli a questo canale devono essere aggiunti a uno dei gruppi collegati.",
"post_body.check_for_out_of_channel_mentions.link.and": " e ",
"post_body.check_for_out_of_channel_mentions.link.private": "aggiungerli a questo canale privato",
"post_body.check_for_out_of_channel_mentions.link.public": "aggiungerli al canale",
"post_body.check_for_out_of_channel_mentions.message_last": "? Avranno accesso a tutta la cronologia dei messaggi.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "sono stati citati ma non sono nel canale. Vuoi ",
"post_body.check_for_out_of_channel_mentions.message.one": "è stato citato ma non è nel canale. Vuoi ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "non sono stati avvisati di questa citazione poiché non sono nel canale. Vuoi ",
"post_body.check_for_out_of_channel_mentions.message.one": "non sono stati avvisati di questa citazione poiché non sono nel canale. Vuoi ",
"post_body.commentedOn": "Ha commentato il messaggio di {name}: ",
"post_body.deleted": "(messaggio cancellato)",
"post_info.auto_responder": "RISPOSTE AUTOMATICHE",
"post_info.bot": "BOT",
"post_info.del": "Cancella",
"post_info.edit": "Modifica",
"post_info.guest": "OSPITE",
"post_info.message.show_less": "Mostra di meno",
"post_info.message.show_more": "Mostra di più",
"post_info.system": "Sistema",
"post_message_view.edited": "(modificato)",
"posts_view.newMsg": "Nuovo Messaggio",
"rename_channel.handleHolder": "caratteri alfanumerici minuscoli",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Parte di questa discussione può essere stata eliminata a causa di un politica di ritenzione dei dati. Non puoi più rispondere in questa discussione.",
"search_bar.search": "Ricerca",
"search_header.results": "Risultati di Ricerca",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Offline",
"status_dropdown.set_online": "Online",
"status_dropdown.set_ooo": "Fuori sede",
"suggestion.mention.all": "ATTENZIONE: Questo citerà tutti nel canale",
"suggestion.mention.all": "Notifica tutti nel canale",
"suggestion.mention.channel": "Notifica tutti nel canale",
"suggestion.mention.channels": "Miei canali",
"suggestion.mention.here": "Notifica tutti gli utenti online nel canale",
"suggestion.mention.here": "Notifica tutti i membri in linea nel canale",
"suggestion.mention.members": "Membri del canale",
"suggestion.mention.morechannels": "Altri canali",
"suggestion.mention.nonmembers": "Non nel canale",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Accetto",
"terms_of_service.api_error": "Impossibile completare la richiesta. Se il problema persiste contattare l'Amministrazione di Sistema.",
"user.settings.display.clockDisplay": "Visualizza orologio",
"user.settings.display.custom_theme": "Tema personalizzato",
"user.settings.display.militaryClock": "Orologio 24 ore (esempio: 16:00)",
"user.settings.display.normalClock": "Orologio 12 ore (esempio 4:00 PM)",
"user.settings.display.preferTime": "Seleziona come visualizzare l'ora.",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "Immediatamente",
"user.settings.notifications.email.never": "Mai",
"user.settings.notifications.email.send": "Invia notifiche 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.emailInfo": "Invia le notifiche email per citazioni e messaggi diretti quando sei offline o lontano per più di 5 minuti.",
"user.settings.notifications.never": "Mai",
"user.settings.notifications.onlyMentions": "Solo per citazione e messaggi privati",
"user.settings.push_notification.away": "Lontano o offline",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "あなたのチームの全てのコミュニケーションを一箇所で、すぐに検索可能で、どこからでもアクセスできるものにします。",
"about.teamEditiont0": "Team Edition",
"about.teamEditiont1": "Enterprise Edition",
"about.title": "Mattermostについて",
"about.title": "{appTitle}について",
"announcment_banner.dont_show_again": "二度と表示しない",
"api.channel.add_member.added": "{addedUsername} は {username} によってチャンネルに追加されました。",
"archivedChannelMessage": "**アーカイブされたチャンネル**を閲覧しています。新しいメッセージは投稿できません。",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "例: \"バグや改善を取りまとめるチャンネル\"",
"channel_notifications.ignoreChannelMentions.settings": "@channel、@here、@allを無視する",
"channel_notifications.muteChannel.settings": "ミュートチャンネル",
"channel.channelHasGuests": "このチャンネルにはゲストがいます",
"channel.hasGuests": "このグループメッセージにはゲストがいます",
"channel.isGuest": "このユーザーはゲストです",
"combined_system_message.added_to_channel.many_expanded": "{users} と {lastUser} は {actor} によって **チャンネルに追加されました**。",
"combined_system_message.added_to_channel.one": "{firstUser} は {actor} によって **チャンネルに追加されました**。",
"combined_system_message.added_to_channel.one_you": "あなたは {actor} によって **チャンネルに追加されました**。",
@@ -70,21 +73,21 @@
"combined_system_message.you": "あなた",
"create_comment.addComment": "コメントを追加する...",
"create_post.deactivated": "無効化されたユーザーのいるアーカイブされたチャンネルを見ています。",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "{channelDisplayName}へ投稿する",
"date_separator.today": "今日",
"date_separator.yesterday": "昨日",
"edit_post.editPost": "投稿を編集する...",
"edit_post.save": "保存する",
"error.team_not_found.title": "チームが見つかりません",
"file_attachment.download": "ダウンロードする",
"file_upload.fileAbove": "{max}MBを越えるファイルはアップロードできません: {filename}",
"get_post_link_modal.title": "パーマリンクをコピーする",
"integrations.add": "追加する",
"intro_messages.anyMember": " このチャンネルには誰でも参加して投稿を閲覧することができます。",
"intro_messages.beginning": "{name}のトップ",
"intro_messages.channel": "チャンネル",
"intro_messages.creator": "ここは{name} {type}のトップです。{date}に{creator}によって作成されました。",
"intro_messages.group": "非公開チャンネル",
"intro_messages.creator": "ここは {name} チャンネルのトップです。{date}に{creator}によって作成されました。",
"intro_messages.creatorPrivate": "ここは非公開チャンネル {name} のトップです。{date}に{creator}によって作成されました。",
"intro_messages.group_message": "チームメイトとのグループメッセージの履歴の最初です。メッセージとそこで共有されているファイルは、この領域の外のユーザーからは見ることができません。",
"intro_messages.noCreator": "ここは{name} {type}のトップ画面です。{date}に作成されました。",
"intro_messages.noCreator": "ここは {name} チャンネルのトップです。{date}に作成されました。",
"intro_messages.onlyInvited": " 招待されたメンバーだけがこの非公開チャンネルを見ることができます。",
"last_users_message.added_to_channel.type": "が {actor} によって **チャンネルに追加されました**。",
"last_users_message.added_to_team.type": "が {actor} によって **チームに追加されました**。",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "スレッド内のあなたについての投稿",
"mobile.account_notifications.threads_start": "自分で開始したスレッド",
"mobile.account_notifications.threads_start_participate": "開始もしくは参加したスレッド",
"mobile.account.settings.cancel": "キャンセル",
"mobile.account.settings.save": "保存する",
"mobile.action_menu.select": "オプションを選択してください",
"mobile.advanced_settings.clockDisplay": "時刻表示",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "ドキュメントとデータの削除",
"mobile.advanced_settings.timezone": "タイムゾーン",
"mobile.advanced_settings.title": "詳細設定",
"mobile.android.camera_permission_denied_description": "カメラで写真やビデオを撮影するために権限設定を変更してください。",
"mobile.android.camera_permission_denied_title": "カメラへのアクセスを要求しています",
"mobile.android.permission_denied_dismiss": "破棄",
"mobile.android.permission_denied_retry": "権限を設定する",
"mobile.android.photos_permission_denied_description": "ライブラリから画像をアップロードするには権限設定を変更してください。",
"mobile.android.photos_permission_denied_title": "フォトライブラリーへのアクセスを要求しています",
"mobile.android.storage_permission_denied_description": "Androidデバイスから画像をアップロードするには権限設定を変更してください。",
"mobile.android.storage_permission_denied_title": "ファイルストレージへのアクセスを要求しています",
"mobile.android.videos_permission_denied_description": "ライブラリからビデオをアップロードするには権限設定を変更してください。",
"mobile.android.videos_permission_denied_title": "ビデオライブラリーへのアクセスを要求しています",
"mobile.alert_dialog.alertCancel": "キャンセル",
"mobile.android.photos_permission_denied_description": "Mattermostインスタンスに写真をアップロードし、それらをあなたのデバイスに保存します。あなたのフォトライブラリへのアクセスを許可するには、設定を開いてください。",
"mobile.android.photos_permission_denied_title": "{applicationName} があなたの写真へアクセスしようとしています",
"mobile.android.videos_permission_denied_description": "Mattermostインスタンスへ動画をアップロードし、それらをあなたのデバイスに保存します。あなたのビデオライブラリのアクセスを許可するには、設定を開いてください。",
"mobile.android.videos_permission_denied_title": "{applicationName} があなたの動画へアクセスしようとしています",
"mobile.announcement_banner.title": "アナウンス",
"mobile.authentication_error.message": "Mattermostでエラーが発生しました。新しいセッションを開始するため再度認証してください。",
"mobile.authentication_error.title": "認証エラー",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "日、月、火、水、木、金、土",
"mobile.calendar.monthNames": "1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月",
"mobile.calendar.monthNamesShort": "1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月",
"mobile.camera_photo_permission_denied_description": "写真を撮影し、それらをMattermostインスタンスへアップロードし、デバイスへ保存します。カメラへのアクセスを許可するには、設定を開いてください。",
"mobile.camera_photo_permission_denied_title": "{applicationName} があなたのカメラへアクセスしようとしています",
"mobile.camera_video_permission_denied_description": "動画を撮影し、それらをMattermostインスタンスへアップロードし、デバイスへ保存します。カメラへのアクセスを許可するには、設定を開いてください。",
"mobile.camera_video_permission_denied_title": "{applicationName} があなたのカメラへアクセスしようとしています",
"mobile.channel_drawer.search": "移動する...",
"mobile.channel_info.alertMessageConvertChannel": "{displayName} を非公開チャンネルに変更する際、過去の履歴やメンバーシップは保持されます。公開されていたファイルは、同じリンクで誰でもアクセス可能なままになります。非公開チャンネルへのメンバー追加は招待のみです。\n\nこの変更を取り消すことはできません。\n\n本当に {displayName} を非公開チャンネルに変更しますか?",
"mobile.channel_info.alertMessageDeleteChannel": "{term} {name} を本当にアーカイブしますか?",
"mobile.channel_info.alertMessageLeaveChannel": "{term} {name} から本当に脱退しますか?",
"mobile.channel_info.alertNo": "いいえ",
"mobile.channel_info.alertTitleConvertChannel": "{displayName} を非公開チャンネルに変更しますか?",
"mobile.channel_info.alertTitleDeleteChannel": "アーカイブ {term}",
"mobile.channel_info.alertTitleLeaveChannel": "{term}から脱退する",
"mobile.channel_info.alertYes": "はい",
"mobile.channel_info.convert": "非公開チャンネルに変更する",
"mobile.channel_info.convert_failed": "{displayName} を非公開チャンネルに変更できませんでした。",
"mobile.channel_info.convert_success": "{displayName} は非公開チャンネルになりました。",
"mobile.channel_info.copy_header": "ヘッダーをコピーする",
"mobile.channel_info.copy_purpose": "目的をコピーする",
"mobile.channel_info.delete_failed": "チャンネル {displayName} をアーカイブできませんでした。接続を確認し、もう一度試してみてください。",
"mobile.channel_info.edit": "チャンネルを編集する",
"mobile.channel_info.privateChannel": "非公開チャンネル",
"mobile.channel_info.publicChannel": "公開チャンネル",
"mobile.channel_list.alertNo": "いいえ",
"mobile.channel_list.alertYes": "はい",
"mobile.channel_list.archived": "アーカイブ",
"mobile.channel_list.channels": "チャンネル",
"mobile.channel_list.closeDM": "ダイレクトメッセージを閉じる",
"mobile.channel_list.closeGM": "グループメッセージを閉じる",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "新しい公開チャンネル",
"mobile.create_post.read_only": "このチャンネルは読み取り専用です",
"mobile.custom_list.no_results": "該当するものはありません",
"mobile.display_settings.sidebar": "サイドバー",
"mobile.display_settings.theme": "テーマ",
"mobile.document_preview.failed_description": "文書を開く際にエラーが発生しました。{fileType}ビューワーがインストールされていることを確認し、再度実行してください。\n",
"mobile.document_preview.failed_title": "文書を開けませんでした",
@@ -223,7 +233,8 @@
"mobile.drawer.teamsTitle": "チーム",
"mobile.edit_channel": "保存する",
"mobile.edit_post.title": "メッセージ編集中",
"mobile.emoji_picker.activity": "アクティビティ",
"mobile.edit_profile.remove_profile_photo": "画像を削除する",
"mobile.emoji_picker.activity": "アクティビティー",
"mobile.emoji_picker.custom": "カスタム",
"mobile.emoji_picker.flags": "国旗",
"mobile.emoji_picker.foods": "食べ物",
@@ -234,7 +245,7 @@
"mobile.emoji_picker.recent": "最近使用したもの",
"mobile.emoji_picker.symbols": "シンボル",
"mobile.error_handler.button": "再起動",
"mobile.error_handler.description": "\nアプリケーションを再開するために再起動をクリックしてください。再起動した後、設定メニューから問題を報告してください。\n",
"mobile.error_handler.description": "\n再起動をタップしてアプリを再起動してください。再起動した後、設定メニューから問題を報告することができます。\n",
"mobile.error_handler.title": "予期しないエラーが発生しました。",
"mobile.extension.authentication_required": "認証エラー: このアプリを使用するには、まずログインしてください。",
"mobile.extension.file_error": "共有ファイルに関するエラーが発生しました。\n再度実行してみてください。",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Mattermostで共有される添付ファイルは {size} 以下でなくてはなりません。",
"mobile.extension.permission": "ファイルを共有するためにMattermostがデバイスへのアクセスを要求しています。",
"mobile.extension.title": "Mattermostで共有する",
"mobile.failed_network_action.description": "インターネット接続に問題があるようです。接続を確認し、再度実行してください。",
"mobile.failed_network_action.retry": "再実行",
"mobile.failed_network_action.shortDescription": "接続が有効であることを確認し、再度実行してください。",
"mobile.failed_network_action.shortDescription": "インターネットへ接続した際か {refresh} の際にメッセージが読み込まれます。",
"mobile.failed_network_action.title": "インターネット未接続",
"mobile.file_upload.browse": "参照",
"mobile.file_upload.camera_photo": "写真を撮る",
"mobile.file_upload.camera_video": "動画を撮る",
"mobile.file_upload.library": "フォトライブラリー",
"mobile.file_upload.max_warning": "最大5ファイルまでアップロードできます。",
"mobile.file_upload.video": "ビデオライブラリー",
"mobile.file_upload.unsupportedMimeType": "以下のMIMEタイプを持つファイルのみアップロードできます:\n{mimeTypes}",
"mobile.file_upload.video": "動画ライブラリー",
"mobile.files_paste.error_description": "ファイルをペーストする際にエラーが発生しました。再度実行してください。",
"mobile.files_paste.error_dismiss": "破棄",
"mobile.files_paste.error_title": "ペーストに失敗しました",
"mobile.flagged_posts.empty_description": "フラグはメッセージに追跡のためのマークを付ける一つの方法です。あなたのフラグは個人のもので、他のユーザーからは見えません。",
"mobile.flagged_posts.empty_title": "フラグの立てられた投稿はありません",
"mobile.help.title": "ヘルプ",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "ここはチームメイトが利用登録した際に最初に見るチャンネルです - みんなが知るべき情報を投稿してください。",
"mobile.intro_messages.default_welcome": "{name}へようこそ!",
"mobile.intro_messages.DM": "{teammate}とのダイレクトメッセージの履歴の最初です。ダイレクトメッセージとそこで共有されているファイルは、この領域の外のユーザーからは見ることができません。",
"mobile.ios.photos_permission_denied_description": "写真やビデオを保存するために権限設定を変更してください。",
"mobile.ios.photos_permission_denied_description": "Mattermostインスタンスへ写真と動画をアップロードし、それらをあなたのデバイスへ保存します。フォトライブラリとビデオライブラリへのアクセスを許可するには、設定を開いてください。",
"mobile.ios.photos_permission_denied_title": "{applicationName} があなたの写真へアクセスしようとしています",
"mobile.join_channel.error": "チャンネル {displayName} に参加できませんでした。接続を確認し、もう一度試してみてください。",
"mobile.loading_channels": "チャンネルをロードしています...",
"mobile.loading_members": "メンバーをロードしています...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "{vendor}によりブロックされました",
"mobile.managed.exit": "終了",
"mobile.managed.jailbreak": "Jailbrokenデバイスは{vendor}から信頼されていません。アプリを終了してください。",
"mobile.managed.not_secured.android": "このデバイスでMattermostを使うにはスクリーンロックを設定する必要があります。",
"mobile.managed.not_secured.ios": "このデバイスでMattermostを使うにはパスコードを設定する必要があります。\n\n設定 > Face IDとパスコード から設定してください。",
"mobile.managed.not_secured.ios.touchId": "このデバイスでMattermostを使うにはパスコードを設定する必要があります。\n\n設定 > Touch IDとパスコード から設定してください。",
"mobile.managed.secured_by": "{vendor}により保護されました",
"mobile.managed.settings": "設定へ移動する",
"mobile.markdown.code.copy_code": "コードのコピー",
"mobile.markdown.code.plusMoreLines": "あと {count, number} {count, plural, one {line} other {lines}} あります",
"mobile.markdown.image.too_large": "画像が {maxWidth} x {maxHeight} の上限を超えています:",
"mobile.markdown.link.copy_url": "URL のコピー",
"mobile.mention.copy_mention": "あなたについての投稿のコピー",
"mobile.message_length.message": "メッセージが長すぎます。現在の文字数: {max}/{count}",
"mobile.message_length.message": "メッセージが長すぎます。現在の文字数: {count}/{max}",
"mobile.message_length.title": "メッセージの長さ",
"mobile.more_dms.add_more": "あと{remaining, number}人のユーザーを追加できます",
"mobile.more_dms.cannot_add_more": "これ以上ユーザーを追加できません",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "{displayName} とのダイレクトメッセージを開くことができませんでした。接続を確認し、もう一度試してみてください。",
"mobile.open_gm.error": "そのユーザーとのダイレクトメッセージを開くことができませんでした。接続を確認し、もう一度試してみてください。",
"mobile.open_unknown_channel.error": "チャンネルに参加できませんでした。キャッシュをリセットし、再度実行してください。",
"mobile.permission_denied_dismiss": "許可しない",
"mobile.permission_denied_retry": "設定",
"mobile.photo_library_permission_denied_description": "あなたのライブラリへ写真や動画を保存するために、権限設定を変更してください。",
"mobile.photo_library_permission_denied_title": "{applicationName} があなたのフォトライブラリへアクセスしようとしています",
"mobile.pinned_posts.empty_description": "メッセージを押し続けると出現するメニューで \"チャンネルにピン留め\" するを選択することで重要な項目をピン留めできます。",
"mobile.pinned_posts.empty_title": "ピン留めされた投稿がありません",
"mobile.post_info.add_reaction": "リアクションを追加する",
"mobile.post_info.copy_text": "テキストをコピーする",
"mobile.post_info.flag": "フラグ",
"mobile.post_info.mark_unread": "未読としてマークする",
"mobile.post_info.pin": "チャンネルにピン留めする",
"mobile.post_info.reply": "返信する",
"mobile.post_info.unflag": "フラグを消す",
"mobile.post_info.unpin": "チャンネルへのピン留めをやめる",
"mobile.post_pre_header.flagged": "フラグ済み",
"mobile.post_pre_header.pinned": "ピン留め済み",
"mobile.post_pre_header.pinned_flagged": "ピン留めとフラグ済み",
"mobile.post_textbox.empty.message": "空のメッセージを送信しようとしています。\n何かメッセージか少なくとも一つの添付ファイルがあることを確認してください。",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "空のメッセージ",
"mobile.post_textbox.entire_channel.cancel": "キャンセル",
"mobile.post_textbox.entire_channel.confirm": "確認",
"mobile.post_textbox.entire_channel.message": "@allや@channelを利用すると {totalMembers}人 へ通知を送信することになります。本当にこの操作を行いますか?",
"mobile.post_textbox.entire_channel.message.with_timezones": "@allや@channelを利用すると **{timezones, number} {timezones, plural, one {タイムゾーン} other {タイムゾーン}}** の **{totalMembers}人** へ通知を送信することになります。本当にこの操作を行いますか?",
"mobile.post_textbox.entire_channel.title": "チャンネル全体へ通知を行う",
"mobile.post_textbox.uploadFailedDesc": "サーバーへの添付ファイルのアップロードが失敗しました。メッセージを投稿しますか?",
"mobile.post_textbox.uploadFailedTitle": "添付エラー",
"mobile.post.cancel": "キャンセル",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "メッセージを送信できませんでした",
"mobile.post.retry": "更新",
"mobile.posts_view.moreMsg": "さらに新しいメッセージがあります",
"mobile.privacy_link": "プライバシーポリシー",
"mobile.push_notification_reply.button": "送信する",
"mobile.push_notification_reply.placeholder": "返信を記述してください...",
"mobile.push_notification_reply.title": "返信する",
"mobile.reaction_header.all_emojis": "すべて",
"mobile.recent_mentions.empty_description": "あなたのユーザー名やあなたについての投稿となる単語が含まれた投稿は、ここに表示されます。",
"mobile.recent_mentions.empty_title": "あなたについての投稿はありません",
"mobile.rename_channel.display_name_maxLength": "チャンネル名は {maxLength, number} 文字未満でなくてはなりません",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "{creator} によって作成 ",
"mobile.routes.channelInfo.delete_channel": "チャンネルをアーカイブする",
"mobile.routes.channelInfo.favorite": "お気に入り",
"mobile.routes.channelInfo.groupManaged": "メンバーはリンクされたグループにより管理されています",
"mobile.routes.code": "{language} コード",
"mobile.routes.code.noLanguage": "コード",
"mobile.routes.edit_profile": "プロフィールを編集する",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} スレッド",
"mobile.routes.thread_dm": "ダイレクトメッセージスレッド",
"mobile.routes.user_profile": "プロフィール",
"mobile.routes.user_profile.edit": "編集する",
"mobile.routes.user_profile.local_time": "ローカルタイム",
"mobile.routes.user_profile.send_message": "メッセージを送信する",
"mobile.search.after_modifier_description": "指定された日付以降の投稿を探す",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "結果が見付かりません",
"mobile.search.on_modifier_description": "指定された日付の投稿を探す",
"mobile.search.recent_title": "最近検索したエントリ",
"mobile.select_team.guest_cant_join_team": "あなたのゲストアカウントにはどのチームにもチャンネルにもアサインされていません。管理者に連絡してください。",
"mobile.select_team.join_open": "参加可能なチームを開く",
"mobile.select_team.no_teams": "あなたが参加できるチームはありません。",
"mobile.server_upgrade.button": "OK",
"mobile.server_upgrade.description": "\nMattermostアプリケーションを利用するにはサーバーをアップグレードする必要があります。詳細についてはシステム管理者に問い合わせてください。\n",
"mobile.server_upgrade.title": "サーバーのアップグレードが必要です",
"mobile.server_url.invalid_format": "URLはhttp://またはhttps://から始まらなくてはいけません",
"mobile.session_expired": "セッション有効期限切れ: 通知を受け取るためにログインしてください。",
"mobile.session_expired": "セッション期限切れ: 通知を受け取るにログインしてください。{siteName} へのセッションは {daysCount, number} {daysCount, plural, one {日} other {日}} 毎に期限切れになるよう設定されています。",
"mobile.set_status.away": "離席中",
"mobile.set_status.dnd": "取り込み中",
"mobile.set_status.offline": "オフライン",
@@ -422,34 +457,54 @@
"mobile.share_extension.error_message": "共有の拡張機能を使用する際にエラーが発生しました。",
"mobile.share_extension.error_title": "拡張機能エラー",
"mobile.share_extension.team": "チーム",
"mobile.share_extension.too_long_message": "文字数: {count}/{max}",
"mobile.share_extension.too_long_title": "メッセージが長すぎます",
"mobile.sidebar_settings.permanent": "サイドバーを常に表示する",
"mobile.sidebar_settings.permanent_description": "サイドバーを常に開いた状態にします",
"mobile.storage_permission_denied_description": "Mattermostインスタンスにファイルをアップロードします。このデバイスのファイルへのアクセスを許可するには、設定を開いてください。",
"mobile.storage_permission_denied_title": "{applicationName} があなたのファイルへアクセスしようとしています",
"mobile.suggestion.members": "メンバー",
"mobile.system_message.channel_archived_message": "{username} がチャンネルをアーカイブしました。",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} がチャンネル表示名を {oldDisplayName} から {newDisplayName} に更新しました。",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} がチャンネルヘッダー({oldHeader})を削除しました",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username}がチャンネルヘッダーを {oldHeader} から {newHeader} へ更新しました",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} がチャンネルヘッダーを {newHeader} に更新しました",
"mobile.system_message.update_channel_purpose_message.removed": "{username} がチャンネルの目的({oldPurpose})を削除しました",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} がチャンネルの目的を {oldPurpose} から {newPurpose} へ更新しました",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} がチャンネルの目的を {newPurpose} へ更新しました",
"mobile.terms_of_service.alert_cancel": "キャンセル",
"mobile.terms_of_service.alert_ok": "OK",
"mobile.terms_of_service.alert_retry": "再実行",
"mobile.terms_of_service.get_terms_error_description": "有効なインターネット接続があるか確認し、再度実行してください。この問題が続くようならば、システム管理者に連絡してください。",
"mobile.terms_of_service.get_terms_error_title": "利用規約を読み込めませんでした。",
"mobile.terms_of_service.terms_rejected": "{siteName} にアクセスする前に利用規約に同意する必要があります。詳しくはシステム管理者に問い合わせてください。",
"mobile.timezone_settings.automatically": "自動検出",
"mobile.timezone_settings.manual": "タイムゾーンを変更",
"mobile.timezone_settings.select": "タイムゾーンを選択",
"mobile.tos_link": "利用規約",
"mobile.user_list.deactivated": "無効にする",
"mobile.user.settings.notifications.email.fifteenMinutes": "15 分毎",
"mobile.video_playback.failed_description": "動画を再生する際にエラーが発生しました。\n",
"mobile.video_playback.failed_title": "動画の再生に失敗しました",
"mobile.video.save_error_message": "動画ファイルを保存するには、まずダウンロードする必要があります。",
"mobile.video.save_error_title": "動画保存エラー",
"mobile.youtube_playback_error.description": "YouTubeビデオを再生する際にエラーが発生しました。\n詳細: {details}",
"mobile.youtube_playback_error.description": "YouTube動画を再生する際にエラーが発生しました。\n詳細: {details}",
"mobile.youtube_playback_error.title": "YouTube再生エラー",
"modal.manual_status.auto_responder.message_": "あなたのステータスを \"{status}\" に変更し、自動返信を無効化してもよろしいですか?",
"modal.manual_status.auto_responder.message_away": "あなたのステータスを \"離席中\" に変更し、自動返信を無効化してもよろしいですか?",
"modal.manual_status.auto_responder.message_dnd": "あなたのステータスを \"取り込み中\" に変更し、自動返信を無効化してもよろしいですか?",
"modal.manual_status.auto_responder.message_offline": "あなたのステータスを \"オフライン\" に変更し、自動返信を無効化してもよろしいですか?",
"modal.manual_status.auto_responder.message_online": "あなたのステータスを \"オンライン\" に変更し、自動返信を無効化してもよろしいですか?",
"more_channels.archivedChannels": "アーカイブチャンネル",
"more_channels.dropdownTitle": "表示する",
"more_channels.noMore": "参加できるチャンネルがありません",
"more_channels.publicChannels": "公開チャンネル",
"more_channels.showArchivedChannels": "表示: アーカイブチャンネル",
"more_channels.showPublicChannels": "表示: 公開チャンネル",
"more_channels.title": "他のチャンネル",
"msg_typing.areTyping": "{users}と{last}が入力しています...",
"msg_typing.isTyping": "{user}が入力しています...",
"navbar_dropdown.logout": "ログアウト",
"navbar.channel_drawer.button": "チャンネルとチーム",
"navbar.channel_drawer.hint": "チャンネルとチームのドロワーメニューを開く",
"navbar.leave": "チャンネルから脱退する",
"password_form.title": "パスワードの初期化",
"password_send.checkInbox": "受信ボックスを確認してください。",
@@ -458,25 +513,25 @@
"password_send.link": "アカウントが存在する場合、パスワード初期化メールが送信されます:",
"password_send.reset": "自分のパスワードを初期化する",
"permalink.error.access": "削除されたメッセージまたはアクセス権限のないチャンネルへのパーマリンクです。",
"post_body.check_for_out_of_channel_groups_mentions.message": "彼らはチャンネルにいないため、このメンションによる通知は行われませんでした。また、彼らはリンクされたグループのメンバーではないため、チャンネルに追加することもできません。彼らをこのチャンネルに追加するには、リンクされたグループに追加しなければなりません。",
"post_body.check_for_out_of_channel_mentions.link.and": " と ",
"post_body.check_for_out_of_channel_mentions.link.private": "彼らを非公開チャンネルに追加しますか",
"post_body.check_for_out_of_channel_mentions.link.public": "彼らをチャンネルに追加しますか",
"post_body.check_for_out_of_channel_mentions.message_last": "? 彼らは全ての会話履歴にアクセスできます。",
"post_body.check_for_out_of_channel_mentions.message.multiple": "についての投稿が行われましたが、彼らはチャンネルにいません。 ",
"post_body.check_for_out_of_channel_mentions.message.one": "についての投稿が行われましたが、彼はチャンネルにいません。 ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "彼らはチャンネルにいないため、このメンションによる通知は行われませんでした。以下の対処を行いますか? ",
"post_body.check_for_out_of_channel_mentions.message.one": "彼らはチャンネルにいないため、このメンションによる通知は行われませんでした。以下の対処を行いますか? ",
"post_body.commentedOn": "{name}のメッセージへのコメント: ",
"post_body.deleted": "(メッセージは削除されています)",
"post_info.auto_responder": "自動返信",
"post_info.bot": "BOT",
"post_info.del": "削除する",
"post_info.edit": "編集する",
"post_info.guest": "ゲスト",
"post_info.message.show_less": "表示を少なくする",
"post_info.message.show_more": "さらに表示",
"post_info.system": "システム",
"post_message_view.edited": "(編集済)",
"posts_view.newMsg": "新しいメッセージ",
"rename_channel.handleHolder": "小文字の英数字にしてください",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "このスレッドの一部はデータ保持ポリシーによって削除されました。このスレッドに返信することはできません。",
"search_bar.search": "検索する",
"search_header.results": "検索結果",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "オフライン",
"status_dropdown.set_online": "オンライン",
"status_dropdown.set_ooo": "外出中",
"suggestion.mention.all": "注意: チャンネルの全員に対して投稿します",
"suggestion.mention.channel": "チャンネルの全員に通知します。",
"suggestion.mention.all": "このチャンネルの全員に通知",
"suggestion.mention.channel": "このチャンネルの全員に通知",
"suggestion.mention.channels": "自分のチャンネル",
"suggestion.mention.here": "チャンネルのオンラインな全員へ通知します",
"suggestion.mention.here": "このチャンネルの現在オンラインの人に通知",
"suggestion.mention.members": "チャンネルのメンバー",
"suggestion.mention.morechannels": "他のチャンネル",
"suggestion.mention.nonmembers": "チャンネルにいません",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "同意する",
"terms_of_service.api_error": "リクエストを完了できませんでした。問題が続くようならば、システム管理者に連絡してください。",
"user.settings.display.clockDisplay": "時計表示",
"user.settings.display.custom_theme": "カスタムテーマ",
"user.settings.display.militaryClock": "時計の24時間表示(例: 16:00)",
"user.settings.display.normalClock": "時計の12時間表示(例: 4:00 PM)",
"user.settings.display.preferTime": "時刻の表示形式を選択します。",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "すぐに",
"user.settings.notifications.email.never": "通知しない",
"user.settings.notifications.email.send": "電子メール通知を送信する",
"user.settings.notifications.emailInfo": "あなたについての投稿とダイレクトメッセージに関して、電子メール通知を送ります。{siteName}から5分間以上離れている場合に送信されます。",
"user.settings.notifications.emailInfo": "あなたについての投稿とダイレクトメッセージに関して、5分間以上オフラインまたは離席中の場合に電子メール通知が送信されます。",
"user.settings.notifications.never": "通知しない",
"user.settings.notifications.onlyMentions": "あなたについての投稿とダイレクトメッセージに関してのみ",
"user.settings.push_notification.away": "離席中もしくはオフライン",

View File

@@ -9,8 +9,8 @@
"about.teamEditionSt": "모든 팀 커뮤니케이션을 한 곳에 모아 빠르게 찾고, 공유하세요.",
"about.teamEditiont0": "팀 에디션",
"about.teamEditiont1": "엔터프라이즈 에디션",
"about.title": "Mattermost에 대하여",
"announcment_banner.dont_show_again": "Don't show again",
"about.title": "{appTitle} 정보",
"announcment_banner.dont_show_again": "다시 보지 않기",
"api.channel.add_member.added": "{username}님이 {addedUsername}님을 채널에 초대했습니다.",
"archivedChannelMessage": "**보존 처리 된 채널**을 보고계십니다. 새 메시지를 게시 할 수 없습니다.",
"center_panel.archived.closeChannel": "채널 닫기",
@@ -33,16 +33,19 @@
"channel_modal.optional": "(선택사항)",
"channel_modal.purpose": "설명",
"channel_modal.purposeEx": "예시: \"버그 수정과 품질 개선을 위한 채널입니다.\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
"channel_notifications.ignoreChannelMentions.settings": "@channel, @here, @all 알림 끄기",
"channel_notifications.muteChannel.settings": "채널 알림 끄기",
"channel.channelHasGuests": "This channel has guests",
"channel.hasGuests": "This group message has guests",
"channel.isGuest": "This person is a guest",
"combined_system_message.added_to_channel.many_expanded": "{users}님과 {lastUser}님이 {actor}님에 의해 **채널에 추가되었습니다**.",
"combined_system_message.added_to_channel.one": "{firstUser}님이 {actor}님에 의해 **채널에 추가되었습니다**.",
"combined_system_message.added_to_channel.one_you": "{actor}님에 의해 당신 **채널에 추가되었습니다**.",
"combined_system_message.added_to_channel.two": "{firstUser}님과 {secondUser}님이 {actor}님에 의해 **채널에 추가되었습니다**.",
"combined_system_message.added_to_team.many_expanded": "{users}님과 {lastUser}님이 {actor}님에 의해 **팀에 추가되었습니다**.",
"combined_system_message.added_to_team.one": "{firstUser}님이 {actor}님에 의해 **팀에 추가되었습니다**.",
"combined_system_message.added_to_team.one_you": "{actor}님에 의해 당신 **팀에 추가되었습니다**.",
"combined_system_message.added_to_team.two": "{firstUser}님과 {secondUser}님이 {actor}님에 의해 **팀에 추가되었습니다**.",
"combined_system_message.added_to_channel.one_you": "{actor}님 당신 **채널에 추가하였습니다**.",
"combined_system_message.added_to_channel.two": "{actor}님이 {firstUser}님과 {secondUser}님 **채널에 추가하였습니다**.",
"combined_system_message.added_to_team.many_expanded": "{actor}님이 {users}님과 {lastUser}님 **팀에 추가하였습니다**.",
"combined_system_message.added_to_team.one": "{actor}님이 {firstUser}을 **팀에 추가하였습니다**.",
"combined_system_message.added_to_team.one_you": "{actor}님 당신 **팀에 추가하였습니다**.",
"combined_system_message.added_to_team.two": "{actor}님이 {firstUser}님과 {secondUser}님 **팀에 추가하였습니다**.",
"combined_system_message.joined_channel.many_expanded": "{users}님과 {lastUser}님이 **채널에 들어왔습니다**.",
"combined_system_message.joined_channel.one": "{firstUser}님이 **채널에 들어왔습니다**.",
"combined_system_message.joined_channel.one_you": "**채널에 들어왔습니다**.",
@@ -70,21 +73,21 @@
"combined_system_message.you": "당신",
"create_comment.addComment": "답글 달기...",
"create_post.deactivated": "You are viewing an archived channel with a deactivated user.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "{channelDisplayName}에 글쓰기",
"date_separator.today": "오늘",
"date_separator.yesterday": "Yesterday",
"edit_post.editPost": "글 편집하기...",
"edit_post.save": "저장",
"error.team_not_found.title": "Team Not Found",
"file_attachment.download": "다운로드",
"file_upload.fileAbove": "File above {max}MB cannot be uploaded: {filename}",
"get_post_link_modal.title": "바로가기 링크 복사",
"integrations.add": "추가",
"intro_messages.anyMember": " 모든 회원이 채널에 가입하고 글을 읽을 수 있습니다.",
"intro_messages.beginning": "{name}의 시작",
"intro_messages.channel": "채널",
"intro_messages.creator": "이것은 {date}에 {creator} 님이 작성한 {name} {type}의 시작입니다.",
"intro_messages.group": "비공개 채널",
"intro_messages.creator": "이것은 {date}에 {creator} 님이 작성한 {name} 채널의 시작입니다.",
"intro_messages.creatorPrivate": "{date}에 {name} 비공개 채널을 {creator} 님이 생성하였습니다.",
"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.",
"intro_messages.noCreator": "{name} {type}입니다. 만들어진 날짜: {date}.",
"intro_messages.noCreator": "이것은 {date}에 생성된 {name} 채널의 시작입니다.",
"intro_messages.onlyInvited": " 초대받은 회원만 이 비공개 그룹을 볼 수 있습니다.",
"last_users_message.added_to_channel.type": "{actor}님이 **채널에 추가했습니다**.",
"last_users_message.added_to_team.type": "{actor}님이 **팀에 추가했습니다**.",
@@ -96,7 +99,7 @@
"last_users_message.others": "{numOthers} 명이 ",
"last_users_message.removed_from_channel.type": "**채널에서 삭제되었습니다**.",
"last_users_message.removed_from_team.type": "**팀에서 삭제되었습니다**.",
"login_mfa.enterToken": "To complete the sign in process, please enter a token from your smartphone's authenticator",
"login_mfa.enterToken": "인증을 완료하시려면 스마트폰앱 인증앱에 표시된 토큰정보를 입력해주세요",
"login_mfa.token": "MFA 토큰",
"login_mfa.tokenReq": "MFA 토큰을 입력하세요.",
"login.email": "이메일",
@@ -118,111 +121,119 @@
"login.username": "사용자명",
"login.userNotFound": "입력된 계정과 일치하는 사용자 정보를 찾을 수 없습니다.",
"mobile.about.appVersion": "App Version: {version} (Build {number})",
"mobile.about.copyright": "Copyright 2015-{currentYear} Mattermost, Inc. All rights reserved",
"mobile.about.copyright": "저작권 2015-{currentYear} Mattermost, Inc. 무단 전쟁와 무단 복제를 금합니다.",
"mobile.about.database": "데이터베이스: {type}",
"mobile.about.licensed": "다음 사용자에게 허가되었습니다: {company}",
"mobile.about.powered_by": "{site} is powered by Mattermost",
"mobile.about.serverVersion": "Server Version: {version} (Build {number})",
"mobile.about.serverVersionNoBuild": "Server Version: {version}",
"mobile.account_notifications.reply.header": "댓글에 대한 알림 설정",
"mobile.account_notifications.threads_mentions": "Mentions in threads",
"mobile.account_notifications.threads_mentions": "쓰레드 멘션만",
"mobile.account_notifications.threads_start": "등록한 모든 스레드의 답변에 대해 알림",
"mobile.account_notifications.threads_start_participate": "등록하거나 답변했던 모든 스레드의 답변에 대해 알림",
"mobile.account.settings.cancel": "취소",
"mobile.account.settings.save": "저장",
"mobile.action_menu.select": "Select an option",
"mobile.advanced_settings.clockDisplay": "시간 표시",
"mobile.advanced_settings.delete": "삭제",
"mobile.advanced_settings.delete_message": "\nThis will reset all offline data and restart the app. You will be automatically logged back in once the app restarts.\n",
"mobile.advanced_settings.delete_title": "Delete Documents & Data",
"mobile.advanced_settings.delete_title": "데이터 및 캐시삭제",
"mobile.advanced_settings.timezone": "표준 시간대",
"mobile.advanced_settings.title": "고급 설정",
"mobile.android.camera_permission_denied_description": "사진이나 비디오를 촬영 하려면, 권한 설정을 변경해 주세요.",
"mobile.android.camera_permission_denied_title": "카메라 접근이 필요합니다.",
"mobile.android.permission_denied_dismiss": "Dismiss",
"mobile.android.permission_denied_retry": "Set permission",
"mobile.android.photos_permission_denied_description": "사진이나 비디오를 촬영 하려면, 권한 설정을 변경해 주세요.",
"mobile.android.photos_permission_denied_title": "Photo library access is required",
"mobile.android.storage_permission_denied_description": "사진이나 비디오를 촬영 하려면, 권한 설정을 변경해 주세요.",
"mobile.android.storage_permission_denied_title": "File Storage access is required",
"mobile.android.videos_permission_denied_description": "사진이나 비디오를 촬영 하려면, 권한 설정을 변경해 주세요.",
"mobile.android.videos_permission_denied_title": "Video library access is required",
"mobile.alert_dialog.alertCancel": "취소",
"mobile.android.photos_permission_denied_description": "Upload photos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo library.",
"mobile.android.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.android.videos_permission_denied_description": "Upload videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your video library.",
"mobile.android.videos_permission_denied_title": "{applicationName} would like to access your videos",
"mobile.announcement_banner.title": "Announcement",
"mobile.authentication_error.message": "Mattermost has encountered an error. Please re-authenticate to start a new session.",
"mobile.authentication_error.title": "Authentication Error",
"mobile.calendar.dayNames": "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday",
"mobile.authentication_error.title": "인증 에러",
"mobile.calendar.dayNames": "일요일,월요일,화요일,수요일,목요일,금요일,토요일",
"mobile.calendar.dayNamesShort": "Sun,Mon,Tue,Wed,Thu,Fri,Sat",
"mobile.calendar.monthNames": "January,February,March,April,May,June,July,August,September,October,November,December",
"mobile.calendar.monthNamesShort": "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
"mobile.camera_photo_permission_denied_description": "Take photos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_photo_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.camera_video_permission_denied_description": "Take videos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_video_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.channel_drawer.search": "Jump to...",
"mobile.channel_info.alertMessageConvertChannel": "{displayName}을(를) 비공개 채널로 변환하면 기록과 구성원이 보존됩니다. 공개 공유 파일은 링크가 있는 사람이면 누구나 액세스할 수 있습니다. 개인 채널의 회원 자격은 초대에 의해서만 이루어집니다.\n\n그 변화는 영구적이어서 돌이킬 수 없습니다.\n\n{displayName}을(를) 비공개 채널로 변환하시겠습니까?",
"mobile.channel_info.alertMessageDeleteChannel": "{term} {name}을 (를) 종료 하시겠습니까?",
"mobile.channel_info.alertMessageLeaveChannel": "{term} {name}에서 나가시겠습니까?",
"mobile.channel_info.alertNo": "아니요",
"mobile.channel_info.alertTitleConvertChannel": "{displayName} 채널을 비공개 채널로 전환하시겠습니까?",
"mobile.channel_info.alertTitleDeleteChannel": "Archive {term}",
"mobile.channel_info.alertTitleLeaveChannel": "{term} 나가기",
"mobile.channel_info.alertYes": "네",
"mobile.channel_info.convert": "비공개 채널로 전환",
"mobile.channel_info.convert_failed": "We were unable to convert {displayName} to a private channel.",
"mobile.channel_info.convert_success": "{displayName} is now a private channel.",
"mobile.channel_info.copy_header": "헤더복사",
"mobile.channel_info.copy_purpose": "Copy Purpose",
"mobile.channel_info.delete_failed": "We couldn't archive the channel {displayName}. Please check your connection and try again.",
"mobile.channel_info.edit": "채널 편집",
"mobile.channel_info.privateChannel": "비공개 채널",
"mobile.channel_info.publicChannel": "공개 채널",
"mobile.channel_list.alertNo": "아니요",
"mobile.channel_list.alertYes": "네",
"mobile.channel_list.archived": "ARCHIVED",
"mobile.channel_list.channels": "CHANNELS",
"mobile.channel_list.closeDM": "Close Direct Message",
"mobile.channel_list.closeGM": "Close Group Message",
"mobile.channel_list.members": "MEMBERS",
"mobile.channel_list.not_member": "NOT A MEMBER",
"mobile.channel_list.unreads": "읽지 않음",
"mobile.channel_members.add_members_alert": "You must select at least one member to add to the channel.",
"mobile.channel_members.add_members_alert": "채널에 추가할 최소 한명의 멤버를 선택해야합니다.",
"mobile.channel.markAsRead": "읽음으로 표시",
"mobile.client_upgrade": "Update App",
"mobile.client_upgrade": "업데이트 앱",
"mobile.client_upgrade.can_upgrade_subtitle": "A new version is available for download.",
"mobile.client_upgrade.can_upgrade_title": "Update Available",
"mobile.client_upgrade.close": "Update Later",
"mobile.client_upgrade.current_version": "Latest Version: {version}",
"mobile.client_upgrade.download_error.message": "An error occurred downloading the new version.",
"mobile.client_upgrade.download_error.message": "새 버전을 다운로드 하는 동안 오류가 발생했습니다.",
"mobile.client_upgrade.download_error.title": "Unable to Install Update",
"mobile.client_upgrade.latest_version": "Your Version: {version}",
"mobile.client_upgrade.listener.dismiss_button": "Dismiss",
"mobile.client_upgrade.listener.learn_more_button": "Learn More",
"mobile.client_upgrade.listener.message": "A client upgrade is available!",
"mobile.client_upgrade.listener.upgrade_button": "Upgrade",
"mobile.client_upgrade.must_upgrade_subtitle": "Please update the app to continue.",
"mobile.client_upgrade.listener.upgrade_button": "업그레이드",
"mobile.client_upgrade.must_upgrade_subtitle": "계속하기 위해서 앱을 업데이트 해주세요.",
"mobile.client_upgrade.must_upgrade_title": "Update Required",
"mobile.client_upgrade.no_upgrade_subtitle": "You already have the latest version.",
"mobile.client_upgrade.no_upgrade_title": "Your App Is Up to Date",
"mobile.client_upgrade.upgrade": "Update",
"mobile.client_upgrade.no_upgrade_title": "최신 앱 입니다.",
"mobile.client_upgrade.upgrade": "업데이트",
"mobile.commands.error_title": "Error Executing Command",
"mobile.components.error_list.dismiss_all": "Dismiss All",
"mobile.components.select_server_view.connect": "연결 되었습니다.",
"mobile.components.select_server_view.connect": "연결",
"mobile.components.select_server_view.connecting": "연결 중...",
"mobile.components.select_server_view.enterServerUrl": "Enter Server URL",
"mobile.components.select_server_view.proceed": "Proceed",
"mobile.components.select_server_view.proceed": "진행",
"mobile.components.select_server_view.siteUrlPlaceholder": "https://mattermost.example.com",
"mobile.create_channel": "Create",
"mobile.create_channel.private": "새 비공개 채널",
"mobile.create_channel.public": "새 공개 채널",
"mobile.create_post.read_only": "이 채널은 읽기 전용입니다.",
"mobile.custom_list.no_results": "결과가 없습니다.",
"mobile.display_settings.sidebar": "사이드바",
"mobile.display_settings.theme": "테마",
"mobile.document_preview.failed_description": "An error occurred while opening the document. Please make sure you have a {fileType} viewer installed and try again.\n",
"mobile.document_preview.failed_description": "문서를 여는 중에 에러가 발생했습니다. {fileType} 뷰어를 설치한 후에 다시 시도해 주십시오.\n",
"mobile.document_preview.failed_title": "Open Document failed",
"mobile.downloader.android_complete": "Download complete",
"mobile.downloader.android_failed": "Download failed",
"mobile.downloader.android_permission": "We need access to the downloads folder to save files.",
"mobile.downloader.android_started": "Download started",
"mobile.downloader.android_success": "download successful",
"mobile.downloader.complete": "Download complete",
"mobile.downloader.disabled_description": "File downloads are disabled on this server. Please contact your System Admin for more details.\n",
"mobile.downloader.disabled_title": "Download disabled",
"mobile.downloader.downloading": "Downloading...",
"mobile.downloader.failed_description": "An error occurred while downloading the file. Please check your internet connection and try again.\n",
"mobile.downloader.failed_title": "Download failed",
"mobile.downloader.image_saved": "Image Saved",
"mobile.downloader.video_saved": "Video Saved",
"mobile.downloader.android_complete": "다운로드 완료",
"mobile.downloader.android_failed": "다운로드 실패",
"mobile.downloader.android_permission": "파일 저장을 위해 다운로드 폴더 접근 권한이 필요합니다.",
"mobile.downloader.android_started": "다운로드 시작",
"mobile.downloader.android_success": "다운로드 성공",
"mobile.downloader.complete": "다운로드 완료",
"mobile.downloader.disabled_description": "이 서버에 파일을 다운로드할 수 없습니다. 자세한 사항은 시스템 관리자에게 문의하세요.\n",
"mobile.downloader.disabled_title": "다운로드 실패",
"mobile.downloader.downloading": "다운로드중...",
"mobile.downloader.failed_description": "파일을 다운로드 하는 중 오류가 발생했습니다. 인터넷 연결 상태를 확인하고 다시 시도해 주세요.\n",
"mobile.downloader.failed_title": "다운로드 실패",
"mobile.downloader.image_saved": "이미지 저장 완료",
"mobile.downloader.video_saved": "비디오 저장 완료",
"mobile.drawer.teamsTitle": "서비스 약관",
"mobile.edit_channel": "저장",
"mobile.edit_post.title": "Editing Message",
"mobile.edit_profile.remove_profile_photo": "사진 삭제",
"mobile.emoji_picker.activity": "활동",
"mobile.emoji_picker.custom": "CUSTOM",
"mobile.emoji_picker.flags": "FLAGS",
@@ -233,25 +244,28 @@
"mobile.emoji_picker.places": "PLACES",
"mobile.emoji_picker.recent": "RECENTLY USED",
"mobile.emoji_picker.symbols": "SYMBOLS",
"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": "\nTap relaunch to open the app again. After restart, you can report the problem from the settings menu.\n",
"mobile.error_handler.title": "예상치 못한 오류가 발생했습니다.",
"mobile.extension.authentication_required": "Authentication required: Please first login using the app.",
"mobile.extension.file_error": "There was an error reading the file to be shared.\nPlease try again.",
"mobile.extension.file_limit": "Sharing is limited to a maximum of 5 files.",
"mobile.extension.max_file_size": "File attachments shared in Mattermost must be less than {size}.",
"mobile.extension.permission": "Mattermost needs access to the device storage to share files.",
"mobile.extension.title": "Share in Mattermost",
"mobile.failed_network_action.description": "There seems to be a problem with your internet connection. Make sure you have an active connection and try again.",
"mobile.failed_network_action.retry": "다시 시도",
"mobile.failed_network_action.shortDescription": "Make sure you have an active connection and try again.",
"mobile.failed_network_action.shortDescription": "는 메시지를 로드할 때 인터넷에 연결되어 있거나 {refresh}.",
"mobile.failed_network_action.title": "인터넷 연결 안 됨",
"mobile.file_upload.browse": "Browse Files",
"mobile.file_upload.camera_photo": "Take Photo",
"mobile.file_upload.camera_photo": "사진 촬영",
"mobile.file_upload.camera_video": "Take Video",
"mobile.file_upload.library": "Photo Library",
"mobile.file_upload.max_warning": "Uploads limited to 5 files maximum.",
"mobile.file_upload.unsupportedMimeType": "Only files of the following MIME type can be uploaded:\n{mimeTypes}",
"mobile.file_upload.video": "Video Library",
"mobile.files_paste.error_description": "An error occurred while pasting the file(s). Please try again.",
"mobile.files_paste.error_dismiss": "Dismiss",
"mobile.files_paste.error_title": "Paste failed",
"mobile.flagged_posts.empty_description": "중요한 메시지를 따로 모아 확인할 수 있습니다. 중요 메시지는 개인별로 표시되며 다른 사람이 볼 수 없습니다.",
"mobile.flagged_posts.empty_title": "중요 메세지 없음",
"mobile.help.title": "도움말",
@@ -260,24 +274,29 @@
"mobile.intro_messages.default_message": "팀원들이 가입할 때 처음으로 보게 되는 채널입니다. 모두가 알아야 할 업데이트를 게시할 때 사용하십시오.",
"mobile.intro_messages.default_welcome": "{name}에 오신걸 환영합니다!",
"mobile.intro_messages.DM": "{teammate}와 개인 메시지의 시작입니다. 개인 메시지나 여기서 공유된 파일들은 외부에서 보여지지 않습니다.",
"mobile.ios.photos_permission_denied_description": "사진이나 비디오를 촬영 하려면, 권한 설정을 변경해 주세요.",
"mobile.ios.photos_permission_denied_description": "Upload photos and videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo and video library.",
"mobile.ios.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.join_channel.error": "We couldn't join the channel {displayName}. Please check your connection and try again.",
"mobile.loading_channels": "Loading Channels...",
"mobile.loading_members": "Loading Members...",
"mobile.loading_options": "Loading Options...",
"mobile.loading_options": "옵션 로딩중...",
"mobile.loading_posts": "메시지 불러오는 중...",
"mobile.login_options.choose_title": "Choose your login method",
"mobile.long_post_title": "{channelName} - Post",
"mobile.managed.blocked_by": "Blocked by {vendor}",
"mobile.managed.exit": "종료",
"mobile.managed.jailbreak": "Jailbroken devices are not trusted by {vendor}, please exit the app.",
"mobile.managed.not_secured.android": "This device must be secured with a screen lock to use Mattermost.",
"mobile.managed.not_secured.ios": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Face ID & Passcode.",
"mobile.managed.not_secured.ios.touchId": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Touch ID & Passcode.",
"mobile.managed.secured_by": "Secured by {vendor}",
"mobile.managed.settings": "Go to settings",
"mobile.markdown.code.copy_code": "Copy Code",
"mobile.markdown.code.plusMoreLines": "+{count, number} more {count, plural, one {line} other {lines}}",
"mobile.markdown.image.too_large": "Image exceeds max dimensions of {maxWidth} by {maxHeight}:",
"mobile.markdown.link.copy_url": "Copy URL",
"mobile.mention.copy_mention": "Copy Mention",
"mobile.message_length.message": "Your current message is too long. Current character count: {max}/{count}",
"mobile.message_length.message": "Your current message is too long. Current character count: {count}/{max}",
"mobile.message_length.title": "Message Length",
"mobile.more_dms.add_more": "You can add {remaining, number} more users",
"mobile.more_dms.cannot_add_more": "You cannot add more users",
@@ -295,30 +314,30 @@
"mobile.notification_settings_mobile.default_sound": "Default ({sound})",
"mobile.notification_settings_mobile.light": "Light",
"mobile.notification_settings_mobile.no_sound": "None",
"mobile.notification_settings_mobile.push_activity": "SEND NOTIFICATIONS",
"mobile.notification_settings_mobile.push_activity": "알림 수신 설정",
"mobile.notification_settings_mobile.push_activity_android": "답글 알림",
"mobile.notification_settings_mobile.push_status": "TRIGGER PUSH NOTIFICATIONS WHEN",
"mobile.notification_settings_mobile.push_status_android": "지정한 상태일 때 모바일 푸시 알림",
"mobile.notification_settings_mobile.sound": "Sound",
"mobile.notification_settings_mobile.sounds_title": "알림음",
"mobile.notification_settings_mobile.test": "Send me a test notification",
"mobile.notification_settings_mobile.test_push": "This is a test push notification",
"mobile.notification_settings_mobile.test_push": "이것은 테스트 푸시 알림입니다.",
"mobile.notification_settings_mobile.vibrate": "Vibrate",
"mobile.notification_settings.auto_responder_short": "Automatic Replies",
"mobile.notification_settings.auto_responder.default_message": "Hello, I am out of office and unable to respond to messages.",
"mobile.notification_settings.auto_responder.enabled": "Enabled",
"mobile.notification_settings.auto_responder.enabled": "활성화",
"mobile.notification_settings.auto_responder.footer_message": "개인 메시지에 대한 응답을 자동으로 전송되는 사용자 지정 메시지를 설정합니다. 공개, 비공개 채널의 멘션은 자동 응답 기능이 실행되지 않습니다. 자동 응답을 사용하면 상태가 부재중으로 설정되고 이메일 알림, 푸쉬 알림은 해제됩니다.",
"mobile.notification_settings.auto_responder.message_placeholder": "메시지",
"mobile.notification_settings.auto_responder.message_title": "CUSTOM MESSAGE",
"mobile.notification_settings.email": "이메일",
"mobile.notification_settings.email_title": "이메일 알림",
"mobile.notification_settings.email.send": "SEND EMAIL NOTIFICATIONS",
"mobile.notification_settings.mentions_replies": "Mentions and Replies",
"mobile.notification_settings.email.send": "알림 수신 설정",
"mobile.notification_settings.mentions_replies": "멘션과 댓글",
"mobile.notification_settings.mentions.channelWide": "Channel-wide mentions",
"mobile.notification_settings.mentions.reply_title": "댓글에 대한 알림 설정",
"mobile.notification_settings.mentions.sensitiveName": "Your case sensitive first name",
"mobile.notification_settings.mentions.sensitiveUsername": "Your non-case sensitive username",
"mobile.notification_settings.mobile": "Mobile",
"mobile.notification_settings.mobile": "모바일",
"mobile.notification_settings.mobile_title": "모바일 푸시 알림",
"mobile.notification_settings.modal_cancel": "CANCEL",
"mobile.notification_settings.modal_save": "SAVE",
@@ -331,37 +350,50 @@
"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_gm.error": "We couldn't open a group message with those users. Please check your connection and try again.",
"mobile.open_unknown_channel.error": "Unable to join the channel. Please reset the cache and try again.",
"mobile.open_unknown_channel.error": "채널에 접속할 수 없습니다. cache 를 리셋하고 다시 시도하세요.",
"mobile.permission_denied_dismiss": "Don't Allow",
"mobile.permission_denied_retry": "설정",
"mobile.photo_library_permission_denied_description": "사진이나 비디오를 촬영 하려면, 권한 설정을 변경해 주세요.",
"mobile.photo_library_permission_denied_title": "{applicationName} would like to access your photo library",
"mobile.pinned_posts.empty_description": "Pin important items by holding down on any message and selecting \"Pin to Channel\".",
"mobile.pinned_posts.empty_title": "포스트 고정",
"mobile.post_info.add_reaction": "Add Reaction",
"mobile.post_info.copy_text": "Copy Text",
"mobile.post_info.add_reaction": "리액션 추가",
"mobile.post_info.copy_text": "문자내용 복사",
"mobile.post_info.flag": "중요 지정",
"mobile.post_info.mark_unread": "Mark as Unread",
"mobile.post_info.pin": "공지하기",
"mobile.post_info.reply": "답글",
"mobile.post_info.unflag": "중요 메시지 해제",
"mobile.post_info.unpin": "공지 해제하기",
"mobile.post_pre_header.flagged": "Flagged",
"mobile.post_pre_header.pinned": "공지사항",
"mobile.post_pre_header.pinned_flagged": "Pinned and Flagged",
"mobile.post_textbox.empty.message": "You are trying to send an empty message.\nPlease make sure you have a message or at least one attached file.",
"mobile.post_textbox.empty.ok": "확인",
"mobile.post_textbox.empty.title": "Empty Message",
"mobile.post_textbox.entire_channel.cancel": "취소",
"mobile.post_textbox.entire_channel.confirm": "Confirm",
"mobile.post_textbox.entire_channel.message": "@all, @channel 을 사용하면 {totalMembers} 명의 사람들에게 알림을 보냅니다. 정말 맨션을 사용하시겠습니까?",
"mobile.post_textbox.entire_channel.message.with_timezones": "By using @all or @channel you are about to send notifications to {totalMembers} people in {timezones, number} {timezones, plural, one {timezone} other {timezones}}. Are you sure you want to do this?",
"mobile.post_textbox.entire_channel.title": "Confirm sending notifications to entire channel",
"mobile.post_textbox.uploadFailedDesc": "Some attachments failed to upload to the server. Are you sure you want to post the message?",
"mobile.post_textbox.uploadFailedTitle": "Attachment failure",
"mobile.post.cancel": "취소",
"mobile.post.delete_question": "정말 게시물을 삭제하시겠습니까?",
"mobile.post.delete_title": "Delete Post",
"mobile.post.delete_title": "게시글 삭제",
"mobile.post.failed_delete": "Delete Message",
"mobile.post.failed_retry": "다시 시도",
"mobile.post.failed_title": "Unable to send your message",
"mobile.post.retry": "Refresh",
"mobile.posts_view.moreMsg": "More New Messages Above",
"mobile.privacy_link": "개인정보처리방침",
"mobile.push_notification_reply.button": "보내기",
"mobile.push_notification_reply.placeholder": "Write a reply...",
"mobile.push_notification_reply.title": "답글",
"mobile.reaction_header.all_emojis": "모두",
"mobile.recent_mentions.empty_description": "Messages containing your username and other words that trigger mentions will appear here.",
"mobile.recent_mentions.empty_title": "최근 멘션",
"mobile.rename_channel.display_name_maxLength": "Channel name must be less than {maxLength, number} characters",
"mobile.rename_channel.display_name_minLength": "Channel name must be {minLength, number} or more characters",
"mobile.rename_channel.display_name_required": "Channel name is required",
"mobile.rename_channel.name_lowercase": "Must be lowercase alphanumeric characters",
"mobile.rename_channel.name_lowercase": "알파벳 소문자로 작성 가능",
"mobile.rename_channel.name_maxLength": "URL must be less than {maxLength, number} characters",
"mobile.rename_channel.name_minLength": "URL must be {minLength, number} or more characters",
"mobile.rename_channel.name_required": "URL is required",
@@ -372,15 +404,16 @@
"mobile.reset_status.title_ooo": "Disable \"Out Of Office\"?",
"mobile.retry_message": "메세지를 새로 고침 하는데 실패하였습니다. 당겨 올려서 다시 시도해 보세요.",
"mobile.routes.channel_members.action": "팀에서 제거하기",
"mobile.routes.channel_members.action_message": "You must select at least one member to remove from the channel.",
"mobile.routes.channel_members.action_message": "채널에 추가할 최소 한명의 멤버를 선택해야합니다.",
"mobile.routes.channel_members.action_message_confirm": "Are you sure you want to remove the selected members from the channel?",
"mobile.routes.channelInfo": "Info",
"mobile.routes.channelInfo": "정보",
"mobile.routes.channelInfo.createdBy": "Created by {creator} on ",
"mobile.routes.channelInfo.delete_channel": "Archive Channel",
"mobile.routes.channelInfo.delete_channel": "보관 채널",
"mobile.routes.channelInfo.favorite": "즐겨찾기",
"mobile.routes.channelInfo.groupManaged": "연결된 그룹에 의해 관리되는 구성원",
"mobile.routes.code": "{language} Code",
"mobile.routes.code.noLanguage": "Code",
"mobile.routes.edit_profile": "Edit Profile",
"mobile.routes.edit_profile": "프로필 수정",
"mobile.routes.login": "로그인",
"mobile.routes.loginOptions": "Login Chooser",
"mobile.routes.mfa": "Enable Multi-factor Authentication:",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} Thread",
"mobile.routes.thread_dm": "Direct Message Thread",
"mobile.routes.user_profile": "Profile",
"mobile.routes.user_profile.edit": "편집",
"mobile.routes.user_profile.local_time": "LOCAL TIME",
"mobile.routes.user_profile.send_message": "메시지 보내기",
"mobile.search.after_modifier_description": "to find posts after a specific date",
@@ -402,16 +436,17 @@
"mobile.search.in_modifier_description": "to find posts in specific channels",
"mobile.search.in_modifier_title": "channel-name",
"mobile.search.jump": "Jump to recent messages",
"mobile.search.no_results": "No Results Found",
"mobile.search.no_results": "검색 결과가 없습니다.",
"mobile.search.on_modifier_description": "to find posts on a specific date",
"mobile.search.recent_title": "Recent Searches",
"mobile.select_team.guest_cant_join_team": "Your guest account has no teams or channels assigned. Please contact an administrator.",
"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_upgrade.button": "확인",
"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_url.invalid_format": "URL은 http:// 또는 https://로 시작해야 합니다",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications.",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications. Sessions for {siteName} are configured to expire every {daysCount, number} {daysCount, plural, one {day} other {days}}.",
"mobile.set_status.away": "다른 용무 중",
"mobile.set_status.dnd": "방해 금지",
"mobile.set_status.offline": "오프라인",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "An error has occurred while using the share extension.",
"mobile.share_extension.error_title": "Extension Error",
"mobile.share_extension.team": "서비스 약관",
"mobile.share_extension.too_long_message": "Character count: {count}/{max}",
"mobile.share_extension.too_long_title": "Message is too long",
"mobile.sidebar_settings.permanent": "Permanent Sidebar",
"mobile.sidebar_settings.permanent_description": "Keep the sidebar open permanently",
"mobile.storage_permission_denied_description": "Upload files to your Mattermost instance. Open Settings to grant Mattermost Read and Write access to files on this device.",
"mobile.storage_permission_denied_title": "{applicationName} would like to access your files",
"mobile.suggestion.members": "멤버",
"mobile.system_message.channel_archived_message": "{username}님이 채널을 보존 처리 하였습니다.",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} updated the channel display name from: {oldDisplayName} to: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username}님이 채널 헤더를 제거했습니다. (이전: {oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username}님이 채널 헤더를 {oldHeader}에서 {newHeader}(으)로 변경했습니다.",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username}님이 채널 헤더를 {newHeader}(으)로 변경했습니다.",
"mobile.system_message.update_channel_purpose_message.removed": "{username}님이 채널 설명을 제거했습니다. (이전: {oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username}님이 채널 설명을 {oldPurpose}에서 {newPurpose}(으)로 변경했습니다.",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username}님이 채널 설명을 {newPurpose}(으)로 변경했습니다.",
"mobile.terms_of_service.alert_cancel": "취소",
"mobile.terms_of_service.alert_ok": "확인",
"mobile.terms_of_service.alert_retry": "다시 시도",
"mobile.terms_of_service.get_terms_error_description": "Make sure you have an active internet connection and try again. If this issue persists, contact your System Administrator.",
"mobile.terms_of_service.get_terms_error_title": "Unable to load terms of service.",
"mobile.terms_of_service.terms_rejected": "You must agree to the terms of service before accessing {siteName}. Please contact your System Administrator for more details.",
"mobile.timezone_settings.automatically": "자동으로 설정",
"mobile.timezone_settings.manual": "타임존 변경",
"mobile.timezone_settings.select": "Select Timezone",
"mobile.tos_link": "이용약관",
"mobile.user_list.deactivated": "비활성화",
"mobile.user.settings.notifications.email.fifteenMinutes": "Every 15 minutes",
"mobile.video_playback.failed_description": "An error occurred while trying to play the video.\n",
@@ -445,38 +493,45 @@
"modal.manual_status.auto_responder.message_dnd": "Would you like to switch your status to \"Do Not Disturb\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_offline": "Would you like to switch your status to \"Offline\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_online": "Would you like to switch your status to \"Online\" and disable Automatic Replies?",
"more_channels.archivedChannels": "보관 채널",
"more_channels.dropdownTitle": "Show",
"more_channels.noMore": "가입할 수 있는 채널이 없습니다",
"more_channels.publicChannels": "공개 채널",
"more_channels.showArchivedChannels": "Show: Archived Channels",
"more_channels.showPublicChannels": "새 공개 채널",
"more_channels.title": "채널 더보기",
"msg_typing.areTyping": "{users}, {last}(이)가 입력중입니다...",
"msg_typing.isTyping": "{user}(이)가 입력중입니다...",
"navbar_dropdown.logout": "로그아웃",
"navbar.channel_drawer.button": "Channels and teams",
"navbar.channel_drawer.hint": "Opens the channels and teams drawer",
"navbar.leave": "채널 떠나기",
"password_form.title": "패스워드 재설정",
"password_send.checkInbox": "이메일을 확인하세요.",
"password_send.description": "To reset your password, enter the email address you used to sign up",
"password_send.description": "패스워드 재설정을 위해 등록한 이메일을 입력하세요.",
"password_send.error": "유효한 이메일 주소를 입력하세요.",
"password_send.link": "If the account exists, a password reset email will be sent to:",
"password_send.reset": "Reset my password",
"permalink.error.access": "Permalink belongs to a deleted message or to a channel to which you do not have access.",
"post_body.check_for_out_of_channel_groups_mentions.message": "did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups.",
"post_body.check_for_out_of_channel_mentions.link.and": " and ",
"post_body.check_for_out_of_channel_mentions.link.private": "add them to this private channel",
"post_body.check_for_out_of_channel_mentions.link.private": "팀에 사용자 초대하기",
"post_body.check_for_out_of_channel_mentions.link.public": "add them to the channel",
"post_body.check_for_out_of_channel_mentions.message_last": "? They will have access to all message history.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "were mentioned but they are not in the channel. Would you like to ",
"post_body.check_for_out_of_channel_mentions.message.one": "was mentioned but is not in the channel. Would you like to ",
"post_body.commentedOn": "Commented on {name}'s message: ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.check_for_out_of_channel_mentions.message.one": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.commentedOn": "{name}님의 메시지에 대한 댓글",
"post_body.deleted": "(삭제된 메시지)",
"post_info.auto_responder": "AUTOMATIC REPLY",
"post_info.bot": "BOT",
"post_info.bot": "",
"post_info.del": "삭제",
"post_info.edit": "편집",
"post_info.guest": "GUEST",
"post_info.message.show_less": "Show Less",
"post_info.message.show_more": "Show More",
"post_info.system": "시스템",
"post_message_view.edited": "(edited)",
"posts_view.newMsg": "새로운 메시지",
"rename_channel.handleHolder": "Must be lowercase alphanumeric characters",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Part of this thread has been deleted due to a data retention policy. You can no longer reply to this thread.",
"search_bar.search": "검색",
"search_header.results": "검색 결과",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "오프라인",
"status_dropdown.set_online": "온라인",
"status_dropdown.set_ooo": "Out of Office",
"suggestion.mention.all": "CAUTION: This mentions everyone in channel",
"suggestion.mention.all": "모든 채널 회원들에게 알림을 보냅니다",
"suggestion.mention.channel": "모든 채널 회원들에게 알림을 보냅니다",
"suggestion.mention.channels": "채널 더보기",
"suggestion.mention.here": "채널에 접속 중인 회원들에게 알림을 보냅니다",
"suggestion.mention.here": "모든 채널 회원들에게 알림을 보냅니다",
"suggestion.mention.members": "채널 회원",
"suggestion.mention.morechannels": "Other Channels",
"suggestion.mention.nonmembers": "Not in Channel",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "I Agree",
"terms_of_service.api_error": "Unable to complete the request. If this issue persists, contact your System Administrator.",
"user.settings.display.clockDisplay": "시간 표시",
"user.settings.display.custom_theme": "커스텀 테마",
"user.settings.display.militaryClock": "24시간으로 보이기 (예: 16:00)",
"user.settings.display.normalClock": "12시간으로 보이기 (예: 4:00 PM)",
"user.settings.display.preferTime": "시간이 어떻게 표시될지 선택하세요.",
@@ -527,7 +583,7 @@
"user.settings.general.firstName": "이름",
"user.settings.general.lastName": "성",
"user.settings.general.nickname": "별명",
"user.settings.general.position": "부서",
"user.settings.general.position": "직책",
"user.settings.general.username": "사용자명",
"user.settings.modal.display": "화면",
"user.settings.modal.notifications": "알림",
@@ -535,10 +591,10 @@
"user.settings.notifications.comments": "답글 알림",
"user.settings.notifications.email.disabled": "이메일 알림이 활성화되지 않았습니다",
"user.settings.notifications.email.everyHour": "매 시간마다",
"user.settings.notifications.email.immediately": "바로",
"user.settings.notifications.email.immediately": "즉시 ",
"user.settings.notifications.email.never": "사용 안함",
"user.settings.notifications.email.send": "알림 받기",
"user.settings.notifications.emailInfo": "이메일 알림은 멘션 혹은 개인 메세지를 받았을때, 당신이 {siteName}로부터 오프라인 상태로 60초가 지났거나 자리비움상태로 5분 이상 지났을때 알림이 갑니다.",
"user.settings.notifications.emailInfo": "이메일 알림은 멘션 혹은 개인 메세지를 받았을때, 오프라인 상태로 60초가 지났거나 자리비움상태로 5분 이상 지났을때 알림이 갑니다.",
"user.settings.notifications.never": "사용 안함",
"user.settings.notifications.onlyMentions": "개인 메시지와 멘션",
"user.settings.push_notification.away": "오프라인이거나 자리비움",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "Alle team-communicatie op één plaats, doorzoekbaar en van overal bereikbaar.",
"about.teamEditiont0": "Team-Editie",
"about.teamEditiont1": "Enterprise-Editie",
"about.title": "Over Mattermost",
"about.title": "About {appTitle}",
"announcment_banner.dont_show_again": "Don't show again",
"api.channel.add_member.added": "{addedUsername} added to the channel by {username}.",
"archivedChannelMessage": "You are viewing an **archived channel**. New messages cannot be posted.",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "E.g.: \"A channel to file bugs and improvements\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
"channel_notifications.muteChannel.settings": "het kanaal",
"channel.channelHasGuests": "This channel has guests",
"channel.hasGuests": "This group message has guests",
"channel.isGuest": "This person is a guest",
"combined_system_message.added_to_channel.many_expanded": "{users} and {lastUser} were **added to the channel** by {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} **added to the channel** by {actor}.",
"combined_system_message.added_to_channel.one_you": "You were **added to the channel** by {actor}.",
@@ -71,18 +74,18 @@
"create_comment.addComment": "Voeg commentaar toe...",
"create_post.deactivated": "You are viewing an archived channel with a deactivated user.",
"create_post.write": "Write to {channelDisplayName}",
"date_separator.today": "Today",
"date_separator.yesterday": "Yesterday",
"edit_post.editPost": "Bewerk het bericht...",
"edit_post.save": "Opslaan",
"error.team_not_found.title": "Team Not Found",
"file_attachment.download": "Downloaden",
"file_upload.fileAbove": "Het bestand groter dan {max} MB kan niet worden geüploaded: {filename}",
"get_post_link_modal.title": "Kopieer permanente link",
"integrations.add": "Toevoegen",
"intro_messages.anyMember": "Ieder lid kan dit kanaal lezen en volgen.",
"intro_messages.beginning": "Begin van {name}",
"intro_messages.channel": "kanaal",
"intro_messages.creator": "Dit is de start van {name} {type}, gemaakt door {creator} op {date}.",
"intro_messages.group": "Verlaat kanaal",
"intro_messages.creatorPrivate": "Dit is de start van {name} {type}, gemaakt door {creator} op {date}.",
"intro_messages.group_message": "Dit is de start van uw privé berichten historiek met dit teamlid. Privé berichten en bestanden die hier gedeeld worden zijn niet zichtbaar voor anderen.",
"intro_messages.noCreator": "Dit is de start van {name} {type}, gemaakt op {date}.",
"intro_messages.onlyInvited": " Alleen uitgenodigde deelnemers kunnen deze privé groep bekijken.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Mentions in threads",
"mobile.account_notifications.threads_start": "Threads that I start",
"mobile.account_notifications.threads_start_participate": "Threads that I start or participate in",
"mobile.account.settings.cancel": "Annuleren",
"mobile.account.settings.save": "Opslaan",
"mobile.action_menu.select": "Select an option",
"mobile.advanced_settings.clockDisplay": "Klok weergave",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Delete Documents & Data",
"mobile.advanced_settings.timezone": "Timezone",
"mobile.advanced_settings.title": "Geavanceerde instellingen",
"mobile.android.camera_permission_denied_description": "To take photos and videos with your camera, please change your permission settings.",
"mobile.android.camera_permission_denied_title": "Camera access is required",
"mobile.android.permission_denied_dismiss": "Dismiss",
"mobile.android.permission_denied_retry": "Set permission",
"mobile.android.photos_permission_denied_description": "To upload images from your library, please change your permission settings.",
"mobile.android.photos_permission_denied_title": "Photo library access is required",
"mobile.android.storage_permission_denied_description": "To upload images from your Android device, please change your permission settings.",
"mobile.android.storage_permission_denied_title": "File Storage access is required",
"mobile.android.videos_permission_denied_description": "To upload videos from your library, please change your permission settings.",
"mobile.android.videos_permission_denied_title": "Video library access is required",
"mobile.alert_dialog.alertCancel": "Annuleren",
"mobile.android.photos_permission_denied_description": "Upload photos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo library.",
"mobile.android.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.android.videos_permission_denied_description": "Upload videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your video library.",
"mobile.android.videos_permission_denied_title": "{applicationName} would like to access your videos",
"mobile.announcement_banner.title": "Announcement",
"mobile.authentication_error.message": "Mattermost has encountered an error. Please re-authenticate to start a new session.",
"mobile.authentication_error.title": "Authentication Error",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Sun,Mon,Tue,Wed,Thu,Fri,Sat",
"mobile.calendar.monthNames": "January,February,March,April,May,June,July,August,September,October,November,December",
"mobile.calendar.monthNamesShort": "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
"mobile.camera_photo_permission_denied_description": "Take photos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_photo_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.camera_video_permission_denied_description": "Take videos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_video_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.channel_drawer.search": "Jump to...",
"mobile.channel_info.alertMessageConvertChannel": "When you convert {displayName} to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only.\n\nThe change is permanent and cannot be undone.\n\nAre you sure you want to convert {displayName} to a private channel?",
"mobile.channel_info.alertMessageDeleteChannel": "Weet u zeker dat u deze {term} wilt verwijderen?",
"mobile.channel_info.alertMessageLeaveChannel": "Weet u zeker dat u deze {term} wilt verwijderen?",
"mobile.channel_info.alertNo": "Nee",
"mobile.channel_info.alertTitleConvertChannel": "Convert {displayName} to a private channel?",
"mobile.channel_info.alertTitleDeleteChannel": "Archive {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Verlaat {term}",
"mobile.channel_info.alertYes": "Ja",
"mobile.channel_info.convert": "Convert to Private Channel",
"mobile.channel_info.convert_failed": "We were unable to convert {displayName} to a private channel.",
"mobile.channel_info.convert_success": "{displayName} is now a private channel.",
"mobile.channel_info.copy_header": "Copy Header",
"mobile.channel_info.copy_purpose": "Copy Purpose",
"mobile.channel_info.delete_failed": "We couldn't archive the channel {displayName}. Please check your connection and try again.",
"mobile.channel_info.edit": "Edit Channel",
"mobile.channel_info.privateChannel": "Verlaat kanaal",
"mobile.channel_info.publicChannel": "Publieke kanalen",
"mobile.channel_list.alertNo": "Nee",
"mobile.channel_list.alertYes": "Ja",
"mobile.channel_list.archived": "ARCHIVED",
"mobile.channel_list.channels": "CHANNELS",
"mobile.channel_list.closeDM": "Close Direct Message",
"mobile.channel_list.closeGM": "Close Group Message",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Publieke kanalen",
"mobile.create_post.read_only": "This channel is read-only",
"mobile.custom_list.no_results": "No Results",
"mobile.display_settings.sidebar": "Sidebar",
"mobile.display_settings.theme": "Thema",
"mobile.document_preview.failed_description": "An error occurred while opening the document. Please make sure you have a {fileType} viewer installed and try again.\n",
"mobile.document_preview.failed_title": "Open Document failed",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Termen",
"mobile.edit_channel": "Opslaan",
"mobile.edit_post.title": "Editing Message",
"mobile.edit_profile.remove_profile_photo": "Remove Photo",
"mobile.emoji_picker.activity": "ACTIVITY",
"mobile.emoji_picker.custom": "CUSTOM",
"mobile.emoji_picker.flags": "FLAGS",
@@ -234,7 +245,7 @@
"mobile.emoji_picker.recent": "RECENTLY USED",
"mobile.emoji_picker.symbols": "SYMBOLS",
"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.description": "\nTap 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.extension.authentication_required": "Authentication required: Please first login using the app.",
"mobile.extension.file_error": "There was an error reading the file to be shared.\nPlease try again.",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "File attachments shared in Mattermost must be less than {size}.",
"mobile.extension.permission": "Mattermost needs access to the device storage to share files.",
"mobile.extension.title": "Share in Mattermost",
"mobile.failed_network_action.description": "There seems to be a problem with your internet connection. Make sure you have an active connection and try again.",
"mobile.failed_network_action.retry": "Try Again",
"mobile.failed_network_action.shortDescription": "Make sure you have an active connection and try again.",
"mobile.failed_network_action.retry": "try again",
"mobile.failed_network_action.shortDescription": "Messages will load when you have an internet connection or {refresh}.",
"mobile.failed_network_action.title": "No internet connection",
"mobile.file_upload.browse": "Browse Files",
"mobile.file_upload.camera_photo": "Take Photo",
"mobile.file_upload.camera_video": "Take Video",
"mobile.file_upload.library": "Photo Library",
"mobile.file_upload.max_warning": "Uploads limited to 5 files maximum.",
"mobile.file_upload.unsupportedMimeType": "Only files of the following MIME type can be uploaded:\n{mimeTypes}",
"mobile.file_upload.video": "Video bibliotheek",
"mobile.files_paste.error_description": "An error occurred while pasting the file(s). Please try again.",
"mobile.files_paste.error_dismiss": "Dismiss",
"mobile.files_paste.error_title": "Paste failed",
"mobile.flagged_posts.empty_description": "Flags are a way to mark messages for follow up. Your flags are personal, and cannot be seen by other users.",
"mobile.flagged_posts.empty_title": "Gemarkeerde Berichten",
"mobile.help.title": "Help",
@@ -260,7 +274,8 @@
"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.intro_messages.DM": "Dit is de start van uw privé berichten historiek met teamlid {teammate}.<br /> Privé berichten en bestanden die hier gedeeld worden zijn niet zichtbaar voor anderen.",
"mobile.ios.photos_permission_denied_description": "To save images and videos to your library, please change your permission settings.",
"mobile.ios.photos_permission_denied_description": "Upload photos and videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo and video library.",
"mobile.ios.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.join_channel.error": "We couldn't join the channel {displayName}. Please check your connection and try again.",
"mobile.loading_channels": "Loading Channels...",
"mobile.loading_members": "Loading Members...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "Blocked by {vendor}",
"mobile.managed.exit": "Bewerken",
"mobile.managed.jailbreak": "Jailbroken devices are not trusted by {vendor}, please exit the app.",
"mobile.managed.not_secured.android": "This device must be secured with a screen lock to use Mattermost.",
"mobile.managed.not_secured.ios": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Face ID & Passcode.",
"mobile.managed.not_secured.ios.touchId": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Touch ID & Passcode.",
"mobile.managed.secured_by": "Secured by {vendor}",
"mobile.managed.settings": "Go to settings",
"mobile.markdown.code.copy_code": "Copy Code",
"mobile.markdown.code.plusMoreLines": "{count} {count, plural, =0 {0 members} een {member} andere {members}}",
"mobile.markdown.image.too_large": "Image exceeds max dimensions of {maxWidth} by {maxHeight}:",
"mobile.markdown.link.copy_url": "Copy URL",
"mobile.mention.copy_mention": "Copy Mention",
"mobile.message_length.message": "Your current message is too long. Current character count: {max}/{count}",
"mobile.message_length.message": "Your current message is too long. Current character count: {count}/{max}",
"mobile.message_length.title": "Message Length",
"mobile.more_dms.add_more": "You can add {remaining, number} more users",
"mobile.more_dms.cannot_add_more": "You cannot add more users",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "We couldn't open a direct message with {displayName}. Please check your connection and try again.",
"mobile.open_gm.error": "We couldn't open a group message with those users. Please check your connection and try again.",
"mobile.open_unknown_channel.error": "Unable to join the channel. Please reset the cache and try again.",
"mobile.permission_denied_dismiss": "Don't Allow",
"mobile.permission_denied_retry": "Settings",
"mobile.photo_library_permission_denied_description": "To save images and videos to your library, please change your permission settings.",
"mobile.photo_library_permission_denied_title": "{applicationName} would like to access your photo library",
"mobile.pinned_posts.empty_description": "Pin important items by holding down on any message and selecting \"Pin to Channel\".",
"mobile.pinned_posts.empty_title": "No Pinned Posts",
"mobile.post_info.add_reaction": "Add Reaction",
"mobile.post_info.copy_text": "Copy Text",
"mobile.post_info.flag": "Markeer",
"mobile.post_info.mark_unread": "Mark as Unread",
"mobile.post_info.pin": "Pin to Channel",
"mobile.post_info.reply": "Antwoord",
"mobile.post_info.unflag": "Demarkeer",
"mobile.post_info.unpin": "Unpin from Channel",
"mobile.post_pre_header.flagged": "Flagged",
"mobile.post_pre_header.pinned": "Pinned",
"mobile.post_pre_header.pinned_flagged": "Pinned and Flagged",
"mobile.post_textbox.empty.message": "You are trying to send an empty message.\nPlease make sure you have a message or at least one attached file.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Empty Message",
"mobile.post_textbox.entire_channel.cancel": "Annuleren",
"mobile.post_textbox.entire_channel.confirm": "Confirm",
"mobile.post_textbox.entire_channel.message": "By using @all or @channel you are about to send notifications to {totalMembers} people. Are you sure you want to do this?",
"mobile.post_textbox.entire_channel.message.with_timezones": "By using @all or @channel you are about to send notifications to {totalMembers} people in {timezones, number} {timezones, plural, one {timezone} other {timezones}}. Are you sure you want to do this?",
"mobile.post_textbox.entire_channel.title": "Confirm sending notifications to entire channel",
"mobile.post_textbox.uploadFailedDesc": "Some attachments failed to upload to the server. Are you sure you want to post the message?",
"mobile.post_textbox.uploadFailedTitle": "Attachment failure",
"mobile.post.cancel": "Annuleren",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Unable to send your message",
"mobile.post.retry": "Refresh",
"mobile.posts_view.moreMsg": "More New Messages Above",
"mobile.privacy_link": "Privacy Policy",
"mobile.push_notification_reply.button": "Verzenden",
"mobile.push_notification_reply.placeholder": "Write a reply...",
"mobile.push_notification_reply.title": "Antwoord",
"mobile.reaction_header.all_emojis": "All",
"mobile.recent_mentions.empty_description": "Messages containing your username and other words that trigger mentions will appear here.",
"mobile.recent_mentions.empty_title": "Recente vermeldingen",
"mobile.rename_channel.display_name_maxLength": "Channel name must be less than {maxLength, number} characters",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Created by {creator} on ",
"mobile.routes.channelInfo.delete_channel": "Archive Channel",
"mobile.routes.channelInfo.favorite": "Favorite",
"mobile.routes.channelInfo.groupManaged": "Members are managed by linked groups",
"mobile.routes.code": "{language} Code",
"mobile.routes.code.noLanguage": "Code",
"mobile.routes.edit_profile": "Edit Profile",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} Thread",
"mobile.routes.thread_dm": "Direct Message Thread",
"mobile.routes.user_profile": "Profile",
"mobile.routes.user_profile.edit": "Bewerken",
"mobile.routes.user_profile.local_time": "LOCAL TIME",
"mobile.routes.user_profile.send_message": "Send Message",
"mobile.search.after_modifier_description": "to find posts after a specific date",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "No Results Found",
"mobile.search.on_modifier_description": "to find posts on a specific date",
"mobile.search.recent_title": "Recent Searches",
"mobile.select_team.guest_cant_join_team": "Your guest account has no teams or channels assigned. Please contact an administrator.",
"mobile.select_team.join_open": "Open teams you can join",
"mobile.select_team.no_teams": "There are no available teams for you to join.",
"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_url.invalid_format": "Moet beginnen met http:// of https://",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications.",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications. Sessions for {siteName} are configured to expire every {daysCount, number} {daysCount, plural, one {day} other {days}}.",
"mobile.set_status.away": "Away",
"mobile.set_status.dnd": "Do Not Disturb",
"mobile.set_status.offline": "Offline",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "An error has occurred while using the share extension.",
"mobile.share_extension.error_title": "Extension Error",
"mobile.share_extension.team": "Termen",
"mobile.share_extension.too_long_message": "Character count: {count}/{max}",
"mobile.share_extension.too_long_title": "Message is too long",
"mobile.sidebar_settings.permanent": "Permanent Sidebar",
"mobile.sidebar_settings.permanent_description": "Keep the sidebar open permanently",
"mobile.storage_permission_denied_description": "Upload files to your Mattermost instance. Open Settings to grant Mattermost Read and Write access to files on this device.",
"mobile.storage_permission_denied_title": "{applicationName} would like to access your files",
"mobile.suggestion.members": " Leden",
"mobile.system_message.channel_archived_message": "{username} archived the channel",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} updated the channel display name from: {oldDisplayName} to: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} removed the channel header (was: {oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} updated the channel header from: {oldHeader} to: {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} updated the channel header to: {newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} removed the channel purpose (was: {oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} updated the channel purpose from: {oldPurpose} to: {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} updated the channel purpose to: {newPurpose}",
"mobile.terms_of_service.alert_cancel": "Annuleren",
"mobile.terms_of_service.alert_ok": "OK",
"mobile.terms_of_service.alert_retry": "Try Again",
"mobile.terms_of_service.get_terms_error_description": "Make sure you have an active internet connection and try again. If this issue persists, contact your System Administrator.",
"mobile.terms_of_service.get_terms_error_title": "Unable to load terms of service.",
"mobile.terms_of_service.terms_rejected": "You must agree to the terms of service before accessing {siteName}. Please contact your System Administrator for more details.",
"mobile.timezone_settings.automatically": "Set automatically",
"mobile.timezone_settings.manual": "Change timezone",
"mobile.timezone_settings.select": "Select Timezone",
"mobile.tos_link": "Terms of Service",
"mobile.user_list.deactivated": "Deactivated",
"mobile.user.settings.notifications.email.fifteenMinutes": "Every 15 minutes",
"mobile.video_playback.failed_description": "An error occurred while trying to play the video.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Would you like to switch your status to \"Do Not Disturb\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_offline": "Would you like to switch your status to \"Offline\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_online": "Would you like to switch your status to \"Online\" and disable Automatic Replies?",
"more_channels.archivedChannels": "Archived Channels",
"more_channels.dropdownTitle": "Show",
"more_channels.noMore": "Geen kanalen beschikbaar waar aan deelgenomen kan worden.",
"more_channels.publicChannels": "Publieke kanalen",
"more_channels.showArchivedChannels": "Show: Archived Channels",
"more_channels.showPublicChannels": "Publieke kanalen",
"more_channels.title": "Meer kanalen",
"msg_typing.areTyping": "{users} en {last} zijn aan het typen...",
"msg_typing.isTyping": "{user} typt...",
"navbar_dropdown.logout": "Afmelden",
"navbar.channel_drawer.button": "Channels and teams",
"navbar.channel_drawer.hint": "Opens the channels and teams drawer",
"navbar.leave": "Verlaat kanaal",
"password_form.title": "Wachtwoord reset",
"password_send.checkInbox": "Controleer je inbox.",
@@ -458,25 +513,25 @@
"password_send.link": "If the account exists, a password reset email will be sent to:",
"password_send.reset": "Reset wachtwoord",
"permalink.error.access": "Permalink behoort toe aan een verwijderd bericht of aan een kanaal waar je geen toegang tot hebt.",
"post_body.check_for_out_of_channel_groups_mentions.message": "did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups.",
"post_body.check_for_out_of_channel_mentions.link.and": " and ",
"post_body.check_for_out_of_channel_mentions.link.private": "add them to this private channel",
"post_body.check_for_out_of_channel_mentions.link.private": "Nodig anderen uit voor dit team",
"post_body.check_for_out_of_channel_mentions.link.public": "add them to the channel",
"post_body.check_for_out_of_channel_mentions.message_last": "? They will have access to all message history.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "were mentioned but they are not in the channel. Would you like to ",
"post_body.check_for_out_of_channel_mentions.message.one": "was mentioned but is not in the channel. Would you like to ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.check_for_out_of_channel_mentions.message.one": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.commentedOn": "Commented on {name}'s message: ",
"post_body.deleted": "(bericht verwijderd)",
"post_info.auto_responder": "AUTOMATIC REPLY",
"post_info.bot": "BOT",
"post_info.del": "Verwijderen",
"post_info.edit": "Bewerken",
"post_info.guest": "GUEST",
"post_info.message.show_less": "Show Less",
"post_info.message.show_more": "Show More",
"post_info.system": "System",
"post_message_view.edited": "(edited)",
"posts_view.newMsg": "Nieuwe berichten",
"rename_channel.handleHolder": "Kan enkel kleine letters en nummers zijn",
"rename_channel.url": "URL:",
"rhs_thread.rootPostDeletedMessage.body": "Part of this thread has been deleted due to a data retention policy. You can no longer reply to this thread.",
"search_bar.search": "Zoeken",
"search_header.results": "Zoekresultaten",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Offline",
"status_dropdown.set_online": "Online",
"status_dropdown.set_ooo": "Out of Office",
"suggestion.mention.all": "CAUTION: This mentions everyone in channel",
"suggestion.mention.all": "Notificeer iedereen in het kanaal",
"suggestion.mention.channel": "Notificeer iedereen in het kanaal",
"suggestion.mention.channels": "Mijn Kanalen",
"suggestion.mention.here": "Notificeert iedereen in het kanaal en online",
"suggestion.mention.here": "Notificeer iedereen in het kanaal",
"suggestion.mention.members": "Kanaal Leden",
"suggestion.mention.morechannels": "Andere Kanalen",
"suggestion.mention.nonmembers": "Niet in kanaal",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "I Agree",
"terms_of_service.api_error": "Unable to complete the request. If this issue persists, contact your System Administrator.",
"user.settings.display.clockDisplay": "Klok weergave",
"user.settings.display.custom_theme": "Aangepast thema",
"user.settings.display.militaryClock": "24 uren klok (bijvoorbeeld: 16:00)",
"user.settings.display.normalClock": "12 uren klok (bijvoorbeeld: 4:00 PM)",
"user.settings.display.preferTime": "Selecteer hoe u de tijd wilt zien.",

View File

@@ -8,8 +8,8 @@
"about.teamEditionLearn": "Dołącz do społeczności Mattermost na ",
"about.teamEditionSt": "Cała komunikacja Twojego zespołu w jednym miejscu, z natychmiastowym przeszukiwaniem i dostępna z każdego miejsca.",
"about.teamEditiont0": "Edycja Zespołowa",
"about.teamEditiont1": "Wydanie Enterprise",
"about.title": "O Mattermost",
"about.teamEditiont1": "Edycja Enterprise",
"about.title": "O {appTitle}",
"announcment_banner.dont_show_again": "Nie pokazuj ponownie",
"api.channel.add_member.added": "{addedUsername} został dodany do kanału przez {username}",
"archivedChannelMessage": "Przeglądasz **zarchiwizowany kanał**. Nowe wiadomości nie mogą być wysłane.",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "Np: \"Kanał do zgłaszania bugów i usprawnień\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignoruj @channel, @here, @all",
"channel_notifications.muteChannel.settings": "Wycisz kanał",
"channel.channelHasGuests": "This channel has guests",
"channel.hasGuests": "This group message has guests",
"channel.isGuest": "This person is a guest",
"combined_system_message.added_to_channel.many_expanded": "{users} i {lastUser} zostali **dodani do kanału** przez {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} został **dodany do kanału** przez {actor}.",
"combined_system_message.added_to_channel.one_you": "Zostałeś **dodany do kanału** przez {actor}.",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{firstUser} i {secondUser} zostali **dodani do zespołu** przez {actor}.",
"combined_system_message.joined_channel.many_expanded": "{users} i {lastUser} **dołączyli do kanału**.",
"combined_system_message.joined_channel.one": "{firstUser} **dołączył do kanału**.",
"combined_system_message.joined_channel.one_you": "**dołączył do kanału**.",
"combined_system_message.joined_channel.one_you": "Ty **dołączył do kanału**.",
"combined_system_message.joined_channel.two": "{firstUser} i {secondUser} **dołączyli do kanału**.",
"combined_system_message.joined_team.many_expanded": "{users} i {lastUser} **dołączyli do zespołu**.",
"combined_system_message.joined_team.one": "{firstUser} **dołączył do zespołu**.",
"combined_system_message.joined_team.one_you": "**dołączył do zespołu**.",
"combined_system_message.joined_team.one_you": "Ty **dołączył do zespołu**.",
"combined_system_message.joined_team.two": "{firstUser} i {secondUser} **dołączyli do zespołu**.",
"combined_system_message.left_channel.many_expanded": "{users} i {lastUser} **opuścili kanał**.",
"combined_system_message.left_channel.one": "{firstUser} **opuścił kanał**.",
"combined_system_message.left_channel.one_you": "**opuścił kanał**.",
"combined_system_message.left_channel.one_you": "Ty **opuścił kanał**.",
"combined_system_message.left_channel.two": "{firstUser} i {secondUser} **opuścili kanał**.",
"combined_system_message.left_team.many_expanded": "{users} i {lastUser} **opuścili zespół**.",
"combined_system_message.left_team.one": "{firstUser} **opuścił zespół**.",
"combined_system_message.left_team.one_you": "**opuścił zespół**.",
"combined_system_message.left_team.one_you": "Ty **opuścił zespół**.",
"combined_system_message.left_team.two": "{firstUser} i {secondUser} **opuścili zespół**.",
"combined_system_message.removed_from_channel.many_expanded": "{users} i {lastUser} zostali **usunięci z kanału**.",
"combined_system_message.removed_from_channel.one": "{firstUser} został **usunięty z kanału**.",
@@ -70,21 +73,21 @@
"combined_system_message.you": "Ty",
"create_comment.addComment": "Dodaj komentarz...",
"create_post.deactivated": "Przeglądasz zarchiwizowany kanał z deaktywowanym użytkownikiem.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "Napisz na {channelDisplayName}",
"date_separator.today": "Today",
"date_separator.yesterday": "Yesterday",
"edit_post.editPost": "Edytuj post...",
"edit_post.save": "Zapisz",
"error.team_not_found.title": "Zespół Nie Znaleziony",
"file_attachment.download": "Pobierz",
"file_upload.fileAbove": "Plik powyżej {max} MB nie może zostać wysłany: {filename}",
"get_post_link_modal.title": "Kopiuj link bezpośredni ",
"integrations.add": "Dodaj",
"intro_messages.anyMember": " Każdy użytkownik może dołączyć i przeczytać ten kanał.",
"intro_messages.beginning": "Początek {name}",
"intro_messages.channel": "kanału",
"intro_messages.creator": "To jest początek {type} {name}, stworzonego/ej przez {creator} dnia {date}.",
"intro_messages.group": "kanał prywatny",
"intro_messages.creator": "To jest początek kanału {name}, stworzonego przez {creator} dnia {date}.",
"intro_messages.creatorPrivate": "To jest początek prywatnego kanału {name}, stworzonego przez {creator} dnia {date}.",
"intro_messages.group_message": "To jest początek historii wiadomości grupowych z tymi zespołami. Wiadomości i pliki udostępnione w tym miejscu nie są wyświetlane osobom spoza tego obszaru.",
"intro_messages.noCreator": "To początek {type} {name}, utworzony {date}.",
"intro_messages.noCreator": "To początek kanału {name}, utworzony dnia {date}.",
"intro_messages.onlyInvited": " Tylko zaproszeni użytkownicy mogą zobaczyć ten prywatny kanał.",
"last_users_message.added_to_channel.type": "zostało **dodanych do kanału** przez {actor}.",
"last_users_message.added_to_team.type": "zostało **dodanych do zespołu** przez {actor}.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Wzmianki w wątkach",
"mobile.account_notifications.threads_start": "Wątki, które rozpocząłem",
"mobile.account_notifications.threads_start_participate": "Wątki, które rozpocząłem lub w których uczestniczę",
"mobile.account.settings.cancel": "Anuluj",
"mobile.account.settings.save": "Zapisz",
"mobile.action_menu.select": "Wybierz opcję",
"mobile.advanced_settings.clockDisplay": "Wyświetlanie czasu",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Usuń dokumenty i dane",
"mobile.advanced_settings.timezone": "Strefa czasowa",
"mobile.advanced_settings.title": "Zaawansowane Ustawienia",
"mobile.android.camera_permission_denied_description": "Aby robić zdjęcia i filmy używając aparatu, proszę zmień swoje ustawienia uprawnień.",
"mobile.android.camera_permission_denied_title": "Wymagane są uprawnienia Aparatu",
"mobile.android.permission_denied_dismiss": "Odrzuć",
"mobile.android.permission_denied_retry": "Ustaw uprawienia",
"mobile.android.photos_permission_denied_description": "Aby wgrywać obrazy i filmy z twojej biblioteki, proszę zmień swoje ustawienia uprawnień.",
"mobile.android.photos_permission_denied_title": "Dostęp do biblioteki zdjęć jest wymagany",
"mobile.android.storage_permission_denied_description": "Aby wgrywać obrazy i filmy z twojego urządzenia Android, proszę zmień swoje ustawienia uprawnień.",
"mobile.android.storage_permission_denied_title": "Dostęp do plików jest wymagany",
"mobile.android.videos_permission_denied_description": "Aby wgrywać obrazy i filmy z twojej biblioteki, proszę zmień swoje ustawienia uprawnień.",
"mobile.android.videos_permission_denied_title": "Dostęp do biblioteki filmów jest wymagany",
"mobile.alert_dialog.alertCancel": "Anuluj",
"mobile.android.photos_permission_denied_description": "Upload photos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo library.",
"mobile.android.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.android.videos_permission_denied_description": "Upload videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your video library.",
"mobile.android.videos_permission_denied_title": "{applicationName} would like to access your videos",
"mobile.announcement_banner.title": "Ogłoszenie",
"mobile.authentication_error.message": "Mattermost napotkał błąd. Proszę autoryzuj się ponownie aby rozpocząć nową sesję.",
"mobile.authentication_error.title": "Błąd autoryzacji",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Nd,Pn,Wt,Śr,Czw,Pt,Sob",
"mobile.calendar.monthNames": "Styczeń,Luty,Marzec,Kwiecień,Maj,Czerwiec,Lipiec,Sierpień,Wrzesień,Październik,Listopad,Grudzień",
"mobile.calendar.monthNamesShort": "Sty,Lut,Mar,Kwi,Lip,Sie,Wrz,Paź,Lis,Gru",
"mobile.camera_photo_permission_denied_description": "Take photos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_photo_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.camera_video_permission_denied_description": "Take videos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_video_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.channel_drawer.search": "Przejdź do...",
"mobile.channel_info.alertMessageConvertChannel": "When you convert {displayName} to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only.\n\nThe change is permanent and cannot be undone.\n\nAre you sure you want to convert {displayName} to a private channel?",
"mobile.channel_info.alertMessageDeleteChannel": "Jesteś pewien, że chcesz zarchiwizować {term} {name}?",
"mobile.channel_info.alertMessageLeaveChannel": "Jesteś pewien, że chcesz opuścić {term} {name}?",
"mobile.channel_info.alertNo": "Nie",
"mobile.channel_info.alertTitleConvertChannel": "Wykonać konwersję kanału {displayName} do kanału prywatnego? ",
"mobile.channel_info.alertTitleDeleteChannel": "Archiwizuj {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Opuść {term}",
"mobile.channel_info.alertYes": "Tak",
"mobile.channel_info.convert": "Konwertuj do prywatnego",
"mobile.channel_info.convert_failed": "We were unable to convert {displayName} to a private channel.",
"mobile.channel_info.convert_success": "{displayName} is now a private channel.",
"mobile.channel_info.copy_header": "Kopiuj nagłówek",
"mobile.channel_info.copy_purpose": "Kopiuj cel",
"mobile.channel_info.delete_failed": "Nie można zarchiwizować kanału {displayName}. Sprawdź swoje połączenie i spróbuj ponownie.",
"mobile.channel_info.edit": "Edytuj Kanał",
"mobile.channel_info.privateChannel": "Prywatny kanał",
"mobile.channel_info.publicChannel": "Kanał publiczny",
"mobile.channel_list.alertNo": "Nie",
"mobile.channel_list.alertYes": "Tak",
"mobile.channel_list.archived": "ZARCHIWIZOWANY",
"mobile.channel_list.channels": "KANAŁY",
"mobile.channel_list.closeDM": "Zamknij Wiadomość Bezpośrednią",
"mobile.channel_list.closeGM": "Zamknij Wiadomość Grupową",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Nowy kanał publiczny",
"mobile.create_post.read_only": "Ten kanał jest tylko-do-odczytu",
"mobile.custom_list.no_results": "Brak wyników",
"mobile.display_settings.sidebar": "Pasek boczny",
"mobile.display_settings.theme": "Motyw",
"mobile.document_preview.failed_description": "Wystąpił błąd podczas otwierania dokumentu. Proszę, upewnij się, że zainstalowałeś przeglądarkę {fileType} i spróbuj ponownie.\n",
"mobile.document_preview.failed_title": "Otwieranie dokumentu się nie powiodło.",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Zespoły",
"mobile.edit_channel": "Zapisz",
"mobile.edit_post.title": "Edycja Wiadomości",
"mobile.edit_profile.remove_profile_photo": "Usuń zdjęcie",
"mobile.emoji_picker.activity": "AKTYWNOŚCI",
"mobile.emoji_picker.custom": "NIESTANDARDOWE",
"mobile.emoji_picker.flags": "FLAGI",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Załączniki udostępniane w Mattermost muszą być mniejsze niż {size}.",
"mobile.extension.permission": "Mattermost potrzebuje dostępu do pamięci urządzenia aby udostępniać pliki.",
"mobile.extension.title": "Udostępnij w Mattermost",
"mobile.failed_network_action.description": "Wygląda to na problem z twoim połączenie internetowym. Sprawdź czy masz aktywne połączenie i spróbuj ponownie.",
"mobile.failed_network_action.retry": "Spróbuj Ponownie",
"mobile.failed_network_action.shortDescription": "Upewnij się, że masz aktywne połączenie i spróbuj ponownie.",
"mobile.failed_network_action.shortDescription": "Messages will load when you have an internet connection or {refresh}.",
"mobile.failed_network_action.title": "Brak połączenia z internetem",
"mobile.file_upload.browse": "Przeglądaj Pliki",
"mobile.file_upload.camera_photo": "Zrób Zdjęcie",
"mobile.file_upload.camera_video": "Wrzuć wideo",
"mobile.file_upload.library": "Biblioteka Zdjęć",
"mobile.file_upload.max_warning": "Wrzucanie jest limitowane do 5 plików maksymalnie.",
"mobile.file_upload.unsupportedMimeType": "Można przesyłać tylko pliki następującego typu MIME: \n{mimeTypes}",
"mobile.file_upload.video": "Biblioteka wideo",
"mobile.files_paste.error_description": "Wystąpił błąd podczas wysyłania wiadomości. Proszę spróbuj ponownie.",
"mobile.files_paste.error_dismiss": "Odrzuć",
"mobile.files_paste.error_title": "Paste failed",
"mobile.flagged_posts.empty_description": "Oznaczanie wiadomości stanowi sposób ich zapisywania \"na później\". Twoje flagi są poufne i nie są widoczne dla innych użytkowników.",
"mobile.flagged_posts.empty_title": "Brak Oznaczonych Postów",
"mobile.help.title": "Pomoc",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "To jest pierwszy kanał, który zobaczą członkowie zespołu po zarejestrowaniu się - używaj go do publikowania informacji, o których wszyscy muszą wiedzieć.",
"mobile.intro_messages.default_welcome": "Witaj w {name}!",
"mobile.intro_messages.DM": "To początek historii wiadomości z użytkownikiem {teammate}. Bezpośrednie wiadomości i wysłane w nich pliki nie są widoczne dla osób spoza tego obszaru.",
"mobile.ios.photos_permission_denied_description": "Aby zapisać obrazy i filmy do biblioteki, proszę zmień swoje ustawienia uprawnień.",
"mobile.ios.photos_permission_denied_description": "Upload photos and videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo and video library.",
"mobile.ios.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.join_channel.error": "Nie można dołączyć do kanału {displayName}. Sprawdź swoje połączenie i spróbuj ponownie.",
"mobile.loading_channels": "Wczytuję Kanały...",
"mobile.loading_members": "Wczytuję Członków...",
@@ -271,7 +286,11 @@
"mobile.managed.blocked_by": "Zablokowany przez {vendor}",
"mobile.managed.exit": "Wyjście",
"mobile.managed.jailbreak": "Urządzenia z Jailbreakiem nie są zaufane przez {vendor}, proszę wyjść z aplikacji.",
"mobile.managed.not_secured.android": "To urządzenie musi zostać zabezpieczone blokadą ekranu, aby użyć Mattermost.",
"mobile.managed.not_secured.ios": "To urządzenie musi zostać zabezpieczone hasłem, aby używać Mattermost.\n\nIdz do Ustawienia > Identyfikacja twarzy i hasło.",
"mobile.managed.not_secured.ios.touchId": "To urządzenie musi zostać zabezpieczone hasłem, aby używać Mattermost.\n\nPrzejdź do Ustawienia > Touch ID i Hasło.",
"mobile.managed.secured_by": "Zabezpieczony przez {vendor}",
"mobile.managed.settings": "Idz do ustawień",
"mobile.markdown.code.copy_code": "Skopiuj Kod",
"mobile.markdown.code.plusMoreLines": "+{count, number} więcej {count, plural, one {line} other {lines}}",
"mobile.markdown.image.too_large": "Obrazek przekracza maksymalne rozmiary szerokości {maxWidth} oraz {maxHeight} wysokości:",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Nie można otworzyć bezpośredniej wiadomości z {displayName}. Sprawdź swoje połączenie i spróbuj ponownie.",
"mobile.open_gm.error": "Nie możemy otworzyć wiadomości grupowej z tymi użytkownikami. Sprawdź połączenie i spróbuj ponownie.",
"mobile.open_unknown_channel.error": "Nie można dołączyć do kanału. Zresetuj pamięć podręczną i spróbuj ponownie.",
"mobile.permission_denied_dismiss": "Don't Allow",
"mobile.permission_denied_retry": "Ustawienia",
"mobile.photo_library_permission_denied_description": "Aby zapisać obrazy i filmy do biblioteki, proszę zmień swoje ustawienia uprawnień.",
"mobile.photo_library_permission_denied_title": "{applicationName} would like to access your photo library",
"mobile.pinned_posts.empty_description": "Przypinaj ważne rzeczy, przytrzymując dowolną wiadomość i wybierając \"Przypnij do kanału\".",
"mobile.pinned_posts.empty_title": "Brak Przypiętych Wiadomości",
"mobile.post_info.add_reaction": "Dodaj reakcję",
"mobile.post_info.copy_text": "Kopiuj Tekst",
"mobile.post_info.flag": "Oflaguj",
"mobile.post_info.mark_unread": "Mark as Unread",
"mobile.post_info.pin": "Przypnij do kanału",
"mobile.post_info.reply": "Odpowiedz",
"mobile.post_info.unflag": "Usuń flagę",
"mobile.post_info.unpin": "Odepnij od kanału",
"mobile.post_pre_header.flagged": "Oflagowany",
"mobile.post_pre_header.pinned": "Przypięty",
"mobile.post_pre_header.pinned_flagged": "Przypięty i oflagowany",
"mobile.post_textbox.empty.message": "Próbujesz wysłać pustą wiadomość.\nUpewnij się, że masz wiadomość lub co najmniej jeden załączony plik.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Pusta Wiadomość",
"mobile.post_textbox.entire_channel.cancel": "Anuluj",
"mobile.post_textbox.entire_channel.confirm": "Potwierdź",
"mobile.post_textbox.entire_channel.message": "Korzystając z @all lub @channel chcesz wysłać powiadomienia do {totalMembers} ludzi. Czy na pewno chcesz to zrobić?",
"mobile.post_textbox.entire_channel.message.with_timezones": "Używając @all lub @channel, wyślesz powiadomienia do **{totalMembers} osób** w **{timezones, number} {timezones, plural, one {timezone} inne {timezones}}**. Czy na pewno chcesz to zrobić?",
"mobile.post_textbox.entire_channel.title": "Potwierdź wysyłanie powiadomień do całego kanału",
"mobile.post_textbox.uploadFailedDesc": "Niektórych załączników nie udało się przesłać na serwer. Czy na pewno chcesz opublikować wiadomość?",
"mobile.post_textbox.uploadFailedTitle": "Błąd załącznika",
"mobile.post.cancel": "Anuluj",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Nie można wysłać wiadomości",
"mobile.post.retry": "Odśwież",
"mobile.posts_view.moreMsg": "Więcej Nowych Wiadomości Powyżej",
"mobile.privacy_link": "Polityka prywatności",
"mobile.push_notification_reply.button": "Wyślij",
"mobile.push_notification_reply.placeholder": "Write a reply...",
"mobile.push_notification_reply.title": "Odpowiedz",
"mobile.reaction_header.all_emojis": "Wszystko",
"mobile.recent_mentions.empty_description": "W tym miejscu pojawią się wiadomości zawierające Twoją nazwę użytkownika i inne słowa, które będą wyzwalać wzmianki.",
"mobile.recent_mentions.empty_title": "Brak Ostatnich Wzmianek",
"mobile.rename_channel.display_name_maxLength": "Nazwa kanału musi posiadać mniej niż {maxLength, number} znaków",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Utworzono przez {creator}, dnia ",
"mobile.routes.channelInfo.delete_channel": "Archiwizuj kanał",
"mobile.routes.channelInfo.favorite": "Ulubiony",
"mobile.routes.channelInfo.groupManaged": "Członkowie są zarządzani przez grupy połączone",
"mobile.routes.code": "{language} Kod",
"mobile.routes.code.noLanguage": "Kod",
"mobile.routes.edit_profile": "Edytuj Profil",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "Wątek {channelName}",
"mobile.routes.thread_dm": "Wątek bezpośredniej wiadomości",
"mobile.routes.user_profile": "Profil",
"mobile.routes.user_profile.edit": "Edytuj",
"mobile.routes.user_profile.local_time": "CZAS LOKALNY",
"mobile.routes.user_profile.send_message": "Wyślij Wiadomość",
"mobile.search.after_modifier_description": "aby znaleźć posty po określonej dacie",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Niczego nie znaleziono",
"mobile.search.on_modifier_description": "aby znaleźć posty na konkretną datę",
"mobile.search.recent_title": "Ostatnie wyszukiwania",
"mobile.select_team.guest_cant_join_team": "Your guest account has no teams or channels assigned. Please contact an administrator.",
"mobile.select_team.join_open": "Inne zespoły, do których możesz dołączyć.",
"mobile.select_team.no_teams": "Brak dostępnych zespołów, do których możesz dołączyć.",
"mobile.server_upgrade.button": "OK",
"mobile.server_upgrade.description": "\nDo korzystania z aplikacji Mattermost wymagane jest uaktualnienie serwera. Proszę zapytać administratora systemu o szczegóły.\n",
"mobile.server_upgrade.title": "Wymagane uaktualnienie serwera",
"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.session_expired": "Session Expired: Please log in to continue receiving notifications. Sessions for {siteName} are configured to expire every {daysCount, number} {daysCount, plural, one {day} other {days}}.",
"mobile.set_status.away": "Nieobecny",
"mobile.set_status.dnd": "Nie przeszkadzać",
"mobile.set_status.offline": "Offline",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "Wystąpił błąd podczas korzystania z rozszerzenia udziału.",
"mobile.share_extension.error_title": "Błąd Rozszerzenia",
"mobile.share_extension.team": "Zespół",
"mobile.share_extension.too_long_message": "Character count: {count}/{max}",
"mobile.share_extension.too_long_title": "Message is too long",
"mobile.sidebar_settings.permanent": "Stały pasek boczny",
"mobile.sidebar_settings.permanent_description": "Zatrzymaj pasek boczny otwarty cały czas",
"mobile.storage_permission_denied_description": "Upload files to your Mattermost instance. Open Settings to grant Mattermost Read and Write access to files on this device.",
"mobile.storage_permission_denied_title": "{applicationName} would like to access your files",
"mobile.suggestion.members": "Użytkownicy",
"mobile.system_message.channel_archived_message": "{username} zarchiwizował kanał.",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} updated the channel display name from: {oldDisplayName} to: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} usunął nagłówek kanału (był: {old})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} zaktualizował nagłówek kanału z: {old} na: {new}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} zaktualizował nagłówek kanału na: {new}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} usunął cel kanału (było: {old})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} zaktualizował cel kanału z: {old} na: {new}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} zaktualizował cel kanału na: {new}",
"mobile.terms_of_service.alert_cancel": "Anuluj",
"mobile.terms_of_service.alert_ok": "OK",
"mobile.terms_of_service.alert_retry": "Spróbuj Ponownie",
"mobile.terms_of_service.get_terms_error_description": "Upewnij się, że masz aktywne połączenie internetowe i spróbuj ponownie. Jeśli ten problem będzie się powtarzał, skontaktuj się z administratorem systemu.",
"mobile.terms_of_service.get_terms_error_title": "Nie można załadować warunków korzystania z usługi.",
"mobile.terms_of_service.terms_rejected": "Przed uzyskaniem dostępu do witryny {siteName} musisz zaakceptować warunki korzystania z usługi. Skontaktuj się z administratorem systemu, aby uzyskać więcej informacji.",
"mobile.timezone_settings.automatically": "Ustaw automatycznie",
"mobile.timezone_settings.manual": "Zmień strefę czasową",
"mobile.timezone_settings.select": "Wybierz Strefę Czasową",
"mobile.tos_link": "Warunki korzystania z usługi",
"mobile.user_list.deactivated": "Dezaktywowany",
"mobile.user.settings.notifications.email.fifteenMinutes": "Co 15 minut",
"mobile.video_playback.failed_description": "Wystąpił błąd podczas próby odtworzenia filmu. \n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Czy chcesz zmienić swój status na \"Nie przeszkadzać\" i wyłączyć automatyczne odpowiedzi?",
"modal.manual_status.auto_responder.message_offline": "Czy chcesz zmienić swój status na \"Offline\" i wyłączyć automatyczne odpowiedzi?",
"modal.manual_status.auto_responder.message_online": "Czy chcesz zmienić swój status na \"Online\" i wyłączyć automatyczne odpowiedzi?",
"more_channels.archivedChannels": "Zarchiwizowane kanały",
"more_channels.dropdownTitle": "Show",
"more_channels.noMore": "Brak kanałów",
"more_channels.publicChannels": "Kanały publiczne",
"more_channels.showArchivedChannels": "Show: Archived Channels",
"more_channels.showPublicChannels": "Nowy kanał publiczny",
"more_channels.title": "Więcej Kanałów",
"msg_typing.areTyping": "{users} i {last} piszą...",
"msg_typing.isTyping": "{user} pisze...",
"navbar_dropdown.logout": "Wyloguj",
"navbar.channel_drawer.button": "Channels and teams",
"navbar.channel_drawer.hint": "Opens the channels and teams drawer",
"navbar.leave": "Opuść kanał",
"password_form.title": "Resetowanie hasła",
"password_send.checkInbox": "Sprawdź swoją pocztę.",
@@ -458,25 +513,25 @@
"password_send.link": "Jeśli konto istnieje, wiadomość e-mail dotycząca resetowania hasła zostanie wysłana na adres:",
"password_send.reset": "Zresetuj hasło",
"permalink.error.access": "Permalink należy do usuniętych wiadomości lub do kanału, do którego nie masz dostępu.",
"post_body.check_for_out_of_channel_groups_mentions.message": "nie zostali powiadomieni poprzez tą wzmiankę, ponieważ nie są na kanale. Nie można ich dodać do kanału, ponieważ nie są członkami grup połączonych. Aby dodać je do tego kanału, muszą zostać dodane do połączonych grup.",
"post_body.check_for_out_of_channel_mentions.link.and": " i ",
"post_body.check_for_out_of_channel_mentions.link.private": "dodaj je do tego prywatnego kanału",
"post_body.check_for_out_of_channel_mentions.link.public": "dodaj je do kanału",
"post_body.check_for_out_of_channel_mentions.message_last": "? Będą mieć dostęp do całej historii wiadomości.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "zostały wspomniane, ale nie są w kanale. Czy chciałbyś ",
"post_body.check_for_out_of_channel_mentions.message.one": "został wspomniany, ale nie ma go w kanale. Czy chciałbyś ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "nie zostali powiadomieni poprzez tą wzmiankę, ponieważ nie są na kanale. Czy chciałbyś ",
"post_body.check_for_out_of_channel_mentions.message.one": "nie zostali powiadomieni poprzez tą wzmiankę, ponieważ nie są na kanale. Czy chciałbyś ",
"post_body.commentedOn": "skomentował wiadomość {name}: ",
"post_body.deleted": "(wiadomość usunięta)",
"post_info.auto_responder": "AUTOMATYCZNA ODPOWIEDŹ",
"post_info.bot": "BOT",
"post_info.del": "Usuń",
"post_info.edit": "Edytuj",
"post_info.guest": "GUEST",
"post_info.message.show_less": "Pokaż Mniej",
"post_info.message.show_more": "Pokaż Więcej",
"post_info.system": "System",
"post_message_view.edited": "(edytowany)",
"posts_view.newMsg": "Nowe Wiadomości",
"rename_channel.handleHolder": "alfanumeryczne znaki z małej litery",
"rename_channel.url": "URL:",
"rhs_thread.rootPostDeletedMessage.body": "Część tego wątku została usunięta z powodu zasady retencji danych. Nie możesz już odpowiadać na ten wątek.",
"search_bar.search": "Szukaj",
"search_header.results": "Wyniki wyszukiwania",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Offline",
"status_dropdown.set_online": "Dostępny",
"status_dropdown.set_ooo": "Poza Biurem",
"suggestion.mention.all": "OSTRZEŻENIE: wspomina wszystkich na kanale",
"suggestion.mention.channel": "Powiadamia wszystkich na kanale",
"suggestion.mention.all": "Powiadamia wszystkich na tym kanale",
"suggestion.mention.channel": "Powiadamia wszystkich na tym kanale",
"suggestion.mention.channels": "Moje kanały",
"suggestion.mention.here": "Powiadamia wszystkich na kanale i on-line",
"suggestion.mention.here": "Powiadamia wszystkich obecnie dostępnych na kanale",
"suggestion.mention.members": "Członkowie kanału",
"suggestion.mention.morechannels": "Inne kanały",
"suggestion.mention.nonmembers": "Nie na kanale",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Zgadzam się",
"terms_of_service.api_error": "Nie można ukończyć żądania. Jeśli ten problem będzie się powtarzał, skontaktuj się z Administratorem Systemu.",
"user.settings.display.clockDisplay": "Wyświetlanie czasu",
"user.settings.display.custom_theme": "Niestandardowy motyw",
"user.settings.display.militaryClock": "24-godzinny (przykład: 16:00)",
"user.settings.display.normalClock": "12-godzinny (przykład: 4:00 pm)",
"user.settings.display.preferTime": "Wybierz, jak wyświetlany jest czas.",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "Toda comunicação da sua equipe em um só lugar, instantaneamente pesquisável e acessível em qualquer lugar.",
"about.teamEditiont0": "Team Edition",
"about.teamEditiont1": "Enterprise Edition",
"about.title": "Sobre o Mattermost",
"about.title": "Sobre {appTitle}",
"announcment_banner.dont_show_again": "Não mostrar novamente",
"api.channel.add_member.added": "{addedUsername} foi adicionado ao canal por {username}.",
"archivedChannelMessage": "Você está vendo um **canal arquivado**. Novas mensagens não podem ser publicadas.",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "Ex.: \"Um canal para arquivar bugs e melhorias\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignorar @channel, @here, @all",
"channel_notifications.muteChannel.settings": "Silenciar o canal",
"channel.channelHasGuests": "Este canal tem convidados",
"channel.hasGuests": "Este grupo de mensagem tem convidados",
"channel.isGuest": "Esta pessoa é um convidado",
"combined_system_message.added_to_channel.many_expanded": "{users} e {lastUser} foram **adicionados ao canal** por {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} **adicionado ao canal** por {actor}.",
"combined_system_message.added_to_channel.one_you": "Você foi **adicionado ao canal** por {actor}.",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{firstUser} e {secondUser} **adicionado a equipe** por {actor}.",
"combined_system_message.joined_channel.many_expanded": "{users} e {lastUser} **entraram no canal**.",
"combined_system_message.joined_channel.one": "{firstUser} **entrou no canal**.",
"combined_system_message.joined_channel.one_you": "**entrou no canal**.",
"combined_system_message.joined_channel.one_you": "Você **entrou no canal**.",
"combined_system_message.joined_channel.two": "{firstUser} e {secondUser} **entraram no canal**.",
"combined_system_message.joined_team.many_expanded": "{users} e {lastUser} **entraram na equipe**.",
"combined_system_message.joined_team.one": "{firstUser} **entraram na equipe**.",
"combined_system_message.joined_team.one_you": "**entrou na equipe**.",
"combined_system_message.joined_team.one_you": "Você **entrou na equipe**.",
"combined_system_message.joined_team.two": "{firstUser} e {secondUser} **entraram na equipe**.",
"combined_system_message.left_channel.many_expanded": "{users} e {lastUser} **deixaram o canal**.",
"combined_system_message.left_channel.one": "{firstUser} **deixou o canal**.",
"combined_system_message.left_channel.one_you": "**deixou o canal**.",
"combined_system_message.left_channel.one_you": "Você **deixou o canal**.",
"combined_system_message.left_channel.two": "{firstUser} e {secondUser} **deixaram o canal**.",
"combined_system_message.left_team.many_expanded": "{users} e {lastUser} **deixaram a equipe**.",
"combined_system_message.left_team.one": "{firstUser} **deixou a equipe**.",
"combined_system_message.left_team.one_you": "**deixou a equipe**.",
"combined_system_message.left_team.one_you": "Você **deixou a equipe**.",
"combined_system_message.left_team.two": "{firstUser} e {secondUser} **deixaram a equipe**.",
"combined_system_message.removed_from_channel.many_expanded": "{users} e {lastUser} foram **removidos do canal**.",
"combined_system_message.removed_from_channel.one": "{firstUser} foi **removido do canal**.",
@@ -70,26 +73,26 @@
"combined_system_message.you": "Você",
"create_comment.addComment": "Adicionar um comentário...",
"create_post.deactivated": "Você está vendo um canal arquivado com um usuário inativo.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "Escrever para {channelDisplayName}",
"date_separator.today": "Hoje",
"date_separator.yesterday": "Ontem",
"edit_post.editPost": "Editar o post...",
"edit_post.save": "Salvar",
"error.team_not_found.title": "Equipe Não Encontrado",
"file_attachment.download": "Download",
"file_upload.fileAbove": "Arquivo acima {max}MB não pode ser enviado: {filename}",
"get_post_link_modal.title": "Copiar Permalink",
"integrations.add": "Adicionar",
"intro_messages.anyMember": " Qualquer membro pode participar e ler este canal.",
"intro_messages.beginning": "Início do {name}",
"intro_messages.channel": "canal",
"intro_messages.creator": "Este é o início do {name} {type}, criado por {creator} em {date}.",
"intro_messages.group": "canal privado",
"intro_messages.creator": "Este é o início do canal {name}, criado por {creator} em {date}.",
"intro_messages.creatorPrivate": "Este é o início do canal privado {name}, criado por {creator} em {date}.",
"intro_messages.group_message": "Este é o início de seu histórico de mensagens em grupo com esta equipe. Mensagens e arquivos compartilhados aqui não são mostrados para pessoas fora dessa área.",
"intro_messages.noCreator": "Este é o início do {name} {type}, criado em {date}.",
"intro_messages.noCreator": "Este é o início do canal {name}, criado em {date}.",
"intro_messages.onlyInvited": " Somente membros convidados podem ver este canal privado.",
"last_users_message.added_to_channel.type": "foram **adicionado ao canal** por {actor}.",
"last_users_message.added_to_team.type": "foram **adicionados a equipe** por {actor}.",
"last_users_message.first": "{firstUser} e ",
"last_users_message.joined_channel.type": "**entrou no canal**.",
"last_users_message.joined_channel.type": "**entraram no canal**.",
"last_users_message.joined_team.type": "**entrou na equipe**.",
"last_users_message.left_channel.type": "**deixou o canal**.",
"last_users_message.left_team.type": "**deixou a equipe**.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Menções em tópicos",
"mobile.account_notifications.threads_start": "Tópicos que eu iniciei",
"mobile.account_notifications.threads_start_participate": "Tópicos que eu iniciei ou participo",
"mobile.account.settings.cancel": "Cancelar",
"mobile.account.settings.save": "Salvar",
"mobile.action_menu.select": "Selecione uma opção",
"mobile.advanced_settings.clockDisplay": "Exibição do relógio",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Remoer Documentos & Dados",
"mobile.advanced_settings.timezone": "Fuso horário",
"mobile.advanced_settings.title": "Configurações Avançadas",
"mobile.android.camera_permission_denied_description": "Para fazer fotos e vides com sua camera, por favor altere as permissões.",
"mobile.android.camera_permission_denied_title": "Acesso a camera é necessário",
"mobile.android.permission_denied_dismiss": "Ignorar",
"mobile.android.permission_denied_retry": "Ajustar permissões",
"mobile.android.photos_permission_denied_description": "Para enviar imagens de sua galeria, por favor altere as permissões.",
"mobile.android.photos_permission_denied_title": "Acesso a galeria de fotos é necessário",
"mobile.android.storage_permission_denied_description": "Para enviar imagens de seu Android, por favor altere as configurações de permissões.",
"mobile.android.storage_permission_denied_title": "Acesso ao armazenamento de arquivos é necessário",
"mobile.android.videos_permission_denied_description": "Para enviar vides de sua galeria, por favor altere as permissões.",
"mobile.android.videos_permission_denied_title": "Acesso a galeria de videis é necessário",
"mobile.alert_dialog.alertCancel": "Cancelar",
"mobile.android.photos_permission_denied_description": "Envie fotos na sua instância do Mattermost ou salve-as no seu dispositivo. Abra Configurações para conceder acesso de Leitura e Gravação à sua biblioteca de fotos.",
"mobile.android.photos_permission_denied_title": "{applicationName} gostaria de acessar suas fotos",
"mobile.android.videos_permission_denied_description": "Envie vídeos na sua instância do Mattermost ou salve-os no seu dispositivo. Abra Configurações para conceder acesso de Leitura e Gravação à sua biblioteca de vídeos.",
"mobile.android.videos_permission_denied_title": "{applicationName} gostaria de acessar seus videos",
"mobile.announcement_banner.title": "Anúncio",
"mobile.authentication_error.message": "Mattermost encontrou um erro. Por favor autentique novamente para iniciar uma nova sessão.",
"mobile.authentication_error.title": "Error de Autenticação",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Dom,Seg,Ter,Qua,Qui,Sex,Sab",
"mobile.calendar.monthNames": "Janeiro,Fevereiro,Março,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro",
"mobile.calendar.monthNamesShort": "Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez",
"mobile.camera_photo_permission_denied_description": "Tire fotos e carregue-as na sua instância do Mattermost ou salve-as no seu dispositivo. Abra Configurações para conceder ao Mattermost acesso de leitura e gravação à sua câmera.",
"mobile.camera_photo_permission_denied_title": "{applicationName} gostaria de acessar sua camera",
"mobile.camera_video_permission_denied_description": "Faça vídeos e envie-os para a sua instância do Mattermost ou salve-os no seu dispositivo. Abra Configurações para conceder ao Mattermost acesso de leitura e gravação à sua câmera.",
"mobile.camera_video_permission_denied_title": "{applicationName} gostaria de acessar sua camera",
"mobile.channel_drawer.search": "Pular para...",
"mobile.channel_info.alertMessageConvertChannel": "Quando você converte {displayName} em um canal privado, o histórico e os membros são preservados. Os arquivos compartilhados publicamente permanecem acessíveis a qualquer pessoa com o link. O ingresso a um canal privado é apenas por convite.\n\nA mudança é permanente e não pode ser desfeita.\n\nTem certeza de que deseja converter {displayName} em um canal privado?",
"mobile.channel_info.alertMessageDeleteChannel": "Você tem certeza que quer arquivar o {term} {name}?",
"mobile.channel_info.alertMessageLeaveChannel": "Você tem certeza que quer deixar o {term} {name}?",
"mobile.channel_info.alertNo": "Não",
"mobile.channel_info.alertTitleConvertChannel": "Converter {displayName} para um canal privado?",
"mobile.channel_info.alertTitleDeleteChannel": "Arquivar {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Sair {term}",
"mobile.channel_info.alertYes": "Sim",
"mobile.channel_info.convert": "Converter para Canal Privado",
"mobile.channel_info.convert_failed": "Não foi possível converter {displayName} em um canal privado.",
"mobile.channel_info.convert_success": "{displayName} é agora um canal privado.",
"mobile.channel_info.copy_header": "Copiar Cabeçalho",
"mobile.channel_info.copy_purpose": "Copiar Propósito",
"mobile.channel_info.delete_failed": "Não foi possível arquivar o canal {displayName}. Por favor verifique a sua conexão e tente novamente.",
"mobile.channel_info.edit": "Editar Canal",
"mobile.channel_info.privateChannel": "Canal Privado",
"mobile.channel_info.publicChannel": "Canal Público",
"mobile.channel_list.alertNo": "Não",
"mobile.channel_list.alertYes": "Sim",
"mobile.channel_list.archived": "ARQUIVADO",
"mobile.channel_list.channels": "CANAIS",
"mobile.channel_list.closeDM": "Fechar Mensagem Direta",
"mobile.channel_list.closeGM": "Fechar Mensagem em Grupo",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Novo Canal Público",
"mobile.create_post.read_only": "Este canal é de apenas leitura",
"mobile.custom_list.no_results": "Nenhum Resultado",
"mobile.display_settings.sidebar": "Barra lateral",
"mobile.display_settings.theme": "Tema",
"mobile.document_preview.failed_description": "Um erro aconteceu durante a abertura do documento. Por favor verifique que você tem o visualizador para {fileType} instalado e tente novamente.\n",
"mobile.document_preview.failed_title": "Falha ao Abrir o Documento",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Equipes",
"mobile.edit_channel": "Salvar",
"mobile.edit_post.title": "Editando a Mensagem",
"mobile.edit_profile.remove_profile_photo": "Remover Foto",
"mobile.emoji_picker.activity": "ATIVIDADE",
"mobile.emoji_picker.custom": "PERSONALIZADO",
"mobile.emoji_picker.flags": "BANDEIRAS",
@@ -234,7 +245,7 @@
"mobile.emoji_picker.recent": "RECENTEMENTE UTILIZADO",
"mobile.emoji_picker.symbols": "SIMBOLOS",
"mobile.error_handler.button": "Relançar",
"mobile.error_handler.description": "\nClique relançar para abrir a app novamente. Após o reinício, você pode relatar o problema no menu the configuração.\n",
"mobile.error_handler.description": "\nToque relançar para abrir a app novamente. Após o reinício, você pode relatar o problema no menu the configuração.\n",
"mobile.error_handler.title": "Ocorreu um erro inesperado",
"mobile.extension.authentication_required": "Autenticação necessária: Por favor primeiro faça login usando o aplicativo.",
"mobile.extension.file_error": "Ocorreu um erro ao ler o arquivo a ser compartilhado.\nPor favor, tente novamente.",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Arquivos anexos compartilhados no Mattermost devem ter menos de {size}.",
"mobile.extension.permission": "Mattermost precisa de acesso ao armazenamento do dispositivo para compartilhar arquivos.",
"mobile.extension.title": "Compartilhar no Mattermost",
"mobile.failed_network_action.description": "Parece que tem um problema na sua conexão de internet. Verifique se você tem uma conexão ativa e tente novamente.",
"mobile.failed_network_action.retry": "Tentar Novamente",
"mobile.failed_network_action.shortDescription": "Certifique-se de ter uma conexão ativa e tente novamente.",
"mobile.failed_network_action.retry": "tentar novamente",
"mobile.failed_network_action.shortDescription": "As mensagens serão carregadas quando você tiver uma conexão com a Internet ou {refresh}.",
"mobile.failed_network_action.title": "Sem conexão com a internet",
"mobile.file_upload.browse": "Navegar pelos Arquivos",
"mobile.file_upload.camera_photo": "Tirar Foto",
"mobile.file_upload.camera_video": "Criar Vídeo",
"mobile.file_upload.library": "Biblioteca de Fotos",
"mobile.file_upload.max_warning": "Upload limitado ao máximo de 5 arquivos.",
"mobile.file_upload.unsupportedMimeType": "Somente arquivos do seguintes tipos de MIME que podem ser enviados:\n{mimeTypes}",
"mobile.file_upload.video": "Galeria de Videos",
"mobile.files_paste.error_description": "Ocorreu um erro enquanto colava o arquivo. Por favor tente novamente.",
"mobile.files_paste.error_dismiss": "Ignorar",
"mobile.files_paste.error_title": "Colar falhou",
"mobile.flagged_posts.empty_description": "As bandeiras são uma forma de marcar as mensagens para segui-la. Suas bandeiras são pessoais, e não podem ser vistas por outros usuários.",
"mobile.flagged_posts.empty_title": "Nenhum Post Marcado",
"mobile.help.title": "Ajuda",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "Este é o primeiro canal da equipe veja quando eles se registrarem - use para postar atualizações que todos devem saber.",
"mobile.intro_messages.default_welcome": "Bem-vindo ao {name}!",
"mobile.intro_messages.DM": "Este é o início do seu histórico de mensagens diretas com {teammate}. Mensagens diretas e arquivos compartilhados aqui não são mostrados para pessoas de fora desta área.",
"mobile.ios.photos_permission_denied_description": "Para salvar imagens e videos na sua galeria, por favor altere suas configurações de permissão.",
"mobile.ios.photos_permission_denied_description": "Envie fotos e vídeos na sua instância do Mattermost ou salve-os no seu dispositivo. Abra Configurações para conceder ao Mattermost acesso de leitura e gravação à sua biblioteca de fotos e vídeos.",
"mobile.ios.photos_permission_denied_title": "{applicationName} gostaria de acessar suas fotos",
"mobile.join_channel.error": "Não foi possível entrar no canal {displayName}. Por favor verifique a sua conexão e tente novamente.",
"mobile.loading_channels": "Carregando Canais...",
"mobile.loading_members": "Carregando Membros...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "Bloqueado por {vendor}",
"mobile.managed.exit": "Editar",
"mobile.managed.jailbreak": "Os dispositivos com Jailbroken não são confiáveis para {vendor}, por favor saia do aplicativo.",
"mobile.managed.not_secured.android": "Este dispositivo deve ser protegido com um bloqueio de tela para usar o Mattermost.",
"mobile.managed.not_secured.ios": "Este dispositivo deve ser protegido por uma senha para usar o Mattermost.\n\nVá para Configurações > Face ID & Passcode.",
"mobile.managed.not_secured.ios.touchId": "Este dispositivo deve ser protegido por uma senha para usar o Mattermost.\n\nVá em Ajustes > Touch ID & Código.",
"mobile.managed.secured_by": "Garantido por {vendor}",
"mobile.managed.settings": "Vá para configurações",
"mobile.markdown.code.copy_code": "Copiar Código",
"mobile.markdown.code.plusMoreLines": "+{count, number} mais {count, plural, one {linha} other {linhas}}",
"mobile.markdown.image.too_large": "A imagem excede as dimensões máximas de {maxWidth} por {maxHeight}:",
"mobile.markdown.link.copy_url": "Copiar URL",
"mobile.mention.copy_mention": "Copiar Menção",
"mobile.message_length.message": "Sua mensagem atual é muito grande. Contagem corrente de caracters: {max}/{count}",
"mobile.message_length.message": "Sua mensagem atual é muito grande. Contagem atual de caracteres: {max}/{count}",
"mobile.message_length.title": "Tamanho da Mensagem",
"mobile.more_dms.add_more": "Você pode adicionar mais {remaining, number} usuários",
"mobile.more_dms.cannot_add_more": "Você não pode adicionar mais usuários",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Não foi possível entrar nas mensagens diretas com {displayName}. Por favor verifique a sua conexão e tente novamente.",
"mobile.open_gm.error": "Não foi possível abrir uma mensagem em grupo com esses usuários. Por favor verifique sua conexão e tente novamente.",
"mobile.open_unknown_channel.error": "Não é possível entrar no canal. Por favor, limpe o cache e tente novamente.",
"mobile.permission_denied_dismiss": "Não Permitir",
"mobile.permission_denied_retry": "Configurações",
"mobile.photo_library_permission_denied_description": "Para salvar imagens e videos na sua galeria, por favor altere suas configurações de permissão.",
"mobile.photo_library_permission_denied_title": "{applicationName} gostaria de acessar sua galeria de fotos",
"mobile.pinned_posts.empty_description": "Fixe itens importantes mantendo pressionado em qualquer mensagem e selecione \"Fixar no Canal\".",
"mobile.pinned_posts.empty_title": "Publicações Fixadas",
"mobile.post_info.add_reaction": "Adicionar Reação",
"mobile.post_info.copy_text": "Copiar Texto",
"mobile.post_info.flag": "Marcar",
"mobile.post_info.mark_unread": "Marcar como Não Lido",
"mobile.post_info.pin": "Fixar no Canal",
"mobile.post_info.reply": "Responder",
"mobile.post_info.unflag": "Desmarcar",
"mobile.post_info.unpin": "Desafixar do Canal",
"mobile.post_pre_header.flagged": "Marcado",
"mobile.post_pre_header.pinned": "Fixado",
"mobile.post_pre_header.pinned_flagged": "Fixado e Marcado",
"mobile.post_textbox.empty.message": "Você está tentando enviar uma mensagem vazia.\nCertifique-se de ter uma mensagem ou pelo menos um arquivo em anexo.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Mensagem Vazia",
"mobile.post_textbox.entire_channel.cancel": "Cancelar",
"mobile.post_textbox.entire_channel.confirm": "Confirmar",
"mobile.post_textbox.entire_channel.message": "Usando @all ou @channel você irá enviar notificações para {totalMembers} pessoas. Você está certo que deseja fazer isso?",
"mobile.post_textbox.entire_channel.message.with_timezones": "Usando @all ou @channel você está enviando notificações para {totalMembers} pessoas em {timezones, number} {timezones, plural, one {fuso horário} other {fusos horários}}. Você tem certeza que quer fazer isso?",
"mobile.post_textbox.entire_channel.title": "Confirmar o envio de notificações para o canal todo",
"mobile.post_textbox.uploadFailedDesc": "Alguns anexos não foram enviados para o servidor. Tem certeza de que deseja publicar a mensagem?",
"mobile.post_textbox.uploadFailedTitle": "Falha no anexo",
"mobile.post.cancel": "Cancelar",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Não foi possível enviar sua mensagem",
"mobile.post.retry": "Atualizar",
"mobile.posts_view.moreMsg": "Acima Mais Mensagens Novas",
"mobile.privacy_link": "Política de Privacidade",
"mobile.push_notification_reply.button": "Enviar",
"mobile.push_notification_reply.placeholder": "Escrever uma resposta...",
"mobile.push_notification_reply.title": "Responder",
"mobile.reaction_header.all_emojis": "Todos",
"mobile.recent_mentions.empty_description": "Mensagens contendo o seu nome de usuário e outras palavras de gatilho aparecerão aqui.",
"mobile.recent_mentions.empty_title": "Sem Menções Recentes",
"mobile.rename_channel.display_name_maxLength": "Nome do canal precisa ter menos de {maxLength, number} caracteres",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Criado por {creator} em ",
"mobile.routes.channelInfo.delete_channel": "Arquivar Canal",
"mobile.routes.channelInfo.favorite": "Favorito",
"mobile.routes.channelInfo.groupManaged": "Membros são gerenciados por grupos vinculados",
"mobile.routes.code": "{language} Código",
"mobile.routes.code.noLanguage": "Código",
"mobile.routes.edit_profile": "Editar Perfil",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "Tópico {channelName}",
"mobile.routes.thread_dm": "Tópico Mensagem Direta",
"mobile.routes.user_profile": "Perfil",
"mobile.routes.user_profile.edit": "Editar",
"mobile.routes.user_profile.local_time": "HORA LOCAL",
"mobile.routes.user_profile.send_message": "Enviar Mensagem",
"mobile.search.after_modifier_description": "encontrar publicações após uma data específica",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Nenhum Resultado Encontrado",
"mobile.search.on_modifier_description": "encontrar publicações em uma data específica",
"mobile.search.recent_title": "Pesquisas Recentes",
"mobile.select_team.guest_cant_join_team": "Sua conta de convidado não possui equipes ou canais atribuídos. Entre em contato com um administrador.",
"mobile.select_team.join_open": "Equipes abertas que você pode entrar",
"mobile.select_team.no_teams": "Não existem equipes disponíveis para você entrar.",
"mobile.server_upgrade.button": "OK",
"mobile.server_upgrade.description": "\nUm upgrade no servidor é necessário para usar o Mattermost app. Por favor fale com o seu Administrador de sistema para mais detalhes.\n",
"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.session_expired": "Sessão Expirada: Por favor faça login para continuar recebendo notificações. Sessões para {siteName} estão configuradas para expirarem a cada {daysCount, number} {daysCount, plural, one {dia} other {dias}}.",
"mobile.set_status.away": "Ausente",
"mobile.set_status.dnd": "Não Perturbe",
"mobile.set_status.offline": "Desconectado",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "Um erro ocorreu enquanto usava a extensão compartilhada.",
"mobile.share_extension.error_title": "Erro de Extensão",
"mobile.share_extension.team": "Equipes",
"mobile.share_extension.too_long_message": "Contador de caracteres: {count}/{max}",
"mobile.share_extension.too_long_title": "Mensagem é muito longa",
"mobile.sidebar_settings.permanent": "Barra lateral Permanente",
"mobile.sidebar_settings.permanent_description": "Mantem a barra lateral aberta permanentemente",
"mobile.storage_permission_denied_description": "Envie arquivos para sua instância do Mattermost. Abra Configurações para conceder ao Mattermost acesso de leitura e gravação aos arquivos deste dispositivo.",
"mobile.storage_permission_denied_title": "{applicationName} gostaria de acessar seus arquivos",
"mobile.suggestion.members": "Membros",
"mobile.system_message.channel_archived_message": "{username} arquivou o canal",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} atualizou o nome de exibição do canal de: {oldDisplayName} para: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} removeu o cabeçalho do canal (era: {oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} atualizou o cabeçalho do canal de: {oldHeader} para: {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} atualizou o cabeçalho do canal para: {newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} removeu o propósito do canal (era: {oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} atualizou o propósito do canal de: {oldPurpose} para: {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} atualizou o propósito do canal para: {newPurpose}",
"mobile.terms_of_service.alert_cancel": "Cancelar",
"mobile.terms_of_service.alert_ok": "OK",
"mobile.terms_of_service.alert_retry": "Tente Novamente",
"mobile.terms_of_service.get_terms_error_description": "Tenha certeza que você tem uma conexão com a internet ativa e tente novamente. Se este problema persistir, contate o Administrador do Sistema.",
"mobile.terms_of_service.get_terms_error_title": "Não foi possível carregar os termos de serviço.",
"mobile.terms_of_service.terms_rejected": "Você deve concordar com os termos de serviço antes de acessar {siteName}. Por favor entre em contato com o Administrador de Sistema para mais detalhes.",
"mobile.timezone_settings.automatically": "Definir automaticamente",
"mobile.timezone_settings.manual": "Mudar fuso horário",
"mobile.timezone_settings.select": "Selecionar Fuso horário",
"mobile.tos_link": "Termos de Serviço",
"mobile.user_list.deactivated": "Desativado",
"mobile.user.settings.notifications.email.fifteenMinutes": "A cada 15 minutos",
"mobile.video_playback.failed_description": "Ocorreu um erro ao tentar reproduzir o video.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Você gostaria de trocar o seu status para \"Não Perturbe\" e desativar as Respostas Automáticas?",
"modal.manual_status.auto_responder.message_offline": "Você gostaria de trocar o seu status para \"Desconectado\" e desativar as Respostas Automáticas?",
"modal.manual_status.auto_responder.message_online": "Você gostaria de trocar o seu status para \"Conectado\" e desativar as Respostas Automáticas?",
"more_channels.archivedChannels": "Canais Arquivados",
"more_channels.dropdownTitle": "Exibir",
"more_channels.noMore": "Não há mais canais para participar",
"more_channels.publicChannels": "Canais Públicos",
"more_channels.showArchivedChannels": "Exibir: Canais Arquivados",
"more_channels.showPublicChannels": "Exibir: Canais Públicos",
"more_channels.title": "Mais Canais",
"msg_typing.areTyping": "{users} e {last} estão digitando...",
"msg_typing.isTyping": "{user} está digitando...",
"navbar_dropdown.logout": "Logout",
"navbar.channel_drawer.button": "Canais e equipes",
"navbar.channel_drawer.hint": "Abre os canais e a gaveta de equipes",
"navbar.leave": "Deixar o Canal",
"password_form.title": "Redefinir Senha",
"password_send.checkInbox": "Por favor verifique sua caixa de entrada.",
@@ -458,25 +513,25 @@
"password_send.link": "Se a conta existir, um email de redefinição de senha será enviado para:",
"password_send.reset": "Redefinir minha senha",
"permalink.error.access": "O permalink pertence a uma mensagem deletada ou a um canal o qual você não tem acesso.",
"post_body.check_for_out_of_channel_groups_mentions.message": "não foi notificado por esta menção porque não estão no canal. Eles não podem ser adicionados ao canal porque não são membros dos grupos vinculados. Para adicioná-los a este canal, eles devem ser adicionados aos grupos vinculados.",
"post_body.check_for_out_of_channel_mentions.link.and": " e ",
"post_body.check_for_out_of_channel_mentions.link.private": "adicionar a este canal privado",
"post_body.check_for_out_of_channel_mentions.link.public": "adicionar ao canal",
"post_body.check_for_out_of_channel_mentions.message_last": "? Terão acesso a todo o histórico de mensagens.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "foram mencionados mas eles não estão no canal. Você gostaria de ",
"post_body.check_for_out_of_channel_mentions.message.one": "foi mencionado mas não está no canal. Você gostaria de ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "não foi notificado por esta menção porque não estão no canal. Você gostaria de ",
"post_body.check_for_out_of_channel_mentions.message.one": "não foi notificado por esta menção porque não estão no canal. Você gostaria de ",
"post_body.commentedOn": "Comentou a mensagem de {name}: ",
"post_body.deleted": "(mensagem deletada)",
"post_info.auto_responder": "RESPOSTA AUTOMÁTICA",
"post_info.bot": "BOT",
"post_info.del": "Deletar",
"post_info.edit": "Editar",
"post_info.guest": "CONVIDADO",
"post_info.message.show_less": "Mostrar Menos",
"post_info.message.show_more": "Mostrar Mais",
"post_info.system": "Sistema",
"post_message_view.edited": "(editado)",
"posts_view.newMsg": "Novas Mensagens",
"rename_channel.handleHolder": "caracteres minúsculos alfanuméricos",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Uma parte desta thread foi apagada devido a política de retenção de dados. Você nao pode mais responder para esta thread.",
"search_bar.search": "Procurar",
"search_header.results": "Resultados da Pesquisa",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Desconectado",
"status_dropdown.set_online": "Conectado",
"status_dropdown.set_ooo": "Fora do Escritório",
"suggestion.mention.all": "ATENÇÃO: Todos no canal serão mencionados.",
"suggestion.mention.channel": "Notifica todos no canal",
"suggestion.mention.all": "Notifica a todos no canal",
"suggestion.mention.channel": "Notifica a todos no canal",
"suggestion.mention.channels": "Meus Canais",
"suggestion.mention.here": "Notifica todos os conectados ao canal",
"suggestion.mention.here": "Notifica a todos online no canal",
"suggestion.mention.members": "Membros do Canal",
"suggestion.mention.morechannels": "Outros Canais",
"suggestion.mention.nonmembers": "Não no Canal",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Eu Concordo",
"terms_of_service.api_error": "Não é possível concluir o pedido. Se esse problema persistir, entre em contato com o Administrador do Sistema.",
"user.settings.display.clockDisplay": "Exibição do Relógio",
"user.settings.display.custom_theme": "Tema Personalizado",
"user.settings.display.militaryClock": "Relógio de 24 horas (exemplo: 16:00)",
"user.settings.display.normalClock": "Relógio de 12 horas (exemplo: 4:00 PM)",
"user.settings.display.preferTime": "Selecione como você prefere que a hora seja mostrada.",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "Imediatamente",
"user.settings.notifications.email.never": "Nunca",
"user.settings.notifications.email.send": "Enviar notificações por email",
"user.settings.notifications.emailInfo": "Notificações de menções e mensagens diretas, são enviadas por e-mail quando você está desconectado ou ausente do {siteName} por mais de 5 minutos.",
"user.settings.notifications.emailInfo": "As notificações por email são enviadas para menções e mensagens diretas quando você estiver offline ou ausente por mais de 5 minutos.",
"user.settings.notifications.never": "Nunca",
"user.settings.notifications.onlyMentions": "Somente para menções e mensagens diretas",
"user.settings.push_notification.away": "Ausente ou desconectado",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "Toate comunicările echipei într-un singur loc, cautari instante și accesibile oriunde.",
"about.teamEditiont0": "Ediție de echipă",
"about.teamEditiont1": "Ediția Comerciala",
"about.title": "Despre Mattermost",
"about.title": "Despre {appTitle}",
"announcment_banner.dont_show_again": "Nu mai arăta",
"api.channel.add_member.added": "{addedUsername} a fost adăugat la canal de {username}.",
"archivedChannelMessage": "Vizualizați un ** canal arhivat**. Mesaje noi nu pot fi postate.",
@@ -27,7 +27,7 @@
"channel_modal.descriptionHelp": "Descrieți cum trebuie folosit acest canal.",
"channel_modal.header": "Antet",
"channel_modal.headerEx": "De exemplu: \"[Adresa Titlu] (http://example.com)\"",
"channel_modal.headerHelp": "Setați textul care va apărea în antetul canalului de lângă numele canalului. De exemplu, includeți linkurile frecvent utilizate prin tastarea [Link Title] (http://example.com).",
"channel_modal.headerHelp": "Setați textul care va apărea în antetul canalului de lângă numele canalului. De exemplu, includeți linkurile frecvent utilizate prin tastarea [Titlul legăturii](http://exemplu.ro).",
"channel_modal.name": "Nume",
"channel_modal.nameEx": "De exemplu: \"Bugs\", \"Marketing\", \"客户 支持\"",
"channel_modal.optional": "(opțional)",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "De exemplu: \"Un canal pentru a trimite bug-uri și îmbunătățiri\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignora @channel, @here, @all",
"channel_notifications.muteChannel.settings": "Dezactivați canalul",
"channel.channelHasGuests": "Acest canal are oaspeți",
"channel.hasGuests": "Acest mesaj de grup are oaspeți",
"channel.isGuest": "Această persoană este invitat",
"combined_system_message.added_to_channel.many_expanded": "{users} și {lastUser} au fost ** adăugați la canalul ** de către {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} ** a fost adăugat la canalul ** de către {actor}.",
"combined_system_message.added_to_channel.one_you": "Ai fost ** adăugat la canalul ** de {actor}.",
@@ -44,20 +47,20 @@
"combined_system_message.added_to_team.one_you": "Ai fost ** adăugat la echipa ** de {actor}.",
"combined_system_message.added_to_team.two": "{firstUser} și {secondUser} ** au adăugat echipei ** de către {actor}.",
"combined_system_message.joined_channel.many_expanded": "{users} și {lastUser} ** s-au alăturat canalului **.",
"combined_system_message.joined_channel.one": "{firstUser} ** sa alăturat canalului **.",
"combined_system_message.joined_channel.one_you": "**s-au alăturat canalului**.",
"combined_system_message.joined_channel.one": "{firstUser} **s-a alăturat canalului**.",
"combined_system_message.joined_channel.one_you": "Tu **te-ai alăturat canalului**.",
"combined_system_message.joined_channel.two": "{firstUser} și {secondUser} ** s-au alăturat canalului **.",
"combined_system_message.joined_team.many_expanded": "{users} și {lastUser} **s-au alăturat echipei**.",
"combined_system_message.joined_team.one": "{firstUser} **sa alăturat echipei**.",
"combined_system_message.joined_team.one_you": "**sa alăturat echipei**.",
"combined_system_message.joined_team.one_you": "Tu **te-ai alăturat echipei**.",
"combined_system_message.joined_team.two": "{firstUser} și {secondUser} **s-au alăturat echipei**.",
"combined_system_message.left_channel.many_expanded": "{users} și {lastUser} ** au părăsit canalul **.",
"combined_system_message.left_channel.one": "{firstUser} ** a părăsit canalul **.",
"combined_system_message.left_channel.one_you": "**a părăsit canalul**.",
"combined_system_message.left_channel.one_you": "Tu **ai părăsit canalul**.",
"combined_system_message.left_channel.two": "{firstUser} și {secondUser} ** au părăsit canalul **.",
"combined_system_message.left_team.many_expanded": "{users} și {lastUser} ** au părăsit echipa **.",
"combined_system_message.left_team.one": "{firstUser} ** a părăsit echipa **.",
"combined_system_message.left_team.one_you": "**a părăsit echipa**.",
"combined_system_message.left_team.one_you": "Tu **ai părăsit echipa**.",
"combined_system_message.left_team.two": "{firstUser} și {secondUser} ** au părăsit echipa **.",
"combined_system_message.removed_from_channel.many_expanded": "{users} și {lastUser} au fost ** eliminate din canal **.",
"combined_system_message.removed_from_channel.one": "{firstUser} a fost ** eliminat din canal **.",
@@ -70,21 +73,21 @@
"combined_system_message.you": "Tu",
"create_comment.addComment": "Adauga un comentariu...",
"create_post.deactivated": "Vizualizați un canal arhivat cu un utilizator dezactivat.",
"create_post.write": "Write to {channelDisplayName}",
"edit_post.editPost": "Editați postarea ...",
"create_post.write": "Scrieți pe {channelDisplayName}",
"date_separator.today": "Azi",
"date_separator.yesterday": "Ieri",
"edit_post.editPost": "Editați postarea...",
"edit_post.save": "Salvați",
"error.team_not_found.title": "Echipa nu a fost găsită",
"file_attachment.download": "Descarca",
"file_upload.fileAbove": "Fișier de mai sus {max} MB nu poate fi încărcat: {filename}",
"get_post_link_modal.title": "Copiați Permalink",
"integrations.add": "Adaugă",
"intro_messages.anyMember": " Orice membru poate să se alăture și să citească în acest canal.",
"intro_messages.beginning": "Începutul {name}",
"intro_messages.channel": "canal",
"intro_messages.creator": "Acesta este începutul {name} {type}, creat de {creator} la {date}.",
"intro_messages.group": "canal privat",
"intro_messages.creator": "Acesta este începutul canalului {name}, creat de {creator} pe {date}.",
"intro_messages.creatorPrivate": "Acesta este începutul canalului privat {name}, creat de {creator} pe {date}.",
"intro_messages.group_message": "Acesta este începutul istoricului mesajelor dvs. de grup cu acești coechipieri. Mesajele și fișierele partajate aici nu sunt afișate persoanelor din afara acestei zone.",
"intro_messages.noCreator": "Acesta este începutul {name} {type}, creat la {date}.",
"intro_messages.noCreator": "Acesta este începutul canalului {name}, creat pe {date}.",
"intro_messages.onlyInvited": " Numai membrii invitați pot vedea acest canal privat.",
"last_users_message.added_to_channel.type": "au fost **adăugați la canalul** de {actor}.",
"last_users_message.added_to_team.type": "au fost **adăugați echipei** de {actor}.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Menționează în fire",
"mobile.account_notifications.threads_start": "Subiecte pe care le încep",
"mobile.account_notifications.threads_start_participate": "Threads la care încep sau particip",
"mobile.account.settings.cancel": "Anulare",
"mobile.account.settings.save": "Salvați",
"mobile.action_menu.select": "Selecteaza o optiune",
"mobile.advanced_settings.clockDisplay": "Afișaj ceas",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Ștergeți documentele și datele",
"mobile.advanced_settings.timezone": "Fus orar",
"mobile.advanced_settings.title": "Configurări Avansate Şablon",
"mobile.android.camera_permission_denied_description": "Pentru a face fotografii și videoclipuri cu camera foto, modificați setările de permisiune.",
"mobile.android.camera_permission_denied_title": "Accesul la cameră este necesar",
"mobile.android.permission_denied_dismiss": "Elimină",
"mobile.android.permission_denied_retry": "Setați permisiunea",
"mobile.android.photos_permission_denied_description": "Pentru a încărca imagini din bibliotecă, modificați setările de permisiune.",
"mobile.android.photos_permission_denied_title": "Este necesar accesul la biblioteca foto",
"mobile.android.storage_permission_denied_description": "Pentru a încărca imagini de pe dispozitivul Android, modificați setările de permisiune.",
"mobile.android.storage_permission_denied_title": "Este necesar accesul la fișierele de stocare",
"mobile.android.videos_permission_denied_description": "Pentru a încărca videoclipuri din bibliotecă, modificați setările de permisiune.",
"mobile.android.videos_permission_denied_title": "Este necesar accesul la biblioteca video",
"mobile.alert_dialog.alertCancel": "Anulare",
"mobile.android.photos_permission_denied_description": "Încărcați fotografii în instanța dvs. cea mai importantă sau salvați-le pe dispozitiv. Deschideți Setări pentru a acorda acces la citire și scriere materie la biblioteca foto.",
"mobile.android.photos_permission_denied_title": "{applicationName} ar dori pentru a accesa fotografiile",
"mobile.android.videos_permission_denied_description": "Încărcați videoclipuri în instanța dvs. cea mai importantă sau salvați-le pe dispozitiv. Deschideți Setări pentru a acorda acces la citire și scriere materie la biblioteca video.",
"mobile.android.videos_permission_denied_title": "{applicationName} ar dori pentru a accesa clipuri video",
"mobile.announcement_banner.title": "Anunţ",
"mobile.authentication_error.message": "Mattermost a întâmpinat o eroare. Re-autentificați pentru a începe o nouă sesiune.",
"mobile.authentication_error.title": "Eroare de autentificare",
@@ -154,20 +151,32 @@
"mobile.calendar.dayNamesShort": "Dum,Lu,Ma,Mie,Jo,Vi,Sam",
"mobile.calendar.monthNames": "Ianuarie,Februarie,Martie,Aprilie,Mai,Iunie,Iulie,August,Septembrie,Octombrie,Noiembrie,Decembrie",
"mobile.calendar.monthNamesShort": "Ian,Feb,Mar,Apr,Mai,Iun,Iul,Aug,Sep,Oct,Noi,Dec",
"mobile.camera_photo_permission_denied_description": "Faceți fotografii și încărcați-le în cea mai importantă instanță sau le salvați pe dispozitiv. Deschideți Setări pentru a acorda acces la citire și scriere materie.",
"mobile.camera_photo_permission_denied_title": "{applicationName} ar dori pentru a accesa aparatul de fotografiat",
"mobile.camera_video_permission_denied_description": "Ia clipuri video și încărcați-le la Mattermost exemplu, sau să le salvați pe dispozitiv. Deschide Setările pentru a acorda Mattermost Citi și Scrie acces la aparatul de fotografiat.",
"mobile.camera_video_permission_denied_title": "{applicationName} ar dori pentru a accesa aparatul de fotografiat",
"mobile.channel_drawer.search": "Sari la...",
"mobile.channel_info.alertMessageConvertChannel": "Când convertiți {displayName} într-un canal privat, istoricul și apartenența sunt păstrate. Fișierele partajate public rămân accesibile oricui are legătura. Calitatea de membru într-un canal privat se face numai prin invitație.\n\nModificarea este permanentă și nu poate fi anulată.\n\nSigur doriți să convertiți {displayName} într-un canal privat?",
"mobile.channel_info.alertMessageDeleteChannel": "Sigur doriți să arhivați {term} {name}?",
"mobile.channel_info.alertMessageLeaveChannel": "Sigur doriți să lăsați {term} {name}?",
"mobile.channel_info.alertNo": "Nu",
"mobile.channel_info.alertTitleConvertChannel": "Convertiți {displayName} într-un canal privat?",
"mobile.channel_info.alertTitleDeleteChannel": "Arhiva {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Lăsați {term}",
"mobile.channel_info.alertYes": "Da",
"mobile.channel_info.convert": "Convertiți în canal privat",
"mobile.channel_info.convert_failed": "Nu am putut converti {displayName} într-un canal privat.",
"mobile.channel_info.convert_success": "{displayName} este acum un canal privat.",
"mobile.channel_info.copy_header": "Copiază Antetul",
"mobile.channel_info.copy_purpose": "Copiază Scopul",
"mobile.channel_info.delete_failed": "Nu am putut arhiva canalul {displayName}. Verificați conexiunea dvs. și încercați din nou.",
"mobile.channel_info.edit": "Editați canalul",
"mobile.channel_info.privateChannel": "Canal privat",
"mobile.channel_info.publicChannel": "Canalul public",
"mobile.channel_list.alertNo": "Nu",
"mobile.channel_list.alertYes": "Da",
"mobile.channel_list.channels": "Canale",
"mobile.channel_list.archived": "ARHIVAT",
"mobile.channel_list.channels": "CANALE",
"mobile.channel_list.closeDM": "Închideți mesajul direct",
"mobile.channel_list.closeGM": "Închideți Mesajul grupului",
"mobile.channel_list.members": "Membri",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Noul canal public",
"mobile.create_post.read_only": "Acest canal este numai pentru citire",
"mobile.custom_list.no_results": "Nici un Rezultat",
"mobile.display_settings.sidebar": "Bara laterală",
"mobile.display_settings.theme": "Temă",
"mobile.document_preview.failed_description": "A apărut o eroare la deschiderea documentului. Asigurați-vă că aveți instalat un {fileType} vizualizor și încercați din nou.\n",
"mobile.document_preview.failed_title": "Documentul deschis a eșuat",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Echipe",
"mobile.edit_channel": "Salvați",
"mobile.edit_post.title": "Editare mesaj",
"mobile.edit_profile.remove_profile_photo": "Eliminați fotografia",
"mobile.emoji_picker.activity": "ACTIVITATE",
"mobile.emoji_picker.custom": "Personalizat",
"mobile.emoji_picker.flags": "Semnalizari",
@@ -234,7 +245,7 @@
"mobile.emoji_picker.recent": "FOLOSIT RECENT",
"mobile.emoji_picker.symbols": "SIMBOLURI",
"mobile.error_handler.button": "Repornește",
"mobile.error_handler.description": "\nFaceți clic pe relansare pentru a deschide din nou aplicația. După repornire, puteți raporta problema din meniul de setări.\n",
"mobile.error_handler.description": "\nAtinge relansarea pentru a deschide din nou aplicația. După repornire, puteți raporta problema din meniul de setări.\n",
"mobile.error_handler.title": "A apărut o eroare neașteptată",
"mobile.extension.authentication_required": "Autentificare necesară: vă rugăm să vă autentificați mai întâi utilizând aplicația.",
"mobile.extension.file_error": "A fost o eroare la citirea fișierului împărtășit.\nVă rugăm să încercați din nou.",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Fișierele atașate în Mattermost trebuie să fie mai mici de {size}.",
"mobile.extension.permission": "Mattermost are nevoie de acces la spațiul de stocare al dispozitivului pentru partajarea fișierelor.",
"mobile.extension.title": "Împărtășește-te în materie",
"mobile.failed_network_action.description": "Se pare că există o problemă legată de conexiunea la internet. Asigurați-vă că aveți o conexiune activă și încercați din nou.",
"mobile.failed_network_action.retry": ncercați din nou",
"mobile.failed_network_action.shortDescription": "Asigurați-vă că aveți o conexiune activă și încercați din nou.",
"mobile.failed_network_action.retry": "Încearcă din nou",
"mobile.failed_network_action.shortDescription": "Mesaje va încărca atunci când aveți o conexiune la internet sau {refresh}.",
"mobile.failed_network_action.title": "Fără conexiune la internet",
"mobile.file_upload.browse": "Cauta fisiere",
"mobile.file_upload.camera_photo": "Ia-Foto",
"mobile.file_upload.camera_video": "Adauga video",
"mobile.file_upload.library": "Biblioteca foto",
"mobile.file_upload.max_warning": "Încărcările sunt limitate la maxim 5 fișiere.",
"mobile.file_upload.unsupportedMimeType": "Numai fișierele din următorul tip MIME pot fi încărcate:\n{mimeTypes}",
"mobile.file_upload.video": "Biblioteca video",
"mobile.files_paste.error_description": "A apărut o eroare la lipirea fișierelor. Vă rugăm să încercați din nou.",
"mobile.files_paste.error_dismiss": "Destitui",
"mobile.files_paste.error_title": "Alipirea a eșuat",
"mobile.flagged_posts.empty_description": "Steagurile reprezintă o modalitate de a marca mesajele de urmat. Steagurile dvs. sunt personale și nu pot fi văzute de alți utilizatori.",
"mobile.flagged_posts.empty_title": "Nu sunt postări semnate",
"mobile.help.title": "Ajutor",
@@ -260,25 +274,30 @@
"mobile.intro_messages.default_message": "Acesta este primul canal pe care colegii îl văd când se înscriu - îl folosește pentru postarea actualizărilor pe care toată lumea trebuie să le cunoască.",
"mobile.intro_messages.default_welcome": "Bine ați venit la {name}!",
"mobile.intro_messages.DM": "Acesta este începutul istoricului mesajului dvs. direct cu {teammate}. Mesajele directe și fișierele partajate aici nu sunt afișate persoanelor din afara acestei zone.",
"mobile.ios.photos_permission_denied_description": "Pentru a salva imagini și videoclipuri în bibliotecă, modificați setările de permisiune.",
"mobile.ios.photos_permission_denied_description": "Încărcați fotografii și videoclipuri la Mattermost exemplu, sau să le salvați pe dispozitiv. Deschide Setările pentru a acorda Mattermost Citi și Scrie acces la foto și video, bibliotecă.",
"mobile.ios.photos_permission_denied_title": "{applicationName} ar dori pentru a accesa fotografiile",
"mobile.join_channel.error": "Nu am putut să ne alăturăm canalului {displayName}. Verificați conexiunea dvs. și încercați din nou.",
"mobile.loading_channels": "Se încarcă canalele ...",
"mobile.loading_members": "Încărcarea membrilor ...",
"mobile.loading_channels": "Se încarcă canalele...",
"mobile.loading_members": "Încărcarea membrilor...",
"mobile.loading_options": "Încărcare Opțiuni...",
"mobile.loading_posts": "Se încarcă mesajele ...",
"mobile.loading_posts": "Se încarcă mesajele...",
"mobile.login_options.choose_title": "Alegeți metoda dvs. de conectare",
"mobile.long_post_title": "{channelName} - Postați",
"mobile.managed.blocked_by": "Blocat de {vendor}",
"mobile.managed.exit": "Iesi",
"mobile.managed.jailbreak": "Dispozitivele jailbroken nu au încredere în {vendor}, închideți aplicația.",
"mobile.managed.not_secured.android": "Acest dispozitiv trebuie să fie asigurat cu un dispozitiv de blocare a ecranului pentru a utiliza Mattermost.",
"mobile.managed.not_secured.ios": "Acest dispozitiv trebuie să fie securizat cu un cod de acces pentru a utiliza Mattermost.\n\nAccesați Setări > ID-ul feței și codul de acces.",
"mobile.managed.not_secured.ios.touchId": "Acest dispozitiv trebuie să fie securizat cu un cod de acces pentru a utiliza Mattermost.\n \nAccesați Setări > ID-ul feței și codul de acces.",
"mobile.managed.secured_by": "Securizat de {vendor}",
"mobile.managed.settings": "Mergi la Setări",
"mobile.markdown.code.copy_code": "Copiați codul",
"mobile.markdown.code.plusMoreLines": "+ {count, number} mai mult {count, plural, one {line} alte {lines}}",
"mobile.markdown.code.plusMoreLines": "+{count, number} mai multe {count, plural, one {rând} other {rânduri}}",
"mobile.markdown.image.too_large": "Imaginea depășește dimensiunile maxime ale {maxWidth} de {maxHeight}:",
"mobile.markdown.link.copy_url": "Copiază URL- ul",
"mobile.markdown.link.copy_url": "Copiază URL-ul",
"mobile.mention.copy_mention": "Copiați mențiunea",
"mobile.message_length.message": "Mesajul dvs. curent este prea lung. Număr curent de caractere: {max} / {count}",
"mobile.message_length.title": "Mesaj Lungime",
"mobile.message_length.message": "Mesajul dvs. curent este prea lung. Număr curent de caractere: {count}/{max}",
"mobile.message_length.title": "Lungime Mesaj",
"mobile.more_dms.add_more": "Puteți adăuga încă {remaining, number} mai mulți utilizatori",
"mobile.more_dms.cannot_add_more": "Nu puteți adăuga mai mulți utilizatori",
"mobile.more_dms.one_more": "Puteți adăuga încă 1 utilizator",
@@ -297,7 +316,7 @@
"mobile.notification_settings_mobile.no_sound": "Nici unul",
"mobile.notification_settings_mobile.push_activity": "TRIMITE NOTIFICARI",
"mobile.notification_settings_mobile.push_activity_android": "Trimiteți notificări",
"mobile.notification_settings_mobile.push_status": "NOTIFICĂRI PRIN TRIGGER PUSH WHEN",
"mobile.notification_settings_mobile.push_status": "NOTIFICĂRI PRIN TRIGGER PUSH CĂND",
"mobile.notification_settings_mobile.push_status_android": "Declanșați notificările push atunci când",
"mobile.notification_settings_mobile.sound": "Sunet",
"mobile.notification_settings_mobile.sounds_title": "Alerta de notificare",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Nu am putut deschide un mesaj direct cu {displayName}. Verificați conexiunea dvs. și încercați din nou.",
"mobile.open_gm.error": "Nu am putut deschide un mesaj de grup cu acei utilizatori. Verificați conexiunea dvs. și încercați din nou.",
"mobile.open_unknown_channel.error": "Imposibil de aderat la canal. Resetați memoria cache și încercați din nou.",
"mobile.permission_denied_dismiss": "Nu Permite",
"mobile.permission_denied_retry": "Setări",
"mobile.photo_library_permission_denied_description": "Pentru a salva imagini și videoclipuri în biblioteca dvs., vă rugăm să schimbați setările de permisiune.",
"mobile.photo_library_permission_denied_title": "{applicationName} ar dori pentru a accesa biblioteca dvs. foto",
"mobile.pinned_posts.empty_description": "Fixați elemente importante ținând apăsat pe orice mesaj și selectând \"Fixați la Canal\".",
"mobile.pinned_posts.empty_title": "Nu există mesaje fixate",
"mobile.post_info.add_reaction": "Adăugați reacția",
"mobile.post_info.copy_text": "Copiază textul",
"mobile.post_info.flag": "Steag",
"mobile.post_info.mark_unread": "Marcheaza ca necitit",
"mobile.post_info.pin": "Conectați la Canal",
"mobile.post_info.reply": "Răspuns",
"mobile.post_info.unflag": "Anulați semnalarea",
"mobile.post_info.unpin": "Eliberați-vă din canal",
"mobile.post_pre_header.flagged": "Marcat",
"mobile.post_pre_header.pinned": "Fixat",
"mobile.post_pre_header.pinned_flagged": "Fixat și marcat",
"mobile.post_textbox.empty.message": "Încercați să trimiteți un mesaj gol.\nAsigurați-vă că aveți un mesaj sau cel puțin un fișier atașat.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Mesaj gol",
"mobile.post_textbox.entire_channel.cancel": "Anulează",
"mobile.post_textbox.entire_channel.confirm": "Confirma",
"mobile.post_textbox.entire_channel.message": "Folosind @all sau @channel sunteți pe cale să trimiteți notificări către {totalMembers} persoane. Ești sigur că vrei să faci asta?",
"mobile.post_textbox.entire_channel.message.with_timezones": "Folosind @all sau @channel sunteți pe cale să trimiteți notificări către {totalMembers} persoane din {timezones, number} {timezones, plural, one {timezone} other {timezones}}. Ești sigur că vrei să faci asta?",
"mobile.post_textbox.entire_channel.title": "Confirmați trimiterea notificărilor către întregul canal",
"mobile.post_textbox.uploadFailedDesc": "Unele atașări nu au putut fi încărcate pe server. Sigur doriți să încărcați mesajul?",
"mobile.post_textbox.uploadFailedTitle": "Eșec atașament",
"mobile.post.cancel": "Anulare",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Imposibil de trimis mesajul",
"mobile.post.retry": "Actualizeaza",
"mobile.posts_view.moreMsg": "Mai multe mesaje noi de mai sus",
"mobile.privacy_link": "Politica de confidentialitate",
"mobile.push_notification_reply.button": "Trimite",
"mobile.push_notification_reply.placeholder": "Scrie un răspuns...",
"mobile.push_notification_reply.title": "Răspuns",
"mobile.reaction_header.all_emojis": "Toate",
"mobile.recent_mentions.empty_description": "Mesajele care conțin numele dvs. de utilizator și alte cuvinte care declanșează mențiunile vor apărea aici.",
"mobile.recent_mentions.empty_title": "Nu există mențiuni recente",
"mobile.rename_channel.display_name_maxLength": "Numele canalului trebuie să fie mai mic de {maxLength, number} characters",
@@ -368,17 +400,18 @@
"mobile.reply_post.failed": "Mesajul nu a putut fi trimis.",
"mobile.request.invalid_response": "A primit răspuns rău de la server.",
"mobile.reset_status.alert_cancel": "Anulare",
"mobile.reset_status.alert_ok": "OK",
"mobile.reset_status.alert_ok": "Bun",
"mobile.reset_status.title_ooo": "Dezactivați \"Afară din birou\"?",
"mobile.retry_message": "Mesajele refăcute au eșuat. Trageți în sus pentru a încerca din nou.",
"mobile.routes.channel_members.action": "Eliminați membrii",
"mobile.routes.channel_members.action_message": "Trebuie să selectați cel puțin un membru pentru a fi eliminat din canal.",
"mobile.routes.channel_members.action_message_confirm": "Sigur doriți să eliminați membrii selectați din canal?",
"mobile.routes.channelInfo": "Info",
"mobile.routes.channelInfo": "Informații",
"mobile.routes.channelInfo.createdBy": "Creat de {creator} pe ",
"mobile.routes.channelInfo.delete_channel": "Arhiva canalului",
"mobile.routes.channelInfo.favorite": "Favorit",
"mobile.routes.code": "Limbaj-{language}",
"mobile.routes.channelInfo.groupManaged": "Membrii sunt gestionați de grupuri legate",
"mobile.routes.code": "{language} Cod",
"mobile.routes.code.noLanguage": "Cod",
"mobile.routes.edit_profile": "Editati Profil",
"mobile.routes.login": "Conectare",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} Subiect",
"mobile.routes.thread_dm": "Mesajul direct al mesajului",
"mobile.routes.user_profile": "Profil",
"mobile.routes.user_profile.edit": "Editați",
"mobile.routes.user_profile.local_time": "ORA LOCALĂ",
"mobile.routes.user_profile.send_message": "Trimite mesaj",
"mobile.search.after_modifier_description": "pentru a găsi postări după o anumită dată",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Nu a fost gasit nici un rezultat",
"mobile.search.on_modifier_description": "pentru a găsi postări la o anumită dată",
"mobile.search.recent_title": "Ultimile cautari",
"mobile.select_team.guest_cant_join_team": "Contul dvs. de oaspeți nu are alocate echipe sau canale. Vă rugăm să contactați un administrator.",
"mobile.select_team.join_open": "Deschideți echipe la care te poți alătura",
"mobile.select_team.no_teams": "Nu există echipe disponibile pentru a vă alătura.",
"mobile.server_upgrade.button": "OK",
"mobile.server_upgrade.description": "\nEste necesară o actualizare a serverului pentru a utiliza aplicația Mattermost. Contactați administratorul de sistem pentru detalii.\n",
"mobile.server_upgrade.title": "Este necesară actualizarea serverului",
"mobile.server_url.invalid_format": "Adresa URL trebuie să înceapă cu http: // sau https: //",
"mobile.session_expired": "Sesiune expirată: vă rugăm să vă autentificați pentru a continua să primiți notificări.",
"mobile.server_url.invalid_format": "Adresa URL trebuie să înceapă cu http:// sau https://",
"mobile.session_expired": "Sesiunea a expirat: Vă rugăm să vă autentificați pentru a continua să primiți notificări. Ședințele pentru {siteName} sunt configurate pentru a expira la fiecare {daysCount, number} {daysCount, plural, one {day} alte {days}}.",
"mobile.set_status.away": "Plecat",
"mobile.set_status.dnd": "Nu deranjaţi",
"mobile.set_status.offline": "Deconectat",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "A apărut o eroare în timpul utilizării extensiei de distribuire.",
"mobile.share_extension.error_title": "Eroare extindere",
"mobile.share_extension.team": "Echipa",
"mobile.share_extension.too_long_message": "Numărul de caractere: {count}/{max}",
"mobile.share_extension.too_long_title": "Mesajul este prea lung",
"mobile.sidebar_settings.permanent": "Bara laterală permanentă",
"mobile.sidebar_settings.permanent_description": "Mențineți bara laterală deschisă permanent",
"mobile.storage_permission_denied_description": "Încărcați fișiere în instanța dvs. cea mai importantă. Deschideți Setări pentru a acorda acces la citire și scriere materie la fișierele de pe acest dispozitiv.",
"mobile.storage_permission_denied_title": "{applicationName} ar dori să vă acceseze fișierele",
"mobile.suggestion.members": "Membri",
"mobile.system_message.channel_archived_message": "{username} a arhivat canalul",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} a actualizat numele canalului de la: {oldDisplayName} la: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} a eliminat antetul canalului (a fost: {oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} a actualizat antetul canalului din: {oldHeader} în: {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} a actualizat antetul canalului la: {newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} a eliminat scopul canalului (a fost: {oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} a actualizat scopul canalului din: {oldPurpose} în: {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} a actualizat scopul canalului la: {newPurpose}",
"mobile.terms_of_service.alert_cancel": "Anulează",
"mobile.terms_of_service.alert_ok": "BINE",
"mobile.terms_of_service.alert_retry": "Încearcă din nou",
"mobile.terms_of_service.get_terms_error_description": "Asigurați-vă că aveți o conexiune activă la internet și încercați din nou. Dacă această problemă persistă, contactați administratorul de sistem.",
"mobile.terms_of_service.get_terms_error_title": "Imposibil de încărcat termenii și condițiile.",
"mobile.terms_of_service.terms_rejected": "Trebuie să acceptați termenii și condițiile înainte de a accesa {siteName}. Contactați administratorul de sistem pentru mai multe detalii.",
"mobile.timezone_settings.automatically": "Setați automat",
"mobile.timezone_settings.manual": "Schimbați fusul orar",
"mobile.timezone_settings.select": "Selectați Fusul orar",
"mobile.tos_link": "Termenii serviciului",
"mobile.user_list.deactivated": "Dezactivat",
"mobile.user.settings.notifications.email.fifteenMinutes": "La fiecare 15 minute",
"mobile.video_playback.failed_description": "A apărut o eroare în timp ce încercați să redați videoclipul.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Doriți să vă schimbați statutul în \"Nu deranjați\" și să dezactivați răspunsurile automate?",
"modal.manual_status.auto_responder.message_offline": "Doriți să vă schimbați statutul în \"Offline\" și să dezactivați răspunsurile automate?",
"modal.manual_status.auto_responder.message_online": "Doriți să vă schimbați statusul la \"Online\" și să dezactivați răspunsurile automate?",
"more_channels.archivedChannels": "Canale arhivate",
"more_channels.dropdownTitle": "Arată",
"more_channels.noMore": "Nu mai există canale care să se alăture",
"more_channels.publicChannels": "Canale publice",
"more_channels.showArchivedChannels": "Arată: canale arhivate",
"more_channels.showPublicChannels": "Arată: Canale Publice",
"more_channels.title": "Mai multe canale",
"msg_typing.areTyping": "{users} și {last} introduc ...",
"msg_typing.isTyping": "{user} introduce textul ...",
"msg_typing.areTyping": "{users} și {last} scriu...",
"msg_typing.isTyping": "{user} scrie...",
"navbar_dropdown.logout": "Deconectare",
"navbar.channel_drawer.button": "Canale și echipe",
"navbar.channel_drawer.hint": "Deschide sertarul canalelor și echipelor",
"navbar.leave": "Părăsiți canalul",
"password_form.title": "Resetare parolă",
"password_send.checkInbox": "Vă rugăm să vă verificați inbox-ul.",
@@ -458,25 +513,25 @@
"password_send.link": "Dacă contul există, un e-mail de resetare a parolei va fi trimis la:",
"password_send.reset": "Resetează-mi parola",
"permalink.error.access": "Permalink aparține unui mesaj șters sau unui canal la care nu aveți acces.",
"post_body.check_for_out_of_channel_groups_mentions.message": "nu au fost notificați de această mențiune deoarece nu se află în canal. Ele nu pot fi adăugate la canal deoarece nu fac parte din grupurile conectate. Pentru a le adăuga la acest canal, acestea trebuie adăugate la grupurile conectate.",
"post_body.check_for_out_of_channel_mentions.link.and": " şi ",
"post_body.check_for_out_of_channel_mentions.link.private": "adăugați-le la acest canal privat",
"post_body.check_for_out_of_channel_mentions.link.public": "adăugați-le pe canal",
"post_body.check_for_out_of_channel_mentions.message_last": "? Ei vor avea acces la toate istoricul mesajelor.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "au fost menționate, dar nu sunt în canal. Aţi dori să ",
"post_body.check_for_out_of_channel_mentions.message.one": "a fost menționat, dar nu este în canal. Aţi dori să ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "nu au fost notificați de această mențiune deoarece nu se află în canal. Ați dori să ",
"post_body.check_for_out_of_channel_mentions.message.one": "nu au fost notificați de această mențiune deoarece nu se află în canal. Ați dori să ",
"post_body.commentedOn": "A comentat mesajul {name}: ",
"post_body.deleted": "(mesaj sters)",
"post_info.auto_responder": "RASPUNS AUTOMAT",
"post_info.bot": "BOT",
"post_info.del": "Șterge",
"post_info.edit": "Editeaza",
"post_info.edit": "Editați",
"post_info.guest": "OASPETE",
"post_info.message.show_less": "Afișați mai puține",
"post_info.message.show_more": "Detalii",
"post_info.system": "Sistem",
"post_message_view.edited": "(editat)",
"posts_view.newMsg": "Mesaje noi",
"rename_channel.handleHolder": "caractere alfanumerice minuscule",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "O parte din acest fir a fost șters din cauza unei politici de păstrare a datelor. Nu mai puteți răspunde la acest subiect.",
"search_bar.search": "Caută",
"search_header.results": "Rezultatele căutării",
@@ -498,24 +553,25 @@
"status_dropdown.set_offline": "Deconectat",
"status_dropdown.set_online": "Conectat",
"status_dropdown.set_ooo": "In afara serviciului",
"suggestion.mention.all": "ATENȚIE: Acest lucru menționează pe toți în canal",
"suggestion.mention.channel": "Notifică pe toată lumea din canal",
"suggestion.mention.all": "Notifică pe toată lumea din acest canal",
"suggestion.mention.channel": "Notifică pe toată lumea din acest canal",
"suggestion.mention.channels": "Canalele mele",
"suggestion.mention.here": "Notifică pe toată lumea din canal și on-line",
"suggestion.mention.here": "Notifică pe toți cei de pe acest canal online",
"suggestion.mention.members": "Am putut sa ma membrii canalului",
"suggestion.mention.morechannels": "Alte canale",
"suggestion.mention.nonmembers": "~[canal]",
"suggestion.mention.nonmembers": "Nu este în canal",
"suggestion.mention.special": "MENȚIUNI SPECIALE",
"suggestion.search.direct": "Mesaje Directe",
"suggestion.search.private": "Canale private",
"suggestion.search.public": "Canale publice",
"terms_of_service.agreeButton": "Sunt De Acord",
"terms_of_service.agreeButton": "De Acord",
"terms_of_service.api_error": "Imposibil de completat cererea. Dacă această problemă persistă, contactați administratorul de sistem.",
"user.settings.display.clockDisplay": "Afișajul ceasului",
"user.settings.display.custom_theme": "Teme Personalizate",
"user.settings.display.militaryClock": "Ceas 24 de ore (exemplu: 16:00)",
"user.settings.display.normalClock": "Ceas de 12 ore (exemplu: 4:00 PM)",
"user.settings.display.preferTime": "Selectați modul în care preferați timpul afișat.",
"user.settings.general.email": "Email",
"user.settings.general.email": "E-mail",
"user.settings.general.emailCantUpdate": "Emailul trebuie actualizat folosind un client web sau o aplicație desktop.",
"user.settings.general.emailGitlabCantUpdate": "Conectarea are loc prin GitLab. E-mailul nu poate fi actualizat. Adresa de e-mail utilizată pentru notificări este {email}.",
"user.settings.general.emailGoogleCantUpdate": "Conectarea are loc prin Google. E-mailul nu poate fi actualizat. Adresa de e-mail utilizată pentru notificări este {email}.",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "Всё общение вашей команды собрано в одном месте, с мгновенным поиском и доступом отовсюду.",
"about.teamEditiont0": "Team Edition",
"about.teamEditiont1": "Enterprise Edition",
"about.title": "О Mattermost",
"about.title": "О \"{appTitle}\"",
"announcment_banner.dont_show_again": "Больше не показывать",
"api.channel.add_member.added": "{addedUsername} добавлен в канал участником {username}",
"archivedChannelMessage": "Вы просматриваете **архивированный канал**. Создание новых сообщений запрещено.",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "Например: \"Канал для ошибок и пожеланий\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
"channel_notifications.muteChannel.settings": "Отключить уведомления",
"channel.channelHasGuests": "This channel has guests",
"channel.hasGuests": "This group message has guests",
"channel.isGuest": "This person is a guest",
"combined_system_message.added_to_channel.many_expanded": "{users} и {lastUser} были **добавлены на канал** пользователем {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} **приглашается на канал**. Кем: {actor}.",
"combined_system_message.added_to_channel.one_you": "Вы были **добавлены на канал** пользователем {actor}.",
@@ -70,23 +73,23 @@
"combined_system_message.you": "Вы",
"create_comment.addComment": "Добавить комментарий...",
"create_post.deactivated": "Вы просматриваете архивированный канал с деактивированным пользователем.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "Написать в {channelDisplayName}",
"date_separator.today": "Today",
"date_separator.yesterday": "Yesterday",
"edit_post.editPost": "Редактировать сообщение...",
"edit_post.save": "Сохранить",
"error.team_not_found.title": "Команда не найдена",
"file_attachment.download": "Скачать",
"file_upload.fileAbove": "Нельзя загрузить файл больше {max}МБ: {filename}",
"get_post_link_modal.title": "Скопировать постоянную ссылку",
"integrations.add": "Добавить",
"intro_messages.anyMember": " Любой участник может зайти и читать этот канал.",
"intro_messages.beginning": "Начало {name}",
"intro_messages.channel": "канал",
"intro_messages.creator": "{name} - {type}, созданный {creator} {date}",
"intro_messages.group": "приватный канал",
"intro_messages.creator": "Канал: {name}, создан {creator} {date}",
"intro_messages.creatorPrivate": "Приватный канал: {name}, созданный {creator} {date}",
"intro_messages.group_message": "Начало истории групповых сообщений с участниками. Размещённые здесь сообщения и файлы не видны за пределами этой области.",
"intro_messages.noCreator": "{name} - {type}, созданный {date}",
"intro_messages.noCreator": "Канал: {name}, созданный {date}",
"intro_messages.onlyInvited": " Только приглашенные пользователи могут видеть этот приватный канал.",
"last_users_message.added_to_channel.type": " **добавлены на канал**. Кем: {actor}.",
"last_users_message.added_to_channel.type": "{actor} добавил **added to the channel**.",
"last_users_message.added_to_team.type": "были **добавлены в команду** пользователем {actor}.",
"last_users_message.first": "{firstUser} и ",
"last_users_message.joined_channel.type": "**выполнен вход на канал**",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Если меня упомянули",
"mobile.account_notifications.threads_start": "Если я начал эту ветку",
"mobile.account_notifications.threads_start_participate": "Если я начал эту ветку или участвовал в ней",
"mobile.account.settings.cancel": "Отмена",
"mobile.account.settings.save": "Сохранить",
"mobile.action_menu.select": "Выберите опцию",
"mobile.advanced_settings.clockDisplay": "Отображение времени",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Удалить файловый кэш",
"mobile.advanced_settings.timezone": "Часовой пояс",
"mobile.advanced_settings.title": "Дополнительные параметры",
"mobile.android.camera_permission_denied_description": "Чтобы делать фото и видео, вам нужно разрешить доступ к камере.",
"mobile.android.camera_permission_denied_title": "Требуется доступ к камере",
"mobile.android.permission_denied_dismiss": "Отказать",
"mobile.android.permission_denied_retry": "Изменить разрешение",
"mobile.android.photos_permission_denied_description": "Чтобы загружать изображения из библиотеки, вам нужно изменить настройки разрешений.",
"mobile.android.photos_permission_denied_title": "Требуется доступ к фотографиям",
"mobile.android.storage_permission_denied_description": "Чтобы загружать изображения с устройства Android, вам нужно изменить настройки разрешений.",
"mobile.android.storage_permission_denied_title": "Требуется доступ к файлам",
"mobile.android.videos_permission_denied_description": "Чтобы загружать видео из библиотеки, вам нужно изменить настройки разрешений.",
"mobile.android.videos_permission_denied_title": "Требуется доступ к видео",
"mobile.alert_dialog.alertCancel": "Отмена",
"mobile.android.photos_permission_denied_description": "Upload photos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo library.",
"mobile.android.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.android.videos_permission_denied_description": "Upload videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your video library.",
"mobile.android.videos_permission_denied_title": "{applicationName} would like to access your videos",
"mobile.announcement_banner.title": "Объявление",
"mobile.authentication_error.message": "Неожиданная ошибка приложения. Пожалуйста, авторизуйтесь еще раз.",
"mobile.authentication_error.title": "Ошибка авторизации",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Вс,Пн,Вт,Ср,Чт,Пт,Сб",
"mobile.calendar.monthNames": "Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь",
"mobile.calendar.monthNamesShort": "Янв,Феб,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек",
"mobile.camera_photo_permission_denied_description": "Take photos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_photo_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.camera_video_permission_denied_description": "Take videos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_video_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.channel_drawer.search": "Перейти к...",
"mobile.channel_info.alertMessageConvertChannel": "When you convert {displayName} to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only.\n\nThe change is permanent and cannot be undone.\n\nAre you sure you want to convert {displayName} to a private channel?",
"mobile.channel_info.alertMessageDeleteChannel": "Вы действительно хотите покинуть {term} {name}?",
"mobile.channel_info.alertMessageLeaveChannel": "Вы действительно хотите покинуть {term} {name}?",
"mobile.channel_info.alertNo": "Нет",
"mobile.channel_info.alertTitleConvertChannel": "Convert {displayName} to a private channel?",
"mobile.channel_info.alertTitleDeleteChannel": "Архивировать {term}",
"mobile.channel_info.alertTitleLeaveChannel": "Покинуть {term}",
"mobile.channel_info.alertYes": "Да",
"mobile.channel_info.convert": "Конвертировать в приватный канал",
"mobile.channel_info.convert_failed": "We were unable to convert {displayName} to a private channel.",
"mobile.channel_info.convert_success": "{displayName} is now a private channel.",
"mobile.channel_info.copy_header": "Copy Header",
"mobile.channel_info.copy_purpose": "Copy Purpose",
"mobile.channel_info.delete_failed": "Мы не можем подключиться к каналу {displayName}. Пожалуйста, проверьте подключение и попробуйте заново.",
"mobile.channel_info.edit": "Изменить канал",
"mobile.channel_info.privateChannel": "Приватный канал",
"mobile.channel_info.publicChannel": "Публичные каналы",
"mobile.channel_list.alertNo": "Нет",
"mobile.channel_list.alertYes": "Да",
"mobile.channel_list.archived": "ARCHIVED",
"mobile.channel_list.channels": "КАНАЛЫ",
"mobile.channel_list.closeDM": "Закрыть личные сообщения",
"mobile.channel_list.closeGM": "Закрыть сообщения группы",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Публичный канал",
"mobile.create_post.read_only": "Этот канал только для чтения",
"mobile.custom_list.no_results": "Нет результатов",
"mobile.display_settings.sidebar": "Боковая панель",
"mobile.display_settings.theme": "Тема оформления",
"mobile.document_preview.failed_description": "Ошибка при открытии документа. Пожалуйста убедитесь, что у вас есть приложение для просмотра {fileType} и попробуйте снова.\n",
"mobile.document_preview.failed_title": "Ошибка открытия документа",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Команды",
"mobile.edit_channel": "Сохранить",
"mobile.edit_post.title": "Редактирование сообщения",
"mobile.edit_profile.remove_profile_photo": "Remove Photo",
"mobile.emoji_picker.activity": "АКТИВНОСТЬ",
"mobile.emoji_picker.custom": "ПОЛЬЗОВАТЕЛЬСКИЕ",
"mobile.emoji_picker.flags": "ФЛАГИ",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Файлы для передачи должны быть не больше чем {size}.",
"mobile.extension.permission": "Для того, чтобы делиться файлами, вам нужно предоставить разрешение приложению.",
"mobile.extension.title": "Поделиться в Mattermost",
"mobile.failed_network_action.description": "Возникла проблема с интернет соединением. Проверьте ваше подключение и повторите попытку.",
"mobile.failed_network_action.retry": "Попробовать ещё",
"mobile.failed_network_action.shortDescription": "Проверьте ваше подключение и попробуйте снова.",
"mobile.failed_network_action.shortDescription": "Messages will load when you have an internet connection or {refresh}.",
"mobile.failed_network_action.title": "Нет соединения с интернетом",
"mobile.file_upload.browse": "Выбрать файлы",
"mobile.file_upload.camera_photo": "Сделать фото",
"mobile.file_upload.camera_video": "Снять видео",
"mobile.file_upload.library": "Библиотека изображений",
"mobile.file_upload.max_warning": "Вы можете загрузить не более 5 файлов за раз.",
"mobile.file_upload.unsupportedMimeType": "Можно загружать только файлы следующего типа:\n{mimeTypes}",
"mobile.file_upload.video": "Библиотека видео",
"mobile.files_paste.error_description": "Ошибка при отправке сообщения. Пожалуйста, попробуйте снова.",
"mobile.files_paste.error_dismiss": "Отмена",
"mobile.files_paste.error_title": "Paste failed",
"mobile.flagged_posts.empty_description": "Флаги - один из способов, пометки сообщений для последующей деятельности. Ваши флаги не могут быть просмотрены другими пользователями.",
"mobile.flagged_posts.empty_title": "Отмеченные сообщения",
"mobile.help.title": "Помощь",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "Это первый канал, который видит новый участник группы - используйте его для отправки сообщений, которые должны увидеть все.",
"mobile.intro_messages.default_welcome": "Добро пожаловать в {name}!",
"mobile.intro_messages.DM": "Начало истории личных сообщений с {teammate}. Личные сообщения и файлы доступны здесь и не видны за пределами этой области.",
"mobile.ios.photos_permission_denied_description": "Чтобы сохранять фото и видео в библиотеку, вам нужно изменить настройки разрешений.",
"mobile.ios.photos_permission_denied_description": "Upload photos and videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo and video library.",
"mobile.ios.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.join_channel.error": "Мы не можем подключиться к каналу {displayName}. Пожалуйста, проверьте подключение и попробуйте заново.",
"mobile.loading_channels": "Загрузка списка каналов...",
"mobile.loading_members": "Загрузка списка участников...",
@@ -271,7 +286,11 @@
"mobile.managed.blocked_by": "Заблокирован {vendor}",
"mobile.managed.exit": "Выход",
"mobile.managed.jailbreak": "Устройства с джейлбрейком не являются доверенными {vendor}, выйдите из приложения.",
"mobile.managed.not_secured.android": "This device must be secured with a screen lock to use Mattermost.",
"mobile.managed.not_secured.ios": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Face ID & Passcode.",
"mobile.managed.not_secured.ios.touchId": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Touch ID & Passcode.",
"mobile.managed.secured_by": "Защищено {vendor}",
"mobile.managed.settings": "Go to settings",
"mobile.markdown.code.copy_code": "Скопировать код",
"mobile.markdown.code.plusMoreLines": "+{count, number} еще {count, plural, one {line} other {lines}}",
"mobile.markdown.image.too_large": "Изображение превышает максимальное разрешение {maxWidth} на {maxHeight}:",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Мы не можем подключиться к каналу {displayName}. Пожалуйста, проверьте подключение и попробуйте заново.",
"mobile.open_gm.error": "Не удалось подключиться к группе с этими пользователями. Пожалуйста, проверьте подключение и попробуйте заново.",
"mobile.open_unknown_channel.error": "Не могу присоединиться к каналу. Пожалуйста, сбросьте кэш и попробуйте снова.",
"mobile.permission_denied_dismiss": "Don't Allow",
"mobile.permission_denied_retry": "Параметры",
"mobile.photo_library_permission_denied_description": "Чтобы сохранять фото и видео в библиотеку, вам нужно изменить настройки разрешений.",
"mobile.photo_library_permission_denied_title": "{applicationName} would like to access your photo library",
"mobile.pinned_posts.empty_description": "Сохраняйте важные вещи, удерживая палец на сообщении и выбрав \"Прикрепить сообщение\".",
"mobile.pinned_posts.empty_title": "Нет прикреплённых сообщений",
"mobile.post_info.add_reaction": "Добавить реакцию",
"mobile.post_info.copy_text": "Копировать текст",
"mobile.post_info.flag": "Отметить",
"mobile.post_info.mark_unread": "Mark as Unread",
"mobile.post_info.pin": "Прикрепить сообщение",
"mobile.post_info.reply": "Ответить",
"mobile.post_info.unflag": "Снять отметку",
"mobile.post_info.unpin": "Открепить сообщение",
"mobile.post_pre_header.flagged": "Отмеченные",
"mobile.post_pre_header.pinned": "Прикреплённые",
"mobile.post_pre_header.pinned_flagged": "Прикреплённые и отмеченные",
"mobile.post_textbox.empty.message": "Вы пытаетесь отправить пустое сообщение.\nПожалуйста, убедитесь, что вы что-то написали или приложили хотя-бы один файл.",
"mobile.post_textbox.empty.ok": "Ок",
"mobile.post_textbox.empty.title": "Пустое сообщение",
"mobile.post_textbox.entire_channel.cancel": "Отмена",
"mobile.post_textbox.entire_channel.confirm": "Подтвердить",
"mobile.post_textbox.entire_channel.message": "By using @all or @channel you are about to send notifications to {totalMembers} people. Are you sure you want to do this?",
"mobile.post_textbox.entire_channel.message.with_timezones": "By using @all or @channel you are about to send notifications to {totalMembers} people in {timezones, number} {timezones, plural, one {timezone} other {timezones}}. Are you sure you want to do this?",
"mobile.post_textbox.entire_channel.title": "Подтвердите отправку уведомления всему каналу",
"mobile.post_textbox.uploadFailedDesc": "Некоторые вложения не были загружены на сервер. Вы уверены, что хотите отправить сообщение?",
"mobile.post_textbox.uploadFailedTitle": "Ошибка загрузки",
"mobile.post.cancel": "Отмена",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Не удалось отправить сообщение",
"mobile.post.retry": "Обновить",
"mobile.posts_view.moreMsg": "Загрузить еще сообщения",
"mobile.privacy_link": "Политика Конфиденциальности",
"mobile.push_notification_reply.button": "Отправить",
"mobile.push_notification_reply.placeholder": "Write a reply...",
"mobile.push_notification_reply.title": "Ответить",
"mobile.reaction_header.all_emojis": "All",
"mobile.recent_mentions.empty_description": "Здесь будут сообщения, которые содержат ваше имя или другие слова, отмеченные для уведомлений.",
"mobile.recent_mentions.empty_title": "Недавние упоминания",
"mobile.rename_channel.display_name_maxLength": "Название канала не должно превышать {maxLength, number} символов",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Создан {creator} в ",
"mobile.routes.channelInfo.delete_channel": "Архивировать канал",
"mobile.routes.channelInfo.favorite": "Избранные",
"mobile.routes.channelInfo.groupManaged": "Members are managed by linked groups",
"mobile.routes.code": "{language} код",
"mobile.routes.code.noLanguage": "Код",
"mobile.routes.edit_profile": "Изменить профиль",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName}",
"mobile.routes.thread_dm": "Ветка личных сообщений",
"mobile.routes.user_profile": "Профиль",
"mobile.routes.user_profile.edit": "Изменить",
"mobile.routes.user_profile.local_time": "МЕСТНОЕ ВРЕМЯ",
"mobile.routes.user_profile.send_message": "Отправить сообщение",
"mobile.search.after_modifier_description": "поиск сообщения после указанной даты",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Ничего не найдено",
"mobile.search.on_modifier_description": "поиск сообщений за нужную дату",
"mobile.search.recent_title": "Недавние запросы",
"mobile.select_team.guest_cant_join_team": "Your guest account has no teams or channels assigned. Please contact an administrator.",
"mobile.select_team.join_open": "Другие команды, к которым вы можете присоединиться.",
"mobile.select_team.no_teams": "Нет доступных команд, к которым вы можете присоединиться.",
"mobile.server_upgrade.button": "Ок\"",
"mobile.server_upgrade.description": "\nДля продолжения работы требуется обновление сервера Mattermost. Пожалуйста, обратитесь к системному администратору за подробностями.\n",
"mobile.server_upgrade.title": "Требуется обновление сервера",
"mobile.server_url.invalid_format": "Адрес должен начинаться с http:// или https://",
"mobile.session_expired": "Сессия истекла: войдите, чтобы продолжить получение уведомлений.",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications. Sessions for {siteName} are configured to expire every {daysCount, number} {daysCount, plural, one {day} other {days}}.",
"mobile.set_status.away": "Отошёл",
"mobile.set_status.dnd": "Не беспокоить",
"mobile.set_status.offline": "Не в сети",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "Ошибка при попытке поделиться файлом.",
"mobile.share_extension.error_title": "Ошибка расширения",
"mobile.share_extension.team": "Команда",
"mobile.share_extension.too_long_message": "Character count: {count}/{max}",
"mobile.share_extension.too_long_title": "Message is too long",
"mobile.sidebar_settings.permanent": "Permanent Sidebar",
"mobile.sidebar_settings.permanent_description": "Keep the sidebar open permanently",
"mobile.storage_permission_denied_description": "Upload files to your Mattermost instance. Open Settings to grant Mattermost Read and Write access to files on this device.",
"mobile.storage_permission_denied_title": "{applicationName} would like to access your files",
"mobile.suggestion.members": "Участники",
"mobile.system_message.channel_archived_message": "{username} произвёл архивирование канала.",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} updated the channel display name from: {oldDisplayName} to: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} удалил заголовок канала (было: {old})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} изменил(а) заголовок канала с {old} на {new}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} изменил(а) заголовок канала на {new}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} удалил заголовок канала (было: {old})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} сменил заголовок канала с {old} на {new}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} установил заголовок канала: {new}",
"mobile.terms_of_service.alert_cancel": "Отмена",
"mobile.terms_of_service.alert_ok": "Ок",
"mobile.terms_of_service.alert_retry": "Попробуйте снова",
"mobile.terms_of_service.get_terms_error_description": "Проверьте соединение с интернетом и попробуйте снова. Если ошибка не исчезнет, то обратитесь к своему системному администратору.",
"mobile.terms_of_service.get_terms_error_title": "Не могу загрузить положения об обслуживании.",
"mobile.terms_of_service.terms_rejected": "Вы должны принять положения об обслуживании перед входом на {siteName}. Пожалуйста, обратитесь к своему системному администратору за подробностями.",
"mobile.timezone_settings.automatically": "Выбрать автоматически",
"mobile.timezone_settings.manual": "Сменить часовой пояс",
"mobile.timezone_settings.select": "Выберите часовой пояс",
"mobile.tos_link": "Условия использования",
"mobile.user_list.deactivated": "Отключены",
"mobile.user.settings.notifications.email.fifteenMinutes": "Каждые 15 минут",
"mobile.video_playback.failed_description": "Возникла ошибка проигрывания видео.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Вы хотите установить статус \"Не беспокоить\" и отключить автоматические ответы?",
"modal.manual_status.auto_responder.message_offline": "Вы хотите установить статус \"Не в сети\" и отключить автоматические ответы?",
"modal.manual_status.auto_responder.message_online": "Вы хотите установить статус \"В сети\" и отключить автоматические ответы?",
"more_channels.archivedChannels": "Архивировать канал.",
"more_channels.dropdownTitle": "Show",
"more_channels.noMore": "Доступных каналов не найдено",
"more_channels.publicChannels": "Публичные каналы",
"more_channels.showArchivedChannels": "Show: Archived Channels",
"more_channels.showPublicChannels": "Публичный канал",
"more_channels.title": "Выберите канал",
"msg_typing.areTyping": "{users} и {last} печатают...",
"msg_typing.isTyping": "{user} печатает...",
"navbar_dropdown.logout": "Выйти",
"navbar.channel_drawer.button": "Channels and teams",
"navbar.channel_drawer.hint": "Opens the channels and teams drawer",
"navbar.leave": "Покинуть Канал",
"password_form.title": "Сброс пароля",
"password_send.checkInbox": "Проверьте свои входящие.",
@@ -458,25 +513,25 @@
"password_send.link": "Если акаунт с таким email существует, ты вы получите письмо со ссылкой для сброса пароля на:",
"password_send.reset": "Сбросить пароль",
"permalink.error.access": "Постоянная ссылка принадлежит к удалённому сообщению или каналу, к которому у вас нет доступа.",
"post_body.check_for_out_of_channel_groups_mentions.message": "did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups.",
"post_body.check_for_out_of_channel_mentions.link.and": " и ",
"post_body.check_for_out_of_channel_mentions.link.private": "добавить пользователей в приватный канал",
"post_body.check_for_out_of_channel_mentions.link.public": "добавить на канал",
"post_body.check_for_out_of_channel_mentions.message_last": "? Они увидят всю предыдущую историю сообщений.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "были упомянуты, но они не на канале. Не хотите ли вы ",
"post_body.check_for_out_of_channel_mentions.message.one": "упомянули, но пользователь не на канале. Не хотите ли вы ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.check_for_out_of_channel_mentions.message.one": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.commentedOn": "Commented on {name}'s message: ",
"post_body.deleted": "(сообщение удалено)",
"post_info.auto_responder": "Автоматический Ответ",
"post_info.bot": "Бот",
"post_info.del": "Удалить",
"post_info.edit": "Редактировать",
"post_info.guest": "GUEST",
"post_info.message.show_less": "Показать меньше",
"post_info.message.show_more": "Показать больше",
"post_info.system": "Система",
"post_message_view.edited": "(отредактировано)",
"posts_view.newMsg": "Новые сообщения",
"rename_channel.handleHolder": "буквы или цифры в нижнем регистре",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Часть этой ветки была удалена из-за политики хранения данных. Вы больше не можете писать в этой теме.",
"search_bar.search": "Поиск",
"search_header.results": "Результаты поиска",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Не в сети",
"status_dropdown.set_online": "В сети",
"status_dropdown.set_ooo": "Не на работе",
"suggestion.mention.all": "ВНИМАНИЕ: это приведёт к уведомлению всех в этом канале",
"suggestion.mention.all": "Уведомляет всех на канале",
"suggestion.mention.channel": "Уведомляет всех на канале",
"suggestion.mention.channels": "Мои каналы",
"suggestion.mention.here": "Уведомлять всех в канале и на сайте",
"suggestion.mention.here": "Уведомляет всех на канале",
"suggestion.mention.members": "Участники канала",
"suggestion.mention.morechannels": "Другие каналы",
"suggestion.mention.nonmembers": "Не в канале",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Я согласен",
"terms_of_service.api_error": "Не могу выполнить запрос. Если ошибка не исчезнет, обратитесь к своему системному администратору.",
"user.settings.display.clockDisplay": "Отображение времени",
"user.settings.display.custom_theme": "Пользовательская тема",
"user.settings.display.militaryClock": "24-часовой формат (пример: 16:00)",
"user.settings.display.normalClock": "12-часовой формат (пример: 4:00 PM)",
"user.settings.display.preferTime": "Выберите предпочитаемый формат времени.",

View File

@@ -1,15 +1,15 @@
{
"about.date": "Yapım Tarihi:",
"about.enterpriseEditione1": "Kurumsal Sürüm",
"about.enterpriseEditionLearn": "Enterprise Sürüm hakkında şuradan ayrıntılı bilgi alabilirsiniz:",
"about.enterpriseEditionLearn": "Enterprise Sürümü hakkında ayrıntılı bilgiyi şuradan alabilirsiniz:",
"about.enterpriseEditionSt": "Güvenlik duvarının arkasından modern iletişim.",
"about.hash": "Yapım Karması:",
"about.hashee": "Kurumsal Yapım Karması:",
"about.teamEditionLearn": "Mattermost topluluğuna katılın: ",
"about.teamEditionSt": "Tüm takım iletişimi tek bir yerde, anında aranabilir ve her yerden erişilebilir.",
"about.teamEditiont0": "Team Sürümü",
"about.teamEditiont1": "Enterprise Sürüm",
"about.title": "Mattermost Hakkında",
"about.teamEditiont1": "Enterprise Sürümü",
"about.title": "{appTitle} hakkında",
"announcment_banner.dont_show_again": "Yeniden görüntülenmesin",
"api.channel.add_member.added": "{addedUsername} kullanıcısı {username} tarafından kanala eklendi.",
"archivedChannelMessage": "**Arşivlenmiş bir kanala** bakıyorsunuz. Yeni ileti gönderilemez.",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "Örnek: \"Hatalar ve geliştirmeler kanalı\"",
"channel_notifications.ignoreChannelMentions.settings": "@channel, @here, @all yok sayılsın",
"channel_notifications.muteChannel.settings": "Kanal bildirimlerini kapat",
"channel.channelHasGuests": "Bu kanalda konuklar var",
"channel.hasGuests": "Bu grup iletisinde konuklar var",
"channel.isGuest": "Bu kişi bir konuk",
"combined_system_message.added_to_channel.many_expanded": "{users} ve {lastUser} {actor} tarafından **kanala eklendi**.",
"combined_system_message.added_to_channel.one": "{firstUser} {actor} tarafından **kanala eklendi**.",
"combined_system_message.added_to_channel.one_you": "{actor} tarafından **kanala eklendiniz**.",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{firstUser} ve {secondUser} {actor} tarafından **takıma eklendi**.",
"combined_system_message.joined_channel.many_expanded": "{users} ve {lastUser} **kanala katıldı**.",
"combined_system_message.joined_channel.one": "{firstUser} **kanala katıldı**.",
"combined_system_message.joined_channel.one_you": "**kanala katıldı**.",
"combined_system_message.joined_channel.one_you": "**Kanala katıldınız**.",
"combined_system_message.joined_channel.two": "{firstUser} ve {secondUser} **kanala katıldı**.",
"combined_system_message.joined_team.many_expanded": "{users} ve {lastUser} **takıma katıldı**.",
"combined_system_message.joined_team.one": "{firstUser} **takıma katıldı**.",
"combined_system_message.joined_team.one_you": "**takıma katıldı**.",
"combined_system_message.joined_team.one_you": "**Takıma katıldınız**.",
"combined_system_message.joined_team.two": "{firstUser} ve {secondUser} **takıma katıldı**.",
"combined_system_message.left_channel.many_expanded": "{users} ve {lastUser} **kanaldan ayrıldı**.",
"combined_system_message.left_channel.one": "{firstUser} **kanaldan ayrıldı**.",
"combined_system_message.left_channel.one_you": "**kanaldan ayrıldı**.",
"combined_system_message.left_channel.one_you": "**Kanaldan ayrıldınız**.",
"combined_system_message.left_channel.two": "{firstUser} ve {secondUser} **kanaldan ayrıldı**.",
"combined_system_message.left_team.many_expanded": "{users} ve {lastUser} **takımdan ayrıldı**.",
"combined_system_message.left_team.one": "{firstUser} **takımdan ayrıldı**.",
"combined_system_message.left_team.one_you": "**takımdan ayrıldı**.",
"combined_system_message.left_team.one_you": "**Takımdan ayrıldınız**.",
"combined_system_message.left_team.two": "{firstUser} ve {secondUser} **takımdan ayrıldı**.",
"combined_system_message.removed_from_channel.many_expanded": "{users} ve {lastUser} **kanaldan çıkarıldı**.",
"combined_system_message.removed_from_channel.one": "{firstUser} **kanaldan çıkarıldı**.",
@@ -70,21 +73,21 @@
"combined_system_message.you": "Siz",
"create_comment.addComment": "Yorum yazın...",
"create_post.deactivated": "Devre dışı bırakılmış bir kullanıcı ile arşivlenmiş bir kanala bakıyorsunuz.",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "{channelDisplayName} kanalına yazın",
"date_separator.today": "Bugün",
"date_separator.yesterday": "Dün",
"edit_post.editPost": "İletiyi düzenle...",
"edit_post.save": "Kaydet",
"error.team_not_found.title": "Takım Bulunamadı",
"file_attachment.download": "İndir",
"file_upload.fileAbove": "{max} MB boyutundan büyük dosyalar yüklenemez: {filename}",
"get_post_link_modal.title": "Kalıcı Bağlantıyı Kopyala",
"integrations.add": "Ekle",
"intro_messages.anyMember": " Tüm üyeler bu kanala üye olup iletileri okuyabilir.",
"intro_messages.beginning": "{name} başlangıcı",
"intro_messages.channel": "kanal",
"intro_messages.creator": "{name} {type} başlangıcı, oluşturan: {creator} tarih: {date}.",
"intro_messages.group": "özel kanal",
"intro_messages.creator": "{name} kanalı, {creator} tarafından {date} tarihinde başlatılmış.",
"intro_messages.creatorPrivate": "{name} özel kanalı, {creator} tarafından {date} tarihinde başlatılmış.",
"intro_messages.group_message": "Bu takım arkadaşlarınız ile doğrudan ileti geçmişinizin başlangıcı. Bu bölüm dışındaki kişiler burada paylaşılan doğrudan ileti ve dosyaları göremez.",
"intro_messages.noCreator": "{name} {type} başlangıcı, oluşturulma tarihi: {date}.",
"intro_messages.noCreator": "{name} kanalı, {date} tarihinde başlatılmış.",
"intro_messages.onlyInvited": " Bu özel kanalı yalnız çağrılmış üyeler görüntüleyebilir.",
"last_users_message.added_to_channel.type": "{actor} tarafından **kanala eklendiniz**.",
"last_users_message.added_to_team.type": "{actor} tarafından **takıma eklendiniz**.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Konulardaki anmalar",
"mobile.account_notifications.threads_start": "Başlattığım konular",
"mobile.account_notifications.threads_start_participate": "Başlattığım ya da katıldığım konular",
"mobile.account.settings.cancel": "İptal",
"mobile.account.settings.save": "Kaydet",
"mobile.action_menu.select": "Bir seçenek seçin",
"mobile.advanced_settings.clockDisplay": "Saat görünümü",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Belge ve Verileri Sil",
"mobile.advanced_settings.timezone": "Saat Dilimi",
"mobile.advanced_settings.title": "Gelişmiş Ayarlar",
"mobile.android.camera_permission_denied_description": "Kameranız ile fotoğraf ve görüntü çekebilmek için izin ayarlarınızı değiştirmelisiniz.",
"mobile.android.camera_permission_denied_title": "Kameraya erişim izni gereklidir",
"mobile.android.permission_denied_dismiss": "Kapat",
"mobile.android.permission_denied_retry": "İzni ayarla",
"mobile.android.photos_permission_denied_description": "Kitaplığınızdan görsel yükleyebilmek için izin ayarlarınızı değiştirmelisiniz.",
"mobile.android.photos_permission_denied_title": "Fotoğraf kitaplığına erişim izni gereklidir",
"mobile.android.storage_permission_denied_description": "Android aygıtınızdan görsel yükleyebilmek için izin ayarlarınızı değiştirmelisiniz.",
"mobile.android.storage_permission_denied_title": "Dosya depolamasına erişim izni gereklidir",
"mobile.android.videos_permission_denied_description": "Kitaplığınızdan görüntü yükleyebilmek için izin ayarlarınızı değiştirmelisiniz.",
"mobile.android.videos_permission_denied_title": "Görüntü kitaplığına erişim izni gereklidir",
"mobile.alert_dialog.alertCancel": "İptal",
"mobile.android.photos_permission_denied_description": "Fotoğrafları Mattermost kopyanıza yükleyin ya da aygıtınıza kaydedin. Mattermost uygulamasına fotoğraf kitaplığınızı okuma ve yazma izni vermek için ayarlarıın.",
"mobile.android.photos_permission_denied_title": "{applicationName} fotoğraflarınıza erişmek istiyor",
"mobile.android.videos_permission_denied_description": "Fotoğrafları Mattermost kopyanıza yükleyin ya da aygıtınıza kaydedin. Mattermost uygulamasına görüntü kitaplığınızı okuma ve yazma izni vermek için ayarlarıın.",
"mobile.android.videos_permission_denied_title": "{applicationName} görüntülerinize erişmek istiyor",
"mobile.announcement_banner.title": "Duyuru",
"mobile.authentication_error.message": "Mattermost üzerinde bir sorun çıktı. Lütfen yeni bir oturum başlatmak için kimliğinizi yeniden doğrulayın.",
"mobile.authentication_error.title": "Kimlik Doğrulama Sorunu",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Paz.Pzt,Sal,Çar,Per,Cum,Cmt",
"mobile.calendar.monthNames": "Ocak,Şubat,Mart,Nisan,Mayıs,Haziran,Temmuz,Ağustos,Eylül,Ekim,Kasım,Aralık",
"mobile.calendar.monthNamesShort": "Oca,Şub,Mar,Nis,May,Haz,Tem,Ağu,Eyl,Eki,Kas,Ara",
"mobile.camera_photo_permission_denied_description": "Fotoğraf çekin ve Mattermost kopyanıza yükleyin ya da aygıtınıza kaydedin. Mattermost uygulamasına kameranızı okuma ve yazma izni vermek için ayarlarıın.",
"mobile.camera_photo_permission_denied_title": "{applicationName} kameranıza erişmek istiyor",
"mobile.camera_video_permission_denied_description": "Görüntü çekin ve Mattermost kopyanıza yükleyin ya da aygıtınıza kaydedin. Mattermost uygulamasına kameranızı okuma ve yazma izni vermek için ayarlarıın.",
"mobile.camera_video_permission_denied_title": "{applicationName} kameranıza erişmek istiyor",
"mobile.channel_drawer.search": "Şuraya geç...",
"mobile.channel_info.alertMessageConvertChannel": "{displayName} özel bir kanala dönüştürüldüğünde, geçmiş iletiler ve üyelikler korunur. Herkese açık olarak paylaşılmış dosyalara bağlantıya sahip olan herkes erişmeye devam edebilir. Özel kanallara yalnız çağrı ile üye olunabilir. \n \nBu değişiklik kalıcıdır ve geri alınamaz.\n\n{displayName} kanalını özel kanala dönüştürmek istediğinize emin misiniz?",
"mobile.channel_info.alertMessageDeleteChannel": "{term} {name} kanalını arşivlemek istediğinize emin misiniz?",
"mobile.channel_info.alertMessageLeaveChannel": "{term} {name} kanalından ayrılmak istediğinize emin misiniz?",
"mobile.channel_info.alertNo": "Hayır",
"mobile.channel_info.alertTitleConvertChannel": "{displayName} özel kanala dönüştürülsün mü?",
"mobile.channel_info.alertTitleDeleteChannel": "{term} kanalını arşivle",
"mobile.channel_info.alertTitleLeaveChannel": "{term} Kanalından Ayrıl",
"mobile.channel_info.alertYes": "Evet",
"mobile.channel_info.convert": "Özel Kanala Dönüştürülsün",
"mobile.channel_info.convert_failed": "{displayName} özel kanala dönüştürülemedi.",
"mobile.channel_info.convert_success": " {displayName} artık bir özel kanal.",
"mobile.channel_info.copy_header": "Başlığı Kopyala",
"mobile.channel_info.copy_purpose": "Amacı Kopyala",
"mobile.channel_info.delete_failed": "{displayName} kanalı arşivlenemedi. Lütfen bağlantınızı denetleyip yeniden deneyin.",
"mobile.channel_info.edit": "Kanalı Düzenle",
"mobile.channel_info.privateChannel": "Özel Kanal",
"mobile.channel_info.publicChannel": "Herkese Açık Kanal",
"mobile.channel_list.alertNo": "Hayır",
"mobile.channel_list.alertYes": "Evet",
"mobile.channel_list.archived": "ARŞİVLENMİŞ",
"mobile.channel_list.channels": "KANALLAR",
"mobile.channel_list.closeDM": "Doğrudan İletiyi Kapat",
"mobile.channel_list.closeGM": "Grup İletisini Kapat",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Yeni Herkese Açık Kanal",
"mobile.create_post.read_only": "Bu kanal salt okunur",
"mobile.custom_list.no_results": "Herhangi bir sonuç bulunamadı",
"mobile.display_settings.sidebar": "Yan Çubuk",
"mobile.display_settings.theme": "Tema",
"mobile.document_preview.failed_description": "Belge açılırken bir sorun çıktı. Lütfen {fileType} türündeki dosyalar için bir görüntüleyicinin kurulmuş olduğundan emin olun ve yeniden deneyin.\n",
"mobile.document_preview.failed_title": "Belge Açılamadı",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Takımlar",
"mobile.edit_channel": "Kaydet",
"mobile.edit_post.title": "İleti Düzenleniyor",
"mobile.edit_profile.remove_profile_photo": "Fotoğrafı Kaldır",
"mobile.emoji_picker.activity": "ETKİNLİK",
"mobile.emoji_picker.custom": "ÖZEL",
"mobile.emoji_picker.flags": "İŞARETLER",
@@ -234,7 +245,7 @@
"mobile.emoji_picker.recent": "SON KULLANILANLAR",
"mobile.emoji_picker.symbols": "SİMGELER",
"mobile.error_handler.button": "Yeniden başlat",
"mobile.error_handler.description": "\nUygulamayı açmak için yeniden başlat üzerine tıklayın. Yeniden başlatıldıktan sonra ayarlar menüsünden sorunu bildirebilirsiniz.\n",
"mobile.error_handler.description": "\nUygulamayı yeniden açmak için yeniden başlat üzerine dokunun. Yeniden başlatıldıktan sonra ayarlar menüsünden sorunu bildirebilirsiniz.\n",
"mobile.error_handler.title": "Beklenmeyen bir sorun çıktı",
"mobile.extension.authentication_required": "Kimlik doğrulaması zorunludur. Lütfen önce uygulamayı kullanarak oturum açın.",
"mobile.extension.file_error": "Paylaşılmış dosya okunurken bir sorun çıktı.\nLütfen yeniden deneyin.",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Mattermost üzerinde paylaşılan ek dosyalar {size} boyutundan küçük olmalıdır.",
"mobile.extension.permission": "Mattermost dosyaları paylaşabilmek için depolama aygıtlarına erişebilmelidir.",
"mobile.extension.title": "Mattermost Üzerinde Paylaş",
"mobile.failed_network_action.description": "İnternet bağlantınızda bir sorun var gibi görünüyor. İnternet bağlantınızın çalıştığından emin olup yeniden deneyin.",
"mobile.failed_network_action.retry": "Yeniden Dene",
"mobile.failed_network_action.shortDescription": "Bağlantınızın çalıştığından emin olup yeniden deneyin.",
"mobile.failed_network_action.retry": "yeniden deneyin",
"mobile.failed_network_action.shortDescription": "İletiler İnternet bağlantısı kurulduğunda yüklenir ya da istiyorsanız {refresh}.",
"mobile.failed_network_action.title": "İnternet bağlantısı yok",
"mobile.file_upload.browse": "Dosyalara Gözat",
"mobile.file_upload.camera_photo": "Fotoğraf Çek",
"mobile.file_upload.camera_video": "Görüntü Kaydet",
"mobile.file_upload.library": "Fotoğraf Kitaplığı",
"mobile.file_upload.max_warning": "En fazla 5 dosya yüklenebilir.",
"mobile.file_upload.unsupportedMimeType": "Yalnız belirtilen MIME türündeki dosyalar yüklenebilir:\n{mimeTypes}",
"mobile.file_upload.video": "Görüntü Kitaplığı",
"mobile.files_paste.error_description": "Dosyalar yapıştırılırken bir sorun çıktı. Lütfen yeniden deneyin.",
"mobile.files_paste.error_dismiss": "Kapat",
"mobile.files_paste.error_title": "Yapıştırılamadı",
"mobile.flagged_posts.empty_description": "İşaretler iletileri izlemek için kullanılır. İşaretleriniz kişiseldir ve diğer kullanıcılar tarafından görülemez.",
"mobile.flagged_posts.empty_title": "Henüz İşaretlenmiş Bir İleti Yok",
"mobile.help.title": "Yardım",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "Takım arkadaşlarınız kayıt olduğunda görecekleri ilk kanal budur. Bu kanalı herkesin bilmesi gereken iletiler için kullanın.",
"mobile.intro_messages.default_welcome": "{name} üzerine hoş geldiniz!",
"mobile.intro_messages.DM": "{teammate} takım arkadaşınız ile doğrudan ileti geçmişinizin başlangıcı. Bu bölüm dışındaki kişiler burada paylaşılan doğrudan ileti ve dosyaları göremez.",
"mobile.ios.photos_permission_denied_description": "Kitaplığınıza fotoğraf ve görüntü kaydedebilmek için izin ayarlarınızı değiştirmelisiniz.",
"mobile.ios.photos_permission_denied_description": "Fotoğraf ve görüntüleri Mattermost kopyanıza yükleyin ya da aygıtınıza kaydedin. Mattermost uygulamasına fotoğraf ve görüntü kitaplığınızı okuma ve yazma izni vermek için ayarlarıın.",
"mobile.ios.photos_permission_denied_title": "{applicationName} fotoğraflarınıza erişmek istiyor",
"mobile.join_channel.error": "{displayName} kanalına katınılamadı. Lütfen bağlantınızı denetleyip yeniden deneyin.",
"mobile.loading_channels": "Kanallar Yükleniyor...",
"mobile.loading_members": "Üyeler Yükleniyor...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "{vendor} tarafından engellenmiş",
"mobile.managed.exit": ık",
"mobile.managed.jailbreak": "Jailbreak uygulanmış aygıtlara {vendor} tarafından güvenilmiyor, lütfen uygulamadan çıkın.",
"mobile.managed.not_secured.android": "Bu aygıtta Mattermost kullanılabilmesi için ekran kilidi güvenliğinin etkinleştirilmesi gerekir.",
"mobile.managed.not_secured.ios": "Bu aygıtta Mattermost kullanılabilmesi için parola güvenliğinin etkinleştirilmesi gerekir.\n\nAyarlar > Yüz Tanıma ve Parola bölümünden ayarlayabilirsiniz.",
"mobile.managed.not_secured.ios.touchId": "Bu aygıtta Mattermost kullanılabilmesi için parola güvenliğinin etkinleştirilmesi gerekir.\n\nAyarlar > Touch ID ve Parola bölümünden ayarlayabilirsiniz.",
"mobile.managed.secured_by": "{vendor} tarafından korunuyor",
"mobile.managed.settings": "Ayarlara git",
"mobile.markdown.code.copy_code": "Kodu Kopyala",
"mobile.markdown.code.plusMoreLines": "+ {count, number} diğer {count, plural, one {line} other {lines}}",
"mobile.markdown.code.plusMoreLines": "+ {count, number} diğer {count, plural, one {satır} other {satır}}",
"mobile.markdown.image.too_large": "Görsel {maxWidth} x {maxHeight} boyutundan büyük:",
"mobile.markdown.link.copy_url": "Adresi Kopyala",
"mobile.mention.copy_mention": "Anmayı Kopyala",
"mobile.message_length.message": "Geçerli iletiniz çok uzun. Geçerli karakter sayısı: {max}/{count}",
"mobile.message_length.message": "Yazdığınız ileti çok uzun. Şu andaki karakter sayısı: {count}/{max}",
"mobile.message_length.title": "İleti Uzunluğu",
"mobile.more_dms.add_more": "{remaining, number} kullanıcı daha ekleyebilirsiniz",
"mobile.more_dms.cannot_add_more": "Daha fazla kullanıcı ekleyemezsiniz",
@@ -315,7 +334,7 @@
"mobile.notification_settings.email.send": "E-POSTA BİLDİRİMLERİNİ GÖNDER",
"mobile.notification_settings.mentions_replies": "Anmalar ve Yanıtlar",
"mobile.notification_settings.mentions.channelWide": "Tüm kanal anmaları",
"mobile.notification_settings.mentions.reply_title": "Şunun için yanıt bildirimleri gönderilsin",
"mobile.notification_settings.mentions.reply_title": "Şunlar için yanıt bildirimleri gönderilsin",
"mobile.notification_settings.mentions.sensitiveName": "Büyük küçük harfe duyarlı olan adınız",
"mobile.notification_settings.mentions.sensitiveUsername": "Büyük küçük harfe duyarlı olmayan kullanıcı adınız",
"mobile.notification_settings.mobile": "Cep Telefonu",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "{displayName} kanalına doğrudan ileti açılamadı. Lütfen bağlantınızı denetleyip yeniden deneyin.",
"mobile.open_gm.error": "Bu kullanıcılar ile bir grup iletisi açılamadı. Lütfen bağlantınızı denetleyip yeniden deneyin.",
"mobile.open_unknown_channel.error": "Kanala katılınamadı. Lütfen ön belleği sıfırlayıp yeniden deneyin.",
"mobile.permission_denied_dismiss": "İzin Verme",
"mobile.permission_denied_retry": "Ayarlar",
"mobile.photo_library_permission_denied_description": "Kitaplığınıza fotoğraf ve görüntü kaydedebilmek için izin ayarlarınızı değiştirmelisiniz.",
"mobile.photo_library_permission_denied_title": "{applicationName} fotoğraf kitaplığınıza erişmek isityor",
"mobile.pinned_posts.empty_description": "Önemli iletileri üzerinde basılı tutarken \"Kanala Sabitle\" seçeneği ile sabitleyebilirsiniz.",
"mobile.pinned_posts.empty_title": "Herhangi bir ileti sabitlenmemiş",
"mobile.post_info.add_reaction": "Tepki Ekle",
"mobile.post_info.copy_text": "Metni Kopyala",
"mobile.post_info.flag": "İşaretle",
"mobile.post_info.mark_unread": "Okunmamış Olarak İşaretle",
"mobile.post_info.pin": "Kanala Sabitle",
"mobile.post_info.reply": "Yanıtla",
"mobile.post_info.unflag": "İşareti Kaldır",
"mobile.post_info.unpin": "Kanal Sabitlemesini Kaldır",
"mobile.post_pre_header.flagged": "İşaretlenmiş",
"mobile.post_pre_header.pinned": "Sabitlenmiş",
"mobile.post_pre_header.pinned_flagged": "Sabitlenmiş ve İşaretlenmiş",
"mobile.post_textbox.empty.message": "Boş bir ileti göndermeye çalışıyorsunuz.\nLütfen bir ileti yazdığınızdan ya da bir dosya eklediğinizden emin olun.",
"mobile.post_textbox.empty.ok": "Tamam",
"mobile.post_textbox.empty.title": "Boş İleti",
"mobile.post_textbox.entire_channel.cancel": "İptal",
"mobile.post_textbox.entire_channel.confirm": "Onayla",
"mobile.post_textbox.entire_channel.message": "@all ya da @channel kullandığınızda bildirimler {totalMembers} kişiye gönderilir. Bunu yapmak istediğinize emin misiniz?",
"mobile.post_textbox.entire_channel.message.with_timezones": "@all ya da @channel kullanıldığında bildirimler {totalMembers} kişiye ve {timezones, number} {timezones, plural, one {saat dilimine} other {saat dilimine}} gönderilir. Bunu yapmak istediğinize emin misiniz?",
"mobile.post_textbox.entire_channel.title": "Bildirimlerin tüm kanala gönderilmesini onayla",
"mobile.post_textbox.uploadFailedDesc": "Bazı ek dosyaları sunucuya yüklenemedi. İletiyi göndermek istediğinize emin misiniz?",
"mobile.post_textbox.uploadFailedTitle": "Ek dosya yüklenemedi",
"mobile.post.cancel": "İptal",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "İletinizi gönderilemedi",
"mobile.post.retry": "Yenile",
"mobile.posts_view.moreMsg": "Yukarıdaki Diğer Yeni İletiler",
"mobile.privacy_link": "Kişisel Verilerin Gizliliği İlkesi",
"mobile.push_notification_reply.button": "Gönder",
"mobile.push_notification_reply.placeholder": "Yanıt yazın...",
"mobile.push_notification_reply.title": "Yanıtla",
"mobile.reaction_header.all_emojis": "Tümü",
"mobile.recent_mentions.empty_description": "Kullanıcı adınızı ve diğer sözcükleri içeren iletilerin tetiklediği anmalar burada görüntülenir.",
"mobile.recent_mentions.empty_title": "Yakınlarda Bir Anılma Yok",
"mobile.rename_channel.display_name_maxLength": "Kanal adı en fazla {maxLength, number} karakter uzunluğunda olmalıdır",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "{creator} tarafından şu zamanda oluşturuldu ",
"mobile.routes.channelInfo.delete_channel": "Kanalı Arşivle",
"mobile.routes.channelInfo.favorite": "Beğendiklerime Ekle",
"mobile.routes.channelInfo.groupManaged": "Üyeler ilişkilendirilmiş gruplar tarafından yönetilir",
"mobile.routes.code": "{language} Kodu",
"mobile.routes.code.noLanguage": "Kod",
"mobile.routes.edit_profile": "Profili Düzenle",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} Konusu",
"mobile.routes.thread_dm": "Doğrudan İleti Konusu",
"mobile.routes.user_profile": "Profil",
"mobile.routes.user_profile.edit": "Düzenle",
"mobile.routes.user_profile.local_time": "YEREL ZAMAN",
"mobile.routes.user_profile.send_message": "İleti Gönder",
"mobile.search.after_modifier_description": "belirli bir tarihten sonraki iletileri bulmak için",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Herhangi bir sonuç bulunamadı",
"mobile.search.on_modifier_description": "belirli bir tarihteki iletileri bulmak için",
"mobile.search.recent_title": "Son Aramalar",
"mobile.select_team.guest_cant_join_team": "Konuk hesabınız ile ilişkili bir takım ya da kanal yok. Lütfen bir yönetici ile görüşün.",
"mobile.select_team.join_open": "Katılabileceğiniz diğer açık takımlar",
"mobile.select_team.no_teams": "Katılabileceğiniz herhangi bir takım yok.",
"mobile.server_upgrade.button": "Tamam",
"mobile.server_upgrade.description": "\nMattermost uygulamasını kullanmak için sunucunun güncellenmesi gerekiyor. Lütfen ayrıntılı bilgi almak için sistem yöneticisi ile görüşün.\n",
"mobile.server_upgrade.description": "\nMattermost uygulamasını kullanmak için sunucunun güncellenmesi gerekiyor. Ayrıntılı bilgi almak için Sistem Yöneticiniz ile görüşün.\n",
"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.session_expired": "Oturum Süresi Dolmuş: Lütfen bildirimleri alabilmek için oturum açın. {siteName} oturumları {daysCount, number} {daysCount, plural, one {gün} other {gün}} süreyle açık kalır.",
"mobile.set_status.away": "Uzakta",
"mobile.set_status.dnd": "Rahatsız Etmeyin",
"mobile.set_status.offline": "Çevrimdışı",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "Paylaşım eklentisi kullanılırken bir sorun çıktı.",
"mobile.share_extension.error_title": "Eklenti Sorunu",
"mobile.share_extension.team": "Takım",
"mobile.share_extension.too_long_message": "Karakter sayısı: {count}/{max}",
"mobile.share_extension.too_long_title": "İleti çok uzun",
"mobile.sidebar_settings.permanent": "Yan Çubuk Kalıcı Olsun",
"mobile.sidebar_settings.permanent_description": "Bu seçenek etkinleştirildiğinde, yan çubuk kalıcı olarak açık kalır",
"mobile.storage_permission_denied_description": "Dosyaları Mattermost kopyanıza yükleyin. Mattermost uygulamasına bu aygıt üzerindeki dosyaları okuma ve yazma izni vermek için ayarlarıın.",
"mobile.storage_permission_denied_title": "{applicationName} dosyalarınıza erişmek istiyor",
"mobile.suggestion.members": "Üyeler",
"mobile.system_message.channel_archived_message": "{username} kanalı arşivledi",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username}, {oldDisplayName} olarak görüntülenen kanal adını {newDisplayName} olarak değiştirdi",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} kanal başlığını kaldırdı ({oldHeader} idi)",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username}, {oldHeader} olan eski kanal başlığını {newHeader} olarak değiştirdi",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} kanal başlığını {newHeader} olarak değiştirdi",
"mobile.system_message.update_channel_purpose_message.removed": "{username} kanal amacını kaldırdı ({oldPurpose} idi)",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username}, {oldPurpose} olan eski kanal amacını {newPurpose} olarak değiştirdi",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} kanal amacını {newPurpose} olarak değiştirdi",
"mobile.terms_of_service.alert_cancel": "İptal",
"mobile.terms_of_service.alert_ok": "Tamam",
"mobile.terms_of_service.alert_retry": "Yeniden Dene",
"mobile.terms_of_service.get_terms_error_description": "İnternet bağlantınızın çalıştığından emin olun ve yeniden deneyin. Sorun sürerse Sistem Yöneticiniz ile görüşün.",
"mobile.terms_of_service.get_terms_error_title": "Hizmet koşulları yüklenemedi.",
"mobile.terms_of_service.terms_rejected": "{siteName} kullanmaya başlamak için hizmet koşullarını onaylamanız gerekir. Ayrıntılı bilgi almak için lütfen Sistem Yöneticiniz ile görüşün.",
"mobile.timezone_settings.automatically": "Otomatik olarak ayarlansın",
"mobile.timezone_settings.manual": "Saat dilimini değiştir",
"mobile.timezone_settings.select": "Saat Dilimini Seçin",
"mobile.tos_link": "Hizmet Koşulları",
"mobile.user_list.deactivated": "Devre Dışı",
"mobile.user.settings.notifications.email.fifteenMinutes": "15 dakikada bir",
"mobile.video_playback.failed_description": "Görüntü oynatılmaya çalışılırken bir sorun çıktı.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Durumunuzu \"Rahatsız Etmeyin\" olarak değiştirmek ve Otomatik Yanıtları devre dışı bırakmak istediğinize emin misiniz?",
"modal.manual_status.auto_responder.message_offline": "Durumunuzu \"Çevrimdışı\" olarak değiştirmek ve Otomatik Yanıtları devre dışı bırakmak istediğinize emin misiniz?",
"modal.manual_status.auto_responder.message_online": "Durumunuzu \"Çevrimiçi\" olarak değiştirmek ve Otomatik Yanıtları devre dışı bırakmak istediğinize emin misiniz?",
"more_channels.archivedChannels": "Arşivlenmiş Kanallar",
"more_channels.dropdownTitle": "Görüntüle",
"more_channels.noMore": "Katılabileceğiniz başka bir kanal yok",
"more_channels.publicChannels": "Herkese Açık Kanallar",
"more_channels.showArchivedChannels": "Görüntüle: Arşivlenmiş Kanallar",
"more_channels.showPublicChannels": "Görüntüle: Herkese Açık Kanallar",
"more_channels.title": "Diğer Kanallar",
"msg_typing.areTyping": "{users} ve {last} yazıyor...",
"msg_typing.isTyping": "{user} yazıyor...",
"navbar_dropdown.logout": "Oturumu Kapat",
"navbar.channel_drawer.button": "Kanallar ve takımlar",
"navbar.channel_drawer.hint": "Kanallar ve takımlar panosunu açar",
"navbar.leave": "Kanaldan Ayrıl",
"password_form.title": "Parolayı Sıfırla",
"password_send.checkInbox": "Lütfen gelen kutunuza bakın.",
@@ -458,25 +513,25 @@
"password_send.link": "Hesap varsa şuraya bir parola sıfırlama e-postası gönderilecek:",
"password_send.reset": "Parolamı sıfırla",
"permalink.error.access": "Kalıcı bağlantı silinmiş ya da erişiminiz olmayan bir kanaldaki bir iletiye ait.",
"post_body.check_for_out_of_channel_groups_mentions.message": "kanalda bulunmadıkları için bu anma nedeniyle bildirim gönderilmeyecek. İlişkilendirilmiş grupların üyesi olmadıklarından bu kanala eklenemezler. Onları bu kanala eklemek için ilişkilendirilmiş gruplara eklenmeleri gerekir.",
"post_body.check_for_out_of_channel_mentions.link.and": " ve ",
"post_body.check_for_out_of_channel_mentions.link.private": "bu özel kanala eklemek ister misiniz",
"post_body.check_for_out_of_channel_mentions.link.public": "kanala eklemek ister misiniz",
"post_body.check_for_out_of_channel_mentions.message_last": "? Tüm ileti geçmişini görebilirler.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "anılmış ancak kanalda değiller. Onları ",
"post_body.check_for_out_of_channel_mentions.message.one": "anılmış ancak kanalda değil. Onu ",
"post_body.check_for_out_of_channel_mentions.message.multiple": "kanalda bulunmadıkları için bu anma nedeniyle bildirim gönderilmeyecek. Şunu yapmak ister misiniz ",
"post_body.check_for_out_of_channel_mentions.message.one": "kanalda bulunmadıkları için bu anma nedeniyle bildirim gönderilmeyecek. Şunu yapmak ister misiniz ",
"post_body.commentedOn": "{name} iletisine yorum yapıldı: ",
"post_body.deleted": "(ileti silindi)",
"post_info.auto_responder": "OTOMATİK YANIT",
"post_info.bot": "BOT",
"post_info.del": "Sil",
"post_info.edit": "Düzenle",
"post_info.guest": "KONUK",
"post_info.message.show_less": "Daha Az Görüntüle",
"post_info.message.show_more": "Daha Çok Görüntüle",
"post_info.system": "Sistem",
"post_message_view.edited": "(düzenlendi)",
"posts_view.newMsg": "Yeni İletiler",
"rename_channel.handleHolder": "küçük alfasayısal karakterler",
"rename_channel.url": "Adres",
"rhs_thread.rootPostDeletedMessage.body": "Bu konunun bir bölümü veri saklama ilkesine uygun olarak silindi. Artık bu konuyu yanıtlayamazsınız.",
"search_bar.search": "Arama",
"search_header.results": "Arama Sonuçları",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Çevrimdışı",
"status_dropdown.set_online": "Çevrimiçi",
"status_dropdown.set_ooo": "Ofis Dışında",
"suggestion.mention.all": "DİKKAT: Bu işlem kanaldaki herkesi anacak",
"suggestion.mention.channel": "Kanaldaki herkese bildirilir",
"suggestion.mention.all": "Bu kanaldaki herkese bildirilir",
"suggestion.mention.channel": "Bu kanaldaki herkese bildirilir",
"suggestion.mention.channels": "Kanallarım",
"suggestion.mention.here": "Kanalda ve çevrimiçi olan herkese bildirilir",
"suggestion.mention.here": "Bu kanalda çevrimiçi olan herkese bildirilir",
"suggestion.mention.members": "Kanal Üyeleri",
"suggestion.mention.morechannels": "Diğer Kanallar",
"suggestion.mention.nonmembers": "Kanalda Değil",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Onaylıyorum",
"terms_of_service.api_error": "İstek yerine getirilemedi. Sorun sürerse Sistem Yöneticiniz ile görüşün.",
"user.settings.display.clockDisplay": "Saat Görünümü",
"user.settings.display.custom_theme": "Özel Tema",
"user.settings.display.militaryClock": "24 saat (16:00 gibi)",
"user.settings.display.normalClock": "12 saat (4:00 PM gibi)",
"user.settings.display.preferTime": "Saatin nasıl görüntüleneceğini ayarlayın.",
@@ -536,11 +592,11 @@
"user.settings.notifications.email.disabled": "E-posta bildirimleri devre dışı bırakılmış",
"user.settings.notifications.email.everyHour": "Saat başı",
"user.settings.notifications.email.immediately": "Hemen",
"user.settings.notifications.email.never": "Asla",
"user.settings.notifications.email.never": "Gönderilmesin",
"user.settings.notifications.email.send": "E-posta bildirimleri gönderilsin",
"user.settings.notifications.emailInfo": "{siteName} sitesinde 5 dakikadan uzun süre uzak ya da çevrimdışı olduğunuzda anma ve doğrudan iletiler için e-posta bildirimi gönderilir.",
"user.settings.notifications.never": "Asla",
"user.settings.notifications.onlyMentions": "Yalnız anma ve doğrudan iletiler",
"user.settings.notifications.emailInfo": "5 dakikadan uzun süre uzak ya da çevrimdışı olduğunuzda anma ve doğrudan iletiler için e-posta bildirimi gönderilir.",
"user.settings.notifications.never": "Gönderilmesin",
"user.settings.notifications.onlyMentions": "Yalnız anmalar ve doğrudan iletiler için",
"user.settings.push_notification.away": "Uzakta ya da çevrimdışı",
"user.settings.push_notification.disabled": "Anında bildirimler devre dışı bırakılmış",
"user.settings.push_notification.disabled_long": "Anında bildirimler Sistem Yöneticiniz tarafından devre dışı bırakılmış.",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "Всі спілкування вашої команди в одному місці, з миттєвим пошуком та доступом звідусюди.",
"about.teamEditiont0": "Team Edition",
"about.teamEditiont1": "Enterprise Edition",
"about.title": "Про Mattermost",
"about.title": "About {appTitle}",
"announcment_banner.dont_show_again": "Не показувати знову",
"api.channel.add_member.added": "{addedUsername} додано до каналу за {username}.",
"archivedChannelMessage": "Ви переглядаєте **архівований канал**. Нові повідомлення не можуть бути опубліковані.",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "Наприклад: \"Канал для помилок і побажань\"",
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
"channel_notifications.muteChannel.settings": "Вимкнути канал",
"channel.channelHasGuests": "This channel has guests",
"channel.hasGuests": "This group message has guests",
"channel.isGuest": "This person is a guest",
"combined_system_message.added_to_channel.many_expanded": "{users} і {finalUser} були **додані до каналу** {actor}.",
"combined_system_message.added_to_channel.one": "{firstUser} **запрошується на канал** користувачем {actor}. ",
"combined_system_message.added_to_channel.one_you": "Ви були **додані на канал** користувачем {actor}.",
@@ -71,18 +74,18 @@
"create_comment.addComment": "Додати коментар...",
"create_post.deactivated": "Ви переглядаєте архівований канал з деактивованим користувачем.",
"create_post.write": "Write to {channelDisplayName}",
"date_separator.today": "Today",
"date_separator.yesterday": "Yesterday",
"edit_post.editPost": "Редагувати повідомлення...",
"edit_post.save": "Зберегти",
"error.team_not_found.title": "Команда не знайдена",
"file_attachment.download": "Завантажити",
"file_upload.fileAbove": "Не можна завантажити файл більше {max} МВ: {filename}",
"get_post_link_modal.title": "Скопіювати постійне посилання",
"integrations.add": "Додати",
"intro_messages.anyMember": "Будь-який учасник може зайти і читати цей канал.",
"intro_messages.beginning": "Початок {name}",
"intro_messages.channel": "Канал",
"intro_messages.creator": "{name} {type}, створений {creator} {date}.",
"intro_messages.group": "Приватний канал ",
"intro_messages.creatorPrivate": "{name} {type}, створений {creator} {date}.",
"intro_messages.group_message": "Початок історії групових повідомлень з учасниками. Розміщені тут повідомлення і файли не видно за межами цієї області.",
"intro_messages.noCreator": "{name} - {type}, створене {date}",
"intro_messages.onlyInvited": "Тільки запрошені користувачі можуть бачити цей приватний канал.",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "Згадки в тредах",
"mobile.account_notifications.threads_start": "Гілки розпочаті мною",
"mobile.account_notifications.threads_start_participate": "Якщо я почав цю гілку або приймав участь в ній",
"mobile.account.settings.cancel": "Відміна",
"mobile.account.settings.save": "Зберегти ",
"mobile.action_menu.select": "Виберіть параметр",
"mobile.advanced_settings.clockDisplay": "Дисплей годинника",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "Delete Documents & Data",
"mobile.advanced_settings.timezone": "Часовий пояс",
"mobile.advanced_settings.title": "Додаткові параметри ",
"mobile.android.camera_permission_denied_description": "Щоб зробити фотографії та відеозаписи з вашою камерою, будь-ласка, змініть налаштування вашого дозволу.",
"mobile.android.camera_permission_denied_title": "Потрібен доступ до камери ",
"mobile.android.permission_denied_dismiss": "Відхилити",
"mobile.android.permission_denied_retry": "Встановити дозвіл",
"mobile.android.photos_permission_denied_description": "Щоб завантажити зображення з вашої бібліотеки, будь-ласка, змініть налаштування вашого дозволу.",
"mobile.android.photos_permission_denied_title": "Потрібен доступ до фото-бібліотеки",
"mobile.android.storage_permission_denied_description": "Щоб завантажити зображення з вашого пристрою Android, змініть налаштування дозволів.",
"mobile.android.storage_permission_denied_title": "Доступ до файлу зберігається обов'язково",
"mobile.android.videos_permission_denied_description": "Щоб завантажити відео з вашої бібліотеки, будь-ласка, змініть налаштування вашого дозволу.",
"mobile.android.videos_permission_denied_title": "Необхідно отримати доступ до відео-бібліотеки",
"mobile.alert_dialog.alertCancel": "Відміна",
"mobile.android.photos_permission_denied_description": "Upload photos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo library.",
"mobile.android.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.android.videos_permission_denied_description": "Upload videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your video library.",
"mobile.android.videos_permission_denied_title": "{applicationName} would like to access your videos",
"mobile.announcement_banner.title": "Оголошення",
"mobile.authentication_error.message": "Mattermost зіткнувся з помилкою. Будь-ласка, повторно перевірте автентичність, щоб розпочати новий сеанс.",
"mobile.authentication_error.title": "Помилка авторизації",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "Вс, Пн, Вт, Ср, Чт, Пт, Сб",
"mobile.calendar.monthNames": "Січень, лютий, березень, квітень, травень, червень, липень, серпень, вересень, жовтень, листопад, грудень",
"mobile.calendar.monthNamesShort": "Січень, лютий, березень, квітень, травень, червень, липень, серпень, середа, жовтень, листопад, грудень",
"mobile.camera_photo_permission_denied_description": "Take photos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_photo_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.camera_video_permission_denied_description": "Take videos and upload them to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your camera.",
"mobile.camera_video_permission_denied_title": "{applicationName} would like to access your camera",
"mobile.channel_drawer.search": "Перейти до ...",
"mobile.channel_info.alertMessageConvertChannel": "When you convert {displayName} to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only.\n\nThe change is permanent and cannot be undone.\n\nAre you sure you want to convert {displayName} to a private channel?",
"mobile.channel_info.alertMessageDeleteChannel": "Ви впевнені, що хочете архівувати {term} {name}?",
"mobile.channel_info.alertMessageLeaveChannel": "Ви дійсно бажаєте залишити {term} {name}?",
"mobile.channel_info.alertNo": "Ні",
"mobile.channel_info.alertTitleConvertChannel": "Перетворити {display_name} на приватний канал?",
"mobile.channel_info.alertTitleDeleteChannel": "Архів {термін}",
"mobile.channel_info.alertTitleLeaveChannel": "Залишити {термін}",
"mobile.channel_info.alertYes": "Так ",
"mobile.channel_info.convert": "Конвертувати в приватний канал",
"mobile.channel_info.convert_failed": "We were unable to convert {displayName} to a private channel.",
"mobile.channel_info.convert_success": "{displayName} is now a private channel.",
"mobile.channel_info.copy_header": "Copy Header",
"mobile.channel_info.copy_purpose": "Copy Purpose",
"mobile.channel_info.delete_failed": "Не вдалося архівувати канал {displayName}. Перевірте ваше з'єднання та повторіть спробу.",
"mobile.channel_info.edit": "Редагувати канал",
"mobile.channel_info.privateChannel": "Приватний канал",
"mobile.channel_info.publicChannel": "Публічний канал",
"mobile.channel_list.alertNo": "Ні ",
"mobile.channel_list.alertYes": "Так ",
"mobile.channel_list.archived": "ARCHIVED",
"mobile.channel_list.channels": "КАНАЛИ",
"mobile.channel_list.closeDM": "Закрити пряме повідомлення",
"mobile.channel_list.closeGM": "Закрити групове повідомлення",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "Новий публічний канал",
"mobile.create_post.read_only": "Цей канал доступний лише для читання",
"mobile.custom_list.no_results": "Немає результатів",
"mobile.display_settings.sidebar": "Бічна панель ",
"mobile.display_settings.theme": "Тема",
"mobile.document_preview.failed_description": "Під час відкриття документа сталася помилка. Будь-ласка, переконайтеся, що ви встановили програму перегляду {fileType} та повторіть спробу.\n",
"mobile.document_preview.failed_title": "Відкрити документ не вдалося",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "Команди ",
"mobile.edit_channel": "Зберегти ",
"mobile.edit_post.title": "Редагування повідомлення",
"mobile.edit_profile.remove_profile_photo": "Remove Photo",
"mobile.emoji_picker.activity": "АКТИВНІСТЬ ",
"mobile.emoji_picker.custom": "ПОСЛУГИ",
"mobile.emoji_picker.flags": "ФЛАГИ",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "Додатки до файлів, якими поділилися в Mattermost повинні бути менше {size}.",
"mobile.extension.permission": "Mattermost потрібен доступ до сховища пристрою для обміну файлами.",
"mobile.extension.title": "Поділіться в Mattermost",
"mobile.failed_network_action.description": "Здається, у вас виникла проблема з підключенням до Інтернету. Переконайтеся, що у вас активне з'єднання, і повторіть спробу.",
"mobile.failed_network_action.retry": "Спробуй ще раз",
"mobile.failed_network_action.shortDescription": "Переконайтеся, що у вас активне з'єднання, і повторіть спробу.",
"mobile.failed_network_action.shortDescription": "Messages will load when you have an internet connection or {refresh}.",
"mobile.failed_network_action.title": "Немає підключення до Інтернету",
"mobile.file_upload.browse": "Перегляньте файли",
"mobile.file_upload.camera_photo": "Сфотографувати",
"mobile.file_upload.camera_video": "Візьміть відео",
"mobile.file_upload.library": "Бібліотека фотозображень ",
"mobile.file_upload.max_warning": "Максимальна кількість завантажень - до 5 файлів.",
"mobile.file_upload.unsupportedMimeType": "Only files of the following MIME type can be uploaded:\n{mimeTypes}",
"mobile.file_upload.video": "Відео бібліотека",
"mobile.files_paste.error_description": "Помилка при направленні повідомлення. Будь-ласка, спробуйте знову.",
"mobile.files_paste.error_dismiss": "Відхилити",
"mobile.files_paste.error_title": "Paste failed",
"mobile.flagged_posts.empty_description": "Прапори - це спосіб позначення повідомлень для подальшого спостереження. Ваші прапори є особистими, і їх не можуть бачити інші користувачі.",
"mobile.flagged_posts.empty_title": "Немає позначених повідомлень",
"mobile.help.title": "Допомога",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "Це перший канал, який бачить новий учасник групи - використовуйте його для направлення повідомлень, які повинні побачити всі.",
"mobile.intro_messages.default_welcome": "Ласкаво просимо до {name}!",
"mobile.intro_messages.DM": "Початок історії особистих повідомлень з {teammate}. Особисті повідомлення і файли доступні тут і не видно за межами цієї області.",
"mobile.ios.photos_permission_denied_description": "Щоб зберегти зображення та відео в бібліотеці, змініть налаштування вашого дозволу.",
"mobile.ios.photos_permission_denied_description": "Upload photos and videos to your Mattermost instance or save them to your device. Open Settings to grant Mattermost Read and Write access to your photo and video library.",
"mobile.ios.photos_permission_denied_title": "{applicationName} would like to access your photos",
"mobile.join_channel.error": "Ми не можемо підключитися до каналу {displayName}. Будь-ласка, перевірте підключення та спробуйте знову.",
"mobile.loading_channels": "Завантаження списку каналів...",
"mobile.loading_members": "Завантаження списку учасників...",
@@ -271,7 +286,11 @@
"mobile.managed.blocked_by": "Заблоковано {vendor}",
"mobile.managed.exit": "Вхід",
"mobile.managed.jailbreak": "Пристрої з Jailbroken не є довіреними {vendor}, вийдіть з програми.",
"mobile.managed.not_secured.android": "This device must be secured with a screen lock to use Mattermost.",
"mobile.managed.not_secured.ios": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Face ID & Passcode.",
"mobile.managed.not_secured.ios.touchId": "This device must be secured with a passcode to use Mattermost.\n\nGo to Settings > Touch ID & Passcode.",
"mobile.managed.secured_by": "Захищено {vendor}",
"mobile.managed.settings": "Go to settings",
"mobile.markdown.code.copy_code": "Копія коду",
"mobile.markdown.code.plusMoreLines": "+{count, number} more {count, plural, one {line} other {lines}}",
"mobile.markdown.image.too_large": "Зображення перевищує макс. розміри {maxWidth} до {maxHeight}:",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "Ми не можемо підключитися до каналу {displayName}. Будь-ласка, перевірте підключення та спробуйте знову.",
"mobile.open_gm.error": "Помилка з'єднання із групи з цими користувачами. Будь-ласка, перевірте підключення та спробуйте заново.",
"mobile.open_unknown_channel.error": "Не вдається приєднатися до каналу. Скиньте кеш і спробуйте ще раз.",
"mobile.permission_denied_dismiss": "Don't Allow",
"mobile.permission_denied_retry": "Налаштування",
"mobile.photo_library_permission_denied_description": "Щоб зберегти зображення та відео в бібліотеці, змініть налаштування вашого дозволу.",
"mobile.photo_library_permission_denied_title": "{applicationName} would like to access your photo library",
"mobile.pinned_posts.empty_description": "Закріпіть важливі елементи, утримуючи на будь-якому повідомленні та обравши \"Прикріпити в каналі\".",
"mobile.pinned_posts.empty_title": "Немає закріплених повідомлень",
"mobile.post_info.add_reaction": "Додати реакцію",
"mobile.post_info.copy_text": "Копіювати текст",
"mobile.post_info.flag": "Відзначити ",
"mobile.post_info.mark_unread": "Mark as Unread",
"mobile.post_info.pin": "Прикріпити в каналі",
"mobile.post_info.reply": "Відповідь",
"mobile.post_info.unflag": "Не позначено ",
"mobile.post_info.unpin": "Від'єднати від каналу ",
"mobile.post_pre_header.flagged": "Позначено",
"mobile.post_pre_header.pinned": "Прикріплено",
"mobile.post_pre_header.pinned_flagged": "Прикріплений і позначений",
"mobile.post_textbox.empty.message": "Ви намагаєтеся надіслати порожнє повідомлення.\nБудь-ласка, переконайтеся, що у вас є повідомлення або щонайменше один прикріплений файл.",
"mobile.post_textbox.empty.ok": "OK",
"mobile.post_textbox.empty.title": "Порожнє повідомлення",
"mobile.post_textbox.entire_channel.cancel": "Відміна",
"mobile.post_textbox.entire_channel.confirm": "Підтвердьте",
"mobile.post_textbox.entire_channel.message": "Використовуючи @all або @channel, ви збираєтеся надсилати сповіщення {totalMembers} людям. Ви впевнені, що хочете це зробити? ",
"mobile.post_textbox.entire_channel.message.with_timezones": "Використовуючи @all або @channel, ви збираєтеся надсилати сповіщення** {totalMembers} людям** у **{timezones, number} {timezones, plural, one {timezone} other {timezones}}**. Ви впевнені, що хочете це зробити?",
"mobile.post_textbox.entire_channel.title": "Підтвердьте надсилання повідомлень на весь канал",
"mobile.post_textbox.uploadFailedDesc": "Деякі вкладення не змогли завантажити на сервер. Ви впевнені, що хочете опублікувати це повідомлення? ",
"mobile.post_textbox.uploadFailedTitle": "Вкладення несправності",
"mobile.post.cancel": "Відміна ",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "Не вдалося відправити повідомлення",
"mobile.post.retry": "Оновити",
"mobile.posts_view.moreMsg": "Більше нових повідомлень ",
"mobile.privacy_link": "Privacy Policy",
"mobile.push_notification_reply.button": "Відправити",
"mobile.push_notification_reply.placeholder": "Write a reply...",
"mobile.push_notification_reply.title": "Відповідь",
"mobile.reaction_header.all_emojis": "All",
"mobile.recent_mentions.empty_description": "Тут відображатимуться повідомлення, що містять ваше ім'я користувача та інші слова, які викликають згадування.",
"mobile.recent_mentions.empty_title": "Немає останніх згадок",
"mobile.rename_channel.display_name_maxLength": "Назва каналу має бути меншою за символи {maxLength, number}",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "Створено {creator} в",
"mobile.routes.channelInfo.delete_channel": "Архів каналів ",
"mobile.routes.channelInfo.favorite": "Вибрані",
"mobile.routes.channelInfo.groupManaged": "Members are managed by linked groups",
"mobile.routes.code": "{language} код",
"mobile.routes.code.noLanguage": "Код",
"mobile.routes.edit_profile": "Редагувати профіль",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} Деталі",
"mobile.routes.thread_dm": "Прямий потік повідомлень",
"mobile.routes.user_profile": "Профіль ",
"mobile.routes.user_profile.edit": "Редагувати",
"mobile.routes.user_profile.local_time": "МІСЦЕВИЙ ЧАС",
"mobile.routes.user_profile.send_message": "Відправлення повідомлень ",
"mobile.search.after_modifier_description": "щоб знайти повідомлення після певної дати",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "Нічого не знайдено",
"mobile.search.on_modifier_description": "щоб знайти повідомлення на певну дату",
"mobile.search.recent_title": "Останні пошуки",
"mobile.select_team.guest_cant_join_team": "Your guest account has no teams or channels assigned. Please contact an administrator.",
"mobile.select_team.join_open": "Інші команди, до яких ви можете приєднатися.",
"mobile.select_team.no_teams": "Немає доступних команд, до яких ви можете приєднатися.",
"mobile.server_upgrade.button": "OK",
"mobile.server_upgrade.description": "\nДля продовження роботи потрібно оновлення сервера Mattermost. Будь-ласка, зверніться до адміністратора за подробицями.\n",
"mobile.server_upgrade.title": "Потрібно оновлення сервера",
"mobile.server_url.invalid_format": "Адреса повинен починатися з http:// або https://",
"mobile.session_expired": "Сесія закінчилася. Увійдіть, щоб продовжувати отримувати сповіщення.",
"mobile.session_expired": "Session Expired: Please log in to continue receiving notifications. Sessions for {siteName} are configured to expire every {daysCount, number} {daysCount, plural, one {day} other {days}}.",
"mobile.set_status.away": "Не на місці",
"mobile.set_status.dnd": "Не турбувати ",
"mobile.set_status.offline": "Offline",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "Під час використання розширення спільного використання сталася помилка.",
"mobile.share_extension.error_title": "Помилка розширення",
"mobile.share_extension.team": "Команди ",
"mobile.share_extension.too_long_message": "Character count: {count}/{max}",
"mobile.share_extension.too_long_title": "Message is too long",
"mobile.sidebar_settings.permanent": "Permanent Sidebar",
"mobile.sidebar_settings.permanent_description": "Keep the sidebar open permanently",
"mobile.storage_permission_denied_description": "Upload files to your Mattermost instance. Open Settings to grant Mattermost Read and Write access to files on this device.",
"mobile.storage_permission_denied_title": "{applicationName} would like to access your files",
"mobile.suggestion.members": "Учасники",
"mobile.system_message.channel_archived_message": "{username} архівує канал.",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} updated the channel display name from: {oldDisplayName} to: {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{Username} видалив заголовок каналу (було: {old})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} змінив(ла) заголовок каналу з {old} на {new}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{Username} змінив(ла) заголовок каналу на {new}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} видалив заголовок каналу (було: {old})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} змінив заголовок каналу з {old} на {new}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} встановив заголовок каналу: {new}",
"mobile.terms_of_service.alert_cancel": "Відміна ",
"mobile.terms_of_service.alert_ok": "OK ",
"mobile.terms_of_service.alert_retry": "Спробуй ще раз ",
"mobile.terms_of_service.get_terms_error_description": "Переконайтеся, що у вас є активне з'єднання з Інтернетом та повторіть спробу. Якщо ця проблема не зникне, зверніться до свого системного адміністратора.",
"mobile.terms_of_service.get_terms_error_title": "Не вдається завантажити умови надання послуги.",
"mobile.terms_of_service.terms_rejected": "Ви повинні погодитись із умовами надання послуг, перш ніж звертатися до {siteName}. Щоб отримати докладнішу інформацію, зверніться до свого системного адміністратора. ",
"mobile.timezone_settings.automatically": "Встановити автоматично",
"mobile.timezone_settings.manual": "Змінити часовий пояс",
"mobile.timezone_settings.select": "Виберіть часовий пояс",
"mobile.tos_link": "Умови обслуговування",
"mobile.user_list.deactivated": "Деактивувати ",
"mobile.user.settings.notifications.email.fifteenMinutes": "Кожні 15 хвилин",
"mobile.video_playback.failed_description": "Під час спроби відтворити відео сталася помилка.\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "Ви хочете змінити свій статус на \"Не турбувати\" та вимкнути автоматичні відповіді?",
"modal.manual_status.auto_responder.message_offline": "Ви хочете змінити свій статус на \"Offline\" і вимкнути автоматичні відповіді?",
"modal.manual_status.auto_responder.message_online": "Хочете переключити свій статус на \"Online\" і вимкнути автоматичні відповіді?",
"more_channels.archivedChannels": "Архів каналів",
"more_channels.dropdownTitle": "Show",
"more_channels.noMore": "Більше немає каналів для входу",
"more_channels.publicChannels": "Публічні канали",
"more_channels.showArchivedChannels": "Show: Archived Channels",
"more_channels.showPublicChannels": "Новий публічний канал",
"more_channels.title": "Більше каналів",
"msg_typing.areTyping": "{users} і {last} друкують...",
"msg_typing.isTyping": "{користувач} друкує...",
"navbar_dropdown.logout": "Вийти ",
"navbar.channel_drawer.button": "Channels and teams",
"navbar.channel_drawer.hint": "Opens the channels and teams drawer",
"navbar.leave": "Залишити канал",
"password_form.title": "Скидання пароля",
"password_send.checkInbox": "Перевірте вашу поштову скриньку.",
@@ -458,25 +513,25 @@
"password_send.link": "Якщо обліковий запис існує, електронний лист для зміни пароля буде надіслано на адресу:",
"password_send.reset": "Скинути пароль ",
"permalink.error.access": "Постійне посилання належить до видаленого повідомлення або до каналу, на який ви не маєте доступу.",
"post_body.check_for_out_of_channel_groups_mentions.message": "did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups.",
"post_body.check_for_out_of_channel_mentions.link.and": "і",
"post_body.check_for_out_of_channel_mentions.link.private": "додайте їх до цього приватного каналу",
"post_body.check_for_out_of_channel_mentions.link.public": "додати їх до каналу",
"post_body.check_for_out_of_channel_mentions.message_last": "? Вони матимуть доступ до всієї історії повідомлень.",
"post_body.check_for_out_of_channel_mentions.message.multiple": "були згадані, але вони не перебувають у каналі. Чи хотіли б Ви",
"post_body.check_for_out_of_channel_mentions.message.one": "було згадано, але не в каналі. Чи хотіли б Ви",
"post_body.check_for_out_of_channel_mentions.message.multiple": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.check_for_out_of_channel_mentions.message.one": "did not get notified by this mention because they are not in the channel. Would you like to ",
"post_body.commentedOn": "Прокоментував {name} повідомлення:",
"post_body.deleted": "(повідомлення видалено)",
"post_info.auto_responder": "АВТОМАТИЧНА ВІДПОВІДЬ",
"post_info.bot": "BOT",
"post_info.del": "Видалити ",
"post_info.edit": "Редагувати",
"post_info.guest": "GUEST",
"post_info.message.show_less": "Показати менше",
"post_info.message.show_more": "Показати більше",
"post_info.system": "Система",
"post_message_view.edited": "(змінено)",
"posts_view.newMsg": "Нові повідомлення",
"rename_channel.handleHolder": "URL-адреса - буквено-цифрові символи в нижньому регістрі",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "Частина цього потоку видалена через політику збереження даних. Ви більше не можете відповісти на цей потік.",
"search_bar.search": "Пошук ",
"search_header.results": "Результати пошуку ",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "Offline ",
"status_dropdown.set_online": "Online ",
"status_dropdown.set_ooo": "Не на робочому місці",
"suggestion.mention.all": "УВАГА: це призведе до повідомлення всіх в цьому каналі",
"suggestion.mention.all": "Повідомляє всіх у каналі",
"suggestion.mention.channel": "Повідомляє всіх у каналі",
"suggestion.mention.channels": "Мої канали",
"suggestion.mention.here": "Повідомляє всіх у каналі та в Інтернеті",
"suggestion.mention.here": "Повідомляє всіх у каналі",
"suggestion.mention.members": "Учасники каналу ",
"suggestion.mention.morechannels": "Інші канали",
"suggestion.mention.nonmembers": "Не в каналі",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "Я згоден",
"terms_of_service.api_error": "Не вдається завантажити умови надання послуг. Якщо ця проблема не зникне, зверніться до свого системного адміністратора.",
"user.settings.display.clockDisplay": "Дисплей годинника ",
"user.settings.display.custom_theme": "Тема користувача",
"user.settings.display.militaryClock": "24-годинний формат (приклад: 16:00)",
"user.settings.display.normalClock": "12-годинний формат (приклад: 4:00 PM)",
"user.settings.display.preferTime": "Виберіть бажаний формат часу.",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "所有团队的通讯一站式解决,随时随地可搜索和访问。",
"about.teamEditiont0": "团队版本",
"about.teamEditiont1": "企业版本",
"about.title": "关于Mattermost",
"about.title": "关于{appTitle}",
"announcment_banner.dont_show_again": "不再显示",
"api.channel.add_member.added": "{addedUsername} 被 {username} 添加到此频道.",
"archivedChannelMessage": "您正在查看**已归档的频道**。新消息无法被发送。",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "例如:\"用于提交问题和建议的频道\"",
"channel_notifications.ignoreChannelMentions.settings": "忽略 @channel、@here 以及 @all",
"channel_notifications.muteChannel.settings": "静音频道",
"channel.channelHasGuests": "此频道有游客",
"channel.hasGuests": "此群消息有游客",
"channel.isGuest": "此人物为游客",
"combined_system_message.added_to_channel.many_expanded": "{actor} 添加了 {users} 以及 {lastUser} 至**此频道**。",
"combined_system_message.added_to_channel.one": "{actor} 添加了 {firstUser} 至**此频道**。",
"combined_system_message.added_to_channel.one_you": "您被 {actor} 添加至**此频道**。",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{actor} 添加了 {firstUser} 和 {secondUser} 至**此团队**。",
"combined_system_message.joined_channel.many_expanded": "{users} 以及 {lastUser} **加入了此频道**。",
"combined_system_message.joined_channel.one": "{firstUser} **加入了此频道**。",
"combined_system_message.joined_channel.one_you": "**加入了频道**。",
"combined_system_message.joined_channel.one_you": "**加入了频道**。",
"combined_system_message.joined_channel.two": "{firstUser} 和 {secondUser} **加入了此频道**。",
"combined_system_message.joined_team.many_expanded": "{users} 以及 {lastUser} **加入了此团队**。",
"combined_system_message.joined_team.one": "{firstUser} **加入了此团队**。",
"combined_system_message.joined_team.one_you": "**加入了团队**。",
"combined_system_message.joined_team.one_you": "**加入了团队**。",
"combined_system_message.joined_team.two": "{firstUser} 和 {secondUser} **加入了此团队**。",
"combined_system_message.left_channel.many_expanded": "{users} 以及 {lastUser} **离开了此频道**。",
"combined_system_message.left_channel.one": "{firstUser} **离开了此频道**。",
"combined_system_message.left_channel.one_you": "**离开了频道**。",
"combined_system_message.left_channel.one_you": "**离开了频道**。",
"combined_system_message.left_channel.two": "{firstUser} 和 {secondUser} **离开了此频道**。",
"combined_system_message.left_team.many_expanded": "{users} 以及 {lastUser} **离开了此团队**。",
"combined_system_message.left_team.one": "{firstUser} **离开了此团队**。",
"combined_system_message.left_team.one_you": "**离开了团队**。",
"combined_system_message.left_team.one_you": "**离开了团队**。",
"combined_system_message.left_team.two": "{firstUser} 以及 {secondUser} **离开了此团队**。",
"combined_system_message.removed_from_channel.many_expanded": "{users} 以及 {lastUser} **被移出此频道**。",
"combined_system_message.removed_from_channel.one": "{firstUser} **被移出此频道**。",
@@ -70,21 +73,21 @@
"combined_system_message.you": "您",
"create_comment.addComment": "添加一个评论...",
"create_post.deactivated": "您正在查看已注销用户的归档频道。",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "写入到{channelDisplayName}",
"date_separator.today": "今天",
"date_separator.yesterday": "昨天",
"edit_post.editPost": "编辑信息...",
"edit_post.save": "保存",
"error.team_not_found.title": "未找到团队",
"file_attachment.download": "下载",
"file_upload.fileAbove": "文件超过{max}MB不能被上传{filename}",
"get_post_link_modal.title": "复制永久链接",
"integrations.add": "添加",
"intro_messages.anyMember": " 任何成员可以加入和查看这个频道。",
"intro_messages.beginning": "{name} 的开端",
"intro_messages.channel": "频道",
"intro_messages.creator": "这是{name}{type}的开端,由{creator}于{date}建立。",
"intro_messages.group": "私有频道",
"intro_messages.creator": "这是{name}频道的开端,由{creator}于{date}建立。",
"intro_messages.creatorPrivate": "这是{name}私有频道的开端,由{creator}建立于{date}。",
"intro_messages.group_message": "这是您与此团队成员团体记录的开端。在这里的直接消息和文件共享除了在此的人外无法看到。",
"intro_messages.noCreator": "这是{name}{type}的开端,于{date}建立。",
"intro_messages.noCreator": "这是{name}的开端,建立于{date}。",
"intro_messages.onlyInvited": "只有受邀的成员才能看到这个私有频道。",
"last_users_message.added_to_channel.type": "被 {actor} **添加至此频道**。",
"last_users_message.added_to_team.type": "被 {actor} **添加至此团队**。",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "串中的提及",
"mobile.account_notifications.threads_start": "我创建的串",
"mobile.account_notifications.threads_start_participate": "我创建的或参与的串",
"mobile.account.settings.cancel": "取消",
"mobile.account.settings.save": "保存",
"mobile.action_menu.select": "选择选项",
"mobile.advanced_settings.clockDisplay": "时钟显示",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "删除文档及数据",
"mobile.advanced_settings.timezone": "时区",
"mobile.advanced_settings.title": "高级设置",
"mobile.android.camera_permission_denied_description": "请更改您的权限设定以拍照摄影。",
"mobile.android.camera_permission_denied_title": "需要摄像头权限",
"mobile.android.permission_denied_dismiss": "解除",
"mobile.android.permission_denied_retry": "设置权限",
"mobile.android.photos_permission_denied_description": "请更改您的权限设定以从您的照片库上传图片。",
"mobile.android.photos_permission_denied_title": "需要照片库访问权限",
"mobile.android.storage_permission_denied_description": "请更改您的权限设定以从您的安卓设备上传图片。",
"mobile.android.storage_permission_denied_title": "需要储存库访问权限",
"mobile.android.videos_permission_denied_description": "请更改您的权限设定以从您的视频库上传视频。",
"mobile.android.videos_permission_denied_title": "需要视频库访问权限",
"mobile.alert_dialog.alertCancel": "取消",
"mobile.android.photos_permission_denied_description": "上传照片到您的 Mattermost 或保存到您的设备。打开设定并允许 Mattermost 读写到您的相册。",
"mobile.android.photos_permission_denied_title": "{applicationName} 想要访问您的照片",
"mobile.android.videos_permission_denied_description": "上传视频到您的 Mattermost 或保存到您的设备。打开设定并允许 Mattermost 读写到您的视频。",
"mobile.android.videos_permission_denied_title": "{applicationName} 想要访问您的视频",
"mobile.announcement_banner.title": "公告",
"mobile.authentication_error.message": "Mattermost 遇到了错误。请重新认证开始新的会话。",
"mobile.authentication_error.title": "认证错误",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "周日,周一,周二,周三,周四,周五,周六",
"mobile.calendar.monthNames": "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月",
"mobile.calendar.monthNamesShort": "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月",
"mobile.channel_drawer.search": "转条到...",
"mobile.camera_photo_permission_denied_description": "拍照并上传到您的 Mattermost 或保存到您的设备。打开设定并允许 Mattermost 读写到您的相机。",
"mobile.camera_photo_permission_denied_title": "{applicationName} 想要使用您的相机",
"mobile.camera_video_permission_denied_description": "摄影并上传到您的 Mattermost 或保存到您的设备。打开设定并允许 Mattermost 读写到您的相机。",
"mobile.camera_video_permission_denied_title": "{applicationName} 想要使用您的相机",
"mobile.channel_drawer.search": "转至...",
"mobile.channel_info.alertMessageConvertChannel": "当您转换 {displayName} 至私有频道时,历史以及成员将被保留。公开共享的文件仍可用链接访问。私有频道成员需要被邀请才能加入。\n\n此操作为永久且不能取消。\n\n您确定要装换 {displayName} 至私有频道?",
"mobile.channel_info.alertMessageDeleteChannel": "您确定要归档 {term} {name}",
"mobile.channel_info.alertMessageLeaveChannel": "您确定要离开{term} {name}",
"mobile.channel_info.alertNo": "否",
"mobile.channel_info.alertTitleConvertChannel": "转换 {displayName} 为私有频道?",
"mobile.channel_info.alertTitleDeleteChannel": "归档 {term}",
"mobile.channel_info.alertTitleLeaveChannel": "离开 {term}",
"mobile.channel_info.alertYes": "是",
"mobile.channel_info.convert": "转换至私有频道",
"mobile.channel_info.convert_failed": "无法转换 {displayName} 为私有频道。",
"mobile.channel_info.convert_success": "{displayName} 已成为私有频道。",
"mobile.channel_info.copy_header": "复制标题",
"mobile.channel_info.copy_purpose": "复制用途",
"mobile.channel_info.delete_failed": "我们无法归档频道 {displayName}。请检查您的网络连接再尝试。",
"mobile.channel_info.edit": "编辑频道",
"mobile.channel_info.privateChannel": "私有频道",
"mobile.channel_info.publicChannel": "公共频道",
"mobile.channel_list.alertNo": "否",
"mobile.channel_list.alertYes": "是",
"mobile.channel_list.archived": "归档",
"mobile.channel_list.channels": "频道",
"mobile.channel_list.closeDM": "关闭私信",
"mobile.channel_list.closeGM": "关闭组消息",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "新公共频道",
"mobile.create_post.read_only": "此频道为只读",
"mobile.custom_list.no_results": "无结果",
"mobile.display_settings.sidebar": "侧栏",
"mobile.display_settings.theme": "主题",
"mobile.document_preview.failed_description": "打开文档时遇到错误。请确定您已安装 {fileType} 查看器后再重试。\n",
"mobile.document_preview.failed_title": "打开文档失败",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "团队",
"mobile.edit_channel": "保存",
"mobile.edit_post.title": "编辑消息",
"mobile.edit_profile.remove_profile_photo": "移除照片",
"mobile.emoji_picker.activity": "活动",
"mobile.emoji_picker.custom": "自定义",
"mobile.emoji_picker.flags": "旗帜",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "分享在 Mattermost 的附件必须小于 {size}。",
"mobile.extension.permission": "Mattermost 需要访问储存设备以共享文件。",
"mobile.extension.title": "分享到 Mattermost",
"mobile.failed_network_action.description": "您的网络连接有问题。请确认您的网络连接正常后重试。",
"mobile.failed_network_action.retry": "重试",
"mobile.failed_network_action.shortDescription": "请确定您有可用的连接后重试。",
"mobile.failed_network_action.shortDescription": "消息将在您有网络或 {refresh} 时加载。",
"mobile.failed_network_action.title": "无网络连接",
"mobile.file_upload.browse": "浏览文件",
"mobile.file_upload.camera_photo": "拍照",
"mobile.file_upload.camera_video": "录像",
"mobile.file_upload.library": "照片库",
"mobile.file_upload.max_warning": "最多上传 5 个文件。",
"mobile.file_upload.unsupportedMimeType": "只有拥有以下 MIME 类型的文件可上传:\n{mimeTypes}",
"mobile.file_upload.video": "视频库",
"mobile.files_paste.error_description": "粘贴文件时遇到错误。请重试。",
"mobile.files_paste.error_dismiss": "解除",
"mobile.files_paste.error_title": "粘贴失败",
"mobile.flagged_posts.empty_description": "标记信息以便之后更进。您的标记是个人的,不会被他人看到。",
"mobile.flagged_posts.empty_title": "无已标记的信息",
"mobile.help.title": "帮助",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "这是团队成员注册后第一个看到的频道 - 使用它发布所有人需要知道的消息。",
"mobile.intro_messages.default_welcome": "欢迎来到 {name}",
"mobile.intro_messages.DM": "这是您和{teammate}私信记录的开端。此区域外的人不能看到这里共享的私信和文件。",
"mobile.ios.photos_permission_denied_description": "请更改您的权限设定以保存图片和视频到您的库。",
"mobile.ios.photos_permission_denied_description": "上传照片和视频到您的 Mattermost 或保存到您的设备。打开设定并允许 Mattermost 读写到您的相册和视频集。",
"mobile.ios.photos_permission_denied_title": "{applicationName} 想要访问您的照片",
"mobile.join_channel.error": "我们无法加入频道 {displayName}。请检查您的网络连接再尝试。",
"mobile.loading_channels": "正在加载频道...",
"mobile.loading_members": "正在加载成员...",
@@ -271,7 +286,11 @@
"mobile.managed.blocked_by": "被 {vendor} 封锁",
"mobile.managed.exit": "退出",
"mobile.managed.jailbreak": "越狱的设备不被 {vendor} 信任,请退出应用。",
"mobile.managed.not_secured.android": "此设备必须开启屏幕锁才能使用 Mattermost。",
"mobile.managed.not_secured.ios": "此设备必须开启密码锁才能使用 Mattermost。\n\n前往设置 > 面容 ID 与密码。",
"mobile.managed.not_secured.ios.touchId": "此设备必须开启密码锁才能使用 Mattermost。\n\n前往设置 > 面容 ID 与密码。",
"mobile.managed.secured_by": "被 {vendor} 安全保护",
"mobile.managed.settings": "前往设置",
"mobile.markdown.code.copy_code": "复制代码",
"mobile.markdown.code.plusMoreLines": "+{count, number} 行",
"mobile.markdown.image.too_large": "图片超过最大尺寸 {maxWidth}x{maxHeight}",
@@ -307,7 +326,7 @@
"mobile.notification_settings.auto_responder_short": "自动回复",
"mobile.notification_settings.auto_responder.default_message": "你好,我现在已离开办公室并无法回复消息。",
"mobile.notification_settings.auto_responder.enabled": "已启用",
"mobile.notification_settings.auto_responder.footer_message": "设定在私信里自动回复的消息。在公共或私有频道下的提及不会触发自动回复。开启自动回复将设您的状态离开办公室并停用邮件和推送通知。",
"mobile.notification_settings.auto_responder.footer_message": "设定在私信里自动回复的消息。在公共或私有频道下的提及不会触发自动回复。开启自动回复将设您的状态离开办公室并停用邮件和推送通知。",
"mobile.notification_settings.auto_responder.message_placeholder": "消息",
"mobile.notification_settings.auto_responder.message_title": "自定义消息",
"mobile.notification_settings.email": "电子邮件",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "我们无法打开私信 {displayName}。请检查您的网络连接再尝试。",
"mobile.open_gm.error": "我们无法打开和这些用户的团体消息。请检查您的网络连接再尝试。",
"mobile.open_unknown_channel.error": "无法加入频道。请重置缓存后重试。",
"mobile.permission_denied_dismiss": "不允许",
"mobile.permission_denied_retry": "设置",
"mobile.photo_library_permission_denied_description": "请更改您的权限设定以保存图片和视频到您的媒体库。",
"mobile.photo_library_permission_denied_title": "{applicationName} 想访问您的相册",
"mobile.pinned_posts.empty_description": "按住任何消息并选择 \"置顶到频道\" 以置顶重要的项目。",
"mobile.pinned_posts.empty_title": "无置顶消息",
"mobile.post_info.add_reaction": "添加互动",
"mobile.post_info.copy_text": "复制文字",
"mobile.post_info.flag": "标记",
"mobile.post_info.mark_unread": "标为未读",
"mobile.post_info.pin": "置顶到频道",
"mobile.post_info.reply": "回复",
"mobile.post_info.unflag": "取消标记",
"mobile.post_info.unpin": "从频道取消置顶",
"mobile.post_pre_header.flagged": "已标记",
"mobile.post_pre_header.pinned": "已置顶",
"mobile.post_pre_header.pinned_flagged": "已被置顶及标记",
"mobile.post_textbox.empty.message": "您正在尝试发送空白消息。\n请确认有消息或至少附加一个附件。",
"mobile.post_textbox.empty.ok": "确",
"mobile.post_textbox.empty.title": "空消息",
"mobile.post_textbox.entire_channel.cancel": "取消",
"mobile.post_textbox.entire_channel.confirm": "确",
"mobile.post_textbox.entire_channel.message": "使用 @all 或 @channel 您将发送通知到 {totalMembers} 人。您确定要这样做?",
"mobile.post_textbox.entire_channel.message.with_timezones": "使用 @all 或 @channel 您将发送通知到 {timezones, number} 个时区的 {totalMembers} 人。您确定要这么做?",
"mobile.post_textbox.entire_channel.title": "确定发送通知到整个频道",
"mobile.post_textbox.uploadFailedDesc": "一些附件上传失败,您确定发送此消息?",
"mobile.post_textbox.uploadFailedTitle": "附件失败",
"mobile.post.cancel": "取消",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "无法发送您的消息",
"mobile.post.retry": "刷新",
"mobile.posts_view.moreMsg": "以上有更多新消息",
"mobile.privacy_link": "隐私政策",
"mobile.push_notification_reply.button": "发送",
"mobile.push_notification_reply.placeholder": "撰写回复...",
"mobile.push_notification_reply.title": "回复",
"mobile.reaction_header.all_emojis": "全部",
"mobile.recent_mentions.empty_description": "包含您的用户名或其他触发提及的消息将会显示在此。",
"mobile.recent_mentions.empty_title": "无最近提及",
"mobile.rename_channel.display_name_maxLength": "频道名必须小于 {maxLength, number} 个字符",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "{creator} 创建于 ",
"mobile.routes.channelInfo.delete_channel": "归档频道",
"mobile.routes.channelInfo.favorite": "收藏",
"mobile.routes.channelInfo.groupManaged": "成员由关联组管理",
"mobile.routes.code": "{language} 代码",
"mobile.routes.code.noLanguage": "代码",
"mobile.routes.edit_profile": "编辑个人资料",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} 串",
"mobile.routes.thread_dm": "私信串",
"mobile.routes.user_profile": "个人资料",
"mobile.routes.user_profile.edit": "编辑",
"mobile.routes.user_profile.local_time": "本地时间",
"mobile.routes.user_profile.send_message": "发送消息",
"mobile.search.after_modifier_description": "搜索指定日期后的消息",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "未找到结果",
"mobile.search.on_modifier_description": "搜索指定日期的消息",
"mobile.search.recent_title": "最近的搜索",
"mobile.select_team.guest_cant_join_team": "您的游客帐号没有分配团队或频道。请联系管理员。",
"mobile.select_team.join_open": "您可以加入的开放团队",
"mobile.select_team.no_teams": "没有您可以加入的团队。",
"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.session_expired": "会话过期:您登入继续接收通知。{siteName} 的会话过期时间设定为 {daysCount, number} 天。",
"mobile.set_status.away": "离开",
"mobile.set_status.dnd": "请勿打扰",
"mobile.set_status.offline": "离线",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "使用共享扩展时遇到了错误。",
"mobile.share_extension.error_title": "扩展错误",
"mobile.share_extension.team": "团队",
"mobile.share_extension.too_long_message": "字数:{count}/{max}",
"mobile.share_extension.too_long_title": "消息过长",
"mobile.sidebar_settings.permanent": "永久侧栏",
"mobile.sidebar_settings.permanent_description": "让侧栏永久开启",
"mobile.storage_permission_denied_description": "上传文件到您的 Mattermost。打开设定并允许 Mattermost 读写此设备上的文件。",
"mobile.storage_permission_denied_title": "{applicationName} 想要访问您的文件",
"mobile.suggestion.members": "成员",
"mobile.system_message.channel_archived_message": "{username} 已归档频道。",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} 已更新频道显示名从 {oldDisplayName} 改为 {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} 已移除频道标题 (原为:{oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} 更新了频道标题从:{oldHeader} 到 {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} 更新了频道标题到:{newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} 移除了频道用途 (原为:{oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} 更新了频道用途从:{oldPurpose} 到 {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} 更新了频道用途到:{newPurpose}",
"mobile.terms_of_service.alert_cancel": "取消",
"mobile.terms_of_service.alert_ok": "确定",
"mobile.terms_of_service.alert_retry": "重试",
"mobile.terms_of_service.get_terms_error_description": "请确定您有可用的网络连接后重试。如果此问题持续,请联系您的系统管理员。",
"mobile.terms_of_service.get_terms_error_title": "无法加载服务条款。",
"mobile.terms_of_service.terms_rejected": "在访问{siteName}前您必须同意服务条款。请联系您的系统管理员了解详情。",
"mobile.timezone_settings.automatically": "自动设定",
"mobile.timezone_settings.manual": "更改时区",
"mobile.timezone_settings.select": "选择时区",
"mobile.tos_link": "服务条款",
"mobile.user_list.deactivated": "已停用",
"mobile.user.settings.notifications.email.fifteenMinutes": "每 15 分钟",
"mobile.video_playback.failed_description": "尝试播放视频时发送错误。\n",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "你想切换您的状态到 \"请勿打扰\" 并停用自动回复吗?",
"modal.manual_status.auto_responder.message_offline": "你想切换您的状态到 \"离线\" 并停用自动回复吗?",
"modal.manual_status.auto_responder.message_online": "你想切换您的状态到 \"在线\" 并停用自动回复吗?",
"more_channels.archivedChannels": "已归档的频道",
"more_channels.dropdownTitle": "显示",
"more_channels.noMore": "没有更多可加入的频道",
"more_channels.publicChannels": "公共频道",
"more_channels.showArchivedChannels": "显示:已归档的频道",
"more_channels.showPublicChannels": "显示:公共频道",
"more_channels.title": "更多频道",
"msg_typing.areTyping": "{users}和{last}正在输入...",
"msg_typing.isTyping": "{user}正在输入...",
"navbar_dropdown.logout": "注销",
"navbar.channel_drawer.button": "频道与团队",
"navbar.channel_drawer.hint": "打开频道与团队菜单",
"navbar.leave": "离开频道",
"password_form.title": "密码重置",
"password_send.checkInbox": "请检查您的收件箱。",
@@ -458,25 +513,25 @@
"password_send.link": "如果账户存在,密码重置邮件将会被发送到:",
"password_send.reset": "重置我的密码",
"permalink.error.access": "此永久链接指向已删除的消息或者您没有权限访问的频道。",
"post_body.check_for_out_of_channel_groups_mentions.message": "未收到此提及因为他们不在此频道。他们无法加入此频道因为他们不是连动组成员。他们必须添加到关联组才能添加到此频道。",
"post_body.check_for_out_of_channel_mentions.link.and": " 以及 ",
"post_body.check_for_out_of_channel_mentions.link.private": "添加他们到此私有频道",
"post_body.check_for_out_of_channel_mentions.link.public": "添加他们到频道",
"post_body.check_for_out_of_channel_mentions.message_last": "? 他们将可以查看所有消息历史。",
"post_body.check_for_out_of_channel_mentions.message.multiple": "被提及但他们不在频道。您是否要",
"post_body.check_for_out_of_channel_mentions.message.one": "被提及但不在频道。您是否要",
"post_body.check_for_out_of_channel_mentions.message.multiple": "未收到此提及因为他们不在频道。您要",
"post_body.check_for_out_of_channel_mentions.message.one": "未收到此提及因为他们不在频道。您要",
"post_body.commentedOn": "在{name}的消息评论了:",
"post_body.deleted": "(消息被删除)",
"post_info.auto_responder": "自动回复",
"post_info.bot": "机器人",
"post_info.del": "删除",
"post_info.edit": "编辑",
"post_info.guest": "游客",
"post_info.message.show_less": "显示更少",
"post_info.message.show_more": "显示更多",
"post_info.system": "系统",
"post_message_view.edited": "(已编辑)",
"posts_view.newMsg": "新消息",
"rename_channel.handleHolder": "小写字母符",
"rename_channel.url": "URL",
"rhs_thread.rootPostDeletedMessage.body": "此消息贴部分数据因数据保留政策而删除。您无法再回复。",
"search_bar.search": "搜索",
"search_header.results": "搜索结果",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "离线",
"status_dropdown.set_online": "在线",
"status_dropdown.set_ooo": "离开办公室",
"suggestion.mention.all": "注意:这将提及此频道所有人",
"suggestion.mention.channel": "通知每个频道",
"suggestion.mention.all": "通知此频道所有人",
"suggestion.mention.channel": "通知此频道所有人",
"suggestion.mention.channels": "我的频道",
"suggestion.mention.here": "通知所有在此频道在线的人",
"suggestion.mention.here": "通知此频道所有在线的人",
"suggestion.mention.members": "频道成员",
"suggestion.mention.morechannels": "其他频道",
"suggestion.mention.nonmembers": "不在频道中",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "我同意",
"terms_of_service.api_error": "无法完成请求。如果此问题持续,请联系您的系统管理员。",
"user.settings.display.clockDisplay": "时钟显示",
"user.settings.display.custom_theme": "自定义主题",
"user.settings.display.militaryClock": "24小时格式例如16:00",
"user.settings.display.normalClock": "12小时格式例如4:00 PM",
"user.settings.display.preferTime": "选择您喜欢的时间显示格式。",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "立刻",
"user.settings.notifications.email.never": "从不",
"user.settings.notifications.email.send": "发送电子邮件通知",
"user.settings.notifications.emailInfo": "当您离开{siteName}超过5分钟或离线,系统将发送提及私信的电子邮件通知。",
"user.settings.notifications.emailInfo": "当您离线或离开超过5分钟,系统将发送提及私信的电子邮件通知。",
"user.settings.notifications.never": "从不",
"user.settings.notifications.onlyMentions": "只在提及和私信中",
"user.settings.push_notification.away": "离开或离线",

View File

@@ -9,7 +9,7 @@
"about.teamEditionSt": "您的團隊溝通皆在同處,隨時隨地皆可搜尋與存取。",
"about.teamEditiont0": "團隊版",
"about.teamEditiont1": "企業版",
"about.title": "關於 Mattermost",
"about.title": "關於 {appTitle}",
"announcment_banner.dont_show_again": "不要再顯示",
"api.channel.add_member.added": "{username} 已將 {addedUsername} 加入頻道",
"archivedChannelMessage": "正在觀看**被封存的頻道**。不能發布新訊息。",
@@ -35,6 +35,9 @@
"channel_modal.purposeEx": "如:\"用於歸檔錯誤跟改善的頻道\"",
"channel_notifications.ignoreChannelMentions.settings": "無視 @channel 、 @here 與 @all",
"channel_notifications.muteChannel.settings": "靜音頻道",
"channel.channelHasGuests": "此頻道有訪客",
"channel.hasGuests": "此群組訊息有訪客",
"channel.isGuest": "這個使用者是訪客",
"combined_system_message.added_to_channel.many_expanded": "{users}與{lastUser}已由{actor}**加入至此頻道**。",
"combined_system_message.added_to_channel.one": "{firstUser}已由{actor}**加入至此頻道**。",
"combined_system_message.added_to_channel.one_you": "您已由{actor}**加入至此頻道**。",
@@ -45,19 +48,19 @@
"combined_system_message.added_to_team.two": "{firstUser}與{secondUser}已由{actor}**加入至此團隊**。",
"combined_system_message.joined_channel.many_expanded": "{users}與{lastUser}已**加入至此頻道**。",
"combined_system_message.joined_channel.one": "{firstUser}已**加入至此頻道**。",
"combined_system_message.joined_channel.one_you": "**加入頻道**",
"combined_system_message.joined_channel.one_you": "**加入頻道**",
"combined_system_message.joined_channel.two": "{firstUser}與{secondUser}已**加入至此頻道**。",
"combined_system_message.joined_team.many_expanded": "{users}與{lastUser}已**加入至此團隊**。",
"combined_system_message.joined_team.one": "{firstUser}已**加入至此團隊**。",
"combined_system_message.joined_team.one_you": "**加入團隊**",
"combined_system_message.joined_team.one_you": "**加入團隊**",
"combined_system_message.joined_team.two": "{firstUser}與{secondUser}已**加入至此團隊**。",
"combined_system_message.left_channel.many_expanded": "{users}與{lastUser}已**離開此頻道**。",
"combined_system_message.left_channel.one": "{firstUser}已**離開此頻道**。",
"combined_system_message.left_channel.one_you": "**離開頻道**",
"combined_system_message.left_channel.one_you": "**離開頻道**",
"combined_system_message.left_channel.two": "{firstUser}與{secondUser}已**離開此頻道**。",
"combined_system_message.left_team.many_expanded": "{users}與{lastUser}已**離開此團隊**。",
"combined_system_message.left_team.one": "{firstUser}已**離開此團隊**。",
"combined_system_message.left_team.one_you": "**離開團隊**。",
"combined_system_message.left_team.one_you": "**離開團隊**。",
"combined_system_message.left_team.two": "{firstUser}與{secondUser}已**離開此團隊**。",
"combined_system_message.removed_from_channel.many_expanded": "{users}與{lastUser}已**被移出此頻道**。",
"combined_system_message.removed_from_channel.one": "{firstUser}已**被移出此頻道**。",
@@ -70,21 +73,21 @@
"combined_system_message.you": "您",
"create_comment.addComment": "新增註解...",
"create_post.deactivated": "正以被停用的使用者觀看被封存的頻道。",
"create_post.write": "Write to {channelDisplayName}",
"create_post.write": "寫給 {channelDisplayName}",
"date_separator.today": "今天",
"date_separator.yesterday": "昨天",
"edit_post.editPost": "修改訊息...",
"edit_post.save": "儲存",
"error.team_not_found.title": "找不到團隊",
"file_attachment.download": "下載",
"file_upload.fileAbove": "無法上傳超過{max}MB 的檔案:{filename}",
"get_post_link_modal.title": "複製永久連結",
"integrations.add": "新增",
"intro_messages.anyMember": " 任何成員可以加入並閱讀此頻道。",
"intro_messages.beginning": "{name}的開頭",
"intro_messages.channel": "頻道",
"intro_messages.creator": "這是{name}{type}的開頭,由{creator}建立於{date}。",
"intro_messages.group": "私人頻道",
"intro_messages.creator": "這是{name}頻道的開頭,由{creator}建立於{date}。",
"intro_messages.creatorPrivate": "這是{name}私人頻道的開頭,由{creator}建立於{date}。",
"intro_messages.group_message": "這是跟這些團隊成員之間群組訊息的起頭。直接訊息跟在這邊分享的檔案除了在此處以外的人都看不到。",
"intro_messages.noCreator": "這是{name}{type}的開頭,建立於{date}。",
"intro_messages.noCreator": "這是{name}頻道的開頭,建立於{date}。",
"intro_messages.onlyInvited": " 只有受邀請的成員能看見此私人頻道",
"last_users_message.added_to_channel.type": "已由{actor}**加入至此頻道**。",
"last_users_message.added_to_team.type": "已由{actor}**加入至此團隊**。",
@@ -128,7 +131,6 @@
"mobile.account_notifications.threads_mentions": "被提及的討論串",
"mobile.account_notifications.threads_start": "我開啟的討論串",
"mobile.account_notifications.threads_start_participate": "我開啟或參與的討論串",
"mobile.account.settings.cancel": "取消",
"mobile.account.settings.save": "儲存",
"mobile.action_menu.select": "選擇選項",
"mobile.advanced_settings.clockDisplay": "顯示時間",
@@ -137,16 +139,11 @@
"mobile.advanced_settings.delete_title": "刪除文件與資料",
"mobile.advanced_settings.timezone": "時區",
"mobile.advanced_settings.title": "進階設定",
"mobile.android.camera_permission_denied_description": "請變更權限設定以用相機拍照攝影。",
"mobile.android.camera_permission_denied_title": "需要存取相機",
"mobile.android.permission_denied_dismiss": "解除",
"mobile.android.permission_denied_retry": "設定權限",
"mobile.android.photos_permission_denied_description": "請變更權限設定以從相片庫上傳圖片。",
"mobile.android.photos_permission_denied_title": "需要存取相片庫",
"mobile.android.storage_permission_denied_description": "請變更權限設定以從相片庫上傳圖片。",
"mobile.android.storage_permission_denied_title": "需要存取儲存空間的權限",
"mobile.android.videos_permission_denied_description": "請變更權限設定以從影片庫上傳圖片。",
"mobile.android.videos_permission_denied_title": "需要存取影片庫",
"mobile.alert_dialog.alertCancel": "取消",
"mobile.android.photos_permission_denied_description": "上傳照片到 Mattermost 或是儲存到您的裝置。請開啟設定並允許 Mattermost 存取圖片庫。",
"mobile.android.photos_permission_denied_title": "{applicationName}想要存取您的照片",
"mobile.android.videos_permission_denied_description": "上傳影片到 Mattermost 或是儲存到您的裝置。請開啟設定並允許 Mattermost 存取影片庫。",
"mobile.android.videos_permission_denied_title": "{applicationName}想要存取您的影片",
"mobile.announcement_banner.title": "公佈事項",
"mobile.authentication_error.message": "Mattermost 發生錯誤。請重新認證以開始新的工作階段。",
"mobile.authentication_error.title": "認證錯誤",
@@ -154,19 +151,31 @@
"mobile.calendar.dayNamesShort": "週日,週一,週二,週三,週四,週五,週六",
"mobile.calendar.monthNames": "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月",
"mobile.calendar.monthNamesShort": "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月",
"mobile.camera_photo_permission_denied_description": "照相並上傳到 Mattermost 或是儲存到您的裝置。請開啟設定並允許 Mattermost 存取相機。",
"mobile.camera_photo_permission_denied_title": "{applicationName}想要存取您的相機",
"mobile.camera_video_permission_denied_description": "錄影並上傳到 Mattermost 或是儲存到您的裝置。請開啟設定並允許 Mattermost 存取相機。",
"mobile.camera_video_permission_denied_title": "{applicationName}想要存取您的相機",
"mobile.channel_drawer.search": "跳至...",
"mobile.channel_info.alertMessageConvertChannel": "當轉換 **{displayName}** 成私人頻道時,紀錄跟成員身份將被保留。公開分享的檔案依然能被擁有連結的人存取。私人頻道成員身份僅限於邀請。這將會是永久改變且不能取消。請確定要將 **{displayName}** 轉換成私人頻道。",
"mobile.channel_info.alertMessageDeleteChannel": "確定要封存{term} {name} 嘛?",
"mobile.channel_info.alertMessageLeaveChannel": "確定要離開{term} {name} 嘛?",
"mobile.channel_info.alertNo": "否",
"mobile.channel_info.alertTitleConvertChannel": "變更 {displayName} 為私人頻道?",
"mobile.channel_info.alertTitleDeleteChannel": "封存{term}",
"mobile.channel_info.alertTitleLeaveChannel": "退出{term}",
"mobile.channel_info.alertYes": "是",
"mobile.channel_info.convert": "變更為私人頻道",
"mobile.channel_info.convert_failed": "無法將 {displayName} 轉換成私人頻道",
"mobile.channel_info.convert_success": "{displayName} 現在是私人頻道。",
"mobile.channel_info.copy_header": "複製標題",
"mobile.channel_info.copy_purpose": "複製用途",
"mobile.channel_info.delete_failed": "無法封存頻道 {displayName}。請檢查連線並再試一次。 ",
"mobile.channel_info.edit": "編輯頻道",
"mobile.channel_info.privateChannel": "私人頻道",
"mobile.channel_info.publicChannel": "公開頻道",
"mobile.channel_list.alertNo": "否",
"mobile.channel_list.alertYes": "是",
"mobile.channel_list.archived": "已封存",
"mobile.channel_list.channels": "頻道",
"mobile.channel_list.closeDM": "關閉直接傳訊",
"mobile.channel_list.closeGM": "關閉群組訊息",
@@ -204,6 +213,7 @@
"mobile.create_channel.public": "新的公開頻道",
"mobile.create_post.read_only": "此頻道唯讀",
"mobile.custom_list.no_results": "找不到相符的結果",
"mobile.display_settings.sidebar": "側邊欄",
"mobile.display_settings.theme": "主題",
"mobile.document_preview.failed_description": "開啟文件時發生錯誤。請確定有安裝 {fileType} 觀看程式並再次嘗試。",
"mobile.document_preview.failed_title": "開啟文件失敗",
@@ -223,6 +233,7 @@
"mobile.drawer.teamsTitle": "團隊",
"mobile.edit_channel": "儲存",
"mobile.edit_post.title": "編輯訊息",
"mobile.edit_profile.remove_profile_photo": "移除相片",
"mobile.emoji_picker.activity": "活動",
"mobile.emoji_picker.custom": "自訂",
"mobile.emoji_picker.flags": "旗幟",
@@ -242,16 +253,19 @@
"mobile.extension.max_file_size": "在 Mattermost 中分享的附加檔案必須小於 {size}。",
"mobile.extension.permission": "Mattermost 需要存取裝置儲存空間以分享檔案。",
"mobile.extension.title": "分享至 Mattermost",
"mobile.failed_network_action.description": "網路連線似乎有問題。請確認正在連線中並重新嘗試。",
"mobile.failed_network_action.retry": "重試",
"mobile.failed_network_action.shortDescription": "請確認有網路連線並重新嘗試。",
"mobile.failed_network_action.shortDescription": "訊息將在有網際網路連線時讀取或{refresh}。",
"mobile.failed_network_action.title": "沒有網際網路連線",
"mobile.file_upload.browse": "瀏覽檔案",
"mobile.file_upload.camera_photo": "照相",
"mobile.file_upload.camera_video": "錄影",
"mobile.file_upload.library": "相簿",
"mobile.file_upload.max_warning": "上傳最多 5 個檔案。",
"mobile.file_upload.unsupportedMimeType": "只能上傳下列類型的檔案:{mimeTypes}",
"mobile.file_upload.video": "媒體櫃",
"mobile.files_paste.error_description": "貼上檔案時發生錯誤。請重新嘗試。",
"mobile.files_paste.error_dismiss": "解除",
"mobile.files_paste.error_title": "貼上失敗",
"mobile.flagged_posts.empty_description": "標記是標注訊息以追蹤後續的功能。您的標記是屬於個人的,不會被其他使用者看到。",
"mobile.flagged_posts.empty_title": "被標記的訊息",
"mobile.help.title": "說明",
@@ -260,7 +274,8 @@
"mobile.intro_messages.default_message": "這將是團隊成員註冊後第一個看到的頻道,請利用它張貼所有人都應該知道的事項。",
"mobile.intro_messages.default_welcome": "歡迎來到{name}",
"mobile.intro_messages.DM": "這是跟{teammate}之間直接訊息的起頭。直接訊息跟在這邊分享的檔案除了在此處以外的人都看不到。",
"mobile.ios.photos_permission_denied_description": "請變更權限設定以儲存圖片跟影像到圖庫中。",
"mobile.ios.photos_permission_denied_description": "上傳照片跟影片到 Mattermost 或是儲存到您的裝置。請開啟設定並允許 Mattermost 存取圖片與影片庫。",
"mobile.ios.photos_permission_denied_title": "{applicationName}想要存取您的相片",
"mobile.join_channel.error": "無法加入頻道 {displayName}。請檢查連線並再試一次。 ",
"mobile.loading_channels": "正在載入頻道...",
"mobile.loading_members": "正在載入成員...",
@@ -271,13 +286,17 @@
"mobile.managed.blocked_by": "被 {vendor} 阻擋",
"mobile.managed.exit": "離開",
"mobile.managed.jailbreak": "{vendor} 不信任越獄後的裝置,請關閉應用程式。",
"mobile.managed.not_secured.android": "這裝置必須要設定螢幕鎖以使用 Mattermost",
"mobile.managed.not_secured.ios": "這裝置必須要設定密碼以使用 Mattermost前往 設定 > Face ID 與密碼",
"mobile.managed.not_secured.ios.touchId": "這裝置必須要設定密碼以使用 Mattermost。前往 設定 > Touch ID 與密碼",
"mobile.managed.secured_by": "受到 {vendor} 保護",
"mobile.managed.settings": "前往設定",
"mobile.markdown.code.copy_code": "複製代碼",
"mobile.markdown.code.plusMoreLines": "以及其他 {count, number} 個檔案",
"mobile.markdown.image.too_large": "圖片超過最大尺寸 {maxWidth}x{maxHeight}",
"mobile.markdown.link.copy_url": "複製 URL",
"mobile.mention.copy_mention": "複製提及",
"mobile.message_length.message": "當前的訊息過長。字數統計:{max}/{count}",
"mobile.message_length.message": "當前的訊息過長。字數統計:{count}/{max}",
"mobile.message_length.title": "訊息長度",
"mobile.more_dms.add_more": "還能增加 {remaining, number} 位使用者",
"mobile.more_dms.cannot_add_more": "無法增加更多位使用者",
@@ -332,20 +351,28 @@
"mobile.open_dm.error": "無法開啟與{displayName}的直接傳訊。請檢查連線並再試一次。 ",
"mobile.open_gm.error": "無法開啟與這些使用者的直接傳訊。請檢查連線並再試一次。 ",
"mobile.open_unknown_channel.error": "無法加入頻道。請重置快取並重新嘗試。",
"mobile.permission_denied_dismiss": "不允許",
"mobile.permission_denied_retry": "設定",
"mobile.photo_library_permission_denied_description": "請變更權限設定以儲存圖片跟影像到圖庫中。",
"mobile.photo_library_permission_denied_title": "{applicationName}想要存取您的相片庫",
"mobile.pinned_posts.empty_description": "長按任何訊息並選擇\"釘選至頻道\"以釘選重要訊息。",
"mobile.pinned_posts.empty_title": "釘選的訊息",
"mobile.post_info.add_reaction": "新增反應",
"mobile.post_info.copy_text": "複製文字",
"mobile.post_info.flag": "標記",
"mobile.post_info.mark_unread": "標為尚未閱讀",
"mobile.post_info.pin": "釘選至頻道",
"mobile.post_info.reply": "回覆",
"mobile.post_info.unflag": "取消標記",
"mobile.post_info.unpin": "解除釘選",
"mobile.post_pre_header.flagged": "已被標記",
"mobile.post_pre_header.pinned": "已釘選",
"mobile.post_pre_header.pinned_flagged": "被釘選及標記",
"mobile.post_textbox.empty.message": "正在嘗試發送空白訊息。\n請確定有訊息或是至少有附加 1 個檔案。",
"mobile.post_textbox.empty.ok": "確",
"mobile.post_textbox.empty.title": "空白訊息",
"mobile.post_textbox.entire_channel.cancel": "取消",
"mobile.post_textbox.entire_channel.confirm": "確",
"mobile.post_textbox.entire_channel.message": "使用 @all 或 @channel 後將會通知 {totalMembers} 人,請確定要執行。",
"mobile.post_textbox.entire_channel.message.with_timezones": "使用 @all 或 @channel 將會發送通知給 {totalMembers} 位處於 {timezones, number} 個不同時區的成員。確定要執行?",
"mobile.post_textbox.entire_channel.title": "確認對整個頻道發送通知",
"mobile.post_textbox.uploadFailedDesc": "部份附加檔案上傳時失敗,請再次確定要發布此訊息?",
"mobile.post_textbox.uploadFailedTitle": "附加檔案失敗",
"mobile.post.cancel": "取消",
@@ -356,6 +383,11 @@
"mobile.post.failed_title": "無法傳送訊息",
"mobile.post.retry": "重新整理",
"mobile.posts_view.moreMsg": "上面還有更多的新訊息",
"mobile.privacy_link": "隱私政策",
"mobile.push_notification_reply.button": "送出",
"mobile.push_notification_reply.placeholder": "輸入回覆...",
"mobile.push_notification_reply.title": "回覆",
"mobile.reaction_header.all_emojis": "全部",
"mobile.recent_mentions.empty_description": "包含您的使用者名稱或其他觸發提及關鍵字的訊息將會顯示於此。",
"mobile.recent_mentions.empty_title": "最近提及",
"mobile.rename_channel.display_name_maxLength": "頻道名稱必須少於 {maxLength, number} 字",
@@ -378,6 +410,7 @@
"mobile.routes.channelInfo.createdBy": "由 {creator} 建立於",
"mobile.routes.channelInfo.delete_channel": "封存頻道",
"mobile.routes.channelInfo.favorite": "我的最愛",
"mobile.routes.channelInfo.groupManaged": "成員由連結群組管理",
"mobile.routes.code": "{language} 代碼",
"mobile.routes.code.noLanguage": "代碼",
"mobile.routes.edit_profile": "編輯個人資訊",
@@ -393,6 +426,7 @@
"mobile.routes.thread": "{channelName} 討論串",
"mobile.routes.thread_dm": "直接傳訊討論串",
"mobile.routes.user_profile": "個人檔案",
"mobile.routes.user_profile.edit": "編輯",
"mobile.routes.user_profile.local_time": "本地時間",
"mobile.routes.user_profile.send_message": "發送訊息",
"mobile.search.after_modifier_description": "搜尋指定日期之後的訊息",
@@ -405,13 +439,14 @@
"mobile.search.no_results": "找不到任何資料",
"mobile.search.on_modifier_description": "搜尋指定日期的訊息",
"mobile.search.recent_title": "最近的搜尋",
"mobile.select_team.guest_cant_join_team": "此訪客帳號沒有被指派團隊或頻道。請聯絡管理員。",
"mobile.select_team.join_open": "能加入的開放團隊。",
"mobile.select_team.no_teams": "沒有能加入的團隊。",
"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.session_expired": "工作階段期:請登入以繼續接收通知。{siteName}的工作階段被設定為每 {daysCount} 天逾期。",
"mobile.set_status.away": "離開",
"mobile.set_status.dnd": "請勿打擾",
"mobile.set_status.offline": "離線",
@@ -422,16 +457,29 @@
"mobile.share_extension.error_message": "使用分享擴充時發生錯誤。",
"mobile.share_extension.error_title": "擴充錯誤",
"mobile.share_extension.team": "團隊",
"mobile.share_extension.too_long_message": "字數:{count}/{max}",
"mobile.share_extension.too_long_title": "訊息太長",
"mobile.sidebar_settings.permanent": "永久側邊欄",
"mobile.sidebar_settings.permanent_description": "一直保持側邊欄開啟",
"mobile.storage_permission_denied_description": "上傳檔案到 Mattermost。請開啟設定並允許 Mattermost 存取檔案。",
"mobile.storage_permission_denied_title": "{applicationName}想要存取您的檔案",
"mobile.suggestion.members": "成員",
"mobile.system_message.channel_archived_message": "{username} 已封存頻道。",
"mobile.system_message.update_channel_displayname_message_and_forget.updated_from": "{username} 將頻道顯示名稱從 {oldDisplayName} 改成 {newDisplayName}",
"mobile.system_message.update_channel_header_message_and_forget.removed": "{username} 已移除頻道標題(原為:{oldHeader})",
"mobile.system_message.update_channel_header_message_and_forget.updated_from": "{username} 已更新頻道標題:從 {oldHeader} 改為 {newHeader}",
"mobile.system_message.update_channel_header_message_and_forget.updated_to": "{username} 已更新頻道標題為:{newHeader}",
"mobile.system_message.update_channel_purpose_message.removed": "{username} 已移除頻道用途(原為:{oldPurpose})",
"mobile.system_message.update_channel_purpose_message.updated_from": "{username} 已更新頻道用途:從 {oldPurpose} 改為 {newPurpose}",
"mobile.system_message.update_channel_purpose_message.updated_to": "{username} 已更新頻道用途為:{newPurpose}",
"mobile.terms_of_service.alert_cancel": "取消",
"mobile.terms_of_service.alert_ok": "確定",
"mobile.terms_of_service.alert_retry": "重試",
"mobile.terms_of_service.get_terms_error_description": "請確定有運作中的網際網路連線並重新嘗試。如果此問題依然持續,請聯絡系統管理員。",
"mobile.terms_of_service.get_terms_error_title": "無法讀取使用條款。",
"mobile.terms_of_service.terms_rejected": "在使用 {siteName} 前必須同意服務條款。詳情請聯絡系統管理員",
"mobile.timezone_settings.automatically": "自動設定",
"mobile.timezone_settings.manual": "更改時區",
"mobile.timezone_settings.select": "選擇時區",
"mobile.tos_link": "服務條款",
"mobile.user_list.deactivated": "停用",
"mobile.user.settings.notifications.email.fifteenMinutes": "每 15 分鐘",
"mobile.video_playback.failed_description": "嘗試播放影片時發生錯誤。",
@@ -445,11 +493,18 @@
"modal.manual_status.auto_responder.message_dnd": "是否將狀態改為\"請勿打擾\"並停用自動回復?",
"modal.manual_status.auto_responder.message_offline": "是否將狀態改為\"離線\"並停用自動回復?",
"modal.manual_status.auto_responder.message_online": "是否將狀態改為\"線上\"並停用自動回復?",
"more_channels.archivedChannels": "封存頻道",
"more_channels.dropdownTitle": "顯示",
"more_channels.noMore": "沒有可參加的頻道",
"more_channels.publicChannels": "公開頻道",
"more_channels.showArchivedChannels": "顯示:已封存的頻道",
"more_channels.showPublicChannels": "顯示:公開頻道",
"more_channels.title": "更多頻道",
"msg_typing.areTyping": "{users}跟{last}正在打字...",
"msg_typing.isTyping": "{user}正在打字...",
"navbar_dropdown.logout": "登出",
"navbar.channel_drawer.button": "頻道與團隊",
"navbar.channel_drawer.hint": "開啟頻道與團隊選單",
"navbar.leave": "離開頻道",
"password_form.title": "密碼重設",
"password_send.checkInbox": "請檢查收件夾。",
@@ -458,25 +513,25 @@
"password_send.link": "如果帳號存在,將會寄送密碼重置郵件至:",
"password_send.reset": "重置我的密碼",
"permalink.error.access": "此永久連結通往被刪除的訊息或是您沒有觀看權限的頻道。",
"post_body.check_for_out_of_channel_groups_mentions.message": "沒有因這個提及而收到通知,因為他們不在頻道中。由於他們不是連結群組的成員,無法將其加入此頻道。如要將使用者加入此頻道,必須將他們加入連結群組。",
"post_body.check_for_out_of_channel_mentions.link.and": "與",
"post_body.check_for_out_of_channel_mentions.link.private": "將他們加進此私人頻道",
"post_body.check_for_out_of_channel_mentions.link.public": "將他們加進此頻道",
"post_body.check_for_out_of_channel_mentions.message_last": "?他們將可以瀏覽所有的訊息紀錄。",
"post_body.check_for_out_of_channel_mentions.message.multiple": "被提及但是不在頻道。請問是否要",
"post_body.check_for_out_of_channel_mentions.message.one": "被提及但是不在頻道。請問是否要",
"post_body.check_for_out_of_channel_mentions.message.multiple": "沒有因這個提及而收到通知,因為他們不在頻道。請問是否要",
"post_body.check_for_out_of_channel_mentions.message.one": "沒有因這個提及而收到通知,因為他們不在頻道。請問是否要",
"post_body.commentedOn": " 已在{name}的訊息上註記:",
"post_body.deleted": "(訊息已刪除)",
"post_info.auto_responder": "自動回覆",
"post_info.bot": "機器人",
"post_info.del": "刪除",
"post_info.edit": "編輯",
"post_info.guest": "訪客",
"post_info.message.show_less": "顯示較少內容",
"post_info.message.show_more": "顯示更多",
"post_info.system": "系統",
"post_message_view.edited": "(被編輯過)",
"posts_view.newMsg": "新訊息",
"rename_channel.handleHolder": "請用小寫英數字",
"rename_channel.url": "網址:",
"rhs_thread.rootPostDeletedMessage.body": "此討論串有部份已根據資料保留政策被刪除。無法回覆此討論串。",
"search_bar.search": "搜尋",
"search_header.results": "搜尋結果",
@@ -498,10 +553,10 @@
"status_dropdown.set_offline": "離線",
"status_dropdown.set_online": "上線",
"status_dropdown.set_ooo": "不在辦公室",
"suggestion.mention.all": "注意:這將會提及頻道中的所有人",
"suggestion.mention.all": "通知頻道全員",
"suggestion.mention.channel": "通知頻道全員",
"suggestion.mention.channels": "我的頻道",
"suggestion.mention.here": "通知頻道所有在線的人",
"suggestion.mention.here": "通知頻道全體在線成員",
"suggestion.mention.members": "頻道成員",
"suggestion.mention.morechannels": "其他頻道",
"suggestion.mention.nonmembers": "不在頻道中",
@@ -512,6 +567,7 @@
"terms_of_service.agreeButton": "同意",
"terms_of_service.api_error": "無法完成請求。如果此問題持續發生,請聯絡系統管理員。",
"user.settings.display.clockDisplay": "顯示時間",
"user.settings.display.custom_theme": "自訂佈景主題",
"user.settings.display.militaryClock": "24 小時制(如16:00)",
"user.settings.display.normalClock": "12 小時制(如4:00 PM)",
"user.settings.display.preferTime": "選擇時間顯示方式。",
@@ -538,7 +594,7 @@
"user.settings.notifications.email.immediately": "立即",
"user.settings.notifications.email.never": "永不",
"user.settings.notifications.email.send": "發送電子郵件通知",
"user.settings.notifications.emailInfo": "在離線或是離開 {siteName} 超過 5 分鐘時,會發送電子郵件以通知關於您的提及與直接訊息。",
"user.settings.notifications.emailInfo": "在離線或是離開超過 5 分鐘時,會發送電子郵件以通知關於您的提及與直接訊息。",
"user.settings.notifications.never": "永不",
"user.settings.notifications.onlyMentions": "僅限於提及跟直接訊息",
"user.settings.push_notification.away": "離開或離線",

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayout
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
@@ -16,4 +16,4 @@
android:adjustViewBounds="true"
android:src="@drawable/splash" />
</android.support.percent.PercentRelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -6,17 +6,17 @@ GEM
public_suffix (>= 2.0.2, < 5.0)
atomos (0.1.3)
aws-eventstream (1.0.3)
aws-partitions (1.228.0)
aws-sdk-core (3.72.0)
aws-partitions (1.242.0)
aws-sdk-core (3.80.0)
aws-eventstream (~> 1.0, >= 1.0.2)
aws-partitions (~> 1, >= 1.228.0)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.25.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.51.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sdk-s3 (1.57.0)
aws-sdk-core (~> 3, >= 3.77.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.1.0)
@@ -43,7 +43,7 @@ GEM
faraday_middleware (0.13.1)
faraday (>= 0.7.4, < 1.0)
fastimage (2.1.7)
fastlane (2.134.0)
fastlane (2.136.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
babosa (>= 1.0.2, < 2.0.0)
@@ -94,7 +94,7 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
signet (~> 0.9)
google-cloud-core (1.4.0)
google-cloud-core (1.4.1)
google-cloud-env (~> 1.0)
google-cloud-env (1.3.0)
faraday (~> 0.11)
@@ -117,7 +117,7 @@ GEM
jmespath (1.4.0)
json (2.2.0)
jwt (2.1.0)
memoist (0.16.0)
memoist (0.16.1)
mime-types (3.3)
mime-types-data (~> 3.2015)
mime-types-data (3.2019.1009)
@@ -128,7 +128,7 @@ GEM
multipart-post (2.0.0)
nanaimo (0.2.6)
naturally (2.2.0)
nokogiri (1.10.4)
nokogiri (1.10.5)
mini_portile2 (~> 2.4.0)
os (1.0.1)
plist (3.5.0)

View File

@@ -1112,7 +1112,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 245;
CURRENT_PROJECT_VERSION = 256;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;
@@ -1150,7 +1150,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 245;
CURRENT_PROJECT_VERSION = 256;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;

View File

@@ -19,7 +19,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.25.0</string>
<string>1.26.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@@ -34,7 +34,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>245</string>
<string>256</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>

View File

@@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>1.25.0</string>
<string>1.26.1</string>
<key>CFBundleVersion</key>
<string>245</string>
<string>256</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>

View File

@@ -25,6 +25,10 @@ class ShareViewController: SLComposeServiceViewController {
fileprivate var selectedChannel: Item?
fileprivate var selectedTeam: Item?
private var channelsVC: ChannelsViewController = ChannelsViewController()
private var teamsVC: TeamsViewController = TeamsViewController()
private var maxMessageSize: Int = 0
// MARK: - Lifecycle methods
override func viewDidLoad() {
@@ -80,6 +84,7 @@ class ShareViewController: SLComposeServiceViewController {
entities = store.getEntities(true) as [AnyHashable:Any]?
sessionToken = store.getToken()
serverURL = store.getServerUrl()
maxMessageSize = Int(store.getMaxPostSize())
extractDataFromContext()
@@ -89,28 +94,35 @@ class ShareViewController: SLComposeServiceViewController {
}
override func isContentValid() -> Bool {
let maxMessageSize = store.getMaxPostSize()
self.charactersRemaining = NSNumber(value: Int(maxMessageSize) - contentText.count)
//Check content text size is not above max
if (contentText.count > maxMessageSize) {
if !maxPostAlertShown {
maxPostAlertShown = true
showErrorMessageAndStayOpen(title: "", message: "Content text shared in Mattermost must be less than \(maxMessageSize+1) characters.", VC: self)
if let currentMessage = contentText {
let contentCount = currentMessage.count
if #available(iOS 13, *) {} else {
let remaining = (maxMessageSize - contentCount) as NSNumber
// this is causing the extension to run OOM on iOS 13
charactersRemaining = remaining
}
return false
} else if (attachments.count > 0) { // Do validation of contentText and/or NSExtensionContext attachments here
let maxImagePixels = store.getMaxImagePixels()
if attachments.hasImageLargerThan(pixels: maxImagePixels) {
let readableMaxImagePixels = formatImagePixels(pixels: maxImagePixels)
showErrorMessage(title: "", message: "Image attachments shared in Mattermost must be less than \(readableMaxImagePixels).", VC: self)
}
let maxFileSize = store.getMaxFileSize()
if attachments.hasAttachementLargerThan(fileSize: maxFileSize) {
let readableMaxFileSize = formatFileSize(fileSize: maxFileSize)
showErrorMessage(title: "", message: "File attachments shared in Mattermost must be less than \(readableMaxFileSize).", VC: self)
//Check content text size is not above max
if (contentCount > maxMessageSize) {
if !maxPostAlertShown {
maxPostAlertShown = true
showErrorMessageAndStayOpen(title: "", message: "Content text shared in Mattermost must be less than \(maxMessageSize+1) characters.", VC: self)
}
return false
} else if (attachments.count > 0) { // Do validation of contentText and/or NSExtensionContext attachments here
let maxImagePixels = store.getMaxImagePixels()
if attachments.hasImageLargerThan(pixels: maxImagePixels) {
let readableMaxImagePixels = formatImagePixels(pixels: maxImagePixels)
showErrorMessage(title: "", message: "Image attachments shared in Mattermost must be less than \(readableMaxImagePixels).", VC: self)
}
let maxFileSize = store.getMaxFileSize()
if attachments.hasAttachementLargerThan(fileSize: maxFileSize) {
let readableMaxFileSize = formatFileSize(fileSize: maxFileSize)
showErrorMessage(title: "", message: "File attachments shared in Mattermost must be less than \(readableMaxFileSize).", VC: self)
}
}
}
return serverURL != nil &&
sessionToken != nil &&
attachmentsCount() == attachments.count &&
@@ -166,10 +178,9 @@ class ShareViewController: SLComposeServiceViewController {
teams.title = "Team"
teams.value = selectedTeam?.title
teams.tapHandler = {
let vc = TeamsViewController()
vc.teamDecks = teamDecks
vc.delegate = self
self.pushConfigurationViewController(vc)
self.teamsVC.teamDecks = teamDecks
self.teamsVC.delegate = self
self.pushConfigurationViewController(self.teamsVC)
}
items.append(teams)
}
@@ -180,11 +191,10 @@ class ShareViewController: SLComposeServiceViewController {
channels.value = selectedChannel?.title
channels.valuePending = channelDecks == nil
channels.tapHandler = {
let vc = ChannelsViewController()
vc.channelDecks = channelDecks!
vc.navbarTitle = self.selectedTeam?.title
vc.delegate = self
self.pushConfigurationViewController(vc)
self.channelsVC.channelDecks = channelDecks!
self.channelsVC.navbarTitle = self.selectedTeam?.title
self.channelsVC.delegate = self
self.pushConfigurationViewController(self.channelsVC)
}
items.append(channels)
@@ -223,7 +233,10 @@ class ShareViewController: SLComposeServiceViewController {
if id == currentChannelId {
item.selected = true
selectedChannel = item
placeholder = "Write to \(item.title!)"
if #available(iOS 13, *) {} else {
// this is causing the extension to run OOM on iOS 13
self.placeholder = "Write to \(item.title!)"
}
}
section.items.append(item)
}
@@ -398,14 +411,14 @@ class ShareViewController: SLComposeServiceViewController {
key: "public",
title: "Public Channels"
))
channelDecks.append(buildChannelSection(
channels: channelsInTeamBySections.object(forKey: "private") as! NSArray,
currentChannelId: selectedChannel?.id ?? currentChannel?.object(forKey: "id") as! String,
key: "private",
title: "Private Channels"
))
channelDecks.append(buildChannelSection(
channels: channelsInTeamBySections.object(forKey: "direct") as! NSArray,
currentChannelId: selectedChannel?.id ?? currentChannel?.object(forKey: "id") as! String,

Some files were not shown because too many files have changed in this diff Show More