mirror of
https://github.com/wassname/talk.git
synced 2026-08-12 12:30:39 +08:00
Fix a few more strings and translations.
This commit is contained in:
@@ -19,7 +19,7 @@ export const handleLogin = (email, password, recaptchaResponse) => dispatch => {
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
if (error.translation_key === 'LOGIN_MAXIMUM_EXCEEDED') {
|
||||
if (error.translation_key === 'login_maximum_exceeded') {
|
||||
dispatch({type: actions.LOGIN_MAXIMUM_EXCEEDED, message: error.translation_key});
|
||||
} else {
|
||||
dispatch({type: actions.LOGIN_FAILURE, message: error.translation_key});
|
||||
|
||||
@@ -73,7 +73,7 @@ class CountdownTimer extends React.Component {
|
||||
className={styles.autoUpdate}
|
||||
onClick={this.dismissNote}>
|
||||
<b>×</b>
|
||||
<Icon name='timer' /> <strong>{lang.t('dashboard.next-update', this.formatTime())}</strong> {lang.t('dashboard.auto-update')}
|
||||
<Icon name='timer' /> <strong>{lang.t('dashboard.next_update', this.formatTime())}</strong> {lang.t('dashboard.auto_update')}
|
||||
</p>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ const CoralHeader = ({handleLogout, showShortcuts = () => {}, restricted = false
|
||||
<IconButton name="settings" id="menu-settings"/>
|
||||
<Menu target="menu-settings" align="right">
|
||||
<MenuItem onClick={() => showShortcuts(true)}>{lang.t('configure.shortcuts')}</MenuItem>
|
||||
<MenuItem onClick={handleLogout}>{lang.t('configure.sign-out')}</MenuItem>
|
||||
<MenuItem onClick={handleLogout}>{lang.t('configure.sign_out')}</MenuItem>
|
||||
</Menu>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@@ -104,11 +104,11 @@ class Configure extends Component {
|
||||
getPageTitle (section) {
|
||||
switch(section) {
|
||||
case 'stream':
|
||||
return lang.t('configure.stream-settings');
|
||||
return lang.t('configure.stream_settings');
|
||||
case 'moderation':
|
||||
return lang.t('configure.moderation-settings');
|
||||
return lang.t('configure.moderation_settings');
|
||||
case 'tech':
|
||||
return lang.t('configure.tech-settings');
|
||||
return lang.t('configure.tech_settings');
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
@@ -126,13 +126,13 @@ class Configure extends Component {
|
||||
<div className={styles.leftColumn}>
|
||||
<List onChange={this.changeSection} activeItem={activeSection}>
|
||||
<Item itemId='stream' icon='speaker_notes'>
|
||||
{lang.t('configure.stream-settings')}
|
||||
{lang.t('configure.stream_settings')}
|
||||
</Item>
|
||||
<Item itemId='moderation' icon='thumbs_up_down'>
|
||||
{lang.t('configure.moderation-settings')}
|
||||
{lang.t('configure.moderation_settings')}
|
||||
</Item>
|
||||
<Item itemId='tech' icon='code'>
|
||||
{lang.t('configure.tech-settings')}
|
||||
{lang.t('configure.tech_settings')}
|
||||
</Item>
|
||||
</List>
|
||||
<div className={styles.saveBox}>
|
||||
@@ -145,7 +145,7 @@ class Configure extends Component {
|
||||
icon='check'
|
||||
full
|
||||
>
|
||||
{lang.t('configure.save-changes')}
|
||||
{lang.t('configure.save_changes')}
|
||||
</Button>
|
||||
:
|
||||
<Button
|
||||
@@ -154,7 +154,7 @@ class Configure extends Component {
|
||||
icon='check'
|
||||
full
|
||||
>
|
||||
{lang.t('configure.save-changes')}
|
||||
{lang.t('configure.save_changes')}
|
||||
</Button>
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -10,8 +10,8 @@ const Domainlist = ({domains, onChangeDomainlist}) => {
|
||||
return (
|
||||
<Card id={styles.domainlist} className={styles.configSetting}>
|
||||
<div className={styles.wrapper}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.domain-list-title')}</div>
|
||||
<p className={styles.domainlistDesc}>{lang.t('configure.domain-list-text')}</p>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.domain_list_title')}</div>
|
||||
<p className={styles.domainlistDesc}>{lang.t('configure.domain_list_text')}</p>
|
||||
<div className={styles.wrapper}>
|
||||
<TagsInput
|
||||
value={domains}
|
||||
|
||||
@@ -47,7 +47,7 @@ class EmbedLink extends Component {
|
||||
<Card shadow="2" className={styles.configSetting}>
|
||||
<div className={styles.wrapper}>
|
||||
<div className={styles.settingsHeader}>Embed Comment Stream</div>
|
||||
<p>{lang.t('configure.copy-and-paste')}</p>
|
||||
<p>{lang.t('configure.copy_and_paste')}</p>
|
||||
<textarea rows={5} type='text' className={styles.embedInput} value={embedText} readOnly={true}/>
|
||||
<div className={styles.actions}>
|
||||
<Button raised className={styles.copyButton} onClick={this.copyToClipBoard} cStyle="black">
|
||||
|
||||
@@ -36,9 +36,9 @@ const ModerationSettings = ({settings, updateSettings, onChangeWordlist}) => {
|
||||
checked={settings.requireEmailConfirmation} />
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.require-email-verification')}</div>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.require_email_verification')}</div>
|
||||
<p className={settings.requireEmailConfirmation ? '' : styles.disabledSettingText}>
|
||||
{lang.t('configure.require-email-verification-text')}
|
||||
{lang.t('configure.require_email_verification_text')}
|
||||
</p>
|
||||
</div>
|
||||
</Card>
|
||||
@@ -49,9 +49,9 @@ const ModerationSettings = ({settings, updateSettings, onChangeWordlist}) => {
|
||||
checked={settings.moderation === 'PRE'} />
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.enable-pre-moderation')}</div>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.enable_pre_moderation')}</div>
|
||||
<p className={settings.moderation === 'PRE' ? '' : styles.disabledSettingText}>
|
||||
{lang.t('configure.enable-pre-moderation-text')}
|
||||
{lang.t('configure.enable_pre_moderation_text')}
|
||||
</p>
|
||||
</div>
|
||||
</Card>
|
||||
@@ -62,9 +62,9 @@ const ModerationSettings = ({settings, updateSettings, onChangeWordlist}) => {
|
||||
checked={settings.premodLinksEnable} />
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.enable-premod-links')}</div>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.enable_premod_links')}</div>
|
||||
<p>
|
||||
{lang.t('configure.enable-premod-links-text')}
|
||||
{lang.t('configure.enable_premod_links_text')}
|
||||
</p>
|
||||
</div>
|
||||
</Card>
|
||||
|
||||
@@ -77,9 +77,9 @@ const StreamSettings = ({updateSettings, settingsError, settings, errors}) => {
|
||||
checked={settings.charCountEnable} />
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.comment-count-header')}</div>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.comment_count_header')}</div>
|
||||
<p className={settings.charCountEnable ? '' : styles.disabledSettingText}>
|
||||
<span>{lang.t('configure.comment-count-text-pre')}</span>
|
||||
<span>{lang.t('configure.comment_count_text_pre')}</span>
|
||||
<input type='text'
|
||||
className={`${styles.charCountTexfield} ${settings.charCountEnable && styles.charCountTexfieldEnabled}`}
|
||||
htmlFor='charCount'
|
||||
@@ -87,13 +87,13 @@ const StreamSettings = ({updateSettings, settingsError, settings, errors}) => {
|
||||
value={settings.charCount}
|
||||
disabled={settings.charCountEnable ? '' : 'disabled'}
|
||||
/>
|
||||
<span>{lang.t('configure.comment-count-text-post')}</span>
|
||||
<span>{lang.t('configure.comment_count_text_post')}</span>
|
||||
{
|
||||
errors.charCount &&
|
||||
<span className={styles.settingsError}>
|
||||
<br/>
|
||||
<Icon name="error_outline"/>
|
||||
{lang.t('configure.comment-count-error')}
|
||||
{lang.t('configure.comment_count_error')}
|
||||
</span>
|
||||
}
|
||||
</p>
|
||||
@@ -107,10 +107,10 @@ const StreamSettings = ({updateSettings, settingsError, settings, errors}) => {
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
<div className={styles.settingsHeader}>
|
||||
{lang.t('configure.include-comment-stream')}
|
||||
{lang.t('configure.include_comment_stream')}
|
||||
</div>
|
||||
<p className={settings.infoBoxEnable ? '' : styles.disabledSettingText}>
|
||||
{lang.t('configure.include-comment-stream-desc')}
|
||||
{lang.t('configure.include_comment_stream_desc')}
|
||||
</p>
|
||||
<div className={`${styles.configSettingInfoBox} ${settings.infoBoxEnable ? null : styles.hidden}`} >
|
||||
<MarkdownEditor
|
||||
@@ -123,8 +123,8 @@ const StreamSettings = ({updateSettings, settingsError, settings, errors}) => {
|
||||
</Card>
|
||||
<Card className={`${styles.configSetting} ${styles.configSettingInfoBox}`}>
|
||||
<div className={styles.wrapper}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.closed-stream-settings')}</div>
|
||||
<p>{lang.t('configure.closed-comments-desc')}</p>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.closed_stream_settings')}</div>
|
||||
<p>{lang.t('configure.closed_comments_desc')}</p>
|
||||
<div>
|
||||
<TextArea className={styles.descriptionBox}
|
||||
onChange={updateClosedMessage(updateSettings)}
|
||||
@@ -140,7 +140,7 @@ const StreamSettings = ({updateSettings, settingsError, settings, errors}) => {
|
||||
checked={settings.autoCloseStream} />
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
{lang.t('configure.close-after')}
|
||||
{lang.t('configure.close_after')}
|
||||
<br />
|
||||
<Textfield
|
||||
type='number'
|
||||
@@ -148,7 +148,7 @@ const StreamSettings = ({updateSettings, settingsError, settings, errors}) => {
|
||||
style={{width: 50}}
|
||||
onChange={updateClosedTimeout(updateSettings, settings.closedTimeout)}
|
||||
value={getTimeoutAmount(settings.closedTimeout)}
|
||||
label={lang.t('configure.closed-comments-label')} />
|
||||
label={lang.t('configure.closed_comments_label')} />
|
||||
<div className={styles.configTimeoutSelect}>
|
||||
<SelectField
|
||||
label="comments closed time window"
|
||||
|
||||
@@ -21,8 +21,8 @@ const TechSettings = ({settings, onChangeDomainlist, updateSettings}) => {
|
||||
<EmbedLink />
|
||||
<Card className={styles.configSetting}>
|
||||
<div className={styles.wrapper}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.custom-css-url')}</div>
|
||||
<p>{lang.t('configure.custom-css-url-desc')}</p>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.custom_css_url')}</div>
|
||||
<p>{lang.t('configure.custom_css_url_desc')}</p>
|
||||
<input
|
||||
className={styles.customCSSInput}
|
||||
value={settings.customCssUrl}
|
||||
|
||||
@@ -8,8 +8,8 @@ import {Card} from 'coral-ui';
|
||||
const Wordlist = ({suspectWords, bannedWords, onChangeWordlist}) => (
|
||||
<div>
|
||||
<Card id={styles.bannedWordlist} className={styles.configSetting}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.banned-words-title')}</div>
|
||||
<p className={styles.wordlistDesc}>{lang.t('configure.banned-word-text')}</p>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.banned_words_title')}</div>
|
||||
<p className={styles.wordlistDesc}>{lang.t('configure.banned_word_text')}</p>
|
||||
<div className={styles.wrapper}>
|
||||
<TagsInput
|
||||
value={bannedWords}
|
||||
@@ -21,8 +21,8 @@ const Wordlist = ({suspectWords, bannedWords, onChangeWordlist}) => (
|
||||
</div>
|
||||
</Card>
|
||||
<Card id={styles.suspectWordlist} className={styles.configSetting}>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.suspect-words-title')}</div>
|
||||
<p className={styles.wordlistDesc}>{lang.t('configure.suspect-word-text')}</p>
|
||||
<div className={styles.settingsHeader}>{lang.t('configure.suspect_words_title')}</div>
|
||||
<p className={styles.wordlistDesc}>{lang.t('configure.suspect_word_text')}</p>
|
||||
<div className={styles.wrapper}>
|
||||
<TagsInput
|
||||
value={suspectWords}
|
||||
|
||||
@@ -50,7 +50,7 @@ const InitialStep = props => {
|
||||
label={lang.t('CREATE.CONFIRM_PASSWORD')}
|
||||
onChange={handleUserChange}
|
||||
showErrors={install.showErrors}
|
||||
errorMsg={install.errors.confirmPassword}
|
||||
errorMsg={install.errors.confirm_password}
|
||||
/>
|
||||
|
||||
{
|
||||
|
||||
@@ -135,7 +135,7 @@ class Stories extends Component {
|
||||
<Radio value='open'>{lang.t('streams.open')}</Radio>
|
||||
<Radio value='closed'>{lang.t('streams.closed')}</Radio>
|
||||
</RadioGroup>
|
||||
<div className={styles.optionHeader}>{lang.t('streams.sort-by')}</div>
|
||||
<div className={styles.optionHeader}>{lang.t('streams.sort_by')}</div>
|
||||
<RadioGroup
|
||||
name='sort by'
|
||||
value={sort}
|
||||
|
||||
@@ -131,7 +131,7 @@ class Stories extends Component {
|
||||
<Radio value='open'>{lang.t('streams.open')}</Radio>
|
||||
<Radio value='closed'>{lang.t('streams.closed')}</Radio>
|
||||
</RadioGroup>
|
||||
<div className={styles.optionHeader}>{lang.t('streams.sort-by')}</div>
|
||||
<div className={styles.optionHeader}>{lang.t('streams.sort_by')}</div>
|
||||
<RadioGroup
|
||||
name='sort by'
|
||||
value={sort}
|
||||
|
||||
@@ -8,16 +8,16 @@ export default ({status, onClick}) => (
|
||||
status === 'open' ? (
|
||||
<div className="close-comments-intro-wrapper">
|
||||
<p>
|
||||
{lang.t('configure.open-stream-configuration')}
|
||||
{lang.t('configure.open_stream_configuration')}
|
||||
</p>
|
||||
<Button onClick={onClick}>{lang.t('configure.close-stream')}</Button>
|
||||
<Button onClick={onClick}>{lang.t('configure.close_stream')}</Button>
|
||||
</div>
|
||||
) : (
|
||||
<div className="close-comments-intro-wrapper">
|
||||
<p>
|
||||
{lang.t('configure.close-stream-configuration')}
|
||||
{lang.t('configure.close_stream_configuration')}
|
||||
</p>
|
||||
<Button onClick={onClick}>{lang.t('configure.open-stream')}</Button>
|
||||
<Button onClick={onClick}>{lang.t('configure.open_stream')}</Button>
|
||||
</div>
|
||||
)
|
||||
);
|
||||
|
||||
@@ -29,8 +29,8 @@ export default ({handleChange, handleApply, changed, ...props}) => (
|
||||
onChange={handleChange}
|
||||
defaultChecked={props.premod}
|
||||
info={{
|
||||
title: lang.t('configure.enablePremod'),
|
||||
description: lang.t('configure.enablePremodDescription')
|
||||
title: lang.t('configure.enable_premod'),
|
||||
description: lang.t('configure.enable_premod_description')
|
||||
}} />
|
||||
</li>
|
||||
<li>
|
||||
@@ -41,8 +41,8 @@ export default ({handleChange, handleApply, changed, ...props}) => (
|
||||
onChange={handleChange}
|
||||
defaultChecked={props.premodLinksEnable}
|
||||
info={{
|
||||
title: lang.t('configure.enablePremodLinks'),
|
||||
description: lang.t('configure.enablePremodLinksDescription')
|
||||
title: lang.t('configure.enable_premod_links'),
|
||||
description: lang.t('configure.enable_premod_links_description')
|
||||
}} />
|
||||
</li>
|
||||
<li>
|
||||
@@ -53,8 +53,8 @@ export default ({handleChange, handleApply, changed, ...props}) => (
|
||||
onChange={handleChange}
|
||||
defaultChecked={props.questionBoxEnable}
|
||||
info={{
|
||||
title: lang.t('configure.enableQuestionBox'),
|
||||
description: lang.t('configure.enableQuestionBoxDescription')
|
||||
title: lang.t('configure.enable_questionbox'),
|
||||
description: lang.t('configure.enable_questionbox_description')
|
||||
}} />
|
||||
<div className={`${props.questionBoxEnable ? null : styles.hidden}`} >
|
||||
<TextField
|
||||
@@ -62,7 +62,7 @@ export default ({handleChange, handleApply, changed, ...props}) => (
|
||||
onChange={handleChange}
|
||||
rows={3}
|
||||
value={props.questionBoxContent}
|
||||
label={lang.t('configure.includeQuestionHere')}
|
||||
label={lang.t('configure.include_question_here')}
|
||||
/>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@@ -57,7 +57,7 @@ export default class Embed extends React.Component {
|
||||
style={{float: 'right'}}
|
||||
onClick={viewAllComments}
|
||||
>
|
||||
{lang.t('showAllComments')}
|
||||
{lang.t('framework.show_all_comments')}
|
||||
</Button>
|
||||
}
|
||||
<TabContent show={activeTab === 'stream'}>
|
||||
|
||||
@@ -13,7 +13,7 @@ const IgnoredCommentTombstone = () => (
|
||||
padding: '1em',
|
||||
color: '#3E4F71',
|
||||
}}>
|
||||
{lang.t('commentIsIgnored')}
|
||||
{lang.t('framework.comment_is_ignored')}
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -31,13 +31,13 @@ class LoadMore extends React.Component {
|
||||
|
||||
replyCountFormat = (count) => {
|
||||
if (count === 1) {
|
||||
return lang.t('viewReply');
|
||||
return lang.t('framework.view_reply');
|
||||
}
|
||||
|
||||
if (this.initialState) {
|
||||
return lang.t('viewAllRepliesInitial', count);
|
||||
return lang.t('framework.view_all_repliesInitial', count);
|
||||
} else {
|
||||
return lang.t('viewAllReplies', count);
|
||||
return lang.t('framework.view_all_replies', count);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class LoadMore extends React.Component {
|
||||
this.initialState = false;
|
||||
loadMoreComments(assetId, comments, loadMore, parentId, replyCount);
|
||||
}}>
|
||||
{topLevel ? lang.t('viewMoreComments') : this.replyCountFormat(replyCount)}
|
||||
{topLevel ? lang.t('framework.view_more_comments') : this.replyCountFormat(replyCount)}
|
||||
</Button>
|
||||
</div>
|
||||
: null;
|
||||
|
||||
@@ -22,8 +22,8 @@ const NewCount = (props) => {
|
||||
props.commentCountCache && newComments > 0 ?
|
||||
<button onClick={onLoadMoreClick(props)}>
|
||||
{newComments === 1
|
||||
? lang.t('newCount', newComments, lang.t('comment'))
|
||||
: lang.t('newCount', newComments, lang.t('comments'))}
|
||||
? lang.t('framework.new_count', newComments, lang.t('comment'))
|
||||
: lang.t('framework.new_count', newComments, lang.t('comments'))}
|
||||
</button>
|
||||
: null
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ export const updateConfiguration = newConfig => (dispatch, getState) => {
|
||||
dispatch(updateAssetSettingsRequest());
|
||||
coralApi(`/assets/${assetId}/settings`, {method: 'PUT', body: newConfig})
|
||||
.then(() => {
|
||||
dispatch(addNotification('success', lang.t('successUpdateSettings')));
|
||||
dispatch(addNotification('success', lang.t('framework.success_update_settings')));
|
||||
dispatch(updateAssetSettingsSuccess(newConfig));
|
||||
})
|
||||
.catch(error => dispatch(updateAssetSettingsFailure(error)));
|
||||
@@ -29,7 +29,7 @@ export const updateOpenStream = closedBody => (dispatch, getState) => {
|
||||
dispatch(fetchAssetRequest());
|
||||
coralApi(`/assets/${assetId}/status`, {method: 'PUT', body: closedBody})
|
||||
.then(() => {
|
||||
dispatch(addNotification('success', lang.t('successUpdateSettings')));
|
||||
dispatch(addNotification('success', lang.t('framework.success_update_settings')));
|
||||
dispatch(fetchAssetSuccess(closedBody));
|
||||
})
|
||||
.catch(error => dispatch(fetchAssetFailure(error)));
|
||||
|
||||
@@ -119,11 +119,11 @@ export const fetchSignIn = (formData) => (dispatch) => {
|
||||
if (error.metadata) {
|
||||
|
||||
// the user might not have a valid email. prompt the user user re-request the confirmation email
|
||||
dispatch(signInFailure(lang.t('error.emailNotVerified', error.metadata)));
|
||||
dispatch(signInFailure(lang.t('error.email_not_verified', error.metadata)));
|
||||
} else {
|
||||
|
||||
// invalid credentials
|
||||
dispatch(signInFailure(lang.t('error.emailPasswordError')));
|
||||
dispatch(signInFailure(lang.t('error.email_password')));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -12,7 +12,7 @@ export const editName = (username) => (dispatch) => {
|
||||
return coralApi('/account/username', {method: 'PUT', body: {username}})
|
||||
.then(() => {
|
||||
dispatch(editUsernameSuccess());
|
||||
dispatch(addNotification('success', lang.t('successNameUpdate')));
|
||||
dispatch(addNotification('success', lang.t('framework.success_name_update')));
|
||||
})
|
||||
.catch(error => {
|
||||
dispatch(editUsernameFailure(lang.t(`error.${error.translation_key}`)));
|
||||
|
||||
@@ -4,7 +4,7 @@ import styles from './RestrictedContent.css';
|
||||
import I18n from 'coral-i18n/modules/i18n/i18n';
|
||||
const lang = new I18n();
|
||||
|
||||
export default ({children, restricted, message = lang.t('contentNotAvailable'), restrictedComp}) => {
|
||||
export default ({children, restricted, message = lang.t('framework.content_not_available'), restrictedComp}) => {
|
||||
if (restricted) {
|
||||
return restrictedComp ? restrictedComp : messageBox(message);
|
||||
} else {
|
||||
|
||||
@@ -31,7 +31,7 @@ class SuspendedAccount extends Component {
|
||||
this.setState({alert: lang.t(`error.${error.translation_key}`)});
|
||||
});
|
||||
} else {
|
||||
this.setState({alert: lang.t('editName.error')});
|
||||
this.setState({alert: lang.t('framework.edit_name.error')});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -43,8 +43,8 @@ class SuspendedAccount extends Component {
|
||||
return <div className={styles.message}>
|
||||
<span>{
|
||||
canEditName ?
|
||||
lang.t('editName.msg')
|
||||
: lang.t('bannedAccountMsg')
|
||||
lang.t('framework.edit_name.msg')
|
||||
: lang.t('framework.banned_account_msg')
|
||||
}</span>
|
||||
{
|
||||
canEditName ?
|
||||
@@ -56,20 +56,20 @@ class SuspendedAccount extends Component {
|
||||
htmlFor='username'
|
||||
className="screen-reader-text"
|
||||
aria-hidden={true}>
|
||||
{lang.t('editName.label')}
|
||||
{lang.t('framework.edit_name.label')}
|
||||
</label>
|
||||
<input
|
||||
type='text'
|
||||
className={styles.editNameInput}
|
||||
value={username}
|
||||
placeholder={lang.t('editName.label')}
|
||||
placeholder={lang.t('framework.edit_name.label')}
|
||||
id='username'
|
||||
onChange={(e) => this.setState({username: e.target.value})}
|
||||
rows={3}/><br/>
|
||||
<Button
|
||||
onClick={this.onSubmitClick}>
|
||||
{
|
||||
lang.t('editName.button')
|
||||
lang.t('framework.edit_name.button')
|
||||
}
|
||||
</Button>
|
||||
</div> : null
|
||||
|
||||
@@ -5,6 +5,6 @@ export default {
|
||||
email: lang.t('error.email'),
|
||||
password: lang.t('error.password'),
|
||||
username: lang.t('error.username'),
|
||||
confirmPassword: lang.t('error.confirmPassword'),
|
||||
organizationName: lang.t('error.organizationName'),
|
||||
confirmPassword: lang.t('error.confirm_password'),
|
||||
organizationName: lang.t('error.organization_name'),
|
||||
};
|
||||
|
||||
@@ -1,61 +1,290 @@
|
||||
framework:
|
||||
profile: Profile
|
||||
my_profile: My profile
|
||||
successUpdateSettings: The changes you have made have been applied to the comment stream on this article
|
||||
successNameUpdate: Your username has been updated
|
||||
contentNotAvailable: This content is not available
|
||||
bannedAccountMsg: Your account is currently suspended. This means that you cannot Like Report or write comments. Please contact us if you have any questions.
|
||||
editName:
|
||||
msg: Your account is currently suspended because your username has been deemed inappropriate. To restore your account please enter a new username. Please contact us if you have any questions.
|
||||
label: New Username
|
||||
button: Submit
|
||||
error: Usernames can contain letters numbers and _ only
|
||||
viewMoreComments: view more comments
|
||||
showAllComments: Show all comments
|
||||
viewReply: view reply
|
||||
viewAllRepliesInitial: view all 0 replies
|
||||
viewAllReplies: view 0 replies
|
||||
newCount: View 0 new 1
|
||||
comment: comment
|
||||
comments: comments
|
||||
commentIsIgnored: This comment is hidden because you ignored this user.
|
||||
my_comments: My Comments
|
||||
bandialog:
|
||||
are_you_sure: Are you sure you would like to ban {0}?
|
||||
ban_user: Ban User?
|
||||
cancel: Cancel
|
||||
note: 'Note: Banning this user will also place this comment in the Rejected queue.'
|
||||
yes_ban_user: Yes Ban User
|
||||
bio_offensive: This bio is offensive
|
||||
cancel: Cancel
|
||||
characters_remaining: characters remaining
|
||||
comment:
|
||||
anon: Anonymous
|
||||
ban_user: Ban User
|
||||
banned_user: Banned User
|
||||
comment: Post a comment
|
||||
flagged: flagged
|
||||
comment_offensive: This comment is offensive
|
||||
comment_plural: Comments
|
||||
comment_post_banned_word: Your comment contains one or more words that are not permitted, so it will not be published. If you think this message is incorrect, please contact our moderation team.
|
||||
comment_post_notif: Your comment has been posted.
|
||||
comment_post_notif_premod: Thank you for posting. Our moderation team will review your comment shortly.
|
||||
comment_is_best: This comment is one of the best
|
||||
community:
|
||||
account_creation_date: Account Creation Date
|
||||
active: Active
|
||||
admin: Administrator
|
||||
are_you_sure: Are you sure you would like to ban {0}?
|
||||
ban_user: Ban User?
|
||||
banned: Banned
|
||||
banned-user: Banned User
|
||||
cancel: Cancel
|
||||
flaggedaccounts: Flagged Usernames
|
||||
flags: Flags
|
||||
loading: Loading results
|
||||
moderator: Moderator
|
||||
newsroom_role: Newsroom Role
|
||||
no-flagged-accounts: The Account Flags queue is currently empty.
|
||||
no-results: No users found with that user name or email address. They're hiding!
|
||||
note: 'Note: Banning this user will not let them edit comment or remove anything.'
|
||||
other: Other
|
||||
people: People
|
||||
role: Select role...
|
||||
select-status: Select status...
|
||||
status: Status
|
||||
username_and_email: Username and Email
|
||||
yes_ban_user: Yes Ban User
|
||||
configure:
|
||||
apply: Apply
|
||||
banned_word_text: Comments which contain these words or phrases (not case-sensitive) will be automatically removed from the comment stream. Type a word and press Enter or Tab to add. Optionally paste a comma-separated list.
|
||||
banned_words_title: Banned words list
|
||||
close_after: Close comments after
|
||||
close_stream: Close Stream
|
||||
close_stream_configuration: This comment stream is currently closed. By opening this comment stream new comments may be submitted and displayed
|
||||
closed_comments_desc: Write a message to be displayed when when your comment stream is closed and no longer accepting comments.
|
||||
closed_comments_label: Write a message...
|
||||
closed_stream_settings: Closed Stream Message
|
||||
comment_count_error: Please enter a valid number.
|
||||
comment_count_header: Limit Comment Length
|
||||
comment_count_text_post: characters
|
||||
comment_count_text_pre: Comments will be limited to
|
||||
comment_settings: Settings
|
||||
community: Community
|
||||
configure: Configure
|
||||
copy_and_paste: Copy and paste code below into your CMS to embed your comment box in your articles
|
||||
custom_css_url: Custom CSS URL
|
||||
custom_css_url_desc: URL of a CSS stylesheet that will override default Embed Stream styles. Can be internal or external.
|
||||
dashboard: Dashboard
|
||||
days: Days
|
||||
description: As an admin you may customize the settings for the comment stream for this asset
|
||||
domain_list_text: Enter the domains you would like to permit for Talk e.g. your local staging and production environments (ex. localhost:3000 staging.domain.com domain.com).
|
||||
domain_list_title: Permitted Domains
|
||||
embed_comment_stream: Embed Stream
|
||||
enable_pre_moderation: Enable pre-moderation
|
||||
enable_pre_moderation_text: Moderators must approve any comment before it is published.
|
||||
enable_premod_links: Pre-Moderate Comments Containing Links
|
||||
enable-premod-links-text: Moderators must approve any comment containing a link
|
||||
before its published.
|
||||
enable_premod: Enable Premoderation
|
||||
enable_premod_description: Moderators must approve any comment before its published.
|
||||
enable_premod_links: Pre-Moderate Comments Containing Links
|
||||
enable_premod_links_description: Moderators must approve any comment containing a link before its published.
|
||||
enable_questionbox: Ask readers a question
|
||||
enable_questionbox_description: This question will appear at the top of this comment stream. Ask readers about a certain issue in the article or pose discussion questions etc.
|
||||
hours: Hours
|
||||
include_comment_stream: Include Comment Stream Description for Readers
|
||||
include_comment_stream-desc: Write a message to be added to the top of your comment stream. Pose a topic include community guidelines etc.
|
||||
include_text: Include your text here.
|
||||
include_question_here: Write your question here.
|
||||
moderate: Moderate
|
||||
moderation_settings: Moderation Settings
|
||||
open_stream: Open Stream
|
||||
open_stream_configuration: This comment stream is currently open. By closing this comment stream no new comments may be submitted and all previous comments will still be displayed.
|
||||
require_email_verification: Require Email Verification
|
||||
require_email_verification_text: New Users must verify their email before commenting
|
||||
save_changes: Save Changes
|
||||
shortcuts: Shortcuts
|
||||
sign_out: Sign Out
|
||||
stories: Stories
|
||||
stream_settings: Stream Settings
|
||||
suspect_words_title: Comments which contain these words or phrases (not case-sensitive) will be highlighted in the comment stream. Type a word and press Enter or Tab to add. Optionally paste a comma-separated list.
|
||||
suspect-words-title: Suspect words list
|
||||
tech_settings: Tech Settings
|
||||
title: Configure Comment Stream
|
||||
weeks: Weeks
|
||||
wordlist: Banned Words
|
||||
continue: Continue
|
||||
createdisplay:
|
||||
check_the_form: Invalid Form. Please check the fields
|
||||
continue: Continue with the same Facebook username
|
||||
error_create: Error when changing username
|
||||
fake_comment_body: This is an example comment. Readers can share their thoughts and opinions with newsrooms in the comments section.
|
||||
fake_comment_date: 1 minute ago
|
||||
if_you_dont_change_your_name: If you don't change your username at this step your Facebook display name will appear alongside of all your comments.
|
||||
required_field: Required field
|
||||
save: Save
|
||||
special_characters: Usernames can contain letters numbers and _ only
|
||||
username: Username
|
||||
write_your_username: Edit your username
|
||||
your_username: Your username appears on every comment you post.
|
||||
dashboard:
|
||||
auto_update: Data automatically updates every five minutes or when you Reload.
|
||||
comment_count: comments
|
||||
flags: Flags
|
||||
most_flags: Articles with the most flags
|
||||
next_update: '{0} minutes until next update.'
|
||||
no_activity: There haven't been any comments anywhere in the last five minutes.
|
||||
no_flags: There have been no flags in the last 5 minutes! Hooray!
|
||||
no_likes: There have been no likes in the last 5 minutes. All quiet.
|
||||
done: Done
|
||||
embedlink:
|
||||
copy: Copy to Clipboard
|
||||
error:
|
||||
emailNotVerified: Email address {0} not verified.
|
||||
email: Not a valid E-Mail
|
||||
password: Password must be at least 8 characters
|
||||
username: Usernames can contain letters numbers and _ only
|
||||
confirmPassword: Passwords don't match. Please check again
|
||||
organizationName: Organization name must only contain letters or numbers.
|
||||
emailPasswordError: Email and/or password combination incorrect.
|
||||
EMAIL_REQUIRED: An email address is required
|
||||
PASSWORD_REQUIRED: Must input a password
|
||||
edit_username_not_authorized: You do not have permission to update your username.
|
||||
email_in_use: Email address already in use
|
||||
email_required: An email address is required
|
||||
email_username_in_use: Email address or username already in use
|
||||
login_maximum_exceeded: You have made too many unsuccessful password attempts. Please
|
||||
wait.
|
||||
NOT_AUTHORIZED: Your username or password is not recognized by our system.
|
||||
NO_SPECIAL_CHARACTERS: Usernames can contain letters numbers and _ only
|
||||
PASSWORD_LENGTH: Password is too short
|
||||
EMAIL_IN_USE: Email address already in use
|
||||
EMAIL_USERNAME_IN_USE: Email address or username already in use
|
||||
PROFANITY_ERROR: Usernames must not contain profanity. Please contact the administrator if you believe this to be in error.
|
||||
USERNAME_IN_USE: Username already in use
|
||||
USERNAME_REQUIRED: Must input a username
|
||||
NO_SPECIAL_CHARACTERS: Usernames can contain letters numbers and _ only
|
||||
PROFANITY_ERROR: Usernames must not contain profanity. Please contact the administrator if you believe this to be in error.
|
||||
NOT_AUTHORIZED: Not authorized.
|
||||
EDIT_USERNAME_NOT_AUTHORIZED: You do not have permission to update your username.
|
||||
configure:
|
||||
apply: Apply
|
||||
title: Configure Comment Stream
|
||||
description: As an admin you may customize the settings for the comment stream for this asset
|
||||
enablePremod: Enable Premoderation
|
||||
enablePremodDescription: Moderators must approve any comment before its published.
|
||||
enablePremodLinks: Pre-Moderate Comments Containing Links
|
||||
enablePremodLinksDescription: Moderators must approve any comment containing a link before its published.
|
||||
enableQuestionBox: Ask readers a question
|
||||
enableQuestionBoxDescription: This question will appear at the top of this comment stream. Ask readers about a certain issue in the article or pose discussion questions etc.
|
||||
includeQuestionHere: Write your question here.
|
||||
confirm_password: Passwords don't match. Please check again
|
||||
email: Not a valid E-Mail
|
||||
email_not_verified: Email address {0} not verified.
|
||||
email_password: Email and/or password combination incorrect.
|
||||
organization_name: Organization name must only contain letters or numbers.
|
||||
password: Password must be at least 8 characters
|
||||
password_required: Must input a password
|
||||
username: Usernames can contain letters numbers and _ only
|
||||
flag_comment: Report comment
|
||||
flag_reason: Reason for reporting (Optional)
|
||||
flag_username: Report username
|
||||
framework:
|
||||
banned_account_msg: Your account is currently suspended. This means that you cannot Like Report or write comments. Please contact us if you have any questions.
|
||||
comment: comment
|
||||
comment_is_ignored: This comment is hidden because you ignored this user.
|
||||
comments: comments
|
||||
content_not_available: This content is not available
|
||||
edit_name:
|
||||
button: Submit
|
||||
error: Usernames can contain letters numbers and _ only
|
||||
label: New Username
|
||||
msg: Your account is currently suspended because your username has been deemed inappropriate. To restore your account please enter a new username. Please contact us if you have any questions.
|
||||
my_comments: My Comments
|
||||
my_profile: My profile
|
||||
new_count: View 0 new 1
|
||||
profile: Profile
|
||||
show_all_comments: Show all comments
|
||||
success_bio_update: Your biography has been updated
|
||||
success_name_update: Your username has been updated
|
||||
success_update_settings: The changes you have made have been applied to the comment stream on this article
|
||||
view_all_replies: view 0 replies
|
||||
view_all_replies_initial: view all 0 replies
|
||||
view_more_comments: view more comments
|
||||
view_reply: view reply
|
||||
fromSettingsPage: From the Profile Page you can see your comment history.
|
||||
like: Like
|
||||
marketing: This looks like an ad/marketing
|
||||
moderate_this_stream: Moderate this stream
|
||||
modqueue:
|
||||
account: account flags
|
||||
actions: Actions
|
||||
all: all
|
||||
approve: Approve comment
|
||||
approved: approved
|
||||
billion: B
|
||||
close: Close
|
||||
dont-like-username: Don't like username
|
||||
emptyqueue: No more comments to moderate! You're all caught up. Go have some ☕️
|
||||
flagged: flagged
|
||||
impersonating: Impersonating
|
||||
less-detail: Less detail
|
||||
likes: likes
|
||||
million: M
|
||||
mod-faster: Moderate faster with keyboard shortcuts
|
||||
more-detail: More detail
|
||||
navigation: Navigation
|
||||
nextcomment: Go to the next comment
|
||||
offensive: Offensive
|
||||
other: Other
|
||||
premod: pre-mod
|
||||
prevcomment: Go to the previous comment
|
||||
reject: Reject comment
|
||||
rejected: rejected
|
||||
shift-key: ⇧
|
||||
shortcuts: Shortcuts
|
||||
showshortcuts: Show Shortcuts
|
||||
singleview: Toggle single comment edit view
|
||||
spam/ads: Spam/Ads
|
||||
thismenu: Open this menu
|
||||
thousand: k
|
||||
try-these: Try these
|
||||
view-more-shortcuts: View more shortcuts
|
||||
myCommentHistory: My comment History
|
||||
name: Name
|
||||
no-agree-comment: I don't agree with this comment
|
||||
no-like-bio: I don't like this bio
|
||||
no-like-username: I don't like this username
|
||||
other: Other
|
||||
permalink:
|
||||
permalink: Link
|
||||
personal-info: This comment reveals personally identifiable information
|
||||
post: Post
|
||||
profile: Profile
|
||||
profileSettings: Profile Settings
|
||||
reply: Reply
|
||||
report: Report
|
||||
report-notif: Thank you for reporting this comment. Our moderation team has been notified
|
||||
and will review it shortly.
|
||||
report-notif-remove: Your report has been removed.
|
||||
reported: Reported
|
||||
setBest: Tag as Best
|
||||
settings:
|
||||
profile: Profile
|
||||
userNoComment: You've never left a comment. Join the conversation!
|
||||
allComments: All Comments
|
||||
profileSettings: Profile Settings
|
||||
myCommentHistory: My comment History
|
||||
signIn: Sign in
|
||||
toAccess: to access Profile
|
||||
fromSettingsPage: From the Profile Page you can see your comment history.
|
||||
allComments: All Comments
|
||||
fromSettingsPage: From the Profile Page you can see your comment history.
|
||||
myCommentHistory: My comment History
|
||||
profile: Profile
|
||||
profileSettings: Profile Settings
|
||||
signIn: Sign in
|
||||
toAccess: to access Profile
|
||||
userNoComment: You've never left a comment. Join the conversation!
|
||||
signIn: Sign in
|
||||
step-1-header: Report an issue
|
||||
step-2-header: Help us understand
|
||||
step-3-header: Thank you for your input
|
||||
streams:
|
||||
all: All
|
||||
article: Story
|
||||
closed: Closed
|
||||
empty_result: No assets match this search. Maybe try widening your search?
|
||||
filter-streams: Filter Streams
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
open: Open
|
||||
pubdate: Publication Date
|
||||
search: Search
|
||||
sort_by: Sort By
|
||||
status: Stream Status
|
||||
stream-status: Stream Status
|
||||
suspenduser:
|
||||
bio: bio
|
||||
description_0: Would you like to temporarily ban this user because of their {0}?
|
||||
Doing so will temporarily hide their comments until they rewrite their {0}.
|
||||
description_1: Suspending this user will temporarily disable their account and hide
|
||||
all of their comments on the site.
|
||||
email: Another member of the community recently flagged your username for review.
|
||||
Because of its content your user was rejected. This means you can no longer comment
|
||||
like or flag content until you rewrite your username. Please e-mail us if you
|
||||
have any questions or concerns.
|
||||
email_subject: Your account has been suspended
|
||||
no_cancel: No cancel
|
||||
send: Send
|
||||
title: Suspend a user
|
||||
title_0: We noticed you rejected a username
|
||||
title_1: Notify the user of their temporary suspension
|
||||
username: username
|
||||
write_message: Write a message
|
||||
yes_suspend: Yes suspend
|
||||
thank-you: We value your safety and feedback. A moderator will review your report.
|
||||
toAccess: ' to access Profile'
|
||||
unsetBest: Untag as Best
|
||||
user:
|
||||
bio_flags: flags for this bio
|
||||
user_bio: User Bio
|
||||
username_flags: flags for this username
|
||||
user-impersonating: This user is impersonating
|
||||
userNoComment: You've never left a comment. Join the conversation!
|
||||
username-offensive: This username is offensive
|
||||
|
||||
@@ -1,61 +1,292 @@
|
||||
framework:
|
||||
profile: Pérfil
|
||||
my_profile: Mi pérfil
|
||||
successUpdateSettings: La configuración de este articulo fue actualizada
|
||||
successBioUpdate: Tu biografia fue actualizada
|
||||
contentNotAvailable: El contenido no se encuentra disponible
|
||||
bannedAccountMsg: Tu cuenta se encuentra suspendida. Esto significa que no puedes gustar marcar o escribir commentarios.
|
||||
editName:
|
||||
msg: Your account is currently suspended because your username has been deemed inappropriate. To restore your account please enter a new username. Please contact us if you have any questions.
|
||||
label: New Username
|
||||
button: Submit
|
||||
error: Usernames can contain letters numbers and _ only
|
||||
viewMoreComments: Ver commentarios más
|
||||
viewReply: ver respuesta
|
||||
viewAllRepliesInitial: ver todas las 0 respuestas
|
||||
viewAllReplies: ver 0 respuestas
|
||||
newCount: Ver 0 1 más
|
||||
comment: commentario
|
||||
comments: commentarios
|
||||
commentIsIgnored: Este comentario está escondido porque has ignorado al usuario.
|
||||
showAllComments: Mostrar todos los comentarios
|
||||
my_comments: Mis Comentarios
|
||||
error:
|
||||
emailNotVerified: E-mail {0} no verificado.
|
||||
email: No es un e-mail válido
|
||||
password: La contraseña debe tener por lo menos 8 caracteres
|
||||
username: Los nombres pueden contener letras números y _
|
||||
organizationName: El nombre de la organización debe contener letras y/o números.
|
||||
confirmPassword: Las contraseñas no coinciden
|
||||
emailPasswordError: E-mail y/o contraseña incorrecta.
|
||||
EMAIL_REQUIRED: Se requiere un e-mail
|
||||
PASSWORD_REQUIRED: Debe ingresar una contraseña
|
||||
PASSWORD_LENGTH: La contraseña es muy corta
|
||||
EMAIL_IN_USE: El e-mail se encuentra en uso
|
||||
EMAIL_USERNAME_IN_USE: E-mail o Nombre en uso.
|
||||
USERNAME_IN_USE: Nombre en uso.
|
||||
USERNAME_REQUIRED: Debe ingresar un nombre
|
||||
NO_SPECIAL_CHARACTERS: Los nombres pueden contener letras números y _
|
||||
PROFANITY_ERROR: Los nombres no pueden contener blasfemias. Por favor contacte al o la administradora si cree que esto es un error
|
||||
NOT_AUTHORIZED: Acción no autorizada.
|
||||
EDIT_USERNAME_NOT_AUTHORIZED: No tiene permiso para editar el nombre de usuario.
|
||||
bandialog:
|
||||
are_you_sure: '¿Estás segura que quieres suspender a {0}?'
|
||||
ban_user: ¿Quieres suspender el Usuario?
|
||||
cancel: Cancelar
|
||||
note: 'Nota: Suspender a este usuario también va a colocar este comentario en la cola de Rechazados.'
|
||||
yes_ban_user: Si, Suspender el usuario
|
||||
bio_offensive: Esta biografia es ofensiva
|
||||
cancel: Cancelar
|
||||
characters_remaining: 'carácteres restantes'
|
||||
comment:
|
||||
anon: Anónimo
|
||||
ban_user: Suspender Usuario
|
||||
ban_user: Usuario Suspendido
|
||||
comment: Publicar un comentario
|
||||
flagged: reportado
|
||||
comment_offensive: Este comentario es ofensivo
|
||||
comment_plural: Comentarios
|
||||
comment_post_banned_word: Tu comentario contiene una o más palabras que no estan permitidas en nuestro espacio, por lo que no será publicado. Si crees que es un error, por favor contacta a nuestro equipo de moderación.
|
||||
comment_post_notif: Tu comentario ha sido publicado.
|
||||
comment_post_notif_premod: Gracias por el comentario. Nuestro equipo de moderación va a revisarlo muy pronto.
|
||||
comment_is_best: Este comentario es uno de los mejores
|
||||
community:
|
||||
account_creation_date: Fecha de creación de la cuenta
|
||||
active: Activa
|
||||
admin: Administratora
|
||||
are_you_sure: '¿Estas segura que quieres suspender a {0}?'
|
||||
ban_user: ¿Quieres suspender al Usuario?
|
||||
banned: Suspendido
|
||||
banned-user: Usuarix Suspendido
|
||||
cancel: Cancelar
|
||||
flaggedaccounts: Nombres de Usuarix Reportados
|
||||
flags: Reportes
|
||||
loading: Cargando resultados
|
||||
moderator: Moderatora
|
||||
newsroom_role: Rol en la redacción
|
||||
no-flagged-accounts: No hay ninguna cuenta reportada en este momento.
|
||||
no-results: No se encontraron usuarixs con ese nombre o correo.
|
||||
note: 'Nota: Suspender a este usuario no le va a permitir (al usuario) borrar ni editar ni comentar.'
|
||||
other: Otro
|
||||
people: Gente
|
||||
role: Seleccionar rol...
|
||||
select-status: Seleccionar estado...
|
||||
status: Estado
|
||||
username_and_email: Usuario y E-mail
|
||||
yes_ban_user: Si, Suspendan el usuario
|
||||
configure:
|
||||
apply: Aplicar
|
||||
banned_word_text: Comentarios que contengan estas palabras o frases, no separadas por comas y en mayusculas o minusuculas, serán automaticamente marcadas para separar los comentarios publicados.
|
||||
banned_words_title: Lista de palabras prohibidas
|
||||
close_after: Cerrar comentarios luego de
|
||||
close_stream: Cerrar comentarios
|
||||
close_stream_configuration: Este hilo de comentario está en este momento cerrado. Al abrirlo, nuevos comentarios serán publicados y mostrados.
|
||||
closed_comments_desc: Escribe un mensaje que será mostrado cuando los comentarios estén cerrados y no se acepten más comentarios.
|
||||
closed_comments_label: Escribe un mensaje...
|
||||
closed_stream_settings: Mensaje que se meustra cuando los comentarios están cerrados en el articulo
|
||||
comment_count_error: Por favor escribir un número válido
|
||||
comment_count_header: Limitar el largo del comentario
|
||||
comment_count_text_post: cáracteres
|
||||
comment_count_text_pre: Los comentarios serán limitados a
|
||||
comment_settings: Configuración
|
||||
community: Comunidad
|
||||
configure: Configurar
|
||||
copy_and_paste: Copiar y pegar el código de más abajo en tu CMS para colocar la caja de comentarios en tus articulos
|
||||
custom_css_url: URL CSS a medida
|
||||
custom_css_url_desc: URL de una hoja de estilo que va a sobrescribir los estilos por defecto del hilo de comentarios. Puede ser interna o externa.
|
||||
dashboard: Panel
|
||||
days: Días
|
||||
description: Como Administrador/a puedes modificar la configuración de los comentarios en este artículo
|
||||
domain_list_text: Agrega dominios permitidos a Talk, por ejemplo tu localhost, staging y ambientes de producción (ej. localhost:3000, staging.domain.com, domain.com).
|
||||
domain_list_title: Dominios Permitidos
|
||||
embed_comment_stream: Colocar Hilo de Comentarios
|
||||
enable_pre_moderation: Enable pre-moderation
|
||||
enable_pre_moderation_text: Moderators must approve any comment before it is published.
|
||||
enable-premod-links: Pre-Moderar Comentarios que contienen Enlaces
|
||||
enable-premod-links-text: Moderators must approve any comment containing a link
|
||||
before its published.
|
||||
enable_premod: Activar Pre Moderación
|
||||
enable_premod_description: Los y las Moderadoras deben aprobar cualquier comentario
|
||||
antes de su publicación
|
||||
enable_premod_links_description: Los y las moderadoras deben aprobar cualquier comentario que contengan enlaces antes de su publicación.
|
||||
enable_questionbox: Hacer una pregunta a los y las lectoras.
|
||||
enable_questionbox_description: Esta pregunta aparecera en la parte de arriba del hilo de comentarios.
|
||||
hours: Horas
|
||||
include_comment_stream: Incluir Descripción de Hilo de Comentarios para Lectorxs
|
||||
include_comment_stream_desc: Escribir un mensaje para ser incluido al principio del hilo de comentarios. Un tema podria ser incluir la guia de comunidad, etc.
|
||||
include_text: Agregar tu texto aquí.
|
||||
include_question_here: Escribir la pregunta aquí.
|
||||
moderate: Moderate
|
||||
moderation_settings: Configuración de la Moderación
|
||||
open_stream: Abrir Hilo de Comentarios
|
||||
open_stream_configuration: Este hilo de comentarios está abierto. Al cerrarlo no se podran publicar nuevos comentarios pero todos los comentarios anteriores aún serán mostrados.
|
||||
require_email_verification: Necesita confirmación de e-mail
|
||||
require_email_verification_text: Nuevos usuarios deben verificar sus e-mails antes de comentar
|
||||
save_changes: Guardar Cambios
|
||||
shortcuts: Atajos
|
||||
sign_out: Desconectar
|
||||
stories: Artículos
|
||||
stream_settings: Configuración de Comentarios
|
||||
suspect_word_text: Comentarios que contengan estas palabras o frases, considerando mayusculas y minusculas, serán automaticamente destacadas en los comentarios publicados. Escribir una palabra y apretar Enter o Tabulador para agergarla. Opcionalmente pegar una lista separada por coma.
|
||||
suspect_words_title: Lista de palabras sospechosas
|
||||
tech_settings: Configuración Técnica
|
||||
title: Configurar los comentarios
|
||||
description: Como Administrador/a puedes modificar las opciones de los comentarios en este artículo
|
||||
enablePremod: Activar Pre Moderación
|
||||
enablePremodDescription: Los y las Moderadoras deben aprobar cualquier comentario antes de su publicación
|
||||
enablePremodLinks: Pre-Moderar Comentarios que contienen Enlaces
|
||||
enablePremodLinksDescription: Los y las moderadoras deben aprobar cualquier comentario que contengan enlaces antes de su publicación.
|
||||
enableQuestionBox: Hacer una pregunta a los y las lectoras.
|
||||
enableQuestionBoxDescription: Esta pregunta aparecera en la parte de arriba del hilo de comentarios.
|
||||
includeQuestionHere: Escribir la pregunta aquí.
|
||||
weeks: Semanas
|
||||
wordlist: Palabras Suspendidas
|
||||
continue: Continuar
|
||||
createdisplay:
|
||||
check_the_form: Formulario Inválido. Por favor verifica los campos
|
||||
continue: Continuar con nombre de Facebook
|
||||
error_create: Hubo un error al cambiar el nombre de usuario
|
||||
fake_comment_body: Este es un comentario de ejemplo. Las lectoras pueden compartir sus ideas y opiniones con los periodistas en la sección de comentarios.
|
||||
fake_comment_date: hace un minuto
|
||||
if_you_dont_change_your_name: Si no modificas tu nombre de usuario en este paso tu nombre de Facebook aparecera al lado de cada comentario que publiques.
|
||||
required_field: Campo necesario
|
||||
save: Guardar
|
||||
special_characters: Sólo pueden contener letras números y _
|
||||
username: Nombre
|
||||
write_your_username: Edita tu nombre
|
||||
your_username: Tu nombre aparece en cada comentario que publiques.
|
||||
dashboard:
|
||||
auto_update: Data automatically updates every five minutes or when you Reload.
|
||||
comment_count: comments
|
||||
flags: Flags
|
||||
most_flags: Articles with the most flags
|
||||
nex_update: '{0} minutes until next update.'
|
||||
no_activity: There haven't been any comments anywhere in the last five minutes.
|
||||
no_flags: There have been no flags in the last 5 minutes! Hooray!
|
||||
no_likes: There have been no likes in the last 5 minutes. All quiet.
|
||||
done: hecho
|
||||
embedlink:
|
||||
copy: Copy to Clipboard
|
||||
error:
|
||||
edit_username_not_authorized: No tiene permiso para editar el nombre de usuario.
|
||||
email_in_use: El e-mail se encuentra en uso
|
||||
email_required: Se requiere un e-mail
|
||||
email_username_in_use: E-mail o Nombre en uso.
|
||||
login_maximum_exceeded: Ha realizado demasiados intentos fallidos de colocar la contraseña. Por favor espere.
|
||||
NOT_AUTHORIZED: Acción no autorizada.
|
||||
NO_SPECIAL_CHARACTERS: Los nombres pueden contener letras números y _
|
||||
PASSWORD_LENGTH: La contraseña es muy corta
|
||||
PASSWORD_REQUIRED: Debe ingresar una contraseña
|
||||
PROFANITY_ERROR: Los nombres no pueden contener blasfemias. Por favor contacte al o la administradora si cree que esto es un error
|
||||
USERNAME_IN_USE: Nombre en uso.
|
||||
USERNAME_REQUIRED: Debe ingresar un nombre
|
||||
confirm_password: Las contraseñas no coinciden
|
||||
email: No es un e-mail válido
|
||||
email_not_verified: E-mail {0} no verificado.
|
||||
email_password: E-mail y/o contraseña incorrecta.
|
||||
organization_name: El nombre de la organización debe contener letras y/o números.
|
||||
password: La contraseña debe tener por lo menos 8 caracteres
|
||||
password_required: Debe ingresas la contraseña
|
||||
username: Los nombres pueden contener letras números y _
|
||||
flag_comment: Reportar el comentario
|
||||
flag_reason: Razón por la que hacer este reporte (Opcional)
|
||||
flag_username: Reportar el nombre de usuario
|
||||
framework:
|
||||
banned_account_msg: Tu cuenta se encuentra suspendida. Esto significa que no puedes
|
||||
gustar marcar o escribir commentarios.
|
||||
comment: commentario
|
||||
comment_is_ignored: Este comentario está escondido porque has ignorado al usuario.
|
||||
comments: commentarios
|
||||
content_not_available: El contenido no se encuentra disponible
|
||||
edit_name:
|
||||
button: Enviar
|
||||
error: Nombres de usuarios pueden sólamente incluir letras, números y _
|
||||
label: Nuevo Nombre
|
||||
msg: Tu cuenta está suspendida porque tu nombre de usuario ha sido considerado no apropiado para el espacio. Para recuperar la cuenta, por favor ingresar un nuevo nombre de usuario. Contactactanos si tienes alguna pregunta.
|
||||
my_comments: Mis Comentarios
|
||||
my_profile: Mi pérfil
|
||||
new_count: Ver 0 1 más
|
||||
profile: Pérfil
|
||||
show_all_comments: Mostrar todos los comentarios
|
||||
success_bio_update: Tu biografia fue actualizada
|
||||
success_name_update: Tu nombre de usuario ha sido actualizado
|
||||
success_update_settings: La configuración de este articulo fue actualizada
|
||||
view_all_replies: ver 0 respuestas
|
||||
view_all_replies_initial: ver todas las 0 respuestas
|
||||
view_more_comments: Ver commentarios más
|
||||
view_reply: ver respuesta
|
||||
fromSettingsPage: Desde la página de configuración puedes ver tu historia de comentarios.
|
||||
like: Me gusta
|
||||
marketing: Esto parece una propaganda
|
||||
moderate_this_stream: Modera este hilo de comentarios
|
||||
modqueue:
|
||||
account: account flags
|
||||
actions: Actions
|
||||
all: all
|
||||
approve: Approve comment
|
||||
approved: approved
|
||||
billion: B
|
||||
close: Close
|
||||
dont-like-username: Don't like username
|
||||
emptyqueue: No more comments to moderate! You're all caught up. Go have some ☕️
|
||||
flagged: flagged
|
||||
impersonating: Impersonating
|
||||
less-detail: Less detail
|
||||
likes: likes
|
||||
million: M
|
||||
mod-faster: Moderate faster with keyboard shortcuts
|
||||
more-detail: More detail
|
||||
navigation: Navigation
|
||||
nextcomment: Go to the next comment
|
||||
offensive: Offensive
|
||||
other: Other
|
||||
premod: pre-mod
|
||||
prevcomment: Go to the previous comment
|
||||
reject: Reject comment
|
||||
rejected: rejected
|
||||
shift-key: ⇧
|
||||
shortcuts: Shortcuts
|
||||
showshortcuts: Show Shortcuts
|
||||
singleview: Toggle single comment edit view
|
||||
spam/ads: Spam/Ads
|
||||
thismenu: Open this menu
|
||||
thousand: k
|
||||
try-these: Try these
|
||||
view-more-shortcuts: View more shortcuts
|
||||
myCommentHistory: Mi historial de comentarios
|
||||
name: Nombre
|
||||
no-agree-comment: No estoy de acuerdo con este comentario
|
||||
no-like-bio: No me gusta esta biografia
|
||||
no-like-username: No me gusta este nombre de usuario
|
||||
other: Otro
|
||||
permalink:
|
||||
permalink: Enlace
|
||||
personal-info: Este comentario muestra información personal
|
||||
post: Publicar
|
||||
profile: Perfil
|
||||
profileSettings: Configuración del perfil
|
||||
reply: Responder
|
||||
report: Reportar
|
||||
report-notif: Gracias por reportar este comentario. Nuestro equipo de moderación ha
|
||||
sido notificado y muy pronto lo va a revisar.
|
||||
report-notif-remove: Tu reporte ha sido eliminada.
|
||||
reported: Reportado
|
||||
setBest: Etiquetar como el mejor
|
||||
settings:
|
||||
profile: Perfil
|
||||
userNoComment: No has dejado aún ningún comentario. ¡Únete a la conversación!
|
||||
allComments: Todos los comentarios
|
||||
profileSettings: Configuración del perfil
|
||||
fromSettingsPage: Desde la página de configuración puedes ver tu historia de comentarios.
|
||||
myCommentHistory: Mi historial de comentarios
|
||||
profile: Perfil
|
||||
profileSettings: Configuración del perfil
|
||||
signIn: Entrar
|
||||
toAccess: para acceder a al perfil
|
||||
fromSettingsPage: Desde la página de configuración puedes ver tu historia de comentarios.
|
||||
userNoComment: No has dejado aún ningún comentario. ¡Únete a la conversación!
|
||||
signIn: Entrar
|
||||
step-1-header: Reportar un problema
|
||||
step-2-header: Ayudanos a comprender
|
||||
step-3-header: Gracias por tu participación
|
||||
streams:
|
||||
all: All
|
||||
article: Story
|
||||
closed: Closed
|
||||
empty_result: No assets match this search. Maybe try widening your search?
|
||||
filter-streams: Filter Streams
|
||||
newest: Newest
|
||||
oldest: Oldest
|
||||
open: Open
|
||||
pubdate: Publication Date
|
||||
search: Search
|
||||
sort_by: Sort By
|
||||
status: Stream Status
|
||||
stream-status: Stream Status
|
||||
suspenduser:
|
||||
bio: bio
|
||||
description_0: Would you like to temporarily ban this user because of their {0}?
|
||||
Doing so will temporarily hide their comments until they rewrite their {0}.
|
||||
description_1: Suspending this user will temporarily disable their account and hide
|
||||
all of their comments on the site.
|
||||
email: Another member of the community recently flagged your username for review.
|
||||
Because of its content your user was rejected. This means you can no longer comment
|
||||
like or flag content until you rewrite your username. Please e-mail us if you
|
||||
have any questions or concerns.
|
||||
email_subject: Your account has been suspended
|
||||
no_cancel: No cancel
|
||||
send: Send
|
||||
title: Suspend a user
|
||||
title_0: We noticed you rejected a username
|
||||
title_1: Notify the user of their temporary suspension
|
||||
username: username
|
||||
write_message: Write a message
|
||||
yes_suspend: Yes suspend
|
||||
thank-you: Valoramos tanto tu seguridad en este espacio como tus comentarios. Un o
|
||||
una moderadora van a leer tu reporte.
|
||||
toAccess: para acceder a al perfil
|
||||
unsetBest: Desetiquetar como el mejor
|
||||
user:
|
||||
bio_flags: flags for this bio
|
||||
user_bio: User Bio
|
||||
username_flags: flags for this username
|
||||
user-impersonating: Este usuario suplanta a alguien
|
||||
userNoComment: No has dejado aún ningún comentario. ¡Únete a la conversación!
|
||||
username-offensive: Este nombre de usuario es ofensivo
|
||||
|
||||
@@ -20,7 +20,7 @@ const canModifyBestTag = ({roles = []} = {}) => roles && ['ADMIN', 'MODERATOR'].
|
||||
// Put this on a comment to show that it is best
|
||||
|
||||
export const BestIndicator = ({children = <Icon name='star'/>}) => (
|
||||
<span aria-label={lang.t('commentIsBest')}>
|
||||
<span aria-label={lang.t('comment_is_best')}>
|
||||
{ children }
|
||||
</span>
|
||||
);
|
||||
|
||||
@@ -5,7 +5,7 @@ const name = 'coral-plugin-comment-count';
|
||||
|
||||
const CommentCount = ({count}) => {
|
||||
return <div className={`${name}-text`}>
|
||||
{`${count} ${count === 1 ? lang.t('comment') : lang.t('comment-plural')}`}
|
||||
{`${count} ${count === 1 ? lang.t('comment.comment') : lang.t('comment_plural')}`}
|
||||
</div>;
|
||||
};
|
||||
|
||||
|
||||
@@ -54,10 +54,10 @@ class CommentBox extends React.Component {
|
||||
this.state.hooks.postSubmit.forEach(hook => hook(data));
|
||||
|
||||
if (postedComment.status === 'REJECTED') {
|
||||
addNotification('error', lang.t('comment-post-banned-word'));
|
||||
addNotification('error', lang.t('comment_post_banned_word'));
|
||||
!isReply && setCommentCountCache(commentCountCache);
|
||||
} else if (postedComment.status === 'PREMOD') {
|
||||
addNotification('success', lang.t('comment-post-notif-premod'));
|
||||
addNotification('success', lang.t('comment_post_notif_premod'));
|
||||
!isReply && setCommentCountCache(commentCountCache);
|
||||
}
|
||||
|
||||
@@ -141,20 +141,20 @@ class CommentBox extends React.Component {
|
||||
htmlFor={ isReply ? 'replyText' : 'commentText'}
|
||||
className="screen-reader-text"
|
||||
aria-hidden={true}>
|
||||
{isReply ? lang.t('reply') : lang.t('comment')}
|
||||
{isReply ? lang.t('reply') : lang.t('comment.comment')}
|
||||
</label>
|
||||
<textarea
|
||||
className={`${name}-textarea`}
|
||||
style={styles && styles.textarea}
|
||||
value={this.state.body}
|
||||
placeholder={lang.t('comment')}
|
||||
placeholder={lang.t('comment.comment')}
|
||||
id={isReply ? 'replyText' : 'commentText'}
|
||||
onChange={this.handleChange}
|
||||
rows={3}/>
|
||||
<Slot fill='commentInputArea' />
|
||||
</div>
|
||||
<div className={`${name}-char-count ${length > maxCharCount ? `${name}-char-max` : ''}`}>
|
||||
{maxCharCount && `${maxCharCount - length} ${lang.t('characters-remaining')}`}
|
||||
{maxCharCount && `${maxCharCount - length} ${lang.t('characters_remaining')}`}
|
||||
</div>
|
||||
<div className={`${name}-button-container`}>
|
||||
<Slot
|
||||
|
||||
@@ -182,7 +182,7 @@ class FlagButton extends Component {
|
||||
{
|
||||
this.state.reason && <div>
|
||||
<label htmlFor={'message'} className={`${name}-popup-radio-label`}>
|
||||
{lang.t('flag-reason')}
|
||||
{lang.t('flag_reason')}
|
||||
</label><br/>
|
||||
<textarea
|
||||
className={`${name}-reason-text`}
|
||||
|
||||
@@ -11,8 +11,8 @@ const getPopupMenu = [
|
||||
return {
|
||||
header: lang.t('step-1-header'),
|
||||
options: [
|
||||
{val: 'COMMENTS', text: lang.t('flag-comment')},
|
||||
{val: 'USERS', text: lang.t('flag-username')}
|
||||
{val: 'COMMENTS', text: lang.t('flag_comment')},
|
||||
{val: 'USERS', text: lang.t('flag_username')}
|
||||
],
|
||||
button: lang.t('continue'),
|
||||
sets: 'itemType'
|
||||
@@ -21,7 +21,7 @@ const getPopupMenu = [
|
||||
(itemType) => {
|
||||
const options = itemType === 'COMMENTS' ?
|
||||
[
|
||||
{val: 'This comment is offensive', text: lang.t('comment-offensive')},
|
||||
{val: 'This comment is offensive', text: lang.t('comment_offensive')},
|
||||
{val: 'This looks like an ad/marketing', text: lang.t('marketing')},
|
||||
{val: 'I don\'t agree with this comment', text: lang.t('no-agree-comment')},
|
||||
{val: 'Other', text: lang.t('other')}
|
||||
|
||||
@@ -8,7 +8,7 @@ const lang = new I18n();
|
||||
const ModerationLink = props => props.isAdmin ? (
|
||||
<div className={styles.moderationLink}>
|
||||
<a href={`/admin/moderate/${props.assetId}`} target="_blank">
|
||||
{lang.t('MODERATE_THIS_STREAM')}
|
||||
{lang.t('moderate_this_stream')}
|
||||
</a>
|
||||
</div>
|
||||
) : null;
|
||||
|
||||
@@ -20,21 +20,21 @@ const CreateUsernameDialog = ({open, handleClose, formData, handleSubmitUsername
|
||||
<div>
|
||||
<div className={styles.header}>
|
||||
<h1>
|
||||
{lang.t('createdisplay.writeyourusername')}
|
||||
{lang.t('createdisplay.write_your_username')}
|
||||
</h1>
|
||||
</div>
|
||||
<div>
|
||||
<p className={styles.yourusername}>{lang.t('createdisplay.yourusername')}</p>
|
||||
<p className={styles.yourusername}>{lang.t('createdisplay.your_username')}</p>
|
||||
<FakeComment
|
||||
className={styles.fakeComment}
|
||||
username={formData.username}
|
||||
created_at={Date.now()}
|
||||
body={lang.t('createdisplay.fakecommentbody')}
|
||||
body={lang.t('createdisplay.fake_comment_body')}
|
||||
/>
|
||||
<p className={styles.ifyoudont}>{lang.t('createdisplay.ifyoudontchangeyourname')}</p>
|
||||
<p className={styles.ifyoudont}>{lang.t('createdisplay.if_you_dont_change_your_name')}</p>
|
||||
{ props.auth.error && <Alert>{props.auth.error}</Alert> }
|
||||
<form id="saveUsername" onSubmit={handleSubmitUsername}>
|
||||
{ props.errors.username && <span className={styles.hint}> {lang.t('createdisplay.specialCharacters')} </span> }
|
||||
{ props.errors.username && <span className={styles.hint}> {lang.t('createdisplay.special_characters')} </span> }
|
||||
<div className={styles.saveusername}>
|
||||
<TextField
|
||||
id="username"
|
||||
|
||||
@@ -63,7 +63,7 @@ class ChangeUsernameContainer extends Component {
|
||||
const {addError} = this;
|
||||
|
||||
if (!value.length) {
|
||||
addError(name, lang.t('createdisplay.requiredField'));
|
||||
addError(name, lang.t('createdisplay.required_field'));
|
||||
} else if (!validate[name](value)) {
|
||||
addError(name, errorMsj[name]);
|
||||
} else {
|
||||
@@ -91,7 +91,7 @@ class ChangeUsernameContainer extends Component {
|
||||
this.props.createUsername(this.props.user.id, this.state.formData);
|
||||
validForm();
|
||||
} else {
|
||||
invalidForm(lang.t('createdisplay.checkTheForm'));
|
||||
invalidForm(lang.t('createdisplay.check_the_form'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ const ErrPasswordTooShort = new APIError('password must be at least 8 characters
|
||||
});
|
||||
|
||||
const ErrMissingEmail = new APIError('email is required', {
|
||||
translation_key: 'EMAIL_REQUIRED',
|
||||
translation_key: 'email_required',
|
||||
status: 400
|
||||
});
|
||||
|
||||
@@ -50,7 +50,7 @@ const ErrMissingPassword = new APIError('password is required', {
|
||||
});
|
||||
|
||||
const ErrEmailTaken = new APIError('Email address already in use', {
|
||||
translation_key: 'EMAIL_IN_USE',
|
||||
translation_key: 'email_in_use',
|
||||
status: 400
|
||||
});
|
||||
|
||||
@@ -144,12 +144,12 @@ const ErrInstallLock = new APIError('install lock active', {
|
||||
|
||||
// ErrPermissionUpdateUsername is returned when the user does not have permission to update their username.
|
||||
const ErrPermissionUpdateUsername = new APIError('You do not have permission to update your username.', {
|
||||
translation_key: 'EDIT_USERNAME_NOT_AUTHORIZED',
|
||||
translation_key: 'edit_username_not_authorized',
|
||||
status: 500
|
||||
});
|
||||
|
||||
const ErrLoginAttemptMaximumExceeded = new APIError('You have made too many incorrect password attempts.', {
|
||||
translation_key: 'LOGIN_MAXIMUM_EXCEEDED',
|
||||
translation_key: 'login_maximum_exceeded',
|
||||
status: 429
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user