Merge 4.21.0 into master (#3467)

This commit is contained in:
Diego Mello 2021-10-28 14:48:53 -03:00 committed by GitHub
parent 4db5db7fa0
commit 5cd4d82477
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
196 changed files with 26479 additions and 15019 deletions

View File

@ -23,3 +23,4 @@ SECURITY.md
npm-debug.log
yarn-error.log
app/i18n/locales/

File diff suppressed because it is too large Load Diff

View File

@ -144,7 +144,7 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode VERSIONCODE as Integer
versionName "4.20.0"
versionName "4.21.0"
vectorDrawables.useSupportLibrary = true
if (!isFoss) {
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
@ -260,7 +260,6 @@ android {
dependencies {
addUnimodulesDependencies()
implementation project(':watermelondb')
implementation project(':@react-native-community_viewpager')
playImplementation project(':reactnativenotifications')
playImplementation project(':@react-native-firebase_app')
@ -293,6 +292,8 @@ dependencies {
implementation "com.github.bumptech.glide:glide:4.9.0"
annotationProcessor "com.github.bumptech.glide:compiler:4.9.0"
implementation "com.tencent:mmkv-static:1.2.1"
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation "com.squareup.okhttp3:okhttp-urlconnection:4.9.0"
}
// Run this once to be able to run the application with BUCK

View File

@ -3,7 +3,6 @@
package="chat.rocket.reactnative">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application

View File

@ -9,8 +9,9 @@ import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;
import com.nozbe.watermelondb.WatermelonDBPackage;
import com.reactnativecommunity.viewpager.RNCViewPagerPackage;
import com.facebook.react.bridge.JSIModulePackage;
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
import org.unimodules.adapters.react.ModuleRegistryAdapter;
import org.unimodules.adapters.react.ReactModuleRegistryProvider;
@ -35,7 +36,6 @@ public class MainApplication extends Application implements ReactApplication {
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new WatermelonDBPackage());
packages.add(new RNCViewPagerPackage());
packages.add(new SSLPinningPackage());
List<ReactPackage> unimodules = Arrays.<ReactPackage>asList(
@ -52,6 +52,11 @@ public class MainApplication extends Application implements ReactApplication {
return "index";
}
@Override
protected JSIModulePackage getJSIModulePackage() {
return new ReanimatedJSIModulePackage(); // <- add
}
@Override
protected @Nullable String getBundleAssetName() {
return "app.bundle";

View File

@ -14,7 +14,6 @@ public class BasePackageList {
new expo.modules.imageloader.ImageLoaderPackage(),
new expo.modules.keepawake.KeepAwakePackage(),
new expo.modules.localauthentication.LocalAuthenticationPackage(),
new expo.modules.permissions.PermissionsPackage(),
new expo.modules.videothumbnails.VideoThumbnailsPackage(),
new expo.modules.webbrowser.WebBrowserPackage()
);

View File

@ -10,8 +10,8 @@ buildscript {
ext {
buildToolsVersion = "29.0.3"
minSdkVersion = 23
compileSdkVersion = 29
targetSdkVersion = 29
compileSdkVersion = 30
targetSdkVersion = 30
ndkVersion = "20.1.5948944"
glideVersion = "4.11.0"
kotlin_version = "1.3.50"
@ -68,10 +68,10 @@ subprojects { subproject ->
afterEvaluate {
if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion 29
compileSdkVersion 30
buildToolsVersion "29.0.3"
defaultConfig {
targetSdkVersion 29
targetSdkVersion 30
}
variantFilter { variant ->
def names = variant.flavors*.name

View File

@ -2,8 +2,6 @@ apply from: '../node_modules/react-native-unimodules/gradle.groovy'
includeUnimodulesProjects()
rootProject.name = 'RocketChatRN'
include ':watermelondb'
project(':watermelondb').projectDir = new File(rootProject.projectDir, '../node_modules/@nozbe/watermelondb/native/android')
include ':reactnativenotifications'
project(':reactnativenotifications').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-notifications/android/app')
include ':@react-native-community_viewpager'

View File

@ -18,8 +18,6 @@ export const ROOMS = createRequestTypes('ROOMS', [
'SET_SEARCH',
'CLOSE_SERVER_DROPDOWN',
'TOGGLE_SERVER_DROPDOWN',
'CLOSE_SORT_DROPDOWN',
'TOGGLE_SORT_DROPDOWN',
'OPEN_SEARCH_HEADER',
'CLOSE_SEARCH_HEADER'
]);

View File

@ -45,18 +45,6 @@ export function toggleServerDropdown() {
};
}
export function closeSortDropdown() {
return {
type: types.ROOMS.CLOSE_SORT_DROPDOWN
};
}
export function toggleSortDropdown() {
return {
type: types.ROOMS.TOGGLE_SORT_DROPDOWN
};
}
export function openSearchHeader() {
return {
type: types.ROOMS.OPEN_SEARCH_HEADER

View File

@ -0,0 +1,2 @@
export const DISPLAY_MODE_CONDENSED = 'condensed';
export const DISPLAY_MODE_EXPANDED = 'expanded';

View File

@ -3,7 +3,7 @@ import { Keyboard, Text } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { State, TapGestureHandler } from 'react-native-gesture-handler';
import ScrollBottomSheet from 'react-native-scroll-bottom-sheet';
import Animated, { Easing, Extrapolate, Value, interpolate } from 'react-native-reanimated';
import Animated, { Easing, Extrapolate, Value, interpolateNode } from 'react-native-reanimated';
import * as Haptics from 'expo-haptics';
import { useBackHandler } from '@react-native-community/hooks';
@ -132,11 +132,12 @@ const ActionSheet = React.memo(
const renderItem = ({ item }: any) => <Item item={item} hide={hide} theme={theme} />;
const animatedPosition = React.useRef(new Value(0));
const opacity = interpolate(animatedPosition.current, {
// TODO: Similar to https://github.com/wcandillon/react-native-redash/issues/307#issuecomment-827442320
const opacity = interpolateNode(animatedPosition.current, {
inputRange: [0, 1],
outputRange: [0, themes[theme].backdropOpacity],
extrapolate: Extrapolate.CLAMP
});
}) as any;
return (
<>

View File

@ -85,7 +85,7 @@ const Avatar = React.memo(
}
return (
<View style={[avatarStyle, style]}>
<View style={[avatarStyle, style]} testID='avatar'>
{image}
{children}
</View>

View File

@ -1,5 +1,5 @@
import React from 'react';
import { ScrollView, StyleSheet, View } from 'react-native';
import { ScrollView, ScrollViewProps, StyleSheet, View } from 'react-native';
import { themes } from '../constants/colors';
import sharedStyles from '../views/Styles';
@ -10,10 +10,10 @@ import AppVersion from './AppVersion';
import { isTablet } from '../utils/deviceInfo';
import SafeAreaView from './SafeAreaView';
interface IFormContainer {
interface IFormContainer extends ScrollViewProps {
theme: string;
testID: string;
children: JSX.Element;
children: React.ReactNode;
}
const styles = StyleSheet.create({
@ -22,11 +22,11 @@ const styles = StyleSheet.create({
}
});
export const FormContainerInner = ({ children }: { children: JSX.Element }) => (
export const FormContainerInner = ({ children }: { children: React.ReactNode }): JSX.Element => (
<View style={[sharedStyles.container, isTablet && sharedStyles.tabletScreenContent]}>{children}</View>
);
const FormContainer = ({ children, theme, testID, ...props }: IFormContainer) => (
const FormContainer = ({ children, theme, testID, ...props }: IFormContainer): JSX.Element => (
// @ts-ignore
<KeyboardView
style={{ backgroundColor: themes[theme].backgroundColor }}

View File

@ -1,6 +1,6 @@
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { BorderlessButton } from 'react-native-gesture-handler';
import { StyleProp, StyleSheet, Text, TextInputProps, TextStyle, View, ViewStyle } from 'react-native';
import Touchable from 'react-native-platform-touchable';
import sharedStyles from '../views/Styles';
import TextInput from '../presentation/TextInput';
@ -50,23 +50,21 @@ const styles = StyleSheet.create({
}
});
interface IRCTextInputProps {
label: string;
error: {
interface IRCTextInputProps extends TextInputProps {
label?: string;
error?: {
error: any;
reason: any;
};
loading: boolean;
secureTextEntry: boolean;
containerStyle: any;
inputStyle: object;
inputRef: any;
testID: string;
iconLeft: string;
iconRight: string;
placeholder: string;
left: JSX.Element;
onIconRightPress(): void;
loading?: boolean;
containerStyle?: StyleProp<ViewStyle>;
inputStyle?: TextStyle;
inputRef?: React.Ref<unknown>;
testID?: string;
iconLeft?: string;
iconRight?: string;
left?: JSX.Element;
onIconRightPress?(): void;
theme: string;
}
@ -95,9 +93,9 @@ export default class RCTextInput extends React.PureComponent<IRCTextInputProps,
get iconRight() {
const { iconRight, onIconRightPress, theme } = this.props;
return (
<BorderlessButton onPress={onIconRightPress} style={[styles.iconContainer, styles.iconRight]}>
<Touchable onPress={onIconRightPress} style={[styles.iconContainer, styles.iconRight]}>
<CustomIcon name={iconRight} style={{ color: themes[theme].bodyText }} size={20} />
</BorderlessButton>
</Touchable>
);
}
@ -105,14 +103,14 @@ export default class RCTextInput extends React.PureComponent<IRCTextInputProps,
const { showPassword } = this.state;
const { testID, theme } = this.props;
return (
<BorderlessButton onPress={this.tooglePassword} style={[styles.iconContainer, styles.iconRight]}>
<Touchable onPress={this.tooglePassword} style={[styles.iconContainer, styles.iconRight]}>
<CustomIcon
name={showPassword ? 'unread-on-top' : 'unread-on-top-disabled'}
testID={testID ? `${testID}-icon-right` : null}
style={{ color: themes[theme].auxiliaryText }}
size={20}
/>
</BorderlessButton>
</Touchable>
);
}
@ -148,17 +146,10 @@ export default class RCTextInput extends React.PureComponent<IRCTextInputProps,
return (
<View style={[styles.inputContainer, containerStyle]}>
{label ? (
<Text
contentDescription={null}
// @ts-ignore
accessibilityLabel={null}
style={[styles.label, { color: themes[theme].titleText }, error.error && { color: dangerColor }]}>
{label}
</Text>
<Text style={[styles.label, { color: themes[theme].titleText }, error?.error && { color: dangerColor }]}>{label}</Text>
) : null}
<View style={styles.wrap}>
<TextInput
/* @ts-ignore*/
style={[
styles.input,
iconLeft && styles.inputIconLeft,
@ -168,14 +159,13 @@ export default class RCTextInput extends React.PureComponent<IRCTextInputProps,
borderColor: themes[theme].separatorColor,
color: themes[theme].titleText
},
error.error && {
error?.error && {
color: dangerColor,
borderColor: dangerColor
},
inputStyle
]}
ref={inputRef}
/* @ts-ignore*/
autoCorrect={false}
autoCapitalize='none'
underlineColorAndroid='transparent'
@ -183,8 +173,6 @@ export default class RCTextInput extends React.PureComponent<IRCTextInputProps,
testID={testID}
accessibilityLabel={placeholder}
placeholder={placeholder}
/* @ts-ignore*/
contentDescription={placeholder}
theme={theme}
{...inputProps}
/>

View File

@ -1,6 +1,7 @@
import React from 'react';
import { Text } from 'react-native';
import { useTheme } from '../../theme';
import { themes } from '../../constants/colors';
import styles from './styles';
import { events, logEvent } from '../../utils/log';
@ -9,20 +10,20 @@ interface IAtMention {
mention: string;
username: string;
navToRoomInfo: Function;
style: any;
style?: any;
useRealName: boolean;
theme: string;
mentions: any;
}
const AtMention = React.memo(({ mention, mentions, username, navToRoomInfo, style = [], useRealName, theme }: IAtMention) => {
const AtMention = React.memo(({ mention, mentions, username, navToRoomInfo, style = [], useRealName }: IAtMention) => {
const { theme } = useTheme();
if (mention === 'all' || mention === 'here') {
return (
<Text
style={[
styles.mention,
{
color: themes[theme].mentionGroupColor
color: themes[theme!].mentionGroupColor
},
...style
]}>
@ -34,11 +35,11 @@ const AtMention = React.memo(({ mention, mentions, username, navToRoomInfo, styl
let mentionStyle = {};
if (mention === username) {
mentionStyle = {
color: themes[theme].mentionMeColor
color: themes[theme!].mentionMeColor
};
} else {
mentionStyle = {
color: themes[theme].mentionOtherColor
color: themes[theme!].mentionOtherColor
};
}
@ -61,7 +62,7 @@ const AtMention = React.memo(({ mention, mentions, username, navToRoomInfo, styl
);
}
return <Text style={[styles.text, { color: themes[theme].bodyText }, ...style]}>{`@${mention}`}</Text>;
return <Text style={[styles.text, { color: themes[theme!].bodyText }, ...style]}>{`@${mention}`}</Text>;
});
export default AtMention;

View File

@ -1,23 +1,26 @@
import React from 'react';
import { Text } from 'react-native';
import { Text, TextStyle } from 'react-native';
import { themes } from '../../constants/colors';
import { useTheme } from '../../theme';
import styles from './styles';
interface IHashtag {
hashtag: string;
navToRoomInfo: Function;
style: [];
theme: string;
style?: TextStyle[];
channels: {
[index: number]: string | number;
name: string;
_id: number;
}[];
}
const Hashtag = React.memo(({ hashtag, channels, navToRoomInfo, style = [], theme }: IHashtag) => {
const Hashtag = React.memo(({ hashtag, channels, navToRoomInfo, style = [] }: IHashtag) => {
const { theme } = useTheme();
const handlePress = () => {
const index = channels.findIndex(channel => channel.name === hashtag);
const index = channels?.findIndex(channel => channel.name === hashtag);
const navParam = {
t: 'c',
rid: channels[index]._id
@ -31,7 +34,7 @@ const Hashtag = React.memo(({ hashtag, channels, navToRoomInfo, style = [], them
style={[
styles.mention,
{
color: themes[theme].mentionOtherColor
color: themes[theme!].mentionOtherColor
},
...style
]}
@ -40,7 +43,7 @@ const Hashtag = React.memo(({ hashtag, channels, navToRoomInfo, style = [], them
</Text>
);
}
return <Text style={[styles.text, { color: themes[theme].bodyText }, ...style]}>{`#${hashtag}`}</Text>;
return <Text style={[styles.text, { color: themes[theme!].bodyText }, ...style]}>{`#${hashtag}`}</Text>;
});
export default Hashtag;

View File

@ -3,6 +3,7 @@ import { Image, Text } from 'react-native';
import { Node, Parser } from 'commonmark';
import Renderer from 'commonmark-react-renderer';
import removeMarkdown from 'remove-markdown';
import { MarkdownAST } from '@rocket.chat/message-parser';
import shortnameToUnicode from '../../utils/shortnameToUnicode';
import I18n from '../../i18n';
@ -20,9 +21,20 @@ import MarkdownTableCell from './TableCell';
import mergeTextNodes from './mergeTextNodes';
import styles from './styles';
import { isValidURL } from '../../utils/url';
import NewMarkdown from './new';
interface IUser {
_id: string;
username: string;
name: string;
}
type UserMention = Pick<IUser, '_id' | 'username' | 'name'>;
interface IMarkdownProps {
msg: string;
md: MarkdownAST;
mentions: UserMention[];
getCustomEmoji: Function;
baseUrl: string;
username: string;
@ -35,7 +47,7 @@ interface IMarkdownProps {
name: string;
_id: number;
}[];
mentions: object[];
enableMessageParser: boolean;
navToRoomInfo: Function;
preview: boolean;
theme: string;
@ -97,7 +109,9 @@ class Markdown extends PureComponent<IMarkdownProps, any> {
constructor(props: IMarkdownProps) {
super(props);
this.renderer = this.createRenderer();
if (!this.isNewMarkdown) {
this.renderer = this.createRenderer();
}
}
createRenderer = () =>
@ -139,6 +153,11 @@ class Markdown extends PureComponent<IMarkdownProps, any> {
renderParagraphsInLists: true
});
get isNewMarkdown(): boolean {
const { md, enableMessageParser } = this.props;
return enableMessageParser && !!md;
}
editedMessage = (ast: any) => {
const { isEdited } = this.props;
if (isEdited) {
@ -227,12 +246,12 @@ class Markdown extends PureComponent<IMarkdownProps, any> {
};
renderHashtag = ({ hashtag }: { hashtag: string }) => {
const { channels, navToRoomInfo, style, theme } = this.props;
return <MarkdownHashtag hashtag={hashtag} channels={channels} navToRoomInfo={navToRoomInfo} theme={theme} style={style} />;
const { channels, navToRoomInfo, style } = this.props;
return <MarkdownHashtag hashtag={hashtag} channels={channels} navToRoomInfo={navToRoomInfo} style={style} />;
};
renderAtMention = ({ mentionName }: { mentionName: string }) => {
const { username, mentions, navToRoomInfo, useRealName, style, theme } = this.props;
const { username, mentions, navToRoomInfo, useRealName, style } = this.props;
return (
<MarkdownAtMention
mentions={mentions}
@ -240,7 +259,6 @@ class Markdown extends PureComponent<IMarkdownProps, any> {
useRealName={useRealName}
username={username}
navToRoomInfo={navToRoomInfo}
theme={theme}
style={style}
/>
);
@ -329,12 +347,44 @@ class Markdown extends PureComponent<IMarkdownProps, any> {
};
render() {
const { msg, numberOfLines, preview = false, theme, style = [], testID } = this.props;
const {
msg,
md,
numberOfLines,
preview = false,
theme,
style = [],
testID,
mentions,
channels,
navToRoomInfo,
useRealName,
username,
getCustomEmoji,
baseUrl,
onLinkPress
} = this.props;
if (!msg) {
return null;
}
if (this.isNewMarkdown && !preview) {
return (
<NewMarkdown
username={username}
baseUrl={baseUrl}
getCustomEmoji={getCustomEmoji}
useRealName={useRealName}
tokens={md}
mentions={mentions}
channels={channels}
navToRoomInfo={navToRoomInfo}
onLinkPress={onLinkPress}
/>
);
}
let m = formatText(msg);
// Ex: '[ ](https://open.rocket.chat/group/test?msg=abcdef) Test'

View File

@ -0,0 +1,25 @@
import React from 'react';
import { StyleSheet, View } from 'react-native';
import { BigEmoji as BigEmojiProps } from '@rocket.chat/message-parser';
import Emoji from './Emoji';
interface IBigEmojiProps {
value: BigEmojiProps['value'];
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row'
}
});
const BigEmoji = ({ value }: IBigEmojiProps): JSX.Element => (
<View style={styles.container}>
{value.map(block => (
<Emoji value={block.value} isBigEmoji />
))}
</View>
);
export default BigEmoji;

View File

@ -0,0 +1,40 @@
import React from 'react';
import { StyleSheet, Text } from 'react-native';
import { Bold as BoldProps } from '@rocket.chat/message-parser';
import sharedStyles from '../../../views/Styles';
import Strike from './Strike';
import Italic from './Italic';
import Plain from './Plain';
import Link from './Link';
interface IBoldProps {
value: BoldProps['value'];
}
const styles = StyleSheet.create({
text: {
...sharedStyles.textBold
}
});
const Bold = ({ value }: IBoldProps): JSX.Element => (
<Text style={styles.text}>
{value.map(block => {
switch (block.type) {
case 'LINK':
return <Link value={block.value} />;
case 'PLAIN_TEXT':
return <Plain value={block.value} />;
case 'STRIKE':
return <Strike value={block.value} />;
case 'ITALIC':
return <Italic value={block.value} />;
default:
return null;
}
})}
</Text>
);
export default Bold;

View File

@ -0,0 +1,39 @@
import React from 'react';
import { Text } from 'react-native';
import { Code as CodeProps } from '@rocket.chat/message-parser';
import styles from '../styles';
import { themes } from '../../../constants/colors';
import { useTheme } from '../../../theme';
import CodeLine from './CodeLine';
interface ICodeProps {
value: CodeProps['value'];
}
const Code = ({ value }: ICodeProps): JSX.Element => {
const { theme } = useTheme();
return (
<Text
style={[
styles.codeBlock,
{
color: themes[theme!].bodyText,
backgroundColor: themes[theme!].bannerBackground,
borderColor: themes[theme!].borderColor
}
]}>
{value.map(block => {
switch (block.type) {
case 'CODE_LINE':
return <CodeLine value={block.value} />;
default:
return null;
}
})}
</Text>
);
};
export default Code;

View File

@ -0,0 +1,17 @@
import React from 'react';
import { Text } from 'react-native';
import { CodeLine as CodeLineProps } from '@rocket.chat/message-parser';
interface ICodeLineProps {
value: CodeLineProps['value'];
}
const CodeLine = ({ value }: ICodeLineProps): JSX.Element | null => {
if (value.type !== 'PLAIN_TEXT') {
return null;
}
return <Text>{value.value}</Text>;
};
export default CodeLine;

View File

@ -0,0 +1,29 @@
import React, { useContext } from 'react';
import { Text } from 'react-native';
import { Emoji as EmojiProps } from '@rocket.chat/message-parser';
import shortnameToUnicode from '../../../utils/shortnameToUnicode';
import { themes } from '../../../constants/colors';
import { useTheme } from '../../../theme';
import styles from '../styles';
import CustomEmoji from '../../EmojiPicker/CustomEmoji';
import MarkdownContext from './MarkdownContext';
interface IEmojiProps {
value: EmojiProps['value'];
isBigEmoji?: boolean;
}
const Emoji = ({ value, isBigEmoji }: IEmojiProps): JSX.Element => {
const { theme } = useTheme();
const { baseUrl, getCustomEmoji } = useContext(MarkdownContext);
const emojiUnicode = shortnameToUnicode(`:${value.value}:`);
const emoji = getCustomEmoji?.(value.value);
if (emoji) {
return <CustomEmoji baseUrl={baseUrl} style={[isBigEmoji ? styles.customEmojiBig : styles.customEmoji]} emoji={emoji} />;
}
return <Text style={[{ color: themes[theme!].bodyText }, isBigEmoji ? styles.textBig : styles.text]}>{emojiUnicode}</Text>;
};
export default Emoji;

View File

@ -0,0 +1,32 @@
import React from 'react';
import { Text } from 'react-native';
import { Heading as HeadingProps } from '@rocket.chat/message-parser';
import { themes } from '../../../constants/colors';
import styles from '../styles';
import { useTheme } from '../../../theme';
interface IHeadingProps {
value: HeadingProps['value'];
level: HeadingProps['level'];
}
const Heading = ({ value, level }: IHeadingProps): JSX.Element => {
const { theme } = useTheme();
const textStyle = styles[`heading${level}`];
return (
<Text style={[textStyle, { color: themes[theme!].bodyText }]}>
{value.map(block => {
switch (block.type) {
case 'PLAIN_TEXT':
return block.value;
default:
return null;
}
})}
</Text>
);
};
export default Heading;

View File

@ -0,0 +1,41 @@
import React from 'react';
import { Image as ImageProps } from '@rocket.chat/message-parser';
import { createImageProgress } from 'react-native-image-progress';
import * as Progress from 'react-native-progress';
import FastImage from '@rocket.chat/react-native-fast-image';
import { useTheme } from '../../../theme';
import { themes } from '../../../constants/colors';
import styles from '../../message/styles';
interface IImageProps {
value: ImageProps['value'];
}
type TMessageImage = {
img: string;
theme: string;
};
const ImageProgress = createImageProgress(FastImage);
const MessageImage = ({ img, theme }: TMessageImage) => (
<ImageProgress
style={[styles.inlineImage, { borderColor: themes[theme].borderColor }]}
source={{ uri: encodeURI(img) }}
resizeMode={FastImage.resizeMode.cover}
indicator={Progress.Pie}
indicatorProps={{
color: themes[theme].actionTintColor
}}
/>
);
const Image = ({ value }: IImageProps): JSX.Element => {
const { theme } = useTheme();
const { src } = value;
return <MessageImage img={src.value} theme={theme!} />;
};
export default Image;

View File

@ -0,0 +1,64 @@
import React, { useContext } from 'react';
import { Text } from 'react-native';
import { Paragraph as ParagraphProps } from '@rocket.chat/message-parser';
import Hashtag from '../Hashtag';
import AtMention from '../AtMention';
import styles from '../styles';
import Link from './Link';
import Plain from './Plain';
import Bold from './Bold';
import Strike from './Strike';
import Italic from './Italic';
import Emoji from './Emoji';
import InlineCode from './InlineCode';
import Image from './Image';
import MarkdownContext from './MarkdownContext';
interface IParagraphProps {
value: ParagraphProps['value'];
}
const Inline = ({ value }: IParagraphProps): JSX.Element => {
const { useRealName, username, navToRoomInfo, mentions, channels } = useContext(MarkdownContext);
return (
<Text style={styles.inline}>
{value.map(block => {
switch (block.type) {
case 'IMAGE':
return <Image value={block.value} />;
case 'PLAIN_TEXT':
return <Plain value={block.value} />;
case 'BOLD':
return <Bold value={block.value} />;
case 'STRIKE':
return <Strike value={block.value} />;
case 'ITALIC':
return <Italic value={block.value} />;
case 'LINK':
return <Link value={block.value} />;
case 'MENTION_USER':
return (
<AtMention
mention={block.value.value}
useRealName={useRealName}
username={username}
navToRoomInfo={navToRoomInfo}
mentions={mentions}
/>
);
case 'EMOJI':
return <Emoji value={block.value} />;
case 'MENTION_CHANNEL':
return <Hashtag hashtag={block.value.value} navToRoomInfo={navToRoomInfo} channels={channels} />;
case 'INLINE_CODE':
return <InlineCode value={block.value} />;
default:
return null;
}
})}
</Text>
);
};
export default Inline;

View File

@ -0,0 +1,38 @@
import React from 'react';
import { Text } from 'react-native';
import { InlineCode as InlineCodeProps } from '@rocket.chat/message-parser';
import styles from '../styles';
import { themes } from '../../../constants/colors';
import { useTheme } from '../../../theme';
interface IInlineCodeProps {
value: InlineCodeProps['value'];
}
const InlineCode = ({ value }: IInlineCodeProps): JSX.Element => {
const { theme } = useTheme();
return (
<Text
style={[
styles.codeInline,
{
color: themes[theme!].bodyText,
backgroundColor: themes[theme!].bannerBackground,
borderColor: themes[theme!].borderColor
}
]}>
{(block => {
switch (block.type) {
case 'PLAIN_TEXT':
return <Text>{block.value}</Text>;
default:
return null;
}
})(value)}
</Text>
);
};
export default InlineCode;

View File

@ -0,0 +1,39 @@
import React from 'react';
import { StyleSheet, Text } from 'react-native';
import { Italic as ItalicProps } from '@rocket.chat/message-parser';
import Strike from './Strike';
import Bold from './Bold';
import Plain from './Plain';
import Link from './Link';
interface IItalicProps {
value: ItalicProps['value'];
}
const styles = StyleSheet.create({
text: {
fontStyle: 'italic'
}
});
const Italic = ({ value }: IItalicProps): JSX.Element => (
<Text style={styles.text}>
{value.map(block => {
switch (block.type) {
case 'LINK':
return <Link value={block.value} />;
case 'PLAIN_TEXT':
return <Plain value={block.value} />;
case 'STRIKE':
return <Strike value={block.value} />;
case 'BOLD':
return <Bold value={block.value} />;
default:
return null;
}
})}
</Text>
);
export default Italic;

View File

@ -0,0 +1,60 @@
import React, { useContext } from 'react';
import { Text, Clipboard } from 'react-native';
import { Link as LinkProps } from '@rocket.chat/message-parser';
import styles from '../styles';
import I18n from '../../../i18n';
import { LISTENER } from '../../Toast';
import { useTheme } from '../../../theme';
import openLink from '../../../utils/openLink';
import EventEmitter from '../../../utils/events';
import { themes } from '../../../constants/colors';
import Strike from './Strike';
import Italic from './Italic';
import Bold from './Bold';
import MarkdownContext from './MarkdownContext';
interface ILinkProps {
value: LinkProps['value'];
}
const Link = ({ value }: ILinkProps): JSX.Element => {
const { theme } = useTheme();
const { onLinkPress } = useContext(MarkdownContext);
const { src, label } = value;
const handlePress = () => {
if (!src.value) {
return;
}
if (onLinkPress) {
return onLinkPress(src.value);
}
openLink(src.value, theme);
};
const onLongPress = () => {
Clipboard.setString(src.value);
EventEmitter.emit(LISTENER, { message: I18n.t('Copied_to_clipboard') });
};
return (
<Text onPress={handlePress} onLongPress={onLongPress} style={[styles.link, { color: themes[theme!].actionTintColor }]}>
{(block => {
switch (block.type) {
case 'PLAIN_TEXT':
return block.value;
case 'STRIKE':
return <Strike value={block.value} />;
case 'ITALIC':
return <Italic value={block.value} />;
case 'BOLD':
return <Bold value={block.value} />;
default:
return null;
}
})(label)}
</Text>
);
};
export default Link;

View File

@ -0,0 +1,29 @@
import React from 'react';
import { UserMention } from '../../message/interfaces';
interface IMarkdownContext {
mentions: UserMention[];
channels: {
name: string;
_id: number;
}[];
useRealName: boolean;
username: string;
baseUrl: string;
navToRoomInfo: Function;
getCustomEmoji?: Function;
onLinkPress?: Function;
}
const defaultState = {
mentions: [],
channels: [],
useRealName: false,
username: '',
baseUrl: '',
navToRoomInfo: () => {}
};
const MarkdownContext = React.createContext<IMarkdownContext>(defaultState);
export default MarkdownContext;

View File

@ -0,0 +1,28 @@
import React from 'react';
import { View, Text } from 'react-native';
import { OrderedList as OrderedListProps } from '@rocket.chat/message-parser';
import Inline from './Inline';
import styles from '../styles';
import { themes } from '../../../constants/colors';
import { useTheme } from '../../../theme';
interface IOrderedListProps {
value: OrderedListProps['value'];
}
const OrderedList = ({ value }: IOrderedListProps): JSX.Element => {
const { theme } = useTheme();
return (
<View>
{value.map((item, index) => (
<View style={styles.row}>
<Text style={[styles.text, { color: themes[theme!].bodyText }]}>{index + 1}. </Text>
<Inline value={item.value} />
</View>
))}
</View>
);
};
export default OrderedList;

View File

@ -0,0 +1,23 @@
import React from 'react';
import { Text } from 'react-native';
import { Paragraph as ParagraphProps } from '@rocket.chat/message-parser';
import Inline from './Inline';
import styles from '../styles';
import { useTheme } from '../../../theme';
import { themes } from '../../../constants/colors';
interface IParagraphProps {
value: ParagraphProps['value'];
}
const Paragraph = ({ value }: IParagraphProps): JSX.Element => {
const { theme } = useTheme();
return (
<Text style={[styles.text, { color: themes[theme!].bodyText }]}>
<Inline value={value} />
</Text>
);
};
export default Paragraph;

View File

@ -0,0 +1,22 @@
import React from 'react';
import { Text } from 'react-native';
import { Plain as PlainProps } from '@rocket.chat/message-parser';
import styles from '../styles';
import { useTheme } from '../../../theme';
import { themes } from '../../../constants/colors';
interface IPlainProps {
value: PlainProps['value'];
}
const Plain = ({ value }: IPlainProps): JSX.Element => {
const { theme } = useTheme();
return (
<Text accessibilityLabel={value} style={[styles.plainText, { color: themes[theme!].bodyText }]}>
{value}
</Text>
);
};
export default Plain;

View File

@ -0,0 +1,28 @@
import React from 'react';
import { View } from 'react-native';
import { Quote as QuoteProps } from '@rocket.chat/message-parser';
import { themes } from '../../../constants/colors';
import { useTheme } from '../../../theme';
import styles from '../styles';
import Paragraph from './Paragraph';
interface IQuoteProps {
value: QuoteProps['value'];
}
const Quote = ({ value }: IQuoteProps): JSX.Element => {
const { theme } = useTheme();
return (
<View style={styles.container}>
<View style={[styles.quote, { backgroundColor: themes[theme!].borderColor }]} />
<View style={styles.childContainer}>
{value.map(item => (
<Paragraph value={item.value} />
))}
</View>
</View>
);
};
export default Quote;

View File

@ -0,0 +1,39 @@
import React from 'react';
import { StyleSheet, Text } from 'react-native';
import { Strike as StrikeProps } from '@rocket.chat/message-parser';
import Bold from './Bold';
import Italic from './Italic';
import Plain from './Plain';
import Link from './Link';
interface IStrikeProps {
value: StrikeProps['value'];
}
const styles = StyleSheet.create({
text: {
textDecorationLine: 'line-through'
}
});
const Strike = ({ value }: IStrikeProps): JSX.Element => (
<Text style={styles.text}>
{value.map(block => {
switch (block.type) {
case 'LINK':
return <Link value={block.value} />;
case 'PLAIN_TEXT':
return <Plain value={block.value} />;
case 'BOLD':
return <Bold value={block.value} />;
case 'ITALIC':
return <Italic value={block.value} />;
default:
return null;
}
})}
</Text>
);
export default Strike;

View File

@ -0,0 +1,28 @@
import React from 'react';
import { Text, View } from 'react-native';
import { Tasks as TasksProps } from '@rocket.chat/message-parser';
import Inline from './Inline';
import styles from '../styles';
import { themes } from '../../../constants/colors';
import { useTheme } from '../../../theme';
interface ITasksProps {
value: TasksProps['value'];
}
const TaskList = ({ value = [] }: ITasksProps): JSX.Element => {
const { theme } = useTheme();
return (
<View>
{value.map(item => (
<View style={styles.row}>
<Text style={[styles.text, { color: themes[theme!].bodyText }]}>{item.status ? '- [x] ' : '- [ ] '}</Text>
<Inline value={item.value} />
</View>
))}
</View>
);
};
export default TaskList;

View File

@ -0,0 +1,28 @@
import React from 'react';
import { UnorderedList as UnorderedListProps } from '@rocket.chat/message-parser';
import { View, Text } from 'react-native';
import Inline from './Inline';
import styles from '../styles';
import { themes } from '../../../constants/colors';
import { useTheme } from '../../../theme';
interface IUnorderedListProps {
value: UnorderedListProps['value'];
}
const UnorderedList = ({ value }: IUnorderedListProps): JSX.Element => {
const { theme } = useTheme();
return (
<View>
{value.map(item => (
<View style={styles.row}>
<Text style={[styles.text, { color: themes[theme!].bodyText }]}>- </Text>
<Inline value={item.value} />
</View>
))}
</View>
);
};
export default UnorderedList;

View File

@ -0,0 +1,77 @@
import React from 'react';
import { MarkdownAST } from '@rocket.chat/message-parser';
import Quote from './Quote';
import Paragraph from './Paragraph';
import Heading from './Heading';
import Code from './Code';
import BigEmoji from './BigEmoji';
import OrderedList from './OrderedList';
import UnorderedList from './UnorderedList';
import { UserMention } from '../../message/interfaces';
import TaskList from './TaskList';
import MarkdownContext from './MarkdownContext';
interface IBodyProps {
tokens: MarkdownAST;
mentions: UserMention[];
channels: {
name: string;
_id: number;
}[];
getCustomEmoji?: Function;
onLinkPress?: Function;
navToRoomInfo: Function;
useRealName: boolean;
username: string;
baseUrl: string;
}
const Body = ({
tokens,
mentions,
channels,
useRealName,
username,
navToRoomInfo,
getCustomEmoji,
baseUrl,
onLinkPress
}: IBodyProps): JSX.Element => (
<MarkdownContext.Provider
value={{
mentions,
channels,
useRealName,
username,
navToRoomInfo,
getCustomEmoji,
baseUrl,
onLinkPress
}}>
{tokens.map(block => {
switch (block.type) {
case 'BIG_EMOJI':
return <BigEmoji value={block.value} />;
case 'UNORDERED_LIST':
return <UnorderedList value={block.value} />;
case 'ORDERED_LIST':
return <OrderedList value={block.value} />;
case 'TASKS':
return <TaskList value={block.value} />;
case 'QUOTE':
return <Quote value={block.value} />;
case 'PARAGRAPH':
return <Paragraph value={block.value} />;
case 'CODE':
return <Code value={block.value} />;
case 'HEADING':
return <Heading value={block.value} level={block.level} />;
default:
return null;
}
})}
</MarkdownContext.Provider>
);
export default Body;

View File

@ -30,6 +30,10 @@ export default StyleSheet.create<any>({
del: {
textDecorationLine: 'line-through'
},
plainText: {
fontSize: 16,
flexShrink: 1
},
text: {
fontSize: 16,
...sharedStyles.textRegular
@ -70,12 +74,16 @@ export default StyleSheet.create<any>({
resizeMode: 'contain'
},
codeInline: {
fontSize: 16,
...sharedStyles.textRegular,
...codeFontFamily,
borderWidth: 1,
borderRadius: 4
borderRadius: 4,
paddingLeft: 2,
paddingTop: 2
},
codeBlock: {
fontSize: 16,
...sharedStyles.textRegular,
...codeFontFamily,
borderWidth: 1,
@ -153,5 +161,8 @@ export default StyleSheet.create<any>({
},
alignRight: {
textAlign: 'right'
},
inline: {
flexShrink: 1
}
});

View File

@ -51,8 +51,10 @@ const Content = React.memo(
// @ts-ignore
<Markdown
msg={props.msg}
md={props.md}
baseUrl={baseUrl}
getCustomEmoji={props.getCustomEmoji}
enableMessageParser={user.enableMessageParserEarlyAdoption}
username={user.username}
isEdited={props.isEdited}
numberOfLines={isPreview ? 1 : 0}
@ -103,6 +105,9 @@ const Content = React.memo(
if (prevProps.isIgnored !== nextProps.isIgnored) {
return false;
}
if (!dequal(prevProps.md, nextProps.md)) {
return false;
}
if (!dequal(prevProps.mentions, nextProps.mentions)) {
return false;
}

View File

@ -357,7 +357,8 @@ class MessageContainer extends React.Component<IMessageContainerProps, any> {
unread,
blocks,
autoTranslate: autoTranslateMessage,
replies
replies,
md
} = item;
let message = msg;
@ -391,6 +392,7 @@ class MessageContainer extends React.Component<IMessageContainerProps, any> {
<Message
id={id}
msg={message}
md={md}
rid={rid}
author={u}
ts={ts}

View File

@ -1,3 +1,5 @@
import { MarkdownAST } from '@rocket.chat/message-parser';
export interface IMessageAttachments {
attachments: any;
timeFormat: string;
@ -48,12 +50,21 @@ export interface IMessageCallButton {
callJitsi: Function;
}
export interface IUser {
_id: string;
username: string;
name: string;
}
export type UserMention = Pick<IUser, '_id' | 'username' | 'name'>;
export interface IMessageContent {
isTemp: boolean;
isInfo: boolean;
tmid: string;
isThreadRoom: boolean;
msg: string;
md: MarkdownAST;
theme: string;
isEdited: boolean;
isEncrypted: boolean;
@ -62,7 +73,7 @@ export interface IMessageContent {
name: string;
_id: number;
}[];
mentions: object[];
mentions: UserMention[];
navToRoomInfo: Function;
useRealName: boolean;
isIgnored: boolean;

View File

@ -106,7 +106,6 @@ export default StyleSheet.create<any>({
},
image: {
width: '100%',
// maxWidth: 400,
minHeight: isTablet ? 300 : 200,
borderRadius: 4,
borderWidth: 1,

View File

@ -51,7 +51,9 @@ class QueueListView extends React.Component {
server: PropTypes.string,
useRealName: PropTypes.bool,
navigation: PropTypes.object,
theme: PropTypes.string
theme: PropTypes.string,
showAvatar: PropTypes.bool,
displayMode: PropTypes.string
};
shouldComponentUpdate(nextProps) {
@ -95,7 +97,9 @@ class QueueListView extends React.Component {
useRealName,
theme,
isMasterDetail,
width
width,
showAvatar,
displayMode
} = this.props;
const id = this.getUidDirectMessage(item);
@ -117,6 +121,8 @@ class QueueListView extends React.Component {
getRoomAvatar={this.getRoomAvatar}
visitor={item.v}
swipeEnabled={false}
showAvatar={showAvatar}
displayMode={displayMode}
/>
);
};
@ -151,6 +157,8 @@ const mapStateToProps = state => ({
isMasterDetail: state.app.isMasterDetail,
server: state.server.server,
useRealName: state.settings.UI_Use_Real_Name,
queued: getInquiryQueueSelector(state)
queued: getInquiryQueueSelector(state),
showAvatar: state.sortPreferences.showAvatar,
displayMode: state.sortPreferences.displayMode
});
export default connect(mapStateToProps)(withDimensions(withTheme(QueueListView)));

1
app/i18n/locales/af.json Normal file
View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

1
app/i18n/locales/az.json Normal file
View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/bg.json Normal file
View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/bs.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/ca.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/cs.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/cy.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/da.json Normal file
View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

1
app/i18n/locales/el.json Normal file
View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

1
app/i18n/locales/eo.json Normal file
View File

@ -0,0 +1 @@
{ }

View File

@ -1,454 +1,445 @@
{
"1_person_reacted": "1 persona reaccionó",
"1_user": "1 usuario",
"error-action-not-allowed": "{{action}} no permitida",
"error-application-not-found": "Aplicación no encontrada",
"error-archived-duplicate-name": "Hay un canal archivado con nombre {{room_name}}",
"error-avatar-invalid-url": "URL de avatar inválida: {{url}}",
"error-avatar-url-handling": "Error durante el procesamiento de ajuste de imagen de usuario desde una dirección URL ({{url}}) para {{username}}",
"error-cant-invite-for-direct-room": "No se puede invitar a los usuarios a salas de chat directas",
"error-could-not-change-email": "No es posible cambiar la dirección de correo electrónico",
"error-could-not-change-name": "No es posible cambiar el nombre",
"error-could-not-change-username": "No es posible cambiar el nombre de usuario",
"error-delete-protected-role": "No se puede eliminar un rol protegido",
"error-department-not-found": "Departamento no encontrado",
"error-direct-message-file-upload-not-allowed": "No se permite compartir archivos en mensajes directos",
"error-duplicate-channel-name": "Ya existe un canal con nombre {{room_name}}",
"error-email-domain-blacklisted": "El dominio del correo electrónico está en la lista negra",
"error-email-send-failed": "Error al enviar el correo electrónico: {{message}}",
"error-field-unavailable": "{{field}} ya está en uso :(",
"error-file-too-large": "El archivo es demasiado grande",
"error-importer-not-defined": "El importador no se configuró correctamente. Falta la clase de importación",
"error-input-is-not-a-valid-field": "{{input}} no es válido {{field}}",
"error-invalid-actionlink": "Enlace de acción inválido",
"error-invalid-arguments": "Los argumentos no son correctos",
"error-invalid-asset": "El archivo archivo no es correcto",
"error-invalid-channel": "El canal no es correcto.",
"error-invalid-channel-start-with-chars": "Canal incorrecto. Debe comenzar con @ o #",
"error-invalid-custom-field": "Campo personalizado no válido",
"error-invalid-custom-field-name": "Nombre no válido para el campo personalizado. Utilice sólo letras, números, guiones o guión bajo",
"error-invalid-date": "La fecha proporcionada no es correcta.",
"error-invalid-description": "La descripción no es correcta",
"error-invalid-domain": "El dominio no es correcto",
"error-invalid-email": "El email {{email}} no es correcto",
"error-invalid-email-address": "La dirección de correo no es correcta",
"error-invalid-file-height": "La altura de la imagen no es correcta",
"error-invalid-file-type": "El formato del archivo no es correcto",
"error-invalid-file-width": "El ancho de la imagen o es correcto",
"error-invalid-from-address": "La dirección del remitente (FROM) no es correcta.",
"error-invalid-integration": "La integración no es correcta",
"error-invalid-message": "El mensaje no es correcto",
"error-invalid-method": "El método no es correcto",
"error-invalid-name": "El nombre no es correcto",
"error-invalid-password": "La contraseña no es correcta",
"error-invalid-redirectUri": "La URL de redirección no es correcta.",
"error-invalid-role": "El rol no es correcto",
"error-invalid-room": "La sala no es correcta",
"error-invalid-room-name": "No se puede asignar el nombre {{room_name}} a una sala.",
"error-invalid-room-type": "No se puede asignar el tipo {{type}} a una sala.",
"error-invalid-settings": "La configuración proporcionada no es correcta",
"error-invalid-subscription": "La suscripción no es correcta",
"error-invalid-token": "El token no es correcto",
"error-invalid-triggerWords": "El triggerWords no es correcto",
"error-invalid-urls": "Las URLs no son correctas",
"error-invalid-user": "El usuario no es correcto",
"error-invalid-username": "El nombre de usuario no es correcto",
"error-invalid-webhook-response": "El webhook no ha respondido con código de estado HTTP 200.",
"error-message-deleting-blocked": "No está permitido eliminar mensajes",
"error-message-editing-blocked": "No está permitido editar mensajes",
"error-message-size-exceeded": "El mensaje supera el tamaño máximo permitido",
"error-missing-unsubscribe-link": "Debes proporcionar el enlace para cancelar la suscripción [unsubscribe].",
"error-no-tokens-for-this-user": "No hay tokens asignados para el usuario",
"error-not-allowed": "No permitido",
"error-not-authorized": "No autorizado",
"error-push-disabled": "El Push está desactivado",
"error-remove-last-owner": "El usuario es el único propietario existente. Debes establecer un nuevo propietario antes de eliminarlo.",
"error-role-in-use": "No puedes eliminar el rol dado que está en uso",
"error-role-name-required": "Debes indicar el nombre del rol",
"error-the-field-is-required": "El campo {{field}} es obligatorio.",
"error-too-many-requests": "Error, demasiadas peticiones. Debes esperar {{seconds}} segundos antes de continuar. Por favor, sé paciente.",
"error-user-is-not-activated": "El usuario no está activo",
"error-user-has-no-roles": "El usuario no tiene roles",
"error-user-limit-exceeded": "El número de usuarios que quieres invitar al canal #channel_name supera el límite establecido por el administrador.",
"error-user-not-in-room": "El usuario no está en la sala",
"error-user-registration-custom-field": "error-user-registration-custom-field",
"error-user-registration-disabled": "El registro de usuario está deshabilitado",
"error-user-registration-secret": "El registro de usuarios sólo está permitido por URL secretas",
"error-you-are-last-owner": "Eres el único propietario existente. Debes establecer un nuevo propietario antes de abandonar la sala.",
"Actions": "Acciones",
"activity": "actividad",
"Activity": "Actividad",
"Add_Reaction": "Añadir reacción",
"Add_Server": "Añadir servidor",
"Admin_Panel": "Panel de Control",
"Alert": "Alerta",
"alert": "alerta",
"alerts": "alertas",
"All_users_in_the_channel_can_write_new_messages": "Todos los usuarios en el canal pueden escribir mensajes",
"All": "Todos",
"All_Messages": "Todos los mensajes",
"Allow_Reactions": "Permitir reacciones",
"Alphabetical": "Alfabético",
"and_more": "y más",
"and": "y",
"announcement": "anuncio",
"Announcement": "Anuncio",
"Apply_Your_Certificate": "Aplica tu certificado",
"ARCHIVE": "FICHERO",
"archive": "fichero",
"are_typing": "están escribiendo",
"Are_you_sure_question_mark": "¿Estás seguro?",
"Are_you_sure_you_want_to_leave_the_room": "¿Deseas salir de la sala {{room}}?",
"Audio": "Audio",
"Authenticating": "Autenticando",
"Automatic": "Automático",
"Auto_Translate": "Traducción automática",
"Avatar_changed_successfully": "¡Avatar modificado correctamente!",
"Avatar_Url": "URL del Avatar",
"Away": "Ausente",
"Back": "Volver",
"Black": "Negro",
"Block_user": "Bloquear usuario",
"Broadcast_channel_Description": "Sólo los usuarios autorizados pueden escribir nuevos mensajes, el resto podrán responder sobre los mismos.",
"Broadcast_Channel": "Canal de Transmisión",
"Busy": "Ocupado",
"By_proceeding_you_are_agreeing": "Al proceder estarás de acuerdo",
"Cancel_editing": "Cancelar edición",
"Cancel_recording": "Cancelar grabación",
"Cancel": "Cancelar",
"changing_avatar": "cambiando avatar",
"creating_channel": "creando channel",
"Channel_Name": "Nombre sala",
"Channels": "Salas",
"Chats": "Chats",
"Call_already_ended": "¡!La llamada ya ha finalizado!",
"Click_to_join": "¡Unirme!",
"Close": "Cerrar",
"Close_emoji_selector": "Cerrar selector de emojis",
"Choose": "Seleccionar",
"Choose_from_library": "Seleccionar desde galería",
"Choose_file": "Seleccionar archivo",
"Code": "Código",
"Collaborative": "Colaborativo",
"Confirm": "Confirmar",
"Connect": "Conectar",
"Connected": "Conectado",
"connecting_server": "conectando al servidor",
"Connecting": "Conectando...",
"Contact_us": "Contacta con nosotros",
"Contact_your_server_admin": "Contacta con el administrador.",
"Continue_with": "Continuar con",
"Copied_to_clipboard": "¡Copiado al portapapeles!",
"Copy": "Copiar",
"Permalink": "Enlace permanente",
"Certificate_password": "Contraseña del certificado",
"Whats_the_password_for_your_certificate": "¿Cuál es la contraseña de tu certificado?",
"Create_account": "Crear una cuenta",
"Create_Channel": "Crear sala",
"Created_snippet": "crear mensaje en bloque",
"Create_a_new_workspace": "Crear un nuevo espacio de trabajo",
"Create": "Crear",
"Dark": "Oscuro",
"Dark_level": "Nivel de oscuridad",
"Default": "Por defecto",
"Delete_Room_Warning": "Eliminar a un usuario causará la eliminación de todos los mensajes creados por dicho usuario. Esta operación no se puede deshacer.",
"delete": "eliminar",
"Delete": "Eliminar",
"DELETE": "ELIMINAR",
"deleting_room": "eliminando sala",
"description": "descripción",
"Description": "Descripción",
"Desktop_Options": "Opciones de escritorio",
"Directory": "Directorio",
"Direct_Messages": "Mensajes directos",
"Disable_notifications": "Desactivar notificaciones",
"Discussions": "Conversaciones",
"Dont_Have_An_Account": "¿Todavía no tienes una cuenta?",
"Do_you_have_a_certificate": "¿Tienes un certificado?",
"Do_you_really_want_to_key_this_room_question_mark": "¿Deseas {{key}} de esta sala?",
"edit": "editar",
"edited": "editado",
"Edit": "Editar",
"Email_or_password_field_is_empty": "El email o la contraseña están vacíos",
"Email": "E-mail",
"email": "e-mail",
"Enable_Auto_Translate": "Permitir Auto-Translate",
"Enable_notifications": "Permitir notificaciones",
"Everyone_can_access_this_channel": "Todos los usuarios pueden acceder a este canal",
"Error_uploading": "Error en la subida",
"Favorite": "Favorito",
"Favorites": "Favoritos",
"Files": "Archivos",
"File_description": "Descripción del archivo",
"File_name": "Nombre del archivo",
"Finish_recording": "Finalizar grabación",
"Following_thread": "Siguiendo hilo",
"For_your_security_you_must_enter_your_current_password_to_continue": "Por seguridad, debes introducir tu contraseña para continuar",
"Forgot_password_If_this_email_is_registered": "Si este email está registrado, te enviaremos las instrucciones para resetear tu contraseña. Si no recibes un email en breve, vuelve aquí e inténtalo de nuevo.",
"Forgot_password": "¿Ha olvidado su contraseña?",
"Forgot_Password": "Olvidé la contraseña",
"Full_table": "Click para ver la tabla completa",
"Group_by_favorites": "Agrupar por favoritos",
"Group_by_type": "Agrupar por tipo",
"Hide": "Ocultar",
"Has_joined_the_channel": "se ha unido al canal",
"Has_joined_the_conversation": "se ha unido a la conversación",
"Has_left_the_channel": "ha dejado el canal",
"In_App_And_Desktop": "En la aplicación y en el escritorio",
"In_App_and_Desktop_Alert_info": "Muestra un banner en la parte superior de la pantalla cuando la aplicación esté abierta y muestra una notificación en el escritorio",
"Invisible": "Invisible",
"Invite": "Invitar",
"is_a_valid_RocketChat_instance": "es una instancia válida de Rocket.Chat",
"is_not_a_valid_RocketChat_instance": "no es una instancia válida de Rocket.Chat",
"is_typing": "escribiendo",
"Invalid_server_version": "El servidor que intentas conectar está usando una versión que ya no está soportada por la aplicación : {{currentVersion}}. Se requiere una versión {{minVersion}}.",
"Join": "Conectar",
"Just_invited_people_can_access_this_channel": "Sólo gente invitada puede acceder a este canal.",
"Language": "Idioma",
"last_message": "último mensaje",
"Leave_channel": "Abandonar el canal",
"leaving_room": "abandonando sala",
"leave": "abandonar",
"Legal": "Legal",
"Light": "Claro",
"License": "Licencia",
"Livechat": "LiveChat",
"Login": "Inicio de sesión",
"Login_error": "¡Sus credenciales fueron rechazadas! Por favor, inténtelo de nuevo.",
"Login_with": "Iniciar sesión con",
"Logout": "Cerrar sesión",
"members": "miembros",
"Members": "Miembros",
"Mentioned_Messages": "Mensajes mencionados",
"mentioned": "mencionado",
"Mentions": "Menciones",
"Message_accessibility": "Mensaje de {{user}} a las {{time}}: {{message}}",
"Message_actions": "Acciones de mensaje",
"Message_pinned": "Mensaje fijado",
"Message_removed": "Mensaje eliminado",
"message": "mensaje",
"messages": "mensajes",
"Messages": "Mensajes",
"Message_Reported": "Mensaje notificado",
"Microphone_Permission_Message": "Rocket.Chat necesita acceso a su micrófono para que pueda enviar un mensaje de audio.",
"Microphone_Permission": "Permiso de micrófono",
"Mute": "Mutear",
"muted": "muteado",
"My_servers": "Mis servidores",
"N_people_reacted": "Han reaccionado {{n}} personas",
"N_users": "{{n}} usuarios",
"name": "nombre",
"Name": "Nombre",
"New_Message": "Nuevo mensaje",
"New_Password": "Nueva contraseña",
"New_Server": "Nuevo servidor",
"Next": "Siguiente",
"No_files": "No hay archivos",
"No_mentioned_messages": "No hay mensajes mencionados",
"No_pinned_messages": "No hay mensajes fijados",
"No_results_found": "No hay resultados",
"No_starred_messages": "No hay mensajes destacados",
"No_thread_messages": "No hay hilos",
"No_Message": "Sin mensajes",
"No_messages_yet": "No hay mensajes todavía",
"No_Reactions": "No hay reacciones",
"No_Read_Receipts": "No hay confirmaciones de lectura",
"Not_logged": "No ha iniciado sesión",
"Not_RC_Server": "Esto no es un servidor de Rocket.Chat.\n{{contact}}",
"Nothing": "Nada",
"Nothing_to_save": "¡No hay nada por guardar!",
"Notify_active_in_this_room": "Notificar a los usuarios activos en esta sala",
"Notify_all_in_this_room": "Notificar a todos en esta sala",
"Notifications": "Notificaciones",
"Notification_Duration": "Duración de la notificación",
"Notification_Preferences": "Configuración de notificaciones",
"Offline": "Sin conexión",
"Oops": "Oops!",
"Onboarding_title": "Bienvenido a Rocket.Chat",
"Online": "Conectado",
"Only_authorized_users_can_write_new_messages": "Sólo pueden escribir mensajes usuarios autorizados",
"Open_emoji_selector": "Abrir selector de emojis",
"Open_Source_Communication": "Comunicación Open Source",
"Password": "Contraseña",
"Permalink_copied_to_clipboard": "¡Enlace permanente copiado al portapapeles!",
"Pin": "Fijar",
"Pinned_Messages": "Mensajes fijados",
"pinned": "fijado",
"Pinned": "Fijado",
"Please_enter_your_password": "Por favor introduce la contraseña",
"Preferences": "Preferencias",
"Preferences_saved": "¡Preferencias guardadas!",
"Privacy_Policy": "Política de privacidad",
"Private_Channel": "Canal privado",
"Private": "Privado",
"Processing": "Procesando...",
"Profile_saved_successfully": "¡Perfil guardado correctamente!",
"Profile": "Perfil",
"Public_Channel": "Canal público",
"Public": "Público",
"Push_Notifications": "Notificaciones Push",
"Push_Notifications_Alert_Info": "Estas notificaciones se le entregan cuando la aplicación no está abierta",
"Quote": "Citar",
"Reactions_are_disabled": "Las reacciones están desactivadas",
"Reactions_are_enabled": "Las reacciones están activadas",
"Reactions": "Reacciones",
"Read": "Leer",
"Read_Only_Channel": "Canal de sólo lectura",
"Read_Only": "Sólo lectura ",
"Read_Receipt": "Comprobante de lectura",
"Receive_Group_Mentions": "Recibir menciones de grupo",
"Receive_Group_Mentions_Info": "Recibir menciones @all y @here",
"Register": "Registrar",
"Repeat_Password": "Repetir contraseña",
"Replied_on": "Respondido el:",
"replies": "respuestas",
"reply": "respuesta",
"Reply": "Respuesta",
"Report": "Informe",
"Receive_Notification": "Recibir notificación",
"Receive_notifications_from": "Recibir notificación de {{name}}",
"Resend": "Reenviar",
"Reset_password": "Resetear contraseña",
"resetting_password": "reseteando contraseña",
"RESET": "RESET",
"Roles": "Roles",
"Room_actions": "Acciones de sala",
"Room_changed_announcement": "El anuncio de la sala cambió a: {{announcement}} por {{userBy}}",
"Room_changed_description": "La descripción de la sala cambió a: {{description}} por {{userBy}}",
"Room_changed_privacy": "El tipo de la sala cambió a: {{type}} por {{userBy}}",
"Room_changed_topic": "El asunto de la sala cambió a: {{topic}} por {{userBy}}",
"Room_Files": "Archivos",
"Room_Info_Edit": "Editar información de la sala",
"Room_Info": "Información de la sala",
"Room_Members": "Miembros de la sala",
"Room_name_changed": "El nombre de la sala cambió a: {{name}} por {{userBy}}",
"SAVE": "GUARDAR",
"Save_Changes": "Guardar cambios",
"Save": "Guardar",
"saving_preferences": "guardando preferencias",
"saving_profile": "guardando perfil",
"saving_settings": "guardando configuración",
"Search_Messages": "Buscar mensajes",
"Search": "Buscar",
"Search_by": "Buscar por",
"Search_global_users": "Buscar por usuarios globales",
"Search_global_users_description": "Si lo activas, puedes buscar cualquier usuario de otras empresas o servidores.",
"Seconds": "{{second}} segundos",
"Select_Avatar": "Selecciona avatar",
"Select_Server": "Selecciona servidor",
"Select_Users": "Selecciona usuarios",
"Send": "Enviar",
"Send_audio_message": "Enviar nota de audio",
"Send_crash_report": "Enviar informe errores",
"Send_message": "Enviar mensaje",
"Send_to": "Enviar a..",
"Sent_an_attachment": "Enviar un adjunto",
"Server": "Servidor",
"Servers": "Servidores",
"Server_version": "Versión servidor: {{version}}",
"Set_username_subtitle": "El nombre de usuario se utiliza para permitir que otros le mencionen en los mensajes",
"Settings": "Configuración",
"Settings_succesfully_changed": "¡Configuración cambiada correctamente!",
"Share": "Compartir",
"Share_this_app": "Compartir esta aplicación",
"Show_Unread_Counter": "Mostrar contador de no leídos",
"Show_Unread_Counter_Info": "El contador de no leídos se muestra como una insignia a la derecha del canal, en la lista",
"Sign_in_your_server": "Accede a tu servidor",
"Sign_Up": "Registrarse",
"Some_field_is_invalid_or_empty": "Algún campo no es correcto o está vacío",
"Sorting_by": "Ordenado por {{key}}",
"Sound": "Sonido",
"Star_room": "Destacar sala",
"Star": "Destacar",
"Starred_Messages": "Mensajes destacados",
"starred": "destacado",
"Starred": "Destacado",
"Start_of_conversation": "Comienzo de la conversación",
"Started_discussion": "Comenzar una conversación:",
"Started_call": "Llamada iniciada por {{userBy}}",
"Submit": "Enviar",
"Table": "Tabla",
"Take_a_photo": "Enviar una foto",
"Take_a_video": "Enviar un vídeo",
"tap_to_change_status": "pulsa para cambiar el estado",
"Tap_to_view_servers_list": "Pulsa para ver la lista de servidores",
"Terms_of_Service": "Términos de servicio",
"Theme": "Tema",
"There_was_an_error_while_action": "¡Ha habido un error mientras {{action}}!",
"This_room_is_blocked": "La sala está bloqueada",
"This_room_is_read_only": "Esta sala es de sólo lectura",
"Thread": "Hilo",
"Threads": "Hilos",
"Timezone": "Zona horaria",
"To": "Para",
"topic": "asunto",
"Topic": "Asunto",
"Translate": "Traducir",
"Try_again": "Intentar de nuevo",
"Two_Factor_Authentication": "Autenticación de doble factor",
"Type_the_channel_name_here": "Escribe el nombre del canal aquí",
"unarchive": "desarchivar",
"UNARCHIVE": "DESARCHIVAR",
"Unblock_user": "Desbloquear usuario",
"Unfavorite": "Quitar favorito",
"Unfollowed_thread": "Dejar de seguir el hilo",
"Unmute": "Desmutear",
"unmuted": "Desmuteado",
"Unpin": "Quitar estado fijado",
"unread_messages": "marcar como no leído",
"Unread": "Marcar como no leído",
"Unread_on_top": "Mensajes no leídos en la parte superior",
"Unstar": "Quitar destacado",
"Updating": "Actualizando...",
"Uploading": "Subiendo",
"Upload_file_question_mark": "¿Subir fichero?",
"Users": "Usuarios",
"User_added_by": "Usuario {{userAdded}} añadido por {{userBy}}",
"User_has_been_key": "El usuario ha sido {{key}}",
"User_is_no_longer_role_by_": "{{user}} ha dejado de ser {{role}} por {{userBy}}",
"User_muted_by": "Usuario {{userMuted}} muteado por {{userBy}}",
"User_removed_by": "Usuario {{userRemoved}} eliminado por {{userBy}}",
"User_sent_an_attachment": "{{user}} envío un adjunto",
"User_unmuted_by": "Usuario {{userUnmuted}} desmuteado por {{userBy}}",
"User_was_set_role_by_": "{{user}} ha comenzado a ser {{role}} por {{userBy}}",
"Username_is_empty": "Nombre de usuario está vacío",
"Username": "Nombre de usuario",
"Username_or_email": "Nombre de usuario o email",
"Validating": "Validando",
"Video_call": "Vídeo llamada",
"View_Original": "Ver original",
"Voice_call": "Llamada de voz",
"Websocket_disabled": "Websocket está deshabilitado para este servidor.\n{{contact}}",
"Welcome": "Bienvenido",
"Whats_your_2fa": "¿Cuál es tu código 2FA?",
"Without_Servers": "Sin servidores",
"Yes_action_it": "Sí, ¡{{action}}!",
"Yesterday": "Ayer",
"You_are_in_preview_mode": "Estás en modo vista previa",
"You_are_offline": "Estás desconectado",
"You_can_search_using_RegExp_eg": "Puedes usar expresiones regulares. Por ejemplo, `/^text$/i`",
"You_colon": "Tú: ",
"you_were_mentioned": "has sido mencionado",
"you": "tú",
"You": "Tú",
"You_need_to_access_at_least_one_RocketChat_server_to_share_something": "Necesita acceder al menos a un servidor Rocket.Chat para compartir algo.",
"Your_certificate": "Tu certificado",
"Version_no": "Versión: {{version}}",
"You_will_not_be_able_to_recover_this_message": "¡No podrás recuperar este mensaje!",
"Change_Language": "Cambiar idioma",
"Crash_report_disclaimer": "Nunca rastreamos el contenido de sus conversaciones. El informe del error sólo contiene información relevante para nosotros con el fin de identificar los problemas y solucionarlos.",
"Type_message": "Escribir mensaje",
"Room_search": "Búsqueda de salas",
"Room_selection": "Selecciona sala 1...9",
"Next_room": "Siguiente sala",
"Previous_room": "Sala anterior",
"New_room": "Nueva sala",
"Upload_room": "Subir a sala",
"Search_messages": "Buscar mensajes",
"Scroll_messages": "Scroll mensajes",
"Reply_latest": "Responder al último",
"Server_selection": "Seleccionar servidor",
"Server_selection_numbers": "Seleccionar servidor 1...9",
"Add_server": "Añadir servidor",
"New_line": "Nueva línea"
}
"1_person_reacted": "1 persona reaccionó",
"1_user": "1 usuario",
"error-action-not-allowed": "{{action}} no permitida",
"error-application-not-found": "Aplicación no encontrada",
"error-archived-duplicate-name": "Hay un canal archivado con nombre {{room_name}}",
"error-avatar-invalid-url": "URL de avatar inválida: {{url}}",
"error-avatar-url-handling": "Error durante el procesamiento de ajuste de imagen de usuario desde una dirección URL ({{url}}) para {{username}}",
"error-cant-invite-for-direct-room": "No se puede invitar a los usuarios a salas de chat directas",
"error-could-not-change-email": "No es posible cambiar la dirección de correo electrónico",
"error-could-not-change-name": "No es posible cambiar el nombre",
"error-could-not-change-username": "No es posible cambiar el nombre de usuario",
"error-delete-protected-role": "No se puede eliminar un rol protegido",
"error-department-not-found": "Departamento no encontrado",
"error-direct-message-file-upload-not-allowed": "No se permite compartir archivos en mensajes directos",
"error-duplicate-channel-name": "Ya existe un canal con nombre {{room_name}}",
"error-email-domain-blacklisted": "El dominio del correo electrónico está en la lista negra",
"error-email-send-failed": "Error al enviar el correo electrónico: {{message}}",
"error-field-unavailable": "{{field}} ya está en uso :(",
"error-file-too-large": "El archivo es demasiado grande",
"error-importer-not-defined": "El importador no se configuró correctamente. Falta la clase de importación",
"error-input-is-not-a-valid-field": "{{input}} no es válido {{field}}",
"error-invalid-actionlink": "Enlace de acción inválido",
"error-invalid-arguments": "Los argumentos no son correctos",
"error-invalid-asset": "El archivo archivo no es correcto",
"error-invalid-channel": "El canal no es correcto.",
"error-invalid-channel-start-with-chars": "Canal incorrecto. Debe comenzar con @ o #",
"error-invalid-custom-field": "Campo personalizado no válido",
"error-invalid-custom-field-name": "Nombre no válido para el campo personalizado. Utilice sólo letras, números, guiones o guión bajo",
"error-invalid-date": "La fecha proporcionada no es correcta.",
"error-invalid-description": "La descripción no es correcta",
"error-invalid-domain": "El dominio no es correcto",
"error-invalid-email": "El email {{email}} no es correcto",
"error-invalid-email-address": "La dirección de correo no es correcta",
"error-invalid-file-height": "La altura de la imagen no es correcta",
"error-invalid-file-type": "El formato del archivo no es correcto",
"error-invalid-file-width": "El ancho de la imagen o es correcto",
"error-invalid-from-address": "La dirección del remitente (FROM) no es correcta.",
"error-invalid-integration": "La integración no es correcta",
"error-invalid-message": "El mensaje no es correcto",
"error-invalid-method": "El método no es correcto",
"error-invalid-name": "El nombre no es correcto",
"error-invalid-password": "La contraseña no es correcta",
"error-invalid-redirectUri": "La URL de redirección no es correcta.",
"error-invalid-role": "El rol no es correcto",
"error-invalid-room": "La sala no es correcta",
"error-invalid-room-name": "No se puede asignar el nombre {{room_name}} a una sala.",
"error-invalid-room-type": "No se puede asignar el tipo {{type}} a una sala.",
"error-invalid-settings": "La configuración proporcionada no es correcta",
"error-invalid-subscription": "La suscripción no es correcta",
"error-invalid-token": "El token no es correcto",
"error-invalid-triggerWords": "El triggerWords no es correcto",
"error-invalid-urls": "Las URLs no son correctas",
"error-invalid-user": "El usuario no es correcto",
"error-invalid-username": "El nombre de usuario no es correcto",
"error-invalid-webhook-response": "El webhook no ha respondido con código de estado HTTP 200.",
"error-message-deleting-blocked": "No está permitido eliminar mensajes",
"error-message-editing-blocked": "No está permitido editar mensajes",
"error-message-size-exceeded": "El mensaje supera el tamaño máximo permitido",
"error-missing-unsubscribe-link": "Debes proporcionar el enlace para cancelar la suscripción [unsubscribe].",
"error-no-tokens-for-this-user": "No hay tokens asignados para el usuario",
"error-not-allowed": "No permitido",
"error-not-authorized": "No autorizado",
"error-push-disabled": "El Push está desactivado",
"error-remove-last-owner": "El usuario es el único propietario existente. Debes establecer un nuevo propietario antes de eliminarlo.",
"error-role-in-use": "No puedes eliminar el rol dado que está en uso",
"error-role-name-required": "Debes indicar el nombre del rol",
"error-the-field-is-required": "El campo {{field}} es obligatorio.",
"error-too-many-requests": "Error, demasiadas peticiones. Debes esperar {{seconds}} segundos antes de continuar. Por favor, sé paciente.",
"error-user-is-not-activated": "El usuario no está activo",
"error-user-has-no-roles": "El usuario no tiene roles",
"error-user-limit-exceeded": "El número de usuarios que quieres invitar al canal #channel_name supera el límite establecido por el administrador.",
"error-user-not-in-room": "El usuario no está en la sala",
"error-user-registration-custom-field": "error-user-registration-custom-field",
"error-user-registration-disabled": "El registro de usuario está deshabilitado",
"error-user-registration-secret": "El registro de usuarios sólo está permitido por URL secretas",
"error-you-are-last-owner": "Eres el único propietario existente. Debes establecer un nuevo propietario antes de abandonar la sala.",
"Actions": "Acciones",
"Activity": "Actividad",
"Add_Reaction": "Añadir reacción",
"Add_Server": "Añadir servidor",
"Admin_Panel": "Panel de Control",
"Alert": "Alerta",
"alert": "alerta",
"alerts": "alertas",
"All_users_in_the_channel_can_write_new_messages": "Todos los usuarios en el canal pueden escribir mensajes",
"All": "Todos",
"All_Messages": "Todos los mensajes",
"Allow_Reactions": "Permitir reacciones",
"Alphabetical": "Alfabético",
"and_more": "y más",
"and": "y",
"announcement": "anuncio",
"Announcement": "Anuncio",
"Apply_Your_Certificate": "Aplica tu certificado",
"ARCHIVE": "FICHERO",
"archive": "fichero",
"are_typing": "están escribiendo",
"Are_you_sure_question_mark": "¿Estás seguro?",
"Are_you_sure_you_want_to_leave_the_room": "¿Deseas salir de la sala {{room}}?",
"Audio": "Audio",
"Authenticating": "Autenticando",
"Automatic": "Automático",
"Auto_Translate": "Traducción automática",
"Avatar_changed_successfully": "¡Avatar modificado correctamente!",
"Avatar_Url": "URL del Avatar",
"Away": "Ausente",
"Back": "Volver",
"Black": "Negro",
"Block_user": "Bloquear usuario",
"Broadcast_channel_Description": "Sólo los usuarios autorizados pueden escribir nuevos mensajes, el resto podrán responder sobre los mismos.",
"Broadcast_Channel": "Canal de Transmisión",
"Busy": "Ocupado",
"By_proceeding_you_are_agreeing": "Al proceder estarás de acuerdo",
"Cancel_editing": "Cancelar edición",
"Cancel_recording": "Cancelar grabación",
"Cancel": "Cancelar",
"changing_avatar": "cambiando avatar",
"creating_channel": "creando channel",
"Channel_Name": "Nombre sala",
"Channels": "Salas",
"Chats": "Chats",
"Call_already_ended": "¡!La llamada ya ha finalizado!",
"Click_to_join": "¡Unirme!",
"Close": "Cerrar",
"Close_emoji_selector": "Cerrar selector de emojis",
"Choose": "Seleccionar",
"Choose_from_library": "Seleccionar desde galería",
"Choose_file": "Seleccionar archivo",
"Code": "Código",
"Collaborative": "Colaborativo",
"Confirm": "Confirmar",
"Connect": "Conectar",
"Connected": "Conectado",
"connecting_server": "conectando al servidor",
"Connecting": "Conectando...",
"Contact_us": "Contacta con nosotros",
"Contact_your_server_admin": "Contacta con el administrador.",
"Continue_with": "Continuar con",
"Copied_to_clipboard": "¡Copiado al portapapeles!",
"Copy": "Copiar",
"Permalink": "Enlace permanente",
"Certificate_password": "Contraseña del certificado",
"Whats_the_password_for_your_certificate": "¿Cuál es la contraseña de tu certificado?",
"Create_account": "Crear una cuenta",
"Create_Channel": "Crear sala",
"Created_snippet": "crear mensaje en bloque",
"Create_a_new_workspace": "Crear un nuevo espacio de trabajo",
"Create": "Crear",
"Dark": "Oscuro",
"Dark_level": "Nivel de oscuridad",
"Default": "Por defecto",
"Delete_Room_Warning": "Eliminar a un usuario causará la eliminación de todos los mensajes creados por dicho usuario. Esta operación no se puede deshacer.",
"delete": "eliminar",
"Delete": "Eliminar",
"DELETE": "ELIMINAR",
"deleting_room": "eliminando sala",
"description": "descripción",
"Description": "Descripción",
"Desktop_Options": "Opciones de escritorio",
"Directory": "Directorio",
"Direct_Messages": "Mensajes directos",
"Disable_notifications": "Desactivar notificaciones",
"Discussions": "Conversaciones",
"Dont_Have_An_Account": "¿Todavía no tienes una cuenta?",
"Do_you_have_a_certificate": "¿Tienes un certificado?",
"Do_you_really_want_to_key_this_room_question_mark": "¿Deseas {{key}} de esta sala?",
"edit": "editar",
"edited": "editado",
"Edit": "Editar",
"Email_or_password_field_is_empty": "El email o la contraseña están vacíos",
"Email": "E-mail",
"email": "e-mail",
"Enable_Auto_Translate": "Permitir Auto-Translate",
"Enable_notifications": "Permitir notificaciones",
"Everyone_can_access_this_channel": "Todos los usuarios pueden acceder a este canal",
"Error_uploading": "Error en la subida",
"Favorites": "Favoritos",
"Files": "Archivos",
"File_description": "Descripción del archivo",
"File_name": "Nombre del archivo",
"Finish_recording": "Finalizar grabación",
"Following_thread": "Siguiendo hilo",
"For_your_security_you_must_enter_your_current_password_to_continue": "Por seguridad, debes introducir tu contraseña para continuar",
"Forgot_password_If_this_email_is_registered": "Si este email está registrado, te enviaremos las instrucciones para resetear tu contraseña. Si no recibes un email en breve, vuelve aquí e inténtalo de nuevo.",
"Forgot_password": "¿Ha olvidado su contraseña?",
"Forgot_Password": "Olvidé la contraseña",
"Full_table": "Click para ver la tabla completa",
"Has_joined_the_channel": "se ha unido al canal",
"Has_joined_the_conversation": "se ha unido a la conversación",
"Has_left_the_channel": "ha dejado el canal",
"In_App_And_Desktop": "En la aplicación y en el escritorio",
"In_App_and_Desktop_Alert_info": "Muestra un banner en la parte superior de la pantalla cuando la aplicación esté abierta y muestra una notificación en el escritorio",
"Invisible": "Invisible",
"Invite": "Invitar",
"is_a_valid_RocketChat_instance": "es una instancia válida de Rocket.Chat",
"is_not_a_valid_RocketChat_instance": "no es una instancia válida de Rocket.Chat",
"is_typing": "escribiendo",
"Invalid_server_version": "El servidor que intentas conectar está usando una versión que ya no está soportada por la aplicación : {{currentVersion}}. Se requiere una versión {{minVersion}}.",
"Join": "Conectar",
"Just_invited_people_can_access_this_channel": "Sólo gente invitada puede acceder a este canal.",
"Language": "Idioma",
"last_message": "último mensaje",
"Leave_channel": "Abandonar el canal",
"leaving_room": "abandonando sala",
"leave": "abandonar",
"Legal": "Legal",
"Light": "Claro",
"License": "Licencia",
"Livechat": "LiveChat",
"Login": "Inicio de sesión",
"Login_error": "¡Sus credenciales fueron rechazadas! Por favor, inténtelo de nuevo.",
"Login_with": "Iniciar sesión con",
"Logout": "Cerrar sesión",
"members": "miembros",
"Members": "Miembros",
"Mentioned_Messages": "Mensajes mencionados",
"mentioned": "mencionado",
"Mentions": "Menciones",
"Message_accessibility": "Mensaje de {{user}} a las {{time}}: {{message}}",
"Message_actions": "Acciones de mensaje",
"Message_pinned": "Mensaje fijado",
"Message_removed": "Mensaje eliminado",
"message": "mensaje",
"messages": "mensajes",
"Messages": "Mensajes",
"Message_Reported": "Mensaje notificado",
"Microphone_Permission_Message": "Rocket.Chat necesita acceso a su micrófono para que pueda enviar un mensaje de audio.",
"Microphone_Permission": "Permiso de micrófono",
"Mute": "Mutear",
"muted": "muteado",
"My_servers": "Mis servidores",
"N_people_reacted": "Han reaccionado {{n}} personas",
"N_users": "{{n}} usuarios",
"Name": "Nombre",
"New_Message": "Nuevo mensaje",
"New_Password": "Nueva contraseña",
"New_Server": "Nuevo servidor",
"Next": "Siguiente",
"No_files": "No hay archivos",
"No_mentioned_messages": "No hay mensajes mencionados",
"No_pinned_messages": "No hay mensajes fijados",
"No_results_found": "No hay resultados",
"No_starred_messages": "No hay mensajes destacados",
"No_thread_messages": "No hay hilos",
"No_Message": "Sin mensajes",
"No_messages_yet": "No hay mensajes todavía",
"No_Reactions": "No hay reacciones",
"No_Read_Receipts": "No hay confirmaciones de lectura",
"Not_logged": "No ha iniciado sesión",
"Not_RC_Server": "Esto no es un servidor de Rocket.Chat.\n{{contact}}",
"Nothing": "Nada",
"Nothing_to_save": "¡No hay nada por guardar!",
"Notify_active_in_this_room": "Notificar a los usuarios activos en esta sala",
"Notify_all_in_this_room": "Notificar a todos en esta sala",
"Notifications": "Notificaciones",
"Notification_Duration": "Duración de la notificación",
"Notification_Preferences": "Configuración de notificaciones",
"Offline": "Sin conexión",
"Oops": "Oops!",
"Onboarding_title": "Bienvenido a Rocket.Chat",
"Online": "Conectado",
"Only_authorized_users_can_write_new_messages": "Sólo pueden escribir mensajes usuarios autorizados",
"Open_emoji_selector": "Abrir selector de emojis",
"Open_Source_Communication": "Comunicación Open Source",
"Password": "Contraseña",
"Permalink_copied_to_clipboard": "¡Enlace permanente copiado al portapapeles!",
"Pin": "Fijar",
"Pinned_Messages": "Mensajes fijados",
"pinned": "fijado",
"Pinned": "Fijado",
"Please_enter_your_password": "Por favor introduce la contraseña",
"Preferences": "Preferencias",
"Preferences_saved": "¡Preferencias guardadas!",
"Privacy_Policy": "Política de privacidad",
"Private_Channel": "Canal privado",
"Private": "Privado",
"Processing": "Procesando...",
"Profile_saved_successfully": "¡Perfil guardado correctamente!",
"Profile": "Perfil",
"Public_Channel": "Canal público",
"Public": "Público",
"Push_Notifications": "Notificaciones Push",
"Push_Notifications_Alert_Info": "Estas notificaciones se le entregan cuando la aplicación no está abierta",
"Quote": "Citar",
"Reactions_are_disabled": "Las reacciones están desactivadas",
"Reactions_are_enabled": "Las reacciones están activadas",
"Reactions": "Reacciones",
"Read_Only_Channel": "Canal de sólo lectura",
"Read_Only": "Sólo lectura ",
"Read_Receipt": "Comprobante de lectura",
"Receive_Group_Mentions": "Recibir menciones de grupo",
"Receive_Group_Mentions_Info": "Recibir menciones @all y @here",
"Register": "Registrar",
"Repeat_Password": "Repetir contraseña",
"Replied_on": "Respondido el:",
"replies": "respuestas",
"reply": "respuesta",
"Reply": "Respuesta",
"Report": "Informe",
"Receive_Notification": "Recibir notificación",
"Receive_notifications_from": "Recibir notificación de {{name}}",
"Resend": "Reenviar",
"Reset_password": "Resetear contraseña",
"resetting_password": "reseteando contraseña",
"RESET": "RESET",
"Roles": "Roles",
"Room_actions": "Acciones de sala",
"Room_changed_announcement": "El anuncio de la sala cambió a: {{announcement}} por {{userBy}}",
"Room_changed_description": "La descripción de la sala cambió a: {{description}} por {{userBy}}",
"Room_changed_privacy": "El tipo de la sala cambió a: {{type}} por {{userBy}}",
"Room_changed_topic": "El asunto de la sala cambió a: {{topic}} por {{userBy}}",
"Room_Files": "Archivos",
"Room_Info_Edit": "Editar información de la sala",
"Room_Info": "Información de la sala",
"Room_Members": "Miembros de la sala",
"Room_name_changed": "El nombre de la sala cambió a: {{name}} por {{userBy}}",
"SAVE": "GUARDAR",
"Save_Changes": "Guardar cambios",
"Save": "Guardar",
"saving_preferences": "guardando preferencias",
"saving_profile": "guardando perfil",
"saving_settings": "guardando configuración",
"Search_Messages": "Buscar mensajes",
"Search": "Buscar",
"Search_by": "Buscar por",
"Search_global_users": "Buscar por usuarios globales",
"Search_global_users_description": "Si lo activas, puedes buscar cualquier usuario de otras empresas o servidores.",
"Seconds": "{{second}} segundos",
"Select_Avatar": "Selecciona avatar",
"Select_Server": "Selecciona servidor",
"Select_Users": "Selecciona usuarios",
"Send": "Enviar",
"Send_audio_message": "Enviar nota de audio",
"Send_crash_report": "Enviar informe errores",
"Send_message": "Enviar mensaje",
"Send_to": "Enviar a..",
"Sent_an_attachment": "Enviar un adjunto",
"Server": "Servidor",
"Servers": "Servidores",
"Server_version": "Versión servidor: {{version}}",
"Set_username_subtitle": "El nombre de usuario se utiliza para permitir que otros le mencionen en los mensajes",
"Settings": "Configuración",
"Settings_succesfully_changed": "¡Configuración cambiada correctamente!",
"Share": "Compartir",
"Share_this_app": "Compartir esta aplicación",
"Show_Unread_Counter": "Mostrar contador de no leídos",
"Show_Unread_Counter_Info": "El contador de no leídos se muestra como una insignia a la derecha del canal, en la lista",
"Sign_in_your_server": "Accede a tu servidor",
"Sign_Up": "Registrarse",
"Some_field_is_invalid_or_empty": "Algún campo no es correcto o está vacío",
"Sound": "Sonido",
"Star_room": "Destacar sala",
"Star": "Destacar",
"Starred_Messages": "Mensajes destacados",
"starred": "destacado",
"Starred": "Destacado",
"Start_of_conversation": "Comienzo de la conversación",
"Started_discussion": "Comenzar una conversación:",
"Started_call": "Llamada iniciada por {{userBy}}",
"Submit": "Enviar",
"Table": "Tabla",
"Take_a_photo": "Enviar una foto",
"Take_a_video": "Enviar un vídeo",
"tap_to_change_status": "pulsa para cambiar el estado",
"Tap_to_view_servers_list": "Pulsa para ver la lista de servidores",
"Terms_of_Service": "Términos de servicio",
"Theme": "Tema",
"There_was_an_error_while_action": "¡Ha habido un error mientras {{action}}!",
"This_room_is_blocked": "La sala está bloqueada",
"This_room_is_read_only": "Esta sala es de sólo lectura",
"Thread": "Hilo",
"Threads": "Hilos",
"Timezone": "Zona horaria",
"To": "Para",
"topic": "asunto",
"Topic": "Asunto",
"Translate": "Traducir",
"Try_again": "Intentar de nuevo",
"Two_Factor_Authentication": "Autenticación de doble factor",
"Type_the_channel_name_here": "Escribe el nombre del canal aquí",
"unarchive": "desarchivar",
"UNARCHIVE": "DESARCHIVAR",
"Unblock_user": "Desbloquear usuario",
"Unfollowed_thread": "Dejar de seguir el hilo",
"Unmute": "Desmutear",
"unmuted": "Desmuteado",
"Unpin": "Quitar estado fijado",
"unread_messages": "marcar como no leído",
"Unread": "Marcar como no leído",
"Unread_on_top": "Mensajes no leídos en la parte superior",
"Unstar": "Quitar destacado",
"Updating": "Actualizando...",
"Uploading": "Subiendo",
"Upload_file_question_mark": "¿Subir fichero?",
"Users": "Usuarios",
"User_added_by": "Usuario {{userAdded}} añadido por {{userBy}}",
"User_has_been_key": "El usuario ha sido {{key}}",
"User_is_no_longer_role_by_": "{{user}} ha dejado de ser {{role}} por {{userBy}}",
"User_muted_by": "Usuario {{userMuted}} muteado por {{userBy}}",
"User_removed_by": "Usuario {{userRemoved}} eliminado por {{userBy}}",
"User_sent_an_attachment": "{{user}} envío un adjunto",
"User_unmuted_by": "Usuario {{userUnmuted}} desmuteado por {{userBy}}",
"User_was_set_role_by_": "{{user}} ha comenzado a ser {{role}} por {{userBy}}",
"Username_is_empty": "Nombre de usuario está vacío",
"Username": "Nombre de usuario",
"Username_or_email": "Nombre de usuario o email",
"Validating": "Validando",
"Video_call": "Vídeo llamada",
"View_Original": "Ver original",
"Voice_call": "Llamada de voz",
"Websocket_disabled": "Websocket está deshabilitado para este servidor.\n{{contact}}",
"Welcome": "Bienvenido",
"Whats_your_2fa": "¿Cuál es tu código 2FA?",
"Without_Servers": "Sin servidores",
"Yes_action_it": "Sí, ¡{{action}}!",
"Yesterday": "Ayer",
"You_are_in_preview_mode": "Estás en modo vista previa",
"You_are_offline": "Estás desconectado",
"You_can_search_using_RegExp_eg": "Puedes usar expresiones regulares. Por ejemplo, `/^text$/i`",
"You_colon": "Tú: ",
"you_were_mentioned": "has sido mencionado",
"you": "tú",
"You": "Tú",
"You_need_to_access_at_least_one_RocketChat_server_to_share_something": "Necesita acceder al menos a un servidor Rocket.Chat para compartir algo.",
"Your_certificate": "Tu certificado",
"Version_no": "Versión: {{version}}",
"You_will_not_be_able_to_recover_this_message": "¡No podrás recuperar este mensaje!",
"Change_Language": "Cambiar idioma",
"Crash_report_disclaimer": "Nunca rastreamos el contenido de sus conversaciones. El informe del error sólo contiene información relevante para nosotros con el fin de identificar los problemas y solucionarlos.",
"Type_message": "Escribir mensaje",
"Room_search": "Búsqueda de salas",
"Room_selection": "Selecciona sala 1...9",
"Next_room": "Siguiente sala",
"Previous_room": "Sala anterior",
"New_room": "Nueva sala",
"Upload_room": "Subir a sala",
"Search_messages": "Buscar mensajes",
"Scroll_messages": "Scroll mensajes",
"Reply_latest": "Responder al último",
"Server_selection": "Seleccionar servidor",
"Server_selection_numbers": "Seleccionar servidor 1...9",
"Add_server": "Añadir servidor",
"New_line": "Nueva línea"
}

1
app/i18n/locales/et.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/eu.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/fa.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/fi.json Normal file
View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

1
app/i18n/locales/gl.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/he.json Normal file
View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/hr.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/hu.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/id.json Normal file
View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

View File

@ -1,492 +1,483 @@
{
"1_person_reacted": "1人がリアクション",
"1_user": "1人",
"error-action-not-allowed": "{{action}}の権限がありません。",
"error-application-not-found": "アプリケーションがありません。",
"error-archived-duplicate-name": "アーカイブ名が重複しています: {{room_name}}",
"error-avatar-invalid-url": "画像のURLが正しくありません: {{url}}",
"error-avatar-url-handling": "アバターをURL({{url}})から{{username}}に設定中にエラーが発生しました。",
"error-cant-invite-for-direct-room": "ユーザーを直接ルームに招待することができません。",
"error-could-not-change-email": "メールアドレスを変更できません。",
"error-could-not-change-name": "名前を変更できません。",
"error-could-not-change-username": "ユーザー名を変更できません。",
"error-delete-protected-role": "保護されたロールは削除できません。",
"error-department-not-found": "ロールが存在しません。",
"error-direct-message-file-upload-not-allowed": "ダイレクトメッセージでのファイルのアップロードは許可されていません。",
"error-duplicate-channel-name": "{{channel_name}}と同名のチャンネルが存在します。",
"error-email-domain-blacklisted": "このドメインのメールアドレスはブラックリストに登録されています。",
"error-email-send-failed": "次のメールアドレスの送信に失敗しました: {{message}}",
"error-save-image": "画像の保存に失敗しました。",
"error-field-unavailable": "{{field}}は既に使用されています。",
"error-file-too-large": "ファイルが大きすぎます。",
"error-importer-not-defined": "インポータが正しく定義されていません。Importクラスが見つかりません。",
"error-input-is-not-a-valid-field": "{{input}}は{{field}}の入力として正しくありません。",
"error-invalid-actionlink": "アクションリンクが正しくありません。",
"error-invalid-arguments": "引数が正しくありません。",
"error-invalid-asset": "アセットが不正です。",
"error-invalid-channel": "チャンネル名が不正です。",
"error-invalid-channel-start-with-chars": "不正なチャンネルです。チャンネル名は@か#から開始します。",
"error-invalid-custom-field": "カスタムフィールドが不正です。",
"error-invalid-custom-field-name": "カスタムフィールド名が不正です。半角英数字、ハイフン、アンダースコアのみを使用してください。",
"error-invalid-date": "不正な日時です",
"error-invalid-description": "不正な詳細です",
"error-invalid-domain": "不正なドメインです",
"error-invalid-email": "不正なメールアドレスです。 {{email}}",
"error-invalid-email-address": "不正なメールアドレスです",
"error-invalid-file-height": "ファイルの高さが不正です",
"error-invalid-file-type": "ファイルの種類が不正です",
"error-invalid-file-width": "ファイルの幅が不正です",
"error-invalid-from-address": "不正なアドレスから通知しました",
"error-invalid-integration": "不正なインテグレーションです。",
"error-invalid-message": "不正なメッセージです。",
"error-invalid-method": "不正なメソッドです。",
"error-invalid-name": "不正な名前です",
"error-invalid-password": "不正なパスワードです",
"error-invalid-redirectUri": "不正なリダイレクトURIです",
"error-invalid-role": "不正なロールです",
"error-invalid-room": "不正なルームです",
"error-invalid-room-name": "{{room_name}}は正しいルーム名ではありません。",
"error-invalid-room-type": "{{type}}は正しいルームタイプではありません。",
"error-invalid-settings": "不正な設定が送信されました",
"error-invalid-subscription": "不正な購読です",
"error-invalid-token": "トークンが正しくありません",
"error-invalid-triggerWords": "トリガーワードが正しくありません",
"error-invalid-urls": "URLが正しくありません",
"error-invalid-user": "ユーザーが正しくありません",
"error-invalid-username": "ユーザー名が正しくありません",
"error-invalid-webhook-response": "WebhookのURLが200以外のステータスを返しています",
"error-message-deleting-blocked": "メッセージの削除をブロックされています。",
"error-message-editing-blocked": "メッセージの編集をブロックされています。",
"error-message-size-exceeded": "メッセージの大きさが Message_MaxAllowedSize を超えています。",
"error-missing-unsubscribe-link": "購読停止リンクを入れてください。",
"error-no-tokens-for-this-user": "このユーザーにはトークンがありません。",
"error-not-allowed": "許可されていません。",
"error-not-authorized": "有効化されていません。",
"error-push-disabled": "プッシュは無効化されています。",
"error-remove-last-owner": "ルームの最後のオーナーです。ルームを退出する前に新しいオーナーを設定してください。",
"error-role-in-use": "使用中のロールを削除することはできません。",
"error-role-name-required": "ロール名を入力してください。",
"error-the-field-is-required": "{{field}}の入力欄は必須です。",
"error-too-many-requests": "エラーです。リクエストが多すぎます。リクエストの頻度を落としてください。{{seconds}} 秒以上待ってから再度お試しください。",
"error-user-is-not-activated": "アカウントが有効化されていません。",
"error-user-has-no-roles": "ロールがありません。",
"error-user-limit-exceeded": "#channel_name に招待できるユーザー数の上限を超えています。管理者にお問い合わせください。",
"error-user-not-in-room": "ユーザーがルームにいません。",
"error-user-registration-custom-field": "error-user-registration-custom-field",
"error-user-registration-disabled": "ユーザー登録は無効化されています",
"error-user-registration-secret": "ユーザーの登録は登録用URLからのみ許可されています",
"error-you-are-last-owner": "あなたは最後のオーナーです。ルームを退出する前に別のオーナーを設定してください。",
"Actions": "アクション",
"activity": "アクティビティ",
"Activity": "アクティビティ順",
"Add_Reaction": "リアクションを追加",
"Add_Server": "サーバーを追加",
"Add_users": "ユーザーを追加",
"Admin_Panel": "管理者パネル",
"Alert": "アラート",
"alert": "アラート",
"alerts": "アラート",
"All_users_in_the_channel_can_write_new_messages": "すべてのユーザーが新しいメッセージを書き込みできます",
"All": "すべての",
"All_Messages": "全メッセージ",
"Allow_Reactions": "リアクションを許可",
"Alphabetical": "アルファベット順",
"and_more": "さらに表示",
"and": "と",
"announcement": "アナウンス",
"Announcement": "アナウンス",
"Apply_Your_Certificate": "証明書を適用する",
"ARCHIVE": "アーカイブ",
"archive": "アーカイブ",
"are_typing": "が入力中",
"Are_you_sure_question_mark": "よろしいですか?",
"Are_you_sure_you_want_to_leave_the_room": "{{room}}を退出してもよろしいですか?",
"Audio": "音声",
"Authenticating": "認証",
"Automatic": "自動",
"Auto_Translate": "自動翻訳",
"Avatar_changed_successfully": "アバターを変更しました!",
"Avatar_Url": "アバターURL",
"Away": "退出中",
"Back": "戻る",
"Black": "ブラック",
"Block_user": "ブロックしたユーザー",
"Broadcast_channel_Description": "許可されたユーザーのみが新しいメッセージを書き込めます。他のユーザーは返信することができます",
"Broadcast_Channel": "配信チャンネル",
"Busy": "取り込み中",
"By_proceeding_you_are_agreeing": "続行することにより、私達を承認します",
"Cancel_editing": "編集をキャンセル",
"Cancel_recording": "録音をキャンセル",
"Cancel": "キャンセル",
"changing_avatar": "アバターを変更",
"creating_channel": "チャンネルを作成",
"creating_invite": "招待を作成",
"Channel_Name": "チャンネル名",
"Channels": "チャンネル",
"Chats": "チャット",
"Call_already_ended": "通話は終了しています。",
"Click_to_join": "クリックして参加!",
"Close": "閉じる",
"Close_emoji_selector": "絵文字ピッカーを閉じる",
"Choose": "選択",
"Choose_from_library": "ライブラリから選択",
"Choose_file": "ファイルを選択",
"Code": "コード",
"Collaborative": "コラボ",
"Confirm": "承認",
"Connect": "接続",
"Connected": "接続しました",
"connecting_server": "サーバーに接続中",
"Connecting": "接続中...",
"Contact_us": "お問い合わせ",
"Contact_your_server_admin": "サーバー管理者にお問い合わせください。",
"Continue_with": "次でログイン: ",
"Copied_to_clipboard": "クリップボードにコピー!",
"Copy": "コピー",
"Permalink": "パーマリンク",
"Certificate_password": "パスワード証明書",
"Clear_cache": "ローカルのサーバーキャッシュをクリア",
"Whats_the_password_for_your_certificate": "証明書のパスワードはなんですか?",
"Create_account": "アカウントを作成",
"Create_Channel": "チャンネルを作成",
"Created_snippet": "スニペットを作成",
"Create_a_new_workspace": "新しいワークスペースを作成",
"Create": "作成",
"Dark": "ダーク",
"Dark_level": "ダークレベル",
"Default": "デフォルト",
"Default_browser": "デフォルトのブラウザ",
"Delete_Room_Warning": "ルームを削除すると、ルームに投稿されたすべてのメッセージが削除されます。この操作は取り消せません。",
"delete": "削除",
"Delete": "削除",
"DELETE": "削除",
"deleting_room": "ルームを削除",
"description": "概要",
"Description": "概要",
"Desktop_Options": "デスクトップオプション",
"Directory": "ディレクトリ",
"Direct_Messages": "ダイレクトメッセージ",
"Disable_notifications": "通知を無効化",
"Discussions": "ディスカッション",
"Dont_Have_An_Account": "アカウントがありませんか?",
"Do_you_have_a_certificate": "証明書を持っていますか?",
"Do_you_really_want_to_key_this_room_question_mark": "本当にこのルームを{{key}}しますか?",
"edit": "編集",
"edited": "編集済",
"Edit": "編集",
"Edit_Invite": "編集に招待",
"Email_or_password_field_is_empty": "メールアドレスかパスワードの入力欄が空です",
"Email": "メールアドレス",
"email": "メールアドレス",
"Enable_Auto_Translate": "自動翻訳を有効にする",
"Enable_notifications": "通知を有効にする",
"Everyone_can_access_this_channel": "全員このチャンネルにアクセスできます",
"Error_uploading": "アップロードエラー",
"Expiration_Days": "期限切れ (日)",
"Favorite": "お気に入り",
"Favorites": "お気に入り",
"Files": "ファイル",
"File_description": "ファイルの説明",
"File_name": "ファイル名",
"Finish_recording": "録音停止",
"Following_thread": "スレッド更新時に通知",
"For_your_security_you_must_enter_your_current_password_to_continue": "セキュリティのため、続けるには現在のパスワードを入力してください。",
"Forgot_password_If_this_email_is_registered": "送信したメールアドレスが登録されていれば、パスワードのリセット方法を送信しました。メールアドレスがすぐに来ない場合はやり直してください。",
"Forgot_password": "パスワードを忘れた",
"Forgot_Password": "パスワードを忘れた",
"Full_table": "クリックしてテーブル全体を見る",
"Generate_New_Link": "新しいリンクを生成",
"Group_by_favorites": "お気に入りをグループ化",
"Group_by_type": "タイプ別にグループ化",
"Hide": "隠す",
"Has_joined_the_channel": "はチャンネルに参加しました",
"Has_joined_the_conversation": "は会話に参加しました",
"Has_left_the_channel": "はチャンネルを退出しました",
"In_App_And_Desktop": "アプリ内とデスクトップ",
"In_App_and_Desktop_Alert_info": "アプリを表示中にはバナーを上部に表示し、デスクトップには通知を送ります。",
"Invisible": "状態を隠す",
"Invite": "招待",
"is_a_valid_RocketChat_instance": "は正しいRocket.Chatのインスタンスです",
"is_not_a_valid_RocketChat_instance": "はRocket.Chatのインスタンスではありません",
"is_typing": "が入力中",
"Invalid_or_expired_invite_token": "招待トークンが無効か、期限が切れています",
"Invalid_server_version": "接続しようとしているサーバーのバージョン({{currentVersion}})はサポートされていません。\n\nサポートする最低バージョンは {{minVersion}} です",
"Invite_Link": "招待リンク",
"Invite_users": "ユーザーを招待",
"Join": "参加",
"Just_invited_people_can_access_this_channel": "招待されたユーザーだけがこのチャンネルに参加できます",
"Language": "言語",
"last_message": "最後のメッセージ",
"Leave_channel": "チャンネルを退出",
"leaving_room": "チャンネルを退出",
"Leave": "ルームを退出",
"leave": "退出",
"Legal": "法的項目",
"Light": "ライト",
"License": "ライセンス",
"Livechat": "ライブチャット",
"Login": "ログイン",
"Login_error": "証明書が承認されませんでした。再度お試しください。",
"Login_with": "次でログイン: ",
"Logout": "ログアウト",
"Max_number_of_uses": "最大利用数",
"members": "メンバー",
"Members": "メンバー",
"Mentioned_Messages": "メンションされたメッセージ",
"mentioned": "メンション",
"Mentions": "メンション",
"Message_accessibility": "{{user}} から {{time}} にメッセージ: {{message}}",
"Message_actions": "メッセージアクション",
"Message_pinned": "メッセージをピン留め",
"Message_removed": "メッセージを除く",
"message": "メッセージ",
"messages": "メッセージ",
"Message": "メッセージ",
"Messages": "メッセージ",
"Message_Reported": "メッセージを報告しました",
"Microphone_Permission_Message": "Rocket.Chatは音声メッセージを送信するのにマイクのアクセスの許可が必要です。",
"Microphone_Permission": "マイクの許可",
"Mute": "ミュート",
"muted": "ミュートした",
"My_servers": "自分のサーバー",
"N_people_reacted": "{{n}}人がリアクションしました",
"N_users": "{{n}}人",
"name": "アルファベット",
"Name": "名前",
"Never": "ずっと受け取らない",
"New_Message": "メッセージ",
"New_Password": "新しいパスワード",
"New_Server": "新規サーバー",
"Next": "次へ",
"No_files": "ファイルがありません",
"No_limit": "制限なし",
"No_mentioned_messages": "メンションされたメッセージはありません",
"No_pinned_messages": "ピン留めされたメッセージはありません",
"No_results_found": "結果なし",
"No_starred_messages": "お気に入りされたメッセージはありません",
"No_thread_messages": "スレッドのメッセージはありません",
"No_Message": "メッセージなし",
"No_messages_yet": "まだメッセージはありません",
"No_Reactions": "リアクションなし",
"No_Read_Receipts": "未読通知はありません",
"Not_logged": "ログされていません",
"Not_RC_Server": "Rocket.Chatサーバーではありません。\n{{contact}}",
"Nothing": "何もなし",
"Nothing_to_save": "保存するものはありません!",
"Notify_active_in_this_room": "このルームのアクティブなユーザーに通知する",
"Notify_all_in_this_room": "このルームのユーザー全員に通知する",
"Notifications": "通知",
"Notification_Duration": "通知の期間",
"Notification_Preferences": "通知設定",
"Offline": "オフライン",
"Oops": "おっと!",
"Onboarding_title": "Rocket.Chatへようこそ",
"Online": "オンライン",
"Only_authorized_users_can_write_new_messages": "承認されたユーザーだけが新しいメッセージを書き込めます",
"Open_emoji_selector": "絵文字ピッカーを開く",
"Open_Source_Communication": "オープンソースコミュニケーション",
"Password": "パスワード",
"Permalink_copied_to_clipboard": "リンクをクリップボードにコピーしました!",
"Pin": "ピン留め",
"Pinned_Messages": "ピン留めされたメッセージ",
"pinned": "ピン留めされた",
"Pinned": "ピン留めされました",
"Please_enter_your_password": "パスワードを入力してください",
"Preferences": "設定",
"Preferences_saved": "設定が保存されました。",
"Privacy_Policy": " プライバシーポリシー",
"Private_Channel": "プライベートチャンネル",
"Private": "プライベート",
"Processing": "処理中...",
"Profile_saved_successfully": "プロフィールが保存されました!",
"Profile": "プロフィール",
"Public_Channel": "パブリックチャンネル",
"Public": "パブリック",
"Push_Notifications": "プッシュ通知",
"Push_Notifications_Alert_Info": "通知はアプリを開いていない時に送られます。",
"Quote": "引用",
"Reactions_are_disabled": "リアクションは無効化されています",
"Reactions_are_enabled": "リアクションは有効化されています",
"Reactions": "リアクション",
"Read": "読む",
"Read_Only_Channel": "読み取り専用チャンネル",
"Read_Only": "読み取り専用",
"Read_Receipt": "レシートを見る",
"Receive_Group_Mentions": "グループの通知を受け取る",
"Receive_Group_Mentions_Info": "@all と @here の通知を受け取る",
"Register": "登録",
"Repeat_Password": "パスワードを再入力",
"Replied_on": "返信:",
"replies": "返信",
"reply": "返信",
"Reply": "返信",
"Report": "報告",
"Receive_Notification": "通知を受け取る",
"Receive_notifications_from": "{{name}}からの通知を受け取る",
"Resend": "再送信",
"Reset_password": "パスワードをリセット",
"resetting_password": "パスワードを再設定",
"RESET": "リセット",
"Review_app_title": "アプリにご満足いただけておりますか?",
"Review_app_desc": "{{store}}で5段階で評価をお願いします",
"Review_app_yes": "はい!",
"Review_app_no": "いいえ",
"Review_app_later": "あとで",
"Review_app_unable_store": "{{store}}を開けません。",
"Review_this_app": "アプリをレビューする",
"Roles": "ロール",
"Room_actions": "ルームアクション",
"Room_changed_announcement": "{{userBy}}がアナウンスを変更しました: {{announcement}}",
"Room_changed_description": "{{userBy}}が概要を変更しました: {{description}}",
"Room_changed_privacy": "{{userBy}}がルームタイプを変更しました。: {{type}}",
"Room_changed_topic": "{{userBy}}がトピックを変更しました: {{topic}}",
"Room_Files": "ルームのファイル",
"Room_Info_Edit": "ルーム情報を編集",
"Room_Info": "ルーム情報",
"Room_Members": "ルームのメンバー",
"Room_name_changed": "ルーム名が{{userBy}}により変更されました: {{name}}",
"SAVE": "保存",
"Save_Changes": "変更を保存",
"Save": "保存",
"saving_preferences": "設定を保存中",
"saving_profile": "プロフィールを設定中",
"saving_settings": "サーバー設定を保存中",
"saved_to_gallery": "ギャラリーに保存しました",
"Search_Messages": "メッセージを検索",
"Search": "検索",
"Search_by": "検索種別: ",
"Search_global_users": "グローバルユーザーのための検索",
"Search_global_users_description": "有効にした場合、他の会社やサーバーの誰もがあなたを検索可能になります。",
"Seconds": "{{second}} 秒",
"Select_Avatar": "アバターを選択",
"Select_Server": "サーバーを選択",
"Select_Users": "ユーザーを選択",
"Send": "送信",
"Send_audio_message": "録音メッセージを送信",
"Send_crash_report": "クラッシュレポートを送信",
"Send_message": "メッセージを送信",
"Send_to": "送信先...",
"Sent_an_attachment": "添付ファイルを送信しました",
"Server": "サーバー",
"Servers": "サーバー",
"Server_version": "サーバーバージョン: {{version}}",
"Set_username_subtitle": "ユーザー名はメッセージ中であなたにメンションするのに使われます。",
"Settings": "設定",
"Settings_succesfully_changed": "設定が更新されました!",
"Share": "シェア",
"Share_Link": "リンクをシェアする",
"Share_this_app": "このアプリをシェアする",
"Show_more": "Show more..",
"Show_Unread_Counter": "未読件数を表示する",
"Show_Unread_Counter_Info": "未読件数はリスト上で、チャンネルの右側にバッジで表示されます。",
"Sign_in_your_server": "サーバーに接続",
"Sign_Up": "登録",
"Some_field_is_invalid_or_empty": "不正、または空の入力欄があります。",
"Sorting_by": "{{key}}順",
"Sound": "音",
"Star_room": "お気に入りルーム",
"Star": "お気に入り",
"Starred_Messages": "お気に入りされたメッセージ",
"starred": "お気に入りされています",
"Starred": "お気に入りされています",
"Start_of_conversation": "会話を開始する",
"Started_discussion": "ディスカッションを開始する:",
"Started_call": "{{userBy}}と通話する",
"Submit": "送信",
"Table": "表",
"Take_a_photo": "写真を撮影",
"Take_a_video": "動画を撮影",
"tap_to_change_status": "タップしてステータスを変更",
"Tap_to_view_servers_list": "タップしてサーバーリストを見る",
"Terms_of_Service": " 利用規約 ",
"Theme": "テーマ",
"There_was_an_error_while_action": "{{action}}の最中にエラーが発生しました!",
"This_room_is_blocked": "このルームはブロックされています。",
"This_room_is_read_only": "このルームは読み取り専用です。",
"Thread": "スレッド",
"Threads": "スレッド",
"Timezone": "タイムゾーン",
"To": "To",
"topic": "トピック",
"Topic": "トピック",
"Translate": "翻訳",
"Try_again": "再度お試しください。",
"Two_Factor_Authentication": "2段階認証",
"Type_the_channel_name_here": "ここにチャンネル名を入力",
"unarchive": "アーカイブ解除",
"UNARCHIVE": "アーカイブ解除",
"Unblock_user": "ブロックを解除",
"Unfavorite": "お気に入り解除",
"Unfollowed_thread": "スレッド更新時に通知しない",
"Unmute": "ミュート解除",
"unmuted": "ミュート解除しました",
"Unpin": "ピン留めを解除",
"unread_messages": "未読",
"Unread": "未読",
"Unread_on_top": "未読メッセージを上に表示",
"Unstar": "お気に入り解除",
"Updating": "更新中...",
"Uploading": "アップロード中",
"Upload_file_question_mark": "ファイルをアップロードしますか?",
"Users": "ユーザー",
"User_added_by": "{{userBy}} が {{userAdded}} を追加しました",
"User_Info": "ユーザー情報",
"User_has_been_key": "ユーザーは{{key}}",
"User_is_no_longer_role_by_": "{{userBy}} は {{user}} のロール {{role}} を削除しました。",
"User_muted_by": "{{userBy}} は {{userMuted}} をミュートしました。",
"User_removed_by": "{{userBy}} は {{userRemoved}} を退出させました。",
"User_sent_an_attachment": "{{user}}は添付ファイルを送信しました",
"User_unmuted_by": "{{userUnmuted}} は {{userBy}} にミュート解除されました。",
"User_was_set_role_by_": "{{user}} was set {{role}} by {{userBy}}",
"Username_is_empty": "ユーザー名が空です。",
"Username": "ユーザー名",
"Username_or_email": "ユーザー名かメールアドレス",
"Validating": "検証中",
"Video_call": "ビデオ通話",
"View_Original": "オリジナルを見る",
"Voice_call": "音声通話",
"Websocket_disabled": "Websocketはこのサーバーでは無効化されています。\n{{contact}}",
"Welcome": "ようこそ",
"Whats_your_2fa": "2段階認証のコードを入力してください",
"Without_Servers": "サーバーを除く",
"Write_External_Permission_Message": "Rocket.Chatは画像を保存するためにギャラリーへのアクセスを求めています。",
"Write_External_Permission": "ギャラリーへのアクセス許可",
"Yes_action_it": "はい、{{action}}します!",
"Yesterday": "昨日",
"You_are_in_preview_mode": "プレビューモードです。",
"You_are_offline": "オフラインです。",
"You_can_search_using_RegExp_eg": "正規表現を利用できます。 例: `/^text$/i`",
"You_colon": "あなた: ",
"you_were_mentioned": "あなたがメンションしました",
"you": "あなた",
"You": "あなた",
"Logged_out_by_server": "サーバーからログアウトします。もう一度ログインしてください。",
"You_need_to_access_at_least_one_RocketChat_server_to_share_something": "シェアするためには1つ以上のサーバーにアクセスする必要があります。",
"Your_certificate": "あなたの認証情報",
"Your_invite_link_will_expire_after__usesLeft__uses": "招待リンクはあと{{usesLeft}}回で使用できなくなります。",
"Your_invite_link_will_expire_on__date__or_after__usesLeft__uses": "招待リンクは{{date}}までか、あと{{usesLeft}}回で使用できなくなります。",
"Your_invite_link_will_expire_on__date__": "招待リンクは{{date}}に使用できなくなります。",
"Your_invite_link_will_never_expire": "招待リンクはずっと有効です。",
"Version_no": "バージョン: {{version}}",
"You_will_not_be_able_to_recover_this_message": "このメッセージは復元できません!",
"Change_Language": "言語を変更",
"Crash_report_disclaimer": "クラッシュレポートには問題を特定し、修正するために必要な情報のみが含まれます。チャット内のコンテンツは送信されません。",
"Type_message": "メッセージを入力",
"Room_search": "ルームを検索",
"Room_selection": "ルームを選択 1...9",
"Next_room": "次のルーム",
"Previous_room": "前のルーム",
"New_room": "新しいルーム",
"Upload_room": "ルームにアップロード",
"Search_messages": "メッセージを検索",
"Scroll_messages": "メッセージをスクロール",
"Reply_latest": "最新のメッセージにリプライ",
"Server_selection": "サーバー選択",
"Server_selection_numbers": "サーバー選択 1...9",
"Add_server": "サーバーを追加",
"New_line": "新しい行",
"You_will_be_logged_out_of_this_application": "アプリからログアウトします。",
"Clear": "クリア",
"This_will_clear_all_your_offline_data": "オフラインデータをすべて削除します。",
"invalid-room": "無効なルーム"
}
"1_person_reacted": "1人がリアクション",
"1_user": "1人",
"error-action-not-allowed": "{{action}}の権限がありません。",
"error-application-not-found": "アプリケーションがありません。",
"error-archived-duplicate-name": "アーカイブ名が重複しています: {{room_name}}",
"error-avatar-invalid-url": "画像のURLが正しくありません: {{url}}",
"error-avatar-url-handling": "アバターをURL({{url}})から{{username}}に設定中にエラーが発生しました。",
"error-cant-invite-for-direct-room": "ユーザーを直接ルームに招待することができません。",
"error-could-not-change-email": "メールアドレスを変更できません。",
"error-could-not-change-name": "名前を変更できません。",
"error-could-not-change-username": "ユーザー名を変更できません。",
"error-delete-protected-role": "保護されたロールは削除できません。",
"error-department-not-found": "ロールが存在しません。",
"error-direct-message-file-upload-not-allowed": "ダイレクトメッセージでのファイルのアップロードは許可されていません。",
"error-duplicate-channel-name": "{{room_name}}と同名のチャンネルが存在します。",
"error-email-domain-blacklisted": "このドメインのメールアドレスはブラックリストに登録されています。",
"error-email-send-failed": "次のメールアドレスの送信に失敗しました: {{message}}",
"error-save-image": "画像の保存に失敗しました。",
"error-field-unavailable": "{{field}}は既に使用されています。",
"error-file-too-large": "ファイルが大きすぎます。",
"error-importer-not-defined": "インポータが正しく定義されていません。Importクラスが見つかりません。",
"error-input-is-not-a-valid-field": "{{input}}は{{field}}の入力として正しくありません。",
"error-invalid-actionlink": "アクションリンクが正しくありません。",
"error-invalid-arguments": "引数が正しくありません。",
"error-invalid-asset": "アセットが不正です。",
"error-invalid-channel": "チャンネル名が不正です。",
"error-invalid-channel-start-with-chars": "不正なチャンネルです。チャンネル名は@か#から開始します。",
"error-invalid-custom-field": "カスタムフィールドが不正です。",
"error-invalid-custom-field-name": "カスタムフィールド名が不正です。半角英数字、ハイフン、アンダースコアのみを使用してください。",
"error-invalid-date": "不正な日時です",
"error-invalid-description": "不正な詳細です",
"error-invalid-domain": "不正なドメインです",
"error-invalid-email": "不正なメールアドレスです。 {{email}}",
"error-invalid-email-address": "不正なメールアドレスです",
"error-invalid-file-height": "ファイルの高さが不正です",
"error-invalid-file-type": "ファイルの種類が不正です",
"error-invalid-file-width": "ファイルの幅が不正です",
"error-invalid-from-address": "不正なアドレスから通知しました",
"error-invalid-integration": "不正なインテグレーションです。",
"error-invalid-message": "不正なメッセージです。",
"error-invalid-method": "不正なメソッドです。",
"error-invalid-name": "不正な名前です",
"error-invalid-password": "不正なパスワードです",
"error-invalid-redirectUri": "不正なリダイレクトURIです",
"error-invalid-role": "不正なロールです",
"error-invalid-room": "不正なルームです",
"error-invalid-room-name": "{{room_name}}は正しいルーム名ではありません。",
"error-invalid-room-type": "{{type}}は正しいルームタイプではありません。",
"error-invalid-settings": "不正な設定が送信されました",
"error-invalid-subscription": "不正な購読です",
"error-invalid-token": "トークンが正しくありません",
"error-invalid-triggerWords": "トリガーワードが正しくありません",
"error-invalid-urls": "URLが正しくありません",
"error-invalid-user": "ユーザーが正しくありません",
"error-invalid-username": "ユーザー名が正しくありません",
"error-invalid-webhook-response": "WebhookのURLが200以外のステータスを返しています",
"error-message-deleting-blocked": "メッセージの削除をブロックされています。",
"error-message-editing-blocked": "メッセージの編集をブロックされています。",
"error-message-size-exceeded": "メッセージの大きさが Message_MaxAllowedSize を超えています。",
"error-missing-unsubscribe-link": "購読停止リンクを入れてください。",
"error-no-tokens-for-this-user": "このユーザーにはトークンがありません。",
"error-not-allowed": "許可されていません。",
"error-not-authorized": "有効化されていません。",
"error-push-disabled": "プッシュは無効化されています。",
"error-remove-last-owner": "ルームの最後のオーナーです。ルームを退出する前に新しいオーナーを設定してください。",
"error-role-in-use": "使用中のロールを削除することはできません。",
"error-role-name-required": "ロール名を入力してください。",
"error-the-field-is-required": "{{field}}の入力欄は必須です。",
"error-too-many-requests": "エラーです。リクエストが多すぎます。リクエストの頻度を落としてください。{{seconds}} 秒以上待ってから再度お試しください。",
"error-user-is-not-activated": "アカウントが有効化されていません。",
"error-user-has-no-roles": "ロールがありません。",
"error-user-limit-exceeded": "#channel_name に招待できるユーザー数の上限を超えています。管理者にお問い合わせください。",
"error-user-not-in-room": "ユーザーがルームにいません。",
"error-user-registration-custom-field": "error-user-registration-custom-field",
"error-user-registration-disabled": "ユーザー登録は無効化されています",
"error-user-registration-secret": "ユーザーの登録は登録用URLからのみ許可されています",
"error-you-are-last-owner": "あなたは最後のオーナーです。ルームを退出する前に別のオーナーを設定してください。",
"Actions": "アクション",
"Activity": "アクティビティ順",
"Add_Reaction": "リアクションを追加",
"Add_Server": "サーバーを追加",
"Add_users": "ユーザーを追加",
"Admin_Panel": "管理者パネル",
"Alert": "アラート",
"alert": "アラート",
"alerts": "アラート",
"All_users_in_the_channel_can_write_new_messages": "すべてのユーザーが新しいメッセージを書き込みできます",
"All": "すべての",
"All_Messages": "全メッセージ",
"Allow_Reactions": "リアクションを許可",
"Alphabetical": "アルファベット順",
"and_more": "さらに表示",
"and": "と",
"announcement": "アナウンス",
"Announcement": "アナウンス",
"Apply_Your_Certificate": "証明書を適用する",
"ARCHIVE": "アーカイブ",
"archive": "アーカイブ",
"are_typing": "が入力中",
"Are_you_sure_question_mark": "よろしいですか?",
"Are_you_sure_you_want_to_leave_the_room": "{{room}}を退出してもよろしいですか?",
"Audio": "音声",
"Authenticating": "認証",
"Automatic": "自動",
"Auto_Translate": "自動翻訳",
"Avatar_changed_successfully": "アバターを変更しました!",
"Avatar_Url": "アバターURL",
"Away": "退出中",
"Back": "戻る",
"Black": "ブラック",
"Block_user": "ブロックしたユーザー",
"Broadcast_channel_Description": "許可されたユーザーのみが新しいメッセージを書き込めます。他のユーザーは返信することができます",
"Broadcast_Channel": "配信チャンネル",
"Busy": "取り込み中",
"By_proceeding_you_are_agreeing": "続行することにより、私達を承認します",
"Cancel_editing": "編集をキャンセル",
"Cancel_recording": "録音をキャンセル",
"Cancel": "キャンセル",
"changing_avatar": "アバターを変更",
"creating_channel": "チャンネルを作成",
"creating_invite": "招待を作成",
"Channel_Name": "チャンネル名",
"Channels": "チャンネル",
"Chats": "チャット",
"Call_already_ended": "通話は終了しています。",
"Click_to_join": "クリックして参加!",
"Close": "閉じる",
"Close_emoji_selector": "絵文字ピッカーを閉じる",
"Choose": "選択",
"Choose_from_library": "ライブラリから選択",
"Choose_file": "ファイルを選択",
"Code": "コード",
"Collaborative": "コラボ",
"Confirm": "承認",
"Connect": "接続",
"Connected": "接続しました",
"connecting_server": "サーバーに接続中",
"Connecting": "接続中...",
"Contact_us": "お問い合わせ",
"Contact_your_server_admin": "サーバー管理者にお問い合わせください。",
"Continue_with": "次でログイン: ",
"Copied_to_clipboard": "クリップボードにコピー!",
"Copy": "コピー",
"Permalink": "パーマリンク",
"Certificate_password": "パスワード証明書",
"Clear_cache": "ローカルのサーバーキャッシュをクリア",
"Whats_the_password_for_your_certificate": "証明書のパスワードはなんですか?",
"Create_account": "アカウントを作成",
"Create_Channel": "チャンネルを作成",
"Created_snippet": "スニペットを作成",
"Create_a_new_workspace": "新しいワークスペースを作成",
"Create": "作成",
"Dark": "ダーク",
"Dark_level": "ダークレベル",
"Default": "デフォルト",
"Default_browser": "デフォルトのブラウザ",
"Delete_Room_Warning": "ルームを削除すると、ルームに投稿されたすべてのメッセージが削除されます。この操作は取り消せません。",
"delete": "削除",
"Delete": "削除",
"DELETE": "削除",
"deleting_room": "ルームを削除",
"description": "概要",
"Description": "概要",
"Desktop_Options": "デスクトップオプション",
"Directory": "ディレクトリ",
"Direct_Messages": "ダイレクトメッセージ",
"Disable_notifications": "通知を無効化",
"Discussions": "ディスカッション",
"Dont_Have_An_Account": "アカウントがありませんか?",
"Do_you_have_a_certificate": "証明書を持っていますか?",
"Do_you_really_want_to_key_this_room_question_mark": "本当にこのルームを{{key}}しますか?",
"edit": "編集",
"edited": "編集済",
"Edit": "編集",
"Edit_Invite": "編集に招待",
"Email_or_password_field_is_empty": "メールアドレスかパスワードの入力欄が空です",
"Email": "メールアドレス",
"email": "メールアドレス",
"Enable_Auto_Translate": "自動翻訳を有効にする",
"Enable_notifications": "通知を有効にする",
"Everyone_can_access_this_channel": "全員このチャンネルにアクセスできます",
"Error_uploading": "アップロードエラー",
"Expiration_Days": "期限切れ (日)",
"Favorites": "お気に入り",
"Files": "ファイル",
"File_description": "ファイルの説明",
"File_name": "ファイル名",
"Finish_recording": "録音停止",
"Following_thread": "スレッド更新時に通知",
"For_your_security_you_must_enter_your_current_password_to_continue": "セキュリティのため、続けるには現在のパスワードを入力してください。",
"Forgot_password_If_this_email_is_registered": "送信したメールアドレスが登録されていれば、パスワードのリセット方法を送信しました。メールアドレスがすぐに来ない場合はやり直してください。",
"Forgot_password": "パスワードを忘れた",
"Forgot_Password": "パスワードを忘れた",
"Full_table": "クリックしてテーブル全体を見る",
"Generate_New_Link": "新しいリンクを生成",
"Has_joined_the_channel": "はチャンネルに参加しました",
"Has_joined_the_conversation": "は会話に参加しました",
"Has_left_the_channel": "はチャンネルを退出しました",
"In_App_And_Desktop": "アプリ内とデスクトップ",
"In_App_and_Desktop_Alert_info": "アプリを表示中にはバナーを上部に表示し、デスクトップには通知を送ります。",
"Invisible": "状態を隠す",
"Invite": "招待",
"is_a_valid_RocketChat_instance": "は正しいRocket.Chatのインスタンスです",
"is_not_a_valid_RocketChat_instance": "はRocket.Chatのインスタンスではありません",
"is_typing": "が入力中",
"Invalid_or_expired_invite_token": "招待トークンが無効か、期限が切れています",
"Invalid_server_version": "接続しようとしているサーバーのバージョン({{currentVersion}})はサポートされていません。\n\nサポートする最低バージョンは {{minVersion}} です",
"Invite_Link": "招待リンク",
"Invite_users": "ユーザーを招待",
"Join": "参加",
"Just_invited_people_can_access_this_channel": "招待されたユーザーだけがこのチャンネルに参加できます",
"Language": "言語",
"last_message": "最後のメッセージ",
"Leave_channel": "チャンネルを退出",
"leaving_room": "チャンネルを退出",
"Leave": "ルームを退出",
"leave": "退出",
"Legal": "法的項目",
"Light": "ライト",
"License": "ライセンス",
"Livechat": "ライブチャット",
"Login": "ログイン",
"Login_error": "証明書が承認されませんでした。再度お試しください。",
"Login_with": "次でログイン: ",
"Logout": "ログアウト",
"Max_number_of_uses": "最大利用数",
"members": "メンバー",
"Members": "メンバー",
"Mentioned_Messages": "メンションされたメッセージ",
"mentioned": "メンション",
"Mentions": "メンション",
"Message_accessibility": "{{user}} から {{time}} にメッセージ: {{message}}",
"Message_actions": "メッセージアクション",
"Message_pinned": "メッセージをピン留め",
"Message_removed": "メッセージを除く",
"message": "メッセージ",
"messages": "メッセージ",
"Message": "メッセージ",
"Messages": "メッセージ",
"Message_Reported": "メッセージを報告しました",
"Microphone_Permission_Message": "Rocket.Chatは音声メッセージを送信するのにマイクのアクセスの許可が必要です。",
"Microphone_Permission": "マイクの許可",
"Mute": "ミュート",
"muted": "ミュートした",
"My_servers": "自分のサーバー",
"N_people_reacted": "{{n}}人がリアクションしました",
"N_users": "{{n}}人",
"Name": "名前",
"Never": "ずっと受け取らない",
"New_Message": "メッセージ",
"New_Password": "新しいパスワード",
"New_Server": "新規サーバー",
"Next": "次へ",
"No_files": "ファイルがありません",
"No_limit": "制限なし",
"No_mentioned_messages": "メンションされたメッセージはありません",
"No_pinned_messages": "ピン留めされたメッセージはありません",
"No_results_found": "結果なし",
"No_starred_messages": "お気に入りされたメッセージはありません",
"No_thread_messages": "スレッドのメッセージはありません",
"No_Message": "メッセージなし",
"No_messages_yet": "まだメッセージはありません",
"No_Reactions": "リアクションなし",
"No_Read_Receipts": "未読通知はありません",
"Not_logged": "ログされていません",
"Not_RC_Server": "Rocket.Chatサーバーではありません。\n{{contact}}",
"Nothing": "何もなし",
"Nothing_to_save": "保存するものはありません!",
"Notify_active_in_this_room": "このルームのアクティブなユーザーに通知する",
"Notify_all_in_this_room": "このルームのユーザー全員に通知する",
"Notifications": "通知",
"Notification_Duration": "通知の期間",
"Notification_Preferences": "通知設定",
"Offline": "オフライン",
"Oops": "おっと!",
"Onboarding_title": "Rocket.Chatへようこそ",
"Online": "オンライン",
"Only_authorized_users_can_write_new_messages": "承認されたユーザーだけが新しいメッセージを書き込めます",
"Open_emoji_selector": "絵文字ピッカーを開く",
"Open_Source_Communication": "オープンソースコミュニケーション",
"Password": "パスワード",
"Permalink_copied_to_clipboard": "リンクをクリップボードにコピーしました!",
"Pin": "ピン留め",
"Pinned_Messages": "ピン留めされたメッセージ",
"pinned": "ピン留めされた",
"Pinned": "ピン留めされました",
"Please_enter_your_password": "パスワードを入力してください",
"Preferences": "設定",
"Preferences_saved": "設定が保存されました。",
"Privacy_Policy": " プライバシーポリシー",
"Private_Channel": "プライベートチャンネル",
"Private": "プライベート",
"Processing": "処理中...",
"Profile_saved_successfully": "プロフィールが保存されました!",
"Profile": "プロフィール",
"Public_Channel": "パブリックチャンネル",
"Public": "パブリック",
"Push_Notifications": "プッシュ通知",
"Push_Notifications_Alert_Info": "通知はアプリを開いていない時に送られます。",
"Quote": "引用",
"Reactions_are_disabled": "リアクションは無効化されています",
"Reactions_are_enabled": "リアクションは有効化されています",
"Reactions": "リアクション",
"Read_Only_Channel": "読み取り専用チャンネル",
"Read_Only": "読み取り専用",
"Read_Receipt": "レシートを見る",
"Receive_Group_Mentions": "グループの通知を受け取る",
"Receive_Group_Mentions_Info": "@all と @here の通知を受け取る",
"Register": "登録",
"Repeat_Password": "パスワードを再入力",
"Replied_on": "返信:",
"replies": "返信",
"reply": "返信",
"Reply": "返信",
"Report": "報告",
"Receive_Notification": "通知を受け取る",
"Receive_notifications_from": "{{name}}からの通知を受け取る",
"Resend": "再送信",
"Reset_password": "パスワードをリセット",
"resetting_password": "パスワードを再設定",
"RESET": "リセット",
"Review_app_title": "アプリにご満足いただけておりますか?",
"Review_app_desc": "{{store}}で5段階で評価をお願いします",
"Review_app_yes": "はい!",
"Review_app_no": "いいえ",
"Review_app_later": "あとで",
"Review_app_unable_store": "{{store}}を開けません。",
"Review_this_app": "アプリをレビューする",
"Roles": "ロール",
"Room_actions": "ルームアクション",
"Room_changed_announcement": "{{userBy}}がアナウンスを変更しました: {{announcement}}",
"Room_changed_description": "{{userBy}}が概要を変更しました: {{description}}",
"Room_changed_privacy": "{{userBy}}がルームタイプを変更しました。: {{type}}",
"Room_changed_topic": "{{userBy}}がトピックを変更しました: {{topic}}",
"Room_Files": "ルームのファイル",
"Room_Info_Edit": "ルーム情報を編集",
"Room_Info": "ルーム情報",
"Room_Members": "ルームのメンバー",
"Room_name_changed": "ルーム名が{{userBy}}により変更されました: {{name}}",
"SAVE": "保存",
"Save_Changes": "変更を保存",
"Save": "保存",
"saving_preferences": "設定を保存中",
"saving_profile": "プロフィールを設定中",
"saving_settings": "サーバー設定を保存中",
"saved_to_gallery": "ギャラリーに保存しました",
"Search_Messages": "メッセージを検索",
"Search": "検索",
"Search_by": "検索種別: ",
"Search_global_users": "グローバルユーザーのための検索",
"Search_global_users_description": "有効にした場合、他の会社やサーバーの誰もがあなたを検索可能になります。",
"Seconds": "{{second}} 秒",
"Select_Avatar": "アバターを選択",
"Select_Server": "サーバーを選択",
"Select_Users": "ユーザーを選択",
"Send": "送信",
"Send_audio_message": "録音メッセージを送信",
"Send_crash_report": "クラッシュレポートを送信",
"Send_message": "メッセージを送信",
"Send_to": "送信先...",
"Sent_an_attachment": "添付ファイルを送信しました",
"Server": "サーバー",
"Servers": "サーバー",
"Server_version": "サーバーバージョン: {{version}}",
"Set_username_subtitle": "ユーザー名はメッセージ中であなたにメンションするのに使われます。",
"Settings": "設定",
"Settings_succesfully_changed": "設定が更新されました!",
"Share": "シェア",
"Share_Link": "リンクをシェアする",
"Share_this_app": "このアプリをシェアする",
"Show_more": "Show more..",
"Show_Unread_Counter": "未読件数を表示する",
"Show_Unread_Counter_Info": "未読件数はリスト上で、チャンネルの右側にバッジで表示されます。",
"Sign_in_your_server": "サーバーに接続",
"Sign_Up": "登録",
"Some_field_is_invalid_or_empty": "不正、または空の入力欄があります。",
"Sound": "音",
"Star_room": "お気に入りルーム",
"Star": "お気に入り",
"Starred_Messages": "お気に入りされたメッセージ",
"starred": "お気に入りされています",
"Starred": "お気に入りされています",
"Start_of_conversation": "会話を開始する",
"Started_discussion": "ディスカッションを開始する:",
"Started_call": "{{userBy}}と通話する",
"Submit": "送信",
"Table": "表",
"Take_a_photo": "写真を撮影",
"Take_a_video": "動画を撮影",
"tap_to_change_status": "タップしてステータスを変更",
"Tap_to_view_servers_list": "タップしてサーバーリストを見る",
"Terms_of_Service": " 利用規約 ",
"Theme": "テーマ",
"There_was_an_error_while_action": "{{action}}の最中にエラーが発生しました!",
"This_room_is_blocked": "このルームはブロックされています。",
"This_room_is_read_only": "このルームは読み取り専用です。",
"Thread": "スレッド",
"Threads": "スレッド",
"Timezone": "タイムゾーン",
"To": "To",
"topic": "トピック",
"Topic": "トピック",
"Translate": "翻訳",
"Try_again": "再度お試しください。",
"Two_Factor_Authentication": "2段階認証",
"Type_the_channel_name_here": "ここにチャンネル名を入力",
"unarchive": "アーカイブ解除",
"UNARCHIVE": "アーカイブ解除",
"Unblock_user": "ブロックを解除",
"Unfollowed_thread": "スレッド更新時に通知しない",
"Unmute": "ミュート解除",
"unmuted": "ミュート解除しました",
"Unpin": "ピン留めを解除",
"unread_messages": "未読",
"Unread": "未読",
"Unread_on_top": "未読メッセージを上に表示",
"Unstar": "お気に入り解除",
"Updating": "更新中...",
"Uploading": "アップロード中",
"Upload_file_question_mark": "ファイルをアップロードしますか?",
"Users": "ユーザー",
"User_added_by": "{{userBy}} が {{userAdded}} を追加しました",
"User_Info": "ユーザー情報",
"User_has_been_key": "ユーザーは{{key}}",
"User_is_no_longer_role_by_": "{{userBy}} は {{user}} のロール {{role}} を削除しました。",
"User_muted_by": "{{userBy}} は {{userMuted}} をミュートしました。",
"User_removed_by": "{{userBy}} は {{userRemoved}} を退出させました。",
"User_sent_an_attachment": "{{user}}は添付ファイルを送信しました",
"User_unmuted_by": "{{userUnmuted}} は {{userBy}} にミュート解除されました。",
"User_was_set_role_by_": "{{user}} was set {{role}} by {{userBy}}",
"Username_is_empty": "ユーザー名が空です。",
"Username": "ユーザー名",
"Username_or_email": "ユーザー名かメールアドレス",
"Validating": "検証中",
"Video_call": "ビデオ通話",
"View_Original": "オリジナルを見る",
"Voice_call": "音声通話",
"Websocket_disabled": "Websocketはこのサーバーでは無効化されています。\n{{contact}}",
"Welcome": "ようこそ",
"Whats_your_2fa": "2段階認証のコードを入力してください",
"Without_Servers": "サーバーを除く",
"Write_External_Permission_Message": "Rocket.Chatは画像を保存するためにギャラリーへのアクセスを求めています。",
"Write_External_Permission": "ギャラリーへのアクセス許可",
"Yes_action_it": "はい、{{action}}します!",
"Yesterday": "昨日",
"You_are_in_preview_mode": "プレビューモードです。",
"You_are_offline": "オフラインです。",
"You_can_search_using_RegExp_eg": "正規表現を利用できます。 例: `/^text$/i`",
"You_colon": "あなた: ",
"you_were_mentioned": "あなたがメンションしました",
"you": "あなた",
"You": "あなた",
"Logged_out_by_server": "サーバーからログアウトします。もう一度ログインしてください。",
"You_need_to_access_at_least_one_RocketChat_server_to_share_something": "シェアするためには1つ以上のサーバーにアクセスする必要があります。",
"Your_certificate": "あなたの認証情報",
"Your_invite_link_will_expire_after__usesLeft__uses": "招待リンクはあと{{usesLeft}}回で使用できなくなります。",
"Your_invite_link_will_expire_on__date__or_after__usesLeft__uses": "招待リンクは{{date}}までか、あと{{usesLeft}}回で使用できなくなります。",
"Your_invite_link_will_expire_on__date__": "招待リンクは{{date}}に使用できなくなります。",
"Your_invite_link_will_never_expire": "招待リンクはずっと有効です。",
"Version_no": "バージョン: {{version}}",
"You_will_not_be_able_to_recover_this_message": "このメッセージは復元できません!",
"Change_Language": "言語を変更",
"Crash_report_disclaimer": "クラッシュレポートには問題を特定し、修正するために必要な情報のみが含まれます。チャット内のコンテンツは送信されません。",
"Type_message": "メッセージを入力",
"Room_search": "ルームを検索",
"Room_selection": "ルームを選択 1...9",
"Next_room": "次のルーム",
"Previous_room": "前のルーム",
"New_room": "新しいルーム",
"Upload_room": "ルームにアップロード",
"Search_messages": "メッセージを検索",
"Scroll_messages": "メッセージをスクロール",
"Reply_latest": "最新のメッセージにリプライ",
"Server_selection": "サーバー選択",
"Server_selection_numbers": "サーバー選択 1...9",
"Add_server": "サーバーを追加",
"New_line": "新しい行",
"You_will_be_logged_out_of_this_application": "アプリからログアウトします。",
"Clear": "クリア",
"This_will_clear_all_your_offline_data": "オフラインデータをすべて削除します。",
"invalid-room": "無効なルーム"
}

View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/kg.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/km.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/ko.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/ku.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/ln.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/lo.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/lt.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/lv.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/mn.json Normal file
View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

1
app/i18n/locales/no.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/pl.json Normal file
View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1
app/i18n/locales/ro.json Normal file
View File

@ -0,0 +1 @@
{ }

File diff suppressed because it is too large Load Diff

1
app/i18n/locales/si.json Normal file
View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/sq.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/sr.json Normal file
View File

@ -0,0 +1 @@
{ }

1
app/i18n/locales/sv.json Normal file
View File

@ -0,0 +1 @@
{ }

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