forked from Ivasoft/mattermost-mobile
Compare commits
29 Commits
release-1.
...
v1.16.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
920e46f9a1 | ||
|
|
fac489a5d0 | ||
|
|
cbb9a2b749 | ||
|
|
b382f81cf6 | ||
|
|
66cd2a98ac | ||
|
|
317e3b14ab | ||
|
|
87af5404ae | ||
|
|
4f3679e09d | ||
|
|
976a29ed29 | ||
|
|
ffef7e2bcf | ||
|
|
e5e741840e | ||
|
|
83ec54b8c8 | ||
|
|
226bfa8dd2 | ||
|
|
1ebf6fc0c2 | ||
|
|
d40b1da1d0 | ||
|
|
b24c97b7e9 | ||
|
|
5d61ae3342 | ||
|
|
ccc33cbf39 | ||
|
|
43a0d25636 | ||
|
|
860d4c582f | ||
|
|
c930bf85af | ||
|
|
97e2647eae | ||
|
|
24ff55f4c0 | ||
|
|
95fb8a9348 | ||
|
|
2ded5182f3 | ||
|
|
83b0cfb9ba | ||
|
|
d29998957b | ||
|
|
7e182f6022 | ||
|
|
7fa7cf4364 |
20
NOTICE.txt
20
NOTICE.txt
@@ -20,7 +20,7 @@ Provides polyfills necessary for a full ES2015+ environment
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-2018 Sebastian McKenzie and other contributors
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@@ -56,7 +56,7 @@ babel's modular runtime helpers
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-2018 Sebastian McKenzie and other contributors
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@@ -641,7 +641,7 @@ SOFTWARE.
|
||||
|
||||
## jsc-android
|
||||
|
||||
This product contains 'jsc-android' by React Community.
|
||||
This product contains 'jsc-android' by React Native Community.
|
||||
|
||||
Pre-build version of JavaScriptCore to be used by React Native apps
|
||||
|
||||
@@ -1468,12 +1468,12 @@ SOFTWARE.
|
||||
|
||||
## react-native-gesture-handler
|
||||
|
||||
This product contains 'react-native-gesture-handler' by kmagiera
|
||||
This product contains 'react-native-gesture-handler' by Krzysztof Magiera.
|
||||
|
||||
Declarative API exposing platform native touch and gesture system to React Native.
|
||||
Experimental implementation of a new declarative API for gesture handling in react-native
|
||||
|
||||
* HOMEPAGE:
|
||||
* https://github.com/kmagiera/react-native-gesture-handler
|
||||
* https://github.com/kmagiera/react-native-gesture-handler#readme
|
||||
|
||||
* LICENSE: MIT
|
||||
|
||||
@@ -1637,7 +1637,7 @@ This product contains 'react-native-linear-gradient' by Brent Vatne.
|
||||
A <LinearGradient> element for React Native
|
||||
|
||||
* HOMEPAGE:
|
||||
* https://github.com/react-native-community/react-native-linear-gradient
|
||||
* https://github.com/react-native-community/react-native-linear-gradient#readme
|
||||
|
||||
* LICENSE: MIT
|
||||
|
||||
@@ -2005,7 +2005,7 @@ Note: An original license file for this dependency is not available. We determin
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Brent Vatne
|
||||
Copyright (c) 2019 Brent Vatne
|
||||
|
||||
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:
|
||||
|
||||
@@ -2022,7 +2022,7 @@ This product contains 'react-native-svg' by React Native Community.
|
||||
SVG library for react-native
|
||||
|
||||
* HOMEPAGE:
|
||||
* https://github.com/magicismight/react-native-svg#readme
|
||||
* https://github.com/react-native-community/react-native-svg#readme
|
||||
|
||||
* LICENSE: MIT
|
||||
|
||||
@@ -2660,7 +2660,7 @@ Note: An original license file for this dependency is not available. We determin
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Brian Grinstead
|
||||
Copyright (c) 2019 Brian Grinstead
|
||||
|
||||
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:
|
||||
|
||||
|
||||
@@ -113,8 +113,8 @@ android {
|
||||
applicationId "com.mattermost.rnbeta"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 170
|
||||
versionName "1.15.2"
|
||||
versionCode 175
|
||||
versionName "1.16.0"
|
||||
multiDexEnabled = true
|
||||
ndk {
|
||||
abiFilters "armeabi-v7a", "x86"
|
||||
|
||||
@@ -28,29 +28,41 @@ exports[`Badge should match snapshot 1`] = `
|
||||
style={
|
||||
Object {
|
||||
"alignItems": "center",
|
||||
"alignSelf": "center",
|
||||
"flex": 1,
|
||||
"justifyContent": "center",
|
||||
}
|
||||
}
|
||||
>
|
||||
<Text
|
||||
onLayout={[Function]}
|
||||
<View
|
||||
style={
|
||||
Array [
|
||||
Object {
|
||||
"color": "white",
|
||||
"fontSize": 14,
|
||||
},
|
||||
Object {
|
||||
"color": "#145dbf",
|
||||
"fontSize": 10,
|
||||
},
|
||||
Object {},
|
||||
]
|
||||
Object {
|
||||
"alignItems": "center",
|
||||
"flex": 1,
|
||||
"flexDirection": "row",
|
||||
"justifyContent": "center",
|
||||
"textAlignVertical": "center",
|
||||
}
|
||||
}
|
||||
>
|
||||
1
|
||||
</Text>
|
||||
<Text
|
||||
onLayout={[Function]}
|
||||
style={
|
||||
Array [
|
||||
Object {
|
||||
"color": "white",
|
||||
"fontSize": 14,
|
||||
},
|
||||
Object {
|
||||
"color": "#145dbf",
|
||||
"fontSize": 10,
|
||||
},
|
||||
]
|
||||
}
|
||||
>
|
||||
1
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
`;
|
||||
|
||||
@@ -61,10 +61,10 @@ export default class AttachmentButton extends PureComponent {
|
||||
};
|
||||
|
||||
attachPhotoFromCamera = () => {
|
||||
return this.attachFileFromCamera('photo');
|
||||
return this.attachFileFromCamera('photo', 'camera');
|
||||
};
|
||||
|
||||
attachFileFromCamera = async (mediaType) => {
|
||||
attachFileFromCamera = async (mediaType, source) => {
|
||||
const {formatMessage} = this.context.intl;
|
||||
const options = {
|
||||
quality: 0.8,
|
||||
@@ -92,7 +92,7 @@ export default class AttachmentButton extends PureComponent {
|
||||
},
|
||||
};
|
||||
|
||||
const hasPhotoPermission = await this.hasPhotoPermission();
|
||||
const hasPhotoPermission = await this.hasPhotoPermission(source);
|
||||
|
||||
if (hasPhotoPermission) {
|
||||
ImagePicker.launchCamera(options, (response) => {
|
||||
@@ -141,7 +141,7 @@ export default class AttachmentButton extends PureComponent {
|
||||
};
|
||||
|
||||
attachVideoFromCamera = () => {
|
||||
return this.attachFileFromCamera('video');
|
||||
return this.attachFileFromCamera('video', 'camera');
|
||||
};
|
||||
|
||||
attachVideoFromLibraryAndroid = () => {
|
||||
@@ -206,11 +206,11 @@ export default class AttachmentButton extends PureComponent {
|
||||
}
|
||||
};
|
||||
|
||||
hasPhotoPermission = async () => {
|
||||
hasPhotoPermission = async (source) => {
|
||||
if (Platform.OS === 'ios') {
|
||||
const {formatMessage} = this.context.intl;
|
||||
let permissionRequest;
|
||||
const hasPermissionToStorage = await Permissions.check('photo');
|
||||
const hasPermissionToStorage = await Permissions.check(source || 'photo');
|
||||
|
||||
switch (hasPermissionToStorage) {
|
||||
case PermissionTypes.UNDETERMINED:
|
||||
@@ -295,13 +295,13 @@ export default class AttachmentButton extends PureComponent {
|
||||
defaultMessage: 'To upload images from your Android device, please change your permission settings.',
|
||||
}),
|
||||
[
|
||||
grantOption,
|
||||
{
|
||||
text: formatMessage({
|
||||
id: 'mobile.android.permission_denied_dismiss',
|
||||
defaultMessage: 'Dismiss',
|
||||
}),
|
||||
},
|
||||
grantOption,
|
||||
]
|
||||
);
|
||||
return false;
|
||||
|
||||
@@ -96,13 +96,30 @@ export default class Badge extends PureComponent {
|
||||
|
||||
renderText = () => {
|
||||
const {count} = this.props;
|
||||
let text = count.toString();
|
||||
const extra = {};
|
||||
let unreadCount = null;
|
||||
let unreadIndicator = null;
|
||||
if (count < 0) {
|
||||
text = '•';
|
||||
|
||||
//the extra margin is to align to the center?
|
||||
extra.marginBottom = 1;
|
||||
unreadIndicator = (
|
||||
<View
|
||||
style={[styles.text, this.props.countStyle]}
|
||||
onLayout={this.onLayout}
|
||||
>
|
||||
<View style={styles.verticalAlign}>
|
||||
<View style={[styles.unreadIndicator, {backgroundColor: this.props.countStyle.color}]}/>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
} else {
|
||||
unreadCount = (
|
||||
<View style={styles.verticalAlign}>
|
||||
<Text
|
||||
style={[styles.text, this.props.countStyle]}
|
||||
onLayout={this.onLayout}
|
||||
>
|
||||
{count.toString()}
|
||||
</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<View
|
||||
@@ -110,12 +127,8 @@ export default class Badge extends PureComponent {
|
||||
style={[styles.badge, this.props.style, {opacity: 0}]}
|
||||
>
|
||||
<View style={styles.wrapper}>
|
||||
<Text
|
||||
style={[styles.text, this.props.countStyle, extra]}
|
||||
onLayout={this.onLayout}
|
||||
>
|
||||
{text}
|
||||
</Text>
|
||||
{unreadCount}
|
||||
{unreadIndicator}
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
@@ -150,12 +163,26 @@ const styles = StyleSheet.create({
|
||||
top: 2,
|
||||
},
|
||||
wrapper: {
|
||||
alignItems: 'center',
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
alignSelf: 'center',
|
||||
},
|
||||
text: {
|
||||
fontSize: 14,
|
||||
color: 'white',
|
||||
},
|
||||
unreadIndicator: {
|
||||
height: 4,
|
||||
width: 4,
|
||||
backgroundColor: '#444',
|
||||
borderRadius: 4,
|
||||
},
|
||||
verticalAlign: {
|
||||
flex: 1,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
textAlignVertical: 'center',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -267,12 +267,18 @@ export default class FileAttachmentDocument extends PureComponent {
|
||||
}),
|
||||
}]
|
||||
);
|
||||
this.setStatusBarColor();
|
||||
this.onDonePreviewingFile();
|
||||
RNFetchBlob.fs.unlink(path);
|
||||
}
|
||||
|
||||
this.setState({downloading: false, progress: 0});
|
||||
});
|
||||
|
||||
// Android does not trigger the event for DoneButtonEvent
|
||||
// so we'll wait 4 seconds before enabling the tap for open the preview again
|
||||
if (Platform.OS === 'android') {
|
||||
setTimeout(this.onDonePreviewingFile, 4000);
|
||||
}
|
||||
}
|
||||
}, delay);
|
||||
};
|
||||
|
||||
@@ -40,7 +40,7 @@ export default class MarkdownLink extends PureComponent {
|
||||
return;
|
||||
}
|
||||
|
||||
const match = matchPermalink(url, serverURL) || matchPermalink(url, siteURL);
|
||||
const match = matchPermalink(url, serverURL) || matchPermalink(url, siteURL) || matchPermalink(url, '');
|
||||
|
||||
if (match) {
|
||||
const teamName = match[1];
|
||||
|
||||
@@ -310,11 +310,15 @@ export function getFirstMention(str, mentionKeys) {
|
||||
let firstMentionIndex = -1;
|
||||
|
||||
for (const mention of mentionKeys) {
|
||||
if (mention.key.trim() === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
const flags = mention.caseSensitive ? '' : 'i';
|
||||
const pattern = new RegExp(`\\b${escapeRegex(mention.key)}_*\\b`, flags);
|
||||
|
||||
const match = pattern.exec(str);
|
||||
if (!match) {
|
||||
if (!match || match[0] === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -2758,6 +2758,11 @@ describe('Components.Markdown.transform', () => {
|
||||
input: 'apple banana orange',
|
||||
mentionKeys: [{key: '*\\3_.'}],
|
||||
expected: {index: -1, mention: null},
|
||||
}, {
|
||||
name: 'no blank mention keys',
|
||||
input: 'apple banana orange',
|
||||
mentionKeys: [{key: ''}],
|
||||
expected: {index: -1, mention: null},
|
||||
}];
|
||||
|
||||
for (const test of tests) {
|
||||
|
||||
@@ -236,7 +236,21 @@ export default class PostBody extends PureComponent {
|
||||
}
|
||||
|
||||
renderPostAdditionalContent = (blockStyles, messageStyle, textStyles) => {
|
||||
const {isReplyPost, message, navigator, onHashtagPress, onPermalinkPress, postId, postProps, metadata} = this.props;
|
||||
const {
|
||||
isReplyPost,
|
||||
isSystemMessage,
|
||||
message,
|
||||
metadata,
|
||||
navigator,
|
||||
onHashtagPress,
|
||||
onPermalinkPress,
|
||||
postId,
|
||||
postProps,
|
||||
} = this.props;
|
||||
|
||||
if (isSystemMessage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (metadata && !metadata.embeds) {
|
||||
return null;
|
||||
|
||||
70
app/components/post_body/post_body.test.js
Normal file
70
app/components/post_body/post_body.test.js
Normal file
@@ -0,0 +1,70 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import {Preferences} from 'mattermost-redux/constants';
|
||||
|
||||
import PostBodyAdditionalContent from 'app/components/post_body_additional_content';
|
||||
import {shallowWithIntl} from 'test/intl-test-helper';
|
||||
|
||||
import PostBody from './post_body.js';
|
||||
|
||||
describe('PostBody', () => {
|
||||
const baseProps = {
|
||||
canDelete: true,
|
||||
channelIsReadOnly: false,
|
||||
deviceHeight: 1920,
|
||||
fileIds: [],
|
||||
hasBeenDeleted: false,
|
||||
hasBeenEdited: false,
|
||||
hasReactions: false,
|
||||
highlight: false,
|
||||
isFailed: false,
|
||||
isFlagged: false,
|
||||
isPending: false,
|
||||
isPostAddChannelMember: false,
|
||||
isPostEphemeral: false,
|
||||
isReplyPost: false,
|
||||
isSearchResult: false,
|
||||
isSystemMessage: false,
|
||||
managedConfig: {},
|
||||
message: 'Hello, World!',
|
||||
navigator: {},
|
||||
onFailedPostPress: jest.fn(),
|
||||
onHashtagPress: jest.fn(),
|
||||
onPermalinkPress: jest.fn(),
|
||||
onPress: jest.fn(),
|
||||
postId: 'post',
|
||||
postProps: {},
|
||||
postType: '',
|
||||
replyBarStyle: [],
|
||||
showAddReaction: true,
|
||||
showLongPost: true,
|
||||
isEmojiOnly: false,
|
||||
shouldRenderJumboEmoji: false,
|
||||
theme: Preferences.THEMES.default,
|
||||
};
|
||||
|
||||
test('should mount additional content for non-system messages', () => {
|
||||
const props = {
|
||||
...baseProps,
|
||||
isSystemMessage: false,
|
||||
};
|
||||
|
||||
const wrapper = shallowWithIntl(<PostBody {...props}/>);
|
||||
|
||||
expect(wrapper.find(PostBodyAdditionalContent).exists()).toBeTruthy();
|
||||
});
|
||||
|
||||
test('should not mount additional content for system messages', () => {
|
||||
const props = {
|
||||
...baseProps,
|
||||
isSystemMessage: true,
|
||||
};
|
||||
|
||||
const wrapper = shallowWithIntl(<PostBody {...props}/>);
|
||||
|
||||
expect(wrapper.find(PostBodyAdditionalContent).exists()).toBeFalsy();
|
||||
});
|
||||
});
|
||||
@@ -48,7 +48,6 @@ export default class ProfilePicture extends PureComponent {
|
||||
|
||||
state = {
|
||||
pictureUrl: null,
|
||||
otherImageProps: {},
|
||||
};
|
||||
|
||||
componentDidMount() {
|
||||
@@ -99,34 +98,21 @@ export default class ProfilePicture extends PureComponent {
|
||||
}
|
||||
};
|
||||
|
||||
showDefaultImage = () => {
|
||||
if (this.mounted) {
|
||||
this.setState({otherImageProps: {defaultSource: placeholder}});
|
||||
}
|
||||
};
|
||||
|
||||
clearProfileImageUri = () => {
|
||||
if (this.props.isCurrentUser && this.props.profileImageUri !== '') {
|
||||
this.props.actions.setProfileImageUri('');
|
||||
}
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
if (!this.props.edit) {
|
||||
if (this.state.otherImageProps !== prevState.otherImageProps) {
|
||||
this.showDefaultImage();
|
||||
}
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
if (this.props.profileImageRemove !== prevProps.profileImageRemove) {
|
||||
this.setImageURL(null);
|
||||
this.showDefaultImage();
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const {edit, showStatus, theme} = this.props;
|
||||
const {pictureUrl, otherImageProps} = this.state;
|
||||
const {pictureUrl} = this.state;
|
||||
const style = getStyleSheet(theme);
|
||||
|
||||
let statusIcon;
|
||||
@@ -155,6 +141,7 @@ export default class ProfilePicture extends PureComponent {
|
||||
}
|
||||
|
||||
let source = null;
|
||||
let image;
|
||||
if (pictureUrl) {
|
||||
let prefix = '';
|
||||
if (Platform.OS === 'android' && !pictureUrl.startsWith('content://') &&
|
||||
@@ -165,16 +152,26 @@ export default class ProfilePicture extends PureComponent {
|
||||
source = {
|
||||
uri: `${prefix}${pictureUrl}`,
|
||||
};
|
||||
}
|
||||
|
||||
return (
|
||||
<View style={{width: this.props.size + STATUS_BUFFER, height: this.props.size + STATUS_BUFFER}}>
|
||||
image = (
|
||||
<Image
|
||||
key={pictureUrl}
|
||||
style={{width: this.props.size, height: this.props.size, borderRadius: this.props.size / 2}}
|
||||
source={source}
|
||||
{...otherImageProps}
|
||||
/>
|
||||
);
|
||||
} else {
|
||||
image = (
|
||||
<Image
|
||||
style={{width: this.props.size, height: this.props.size, borderRadius: this.props.size / 2}}
|
||||
source={placeholder}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<View style={{width: this.props.size + STATUS_BUFFER, height: this.props.size + STATUS_BUFFER}}>
|
||||
{image}
|
||||
{(showStatus || edit) &&
|
||||
<View style={[style.statusWrapper, statusStyle, {borderRadius: this.props.statusSize / 2}]}>
|
||||
{statusIcon}
|
||||
|
||||
@@ -19,6 +19,7 @@ import {debounce} from 'mattermost-redux/actions/helpers';
|
||||
import ChannelItem from 'app/components/sidebars/main/channels_list/channel_item';
|
||||
import {ListTypes} from 'app/constants';
|
||||
import {SidebarSectionTypes} from 'app/constants/view';
|
||||
import {t} from 'app/utils/i18n';
|
||||
import {preventDoubleTap} from 'app/utils/tap';
|
||||
import {changeOpacity} from 'app/utils/theme';
|
||||
|
||||
@@ -88,48 +89,48 @@ export default class List extends PureComponent {
|
||||
switch (sectionType) {
|
||||
case SidebarSectionTypes.UNREADS:
|
||||
return {
|
||||
id: 'mobile.channel_list.unreads',
|
||||
id: t('mobile.channel_list.unreads'),
|
||||
defaultMessage: 'UNREADS',
|
||||
};
|
||||
case SidebarSectionTypes.FAVORITE:
|
||||
return {
|
||||
id: 'sidebar.favorite',
|
||||
id: t('sidebar.favorite'),
|
||||
defaultMessage: 'FAVORITES',
|
||||
};
|
||||
case SidebarSectionTypes.PUBLIC:
|
||||
return {
|
||||
action: this.goToMoreChannels,
|
||||
id: 'sidebar.channels',
|
||||
id: t('sidebar.channels'),
|
||||
defaultMessage: 'PUBLIC CHANNELS',
|
||||
};
|
||||
case SidebarSectionTypes.PRIVATE:
|
||||
return {
|
||||
action: canCreatePrivateChannels ? this.goToCreatePrivateChannel : null,
|
||||
id: 'sidebar.pg',
|
||||
id: t('sidebar.pg'),
|
||||
defaultMessage: 'PRIVATE CHANNELS',
|
||||
};
|
||||
case SidebarSectionTypes.DIRECT:
|
||||
return {
|
||||
action: this.goToDirectMessages,
|
||||
id: 'sidebar.direct',
|
||||
id: t('sidebar.direct'),
|
||||
defaultMessage: 'DIRECT MESSAGES',
|
||||
};
|
||||
case SidebarSectionTypes.RECENT_ACTIVITY:
|
||||
return {
|
||||
action: this.showCreateChannelOptions,
|
||||
id: 'sidebar.types.recent',
|
||||
id: t('sidebar.types.recent'),
|
||||
defaultMessage: 'RECENT ACTIVITY',
|
||||
};
|
||||
case SidebarSectionTypes.ALPHA:
|
||||
return {
|
||||
action: this.showCreateChannelOptions,
|
||||
id: 'mobile.channel_list.channels',
|
||||
id: t('mobile.channel_list.channels'),
|
||||
defaultMessage: 'CHANNELS',
|
||||
};
|
||||
default:
|
||||
return {
|
||||
action: this.showCreateChannelOptions,
|
||||
id: 'mobile.channel_list.channels',
|
||||
id: t('mobile.channel_list.channels'),
|
||||
defaultMessage: 'CHANNELS',
|
||||
};
|
||||
}
|
||||
|
||||
@@ -38,7 +38,15 @@ Client4.doFetchWithResponse = async (url, options) => {
|
||||
}
|
||||
|
||||
const customHeaders = LocalConfig.CustomRequestHeaders;
|
||||
let requestOptions = Client4.getOptions(options);
|
||||
let waitsForConnectivity = false;
|
||||
if (url.includes('/api/v4/system/ping')) {
|
||||
waitsForConnectivity = true;
|
||||
}
|
||||
let requestOptions = {
|
||||
...Client4.getOptions(options),
|
||||
waitsForConnectivity,
|
||||
};
|
||||
|
||||
if (customHeaders && Object.keys(customHeaders).length > 0) {
|
||||
requestOptions = {
|
||||
...requestOptions,
|
||||
|
||||
@@ -152,6 +152,8 @@ class PushNotification {
|
||||
clearChannelNotifications(channelId) {
|
||||
NotificationsIOS.getDeliveredNotifications((notifications) => {
|
||||
const ids = [];
|
||||
let badgeCount = notifications.length;
|
||||
|
||||
for (let i = 0; i < notifications.length; i++) {
|
||||
const notification = notifications[i];
|
||||
|
||||
@@ -161,8 +163,11 @@ class PushNotification {
|
||||
}
|
||||
|
||||
if (ids.length) {
|
||||
badgeCount -= ids.length;
|
||||
NotificationsIOS.removeDeliveredNotifications(ids);
|
||||
}
|
||||
|
||||
this.setApplicationIconBadgeNumber(badgeCount);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,6 +86,10 @@ export default class Channel extends PureComponent {
|
||||
} else {
|
||||
this.props.actions.selectDefaultTeam();
|
||||
}
|
||||
|
||||
if (this.props.currentChannelId) {
|
||||
PushNotifications.clearChannelNotifications(this.props.currentChannelId);
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
|
||||
@@ -6,7 +6,6 @@ import PropTypes from 'prop-types';
|
||||
import {connect} from 'react-redux';
|
||||
import {
|
||||
PanResponder,
|
||||
Platform,
|
||||
TouchableOpacity,
|
||||
View,
|
||||
} from 'react-native';
|
||||
@@ -14,7 +13,6 @@ import {
|
||||
import Icon from 'react-native-vector-icons/Ionicons';
|
||||
|
||||
import Badge from 'app/components/badge';
|
||||
import PushNotifications from 'app/push_notifications';
|
||||
import {getTheme} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {preventDoubleTap} from 'app/utils/tap';
|
||||
import {makeStyleSheetFromTheme} from 'app/utils/theme';
|
||||
@@ -62,10 +60,6 @@ class ChannelDrawerButton extends PureComponent {
|
||||
EventEmitter.on('drawer_opacity', this.setOpacity);
|
||||
}
|
||||
|
||||
componentDidUpdate() {
|
||||
PushNotifications.setApplicationIconBadgeNumber(this.props.mentionCount);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
EventEmitter.off('drawer_opacity', this.setOpacity);
|
||||
}
|
||||
@@ -131,8 +125,10 @@ class ChannelDrawerButton extends PureComponent {
|
||||
style={style.container}
|
||||
>
|
||||
<View style={[style.wrapper, {opacity: this.state.opacity}]}>
|
||||
{icon}
|
||||
{badge}
|
||||
<View>
|
||||
{icon}
|
||||
{badge}
|
||||
</View>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
@@ -156,19 +152,11 @@ const getStyleFromTheme = makeStyleSheetFromTheme((theme) => {
|
||||
borderColor: theme.sidebarHeaderBg,
|
||||
borderRadius: 10,
|
||||
borderWidth: 1,
|
||||
flexDirection: 'row',
|
||||
left: 3,
|
||||
left: -13,
|
||||
padding: 3,
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
...Platform.select({
|
||||
android: {
|
||||
top: 10,
|
||||
},
|
||||
ios: {
|
||||
top: 5,
|
||||
},
|
||||
}),
|
||||
top: -4,
|
||||
},
|
||||
mention: {
|
||||
color: theme.mentionColor,
|
||||
|
||||
@@ -91,8 +91,8 @@ export default class EditProfile extends PureComponent {
|
||||
rightButtons: [this.rightButton],
|
||||
};
|
||||
|
||||
this.leftButton.title = context.intl.formatMessage({id: 'mobile.account.settings.cancel', defaultMessage: 'Cancel'});
|
||||
this.rightButton.title = context.intl.formatMessage({id: 'mobile.account.settings.save', defaultMessage: 'Save'});
|
||||
this.leftButton.title = context.intl.formatMessage({id: t('mobile.account.settings.cancel'), defaultMessage: 'Cancel'});
|
||||
this.rightButton.title = context.intl.formatMessage({id: t('mobile.account.settings.save'), defaultMessage: 'Save'});
|
||||
|
||||
props.navigator.setOnNavigatorEvent(this.onNavigatorEvent);
|
||||
props.navigator.setButtons(buttons);
|
||||
@@ -354,21 +354,17 @@ export default class EditProfile extends PureComponent {
|
||||
|
||||
renderEmailSettings = () => {
|
||||
const {formatMessage} = this.context.intl;
|
||||
const {config, currentUser, theme} = this.props;
|
||||
const {currentUser, theme} = this.props;
|
||||
const {email} = this.state;
|
||||
|
||||
let helpText;
|
||||
let disabled = false;
|
||||
|
||||
if (config.SendEmailNotifications !== 'true') {
|
||||
disabled = true;
|
||||
if (currentUser.auth_service === '') {
|
||||
helpText = formatMessage({
|
||||
id: 'user.settings.general.emailHelp1',
|
||||
defaultMessage: 'Email is used for sign-in, notifications, and password reset. Email requires verification if changed.',
|
||||
id: 'user.settings.general.emailCantUpdate',
|
||||
defaultMessage: 'Email must be updated using a web client or desktop application.',
|
||||
});
|
||||
} else if (currentUser.auth_service !== '') {
|
||||
disabled = true;
|
||||
|
||||
} else {
|
||||
switch (currentUser.auth_service) {
|
||||
case 'gitlab':
|
||||
helpText = formatMessage({
|
||||
@@ -406,7 +402,7 @@ export default class EditProfile extends PureComponent {
|
||||
return (
|
||||
<View>
|
||||
<TextSetting
|
||||
disabled={disabled}
|
||||
disabled={true}
|
||||
id='email'
|
||||
label={holders.email}
|
||||
disabledText={helpText}
|
||||
|
||||
@@ -311,9 +311,9 @@ export default class Permalink extends PureComponent {
|
||||
if (!channelId) {
|
||||
const focusedPost = post.data && post.data.posts ? post.data.posts[focusedPostId] : null;
|
||||
focusChannelId = focusedPost ? focusedPost.channel_id : '';
|
||||
if (focusChannelId && !this.props.myMembers[focusChannelId]) {
|
||||
if (focusChannelId) {
|
||||
const {data: channel} = await actions.getChannel(focusChannelId);
|
||||
if (channel && channel.type === General.OPEN_CHANNEL) {
|
||||
if (!this.props.myMembers[focusChannelId] && channel && channel.type === General.OPEN_CHANNEL) {
|
||||
await actions.joinChannel(currentUserId, channel.team_id, channel.id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,10 @@ import MaterialIcon from 'react-native-vector-icons/MaterialIcons';
|
||||
|
||||
import SlideUpPanel from 'app/components/slide_up_panel';
|
||||
import {BOTTOM_MARGIN} from 'app/components/slide_up_panel/slide_up_panel';
|
||||
import DeviceTypes from 'app/constants/device';
|
||||
|
||||
import {OPTION_HEIGHT, getInitialPosition} from './post_options_utils';
|
||||
import PostOption from './post_option';
|
||||
|
||||
const OPTION_HEIGHT = 50;
|
||||
|
||||
export default class PostOptions extends PureComponent {
|
||||
static propTypes = {
|
||||
actions: PropTypes.shape({
|
||||
@@ -401,14 +399,14 @@ export default class PostOptions extends PureComponent {
|
||||
const {deviceHeight} = this.props;
|
||||
const options = this.getPostOptions();
|
||||
const marginFromTop = deviceHeight - BOTTOM_MARGIN - ((options.length + 1) * OPTION_HEIGHT);
|
||||
const initialPosition = DeviceTypes.IS_IPHONE_X ? 280 : 305;
|
||||
const initialPosition = getInitialPosition(deviceHeight, marginFromTop);
|
||||
|
||||
return (
|
||||
<View style={style.container}>
|
||||
<SlideUpPanel
|
||||
allowStayMiddle={false}
|
||||
ref={this.refSlideUpPanel}
|
||||
marginFromTop={marginFromTop}
|
||||
marginFromTop={marginFromTop > 0 ? marginFromTop : 0}
|
||||
onRequestClose={this.close}
|
||||
initialPosition={initialPosition}
|
||||
>
|
||||
|
||||
27
app/screens/post_options/post_options_utils.js
Normal file
27
app/screens/post_options/post_options_utils.js
Normal file
@@ -0,0 +1,27 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
export const OPTION_HEIGHT = 50;
|
||||
const BOTTOM_HEIGHT = 18;
|
||||
export const MAX_INITIAL_POSITION_MULTIPLIER = 0.75;
|
||||
|
||||
export function getInitialPosition(deviceHeight, marginFromTop) {
|
||||
const computedSlidePanelHeight = deviceHeight - marginFromTop;
|
||||
const maxInitialPosition = deviceHeight * MAX_INITIAL_POSITION_MULTIPLIER;
|
||||
|
||||
if (computedSlidePanelHeight <= maxInitialPosition) {
|
||||
// Show all options to the user
|
||||
return computedSlidePanelHeight;
|
||||
}
|
||||
|
||||
const optionHeightWithBorder = OPTION_HEIGHT + 1;
|
||||
|
||||
// Partially show options to user with the first hidden option in mid appearance
|
||||
// to indicate that are still option/s available on slide up
|
||||
let adjustedInitialPosition = computedSlidePanelHeight - BOTTOM_HEIGHT - (optionHeightWithBorder / 2);
|
||||
while (adjustedInitialPosition > maxInitialPosition) {
|
||||
adjustedInitialPosition -= optionHeightWithBorder;
|
||||
}
|
||||
|
||||
return adjustedInitialPosition;
|
||||
}
|
||||
41
app/screens/post_options/post_options_utils.test.js
Normal file
41
app/screens/post_options/post_options_utils.test.js
Normal file
@@ -0,0 +1,41 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {getInitialPosition, MAX_INITIAL_POSITION_MULTIPLIER} from './post_options_utils';
|
||||
|
||||
describe('should match return value of getInitialPosition', () => {
|
||||
const testCases = [
|
||||
{
|
||||
input: {deviceHeight: 600, marginFromTop: 400},
|
||||
output: 200,
|
||||
}, {
|
||||
input: {deviceHeight: 600, marginFromTop: 300},
|
||||
output: 300,
|
||||
}, {
|
||||
input: {deviceHeight: 600, marginFromTop: 50},
|
||||
output: 404.5,
|
||||
}, {
|
||||
input: {deviceHeight: 1000, marginFromTop: 250},
|
||||
output: 750,
|
||||
}, {
|
||||
input: {deviceHeight: 1000, marginFromTop: 150},
|
||||
output: 704.5,
|
||||
}, {
|
||||
input: {deviceHeight: 1000, marginFromTop: 400},
|
||||
output: 600,
|
||||
},
|
||||
];
|
||||
|
||||
for (const testCase of testCases) {
|
||||
const {input, output} = testCase;
|
||||
const maxInitialPosition = input.deviceHeight * MAX_INITIAL_POSITION_MULTIPLIER;
|
||||
|
||||
test('should match initial position', () => {
|
||||
const initialPosition = getInitialPosition(input.deviceHeight, input.marginFromTop);
|
||||
expect(initialPosition).toEqual(output);
|
||||
|
||||
// should not exceed maximum initial position at 75% of screen height
|
||||
expect(initialPosition).toBeLessThanOrEqual(maxInitialPosition);
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -335,6 +335,7 @@ export default class SelectServer extends PureComponent {
|
||||
});
|
||||
|
||||
Client4.setUrl(url);
|
||||
Client4.online = true;
|
||||
handleServerUrlChanged(url);
|
||||
|
||||
let cancel = false;
|
||||
|
||||
@@ -18,6 +18,7 @@ import {getFormattedFileSize} from 'mattermost-redux/utils/file_utils';
|
||||
|
||||
import SettingsItem from 'app/screens/settings/settings_item';
|
||||
import StatusBar from 'app/components/status_bar';
|
||||
import {t} from 'app/utils/i18n';
|
||||
import {deleteFileCache, getFileCacheSize} from 'app/utils/file';
|
||||
import {preventDoubleTap} from 'app/utils/tap';
|
||||
import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
|
||||
@@ -46,8 +47,8 @@ class AdvancedSettings extends PureComponent {
|
||||
const {formatMessage} = this.props.intl;
|
||||
|
||||
Alert.alert(
|
||||
formatMessage({id: 'mobile.advanced_settings.delete_title', defaultMessage: 'Delete Documents & Data'}),
|
||||
formatMessage({id: 'mobile.advanced_settings.delete_message', defaultMessage: '\nThis will reset all offline data and restart the app. You will be automatically logged back in once the app restarts.\n'}),
|
||||
formatMessage({id: t('mobile.advanced_settings.delete_title'), defaultMessage: 'Delete Documents & Data'}),
|
||||
formatMessage({id: t('mobile.advanced_settings.delete_message'), defaultMessage: '\nThis will reset all offline data and restart the app. You will be automatically logged back in once the app restarts.\n'}),
|
||||
[{
|
||||
text: formatMessage({id: 'channel_modal.cancel', defaultMessage: 'Cancel'}),
|
||||
style: 'cancel',
|
||||
|
||||
@@ -186,7 +186,7 @@ export default class TermsOfService extends PureComponent {
|
||||
siteName,
|
||||
}),
|
||||
[{
|
||||
text: intl.formatMessage({id: 'mobile.terms_of_service.alert_ok', defaultMessage: 'Ok'}),
|
||||
text: intl.formatMessage({id: 'mobile.terms_of_service.alert_ok', defaultMessage: 'OK'}),
|
||||
onPress: this.closeTermsAndLogout,
|
||||
}],
|
||||
);
|
||||
@@ -221,11 +221,12 @@ export default class TermsOfService extends PureComponent {
|
||||
defaultMessage: 'Unable to complete the request. If this issue persists, contact your System Administrator.',
|
||||
}),
|
||||
[{
|
||||
text: intl.formatMessage({id: 'mobile.terms_of_service.alert_cancel', defaultMessage: 'Cancel'}),
|
||||
style: 'cancel',
|
||||
onPress: this.closeTermsAndLogout,
|
||||
}, {
|
||||
text: intl.formatMessage({id: 'mobile.terms_of_service.alert_retry', defaultMessage: 'Try Again'}),
|
||||
onPress: retry,
|
||||
}, {
|
||||
text: intl.formatMessage({id: 'mobile.terms_of_service.alert_cancel', defaultMessage: 'Cancel'}),
|
||||
onPress: this.closeTermsAndLogout,
|
||||
}],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -45,10 +45,9 @@ exports[`Theme should match snapshot 1`] = `
|
||||
isLandscape={false}
|
||||
isTablet={false}
|
||||
label={
|
||||
<FormattedText
|
||||
defaultMessage="Mattermost"
|
||||
id="user.settings.display.Mattermost"
|
||||
/>
|
||||
<Text>
|
||||
Mattermost
|
||||
</Text>
|
||||
}
|
||||
selected={true}
|
||||
theme={
|
||||
@@ -91,10 +90,9 @@ exports[`Theme should match snapshot 1`] = `
|
||||
isLandscape={false}
|
||||
isTablet={false}
|
||||
label={
|
||||
<FormattedText
|
||||
defaultMessage="Organization"
|
||||
id="user.settings.display.Organization"
|
||||
/>
|
||||
<Text>
|
||||
Organization
|
||||
</Text>
|
||||
}
|
||||
selected={false}
|
||||
theme={
|
||||
@@ -137,10 +135,9 @@ exports[`Theme should match snapshot 1`] = `
|
||||
isLandscape={false}
|
||||
isTablet={false}
|
||||
label={
|
||||
<FormattedText
|
||||
defaultMessage="Mattermost Dark"
|
||||
id="user.settings.display.Mattermost Dark"
|
||||
/>
|
||||
<Text>
|
||||
Mattermost Dark
|
||||
</Text>
|
||||
}
|
||||
selected={false}
|
||||
theme={
|
||||
@@ -183,10 +180,9 @@ exports[`Theme should match snapshot 1`] = `
|
||||
isLandscape={false}
|
||||
isTablet={false}
|
||||
label={
|
||||
<FormattedText
|
||||
defaultMessage="Windows Dark"
|
||||
id="user.settings.display.Windows Dark"
|
||||
/>
|
||||
<Text>
|
||||
Windows Dark
|
||||
</Text>
|
||||
}
|
||||
selected={false}
|
||||
theme={
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {View} from 'react-native';
|
||||
import {Text, View} from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import {intlShape} from 'react-intl';
|
||||
|
||||
@@ -80,10 +80,9 @@ export default class Theme extends React.PureComponent {
|
||||
<ThemeTile
|
||||
key={allowedTheme.key}
|
||||
label={(
|
||||
<FormattedText
|
||||
id={`user.settings.display.${allowedTheme.type}`}
|
||||
defaultMessage={allowedTheme.type}
|
||||
/>
|
||||
<Text>
|
||||
{allowedTheme.type}
|
||||
</Text>
|
||||
)}
|
||||
action={this.setTheme}
|
||||
actionValue={allowedTheme.key}
|
||||
@@ -103,7 +102,7 @@ export default class Theme extends React.PureComponent {
|
||||
<SectionItem
|
||||
label={(
|
||||
<FormattedText
|
||||
id={`user.settings.display.${item.type}`}
|
||||
id='user.settings.display.custom_theme'
|
||||
defaultMessage={'Custom Theme'}
|
||||
/>
|
||||
)}
|
||||
|
||||
@@ -8,12 +8,14 @@ import {createTransform, persistStore} from 'redux-persist';
|
||||
|
||||
import {ErrorTypes, GeneralTypes} from 'mattermost-redux/action_types';
|
||||
import {General, RequestStatus} from 'mattermost-redux/constants';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import configureStore from 'mattermost-redux/store';
|
||||
import EventEmitter from 'mattermost-redux/utils/event_emitter';
|
||||
|
||||
import {NavigationTypes, ViewTypes} from 'app/constants';
|
||||
import appReducer from 'app/reducers';
|
||||
import {throttle} from 'app/utils/general';
|
||||
import {getSiteUrl, setSiteUrl} from 'app/utils/image_cache_manager';
|
||||
import {createSentryMiddleware} from 'app/utils/sentry/middleware';
|
||||
|
||||
import mattermostBucket from 'app/mattermost_bucket';
|
||||
@@ -187,6 +189,12 @@ export default function configureAppStore(initialState) {
|
||||
// check to see if the logout request was successful
|
||||
store.subscribe(async () => {
|
||||
const state = store.getState();
|
||||
const config = getConfig(state);
|
||||
|
||||
if (getSiteUrl() !== config?.SiteURL) {
|
||||
setSiteUrl(config.SiteURL);
|
||||
}
|
||||
|
||||
if ((state.requests.users.logout.status === RequestStatus.SUCCESS || state.requests.users.logout.status === RequestStatus.FAILURE) && !purging) {
|
||||
purging = true;
|
||||
|
||||
@@ -211,6 +219,7 @@ export default function configureAppStore(initialState) {
|
||||
mattermostBucket.removePreference('cert', Config.AppGroupId);
|
||||
mattermostBucket.removePreference('emm', Config.AppGroupId);
|
||||
mattermostBucket.removeFile('entities', Config.AppGroupId);
|
||||
setSiteUrl(null);
|
||||
|
||||
setTimeout(() => {
|
||||
purging = false;
|
||||
|
||||
@@ -6,12 +6,15 @@
|
||||
import {Platform} from 'react-native';
|
||||
import RNFetchBlob from 'rn-fetch-blob';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
|
||||
import {DeviceTypes} from 'app/constants';
|
||||
import mattermostBucket from 'app/mattermost_bucket';
|
||||
|
||||
import LocalConfig from 'assets/config';
|
||||
|
||||
const {IMAGES_PATH} = DeviceTypes;
|
||||
let siteUrl;
|
||||
|
||||
export default class ImageCacheManager {
|
||||
static listeners = {};
|
||||
@@ -41,7 +44,13 @@ export default class ImageCacheManager {
|
||||
certificate,
|
||||
};
|
||||
|
||||
this.downloadTask = await RNFetchBlob.config(options).fetch('GET', uri);
|
||||
const headers = {};
|
||||
if (uri.includes(Client4.getUrl()) || uri.includes(siteUrl)) {
|
||||
headers.Authorization = `Bearer ${Client4.getToken()}`;
|
||||
headers['X-Requested-With'] = 'XMLHttpRequest';
|
||||
}
|
||||
|
||||
this.downloadTask = await RNFetchBlob.config(options).fetch('GET', uri, headers);
|
||||
if (this.downloadTask.respInfo.respType === 'text') {
|
||||
throw new Error();
|
||||
}
|
||||
@@ -79,6 +88,14 @@ export const getCacheFile = async (name, uri) => {
|
||||
return {exists, path};
|
||||
};
|
||||
|
||||
export const getSiteUrl = () => {
|
||||
return siteUrl;
|
||||
};
|
||||
|
||||
export const setSiteUrl = (url) => {
|
||||
siteUrl = url;
|
||||
};
|
||||
|
||||
const isDownloading = (uri) => Boolean(ImageCacheManager.listeners[uri]);
|
||||
|
||||
const addListener = (uri, listener) => {
|
||||
|
||||
@@ -26,6 +26,7 @@ export async function checkConnection(isConnected) {
|
||||
const config = {
|
||||
timeout: PING_TIMEOUT,
|
||||
auto: true,
|
||||
waitsForConnectivity: true,
|
||||
};
|
||||
|
||||
if (Platform.OS === 'ios' && certificate === '') {
|
||||
|
||||
@@ -39,6 +39,7 @@ export function confirmOutOfOfficeDisabled(intl, status, updateStatus) {
|
||||
}, {status: translatedStatus}),
|
||||
[{
|
||||
text: intl.formatMessage({id: 'mobile.reset_status.alert_cancel', defaultMessage: 'Cancel'}),
|
||||
style: 'cancel',
|
||||
}, {
|
||||
text: intl.formatMessage({id: 'mobile.reset_status.alert_ok', defaultMessage: 'OK'}),
|
||||
onPress: () => updateStatus(status),
|
||||
|
||||
@@ -97,10 +97,6 @@ export function getScheme(url) {
|
||||
}
|
||||
|
||||
export function matchPermalink(link, rootURL) {
|
||||
if (!rootURL) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new RegExp('^' + escapeRegex(rootURL) + '\\/([^\\/]+)\\/pl\\/(\\w+)').exec(link);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"channel_modal.optional": "(optional)",
|
||||
"channel_modal.purpose": "Zweck",
|
||||
"channel_modal.purposeEx": "Z.B.: \"Ein Kanal um Fehler und Verbesserungsvorschläge abzulegen\"",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "@channel, @here, @all ignorieren",
|
||||
"channel_notifications.muteChannel.settings": "Kanal stummschalten",
|
||||
"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**.",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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",
|
||||
"mobile.advanced_settings.delete": "Löschen",
|
||||
"mobile.advanced_settings.delete_file_cache": "Datei-Cache löschen",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nDies wird alle Dateien im Cache löschen. Möchten Sie diese wirklich löschen?\n",
|
||||
"mobile.advanced_settings.reset_button": "Zurücksetzen",
|
||||
"mobile.advanced_settings.reset_message": "\nDies wird alle gespeicherten Offlinedaten löschen und die Anwendung neustarten. Sie werden automatisch wieder angemeldet, sobald die App neugestartet wurde.\n",
|
||||
"mobile.advanced_settings.reset_title": "Cache zurücksetzen",
|
||||
"mobile.advanced_settings.delete_message": "\nDies wird alle gespeicherten Offlinedaten löschen und die Anwendung neustarten. Sie werden automatisch wieder angemeldet, sobald die App neugestartet wurde.\n",
|
||||
"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.",
|
||||
@@ -280,7 +278,7 @@
|
||||
"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.",
|
||||
"mobile.more_dms.one_more": "Sie können keine weiteren Benutzer hinzufügen.",
|
||||
"mobile.more_dms.one_more": "Sie können einen weiteren Benutzer hinzufügen",
|
||||
"mobile.more_dms.start": "Start",
|
||||
"mobile.more_dms.title": "Neue Konversation",
|
||||
"mobile.more_dms.you": "@{username} - Sie",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Archiviert",
|
||||
"sidebar_right_menu.logout": "Abmelden",
|
||||
"sidebar_right_menu.report": "Fehler melden",
|
||||
"sidebar.channels": "ÖFFENTLICHE KANÄLE",
|
||||
"sidebar.direct": "DIREKTNACHRICHTEN",
|
||||
"sidebar.favorite": "KANALFAVORITEN",
|
||||
"sidebar.pg": "PRIVATE KANÄLE",
|
||||
"sidebar.types.recent": "KÜRZLICHE AKTIVITÄT",
|
||||
"sidebar.unreads": "Weitere Ungelesene",
|
||||
"signup.email": "E-Mail-Adresse und Passwort",
|
||||
"status_dropdown.set_away": "Abwesend",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12-Stunden-Format (z.B.: 4:00 PM)",
|
||||
"user.settings.display.preferTime": "Wählen Sie das bevorzugte Zeitformat aus.",
|
||||
"user.settings.general.email": "E-Mail-Adresse",
|
||||
"user.settings.general.emailCantUpdate": "E-Mail muss im Web-Client oder der Desktop-App geändert werden.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Anmeldung erfolgt durch GitLab. E-Mail-Adresse kann nicht aktualisiert werden. Die E-Mail-Adresse zum Versand von Hinweisen lautet {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Anmeldung erfolgt durch Google. E-Mail-Adresse kann nicht aktualisiert werden. Die E-Mail-Adresse zum Versand von Benachrichtigungen lautet {email}.",
|
||||
"user.settings.general.emailHelp1": "Die E-Mail-Adresse wird für den Login, die Benachrichtigungen und das Zurücksetzen des Passworts verwendet. Änderungen der E-Mail-Adresse müssen erneut verifiziert werden.",
|
||||
"user.settings.general.emailHelp2": "E-Mails wurden durch Ihren Systemadministrator deaktiviert. Es werden keine Benachrichtigungen versendet bis dies aktiviert wird.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Anmeldung erfolgt durch AD/LDAP. E-Mail-Adresse kann nicht aktualisiert werden. Die E-Mail-Adresse zum Versand von Benachrichtigungen lautet {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Anmeldung erfolgt durch Office 365. E-Mail-Adresse kann nicht aktualisiert werden. Die E-Mail-Adresse zum Versand von Benachrichtigungen lautet {email}.",
|
||||
|
||||
@@ -127,7 +127,6 @@
|
||||
"mobile.account.settings.save": "Save",
|
||||
"mobile.account.settings.cancel": "Cancel",
|
||||
"mobile.action_menu.select": "Select an option",
|
||||
"mobile.action_menu.submitted": "Submitted",
|
||||
"mobile.advanced_settings.clockDisplay": "Clock display",
|
||||
"mobile.advanced_settings.delete": "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",
|
||||
@@ -273,7 +272,6 @@
|
||||
"mobile.managed.secured_by": "Secured by {vendor}",
|
||||
"mobile.markdown.code.copy_code": "Copy Code",
|
||||
"mobile.markdown.code.plusMoreLines": "+{count, number} more {count, plural, one {line} other {lines}}",
|
||||
"mobile.markdown.image.error": "Image failed to load:",
|
||||
"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",
|
||||
@@ -356,7 +354,6 @@
|
||||
"mobile.post.failed_title": "Unable to send your message",
|
||||
"mobile.post.retry": "Refresh",
|
||||
"mobile.posts_view.moreMsg": "More New Messages Above",
|
||||
"mobile.reaction_list.title": "Reactions",
|
||||
"mobile.recent_mentions.empty_description": "Messages containing your username and other words that trigger mentions will appear here.",
|
||||
"mobile.recent_mentions.empty_title": "No Recent Mentions",
|
||||
"mobile.rename_channel.display_name_maxLength": "Channel name must be less than {maxLength, number} characters",
|
||||
@@ -522,6 +519,7 @@
|
||||
"user.settings.display.normalClock": "12-hour clock (example: 4:00 PM)",
|
||||
"user.settings.display.preferTime": "Select how you prefer time displayed.",
|
||||
"user.settings.general.email": "Email",
|
||||
"user.settings.general.emailCantUpdate": "Email must be updated using a web client or desktop application.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Login occurs through GitLab. Email cannot be updated. Email address used for notifications is {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Login occurs through Google. Email cannot be updated. Email address used for notifications is {email}.",
|
||||
"user.settings.general.emailHelp1": "Email is used for sign-in, notifications, and password reset. Email requires verification if changed.",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"channel_modal.optional": "(opcional)",
|
||||
"channel_modal.purpose": "Propósito",
|
||||
"channel_modal.purposeEx": "Ej: \"Un canal para describir errores y mejoras\"",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignorar @channel, @here, @all",
|
||||
"channel_notifications.muteChannel.settings": "Silenciar canal",
|
||||
"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}.",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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",
|
||||
"mobile.advanced_settings.delete": "Eliminar",
|
||||
"mobile.advanced_settings.delete_file_cache": "Eliminar archivos en el cache",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nSe eliminarán todos los archivos guardados en el cache. ¿Estás seguro de querer eliminarlos?\n",
|
||||
"mobile.advanced_settings.reset_button": "Reiniciar",
|
||||
"mobile.advanced_settings.reset_message": "\nEsto borrará todos los datos sin conexión y reiniciará la aplicación. Tu sesión será iniciada automáticamente una vez que la aplicación se reinicie.\n",
|
||||
"mobile.advanced_settings.reset_title": "Borrar caché",
|
||||
"mobile.advanced_settings.delete_message": "\nEsto borrará todos los datos sin conexión y reiniciará la aplicación. Tu sesión será iniciada automáticamente una vez que la aplicación se reinicie.\n",
|
||||
"mobile.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.",
|
||||
@@ -280,7 +278,7 @@
|
||||
"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.",
|
||||
"mobile.more_dms.one_more": "No puedes agregar más usuarios.",
|
||||
"mobile.more_dms.one_more": "Puedes agregar 1 usuario más",
|
||||
"mobile.more_dms.start": "Comenzar",
|
||||
"mobile.more_dms.title": "Nueva Conversación",
|
||||
"mobile.more_dms.you": "@{username} - tú",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Archivado",
|
||||
"sidebar_right_menu.logout": "Cerrar sesión",
|
||||
"sidebar_right_menu.report": "Reporta un Problema",
|
||||
"sidebar.channels": "CANALES PÚBLICOS",
|
||||
"sidebar.direct": "MENSAJES DIRECTOS",
|
||||
"sidebar.favorite": "FAVORITOS",
|
||||
"sidebar.pg": "CANALES PRIVADOS",
|
||||
"sidebar.types.recent": "ACTIVIDAD RECIENTE",
|
||||
"sidebar.unreads": "Más sin leer",
|
||||
"signup.email": "Correo electrónico y Contraseña",
|
||||
"status_dropdown.set_away": "Ausente",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "Reloj de 12 horas (ejemplo: 4:00 pm)",
|
||||
"user.settings.display.preferTime": "Selecciona como prefieres mostrar la hora.",
|
||||
"user.settings.general.email": "Correo electrónico",
|
||||
"user.settings.general.emailCantUpdate": "El correo electrónico debe ser actualizado utilizando un cliente web o la aplicación de escritorio.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "El inicio de sesión ocurre a través GitLab. El correo electrónico no puede ser actualizado. La dirección de correo electrónico utilizada para las notificaciones es {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "El inicio de sesión ocurre a través Google. El correo electrónico no puede ser actualizado. La dirección de correo electrónico utilizada para las notificaciones es {email}.",
|
||||
"user.settings.general.emailHelp1": "El correo electrónico es utilizado para iniciar sesión, recibir notificaciones y para restablecer la contraseña. Si se cambia el correo electrónico deberás verificarlo nuevamente.",
|
||||
"user.settings.general.emailHelp2": "El correo ha sido desactivado por el Administrador de Sistema. No llegarán correos de notificación hasta que se vuelva a habilitar.",
|
||||
"user.settings.general.emailLdapCantUpdate": "El inicio de sesión ocurre a través AD/LDAP. El correo electrónico no puede ser actualizado. La dirección de correo electrónico utilizada para las notificaciones es {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "El inicio de sesión ocurre a través Office 365. El correo electrónico no puede ser actualizado. La dirección de correo electrónico utilizada para las notificaciones es {email}.",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"channel_modal.optional": "(facultatif)",
|
||||
"channel_modal.purpose": "Description",
|
||||
"channel_modal.purposeEx": "Ex. : « Un canal pour rapporter des bogues ou des améliorations »",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignorer @channel, @here et @all",
|
||||
"channel_notifications.muteChannel.settings": "Mettre le canal en sourdine",
|
||||
"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}.",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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",
|
||||
"mobile.advanced_settings.delete": "Supprimer",
|
||||
"mobile.advanced_settings.delete_file_cache": "Supprimer le cache de fichiers",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nCeci va supprimer tous les fichiers stockés dans le cache. Voulez-vous vraiment les supprimer ?\n",
|
||||
"mobile.advanced_settings.reset_button": "Réinitialiser",
|
||||
"mobile.advanced_settings.reset_message": "\nCela effacera toutes les données en mode hors connexion et redémarrera l'application. Vous serez automatiquement reconnecté une fois l'application redémarrée.\n",
|
||||
"mobile.advanced_settings.reset_title": "Réinitialiser le cache",
|
||||
"mobile.advanced_settings.delete_message": "\nCela effacera toutes les données en mode hors connexion et redémarrera l'application. Vous serez automatiquement reconnecté une fois que l'application aura redémarré.\n",
|
||||
"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.",
|
||||
@@ -280,7 +278,7 @@
|
||||
"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",
|
||||
"mobile.more_dms.one_more": "Vous ne pouvez plus ajouter d'utilisateurs",
|
||||
"mobile.more_dms.one_more": "Vous pouvez encore ajouter un utilisateur",
|
||||
"mobile.more_dms.start": "Démarrer",
|
||||
"mobile.more_dms.title": "Nouvelle conversation",
|
||||
"mobile.more_dms.you": "@{username} - vous",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Archivé",
|
||||
"sidebar_right_menu.logout": "Se déconnecter",
|
||||
"sidebar_right_menu.report": "Signaler un problème",
|
||||
"sidebar.channels": "CANAUX PUBLICS",
|
||||
"sidebar.direct": "MESSAGES PERSONNELS",
|
||||
"sidebar.favorite": "CANAUX FAVORIS",
|
||||
"sidebar.pg": "CANAUX PRIVÉS",
|
||||
"sidebar.types.recent": "ACTIVITÉ RÉCENTE",
|
||||
"sidebar.unreads": "Plus de messages non lus",
|
||||
"signup.email": "Adresse e-mail et mot de passe",
|
||||
"status_dropdown.set_away": "Absent",
|
||||
@@ -514,9 +516,9 @@
|
||||
"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.emailHelp1": "L'adresse e-mail est utilisée pour la connexion, les notifications et la réinitialisation du mot de passe. Votre adresse e-mail doit être validée si vous la changez.",
|
||||
"user.settings.general.emailHelp2": "L'envoi d'e-mails a été désactivé par votre administrateur système. Aucun e-mail de notification ne peut être envoyé.",
|
||||
"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} .",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"channel_modal.optional": "(opzionale)",
|
||||
"channel_modal.purpose": "Scopo",
|
||||
"channel_modal.purposeEx": "Es.: \"Un canale per segnalare bug e miglioramenti\"",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignora @channel, @here, @all",
|
||||
"channel_notifications.muteChannel.settings": "Silenzia canale",
|
||||
"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}.",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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",
|
||||
"mobile.advanced_settings.delete": "Cancella",
|
||||
"mobile.advanced_settings.delete_file_cache": "Cancella Cache File",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nQuesta operazione cancellerà tutti i file memorizzati in cache. Sicuro di volerli cancellare?\n",
|
||||
"mobile.advanced_settings.reset_button": "Reset",
|
||||
"mobile.advanced_settings.reset_message": "\nQuesta operazione cancella tutti i dati salvati in locale e riavvia l'app. L'accesso verrà eseguito automaticamente al termine del riavvio.\n",
|
||||
"mobile.advanced_settings.reset_title": "Reset Cache",
|
||||
"mobile.advanced_settings.delete_message": "\nQuesta operazione cancella tutti i dati salvati in locale e riavvia l'app. L'accesso verrà eseguito automaticamente al termine del riavvio.\n",
|
||||
"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.",
|
||||
@@ -280,7 +278,7 @@
|
||||
"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",
|
||||
"mobile.more_dms.one_more": "Non puoi aggiungere altri utenti",
|
||||
"mobile.more_dms.one_more": "Puoi aggiungere ancora 1 utente",
|
||||
"mobile.more_dms.start": "Inizio",
|
||||
"mobile.more_dms.title": "Nuova Conversazione",
|
||||
"mobile.more_dms.you": "@{username} - tu",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Archiviato",
|
||||
"sidebar_right_menu.logout": "Esci",
|
||||
"sidebar_right_menu.report": "Segnala un problema",
|
||||
"sidebar.channels": "CANALI PUBBLICI",
|
||||
"sidebar.direct": "MESSAGGI DIRETTI",
|
||||
"sidebar.favorite": "CANALI PREFERITI",
|
||||
"sidebar.pg": "CANALI PRIVATI",
|
||||
"sidebar.types.recent": "ATTIVITÀ RECENTI",
|
||||
"sidebar.unreads": "Più non letti",
|
||||
"signup.email": "Email e Password",
|
||||
"status_dropdown.set_away": "Assente",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "Orologio 12 ore (esempio 4:00 PM)",
|
||||
"user.settings.display.preferTime": "Seleziona come visualizzare l'ora.",
|
||||
"user.settings.general.email": "Email",
|
||||
"user.settings.general.emailCantUpdate": "L'email deve essere aggiornata utilizzando il client web o l'applicazione desktop.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Accesso avvenuto tramite GitLab. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Accesso avvenuto tramite Google. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
|
||||
"user.settings.general.emailHelp1": "Email utilizzata per l'accesso, notifiche e reset della password. L'email richiede una convalida se modificata.",
|
||||
"user.settings.general.emailHelp2": "Le email sono state disattiva dall'Amministratore di Sistema. Nessuna notifiche email verrà inviata fino a quando non saranno attivate.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Accesso avvenuto tramite AD/LDAP. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Accesso avvenuto tramite Office 365. L'indirizzo email non può essere aggiornato. L'indirizzo email utilizzato per le notifiche è {email}.",
|
||||
|
||||
@@ -124,15 +124,13 @@
|
||||
"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": "時刻表示",
|
||||
"mobile.advanced_settings.delete": "削除",
|
||||
"mobile.advanced_settings.delete_file_cache": "ファイルキャッシュを削除する",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nキャッシュに保存された全てのファイルを削除します。本当に削除してもよろしいですか?\n",
|
||||
"mobile.advanced_settings.reset_button": "リセット",
|
||||
"mobile.advanced_settings.reset_message": "\nこれにより全てのオフラインデータがクリアされ、アプリが再起動します。アプリが再起動されると、自動でログインされます。\n",
|
||||
"mobile.advanced_settings.reset_title": "キャッシュをリセットする",
|
||||
"mobile.advanced_settings.delete_message": "\nこれにより全てのオフラインデータがクリアされ、アプリが再起動します。アプリが再起動されると、自動でログインされます。\n",
|
||||
"mobile.advanced_settings.delete_title": "ドキュメントとデータの削除",
|
||||
"mobile.advanced_settings.timezone": "タイムゾーン",
|
||||
"mobile.advanced_settings.title": "詳細設定",
|
||||
"mobile.android.camera_permission_denied_description": "カメラで写真やビデオを撮影するために権限設定を変更してください。",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "アーカイブ",
|
||||
"sidebar_right_menu.logout": "ログアウト",
|
||||
"sidebar_right_menu.report": "問題を報告する",
|
||||
"sidebar.channels": "公開チャンネル",
|
||||
"sidebar.direct": "ダイレクトメッセージ",
|
||||
"sidebar.favorite": "お気に入りチャンネル",
|
||||
"sidebar.pg": "非公開チャンネル",
|
||||
"sidebar.types.recent": "最近活動があったもの",
|
||||
"sidebar.unreads": "未読",
|
||||
"signup.email": "電子メールアドレスとパスワード",
|
||||
"status_dropdown.set_away": "離席中",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "時計の12時間表示(例: 4:00 PM)",
|
||||
"user.settings.display.preferTime": "時刻の表示形式を選択します。",
|
||||
"user.settings.general.email": "電子メールアドレス",
|
||||
"user.settings.general.emailCantUpdate": "電子メールはウェブクライアントかデスクトップアプリケーションから更新してください。",
|
||||
"user.settings.general.emailGitlabCantUpdate": "GitLabからログインしました。電子メールアドレスは更新できません。通知に使われる電子メールアドレスは{email}です。",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Googleからログインしました。電子メールアドレスは更新できません。通知に使われる電子メールアドレスは{email}です。",
|
||||
"user.settings.general.emailHelp1": "電子メールアドレスはサインイン、通知、パスワード初期化に使用されます。電子メールアドレスを変更した場合には、確認が必要です。",
|
||||
"user.settings.general.emailHelp2": "電子メールはシステム管理者によって無効にされています。有効にされるまで通知電子メールは送信されません。",
|
||||
"user.settings.general.emailLdapCantUpdate": "AD/LDAPでログインしました。電子メールアドレスは更新できません。通知に使われる電子メールアドレスは{email}です。",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Office 365からログインしました。電子メールアドレスは更新できません。通知に使われる電子メールアドレスは{email}です。",
|
||||
|
||||
@@ -120,19 +120,17 @@
|
||||
"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": "SEND REPLY NOTIFICATIONS FOR",
|
||||
"mobile.account_notifications.reply.header": "댓글에 대한 알림 설정",
|
||||
"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_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_file_cache": "파일 캐시 삭제",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\n캐시에 있는 모든 파일이 삭제됩니다. 정말로 삭제 하시겠습니까?\n",
|
||||
"mobile.advanced_settings.reset_button": "Reset",
|
||||
"mobile.advanced_settings.reset_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.reset_title": "Reset Cache",
|
||||
"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.timezone": "표준 시간대",
|
||||
"mobile.advanced_settings.title": "고급 설정",
|
||||
"mobile.android.camera_permission_denied_description": "사진이나 비디오를 촬영 하려면, 권한 설정을 변경해 주세요.",
|
||||
@@ -314,7 +312,7 @@
|
||||
"mobile.notification_settings.email.send": "SEND EMAIL NOTIFICATIONS",
|
||||
"mobile.notification_settings.mentions_replies": "Mentions and Replies",
|
||||
"mobile.notification_settings.mentions.channelWide": "Channel-wide mentions",
|
||||
"mobile.notification_settings.mentions.reply_title": "Send Reply notifications for",
|
||||
"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",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Archived",
|
||||
"sidebar_right_menu.logout": "로그아웃",
|
||||
"sidebar_right_menu.report": "문제 보고",
|
||||
"sidebar.channels": "공개 채널",
|
||||
"sidebar.direct": "개인 메시지",
|
||||
"sidebar.favorite": "즐겨찾는 채널",
|
||||
"sidebar.pg": "비공개 채널",
|
||||
"sidebar.types.recent": "RECENT ACTIVITY",
|
||||
"sidebar.unreads": "읽지 않은 글 더보기",
|
||||
"signup.email": "이메일과 패스워드",
|
||||
"status_dropdown.set_away": "다른 용무 중",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12시간으로 보이기 (예: 4:00 PM)",
|
||||
"user.settings.display.preferTime": "시간이 어떻게 표시될지 선택하세요.",
|
||||
"user.settings.general.email": "이메일",
|
||||
"user.settings.general.emailCantUpdate": "Email must be updated using a web client or desktop application.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Login occurs through GitLab. Email cannot be updated. Email address used for notifications is {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Login occurs through GitLab. Email cannot be updated. Email address used for notifications is {email}.",
|
||||
"user.settings.general.emailHelp1": "이메일은 접속, 알림 수신, 패스워드 변경 등에 사용됩니다. 이메일을 변경하면 재검증이 필요합니다.",
|
||||
"user.settings.general.emailHelp2": "이메일 기능이 시스템 관리자에 의해 비활성화 되었습니다. 활성화 되기 전까진 알림 메일이 발송되지 않습니다.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Login occurs through LDAP. Email cannot be updated. Email address used for notifications is {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Login occurs through GitLab. Email cannot be updated. Email address used for notifications is {email}.",
|
||||
@@ -540,7 +542,7 @@
|
||||
"user.settings.notifications.never": "사용 안함",
|
||||
"user.settings.notifications.onlyMentions": "개인 메시지와 멘션",
|
||||
"user.settings.push_notification.away": "오프라인이거나 자리비움",
|
||||
"user.settings.push_notification.disabled": "Push notifications are not enabled",
|
||||
"user.settings.push_notification.disabled": "이메일 알림이 활성화되지 않았습니다",
|
||||
"user.settings.push_notification.disabled_long": "시스템 관리자가 메일알림을 비활성화하였습니다.",
|
||||
"user.settings.push_notification.offline": "오프라인",
|
||||
"user.settings.push_notification.online": "온라인, 오프라인, 자리비움",
|
||||
|
||||
@@ -124,15 +124,13 @@
|
||||
"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",
|
||||
"mobile.advanced_settings.delete": "Verwijderen",
|
||||
"mobile.advanced_settings.delete_file_cache": "Delete File Cache",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nThis will delete all the files stored in the cache. Are you sure you want to delete them?\n",
|
||||
"mobile.advanced_settings.reset_button": "Reset",
|
||||
"mobile.advanced_settings.reset_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.reset_title": "Reset Cache",
|
||||
"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.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.",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Archived",
|
||||
"sidebar_right_menu.logout": "Afmelden",
|
||||
"sidebar_right_menu.report": "Een probleem melden",
|
||||
"sidebar.channels": "PUBLIC CHANNELS",
|
||||
"sidebar.direct": "DIRECT MESSAGES",
|
||||
"sidebar.favorite": "FAVORITE CHANNELS",
|
||||
"sidebar.pg": "PRIVATE CHANNELS",
|
||||
"sidebar.types.recent": "RECENT ACTIVITY",
|
||||
"sidebar.unreads": "More unreads",
|
||||
"signup.email": "E-mail en Wachtwoord",
|
||||
"status_dropdown.set_away": "Away",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12 uren klok (bijvoorbeeld: 4:00 PM)",
|
||||
"user.settings.display.preferTime": "Selecteer hoe u de tijd wilt zien.",
|
||||
"user.settings.general.email": "E-mail",
|
||||
"user.settings.general.emailCantUpdate": "Email must be updated using a web client or desktop application.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Login gebeurt via GitLab. Het e-mail adres kan niet bijgewerkt worden. Het e-mail adres dat gebruikt wordt voor meldingen is {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Login gebeurt via Google. Het e-mail adres kan niet bijgewerkt worden. Het e-mail adres dat gebruikt wordt voor meldingen is {email}.",
|
||||
"user.settings.general.emailHelp1": "E-mail wordt gebruikt voor aanmelden, meldingen en wachtwoord te resetten. E-mail vereist verificatie indien gewijzigd.",
|
||||
"user.settings.general.emailHelp2": "E-mail is uitgeschakeld door de systeembeheerder. Geen meldings-e-mails worden verzonden totdat deze optie is ingeschakeld. ",
|
||||
"user.settings.general.emailLdapCantUpdate": "Login gebeurt via AD/LDAP. Het e-mail adres kan niet bijgewerkt worden. Het e-mail adres dat gebruikt wordt voor meldingen is {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Login gebeurt via Office 365. Het e-mail adres kan niet bijgewerkt worden. Het e-mail adres dat gebruikt wordt voor meldingen is {email}.",
|
||||
|
||||
@@ -124,15 +124,13 @@
|
||||
"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": "Select an option",
|
||||
"mobile.advanced_settings.clockDisplay": "Wyświetlanie czasu",
|
||||
"mobile.advanced_settings.delete": "Usuń",
|
||||
"mobile.advanced_settings.delete_file_cache": "Delete File Cache",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nThis will delete all the files stored in the cache. Are you sure you want to delete them?\n",
|
||||
"mobile.advanced_settings.reset_button": "Resetuj",
|
||||
"mobile.advanced_settings.reset_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.reset_title": "Reset Cache",
|
||||
"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.timezone": "Strefa Czasowa",
|
||||
"mobile.advanced_settings.title": "Zaawansowane Ustawienia",
|
||||
"mobile.android.camera_permission_denied_description": "Aby zapisać obrazy i filmy do biblioteki, proszę zmień swoje ustawienia uprawnień.",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Archived",
|
||||
"sidebar_right_menu.logout": "Wyloguj",
|
||||
"sidebar_right_menu.report": "Zgłoś Problem",
|
||||
"sidebar.channels": "KANAŁY PUBLICZNE",
|
||||
"sidebar.direct": "WIADOMOŚCI BEZPOŚREDNIE",
|
||||
"sidebar.favorite": "FAVORITE CHANNELS",
|
||||
"sidebar.pg": "KANAŁY PRYWATNE",
|
||||
"sidebar.types.recent": "RECENT ACTIVITY",
|
||||
"sidebar.unreads": "Więcej nieprzeczytanych",
|
||||
"signup.email": "E-mail i hasło",
|
||||
"status_dropdown.set_away": "Zaraz wracam",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12-godzinny (przykład: 4:00 pm)",
|
||||
"user.settings.display.preferTime": "Wybierz, jak wyświetlany jest czas.",
|
||||
"user.settings.general.email": "E-mail",
|
||||
"user.settings.general.emailCantUpdate": "Email must be updated using a web client or desktop application.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Logowanie odbywa się poprzez GitLab. E-mail nie może być zaktualizowany. Adres e-mail używany do powiadomień {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Logowanie odbywa się przez Google. E-mail nie może być zaktualizowany. Adres e-mail używany do powiadomień {email}.",
|
||||
"user.settings.general.emailHelp1": "Adres e-mail używany do logowania się do systemu, powiadomień i restartowania hasła. E-mail wymaga weryfikacji po jego zmianie.",
|
||||
"user.settings.general.emailHelp2": "Email został wyłączony przez administratora systemu. Żadne powiadomienia nie są wysyłane, dopóki nie zostanie włączone.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Logowanie odbywa się za pośrednictwem serwera AD/LDAP. E-mail nie może być zaktualizowany. Adres e-mail używany do powiadomień {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Logowanie odbywa się za pośrednictwem usługi Office 365. E-mail nie może być zaktualizowany. Adres e-mail używany do powiadomień {email}.",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"channel_modal.optional": "(opcional)",
|
||||
"channel_modal.purpose": "Propósito",
|
||||
"channel_modal.purposeEx": "Ex.: \"Um canal para arquivar bugs e melhorias\"",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignorar @channel, @here, @all",
|
||||
"channel_notifications.muteChannel.settings": "Silenciar o canal",
|
||||
"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}.",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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",
|
||||
"mobile.advanced_settings.delete": "Excluir",
|
||||
"mobile.advanced_settings.delete_file_cache": "Apagar Cache de Arquivos.",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nIsto irá apagar todo os arquivos armazenados no cache. Tem certeza que deseja apagá-los?\n",
|
||||
"mobile.advanced_settings.reset_button": "Restaurar",
|
||||
"mobile.advanced_settings.reset_message": "\nIsto irá apagar todos os dados offline e reiniciar o aplicativo. Você será automaticamente conectado novamente quando o aplicativo for reiniciado.\n",
|
||||
"mobile.advanced_settings.reset_title": "Limpar Cache",
|
||||
"mobile.advanced_settings.delete_message": "\nIsto irá apagar todos os dados offline e reiniciar o aplicativo. Você será automaticamente conectado novamente quando o aplicativo for reiniciado.\n",
|
||||
"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.",
|
||||
@@ -280,7 +278,7 @@
|
||||
"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",
|
||||
"mobile.more_dms.one_more": "Você não pode adicionar mais usuários",
|
||||
"mobile.more_dms.one_more": "Você não pode adicionar mais 1 usuário",
|
||||
"mobile.more_dms.start": "Início",
|
||||
"mobile.more_dms.title": "Nova Conversa",
|
||||
"mobile.more_dms.you": "@{username} - você",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Arquivado",
|
||||
"sidebar_right_menu.logout": "Logout",
|
||||
"sidebar_right_menu.report": "Relatar um Problema",
|
||||
"sidebar.channels": "CANAIS PÚBLICOS",
|
||||
"sidebar.direct": "MENSAGENS DIRETAS",
|
||||
"sidebar.favorite": "CANAIS FAVORITOS",
|
||||
"sidebar.pg": "CANAIS PRIVADOS",
|
||||
"sidebar.types.recent": "ATIVIDADE RECENTE",
|
||||
"sidebar.unreads": "Mais não lidos",
|
||||
"signup.email": "Email e Senha",
|
||||
"status_dropdown.set_away": "Ausente",
|
||||
@@ -514,9 +516,9 @@
|
||||
"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.",
|
||||
"user.settings.general.email": "E-mail",
|
||||
"user.settings.general.emailCantUpdate": "Email deve ser atualizado usando um cliente web ou uma aplicação desktop.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Login ocorre através do GitLab. Email não pode ser atualizado. Endereço de email utilizado para notificações é {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Login ocorre através do Google. Email não pode ser atualizado. Endereço de email utilizado para notificações é {email}.",
|
||||
"user.settings.general.emailHelp1": "Email é usado para login, notificações, e redefinição de senha. Requer verificação de email se alterado.",
|
||||
"user.settings.general.emailHelp2": "Email foi desativado pelo seu Administrador de Sistema. Nenhuma notificação por email será enviada até isto ser habilitado.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Login ocorre através de AD/LDAP. Email não pode ser atualizado. Endereço de email utilizado para notificações é {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Login ocorre através do Office 365. Email não pode ser atualizado. Endereço de email utilizado para notificações é {email}.",
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"channel_header.addMembers": "Adăugați membri",
|
||||
"channel_header.directchannel.you": "{displayname} (tine) ",
|
||||
"channel_header.manageMembers": "Gestioneaza membri",
|
||||
"channel_header.pinnedPosts": "Posturi salvate",
|
||||
"channel_header.pinnedPosts": "Posturi fixate",
|
||||
"channel_header.viewMembers": "Vezi membrii",
|
||||
"channel_info.header": "Antet:",
|
||||
"channel_info.purpose": "Scop:",
|
||||
@@ -33,7 +33,7 @@
|
||||
"channel_modal.optional": "(opțional)",
|
||||
"channel_modal.purpose": "Scop",
|
||||
"channel_modal.purposeEx": "De exemplu: \"Un canal pentru a trimite bug-uri și îmbunătățiri\"",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignora @channel, @here, @all",
|
||||
"channel_notifications.muteChannel.settings": "Dezactivați canalul",
|
||||
"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}.",
|
||||
@@ -46,9 +46,9 @@
|
||||
"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.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} ** s-au alăturat echipei **.",
|
||||
"combined_system_message.joined_team.two": "{firstUser} și {secondUser} ** s-au alăturat echipei **.",
|
||||
"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.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.two": "{firstUser} și {secondUser} ** au părăsit canalul **.",
|
||||
@@ -86,7 +86,7 @@
|
||||
"last_users_message.added_to_team.type": "au fost **adăugați echipei** de {actor}.",
|
||||
"last_users_message.first": "{firstUser} și ",
|
||||
"last_users_message.joined_channel.type": "**s-au alăturat canalului**.",
|
||||
"last_users_message.joined_team.type": "**s-au alăturat echipei**.",
|
||||
"last_users_message.joined_team.type": "**sa alăturat echipei**.",
|
||||
"last_users_message.left_channel.type": "**a părăsit canalul**.",
|
||||
"last_users_message.left_team.type": "**a părăsit echipa**.",
|
||||
"last_users_message.others": "{numOthers} alții ",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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",
|
||||
"mobile.advanced_settings.delete": "Șterge",
|
||||
"mobile.advanced_settings.delete_file_cache": "Ștergeți memoria cache fișiere",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nAceasta va șterge toate fișierele stocate în memoria cache. Sigur doriți să le ștergeți?\n",
|
||||
"mobile.advanced_settings.reset_button": "Reset",
|
||||
"mobile.advanced_settings.reset_message": "\nAceasta va reseta toate datele offline și va reporni aplicația. Veți fi conectat automat înapoi după ce reporniți aplicația.\n",
|
||||
"mobile.advanced_settings.reset_title": "Resetați memoria cache",
|
||||
"mobile.advanced_settings.delete_message": "\nAceasta va reseta toate datele offline și va reporni aplicația. Veți fi reconectat automat înapoi după ce repornește aplicația.\n",
|
||||
"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.",
|
||||
@@ -280,7 +278,7 @@
|
||||
"mobile.message_length.title": "Mesaj Lungime",
|
||||
"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": "Nu puteți adăuga mai mulți utilizatori",
|
||||
"mobile.more_dms.one_more": "Puteți adăuga încă 1 utilizator",
|
||||
"mobile.more_dms.start": "Start",
|
||||
"mobile.more_dms.title": "Conversație nouă",
|
||||
"mobile.more_dms.you": "@{username} - tu",
|
||||
@@ -331,7 +329,7 @@
|
||||
"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.pinned_posts.empty_description": "Puneți elemente importante ținând apăsat pe orice mesaj și selectând \"Conectați la Canal\".",
|
||||
"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",
|
||||
@@ -452,7 +450,7 @@
|
||||
"msg_typing.areTyping": "{users} și {last} introduc ...",
|
||||
"msg_typing.isTyping": "{user} introduce textul ...",
|
||||
"navbar_dropdown.logout": "Deconectare",
|
||||
"navbar.leave": "Lăsați canalul",
|
||||
"navbar.leave": "Părăsiți canalul",
|
||||
"password_form.title": "Resetare parolă",
|
||||
"password_send.checkInbox": "Vă rugăm să vă verificați inbox-ul.",
|
||||
"password_send.description": "Pentru a reseta parola, introduceți adresa de e-mail pe care ați utilizat-o pentru a vă înscrie",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Arhivat",
|
||||
"sidebar_right_menu.logout": "Deconectare",
|
||||
"sidebar_right_menu.report": "Raportează o problemă",
|
||||
"sidebar.channels": "CANALE PUBLICE",
|
||||
"sidebar.direct": "MESAJE DIRECTE",
|
||||
"sidebar.favorite": "CABLURI FAVORITE",
|
||||
"sidebar.pg": "CANALE PRIVATE",
|
||||
"sidebar.types.recent": "ACTIVITATEA RECENTĂ",
|
||||
"sidebar.unreads": "Mai multe necitite",
|
||||
"signup.email": "Email și parolă",
|
||||
"status_dropdown.set_away": "Plecat",
|
||||
@@ -514,9 +516,9 @@
|
||||
"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.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}.",
|
||||
"user.settings.general.emailHelp1": "E-mailul este utilizat pentru conectare, notificări și resetare a parolei. E-mailul necesită verificare dacă este modificat.",
|
||||
"user.settings.general.emailHelp2": "E-mailul a fost dezactivat de administratorul de sistem. Nu vor fi trimise e-mailuri de notificare până când nu este activată.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Conectarea are loc prin AD/LDAP. E-mailul nu poate fi actualizat. Adresa de e-mail utilizată pentru notificări este {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Conectarea are loc prin Office 365. E-mailul nu poate fi actualizat. Adresa de e-mail utilizată pentru notificări este {email}.",
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"combined_system_message.left_channel.one": "{firstUser} **покинул канал**.",
|
||||
"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": "{firstUser} **покидает команду**.",
|
||||
"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} был **удалён с канала**.",
|
||||
@@ -85,7 +85,7 @@
|
||||
"last_users_message.added_to_channel.type": " **добавлены на канал**. Кем: {actor}.",
|
||||
"last_users_message.added_to_team.type": "были **добавлены в команду** пользователем {actor}.",
|
||||
"last_users_message.first": "{firstUser} и ",
|
||||
"last_users_message.joined_channel.type": " - **выполнен вход на канал**",
|
||||
"last_users_message.joined_channel.type": "**выполнен вход на канал**",
|
||||
"last_users_message.joined_team.type": "присоединяется к команде.",
|
||||
"last_users_message.left_channel.type": "**покинул канал**.",
|
||||
"last_users_message.left_team.type": "**покинул команду**.",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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": "Отображение времени",
|
||||
"mobile.advanced_settings.delete": "Удалить",
|
||||
"mobile.advanced_settings.delete_file_cache": "Удалить файловый кэш",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nЭто удалит все файлы, хранящиеся в кэше. Вы уверены, что хотите удалить их?\n",
|
||||
"mobile.advanced_settings.reset_button": "Сбросить",
|
||||
"mobile.advanced_settings.reset_message": "\nДанное действие приведёт к очистке локальных данных и перезапуску приложения.\n",
|
||||
"mobile.advanced_settings.reset_title": "Сбросить кэш",
|
||||
"mobile.advanced_settings.delete_message": "\nДанное действие приведёт к очистке локальных данных и перезапуску приложения.\n",
|
||||
"mobile.advanced_settings.delete_title": "Delete Documents & Data",
|
||||
"mobile.advanced_settings.timezone": "Часовой пояс",
|
||||
"mobile.advanced_settings.title": "Дополнительные параметры",
|
||||
"mobile.android.camera_permission_denied_description": "Чтобы делать фото и видео, вам нужно разрешить доступ к камере.",
|
||||
@@ -272,7 +270,7 @@
|
||||
"mobile.managed.jailbreak": "Устройства с джейлбрейком не являются доверенными {vendor}, выйдите из приложения.",
|
||||
"mobile.managed.secured_by": "Защищено {vendor}",
|
||||
"mobile.markdown.code.copy_code": "Скопировать код",
|
||||
"mobile.markdown.code.plusMoreLines": "+{count, number} еще {count, plural, one {line} других {lines}}",
|
||||
"mobile.markdown.code.plusMoreLines": "+{count, number} еще {count, plural, one {line} other {lines}}",
|
||||
"mobile.markdown.image.too_large": "Изображение превышает максимальное разрешение {maxWidth} на {maxHeight}:",
|
||||
"mobile.markdown.link.copy_url": "Скопировать URL",
|
||||
"mobile.mention.copy_mention": "Скопировать упоминание",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Архив",
|
||||
"sidebar_right_menu.logout": "Выйти",
|
||||
"sidebar_right_menu.report": "Сообщить о проблеме",
|
||||
"sidebar.channels": "ПУБЛИЧНЫЕ КАНАЛЫ",
|
||||
"sidebar.direct": "ЛИЧНЫЕ СООБЩЕНИЯ",
|
||||
"sidebar.favorite": "ИЗБРАННЫЕ КАНАЛЫ",
|
||||
"sidebar.pg": "ПРИВАТНЫЕ КАНАЛЫ",
|
||||
"sidebar.types.recent": "НЕДАВНЯЯ АКТИВНОСТЬ",
|
||||
"sidebar.unreads": "Новые сообщения",
|
||||
"signup.email": "Email и Пароль",
|
||||
"status_dropdown.set_away": "Отошёл",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12-часовой формат (пример: 4:00 PM)",
|
||||
"user.settings.display.preferTime": "Выберите предпочитаемый формат времени.",
|
||||
"user.settings.general.email": "Адрес электронной почты",
|
||||
"user.settings.general.emailCantUpdate": "Email must be updated using a web client or desktop application.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Вход выполнен с помощью GitLab. Изменения адреса эл. почты невозможно. Адрес эл. почты для уведомлений {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Вход осуществлен через Google. Адрес электронной почты не может быть обновлен. Адрес электронной почты используемый для уведомлений {email}.",
|
||||
"user.settings.general.emailHelp1": "Email, использующийся для входа, уведомлений и сброса пароля. После изменения Email требуется его верификация.",
|
||||
"user.settings.general.emailHelp2": "Email отключен системным администратором. Уведомления на email не будут высылаться пока не будет включено.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Вход осуществлен через AD/LDAP. Email не может быть обновлен. Используемый для оповещений Email: {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "При входе через Office 365 адрес электронной почты не может быть обновлен. Адрес, используемый для уведомлений: {email}.",
|
||||
@@ -545,4 +547,4 @@
|
||||
"user.settings.push_notification.offline": "Не в сети",
|
||||
"user.settings.push_notification.online": "В сети, нет на месте или не в сети",
|
||||
"web.root.signup_info": "Все способы общения команды собраны в одном месте, с возможностью мгновенного поиска и доступом отовсюду"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"channel_modal.optional": "(isteğe bağlı)",
|
||||
"channel_modal.purpose": "Amaç",
|
||||
"channel_modal.purposeEx": "Örnek: \"Hatalar ve geliştirmeler kanalı\"",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignore @channel, @here, @all",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "@channel, @here, @all yok sayılsın",
|
||||
"channel_notifications.muteChannel.settings": "Kanal bildirimlerini kapat",
|
||||
"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**.",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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ü",
|
||||
"mobile.advanced_settings.delete": "Sil",
|
||||
"mobile.advanced_settings.delete_file_cache": "Dosya Ön Belleğini Sil",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nBu işlem ön bellekte tutulan tüm dosyaları silecek. Bu dosyaları silmek istediğinize emin misiniz?\n",
|
||||
"mobile.advanced_settings.reset_button": "Sıfırla",
|
||||
"mobile.advanced_settings.reset_message": "\nBu işlem çevrimdışı verileri temizleyerek uygulamayı yeniden başlatır. Uygulama yeniden başlatıldığında oturumunuz otomatik olarak yeniden açılacak.\n",
|
||||
"mobile.advanced_settings.reset_title": "Ön Belleği Sıfırla",
|
||||
"mobile.advanced_settings.delete_message": "\nBu işlem çevrimdışı verileri temizleyerek uygulamayı yeniden başlatır. Uygulama yeniden başlatıldığında oturumunuz otomatik olarak yeniden açılacak.\n",
|
||||
"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.",
|
||||
@@ -280,7 +278,7 @@
|
||||
"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",
|
||||
"mobile.more_dms.one_more": "Daha fazla kullanıcı ekleyemezsiniz",
|
||||
"mobile.more_dms.one_more": "1 kullanıcı daha ekleyebilirsiniz",
|
||||
"mobile.more_dms.start": "Başlat",
|
||||
"mobile.more_dms.title": "Yeni Konuşma",
|
||||
"mobile.more_dms.you": "(@{username} - siz)",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Arşivlenmiş",
|
||||
"sidebar_right_menu.logout": "Oturumu Kapat",
|
||||
"sidebar_right_menu.report": "Sorun Bildir",
|
||||
"sidebar.channels": "HERKESE AÇIK KANALLAR",
|
||||
"sidebar.direct": "DOĞRUDAN İLETİLER",
|
||||
"sidebar.favorite": "BEĞENDİĞİM KANALLAR",
|
||||
"sidebar.pg": "ÖZEL KANALLAR",
|
||||
"sidebar.types.recent": "SON İŞLEMLER",
|
||||
"sidebar.unreads": "Diğer okunmamışlar",
|
||||
"signup.email": "E-posta ve Parola",
|
||||
"status_dropdown.set_away": "Uzakta",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12 saat (4:00 PM gibi)",
|
||||
"user.settings.display.preferTime": "Saatin nasıl görüntüleneceğini ayarlayın.",
|
||||
"user.settings.general.email": "E-posta",
|
||||
"user.settings.general.emailCantUpdate": "E-posta adresi, web ya da masaüstü uygulaması üzerinden güncellenmelidir.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Oturum GitLab kullanılarak açıldığından e-posta güncellenemez. Bildirimler için {email} e-posta adresi kullanılacak.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Oturum Google kullanılarak açıldığından e-posta güncellenemez. Bildirimler için {email} e-posta adresi kullanılacak.",
|
||||
"user.settings.general.emailHelp1": "E-posta oturum açmak, bildirimler ve parola sıfırlama için kullanılıyor. E-posta adresi değiştirilirse doğrulanması gerekir.",
|
||||
"user.settings.general.emailHelp2": "E-posta Sistem Yöneticisi tarafından devre dışı bırakılmış. Etkinleştirilene kadar herhangi bir bildirim e-postası gönderilmeyecek.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Oturum AD/LDAP kullanılarak açıldığından e-posta güncellenemez. Bildirimler için {email} e-posta adresi kullanılacak.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Oturum Office 365 kullanılarak açıldığından e-posta güncellenemez. Bildirimler için {email} e-posta adresi kullanılacak.",
|
||||
|
||||
@@ -124,15 +124,13 @@
|
||||
"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": "Дисплей годинника",
|
||||
"mobile.advanced_settings.delete": "Видалити ",
|
||||
"mobile.advanced_settings.delete_file_cache": "Видалити кеш файлів",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\nЦе дозволить видалити всі файли, збережені в кеш-пам'яті. Ви впевнені, що хочете видалити їх?\n",
|
||||
"mobile.advanced_settings.reset_button": "Скинути",
|
||||
"mobile.advanced_settings.reset_message": "\nДана дія приведе до очищення локальних даних і перезапуску програми.\n",
|
||||
"mobile.advanced_settings.reset_title": "Скинути кеш",
|
||||
"mobile.advanced_settings.delete_message": "\nДана дія приведе до очищення локальних даних і перезапуску програми.\n",
|
||||
"mobile.advanced_settings.delete_title": "Delete Documents & Data",
|
||||
"mobile.advanced_settings.timezone": "Часовий пояс",
|
||||
"mobile.advanced_settings.title": "Додаткові параметри ",
|
||||
"mobile.android.camera_permission_denied_description": "Щоб зробити фотографії та відеозаписи з вашою камерою, будь-ласка, змініть налаштування вашого дозволу.",
|
||||
@@ -168,7 +166,7 @@
|
||||
"mobile.channel_list.channels": "КАНАЛИ",
|
||||
"mobile.channel_list.closeDM": "Закрити пряме повідомлення",
|
||||
"mobile.channel_list.closeGM": "Закрити групове повідомлення",
|
||||
"mobile.channel_list.members": "ДЕПУТАТИ",
|
||||
"mobile.channel_list.members": "УЧАСНИКИ",
|
||||
"mobile.channel_list.not_member": "НЕ УЧАСНИК ",
|
||||
"mobile.channel_list.unreads": "НЕ ПРОЧИТАНІ ",
|
||||
"mobile.channel_members.add_members_alert": "Ви повинні вибрати хоча б одного учасника для видалення з каналу. ",
|
||||
@@ -331,12 +329,12 @@
|
||||
"mobile.open_dm.error": "Ми не можемо підключитися до каналу {displayName}. Будь-ласка, перевірте підключення та спробуйте знову.",
|
||||
"mobile.open_gm.error": "Помилка з'єднання із групи з цими користувачами. Будь-ласка, перевірте підключення та спробуйте заново.",
|
||||
"mobile.open_unknown_channel.error": "Не вдається приєднатися до каналу. Скиньте кеш і спробуйте ще раз.",
|
||||
"mobile.pinned_posts.empty_description": "Закріпіть важливі елементи, утримуючи на будь-якому повідомленні та вибравши \"Прикріпити до каналу\".",
|
||||
"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.pin": "Закріпити на канал ",
|
||||
"mobile.post_info.pin": "Прикріпити в каналі",
|
||||
"mobile.post_info.unflag": "Не позначено ",
|
||||
"mobile.post_info.unpin": "Від'єднати від каналу ",
|
||||
"mobile.post_pre_header.flagged": "Позначено",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "Архівувати ",
|
||||
"sidebar_right_menu.logout": "Вийти ",
|
||||
"sidebar_right_menu.report": "Повідомити про проблему ",
|
||||
"sidebar.channels": "ПУБЛІЧНІ КАНАЛИ",
|
||||
"sidebar.direct": "ОСОБИСТІ ПОВІДОМЛЕННЯ",
|
||||
"sidebar.favorite": "ОБРАНІ КАНАЛИ",
|
||||
"sidebar.pg": "ПРИВАТНІ КАНАЛИ",
|
||||
"sidebar.types.recent": "ОСТАННЯ АКТИВНІСТЬ",
|
||||
"sidebar.unreads": "НОВІ ПОВІДОМЛЕННЯ ",
|
||||
"signup.email": "Email і пароль ",
|
||||
"status_dropdown.set_away": "Не на місці ",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12-годинний формат (приклад: 4:00 PM)",
|
||||
"user.settings.display.preferTime": "Виберіть бажаний формат часу.",
|
||||
"user.settings.general.email": "Електронна пошта ",
|
||||
"user.settings.general.emailCantUpdate": "Email must be updated using a web client or desktop application.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "Вхід здійснюється через GitLab. Електронна пошта не може бути оновлена. Електронна адреса, яку використовують для сповіщень, є {email}.",
|
||||
"user.settings.general.emailGoogleCantUpdate": "Вхід здійснюється через Google. Електронна пошта не може бути оновлена. Електронна адреса, яку використовують для сповіщень, є {email}.",
|
||||
"user.settings.general.emailHelp1": "Електронна пошта використовується для входу, сповіщень та скидання пароля. Електронна пошта вимагає підтвердження, якщо вона змінена",
|
||||
"user.settings.general.emailHelp2": "Ваш системний адміністратор відключив електронну пошту. Ніякі повідомлення електронною поштою не надсилатимуться, доки їх не буде ввімкнено.",
|
||||
"user.settings.general.emailLdapCantUpdate": "Вхід відбувається через AD/LDAP. Електронна пошта не може бути оновлена. Електронна адреса, яку використовують для сповіщень, є {email}.",
|
||||
"user.settings.general.emailOffice365CantUpdate": "Вхід здійснюється через Office 365. Електронна пошта не може бути оновлена. Електронна адреса, яку використовують для сповіщень, є {email}.",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"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": "静音频道",
|
||||
"combined_system_message.added_to_channel.many_expanded": "{actor} 添加了 {users} 以及 {lastUser} 至**此频道**。",
|
||||
"combined_system_message.added_to_channel.one": "{actor} 添加了 {firstUser} 至**此频道**。",
|
||||
@@ -124,15 +124,13 @@
|
||||
"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": "时钟显示",
|
||||
"mobile.advanced_settings.delete": "删除",
|
||||
"mobile.advanced_settings.delete_file_cache": "删除文件缓存",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "\n这将删除缓存中的文件。您确定要删除它们么?\n",
|
||||
"mobile.advanced_settings.reset_button": "复位",
|
||||
"mobile.advanced_settings.reset_message": "\n这将清除所有离线数据并重启应用。您将会在应用重启后自动登入。\n",
|
||||
"mobile.advanced_settings.reset_title": "重置缓存",
|
||||
"mobile.advanced_settings.delete_message": "\n这将清除所有离线数据并重启应用。您将会在应用重启后自动登入。\n",
|
||||
"mobile.advanced_settings.delete_title": "删除文档及数据",
|
||||
"mobile.advanced_settings.timezone": "时区",
|
||||
"mobile.advanced_settings.title": "高级设置",
|
||||
"mobile.android.camera_permission_denied_description": "请更改您的权限设定以拍照摄影。",
|
||||
@@ -280,7 +278,7 @@
|
||||
"mobile.message_length.title": "消息长度",
|
||||
"mobile.more_dms.add_more": "您还可以添加 {remaining, number} 位用户",
|
||||
"mobile.more_dms.cannot_add_more": "您不能再添加更多用户",
|
||||
"mobile.more_dms.one_more": "您不能再添加更多用户",
|
||||
"mobile.more_dms.one_more": "您还能添加 1 个用户",
|
||||
"mobile.more_dms.start": "开始",
|
||||
"mobile.more_dms.title": "新建对话",
|
||||
"mobile.more_dms.you": "@{username} - 您",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "已归档",
|
||||
"sidebar_right_menu.logout": "注销",
|
||||
"sidebar_right_menu.report": "报告问题",
|
||||
"sidebar.channels": "公开频道",
|
||||
"sidebar.direct": "私信",
|
||||
"sidebar.favorite": "我的最爱频道",
|
||||
"sidebar.pg": "私有频道",
|
||||
"sidebar.types.recent": "最近活动",
|
||||
"sidebar.unreads": "更多未读",
|
||||
"signup.email": "电子邮箱和密码",
|
||||
"status_dropdown.set_away": "离开",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12小时格式(例如:4:00 PM)",
|
||||
"user.settings.display.preferTime": "选择您喜欢的时间显示格式。",
|
||||
"user.settings.general.email": "电子邮件",
|
||||
"user.settings.general.emailCantUpdate": "邮件必须使用网页或桌面应用更新。",
|
||||
"user.settings.general.emailGitlabCantUpdate": "通过GitLab进行登录。电子邮件不能被更新,用于通知的电子邮件地址是{email}。",
|
||||
"user.settings.general.emailGoogleCantUpdate": "通过Google进行登录。电子邮件不能被更新。用于通知的电子邮件地址是{email}。",
|
||||
"user.settings.general.emailHelp1": "电子邮件地址用于登录,通知以及密码重置。如果修改电子邮件需要重新验证。",
|
||||
"user.settings.general.emailHelp2": "电子邮件已被您的系统管理员禁用。未启用前将无法发送电子邮件通知。",
|
||||
"user.settings.general.emailLdapCantUpdate": "通过 AD/LDAP 进行登录。电子邮件不能被更新,用于通知的电子邮件地址是{email}。",
|
||||
"user.settings.general.emailOffice365CantUpdate": "通过Office 365进行登录。电子邮件不能被更新。用于通知的电子邮件地址是{email}。",
|
||||
|
||||
@@ -124,15 +124,13 @@
|
||||
"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": "顯示時間",
|
||||
"mobile.advanced_settings.delete": "刪除",
|
||||
"mobile.advanced_settings.delete_file_cache": "刪除檔案快取",
|
||||
"mobile.advanced_settings.delete_file_cache_message": "這將會刪除所有在快取中的檔案。確定要刪除?",
|
||||
"mobile.advanced_settings.reset_button": "重置",
|
||||
"mobile.advanced_settings.reset_message": "\n這將會清除所有離線資料並重新啟動 app 。在重啟 app 後會自動重新登入。\n",
|
||||
"mobile.advanced_settings.reset_title": "清除快取",
|
||||
"mobile.advanced_settings.delete_message": "\n這將會清除所有離線資料並重新啟動 app 。在重啟 app 後會自動重新登入。\n",
|
||||
"mobile.advanced_settings.delete_title": "Delete Documents & Data",
|
||||
"mobile.advanced_settings.timezone": "時區",
|
||||
"mobile.advanced_settings.title": "進階設定",
|
||||
"mobile.android.camera_permission_denied_description": "請變更權限設定以用相機拍照攝影。",
|
||||
@@ -280,7 +278,7 @@
|
||||
"mobile.message_length.title": "訊息長度",
|
||||
"mobile.more_dms.add_more": "還能增加 {remaining, number} 位使用者",
|
||||
"mobile.more_dms.cannot_add_more": "無法增加更多位使用者",
|
||||
"mobile.more_dms.one_more": "無法增加更多位使用者",
|
||||
"mobile.more_dms.one_more": "可以在增加一位使用者",
|
||||
"mobile.more_dms.start": "開始",
|
||||
"mobile.more_dms.title": "新對話",
|
||||
"mobile.more_dms.you": "(@{username} - 您)",
|
||||
@@ -488,7 +486,11 @@
|
||||
"search_item.channelArchived": "已封存",
|
||||
"sidebar_right_menu.logout": "登出",
|
||||
"sidebar_right_menu.report": "回報錯誤",
|
||||
"sidebar.channels": "公開頻道",
|
||||
"sidebar.direct": "直接傳訊",
|
||||
"sidebar.favorite": "我的最愛",
|
||||
"sidebar.pg": "私人頻道",
|
||||
"sidebar.types.recent": "最近的活動",
|
||||
"sidebar.unreads": "更多未讀訊息",
|
||||
"signup.email": "電子郵件跟密碼",
|
||||
"status_dropdown.set_away": "離開",
|
||||
@@ -514,9 +516,9 @@
|
||||
"user.settings.display.normalClock": "12 小時制(如:4:00 PM)",
|
||||
"user.settings.display.preferTime": "選擇時間顯示方式。",
|
||||
"user.settings.general.email": "電子郵件地址",
|
||||
"user.settings.general.emailCantUpdate": "Email must be updated using a web client or desktop application.",
|
||||
"user.settings.general.emailGitlabCantUpdate": "經由 GitLab 登入。無法變更電子郵件地址。通知將會寄送到 {email}。",
|
||||
"user.settings.general.emailGoogleCantUpdate": "經由 Google 登入。無法變更電子郵件地址。通知將會寄送到 {email}。",
|
||||
"user.settings.general.emailHelp1": "電子郵件地址將會用在登入、通知跟重置密碼。更改時需要重新驗證。",
|
||||
"user.settings.general.emailHelp2": "系統管理員已停用電子郵件。在被啟用之前將不會有通知郵件寄出。",
|
||||
"user.settings.general.emailLdapCantUpdate": "經由 AD/LDAP 登入。無法變更電子郵件地址。通知將會寄送到 {email}。",
|
||||
"user.settings.general.emailOffice365CantUpdate": "經由 Office 365 登入。無法變更電子郵件地址。通知將會寄送到 {email}。",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
@@ -2527,7 +2527,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
CURRENT_PROJECT_VERSION = 175;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -2579,7 +2579,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
CURRENT_PROJECT_VERSION = 175;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
|
||||
@@ -115,7 +115,7 @@ NSString* const NotificationClearAction = @"clear";
|
||||
[self cleanNotificationsFromChannel:channelId andUpdateBadge:NO];
|
||||
} else if (state == UIApplicationStateInactive) {
|
||||
// When the notification is opened
|
||||
[self cleanNotificationsFromChannel:channelId andUpdateBadge:YES];
|
||||
[self cleanNotificationsFromChannel:channelId andUpdateBadge:NO];
|
||||
}
|
||||
|
||||
[RNNotifications didReceiveRemoteNotification:userInfo];
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.15.2</string>
|
||||
<string>1.16.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
@@ -34,7 +34,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>170</string>
|
||||
<string>175</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.15.2</string>
|
||||
<string>1.16.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>170</string>
|
||||
<string>175</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.15.2</string>
|
||||
<string>1.16.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>170</string>
|
||||
<string>175</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
8
package-lock.json
generated
8
package-lock.json
generated
@@ -8376,8 +8376,8 @@
|
||||
"integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
|
||||
},
|
||||
"mattermost-redux": {
|
||||
"version": "github:mattermost/mattermost-redux#e6a49c935c4c3b732b374f5223d851ae44a80136",
|
||||
"from": "github:mattermost/mattermost-redux#e6a49c935c4c3b732b374f5223d851ae44a80136",
|
||||
"version": "github:mattermost/mattermost-redux#8189be00bac16762bbd9ff298f4004a14eca2da2",
|
||||
"from": "github:mattermost/mattermost-redux#8189be00bac16762bbd9ff298f4004a14eca2da2",
|
||||
"requires": {
|
||||
"deep-equal": "1.0.1",
|
||||
"eslint-plugin-header": "2.0.0",
|
||||
@@ -12353,8 +12353,8 @@
|
||||
}
|
||||
},
|
||||
"rn-fetch-blob": {
|
||||
"version": "github:enahum/react-native-fetch-blob#20d1c07ef34ba18be485a1f56cd2261158e93f69",
|
||||
"from": "github:enahum/react-native-fetch-blob#20d1c07ef34ba18be485a1f56cd2261158e93f69",
|
||||
"version": "github:enahum/react-native-fetch-blob#1f370ab3616101d4ffe919e0b58cbe4ef319ce5d",
|
||||
"from": "github:enahum/react-native-fetch-blob#1f370ab3616101d4ffe919e0b58cbe4ef319ce5d",
|
||||
"requires": {
|
||||
"base-64": "0.1.0",
|
||||
"glob": "7.0.6"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"intl": "1.2.5",
|
||||
"jail-monkey": "1.0.0",
|
||||
"jsc-android": "236355.1.0",
|
||||
"mattermost-redux": "github:mattermost/mattermost-redux#e6a49c935c4c3b732b374f5223d851ae44a80136",
|
||||
"mattermost-redux": "github:mattermost/mattermost-redux#8189be00bac16762bbd9ff298f4004a14eca2da2",
|
||||
"mime-db": "1.37.0",
|
||||
"moment-timezone": "0.5.23",
|
||||
"prop-types": "15.6.2",
|
||||
@@ -65,7 +65,7 @@
|
||||
"redux-persist-transform-filter": "0.0.18",
|
||||
"redux-thunk": "2.3.0",
|
||||
"reselect": "4.0.0",
|
||||
"rn-fetch-blob": "github:enahum/react-native-fetch-blob#20d1c07ef34ba18be485a1f56cd2261158e93f69",
|
||||
"rn-fetch-blob": "github:enahum/react-native-fetch-blob#1f370ab3616101d4ffe919e0b58cbe4ef319ce5d",
|
||||
"rn-placeholder": "github:enahum/rn-placeholder#bfee66eb54f1f06d1425a0ad511a5e16559bf82c",
|
||||
"semver": "5.6.0",
|
||||
"shallow-equals": "1.0.0",
|
||||
|
||||
@@ -63,7 +63,7 @@ export default class ExtensionPost extends PureComponent {
|
||||
actions: PropTypes.shape({
|
||||
getTeamChannels: PropTypes.func.isRequired,
|
||||
}).isRequired,
|
||||
channelId: PropTypes.string.isRequired,
|
||||
channelId: PropTypes.string,
|
||||
currentUserId: PropTypes.string.isRequired,
|
||||
maxFileSize: PropTypes.number.isRequired,
|
||||
navigation: PropTypes.object.isRequired,
|
||||
@@ -325,8 +325,9 @@ export default class ExtensionPost extends PureComponent {
|
||||
});
|
||||
}
|
||||
|
||||
this.setState({error, files, value, hasPermission: true, totalSize, loaded: true});
|
||||
this.setState({error, files, value, hasPermission: true, totalSize});
|
||||
}
|
||||
this.setState({loaded: true});
|
||||
};
|
||||
|
||||
onClose = (data) => {
|
||||
|
||||
Reference in New Issue
Block a user