Merge branch 'develop' into 'translate_public_header'
# Conflicts: # app/soapbox/locales/ar.json # app/soapbox/locales/ast.json # app/soapbox/locales/bg.json # app/soapbox/locales/bn.json # app/soapbox/locales/br.json # app/soapbox/locales/ca.json # app/soapbox/locales/co.json # app/soapbox/locales/cs.json # app/soapbox/locales/cy.json # app/soapbox/locales/da.json # app/soapbox/locales/de.json # app/soapbox/locales/el.json # app/soapbox/locales/en.json # app/soapbox/locales/eo.json # app/soapbox/locales/es-AR.json # app/soapbox/locales/es.json # app/soapbox/locales/et.json # app/soapbox/locales/eu.json # app/soapbox/locales/fa.json # app/soapbox/locales/fi.json # app/soapbox/locales/fr.json # app/soapbox/locales/ga.json # app/soapbox/locales/gl.json # app/soapbox/locales/he.json # app/soapbox/locales/hi.json # app/soapbox/locales/hr.json # app/soapbox/locales/hu.json # app/soapbox/locales/hy.json # app/soapbox/locales/id.json # app/soapbox/locales/io.json # app/soapbox/locales/it.json # app/soapbox/locales/ja.json # app/soapbox/locales/ka.json # app/soapbox/locales/kk.json # app/soapbox/locales/ko.json # app/soapbox/locales/lt.json # app/soapbox/locales/lv.json # app/soapbox/locales/mk.json # app/soapbox/locales/ms.json # app/soapbox/locales/nl.json # app/soapbox/locales/nn.json # app/soapbox/locales/no.json # app/soapbox/locales/oc.json # app/soapbox/locales/pl.json # app/soapbox/locales/pt-BR.json # app/soapbox/locales/pt.json # app/soapbox/locales/ro.json # app/soapbox/locales/ru.json # app/soapbox/locales/sk.json # app/soapbox/locales/sl.json # app/soapbox/locales/sq.json # app/soapbox/locales/sr-Latn.json # app/soapbox/locales/sr.json # app/soapbox/locales/sv.json # app/soapbox/locales/ta.json # app/soapbox/locales/te.json # app/soapbox/locales/th.json # app/soapbox/locales/tr.json # app/soapbox/locales/uk.json # app/soapbox/locales/zh-CN.json # app/soapbox/locales/zh-HK.json # app/soapbox/locales/zh-TW.json
This commit is contained in:
commit
ea75d9d18f
|
@ -14,6 +14,7 @@ stages:
|
|||
- lint
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
|
||||
before_script:
|
||||
- yarn
|
||||
|
@ -39,6 +40,16 @@ build-production:
|
|||
paths:
|
||||
- static
|
||||
|
||||
docs-deploy:
|
||||
stage: deploy
|
||||
image: alpine:latest
|
||||
before_script:
|
||||
- apk add curl
|
||||
script:
|
||||
- curl -X POST -F"token=$CI_JOB_TOKEN" -F'ref=master' https://gitlab.com/api/v4/projects/15685485/trigger/pipeline
|
||||
only:
|
||||
- develop
|
||||
|
||||
# Supposed to fail when translations are outdated, instead always passes
|
||||
#
|
||||
# i18n:
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"configs": [
|
||||
{
|
||||
"group": ":pleroma",
|
||||
"key": ":frontend_configurations",
|
||||
"value": [
|
||||
{
|
||||
"tuple": [
|
||||
":soapbox_fe",
|
||||
{
|
||||
"logo": "blob:http://localhost:3036/0cdfa863-6889-4199-b870-4942cedd364f",
|
||||
"banner": "blob:http://localhost:3036/a835afed-6078-45bd-92b4-7ffd858c3eca",
|
||||
"brandColor": "#254f92",
|
||||
"customCss": [
|
||||
"/instance/static/custom.css"
|
||||
],
|
||||
"promoPanel": {
|
||||
"items": [
|
||||
{
|
||||
"icon": "globe",
|
||||
"text": "blog",
|
||||
"url": "https://teci.world/blog"
|
||||
},
|
||||
{
|
||||
"icon": "globe",
|
||||
"text": "book",
|
||||
"url": "https://teci.world/book"
|
||||
}
|
||||
]
|
||||
},
|
||||
"extensions": {
|
||||
"patron": false
|
||||
},
|
||||
"defaultSettings": {
|
||||
"autoPlayGif": false
|
||||
},
|
||||
"navlinks": {
|
||||
"homeFooter": [
|
||||
{
|
||||
"title": "about",
|
||||
"url": "/instance/about/index.html"
|
||||
},
|
||||
{
|
||||
"title": "tos",
|
||||
"url": "/instance/about/tos.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -261,6 +261,7 @@
|
|||
"morefollows.following_label": "…and {count} more {count, plural, one {follow} other {follows}} on remote sites.",
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.admin_settings": "Admin settings",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"navigation_bar.blocks": "Blocked users",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
"navigation_bar.compose": "Compose new post",
|
||||
|
@ -738,6 +739,7 @@
|
|||
"morefollows.following_label": "…and {count} more {count, plural, one {follow} other {follows}} on remote sites.",
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.admin_settings": "Admin settings",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"navigation_bar.blocks": "Blocked users",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
"navigation_bar.compose": "Compose new post",
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"logo": "blob:http://localhost:3036/0cdfa863-6889-4199-b870-4942cedd364f",
|
||||
"banner": "blob:http://localhost:3036/a835afed-6078-45bd-92b4-7ffd858c3eca",
|
||||
"brandColor": "#254f92",
|
||||
"customCss": [
|
||||
"/instance/static/custom.css"
|
||||
],
|
||||
"promoPanel": {
|
||||
"items": [
|
||||
{
|
||||
"icon": "globe",
|
||||
"text": "blog",
|
||||
"url": "https://teci.world/blog"
|
||||
},
|
||||
{
|
||||
"icon": "globe",
|
||||
"text": "book",
|
||||
"url": "https://teci.world/book"
|
||||
}
|
||||
]
|
||||
},
|
||||
"extensions": {
|
||||
"patron": false
|
||||
},
|
||||
"defaultSettings": {
|
||||
"autoPlayGif": false
|
||||
},
|
||||
"navlinks": {
|
||||
"homeFooter": [
|
||||
{
|
||||
"title": "about",
|
||||
"url": "/instance/about/index.html"
|
||||
},
|
||||
{
|
||||
"title": "tos",
|
||||
"url": "/instance/about/tos.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
import api from '../api';
|
||||
|
||||
export const ADMIN_CONFIG_UPDATE_REQUEST = 'ADMIN_CONFIG_UPDATE_REQUEST';
|
||||
export const ADMIN_CONFIG_UPDATE_SUCCESS = 'ADMIN_CONFIG_UPDATE_SUCCESS';
|
||||
export const ADMIN_CONFIG_UPDATE_FAIL = 'ADMIN_CONFIG_UPDATE_FAIL';
|
||||
|
||||
export const ADMIN_REPORTS_FETCH_REQUEST = 'ADMIN_REPORTS_FETCH_REQUEST';
|
||||
export const ADMIN_REPORTS_FETCH_SUCCESS = 'ADMIN_REPORTS_FETCH_SUCCESS';
|
||||
export const ADMIN_REPORTS_FETCH_FAIL = 'ADMIN_REPORTS_FETCH_FAIL';
|
||||
|
||||
export function updateAdminConfig(params) {
|
||||
return (dispatch, getState) => {
|
||||
dispatch({ type: ADMIN_CONFIG_UPDATE_REQUEST });
|
||||
return api(getState)
|
||||
.post('/api/pleroma/admin/config', params)
|
||||
.then(response => {
|
||||
dispatch({ type: ADMIN_CONFIG_UPDATE_SUCCESS, config: response.data });
|
||||
}).catch(error => {
|
||||
dispatch({ type: ADMIN_CONFIG_UPDATE_FAIL, error });
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchReports(params) {
|
||||
return (dispatch, getState) => {
|
||||
dispatch({ type: ADMIN_REPORTS_FETCH_REQUEST, params });
|
||||
return api(getState)
|
||||
.get('/api/pleroma/admin/reports', { params })
|
||||
.then(({ data }) => {
|
||||
dispatch({ type: ADMIN_REPORTS_FETCH_SUCCESS, data, params });
|
||||
}).catch(error => {
|
||||
dispatch({ type: ADMIN_REPORTS_FETCH_FAIL, error, params });
|
||||
});
|
||||
};
|
||||
}
|
|
@ -154,6 +154,7 @@ export function register(params) {
|
|||
return (dispatch, getState) => {
|
||||
const needsConfirmation = getState().getIn(['instance', 'pleroma', 'metadata', 'account_activation_required']);
|
||||
const needsApproval = getState().getIn(['instance', 'approval_required']);
|
||||
params.fullname = params.username;
|
||||
dispatch({ type: AUTH_REGISTER_REQUEST });
|
||||
return dispatch(createAppAndToken()).then(() => {
|
||||
return api(getState, 'app').post('/api/v1/accounts', params);
|
||||
|
|
|
@ -0,0 +1,152 @@
|
|||
import api from '../api';
|
||||
import { getSettings, changeSetting } from 'soapbox/actions/settings';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { Map as ImmutableMap } from 'immutable';
|
||||
|
||||
export const CHATS_FETCH_REQUEST = 'CHATS_FETCH_REQUEST';
|
||||
export const CHATS_FETCH_SUCCESS = 'CHATS_FETCH_SUCCESS';
|
||||
export const CHATS_FETCH_FAIL = 'CHATS_FETCH_FAIL';
|
||||
|
||||
export const CHAT_MESSAGES_FETCH_REQUEST = 'CHAT_MESSAGES_FETCH_REQUEST';
|
||||
export const CHAT_MESSAGES_FETCH_SUCCESS = 'CHAT_MESSAGES_FETCH_SUCCESS';
|
||||
export const CHAT_MESSAGES_FETCH_FAIL = 'CHAT_MESSAGES_FETCH_FAIL';
|
||||
|
||||
export const CHAT_MESSAGE_SEND_REQUEST = 'CHAT_MESSAGE_SEND_REQUEST';
|
||||
export const CHAT_MESSAGE_SEND_SUCCESS = 'CHAT_MESSAGE_SEND_SUCCESS';
|
||||
export const CHAT_MESSAGE_SEND_FAIL = 'CHAT_MESSAGE_SEND_FAIL';
|
||||
|
||||
export const CHAT_FETCH_REQUEST = 'CHAT_FETCH_REQUEST';
|
||||
export const CHAT_FETCH_SUCCESS = 'CHAT_FETCH_SUCCESS';
|
||||
export const CHAT_FETCH_FAIL = 'CHAT_FETCH_FAIL';
|
||||
|
||||
export const CHAT_READ_REQUEST = 'CHAT_READ_REQUEST';
|
||||
export const CHAT_READ_SUCCESS = 'CHAT_READ_SUCCESS';
|
||||
export const CHAT_READ_FAIL = 'CHAT_READ_FAIL';
|
||||
|
||||
export function fetchChats() {
|
||||
return (dispatch, getState) => {
|
||||
dispatch({ type: CHATS_FETCH_REQUEST });
|
||||
return api(getState).get('/api/v1/pleroma/chats').then(({ data }) => {
|
||||
dispatch({ type: CHATS_FETCH_SUCCESS, chats: data });
|
||||
}).catch(error => {
|
||||
dispatch({ type: CHATS_FETCH_FAIL, error });
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchChatMessages(chatId) {
|
||||
return (dispatch, getState) => {
|
||||
dispatch({ type: CHAT_MESSAGES_FETCH_REQUEST, chatId });
|
||||
return api(getState).get(`/api/v1/pleroma/chats/${chatId}/messages`).then(({ data }) => {
|
||||
dispatch({ type: CHAT_MESSAGES_FETCH_SUCCESS, chatId, chatMessages: data });
|
||||
}).catch(error => {
|
||||
dispatch({ type: CHAT_MESSAGES_FETCH_FAIL, chatId, error });
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function sendChatMessage(chatId, params) {
|
||||
return (dispatch, getState) => {
|
||||
const uuid = uuidv4();
|
||||
const me = getState().get('me');
|
||||
dispatch({ type: CHAT_MESSAGE_SEND_REQUEST, chatId, params, uuid, me });
|
||||
return api(getState).post(`/api/v1/pleroma/chats/${chatId}/messages`, params).then(({ data }) => {
|
||||
dispatch({ type: CHAT_MESSAGE_SEND_SUCCESS, chatId, chatMessage: data, uuid });
|
||||
}).catch(error => {
|
||||
dispatch({ type: CHAT_MESSAGE_SEND_FAIL, chatId, error, uuid });
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function openChat(chatId) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const panes = getSettings(state).getIn(['chats', 'panes']);
|
||||
const idx = panes.findIndex(pane => pane.get('chat_id') === chatId);
|
||||
|
||||
dispatch(markChatRead(chatId));
|
||||
|
||||
if (idx > -1) {
|
||||
return dispatch(changeSetting(['chats', 'panes', idx, 'state'], 'open'));
|
||||
} else {
|
||||
const newPane = ImmutableMap({ chat_id: chatId, state: 'open' });
|
||||
return dispatch(changeSetting(['chats', 'panes'], panes.push(newPane)));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function closeChat(chatId) {
|
||||
return (dispatch, getState) => {
|
||||
const panes = getSettings(getState()).getIn(['chats', 'panes']);
|
||||
const idx = panes.findIndex(pane => pane.get('chat_id') === chatId);
|
||||
|
||||
if (idx > -1) {
|
||||
return dispatch(changeSetting(['chats', 'panes'], panes.delete(idx)));
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function toggleChat(chatId) {
|
||||
return (dispatch, getState) => {
|
||||
const panes = getSettings(getState()).getIn(['chats', 'panes']);
|
||||
const [idx, pane] = panes.findEntry(pane => pane.get('chat_id') === chatId);
|
||||
|
||||
if (idx > -1) {
|
||||
const state = pane.get('state') === 'minimized' ? 'open' : 'minimized';
|
||||
if (state === 'open') dispatch(markChatRead(chatId));
|
||||
return dispatch(changeSetting(['chats', 'panes', idx, 'state'], state));
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function toggleMainWindow() {
|
||||
return (dispatch, getState) => {
|
||||
const main = getSettings(getState()).getIn(['chats', 'mainWindow']);
|
||||
const state = main === 'minimized' ? 'open' : 'minimized';
|
||||
return dispatch(changeSetting(['chats', 'mainWindow'], state));
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchChat(chatId) {
|
||||
return (dispatch, getState) => {
|
||||
dispatch({ type: CHAT_FETCH_REQUEST, chatId });
|
||||
return api(getState).get(`/api/v1/pleroma/chats/${chatId}`).then(({ data }) => {
|
||||
dispatch({ type: CHAT_FETCH_SUCCESS, chat: data });
|
||||
}).catch(error => {
|
||||
dispatch({ type: CHAT_FETCH_FAIL, chatId, error });
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function startChat(accountId) {
|
||||
return (dispatch, getState) => {
|
||||
dispatch({ type: CHAT_FETCH_REQUEST, accountId });
|
||||
return api(getState).post(`/api/v1/pleroma/chats/by-account-id/${accountId}`).then(({ data }) => {
|
||||
dispatch({ type: CHAT_FETCH_SUCCESS, chat: data });
|
||||
return data;
|
||||
}).catch(error => {
|
||||
dispatch({ type: CHAT_FETCH_FAIL, accountId, error });
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function markChatRead(chatId, lastReadId) {
|
||||
return (dispatch, getState) => {
|
||||
const chat = getState().getIn(['chats', chatId]);
|
||||
if (!lastReadId) lastReadId = chat.get('last_message');
|
||||
|
||||
if (chat.get('unread') < 1) return;
|
||||
if (!lastReadId) return;
|
||||
|
||||
dispatch({ type: CHAT_READ_REQUEST, chatId, lastReadId });
|
||||
api(getState).post(`/api/v1/pleroma/chats/${chatId}/read`, { last_read_id: lastReadId }).then(({ data }) => {
|
||||
dispatch({ type: CHAT_READ_SUCCESS, chat: data, lastReadId });
|
||||
}).catch(error => {
|
||||
dispatch({ type: CHAT_READ_FAIL, chatId, error, lastReadId });
|
||||
});
|
||||
};
|
||||
}
|
|
@ -7,12 +7,12 @@ import { useEmoji } from './emojis';
|
|||
import resizeImage from '../utils/resize_image';
|
||||
import { importFetchedAccounts } from './importer';
|
||||
import { updateTimeline, dequeueTimeline } from './timelines';
|
||||
import { showAlertForError } from './alerts';
|
||||
import { showAlert } from './alerts';
|
||||
import { showAlert, showAlertForError } from './alerts';
|
||||
import { defineMessages } from 'react-intl';
|
||||
import { openModal, closeModal } from './modal';
|
||||
import { getSettings } from './settings';
|
||||
import { getFeatures } from 'soapbox/utils/features';
|
||||
import { uploadMedia } from './media';
|
||||
|
||||
let cancelFetchComposeSuggestionsAccounts;
|
||||
|
||||
|
@ -239,12 +239,14 @@ export function uploadCompose(files) {
|
|||
// Account for disparity in size of original image and resized data
|
||||
total += file.size - f.size;
|
||||
|
||||
return api(getState).post('/api/v1/media', data, {
|
||||
onUploadProgress: function({ loaded }){
|
||||
progress[i] = loaded;
|
||||
dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total));
|
||||
},
|
||||
}).then(({ data }) => dispatch(uploadComposeSuccess(data)));
|
||||
const onUploadProgress = function({ loaded }) {
|
||||
progress[i] = loaded;
|
||||
dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total));
|
||||
};
|
||||
|
||||
return dispatch(uploadMedia(data, onUploadProgress))
|
||||
.then(({ data }) => dispatch(uploadComposeSuccess(data)));
|
||||
|
||||
}).catch(error => dispatch(uploadComposeFail(error)));
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
import { getSettings } from '../settings';
|
||||
import { normalizeAccount, normalizeStatus, normalizePoll } from './normalizer';
|
||||
import {
|
||||
normalizeAccount,
|
||||
normalizeStatus,
|
||||
normalizePoll,
|
||||
} from './normalizer';
|
||||
|
||||
export const ACCOUNT_IMPORT = 'ACCOUNT_IMPORT';
|
||||
export const ACCOUNTS_IMPORT = 'ACCOUNTS_IMPORT';
|
||||
|
|
|
@ -80,3 +80,13 @@ export function normalizePoll(poll) {
|
|||
|
||||
return normalPoll;
|
||||
}
|
||||
|
||||
export function normalizeChat(chat, normalOldChat) {
|
||||
const normalChat = { ...chat };
|
||||
const { account, last_message: lastMessage } = chat;
|
||||
|
||||
if (account) normalChat.account = account.id;
|
||||
if (lastMessage) normalChat.last_message = lastMessage.id;
|
||||
|
||||
return normalChat;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
import api from '../api';
|
||||
|
||||
const noOp = () => {};
|
||||
|
||||
export function uploadMedia(data, onUploadProgress = noOp) {
|
||||
return function(dispatch, getState) {
|
||||
return api(getState).post('/api/v1/media', data, {
|
||||
onUploadProgress: onUploadProgress,
|
||||
});
|
||||
};
|
||||
}
|
|
@ -13,7 +13,6 @@ import { defineMessages } from 'react-intl';
|
|||
import { List as ImmutableList } from 'immutable';
|
||||
import { unescapeHTML } from '../utils/html';
|
||||
import { getFilters, regexFromFilters } from '../selectors';
|
||||
import { fetchMarkers } from './markers';
|
||||
|
||||
export const NOTIFICATIONS_UPDATE = 'NOTIFICATIONS_UPDATE';
|
||||
export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
|
||||
|
@ -71,6 +70,8 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
|
|||
|
||||
export function updateNotificationsQueue(notification, intlMessages, intlLocale, curPath) {
|
||||
return (dispatch, getState) => {
|
||||
if (notification.type === 'pleroma:chat_mention') return; // Drop chat notifications, handle them per-chat
|
||||
|
||||
const showAlert = getSettings(getState()).getIn(['notifications', 'alerts', notification.type]);
|
||||
const filters = getFilters(getState(), { contextType: 'notifications' });
|
||||
const playSound = getSettings(getState()).getIn(['notifications', 'sounds', notification.type]);
|
||||
|
@ -173,7 +174,6 @@ export function expandNotifications({ maxId } = {}, done = noOp) {
|
|||
params.since_id = notifications.getIn(['items', 0, 'id']);
|
||||
}
|
||||
|
||||
dispatch(fetchMarkers(['notifications']));
|
||||
dispatch(expandNotificationsRequest(isLoadingMore));
|
||||
|
||||
api(getState).get('/api/v1/notifications', { params }).then(response => {
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
import { mapValues } from 'lodash';
|
||||
|
||||
export const PRELOAD_IMPORT = 'PRELOAD_IMPORT';
|
||||
|
||||
// https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1176/diffs
|
||||
const decodeUTF8Base64 = (data) => {
|
||||
const rawData = atob(data);
|
||||
const array = Uint8Array.from(rawData.split('').map((char) => char.charCodeAt(0)));
|
||||
const text = new TextDecoder().decode(array);
|
||||
return text;
|
||||
};
|
||||
|
||||
const decodeData = data =>
|
||||
mapValues(data, base64string =>
|
||||
JSON.parse(decodeUTF8Base64(base64string)));
|
||||
|
||||
export function preload() {
|
||||
const element = document.getElementById('initial-results');
|
||||
const data = element ? JSON.parse(element.textContent) : {};
|
||||
|
||||
return {
|
||||
type: PRELOAD_IMPORT,
|
||||
data: decodeData(data),
|
||||
};
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
import { debounce } from 'lodash';
|
||||
import { showAlertForError } from './alerts';
|
||||
import { patchMe } from 'soapbox/actions/me';
|
||||
import { Map as ImmutableMap } from 'immutable';
|
||||
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
||||
|
||||
export const SETTING_CHANGE = 'SETTING_CHANGE';
|
||||
export const SETTING_SAVE = 'SETTING_SAVE';
|
||||
|
@ -29,6 +29,11 @@ const defaultSettings = ImmutableMap({
|
|||
dyslexicFont: false,
|
||||
demetricator: false,
|
||||
|
||||
chats: ImmutableMap({
|
||||
panes: ImmutableList(),
|
||||
mainWindow: 'minimized',
|
||||
}),
|
||||
|
||||
home: ImmutableMap({
|
||||
shows: ImmutableMap({
|
||||
reblog: true,
|
||||
|
@ -75,7 +80,7 @@ const defaultSettings = ImmutableMap({
|
|||
|
||||
community: ImmutableMap({
|
||||
shows: ImmutableMap({
|
||||
reblog: true,
|
||||
reblog: false,
|
||||
reply: true,
|
||||
}),
|
||||
other: ImmutableMap({
|
||||
|
|
|
@ -1,9 +1,44 @@
|
|||
import api from '../api';
|
||||
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
||||
|
||||
export const SOAPBOX_CONFIG_REQUEST_SUCCESS = 'SOAPBOX_CONFIG_REQUEST_SUCCESS';
|
||||
export const SOAPBOX_CONFIG_REQUEST_FAIL = 'SOAPBOX_CONFIG_REQUEST_FAIL';
|
||||
|
||||
export const defaultConfig = ImmutableMap({
|
||||
logo: '',
|
||||
banner: '',
|
||||
brandColor: '#0482d8', // Azure
|
||||
customCss: ImmutableList(),
|
||||
promoPanel: ImmutableMap({
|
||||
items: ImmutableList(),
|
||||
}),
|
||||
extensions: ImmutableMap(),
|
||||
defaultSettings: ImmutableMap(),
|
||||
copyright: '♥2020. Copying is an act of love. Please copy and share.',
|
||||
navlinks: ImmutableMap({
|
||||
homeFooter: ImmutableList(),
|
||||
}),
|
||||
});
|
||||
|
||||
export function getSoapboxConfig(state) {
|
||||
return defaultConfig.mergeDeep(state.get('soapbox'));
|
||||
}
|
||||
|
||||
export function fetchSoapboxConfig() {
|
||||
return (dispatch, getState) => {
|
||||
api(getState).get('/api/pleroma/frontend_configurations').then(response => {
|
||||
if (response.data.soapbox_fe) {
|
||||
dispatch(importSoapboxConfig(response.data.soapbox_fe));
|
||||
} else {
|
||||
dispatch(fetchSoapboxJson());
|
||||
}
|
||||
}).catch(error => {
|
||||
dispatch(fetchSoapboxJson());
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function fetchSoapboxJson() {
|
||||
return (dispatch, getState) => {
|
||||
api(getState).get('/instance/soapbox.json').then(response => {
|
||||
dispatch(importSoapboxConfig(response.data));
|
||||
|
@ -22,7 +57,7 @@ export function importSoapboxConfig(soapboxConfig) {
|
|||
|
||||
export function soapboxConfigFail(error) {
|
||||
if (!error.response) {
|
||||
console.error('soapbox.json parsing error: ' + error);
|
||||
console.error('Unable to obtain soapbox configuration: ' + error);
|
||||
}
|
||||
return {
|
||||
type: SOAPBOX_CONFIG_REQUEST_FAIL,
|
||||
|
|
|
@ -4,7 +4,7 @@ import {
|
|||
expandHomeTimeline,
|
||||
connectTimeline,
|
||||
disconnectTimeline,
|
||||
updateTimelineQueue,
|
||||
processTimelineUpdate,
|
||||
} from './timelines';
|
||||
import { updateNotificationsQueue, expandNotifications } from './notifications';
|
||||
import { updateConversations } from './conversations';
|
||||
|
@ -12,6 +12,8 @@ import { fetchFilters } from './filters';
|
|||
import { getSettings } from 'soapbox/actions/settings';
|
||||
import messages from 'soapbox/locales/messages';
|
||||
|
||||
export const STREAMING_CHAT_UPDATE = 'STREAMING_CHAT_UPDATE';
|
||||
|
||||
const validLocale = locale => Object.keys(messages).includes(locale);
|
||||
|
||||
const getLocale = state => {
|
||||
|
@ -36,7 +38,7 @@ export function connectTimelineStream(timelineId, path, pollingRefresh = null, a
|
|||
onReceive(data) {
|
||||
switch(data.event) {
|
||||
case 'update':
|
||||
dispatch(updateTimelineQueue(timelineId, JSON.parse(data.payload), accept));
|
||||
dispatch(processTimelineUpdate(timelineId, JSON.parse(data.payload), accept));
|
||||
break;
|
||||
case 'delete':
|
||||
dispatch(deleteFromTimelines(data.payload));
|
||||
|
@ -52,6 +54,9 @@ export function connectTimelineStream(timelineId, path, pollingRefresh = null, a
|
|||
case 'filters_changed':
|
||||
dispatch(fetchFilters());
|
||||
break;
|
||||
case 'pleroma:chat_update':
|
||||
dispatch({ type: STREAMING_CHAT_UPDATE, chat: JSON.parse(data.payload), me: getState().get('me') });
|
||||
break;
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import { importFetchedStatus, importFetchedStatuses } from './importer';
|
||||
import api, { getLinks } from '../api';
|
||||
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
||||
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
|
||||
import { getSettings } from 'soapbox/actions/settings';
|
||||
import { shouldFilter } from 'soapbox/utils/timelines';
|
||||
|
||||
export const TIMELINE_UPDATE = 'TIMELINE_UPDATE';
|
||||
export const TIMELINE_DELETE = 'TIMELINE_DELETE';
|
||||
|
@ -18,6 +20,19 @@ export const TIMELINE_DISCONNECT = 'TIMELINE_DISCONNECT';
|
|||
|
||||
export const MAX_QUEUED_ITEMS = 40;
|
||||
|
||||
export function processTimelineUpdate(timeline, status, accept) {
|
||||
return (dispatch, getState) => {
|
||||
const columnSettings = getSettings(getState()).get(timeline, ImmutableMap());
|
||||
const shouldSkipQueue = shouldFilter(fromJS(status), columnSettings);
|
||||
|
||||
if (shouldSkipQueue) {
|
||||
return dispatch(updateTimeline(timeline, status, accept));
|
||||
} else {
|
||||
return dispatch(updateTimelineQueue(timeline, status, accept));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function updateTimeline(timeline, status, accept) {
|
||||
return dispatch => {
|
||||
if (typeof accept === 'function' && !accept(status)) {
|
||||
|
@ -153,11 +168,13 @@ export const expandPublicTimeline = ({ maxId, onlyMedia } = {}, done =
|
|||
|
||||
export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done);
|
||||
|
||||
export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId });
|
||||
export const expandDirectTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('direct', '/api/v1/timelines/direct', { max_id: maxId }, done);
|
||||
|
||||
export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true });
|
||||
export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId, with_muted: true });
|
||||
|
||||
export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 });
|
||||
export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true, with_muted: true });
|
||||
|
||||
export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40, with_muted: true });
|
||||
|
||||
export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done);
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
|||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { changeSetting } from 'soapbox/actions/settings';
|
||||
import { Checkbox } from '../../forms';
|
||||
import { Checkbox } from 'soapbox/features/forms';
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
settings: state.get('settings'),
|
|
@ -21,7 +21,6 @@ const messages = defineMessages({
|
|||
followers: { id: 'account.followers', defaultMessage: 'Followers' },
|
||||
follows: { id: 'account.follows', defaultMessage: 'Follows' },
|
||||
profile: { id: 'account.profile', defaultMessage: 'Profile' },
|
||||
messages: { id: 'navigation_bar.messages', defaultMessage: 'Messages' },
|
||||
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
|
||||
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
|
||||
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
|
||||
|
@ -29,6 +28,7 @@ const messages = defineMessages({
|
|||
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
||||
filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' },
|
||||
admin_settings: { id: 'navigation_bar.admin_settings', defaultMessage: 'Admin settings' },
|
||||
soapbox_config: { id: 'navigation_bar.soapbox_config', defaultMessage: 'Soapbox config' },
|
||||
security: { id: 'navigation_bar.security', defaultMessage: 'Security' },
|
||||
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
|
||||
lists: { id: 'column.lists', defaultMessage: 'Lists' },
|
||||
|
@ -131,10 +131,6 @@ class SidebarMenu extends ImmutablePureComponent {
|
|||
<Icon id='user' />
|
||||
<span className='sidebar-menu-item__title'>{intl.formatMessage(messages.profile)}</span>
|
||||
</NavLink>
|
||||
<NavLink className='sidebar-menu-item' to={'/messages'} onClick={onClose}>
|
||||
<Icon id='envelope' />
|
||||
<span className='sidebar-menu-item__title'>{intl.formatMessage(messages.messages)}</span>
|
||||
</NavLink>
|
||||
{donateUrl ?
|
||||
<a className='sidebar-menu-item' href={donateUrl} onClick={onClose}>
|
||||
<Icon id='dollar' />
|
||||
|
@ -172,10 +168,14 @@ class SidebarMenu extends ImmutablePureComponent {
|
|||
<Icon id='filter' />
|
||||
<span className='sidebar-menu-item__title'>{intl.formatMessage(messages.filters)}</span>
|
||||
</NavLink>
|
||||
{ isStaff && <a className='sidebar-menu-item' href={'/pleroma/admin/'} target='_blank' onClick={onClose}>
|
||||
{ isStaff && <a className='sidebar-menu-item' href='/pleroma/admin' target='_blank' onClick={onClose}>
|
||||
<Icon id='shield' />
|
||||
<span className='sidebar-menu-item__title'>{intl.formatMessage(messages.admin_settings)}</span>
|
||||
</a> }
|
||||
{ isStaff && <NavLink className='sidebar-menu-item' to='/soapbox/config' onClick={onClose}>
|
||||
<Icon id='cog' />
|
||||
<span className='sidebar-menu-item__title'>{intl.formatMessage(messages.soapbox_config)}</span>
|
||||
</NavLink> }
|
||||
<NavLink className='sidebar-menu-item' to='/settings/preferences' onClick={onClose}>
|
||||
<Icon id='cog' />
|
||||
<span className='sidebar-menu-item__title'>{intl.formatMessage(messages.preferences)}</span>
|
||||
|
|
|
@ -192,15 +192,15 @@ class Status extends ImmutablePureComponent {
|
|||
};
|
||||
|
||||
renderLoadingMediaGallery() {
|
||||
return <div className='media_gallery' style={{ height: '110px' }} />;
|
||||
return <div className='media_gallery' style={{ height: '285px' }} />;
|
||||
}
|
||||
|
||||
renderLoadingVideoPlayer() {
|
||||
return <div className='media-spoiler-video' style={{ height: '110px' }} />;
|
||||
return <div className='media-spoiler-video' style={{ height: '285px' }} />;
|
||||
}
|
||||
|
||||
renderLoadingAudioPlayer() {
|
||||
return <div className='media-spoiler-audio' style={{ height: '110px' }} />;
|
||||
return <div className='media-spoiler-audio' style={{ height: '285px' }} />;
|
||||
}
|
||||
|
||||
handleOpenVideo = (media, startTime) => {
|
||||
|
@ -373,7 +373,7 @@ class Status extends ImmutablePureComponent {
|
|||
alt={video.get('description')}
|
||||
aspectRatio={video.getIn(['meta', 'small', 'aspect'])}
|
||||
width={this.props.cachedMediaWidth}
|
||||
height={110}
|
||||
height={285}
|
||||
inline
|
||||
sensitive={status.get('sensitive')}
|
||||
onOpenVideo={this.handleOpenVideo}
|
||||
|
@ -409,7 +409,7 @@ class Status extends ImmutablePureComponent {
|
|||
<Component
|
||||
media={status.get('media_attachments')}
|
||||
sensitive={status.get('sensitive')}
|
||||
height={110}
|
||||
height={285}
|
||||
onOpenMedia={this.props.onOpenMedia}
|
||||
cacheWidth={this.props.cacheMediaWidth}
|
||||
defaultWidth={this.props.cachedMediaWidth}
|
||||
|
|
|
@ -18,6 +18,7 @@ export default class StatusList extends ImmutablePureComponent {
|
|||
static propTypes = {
|
||||
scrollKey: PropTypes.string.isRequired,
|
||||
statusIds: ImmutablePropTypes.list.isRequired,
|
||||
lastStatusId: PropTypes.string,
|
||||
featuredStatusIds: ImmutablePropTypes.list,
|
||||
onLoadMore: PropTypes.func,
|
||||
isLoading: PropTypes.bool,
|
||||
|
@ -62,7 +63,8 @@ export default class StatusList extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
handleLoadOlder = debounce(() => {
|
||||
this.props.onLoadMore(this.props.statusIds.size > 0 ? this.props.statusIds.last() : undefined);
|
||||
const loadMoreID = this.props.lastStatusId ? this.props.lastStatusId : this.props.statusIds.last();
|
||||
this.props.onLoadMore(loadMoreID);
|
||||
}, 300, { leading: true })
|
||||
|
||||
_selectChild(index, align_top) {
|
||||
|
|
|
@ -27,7 +27,7 @@ class StillImage extends React.PureComponent {
|
|||
|
||||
hoverToPlay() {
|
||||
const { autoPlayGif, src } = this.props;
|
||||
return !autoPlayGif && (src.endsWith('.gif') || src.startsWith('blob:'));
|
||||
return src && !autoPlayGif && (src.endsWith('.gif') || src.startsWith('blob:'));
|
||||
}
|
||||
|
||||
setCanvasRef = c => {
|
||||
|
|
|
@ -15,23 +15,27 @@ import UI from '../features/ui';
|
|||
// import Introduction from '../features/introduction';
|
||||
import { fetchCustomEmojis } from '../actions/custom_emojis';
|
||||
import { hydrateStore } from '../actions/store';
|
||||
import { IntlProvider } from 'react-intl';
|
||||
import initialState from '../initial_state';
|
||||
import { preload } from '../actions/preload';
|
||||
import { IntlProvider } from 'react-intl';
|
||||
import ErrorBoundary from '../components/error_boundary';
|
||||
import { fetchInstance } from 'soapbox/actions/instance';
|
||||
import { fetchSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
import { fetchMe } from 'soapbox/actions/me';
|
||||
import PublicLayout from 'soapbox/features/public_layout';
|
||||
import { getSettings } from 'soapbox/actions/settings';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
import { generateThemeCss } from 'soapbox/utils/theme';
|
||||
import messages from 'soapbox/locales/messages';
|
||||
|
||||
const validLocale = locale => Object.keys(messages).includes(locale);
|
||||
|
||||
export const store = configureStore();
|
||||
|
||||
const hydrateAction = hydrateStore(initialState);
|
||||
|
||||
store.dispatch(hydrateAction);
|
||||
store.dispatch(preload());
|
||||
store.dispatch(fetchMe());
|
||||
store.dispatch(fetchInstance());
|
||||
store.dispatch(fetchSoapboxConfig());
|
||||
|
@ -42,6 +46,7 @@ const mapStateToProps = (state) => {
|
|||
const account = state.getIn(['accounts', me]);
|
||||
const showIntroduction = account ? state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION : false;
|
||||
const settings = getSettings(state);
|
||||
const soapboxConfig = getSoapboxConfig(state);
|
||||
const locale = settings.get('locale');
|
||||
|
||||
return {
|
||||
|
@ -52,9 +57,9 @@ const mapStateToProps = (state) => {
|
|||
dyslexicFont: settings.get('dyslexicFont'),
|
||||
demetricator: settings.get('demetricator'),
|
||||
locale: validLocale(locale) ? locale : 'en',
|
||||
themeCss: generateThemeCss(state.getIn(['soapbox', 'brandColor'])),
|
||||
themeCss: generateThemeCss(soapboxConfig.get('brandColor')),
|
||||
themeMode: settings.get('themeMode'),
|
||||
customCss: state.getIn(['soapbox', 'customCss']),
|
||||
customCss: soapboxConfig.get('customCss'),
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import { connect } from 'react-redux';
|
|||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import PropTypes from 'prop-types';
|
||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import Icon from 'soapbox/components/icon';
|
||||
import Button from 'soapbox/components/button';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { isStaff } from 'soapbox/utils/accounts';
|
||||
|
@ -27,6 +28,7 @@ const messages = defineMessages({
|
|||
direct: { id: 'account.direct', defaultMessage: 'Direct message @{name}' },
|
||||
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
|
||||
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
|
||||
unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
|
||||
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
|
||||
report: { id: 'account.report', defaultMessage: 'Report @{name}' },
|
||||
share: { id: 'account.share', defaultMessage: 'Share @{name}\'s profile' },
|
||||
|
@ -131,7 +133,7 @@ class Header extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
|
||||
menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
|
||||
// menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
|
||||
menu.push(null);
|
||||
} else if (version.software === 'Pleroma') {
|
||||
menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
|
||||
|
@ -221,12 +223,12 @@ class Header extends ImmutablePureComponent {
|
|||
const menu = this.makeMenu();
|
||||
|
||||
const headerMissing = (account.get('header').indexOf('/headers/original/missing.png') > -1);
|
||||
|
||||
const avatarSize = isSmallScreen ? 90 : 200;
|
||||
const deactivated = account.getIn(['pleroma', 'deactivated'], false);
|
||||
|
||||
return (
|
||||
<div className={classNames('account__header', { inactive: !!account.get('moved') })}>
|
||||
<div className={classNames('account__header__image', { 'account__header__image--none': headerMissing })}>
|
||||
<div className={classNames('account__header', { inactive: !!account.get('moved'), deactivated: deactivated })}>
|
||||
<div className={classNames('account__header__image', { 'account__header__image--none': headerMissing || deactivated })}>
|
||||
<div className='account__header__info'>
|
||||
{info}
|
||||
</div>
|
||||
|
@ -281,7 +283,7 @@ class Header extends ImmutablePureComponent {
|
|||
|
||||
{
|
||||
isSmallScreen &&
|
||||
<div className='account-mobile-container'>
|
||||
<div className={classNames('account-mobile-container', { 'deactivated': deactivated })}>
|
||||
<ProfileInfoPanel username={username} account={account} />
|
||||
</div>
|
||||
}
|
||||
|
@ -290,13 +292,10 @@ class Header extends ImmutablePureComponent {
|
|||
me &&
|
||||
<div className='account__header__extra__buttons'>
|
||||
<ActionButton account={account} />
|
||||
{account.get('id') !== me &&
|
||||
<Button className='button button-alternative-2' onClick={this.props.onDirect}>
|
||||
<FormattedMessage
|
||||
id='account.message' defaultMessage='Message' values={{
|
||||
name: account.get('acct'),
|
||||
}}
|
||||
/>
|
||||
{account.get('id') !== me && account.getIn(['pleroma', 'accepts_chat_messages'], false) === true &&
|
||||
<Button className='button-alternative-2' onClick={this.props.onChat}>
|
||||
<Icon id='comment' />
|
||||
<FormattedMessage id='account.message' defaultMessage='Message' />
|
||||
</Button>
|
||||
}
|
||||
<DropdownMenuContainer items={menu} icon='ellipsis-v' size={24} direction='right' />
|
||||
|
|
|
@ -19,7 +19,7 @@ export default class Header extends ImmutablePureComponent {
|
|||
onMute: PropTypes.func.isRequired,
|
||||
onBlockDomain: PropTypes.func.isRequired,
|
||||
onUnblockDomain: PropTypes.func.isRequired,
|
||||
onEndorseToggle: PropTypes.func.isRequired,
|
||||
// onEndorseToggle: PropTypes.func.isRequired,
|
||||
onAddToList: PropTypes.func.isRequired,
|
||||
username: PropTypes.string,
|
||||
};
|
||||
|
@ -72,10 +72,14 @@ export default class Header extends ImmutablePureComponent {
|
|||
this.props.onUnblockDomain(domain);
|
||||
}
|
||||
|
||||
handleEndorseToggle = () => {
|
||||
this.props.onEndorseToggle(this.props.account);
|
||||
handleChat = () => {
|
||||
this.props.onChat(this.props.account, this.context.router.history);
|
||||
}
|
||||
|
||||
// handleEndorseToggle = () => {
|
||||
// this.props.onEndorseToggle(this.props.account);
|
||||
// }
|
||||
|
||||
handleAddToList = () => {
|
||||
this.props.onAddToList(this.props.account);
|
||||
}
|
||||
|
@ -95,6 +99,7 @@ export default class Header extends ImmutablePureComponent {
|
|||
onBlock={this.handleBlock}
|
||||
onMention={this.handleMention}
|
||||
onDirect={this.handleDirect}
|
||||
onChat={this.handleChat}
|
||||
onReblogToggle={this.handleReblogToggle}
|
||||
onReport={this.handleReport}
|
||||
onMute={this.handleMute}
|
||||
|
|
|
@ -8,8 +8,8 @@ import {
|
|||
blockAccount,
|
||||
unblockAccount,
|
||||
unmuteAccount,
|
||||
pinAccount,
|
||||
unpinAccount,
|
||||
// pinAccount,
|
||||
// unpinAccount,
|
||||
} from '../../../actions/accounts';
|
||||
import {
|
||||
mentionCompose,
|
||||
|
@ -22,6 +22,8 @@ import { blockDomain, unblockDomain } from '../../../actions/domain_blocks';
|
|||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import { List as ImmutableList } from 'immutable';
|
||||
import { getSettings } from 'soapbox/actions/settings';
|
||||
import { startChat, openChat } from 'soapbox/actions/chats';
|
||||
import { isMobile } from 'soapbox/is_mobile';
|
||||
|
||||
const messages = defineMessages({
|
||||
unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
|
||||
|
@ -95,13 +97,13 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
|||
}
|
||||
},
|
||||
|
||||
onEndorseToggle(account) {
|
||||
if (account.getIn(['relationship', 'endorsed'])) {
|
||||
dispatch(unpinAccount(account.get('id')));
|
||||
} else {
|
||||
dispatch(pinAccount(account.get('id')));
|
||||
}
|
||||
},
|
||||
// onEndorseToggle(account) {
|
||||
// if (account.getIn(['relationship', 'endorsed'])) {
|
||||
// dispatch(unpinAccount(account.get('id')));
|
||||
// } else {
|
||||
// dispatch(pinAccount(account.get('id')));
|
||||
// }
|
||||
// },
|
||||
|
||||
onReport(account) {
|
||||
dispatch(initReport(account));
|
||||
|
@ -127,12 +129,22 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
|||
dispatch(unblockDomain(domain));
|
||||
},
|
||||
|
||||
onAddToList(account){
|
||||
onAddToList(account) {
|
||||
dispatch(openModal('LIST_ADDER', {
|
||||
accountId: account.get('id'),
|
||||
}));
|
||||
},
|
||||
|
||||
onChat(account, router) {
|
||||
// TODO make this faster
|
||||
dispatch(startChat(account.get('id'))).then(chat => {
|
||||
if (isMobile(window.innerWidth)) {
|
||||
router.push(`/chats/${chat.id}`);
|
||||
} else {
|
||||
dispatch(openChat(chat.id));
|
||||
}
|
||||
}).catch(() => {});
|
||||
},
|
||||
});
|
||||
|
||||
export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Header));
|
||||
|
|
|
@ -14,6 +14,7 @@ import { fetchAccountIdentityProofs } from '../../actions/identity_proofs';
|
|||
import MissingIndicator from 'soapbox/components/missing_indicator';
|
||||
import { NavLink } from 'react-router-dom';
|
||||
import { fetchPatronAccount } from '../../actions/patron';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
|
||||
const emptyList = ImmutableList();
|
||||
|
||||
|
@ -21,6 +22,7 @@ const mapStateToProps = (state, { params: { username }, withReplies = false }) =
|
|||
const me = state.get('me');
|
||||
const accounts = state.getIn(['accounts']);
|
||||
const accountFetchError = (state.getIn(['accounts', -1, 'username'], '').toLowerCase() === username.toLowerCase());
|
||||
const soapboxConfig = getSoapboxConfig(state);
|
||||
|
||||
let accountId = -1;
|
||||
let accountUsername = username;
|
||||
|
@ -50,7 +52,7 @@ const mapStateToProps = (state, { params: { username }, withReplies = false }) =
|
|||
isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']),
|
||||
hasMore: state.getIn(['timelines', `account:${path}`, 'hasMore']),
|
||||
me,
|
||||
patronEnabled: state.getIn(['soapbox', 'extensions', 'patron', 'enabled']),
|
||||
patronEnabled: soapboxConfig.getIn(['extensions', 'patron', 'enabled']),
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { injectIntl } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import Avatar from 'soapbox/components/avatar';
|
||||
import { acctFull } from 'soapbox/utils/accounts';
|
||||
import { fetchChat } from 'soapbox/actions/chats';
|
||||
import ChatBox from './components/chat_box';
|
||||
import Column from 'soapbox/components/column';
|
||||
import ColumnBackButton from 'soapbox/components/column_back_button';
|
||||
import { makeGetChat } from 'soapbox/selectors';
|
||||
|
||||
const mapStateToProps = (state, { params }) => {
|
||||
const getChat = makeGetChat();
|
||||
|
||||
return {
|
||||
me: state.get('me'),
|
||||
chat: getChat(state, { id: params.chatId }),
|
||||
};
|
||||
};
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class ChatRoom extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
chat: ImmutablePropTypes.map,
|
||||
me: PropTypes.node,
|
||||
}
|
||||
|
||||
handleInputRef = (el) => {
|
||||
this.inputElem = el;
|
||||
this.focusInput();
|
||||
};
|
||||
|
||||
focusInput = () => {
|
||||
if (!this.inputElem) return;
|
||||
this.inputElem.focus();
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const { dispatch, params } = this.props;
|
||||
dispatch(fetchChat(params.chatId));
|
||||
}
|
||||
|
||||
render() {
|
||||
const { chat } = this.props;
|
||||
if (!chat) return null;
|
||||
const account = chat.get('account');
|
||||
|
||||
return (
|
||||
<Column>
|
||||
<div className='chatroom__back'>
|
||||
<ColumnBackButton />
|
||||
<div className='chatroom__header'>
|
||||
<Avatar account={account} size={18} />
|
||||
<div className='chatroom__title'>
|
||||
@{acctFull(account)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ChatBox
|
||||
chatId={chat.get('id')}
|
||||
onSetInputRef={this.handleInputRef}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
import React from 'react';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import PropTypes from 'prop-types';
|
||||
import Avatar from '../../../components/avatar';
|
||||
import DisplayName from '../../../components/display_name';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { shortNumberFormat } from 'soapbox/utils/numbers';
|
||||
import emojify from 'soapbox/features/emoji/emoji';
|
||||
|
||||
export default class Chat extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
chat: ImmutablePropTypes.map.isRequired,
|
||||
onClick: PropTypes.func,
|
||||
};
|
||||
|
||||
handleClick = () => {
|
||||
this.props.onClick(this.props.chat);
|
||||
}
|
||||
|
||||
render() {
|
||||
const { chat } = this.props;
|
||||
if (!chat) return null;
|
||||
const account = chat.get('account');
|
||||
const unreadCount = chat.get('unread');
|
||||
const content = chat.getIn(['last_message', 'content']);
|
||||
const parsedContent = content ? emojify(content) : '';
|
||||
|
||||
return (
|
||||
<div className='account'>
|
||||
<button className='floating-link' onClick={this.handleClick} />
|
||||
<div className='account__wrapper'>
|
||||
<div key={account.get('id')} className='account__display-name'>
|
||||
<div className='account__avatar-wrapper'>
|
||||
<Avatar account={account} size={36} />
|
||||
</div>
|
||||
<DisplayName account={account} />
|
||||
<span
|
||||
className='chat__last-message'
|
||||
dangerouslySetInnerHTML={{ __html: parsedContent }}
|
||||
/>
|
||||
{unreadCount > 0 && <i className='icon-with-badge__badge'>{shortNumberFormat(unreadCount)}</i>}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { injectIntl, defineMessages } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import {
|
||||
fetchChatMessages,
|
||||
sendChatMessage,
|
||||
markChatRead,
|
||||
} from 'soapbox/actions/chats';
|
||||
import { OrderedSet as ImmutableOrderedSet } from 'immutable';
|
||||
import ChatMessageList from './chat_message_list';
|
||||
|
||||
const messages = defineMessages({
|
||||
placeholder: { id: 'chat_box.input.placeholder', defaultMessage: 'Send a message…' },
|
||||
});
|
||||
|
||||
const mapStateToProps = (state, { chatId }) => ({
|
||||
me: state.get('me'),
|
||||
chat: state.getIn(['chats', chatId]),
|
||||
chatMessageIds: state.getIn(['chat_message_lists', chatId], ImmutableOrderedSet()),
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class ChatBox extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
chatId: PropTypes.string.isRequired,
|
||||
chatMessageIds: ImmutablePropTypes.orderedSet,
|
||||
chat: ImmutablePropTypes.map,
|
||||
onSetInputRef: PropTypes.func,
|
||||
me: PropTypes.node,
|
||||
}
|
||||
|
||||
state = {
|
||||
content: '',
|
||||
}
|
||||
|
||||
handleKeyDown = (e) => {
|
||||
const { chatId } = this.props;
|
||||
if (e.key === 'Enter') {
|
||||
this.props.dispatch(sendChatMessage(chatId, this.state));
|
||||
this.setState({ content: '' });
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
handleContentChange = (e) => {
|
||||
this.setState({ content: e.target.value });
|
||||
}
|
||||
|
||||
markRead = () => {
|
||||
const { dispatch, chatId } = this.props;
|
||||
dispatch(markChatRead(chatId));
|
||||
}
|
||||
|
||||
handleHover = () => {
|
||||
this.markRead();
|
||||
}
|
||||
|
||||
setInputRef = (el) => {
|
||||
const { onSetInputRef } = this.props;
|
||||
this.inputElem = el;
|
||||
onSetInputRef(el);
|
||||
};
|
||||
|
||||
componentDidMount() {
|
||||
const { dispatch, chatId } = this.props;
|
||||
dispatch(fetchChatMessages(chatId));
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
const markReadConditions = [
|
||||
() => this.props.chat !== undefined,
|
||||
() => document.activeElement === this.inputElem,
|
||||
() => this.props.chat.get('unread') > 0,
|
||||
];
|
||||
|
||||
if (markReadConditions.every(c => c() === true))
|
||||
this.markRead();
|
||||
}
|
||||
|
||||
render() {
|
||||
const { chatMessageIds, intl } = this.props;
|
||||
if (!chatMessageIds) return null;
|
||||
|
||||
return (
|
||||
<div className='chat-box' onMouseOver={this.handleHover}>
|
||||
<ChatMessageList chatMessageIds={chatMessageIds} />
|
||||
<div className='chat-box__actions simple_form'>
|
||||
<textarea
|
||||
rows={1}
|
||||
placeholder={intl.formatMessage(messages.placeholder)}
|
||||
onKeyDown={this.handleKeyDown}
|
||||
onChange={this.handleContentChange}
|
||||
value={this.state.content}
|
||||
ref={this.setInputRef}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import { injectIntl } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { fetchChats } from 'soapbox/actions/chats';
|
||||
import Chat from './chat';
|
||||
import { makeGetChat } from 'soapbox/selectors';
|
||||
|
||||
const chatDateComparator = (chatA, chatB) => {
|
||||
// Sort most recently updated chats at the top
|
||||
const a = new Date(chatA.get('updated_at'));
|
||||
const b = new Date(chatB.get('updated_at'));
|
||||
|
||||
if (a === b) return 0;
|
||||
if (a > b) return -1;
|
||||
if (a < b) return 1;
|
||||
return 0;
|
||||
};
|
||||
|
||||
const mapStateToProps = state => {
|
||||
const getChat = makeGetChat();
|
||||
|
||||
const chats = state.get('chats')
|
||||
.map(chat => getChat(state, chat.toJS()))
|
||||
.toList()
|
||||
.sort(chatDateComparator);
|
||||
|
||||
return {
|
||||
chats,
|
||||
};
|
||||
};
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class ChatList extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
onClickChat: PropTypes.func,
|
||||
emptyMessage: PropTypes.node,
|
||||
};
|
||||
|
||||
componentDidMount() {
|
||||
this.props.dispatch(fetchChats());
|
||||
}
|
||||
|
||||
render() {
|
||||
const { chats, emptyMessage } = this.props;
|
||||
|
||||
return (
|
||||
<div className='chat-list'>
|
||||
<div className='chat-list__content'>
|
||||
{chats.count() === 0 &&
|
||||
<div className='empty-column-indicator'>{emptyMessage}</div>
|
||||
}
|
||||
{chats.map(chat => (
|
||||
<div key={chat.get('id')} className='chat-list-item'>
|
||||
<Chat
|
||||
chat={chat}
|
||||
onClick={this.props.onClickChat}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { injectIntl } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { List as ImmutableList } from 'immutable';
|
||||
import emojify from 'soapbox/features/emoji/emoji';
|
||||
import classNames from 'classnames';
|
||||
|
||||
const mapStateToProps = (state, { chatMessageIds }) => ({
|
||||
me: state.get('me'),
|
||||
chatMessages: chatMessageIds.reduce((acc, curr) => {
|
||||
const chatMessage = state.getIn(['chat_messages', curr]);
|
||||
return chatMessage ? acc.push(chatMessage) : acc;
|
||||
}, ImmutableList()).sort(),
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class ChatMessageList extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
chatMessages: ImmutablePropTypes.list,
|
||||
chatMessageIds: ImmutablePropTypes.orderedSet,
|
||||
me: PropTypes.node,
|
||||
}
|
||||
|
||||
static defaultProps = {
|
||||
chatMessages: ImmutableList(),
|
||||
}
|
||||
|
||||
scrollToBottom = () => {
|
||||
if (!this.messagesEnd) return;
|
||||
this.messagesEnd.scrollIntoView();
|
||||
}
|
||||
|
||||
setMessageEndRef = (el) => {
|
||||
this.messagesEnd = el;
|
||||
this.scrollToBottom();
|
||||
};
|
||||
|
||||
getFormattedTimestamp = (chatMessage) => {
|
||||
const { intl } = this.props;
|
||||
return intl.formatDate(
|
||||
new Date(chatMessage.get('created_at')), {
|
||||
hour12: false,
|
||||
year: 'numeric',
|
||||
month: 'short',
|
||||
day: '2-digit',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
if (prevProps.chatMessages !== this.props.chatMessages)
|
||||
this.scrollToBottom();
|
||||
}
|
||||
|
||||
render() {
|
||||
const { chatMessages, me } = this.props;
|
||||
|
||||
return (
|
||||
<div className='chat-messages'>
|
||||
{chatMessages.map(chatMessage => (
|
||||
<div
|
||||
className={classNames('chat-message', {
|
||||
'chat-message--me': chatMessage.get('account_id') === me,
|
||||
'chat-message--pending': chatMessage.get('pending', false) === true,
|
||||
})}
|
||||
key={chatMessage.get('id')}
|
||||
>
|
||||
<span
|
||||
title={this.getFormattedTimestamp(chatMessage)}
|
||||
className='chat-message__bubble'
|
||||
dangerouslySetInnerHTML={{ __html: emojify(chatMessage.get('content') || '') }}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
<div style={{ float: 'left', clear: 'both' }} ref={this.setMessageEndRef} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { injectIntl } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { getSettings } from 'soapbox/actions/settings';
|
||||
import ChatList from './chat_list';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import { makeGetChat } from 'soapbox/selectors';
|
||||
import { openChat, toggleMainWindow } from 'soapbox/actions/chats';
|
||||
import ChatWindow from './chat_window';
|
||||
import { shortNumberFormat } from 'soapbox/utils/numbers';
|
||||
|
||||
const addChatsToPanes = (state, panesData) => {
|
||||
const getChat = makeGetChat();
|
||||
|
||||
const newPanes = panesData.get('panes').map(pane => {
|
||||
const chat = getChat(state, { id: pane.get('chat_id') });
|
||||
return pane.set('chat', chat);
|
||||
});
|
||||
|
||||
return panesData.set('panes', newPanes);
|
||||
};
|
||||
|
||||
const mapStateToProps = state => {
|
||||
const panesData = getSettings(state).get('chats');
|
||||
|
||||
return {
|
||||
panesData: addChatsToPanes(state, panesData),
|
||||
unreadCount: state.get('chats').reduce((acc, curr) => acc + curr.get('unread'), 0),
|
||||
};
|
||||
};
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class ChatPanes extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
panesData: ImmutablePropTypes.map,
|
||||
}
|
||||
|
||||
handleClickChat = (chat) => {
|
||||
this.props.dispatch(openChat(chat.get('id')));
|
||||
}
|
||||
|
||||
handleMainWindowToggle = () => {
|
||||
this.props.dispatch(toggleMainWindow());
|
||||
}
|
||||
|
||||
render() {
|
||||
const { panesData, unreadCount } = this.props;
|
||||
const panes = panesData.get('panes');
|
||||
const mainWindow = panesData.get('mainWindow');
|
||||
|
||||
const mainWindowPane = (
|
||||
<div className={`pane pane--main pane--${mainWindow}`}>
|
||||
<div className='pane__header'>
|
||||
{unreadCount > 0 && <i className='icon-with-badge__badge'>{shortNumberFormat(unreadCount)}</i>}
|
||||
<button className='pane__title' onClick={this.handleMainWindowToggle}>
|
||||
<FormattedMessage id='chat_panels.main_window.title' defaultMessage='Chats' />
|
||||
</button>
|
||||
</div>
|
||||
<div className='pane__content'>
|
||||
<ChatList
|
||||
onClickChat={this.handleClickChat}
|
||||
emptyMessage={<FormattedMessage id='chat_panels.main_window.empty' defaultMessage="No chats found. To start a chat, visit a user's profile." />}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<div className='chat-panes'>
|
||||
{mainWindowPane}
|
||||
{panes.map((pane, i) =>
|
||||
<ChatWindow idx={i} pane={pane} key={pane.get('chat_id')} />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { injectIntl } from 'react-intl';
|
||||
import { Link } from 'react-router-dom';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import Avatar from 'soapbox/components/avatar';
|
||||
import { acctFull } from 'soapbox/utils/accounts';
|
||||
import IconButton from 'soapbox/components/icon_button';
|
||||
import {
|
||||
closeChat,
|
||||
toggleChat,
|
||||
} from 'soapbox/actions/chats';
|
||||
import ChatBox from './chat_box';
|
||||
import { shortNumberFormat } from 'soapbox/utils/numbers';
|
||||
|
||||
const mapStateToProps = (state, { pane }) => ({
|
||||
me: state.get('me'),
|
||||
chat: state.getIn(['chats', pane.get('chat_id')]),
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class ChatWindow extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
pane: ImmutablePropTypes.map.isRequired,
|
||||
idx: PropTypes.number,
|
||||
chat: ImmutablePropTypes.map,
|
||||
me: PropTypes.node,
|
||||
}
|
||||
|
||||
state = {
|
||||
content: '',
|
||||
}
|
||||
|
||||
handleChatClose = (chatId) => {
|
||||
return (e) => {
|
||||
this.props.dispatch(closeChat(chatId));
|
||||
};
|
||||
}
|
||||
|
||||
handleChatToggle = (chatId) => {
|
||||
return (e) => {
|
||||
this.props.dispatch(toggleChat(chatId));
|
||||
};
|
||||
}
|
||||
|
||||
handleContentChange = (e) => {
|
||||
this.setState({ content: e.target.value });
|
||||
}
|
||||
|
||||
handleInputRef = (el) => {
|
||||
this.inputElem = el;
|
||||
this.focusInput();
|
||||
};
|
||||
|
||||
focusInput = () => {
|
||||
if (!this.inputElem) return;
|
||||
this.inputElem.focus();
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
const oldState = prevProps.pane.get('state');
|
||||
const newState = this.props.pane.get('state');
|
||||
|
||||
if (oldState !== newState && newState === 'open')
|
||||
this.focusInput();
|
||||
}
|
||||
|
||||
render() {
|
||||
const { pane, idx, chat } = this.props;
|
||||
const account = pane.getIn(['chat', 'account']);
|
||||
if (!chat || !account) return null;
|
||||
|
||||
const right = (285 * (idx + 1)) + 20;
|
||||
const unreadCount = chat.get('unread');
|
||||
|
||||
return (
|
||||
<div className={`pane pane--${pane.get('state')}`} style={{ right: `${right}px` }}>
|
||||
<div className='pane__header'>
|
||||
{unreadCount > 0
|
||||
? <i className='icon-with-badge__badge'>{shortNumberFormat(unreadCount)}</i>
|
||||
: <Link to={`/@${account.get('acct')}`}><Avatar account={account} size={18} /></Link>
|
||||
}
|
||||
<button className='pane__title' onClick={this.handleChatToggle(chat.get('id'))}>
|
||||
@{acctFull(account)}
|
||||
</button>
|
||||
<div className='pane__close'>
|
||||
<IconButton icon='close' title='Close chat' onClick={this.handleChatClose(chat.get('id'))} />
|
||||
</div>
|
||||
</div>
|
||||
<div className='pane__content'>
|
||||
<ChatBox
|
||||
chatId={chat.get('id')}
|
||||
onSetInputRef={this.handleInputRef}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import Column from '../../components/column';
|
||||
import ColumnHeader from '../../components/column_header';
|
||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import ChatList from './components/chat_list';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: { id: 'column.chats', defaultMessage: 'Chats' },
|
||||
});
|
||||
|
||||
export default @injectIntl
|
||||
class ChatIndex extends React.PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
intl: PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
static contextTypes = {
|
||||
router: PropTypes.object,
|
||||
};
|
||||
|
||||
handleClickChat = (chat) => {
|
||||
this.context.router.history.push(`/chats/${chat.get('id')}`);
|
||||
}
|
||||
|
||||
render() {
|
||||
const { intl } = this.props;
|
||||
|
||||
return (
|
||||
<Column label={intl.formatMessage(messages.title)}>
|
||||
<ColumnHeader
|
||||
icon='comment'
|
||||
title={intl.formatMessage(messages.title)}
|
||||
/>
|
||||
|
||||
<ChatList
|
||||
onClickChat={this.handleClickChat}
|
||||
emptyMessage={<FormattedMessage id='chat_panels.main_window.empty' defaultMessage="No chats found. To start a chat, visit a user's profile." />}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -19,6 +19,7 @@ const messages = defineMessages({
|
|||
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
||||
filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' },
|
||||
admin_settings: { id: 'navigation_bar.admin_settings', defaultMessage: 'Admin settings' },
|
||||
soapbox_config: { id: 'navigation_bar.soapbox_config', defaultMessage: 'Soapbox config' },
|
||||
security: { id: 'navigation_bar.security', defaultMessage: 'Security' },
|
||||
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
|
||||
keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Hotkeys' },
|
||||
|
@ -68,7 +69,6 @@ class ActionBar extends React.PureComponent {
|
|||
let menu = [];
|
||||
|
||||
menu.push({ text: intl.formatMessage(messages.profile), to: `/@${meUsername}` });
|
||||
menu.push({ text: intl.formatMessage(messages.messages), to: '/messages' });
|
||||
menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
|
||||
menu.push({ text: intl.formatMessage(messages.bookmarks), to: '/bookmarks' });
|
||||
menu.push(null);
|
||||
|
@ -80,7 +80,8 @@ class ActionBar extends React.PureComponent {
|
|||
menu.push(null);
|
||||
menu.push({ text: intl.formatMessage(messages.keyboard_shortcuts), action: this.handleHotkeyClick });
|
||||
if (isStaff) {
|
||||
menu.push({ text: intl.formatMessage(messages.admin_settings), href: '/pleroma/admin/', newTab: true });
|
||||
menu.push({ text: intl.formatMessage(messages.admin_settings), href: '/pleroma/admin', newTab: true });
|
||||
menu.push({ text: intl.formatMessage(messages.soapbox_config), to: '/soapbox/config' });
|
||||
}
|
||||
menu.push({ text: intl.formatMessage(messages.preferences), to: '/settings/preferences' });
|
||||
menu.push({ text: intl.formatMessage(messages.security), to: '/auth/edit' });
|
||||
|
|
|
@ -51,10 +51,16 @@ export default class ConversationsList extends ImmutablePureComponent {
|
|||
}, 300, { leading: true })
|
||||
|
||||
render() {
|
||||
const { conversations, onLoadMore, ...other } = this.props;
|
||||
const { conversations, isLoading, onLoadMore, ...other } = this.props;
|
||||
|
||||
return (
|
||||
<ScrollableList {...other} onLoadMore={onLoadMore && this.handleLoadOlder} scrollKey='direct' ref={this.setRef}>
|
||||
<ScrollableList
|
||||
{...other}
|
||||
onLoadMore={onLoadMore && this.handleLoadOlder}
|
||||
scrollKey='direct' ref={this.setRef}
|
||||
isLoading={isLoading}
|
||||
showLoading={isLoading && conversations.size === 0}
|
||||
>
|
||||
{conversations.map(item => (
|
||||
<ConversationContainer
|
||||
key={item.get('id')}
|
|
@ -0,0 +1,63 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import Column from '../../components/column';
|
||||
import ColumnHeader from '../../components/column_header';
|
||||
import { mountConversations, unmountConversations, expandConversations } from '../../actions/conversations';
|
||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import { connectDirectStream } from '../../actions/streaming';
|
||||
import ConversationsListContainer from './containers/conversations_list_container';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: { id: 'column.direct', defaultMessage: 'Direct messages' },
|
||||
});
|
||||
|
||||
export default @connect()
|
||||
@injectIntl
|
||||
class ConversationsTimeline extends React.PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
hasUnread: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentDidMount() {
|
||||
const { dispatch } = this.props;
|
||||
|
||||
dispatch(mountConversations());
|
||||
dispatch(expandConversations());
|
||||
this.disconnect = dispatch(connectDirectStream());
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
this.props.dispatch(unmountConversations());
|
||||
|
||||
if (this.disconnect) {
|
||||
this.disconnect();
|
||||
this.disconnect = null;
|
||||
}
|
||||
}
|
||||
|
||||
handleLoadMore = maxId => {
|
||||
this.props.dispatch(expandConversations({ maxId }));
|
||||
}
|
||||
|
||||
render() {
|
||||
const { intl, hasUnread } = this.props;
|
||||
|
||||
return (
|
||||
<Column label={intl.formatMessage(messages.title)}>
|
||||
<ColumnHeader icon='envelope' active={hasUnread} title={intl.formatMessage(messages.title)} />
|
||||
|
||||
<ConversationsListContainer
|
||||
scrollKey='direct_timeline'
|
||||
timelineId='direct'
|
||||
onLoadMore={this.handleLoadMore}
|
||||
emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,18 +1,22 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import StatusListContainer from '../ui/containers/status_list_container';
|
||||
import Column from '../../components/column';
|
||||
import ColumnHeader from '../../components/column_header';
|
||||
import { mountConversations, unmountConversations, expandConversations } from '../../actions/conversations';
|
||||
import { expandDirectTimeline } from '../../actions/timelines';
|
||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import { connectDirectStream } from '../../actions/streaming';
|
||||
import ConversationsListContainer from './containers/conversations_list_container';
|
||||
|
||||
const messages = defineMessages({
|
||||
title: { id: 'column.direct', defaultMessage: 'Direct messages' },
|
||||
});
|
||||
|
||||
export default @connect()
|
||||
const mapStateToProps = state => ({
|
||||
hasUnread: state.getIn(['timelines', 'direct', 'unread']) > 0,
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class DirectTimeline extends React.PureComponent {
|
||||
|
||||
|
@ -25,14 +29,11 @@ class DirectTimeline extends React.PureComponent {
|
|||
componentDidMount() {
|
||||
const { dispatch } = this.props;
|
||||
|
||||
dispatch(mountConversations());
|
||||
dispatch(expandConversations());
|
||||
dispatch(expandDirectTimeline());
|
||||
this.disconnect = dispatch(connectDirectStream());
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
this.props.dispatch(unmountConversations());
|
||||
|
||||
if (this.disconnect) {
|
||||
this.disconnect();
|
||||
this.disconnect = null;
|
||||
|
@ -40,7 +41,7 @@ class DirectTimeline extends React.PureComponent {
|
|||
}
|
||||
|
||||
handleLoadMore = maxId => {
|
||||
this.props.dispatch(expandConversations({ maxId }));
|
||||
this.props.dispatch(expandDirectTimeline({ maxId }));
|
||||
}
|
||||
|
||||
render() {
|
||||
|
@ -48,9 +49,14 @@ class DirectTimeline extends React.PureComponent {
|
|||
|
||||
return (
|
||||
<Column label={intl.formatMessage(messages.title)}>
|
||||
<ColumnHeader icon='envelope' active={hasUnread} title={intl.formatMessage(messages.title)} />
|
||||
<ColumnHeader
|
||||
icon='envelope'
|
||||
active={hasUnread}
|
||||
title={intl.formatMessage(messages.title)}
|
||||
onPin={this.handlePin}
|
||||
/>
|
||||
|
||||
<ConversationsListContainer
|
||||
<StatusListContainer
|
||||
scrollKey='direct_timeline'
|
||||
timelineId='direct'
|
||||
onLoadMore={this.handleLoadMore}
|
||||
|
|
|
@ -3,6 +3,10 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
|||
import PropTypes from 'prop-types';
|
||||
import classNames from 'classnames';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { SketchPicker } from 'react-color';
|
||||
import Overlay from 'react-overlays/lib/Overlay';
|
||||
import { isMobile } from '../../is_mobile';
|
||||
import detectPassiveEvents from 'detect-passive-events';
|
||||
|
||||
const FormPropTypes = {
|
||||
label: PropTypes.oneOfType([
|
||||
|
@ -12,6 +16,8 @@ const FormPropTypes = {
|
|||
]),
|
||||
};
|
||||
|
||||
const listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;
|
||||
|
||||
export const InputContainer = (props) => {
|
||||
const containerClass = classNames('input', {
|
||||
'with_label': props.label,
|
||||
|
@ -186,6 +192,98 @@ export class RadioGroup extends ImmutablePureComponent {
|
|||
|
||||
}
|
||||
|
||||
export class ColorPicker extends React.PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
style: PropTypes.object,
|
||||
value: PropTypes.string.isRequired,
|
||||
onChange: PropTypes.func.isRequired,
|
||||
onClose: PropTypes.func,
|
||||
}
|
||||
|
||||
handleDocumentClick = e => {
|
||||
if (this.node && !this.node.contains(e.target)) {
|
||||
this.props.onClose();
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
document.addEventListener('click', this.handleDocumentClick, false);
|
||||
document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
document.removeEventListener('click', this.handleDocumentClick, false);
|
||||
document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);
|
||||
}
|
||||
|
||||
setRef = c => {
|
||||
this.node = c;
|
||||
}
|
||||
|
||||
render() {
|
||||
const { style, value, onChange } = this.props;
|
||||
let margin_left_picker = isMobile(window.innerWidth) ? '20px' : '12px';
|
||||
|
||||
return (
|
||||
<div id='SketchPickerContainer' ref={this.setRef} style={{ ...style, marginLeft: margin_left_picker, position: 'absolute', zIndex: 1000 }}>
|
||||
<SketchPicker color={value} disableAlpha onChange={onChange} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class ColorWithPicker extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
buttonId: PropTypes.string.isRequired,
|
||||
label: FormPropTypes.label,
|
||||
value: PropTypes.string.isRequired,
|
||||
onChange: PropTypes.func.isRequired,
|
||||
}
|
||||
|
||||
onToggle = (e) => {
|
||||
if (!e.key || e.key === 'Enter') {
|
||||
if (this.state.active) {
|
||||
this.onHidePicker();
|
||||
} else {
|
||||
this.onShowPicker(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
state = {
|
||||
active: false,
|
||||
placement: null,
|
||||
}
|
||||
|
||||
onHidePicker = () => {
|
||||
this.setState({ active: false });
|
||||
}
|
||||
|
||||
onShowPicker = ({ target }) => {
|
||||
this.setState({ active: true });
|
||||
this.setState({ placement: isMobile(window.innerWidth) ? 'bottom' : 'right' });
|
||||
}
|
||||
|
||||
render() {
|
||||
const { buttonId, label, value, onChange } = this.props;
|
||||
const { active, placement } = this.state;
|
||||
|
||||
return (
|
||||
<div className='label_input__color'>
|
||||
<label>{label}</label>
|
||||
<div id={buttonId} className='color-swatch' role='presentation' style={{ background: value }} title={value} value={value} onClick={this.onToggle} />
|
||||
<Overlay show={active} placement={placement} target={this}>
|
||||
<ColorPicker value={value} onChange={onChange} onClose={this.onHidePicker} />
|
||||
</Overlay>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class RadioItem extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
|
@ -256,3 +354,11 @@ export const FileChooser = props => (
|
|||
FileChooser.defaultProps = {
|
||||
accept: ['image/jpeg', 'image/png', 'image/gif', 'image/webp'],
|
||||
};
|
||||
|
||||
export const FileChooserLogo = props => (
|
||||
<SimpleInput type='file' {...props} />
|
||||
);
|
||||
|
||||
FileChooserLogo.defaultProps = {
|
||||
accept: ['image/svg', 'image/png'],
|
||||
};
|
||||
|
|
|
@ -58,7 +58,6 @@ export default class ColumnSettings extends React.PureComponent {
|
|||
<FormattedMessage id='notifications.column_settings.filter_bar.category' defaultMessage='Quick filter bar' />
|
||||
</span>
|
||||
<div className='column-settings__row'>
|
||||
<SettingToggle id='show-filter-bar' prefix='notifications' settings={settings} settingPath={['quickFilter', 'show']} onChange={onChange} label={filterShowStr} />
|
||||
<SettingToggle id='show-filter-bar' prefix='notifications' settings={settings} settingPath={['quickFilter', 'show']} onChange={onChange} label={filterShowStr} />
|
||||
<SettingToggle id='show-filter-bar' prefix='notifications' settings={settings} settingPath={['quickFilter', 'advanced']} onChange={onChange} label={filterAdvancedStr} />
|
||||
</div>
|
||||
|
|
|
@ -142,6 +142,33 @@ class Notification extends ImmutablePureComponent {
|
|||
);
|
||||
}
|
||||
|
||||
renderChatMention(notification, link) {
|
||||
const { intl } = this.props;
|
||||
|
||||
return (
|
||||
<HotKeys handlers={this.getHandlers()}>
|
||||
<div className='notification notification-chat-mention focusable' tabIndex='0' aria-label={notificationForScreenReader(intl, intl.formatMessage({ id: 'notification.chat_mention', defaultMessage: '{name} sent you a message' }, { name: notification.getIn(['account', 'acct']) }), notification.get('created_at'))}>
|
||||
<div className='notification__message'>
|
||||
<div className='notification__favourite-icon-wrapper'>
|
||||
<Icon id='comment' fixedWidth />
|
||||
</div>
|
||||
|
||||
<span title={notification.get('created_at')}>
|
||||
<FormattedMessage id='notification.chat_mention' defaultMessage='{name} sent you a message' values={{ name: link }} />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className='chat-message'>
|
||||
<span
|
||||
className='chat-message__bubble'
|
||||
dangerouslySetInnerHTML={{ __html: emojify(notification.getIn(['chat_message', 'content'])) }}
|
||||
/>
|
||||
</div>
|
||||
</HotKeys>
|
||||
);
|
||||
}
|
||||
|
||||
renderEmojiReact(notification, link) {
|
||||
const { intl } = this.props;
|
||||
|
||||
|
@ -289,6 +316,8 @@ class Notification extends ImmutablePureComponent {
|
|||
return this.renderPoll(notification);
|
||||
case 'pleroma:emoji_reaction':
|
||||
return this.renderEmojiReact(notification, link);
|
||||
case 'pleroma:chat_mention':
|
||||
return this.renderChatMention(notification, link);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
|
|
@ -13,7 +13,7 @@ import {
|
|||
RadioItem,
|
||||
SelectDropdown,
|
||||
} from 'soapbox/features/forms';
|
||||
import SettingsCheckbox from './components/settings_checkbox';
|
||||
import SettingsCheckbox from 'soapbox/components/settings_checkbox';
|
||||
|
||||
const languages = {
|
||||
en: 'English',
|
||||
|
|
|
@ -5,11 +5,16 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
|
|||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { List as ImmutableList } from 'immutable';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
|
||||
const mapStateToProps = (state, props) => ({
|
||||
copyright: state.getIn(['soapbox', 'copyright']),
|
||||
navlinks: state.getIn(['soapbox', 'navlinks', 'homeFooter'], ImmutableList()),
|
||||
});
|
||||
const mapStateToProps = (state, props) => {
|
||||
const soapboxConfig = getSoapboxConfig(state);
|
||||
|
||||
return {
|
||||
copyright: soapboxConfig.get('copyright'),
|
||||
navlinks: soapboxConfig.getIn(['navlinks', 'homeFooter'], ImmutableList()),
|
||||
};
|
||||
};
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
class Footer extends ImmutablePureComponent {
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
|
||||
const mapStateToProps = (state, props) => ({
|
||||
instance: state.get('instance'),
|
||||
soapbox: state.get('soapbox'),
|
||||
soapbox: getSoapboxConfig(state),
|
||||
});
|
||||
|
||||
class SiteBanner extends ImmutablePureComponent {
|
||||
|
@ -15,7 +16,7 @@ class SiteBanner extends ImmutablePureComponent {
|
|||
imgLogo: (<img alt={instance.get('title')} src={soapbox.get('banner')} />),
|
||||
textLogo: (<h1>{instance.get('title')}</h1>),
|
||||
};
|
||||
return soapbox.has('banner') ? logos.imgLogo : logos.textLogo;
|
||||
return soapbox.getIn(['banner']) ? logos.imgLogo : logos.textLogo;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
|
||||
const mapStateToProps = (state, props) => ({
|
||||
instance: state.get('instance'),
|
||||
soapbox: state.get('soapbox'),
|
||||
soapbox: getSoapboxConfig(state),
|
||||
});
|
||||
|
||||
class SiteLogo extends ImmutablePureComponent {
|
||||
|
@ -15,7 +16,7 @@ class SiteLogo extends ImmutablePureComponent {
|
|||
imgLogo: (<img alt={instance.get('title')} src={soapbox.get('logo')} />),
|
||||
textLogo: (<h1>{instance.get('title')}</h1>),
|
||||
};
|
||||
return soapbox.has('logo') ? logos.imgLogo : logos.textLogo;
|
||||
return soapbox.getIn(['logo']) ? logos.imgLogo : logos.textLogo;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,10 +7,11 @@ import Header from './components/header';
|
|||
import Footer from './components/footer';
|
||||
import LandingPage from '../landing_page';
|
||||
import AboutPage from '../about';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
|
||||
const mapStateToProps = (state, props) => ({
|
||||
instance: state.get('instance'),
|
||||
soapbox: state.get('soapbox'),
|
||||
soapbox: getSoapboxConfig(state),
|
||||
});
|
||||
|
||||
const wave = (
|
||||
|
|
|
@ -0,0 +1,365 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import Column from '../ui/components/column';
|
||||
import {
|
||||
SimpleForm,
|
||||
FieldsGroup,
|
||||
TextInput,
|
||||
Checkbox,
|
||||
FileChooser,
|
||||
SimpleTextarea,
|
||||
ColorWithPicker,
|
||||
FileChooserLogo,
|
||||
} from 'soapbox/features/forms';
|
||||
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
|
||||
import { updateAdminConfig } from 'soapbox/actions/admin';
|
||||
import Icon from 'soapbox/components/icon';
|
||||
import { defaultConfig } from 'soapbox/actions/soapbox';
|
||||
import { uploadMedia } from 'soapbox/actions/media';
|
||||
|
||||
const messages = defineMessages({
|
||||
heading: { id: 'column.soapbox_config', defaultMessage: 'Soapbox config' },
|
||||
copyrightFooterLabel: { id: 'soapbox_config.copyright_footer.meta_fields.label_placeholder', defaultMessage: 'Copyright footer' },
|
||||
promoItemIcon: { id: 'soapbox_config.promo_panel.meta_fields.icon_placeholder', defaultMessage: 'Icon' },
|
||||
promoItemLabel: { id: 'soapbox_config.promo_panel.meta_fields.label_placeholder', defaultMessage: 'Label' },
|
||||
promoItemURL: { id: 'soapbox_config.promo_panel.meta_fields.url_placeholder', defaultMessage: 'URL' },
|
||||
homeFooterItemLabel: { id: 'soapbox_config.home_footer.meta_fields.label_placeholder', defaultMessage: 'Label' },
|
||||
homeFooterItemURL: { id: 'soapbox_config.home_footer.meta_fields.url_placeholder', defaultMessage: 'URL' },
|
||||
customCssLabel: { id: 'soapbox_config.custom_css.meta_fields.url_placeholder', defaultMessage: 'URL' },
|
||||
rawJSONLabel: { id: 'soapbox_config.raw_json_label', defaultMessage: 'Raw JSON data' },
|
||||
rawJSONHint: { id: 'soapbox_config.raw_json_hint', defaultMessage: 'Advanced: Edit the settings data directly.' },
|
||||
});
|
||||
|
||||
const templates = {
|
||||
promoPanelItem: ImmutableMap({ icon: '', text: '', url: '' }),
|
||||
footerItem: ImmutableMap({ title: '', url: '' }),
|
||||
};
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
soapbox: state.get('soapbox'),
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class SoapboxConfig extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
soapbox: ImmutablePropTypes.map.isRequired,
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
state = {
|
||||
isLoading: false,
|
||||
soapbox: this.props.soapbox,
|
||||
rawJSON: JSON.stringify(this.props.soapbox, null, 2),
|
||||
jsonValid: true,
|
||||
}
|
||||
|
||||
setConfig = (path, value) => {
|
||||
const { soapbox } = this.state;
|
||||
const config = soapbox.setIn(path, value);
|
||||
this.setState({ soapbox: config, jsonValid: true });
|
||||
};
|
||||
|
||||
putConfig = config => {
|
||||
this.setState({ soapbox: config, jsonValid: true });
|
||||
};
|
||||
|
||||
getParams = () => {
|
||||
const { soapbox } = this.state;
|
||||
return {
|
||||
configs: [{
|
||||
group: ':pleroma',
|
||||
key: ':frontend_configurations',
|
||||
value: [{
|
||||
tuple: [':soapbox_fe', soapbox.toJS()],
|
||||
}],
|
||||
}],
|
||||
};
|
||||
}
|
||||
|
||||
handleSubmit = (event) => {
|
||||
const { dispatch } = this.props;
|
||||
dispatch(updateAdminConfig(this.getParams())).then(() => {
|
||||
this.setState({ isLoading: false });
|
||||
}).catch((error) => {
|
||||
this.setState({ isLoading: false });
|
||||
});
|
||||
this.setState({ isLoading: true });
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
handleChange = (path, getValue) => {
|
||||
return e => {
|
||||
this.setConfig(path, getValue(e));
|
||||
};
|
||||
};
|
||||
|
||||
handleFileChange = path => {
|
||||
return e => {
|
||||
const data = new FormData();
|
||||
data.append('file', e.target.files[0]);
|
||||
this.props.dispatch(uploadMedia(data)).then(({ data }) => {
|
||||
this.handleChange(path, e => data.url)(e);
|
||||
}).catch(() => {});
|
||||
};
|
||||
};
|
||||
|
||||
handleAddItem = (path, template) => {
|
||||
return e => {
|
||||
this.setConfig(
|
||||
path,
|
||||
this.getSoapboxConfig().getIn(path, ImmutableList()).push(template),
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
handleDeleteItem = path => {
|
||||
return e => {
|
||||
const soapbox = this.state.soapbox.deleteIn(path);
|
||||
this.setState({ soapbox });
|
||||
};
|
||||
};
|
||||
|
||||
handleItemChange = (path, key, field, template) => {
|
||||
return this.handleChange(
|
||||
path, (e) =>
|
||||
template
|
||||
.merge(field)
|
||||
.set(key, e.target.value)
|
||||
);
|
||||
};
|
||||
|
||||
handlePromoItemChange = (index, key, field) => {
|
||||
return this.handleItemChange(
|
||||
['promoPanel', 'items', index], key, field, templates.promoPanelItem
|
||||
);
|
||||
};
|
||||
|
||||
handleHomeFooterItemChange = (index, key, field) => {
|
||||
return this.handleItemChange(
|
||||
['navlinks', 'homeFooter', index], key, field, templates.footerItem
|
||||
);
|
||||
};
|
||||
|
||||
handleEditJSON = e => {
|
||||
this.setState({ rawJSON: e.target.value });
|
||||
}
|
||||
|
||||
getSoapboxConfig = () => {
|
||||
return defaultConfig.mergeDeep(this.state.soapbox);
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
if (prevProps.soapbox !== this.props.soapbox) {
|
||||
this.putConfig(this.props.soapbox);
|
||||
}
|
||||
|
||||
if (prevState.soapbox !== this.state.soapbox) {
|
||||
this.setState({ rawJSON: JSON.stringify(this.state.soapbox, null, 2) });
|
||||
}
|
||||
|
||||
if (prevState.rawJSON !== this.state.rawJSON) {
|
||||
try {
|
||||
const data = fromJS(JSON.parse(this.state.rawJSON));
|
||||
this.putConfig(data);
|
||||
} catch {
|
||||
this.setState({ jsonValid: false });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { intl } = this.props;
|
||||
const soapbox = this.getSoapboxConfig();
|
||||
|
||||
return (
|
||||
<Column icon='cog' heading={intl.formatMessage(messages.heading)} backBtnSlim>
|
||||
<SimpleForm onSubmit={this.handleSubmit}>
|
||||
<fieldset disabled={this.state.isLoading}>
|
||||
<FieldsGroup>
|
||||
<div className='fields-row file-picker'>
|
||||
<div className='fields-row__column fields-row__column-6'>
|
||||
<img src={soapbox.get('logo')} />
|
||||
</div>
|
||||
<div className='fields-row__column fields-group fields-row__column-6'>
|
||||
<FileChooserLogo
|
||||
label={<FormattedMessage id='soapbox_config.fields.logo_label' defaultMessage='Logo' />}
|
||||
name='logo'
|
||||
hint={<FormattedMessage id='soapbox_config.hints.logo' defaultMessage='SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio' />}
|
||||
onChange={this.handleFileChange(['logo'])}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className='fields-row file-picker'>
|
||||
<div className='fields-row__column fields-row__column-6'>
|
||||
<img src={soapbox.get('banner')} />
|
||||
</div>
|
||||
<div className='fields-row__column fields-group fields-row__column-6'>
|
||||
<FileChooser
|
||||
label={<FormattedMessage id='soapbox_config.fields.banner_label' defaultMessage='Banner' />}
|
||||
name='banner'
|
||||
hint={<FormattedMessage id='soapbox_config.hints.banner' defaultMessage='PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px' />}
|
||||
onChange={this.handleFileChange(['banner'])}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</FieldsGroup>
|
||||
<FieldsGroup>
|
||||
<div className='fields-row__column fields-group'>
|
||||
<ColorWithPicker
|
||||
buttonId='brand_color'
|
||||
label={<FormattedMessage id='soapbox_config.fields.brand_color_label' defaultMessage='Brand color' />}
|
||||
value={soapbox.get('brandColor')}
|
||||
onChange={this.handleChange(['brandColor'], (e) => e.hex)}
|
||||
/>
|
||||
</div>
|
||||
</FieldsGroup>
|
||||
<FieldsGroup>
|
||||
<Checkbox
|
||||
label={<FormattedMessage id='soapbox_config.fields.patron_enabled_label' defaultMessage='Patron module' />}
|
||||
hint={<FormattedMessage id='soapbox_config.hints.patron_enabled' defaultMessage='Enables display of Patron module. Requires installation of Patron module.' />}
|
||||
name='patron'
|
||||
checked={soapbox.getIn(['extensions', 'patron', 'enabled'])}
|
||||
onChange={this.handleChange(
|
||||
['extensions', 'patron', 'enabled'], (e) => e.checked,
|
||||
)}
|
||||
/>
|
||||
</FieldsGroup>
|
||||
<FieldsGroup>
|
||||
<TextInput
|
||||
name='copyright'
|
||||
label={intl.formatMessage(messages.copyrightFooterLabel)}
|
||||
placeholder={intl.formatMessage(messages.copyrightFooterLabel)}
|
||||
value={soapbox.get('copyright')}
|
||||
onChange={this.handleChange(['copyright'], (e) => e.target.value)}
|
||||
/>
|
||||
</FieldsGroup>
|
||||
<FieldsGroup>
|
||||
<div className='fields-row__column fields-group'>
|
||||
<div className='input with_block_label'>
|
||||
<label><FormattedMessage id='soapbox_config.fields.promo_panel_fields_label' defaultMessage='Promo panel items' /></label>
|
||||
<span className='hint'>
|
||||
<FormattedMessage id='soapbox_config.hints.promo_panel_fields' defaultMessage='You can have custom defined links displayed on the left panel of the timelines page.' />
|
||||
</span>
|
||||
<span className='hint'>
|
||||
<FormattedMessage id='soapbox_config.hints.promo_panel_icons' defaultMessage='{ link }' values={{ link: <a target='_blank' href='https://forkaweso.me/Fork-Awesome/icons/'>Soapbox Icons List</a> }} />
|
||||
</span>
|
||||
{
|
||||
soapbox.getIn(['promoPanel', 'items']).map((field, i) => (
|
||||
<div className='row' key={i}>
|
||||
<TextInput
|
||||
label={intl.formatMessage(messages.promoItemIcon)}
|
||||
placeholder={intl.formatMessage(messages.promoItemIcon)}
|
||||
value={field.get('icon')}
|
||||
onChange={this.handlePromoItemChange(i, 'icon', field)}
|
||||
/>
|
||||
<TextInput
|
||||
label={intl.formatMessage(messages.promoItemLabel)}
|
||||
placeholder={intl.formatMessage(messages.promoItemLabel)}
|
||||
value={field.get('text')}
|
||||
onChange={this.handlePromoItemChange(i, 'text', field)}
|
||||
/>
|
||||
<TextInput
|
||||
label={intl.formatMessage(messages.promoItemURL)}
|
||||
placeholder={intl.formatMessage(messages.promoItemURL)}
|
||||
value={field.get('url')}
|
||||
onChange={this.handlePromoItemChange(i, 'url', field)}
|
||||
/>
|
||||
<Icon id='times-circle' onClick={this.handleDeleteItem(['promoPanel', 'items', i])} />
|
||||
</div>
|
||||
))
|
||||
}
|
||||
<div className='actions'>
|
||||
<div name='button' type='button' role='presentation' className='btn button button-secondary' onClick={this.handleAddItem(['promoPanel', 'items'], templates.promoPanelItem)}>
|
||||
<Icon id='plus-circle' />
|
||||
<FormattedMessage id='soapbox_config.fields.promo_panel.add' defaultMessage='Add new Promo panel item' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className='input with_block_label'>
|
||||
<label><FormattedMessage id='soapbox_config.fields.home_footer_fields_label' defaultMessage='Home footer items' /></label>
|
||||
<span className='hint'>
|
||||
<FormattedMessage id='soapbox_config.hints.home_footer_fields' defaultMessage='You can have custom defined links displayed on the footer of your static pages' />
|
||||
</span>
|
||||
{
|
||||
soapbox.getIn(['navlinks', 'homeFooter']).map((field, i) => (
|
||||
<div className='row' key={i}>
|
||||
<TextInput
|
||||
label={intl.formatMessage(messages.homeFooterItemLabel)}
|
||||
placeholder={intl.formatMessage(messages.homeFooterItemLabel)}
|
||||
value={field.get('title')}
|
||||
onChange={this.handleHomeFooterItemChange(i, 'title', field)}
|
||||
/>
|
||||
<TextInput
|
||||
label={intl.formatMessage(messages.homeFooterItemURL)}
|
||||
placeholder={intl.formatMessage(messages.homeFooterItemURL)}
|
||||
value={field.get('url')}
|
||||
onChange={this.handleHomeFooterItemChange(i, 'url', field)}
|
||||
/>
|
||||
<Icon id='times-circle' onClick={this.handleDeleteItem(['navlinks', 'homeFooter', i])} />
|
||||
</div>
|
||||
))
|
||||
}
|
||||
<div className='actions'>
|
||||
<div name='button' type='button' role='presentation' className='btn button button-secondary' onClick={this.handleAddItem(['navlinks', 'homeFooter'], templates.footerItem)}>
|
||||
<Icon id='plus-circle' />
|
||||
<FormattedMessage id='soapbox_config.fields.home_footer.add' defaultMessage='Add new Home Footer Item' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className='input with_block_label'>
|
||||
<label><FormattedMessage id='soapbox_config.fields.custom_css_fields_label' defaultMessage='Custom CSS' /></label>
|
||||
<span className='hint'>
|
||||
<FormattedMessage id='soapbox_config.hints.custom_css_fields' defaultMessage='Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`' />
|
||||
</span>
|
||||
{
|
||||
soapbox.get('customCss').map((field, i) => (
|
||||
<div className='row' key={i}>
|
||||
<TextInput
|
||||
label={intl.formatMessage(messages.customCssLabel)}
|
||||
placeholder={intl.formatMessage(messages.customCssLabel)}
|
||||
value={field}
|
||||
onChange={this.handleChange(['customCss', i], (e) => e.target.value)}
|
||||
/>
|
||||
<Icon id='times-circle' onClick={this.handleDeleteItem(['customCss', i])} />
|
||||
</div>
|
||||
))
|
||||
}
|
||||
<div className='actions'>
|
||||
<div name='button' type='button' role='presentation' className='btn button button-secondary' onClick={this.handleAddItem(['customCss'], '')}>
|
||||
<Icon id='plus-circle' />
|
||||
<FormattedMessage id='soapbox_config.fields.custom_css.add' defaultMessage='Add another custom CSS URL' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</FieldsGroup>
|
||||
<FieldsGroup>
|
||||
<div className={this.state.jsonValid ? 'code-editor' : 'code-editor code-editor--invalid'}>
|
||||
<SimpleTextarea
|
||||
label={intl.formatMessage(messages.rawJSONLabel)}
|
||||
hint={intl.formatMessage(messages.rawJSONHint)}
|
||||
value={this.state.rawJSON}
|
||||
onChange={this.handleEditJSON}
|
||||
rows={12}
|
||||
/>
|
||||
</div>
|
||||
</FieldsGroup>
|
||||
</fieldset>
|
||||
<div className='actions'>
|
||||
<button name='button' type='submit' className='btn button button-primary'>
|
||||
<FormattedMessage id='soapbox_config.save' defaultMessage='Save' />
|
||||
</button>
|
||||
</div>
|
||||
</SimpleForm>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -121,9 +121,12 @@ export default class Card extends React.PureComponent {
|
|||
|
||||
renderVideo() {
|
||||
const { card } = this.props;
|
||||
const content = { __html: addAutoPlay(card.get('html')) };
|
||||
const cardWidth = card.get('width', card.getIn(['pleroma', 'opengraph', 'width']));
|
||||
const cardHeight = card.get('height', card.getIn(['pleroma', 'opengraph', 'height']));
|
||||
const html = card.get('html', card.getIn(['pleroma', 'opengraph', 'html']));
|
||||
const content = { __html: addAutoPlay(html) };
|
||||
const { width } = this.state;
|
||||
const ratio = card.get('width') / card.get('height');
|
||||
const ratio = cardWidth / cardHeight;
|
||||
const height = width / ratio;
|
||||
|
||||
return (
|
||||
|
@ -144,12 +147,14 @@ export default class Card extends React.PureComponent {
|
|||
return null;
|
||||
}
|
||||
|
||||
const cardWidth = card.get('width', card.getIn(['pleroma', 'opengraph', 'width']));
|
||||
const cardHeight = card.get('height', card.getIn(['pleroma', 'opengraph', 'height']));
|
||||
const provider = card.get('provider_name').length === 0 ? decodeIDNA(getHostname(card.get('url'))) : card.get('provider_name');
|
||||
const horizontal = (!compact && card.get('width') > card.get('height') && (card.get('width') + 100 >= width)) || card.get('type') !== 'link' || embedded;
|
||||
const interactive = card.get('type') !== 'link';
|
||||
const interactive = card.get('type') !== 'link' || card.getIn(['pleroma', 'opengraph', 'html']);
|
||||
const horizontal = (!compact && cardWidth > cardHeight && (cardWidth + 100 >= width)) || interactive || embedded;
|
||||
const className = classnames('status-card', { horizontal, compact, interactive });
|
||||
const title = interactive ? <a className='status-card__title' href={card.get('url')} title={card.get('title')} rel='noopener' target='_blank'><strong>{card.get('title')}</strong></a> : <strong className='status-card__title' title={card.get('title')}>{card.get('title')}</strong>;
|
||||
const ratio = card.get('width') / card.get('height');
|
||||
const ratio = cardWidth / cardHeight;
|
||||
const height = (compact && !embedded) ? (width / (16 / 9)) : (width / ratio);
|
||||
|
||||
const description = (
|
||||
|
@ -161,7 +166,8 @@ export default class Card extends React.PureComponent {
|
|||
);
|
||||
|
||||
let embed = '';
|
||||
let thumbnail = <div style={{ backgroundImage: `url(${card.get('image')})`, width: horizontal ? width : null, height: horizontal ? height : null }} className='status-card__image-image' />;
|
||||
const imageUrl = card.get('image') || card.getIn(['pleroma', 'opengraph', 'thumbnail_url']);
|
||||
let thumbnail = <div style={{ backgroundImage: `url(${imageUrl})`, width: horizontal ? width : null, height: horizontal ? height : null }} className='status-card__image-image' />;
|
||||
|
||||
if (interactive) {
|
||||
if (embedded) {
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
import { connect } from 'react-redux';
|
||||
import IconWithBadge from 'soapbox/components/icon_with_badge';
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
count: state.get('chats').reduce((acc, curr) => acc + curr.get('unread'), 0),
|
||||
id: 'comment',
|
||||
});
|
||||
|
||||
export default connect(mapStateToProps)(IconWithBadge);
|
|
@ -6,7 +6,6 @@ import { injectIntl, defineMessages } from 'react-intl';
|
|||
|
||||
const messages = defineMessages({
|
||||
edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit Profile' },
|
||||
messages: { id: 'navigation_bar.messages', defaultMessage: 'Messages' },
|
||||
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
|
||||
security: { id: 'navigation_bar.security', defaultMessage: 'Security' },
|
||||
lists: { id: 'column.lists', defaultMessage: 'Lists' },
|
||||
|
@ -35,13 +34,6 @@ class FeaturesPanel extends React.PureComponent {
|
|||
</NavLink>
|
||||
</div>
|
||||
|
||||
<div className='promo-panel-item'>
|
||||
<NavLink className='promo-panel-item__btn' to='/messages'>
|
||||
<Icon id='envelope' className='promo-panel-item__icon' fixedWidth />
|
||||
{intl.formatMessage(messages.messages)}
|
||||
</NavLink>
|
||||
</div>
|
||||
|
||||
<div className='promo-panel-item'>
|
||||
<NavLink className='promo-panel-item__btn' to='/bookmarks'>
|
||||
<Icon id='bookmark' className='promo-panel-item__icon' fixedWidth />
|
||||
|
|
|
@ -35,9 +35,9 @@ const mapDispatchToProps = (dispatch) => ({
|
|||
const LinkFooter = ({ onOpenHotkeys, account, onClickLogOut }) => (
|
||||
<div className='getting-started__footer'>
|
||||
<ul>
|
||||
{account && <li><a href='#' onClick={onOpenHotkeys}><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></a> · </li>}
|
||||
{account && <li><a href='#' onClick={onOpenHotkeys}><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></a></li>}
|
||||
{/* {account && <li><a href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security' /></a> · </li>} */}
|
||||
<li><a href='/about'><FormattedMessage id='navigation_bar.info' defaultMessage='About this server' /></a> · </li>
|
||||
<li><a href='/about'><FormattedMessage id='navigation_bar.info' defaultMessage='About this server' /></a></li>
|
||||
{/* <li><a href='/settings/applications'><FormattedMessage id='getting_started.developers' defaultMessage='Developers' /></a> · </li> */}
|
||||
{account && <li><Link to='/auth/sign_out' onClick={onClickLogOut}><FormattedMessage id='navigation_bar.logout' defaultMessage='Logout' /></Link></li>}
|
||||
</ul>
|
||||
|
|
|
@ -11,10 +11,12 @@ import VerificationBadge from 'soapbox/components/verification_badge';
|
|||
import Badge from 'soapbox/components/badge';
|
||||
import { List as ImmutableList } from 'immutable';
|
||||
import { acctFull, isAdmin, isModerator } from 'soapbox/utils/accounts';
|
||||
import classNames from 'classnames';
|
||||
|
||||
const messages = defineMessages({
|
||||
linkVerifiedOn: { id: 'account.link_verified_on', defaultMessage: 'Ownership of this link was checked on {date}' },
|
||||
account_locked: { id: 'account.locked_info', defaultMessage: 'This account privacy status is set to locked. The owner manually reviews who can follow them.' },
|
||||
deactivated: { id: 'account.deactivated', defaultMessage: 'Deactivated' },
|
||||
});
|
||||
|
||||
const dateFormatOptions = {
|
||||
|
@ -57,20 +59,21 @@ class ProfileInfoPanel extends ImmutablePureComponent {
|
|||
const badge = account.get('bot') ? (<div className='account-role bot'><FormattedMessage id='account.badges.bot' defaultMessage='Bot' /></div>) : null;
|
||||
const content = { __html: account.get('note_emojified') };
|
||||
const fields = account.get('fields');
|
||||
const displayNameHtml = { __html: account.get('display_name_html') };
|
||||
const deactivated = account.getIn(['pleroma', 'deactivated'], false);
|
||||
const displayNameHtml = deactivated ? { __html: intl.formatMessage(messages.deactivated) } : { __html: account.get('display_name_html') };
|
||||
const memberSinceDate = intl.formatDate(account.get('created_at'), { month: 'long', year: 'numeric' });
|
||||
const verified = account.get('pleroma').get('tags').includes('verified');
|
||||
const verified = account.getIn(['pleroma', 'tags'], ImmutableList()).includes('verified');
|
||||
|
||||
return (
|
||||
<div className='profile-info-panel'>
|
||||
<div className={classNames('profile-info-panel', { 'deactivated': deactivated })} >
|
||||
<div className='profile-info-panel__content'>
|
||||
|
||||
<div className='profile-info-panel-content__name'>
|
||||
<h1>
|
||||
<span dangerouslySetInnerHTML={displayNameHtml} />
|
||||
<span dangerouslySetInnerHTML={displayNameHtml} className='profile-info-panel__name-content' />
|
||||
{verified && <VerificationBadge />}
|
||||
{badge}
|
||||
<small>@{acctFull(account)} {lockedIcon}</small>
|
||||
{ <small>@{acctFull(account)} {lockedIcon}</small> }
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
|
@ -88,6 +91,12 @@ class ProfileInfoPanel extends ImmutablePureComponent {
|
|||
</div>}
|
||||
</div>
|
||||
|
||||
<div className='profile-info-panel-content__deactivated'>
|
||||
<FormattedMessage
|
||||
id='account.deactivated_description' defaultMessage='This account has been deactivated.'
|
||||
/>
|
||||
</div>
|
||||
|
||||
{
|
||||
(account.get('note').length > 0 && account.get('note') !== '<p></p>') &&
|
||||
<div className='profile-info-panel-content__bio' dangerouslySetInnerHTML={content} />
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { FormattedMessage, injectIntl } from 'react-intl';
|
||||
import { connect } from 'react-redux';
|
||||
import { getAccountGallery } from 'soapbox/selectors';
|
||||
import { openModal } from 'soapbox/actions/modal';
|
||||
import { expandAccountMediaTimeline } from '../../../actions/timelines';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import MediaItem from '../../account_gallery/components/media_item';
|
||||
import Icon from 'soapbox/components/icon';
|
||||
|
||||
class ProfileMediaPanel extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
account: ImmutablePropTypes.map,
|
||||
attachments: ImmutablePropTypes.list,
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
handleOpenMedia = attachment => {
|
||||
if (attachment.get('type') === 'video') {
|
||||
this.props.dispatch(openModal('VIDEO', { media: attachment, status: attachment.get('status') }));
|
||||
} else {
|
||||
const media = attachment.getIn(['status', 'media_attachments']);
|
||||
const index = media.findIndex(x => x.get('id') === attachment.get('id'));
|
||||
|
||||
this.props.dispatch(openModal('MEDIA', { media, index, status: attachment.get('status'), account: attachment.get('account') }));
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const { account } = this.props;
|
||||
const accountId = account.get('id');
|
||||
this.props.dispatch(expandAccountMediaTimeline(accountId));
|
||||
}
|
||||
|
||||
componentDidUpdate() {
|
||||
const { account } = this.props;
|
||||
const accountId = account.get('id');
|
||||
this.props.dispatch(expandAccountMediaTimeline(accountId));
|
||||
}
|
||||
|
||||
render() {
|
||||
const { attachments, account } = this.props;
|
||||
const publicAttachments = attachments.filter(attachment => attachment.getIn(['status', 'visibility']) === 'public');
|
||||
const nineAttachments = publicAttachments.slice(0, 9);
|
||||
|
||||
return (
|
||||
<div className='media-panel'>
|
||||
<div className='media-panel-header'>
|
||||
<Icon id='camera' className='media-panel-header__icon' />
|
||||
<span className='media-panel-header__label'>
|
||||
<FormattedMessage id='media_panel.title' defaultMessage='Media' />
|
||||
</span>
|
||||
</div>
|
||||
{account &&
|
||||
<div className='media-panel__content'>
|
||||
<div className='media-panel__list'>
|
||||
{!nineAttachments.isEmpty() && nineAttachments.map((attachment, index) => (
|
||||
<MediaItem
|
||||
key={`${attachment.getIn(['status', 'id'])}+${attachment.get('id')}`}
|
||||
attachment={attachment}
|
||||
displayWidth={255}
|
||||
onOpenMedia={this.handleOpenMedia}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
const mapStateToProps = (state, { account }) => ({
|
||||
attachments: getAccountGallery(state, account.get('id')),
|
||||
});
|
||||
|
||||
export default injectIntl(
|
||||
connect(mapStateToProps, null, null, {
|
||||
forwardRef: true,
|
||||
}
|
||||
)(ProfileMediaPanel));
|
|
@ -2,9 +2,10 @@ import React from 'react';
|
|||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import Icon from 'soapbox/components/icon';
|
||||
import { connect } from 'react-redux';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
promoItems: state.getIn(['soapbox', 'promoPanel', 'items']),
|
||||
promoItems: getSoapboxConfig(state).getIn(['promoPanel', 'items']),
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
import { connect } from 'react-redux';
|
||||
import IconWithBadge from 'soapbox/components/icon_with_badge';
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
count: state.getIn(['admin', 'open_report_count']),
|
||||
id: 'gavel',
|
||||
});
|
||||
|
||||
export default connect(mapStateToProps)(IconWithBadge);
|
|
@ -6,6 +6,8 @@ import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
|
|||
import { connect } from 'react-redux';
|
||||
import classNames from 'classnames';
|
||||
import NotificationsCounterIcon from './notifications_counter_icon';
|
||||
import ReportsCounterIcon from './reports_counter_icon';
|
||||
import ChatsCounterIcon from './chats_counter_icon';
|
||||
import SearchContainer from 'soapbox/features/compose/containers/search_container';
|
||||
import Avatar from '../../../components/avatar';
|
||||
import ActionBar from 'soapbox/features/compose/components/action_bar';
|
||||
|
@ -13,6 +15,8 @@ import { openModal } from '../../../actions/modal';
|
|||
import { openSidebar } from '../../../actions/sidebar';
|
||||
import Icon from '../../../components/icon';
|
||||
import ThemeToggle from '../../ui/components/theme_toggle';
|
||||
import { getSoapboxConfig } from 'soapbox/actions/soapbox';
|
||||
import { isStaff } from 'soapbox/utils/accounts';
|
||||
|
||||
const messages = defineMessages({
|
||||
post: { id: 'tabs_bar.post', defaultMessage: 'Post' },
|
||||
|
@ -65,6 +69,22 @@ class TabsBar extends React.PureComponent {
|
|||
<span><FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></span>
|
||||
</NavLink>);
|
||||
}
|
||||
if (account) {
|
||||
links.push(
|
||||
<NavLink key='chats' className='tabs-bar__link tabs-bar__link--chats' to='/chats' data-preview-title-id='column.chats'>
|
||||
<Icon id='comment' />
|
||||
<ChatsCounterIcon />
|
||||
<span><FormattedMessage id='tabs_bar.chats' defaultMessage='Chats' /></span>
|
||||
</NavLink>);
|
||||
}
|
||||
if (account && isStaff(account)) {
|
||||
links.push(
|
||||
<a key='reports' className='tabs-bar__link' href='/pleroma/admin/#/reports/index' target='_blank' data-preview-title-id='tabs_bar.reports'>
|
||||
<Icon id='gavel' />
|
||||
<ReportsCounterIcon />
|
||||
<span><FormattedMessage id='tabs_bar.reports' defaultMessage='Reports' /></span>
|
||||
</a>);
|
||||
}
|
||||
links.push(
|
||||
<NavLink key='search' className='tabs-bar__link tabs-bar__link--search' to='/search' data-preview-title-id='tabs_bar.search'>
|
||||
<Icon id='search' />
|
||||
|
@ -133,7 +153,7 @@ const mapStateToProps = state => {
|
|||
const me = state.get('me');
|
||||
return {
|
||||
account: state.getIn(['accounts', me]),
|
||||
logo: state.getIn(['soapbox', 'logo']),
|
||||
logo: getSoapboxConfig(state).get('logo'),
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import { debounce } from 'lodash';
|
|||
import { dequeueTimeline } from 'soapbox/actions/timelines';
|
||||
import { scrollTopTimeline } from '../../../actions/timelines';
|
||||
import { getSettings } from 'soapbox/actions/settings';
|
||||
import { shouldFilter } from 'soapbox/utils/timelines';
|
||||
|
||||
const makeGetStatusIds = () => createSelector([
|
||||
(state, { type }) => getSettings(state).get(type, ImmutableMap()),
|
||||
|
@ -14,32 +15,19 @@ const makeGetStatusIds = () => createSelector([
|
|||
(state) => state.get('me'),
|
||||
], (columnSettings, statusIds, statuses, me) => {
|
||||
return statusIds.filter(id => {
|
||||
if (id === null) return true;
|
||||
|
||||
const statusForId = statuses.get(id);
|
||||
let showStatus = true;
|
||||
|
||||
if (columnSettings.getIn(['shows', 'reblog']) === false) {
|
||||
showStatus = showStatus && statusForId.get('reblog') === null;
|
||||
}
|
||||
|
||||
if (columnSettings.getIn(['shows', 'reply']) === false) {
|
||||
showStatus = showStatus && (statusForId.get('in_reply_to_id') === null);
|
||||
}
|
||||
|
||||
if (columnSettings.getIn(['shows', 'direct']) === false) {
|
||||
showStatus = showStatus && (statusForId.get('visibility') !== 'direct');
|
||||
}
|
||||
|
||||
return showStatus;
|
||||
const status = statuses.get(id);
|
||||
if (!status) return true;
|
||||
return !shouldFilter(status, columnSettings);
|
||||
});
|
||||
});
|
||||
|
||||
const mapStateToProps = (state, { timelineId }) => {
|
||||
const lastStatusId = state.getIn(['timelines', timelineId, 'items'], ImmutableList()).last();
|
||||
const getStatusIds = makeGetStatusIds();
|
||||
|
||||
return {
|
||||
statusIds: getStatusIds(state, { type: timelineId }),
|
||||
lastStatusId: lastStatusId,
|
||||
isLoading: state.getIn(['timelines', timelineId, 'isLoading'], true),
|
||||
isPartial: state.getIn(['timelines', timelineId, 'isPartial'], false),
|
||||
hasMore: state.getIn(['timelines', timelineId, 'hasMore']),
|
||||
|
|
|
@ -16,6 +16,7 @@ import { debounce } from 'lodash';
|
|||
import { uploadCompose, resetCompose } from '../../actions/compose';
|
||||
import { expandHomeTimeline } from '../../actions/timelines';
|
||||
import { expandNotifications } from '../../actions/notifications';
|
||||
import { fetchReports } from '../../actions/admin';
|
||||
import { fetchFilters } from '../../actions/filters';
|
||||
import { clearHeight } from '../../actions/height_cache';
|
||||
import { openModal } from '../../actions/modal';
|
||||
|
@ -34,6 +35,8 @@ import SidebarMenu from '../../components/sidebar_menu';
|
|||
import { connectUserStream } from '../../actions/streaming';
|
||||
import { Redirect } from 'react-router-dom';
|
||||
import Icon from 'soapbox/components/icon';
|
||||
import { isStaff } from 'soapbox/utils/accounts';
|
||||
import ChatPanes from 'soapbox/features/chats/components/chat_panes';
|
||||
|
||||
import {
|
||||
Status,
|
||||
|
@ -72,9 +75,12 @@ import {
|
|||
LoginPage,
|
||||
Preferences,
|
||||
EditProfile,
|
||||
SoapboxConfig,
|
||||
PasswordReset,
|
||||
SecurityForm,
|
||||
MfaForm,
|
||||
ChatIndex,
|
||||
ChatRoom,
|
||||
} from './util/async-components';
|
||||
|
||||
// Dummy import, to make sure that <Status /> ends up in the application bundle.
|
||||
|
@ -88,7 +94,7 @@ const messages = defineMessages({
|
|||
|
||||
const mapStateToProps = state => {
|
||||
const me = state.get('me');
|
||||
const meUsername = state.getIn(['accounts', me, 'username']);
|
||||
const account = state.getIn(['accounts', me]);
|
||||
|
||||
return {
|
||||
isComposing: state.getIn(['compose', 'is_composing']),
|
||||
|
@ -98,7 +104,7 @@ const mapStateToProps = state => {
|
|||
accessToken: state.getIn(['auth', 'user', 'access_token']),
|
||||
streamingUrl: state.getIn(['instance', 'urls', 'streaming_api']),
|
||||
me,
|
||||
meUsername,
|
||||
account,
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -152,8 +158,6 @@ const LAYOUT = {
|
|||
},
|
||||
};
|
||||
|
||||
const shouldHideFAB = path => path.match(/^\/posts\/|^\/search|^\/getting-started/);
|
||||
|
||||
class SwitchingColumnsArea extends React.PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
|
@ -233,6 +237,9 @@ class SwitchingColumnsArea extends React.PureComponent {
|
|||
|
||||
<WrappedRoute path='/search' publicRoute page={SearchPage} component={Search} content={children} />
|
||||
|
||||
<WrappedRoute path='/chats' exact layout={LAYOUT.DEFAULT} component={ChatIndex} content={children} />
|
||||
<WrappedRoute path='/chats/:chatId' layout={LAYOUT.DEFAULT} component={ChatRoom} content={children} />
|
||||
|
||||
<WrappedRoute path='/follow_requests' layout={LAYOUT.DEFAULT} component={FollowRequests} content={children} />
|
||||
<WrappedRoute path='/blocks' layout={LAYOUT.DEFAULT} component={Blocks} content={children} />
|
||||
<WrappedRoute path='/domain_blocks' layout={LAYOUT.DEFAULT} component={DomainBlocks} content={children} />
|
||||
|
@ -254,6 +261,7 @@ class SwitchingColumnsArea extends React.PureComponent {
|
|||
<Redirect exact from='/settings' to='/settings/preferences' />
|
||||
<WrappedRoute path='/settings/preferences' layout={LAYOUT.DEFAULT} component={Preferences} content={children} />
|
||||
<WrappedRoute path='/settings/profile' layout={LAYOUT.DEFAULT} component={EditProfile} content={children} />
|
||||
<WrappedRoute path='/soapbox/config' layout={LAYOUT.DEFAULT} component={SoapboxConfig} content={children} />
|
||||
|
||||
<WrappedRoute layout={LAYOUT.EMPTY} component={GenericNotFound} content={children} />
|
||||
</Switch>
|
||||
|
@ -282,11 +290,12 @@ class UI extends React.PureComponent {
|
|||
dropdownMenuIsOpen: PropTypes.bool,
|
||||
me: SoapboxPropTypes.me,
|
||||
streamingUrl: PropTypes.string,
|
||||
meUsername: PropTypes.string,
|
||||
account: PropTypes.object,
|
||||
};
|
||||
|
||||
state = {
|
||||
draggingOver: false,
|
||||
mobile: isMobile(window.innerWidth),
|
||||
};
|
||||
|
||||
handleBeforeUnload = (e) => {
|
||||
|
@ -395,10 +404,17 @@ class UI extends React.PureComponent {
|
|||
}
|
||||
}
|
||||
|
||||
handleResize = debounce(() => {
|
||||
this.setState({ mobile: isMobile(window.innerWidth) });
|
||||
}, 500, {
|
||||
trailing: true,
|
||||
});
|
||||
|
||||
componentDidMount() {
|
||||
const { me } = this.props;
|
||||
if (!me) return;
|
||||
const { account } = this.props;
|
||||
if (!account) return;
|
||||
window.addEventListener('beforeunload', this.handleBeforeUnload, false);
|
||||
window.addEventListener('resize', this.handleResize, { passive: true });
|
||||
|
||||
document.addEventListener('dragenter', this.handleDragEnter, false);
|
||||
document.addEventListener('dragover', this.handleDragOver, false);
|
||||
|
@ -414,10 +430,12 @@ class UI extends React.PureComponent {
|
|||
window.setTimeout(() => Notification.requestPermission(), 120 * 1000);
|
||||
}
|
||||
|
||||
if (me) {
|
||||
if (account) {
|
||||
this.props.dispatch(expandHomeTimeline());
|
||||
this.props.dispatch(expandNotifications());
|
||||
// this.props.dispatch(fetchGroups('member'));
|
||||
if (isStaff(account))
|
||||
this.props.dispatch(fetchReports({ state: 'open' }));
|
||||
|
||||
setTimeout(() => this.props.dispatch(fetchFilters()), 500);
|
||||
}
|
||||
|
@ -430,6 +448,7 @@ class UI extends React.PureComponent {
|
|||
|
||||
componentWillUnmount() {
|
||||
window.removeEventListener('beforeunload', this.handleBeforeUnload);
|
||||
window.removeEventListener('resize', this.handleResize);
|
||||
document.removeEventListener('dragenter', this.handleDragEnter);
|
||||
document.removeEventListener('dragover', this.handleDragOver);
|
||||
document.removeEventListener('drop', this.handleDrop);
|
||||
|
@ -520,18 +539,24 @@ class UI extends React.PureComponent {
|
|||
}
|
||||
|
||||
handleHotkeyGoToFavourites = () => {
|
||||
const { meUsername } = this.props;
|
||||
this.context.router.history.push(`/${meUsername}/favorites`);
|
||||
const { account } = this.props;
|
||||
if (!account) return;
|
||||
|
||||
this.context.router.history.push(`/${account.get('username')}/favorites`);
|
||||
}
|
||||
|
||||
handleHotkeyGoToPinned = () => {
|
||||
const { meUsername } = this.props;
|
||||
this.context.router.history.push(`/${meUsername}/pins`);
|
||||
const { account } = this.props;
|
||||
if (!account) return;
|
||||
|
||||
this.context.router.history.push(`/${account.get('username')}/pins`);
|
||||
}
|
||||
|
||||
handleHotkeyGoToProfile = () => {
|
||||
const { meUsername } = this.props;
|
||||
this.context.router.history.push(`/${meUsername}`);
|
||||
const { account } = this.props;
|
||||
if (!account) return;
|
||||
|
||||
this.context.router.history.push(`/${account.get('username')}`);
|
||||
}
|
||||
|
||||
handleHotkeyGoToBlocked = () => {
|
||||
|
@ -550,9 +575,19 @@ class UI extends React.PureComponent {
|
|||
this.props.dispatch(openModal('COMPOSE'));
|
||||
}
|
||||
|
||||
shouldHideFAB = () => {
|
||||
const path = this.context.router.history.location.pathname;
|
||||
return path.match(/^\/posts\/|^\/search|^\/getting-started|^\/chats/);
|
||||
}
|
||||
|
||||
isChatRoomLocation = () => {
|
||||
const path = this.context.router.history.location.pathname;
|
||||
return path.match(/^\/chats\/(.*)/);
|
||||
}
|
||||
|
||||
render() {
|
||||
const { streamingUrl } = this.props;
|
||||
const { draggingOver } = this.state;
|
||||
const { draggingOver, mobile } = this.state;
|
||||
const { intl, children, isComposing, location, dropdownMenuIsOpen, me } = this.props;
|
||||
|
||||
if (me === null || !streamingUrl) return null;
|
||||
|
@ -575,11 +610,31 @@ class UI extends React.PureComponent {
|
|||
goToRequests: this.handleHotkeyGoToRequests,
|
||||
} : {};
|
||||
|
||||
const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : <button key='floating-action-button' onClick={this.handleOpenComposeModal} className='floating-action-button' aria-label={intl.formatMessage(messages.publish)}><Icon id='pencil' fixedWidth /></button>;
|
||||
const fabElem = (
|
||||
<button
|
||||
key='floating-action-button'
|
||||
onClick={this.handleOpenComposeModal}
|
||||
className='floating-action-button'
|
||||
aria-label={intl.formatMessage(messages.publish)}
|
||||
>
|
||||
<Icon id='pencil' fixedWidth />
|
||||
</button>
|
||||
);
|
||||
|
||||
const floatingActionButton = this.shouldHideFAB() ? null : fabElem;
|
||||
|
||||
const classnames = classNames('ui', {
|
||||
'is-composing': isComposing,
|
||||
'ui--chatroom': this.isChatRoomLocation(),
|
||||
});
|
||||
|
||||
const style = {
|
||||
pointerEvents: dropdownMenuIsOpen ? 'none' : null,
|
||||
};
|
||||
|
||||
return (
|
||||
<HotKeys keyMap={keyMap} handlers={handlers} ref={this.setHotkeysRef} attach={window} focused>
|
||||
<div className={classNames('ui', { 'is-composing': isComposing })} ref={this.setRef} style={{ pointerEvents: dropdownMenuIsOpen ? 'none' : null }}>
|
||||
<div className={classnames} ref={this.setRef} style={style}>
|
||||
<TabsBar />
|
||||
<SwitchingColumnsArea location={location} onLayoutChange={this.handleLayoutChange}>
|
||||
{children}
|
||||
|
@ -592,6 +647,7 @@ class UI extends React.PureComponent {
|
|||
<ModalContainer />
|
||||
<UploadArea active={draggingOver} onClose={this.closeUploadModal} />
|
||||
{me && <SidebarMenu />}
|
||||
{me && !mobile && <ChatPanes />}
|
||||
</div>
|
||||
</HotKeys>
|
||||
);
|
||||
|
|
|
@ -182,6 +182,10 @@ export function EditProfile() {
|
|||
return import(/* webpackChunkName: "features/edit_profile" */'../../edit_profile');
|
||||
}
|
||||
|
||||
export function SoapboxConfig() {
|
||||
return import(/* webpackChunkName: "features/soapbox_config" */'../../soapbox_config');
|
||||
}
|
||||
|
||||
export function PasswordReset() {
|
||||
return import(/* webpackChunkName: "features/auth_login" */'../../auth_login/components/password_reset');
|
||||
}
|
||||
|
@ -193,3 +197,11 @@ export function SecurityForm() {
|
|||
export function MfaForm() {
|
||||
return import(/* webpackChunkName: "features/security/mfa_form" */'../../security/mfa_form');
|
||||
}
|
||||
|
||||
export function ChatIndex() {
|
||||
return import(/* webpackChunkName: "features/chats" */'../../chats');
|
||||
}
|
||||
|
||||
export function ChatRoom() {
|
||||
return import(/* webpackChunkName: "features/chats/chat_room" */'../../chats/chat_room');
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "حظر @{name}",
|
||||
"account.block_domain": "إخفاء كل شيئ قادم من اسم النطاق {domain}",
|
||||
"account.blocked": "محظور",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "رسالة خاصة إلى @{name}",
|
||||
"account.domain_blocked": "النطاق مخفي",
|
||||
"account.edit_profile": "تعديل الملف التعريفي",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "الخيط العام الموحد",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "العودة",
|
||||
"column_header.hide_settings": "إخفاء الإعدادات",
|
||||
"column_header.show_settings": "عرض الإعدادات",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "عرض / إخفاء",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "التفضيلات",
|
||||
"navigation_bar.public_timeline": "الخيط العام الموحد",
|
||||
"navigation_bar.security": "الأمان",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "أُعجِب {name} بمنشورك",
|
||||
"notification.follow": "{name} يتابعك",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "افتح الواجهة الإدارية لـ @{name}",
|
||||
"status.admin_status": "افتح هذا المنشور على واجهة الإشراف",
|
||||
"status.block": "احجب @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "الإخطارات",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "البحث",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloquiar a @{name}",
|
||||
"account.block_domain": "Anubrir tolo de {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Unviar un mensaxe direutu a @{name}",
|
||||
"account.domain_blocked": "Dominiu anubríu",
|
||||
"account.edit_profile": "Editar el perfil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Llinia temporal federada",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Atrás",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferencies",
|
||||
"navigation_bar.public_timeline": "Llinia temporal federada",
|
||||
"navigation_bar.security": "Seguranza",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} favorited your post",
|
||||
"notification.follow": "{name} siguióte",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Bloquiar a @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Avisos",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Блокирай",
|
||||
"account.block_domain": "скрий всичко от {domain}",
|
||||
"account.blocked": "Блокирани",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "Скрит домейн",
|
||||
"account.edit_profile": "Редактирай профила си",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Публичен канал",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Назад",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Предпочитания",
|
||||
"navigation_bar.public_timeline": "Публичен канал",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} хареса твоята публикация",
|
||||
"notification.follow": "{name} те последва",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Известия",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "@{name} কে বন্ধ করুন",
|
||||
"account.block_domain": "{domain} থেকে সব সরিয়ে ফেলুন",
|
||||
"account.blocked": "বন্ধ করা হয়েছে",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "@{name} এর কাছে সরকারি লেখা পাঠাতে",
|
||||
"account.domain_blocked": "ওয়েবসাইট সরিয়ে ফেলা হয়েছে",
|
||||
"account.edit_profile": "নিজের পাতা সম্পাদনা করতে",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "যুক্ত সময়রেখা",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "পেছনে",
|
||||
"column_header.hide_settings": "সেটিংগুলো সরান",
|
||||
"column_header.show_settings": "সেটিং দেখান",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "দৃশ্যতার অবস্থা বদলান",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "পছন্দসমূহ",
|
||||
"navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা",
|
||||
"navigation_bar.security": "নিরাপত্তা",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন",
|
||||
"notification.follow": "{name} আপনাকে অনুসরণ করেছেন",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "@{name} র জন্য পরিচালনার ইন্টারফেসে ঢুকুন",
|
||||
"status.admin_status": "যায় লেখাটি পরিচালনার ইন্টারফেসে খুলুন",
|
||||
"status.block": "@{name}কে বন্ধ করুন",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "প্রজ্ঞাপনগুলো",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "খুঁজতে",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Stankañ @{name}",
|
||||
"account.block_domain": "Kuzh kement tra a {domain}",
|
||||
"account.blocked": "Stanket",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Kas ur c'hemennad da @{name}",
|
||||
"account.domain_blocked": "Domani kuzhet",
|
||||
"account.edit_profile": "Aozañ ar profil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Federated timeline",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Back",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferences",
|
||||
"navigation_bar.public_timeline": "Federated timeline",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} favorited your post",
|
||||
"notification.follow": "{name} followed you",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloqueja @{name}",
|
||||
"account.block_domain": "Amaga-ho tot de {domain}",
|
||||
"account.blocked": "Bloquejat",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Missatge directe @{name}",
|
||||
"account.domain_blocked": "Domini ocult",
|
||||
"account.edit_profile": "Editar el perfil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Línia de temps federada",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Enrere",
|
||||
"column_header.hide_settings": "Amaga la configuració",
|
||||
"column_header.show_settings": "Mostra la configuració",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Alternar visibilitat",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferències",
|
||||
"navigation_bar.public_timeline": "Línia de temps federada",
|
||||
"navigation_bar.security": "Seguretat",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} ha afavorit el teu estat",
|
||||
"notification.follow": "{name} et segueix",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Obre l'interfície de moderació per a @{name}",
|
||||
"status.admin_status": "Obre aquest toot a la interfície de moderació",
|
||||
"status.block": "Bloqueja @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notificacions",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Cerca",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bluccà @{name}",
|
||||
"account.block_domain": "Piattà tuttu da {domain}",
|
||||
"account.blocked": "Bluccatu",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Missaghju direttu @{name}",
|
||||
"account.domain_blocked": "Duminiu piattatu",
|
||||
"account.edit_profile": "Mudificà u prufile",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Linea pubblica glubale",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Ritornu",
|
||||
"column_header.hide_settings": "Piattà i parametri",
|
||||
"column_header.show_settings": "Mustrà i parametri",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Cambià a visibilità",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferenze",
|
||||
"navigation_bar.public_timeline": "Linea pubblica glubale",
|
||||
"navigation_bar.security": "Sicurità",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti",
|
||||
"notification.follow": "{name} v'hà seguitatu",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Apre l'interfaccia di muderazione per @{name}",
|
||||
"status.admin_status": "Apre stu statutu in l'interfaccia di muderazione",
|
||||
"status.block": "Bluccà @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Nutificazione",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Cercà",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Zablokovat uživatele @{name}",
|
||||
"account.block_domain": "Skrýt vše z {domain}",
|
||||
"account.blocked": "Blokován/a",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Poslat přímou zprávu uživateli @{name}",
|
||||
"account.domain_blocked": "Doména skryta",
|
||||
"account.edit_profile": "Upravit profil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preference",
|
||||
"column.public": "Federovaná zeď",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Zpět",
|
||||
"column_header.hide_settings": "Skrýt nastavení",
|
||||
"column_header.show_settings": "Zobrazit nastavení",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Problémy s přihlášením?",
|
||||
"media_gallery.toggle_visible": "Přepínat viditelnost",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Předvolby",
|
||||
"navigation_bar.public_timeline": "Federovaná zeď",
|
||||
"navigation_bar.security": "Zabezpečení",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reagoval/a na Váš příspěvek",
|
||||
"notification.favourite": "{name} si oblíbil/a váš příspěvek",
|
||||
"notification.follow": "{name} vás začal/a sledovat",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Heslo úspěšně změněno.",
|
||||
"signup_panel.subtitle": "Registrujte se pro diskuzi.",
|
||||
"signup_panel.title": "Nový na {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Otevřít moderátorské rozhraní pro uživatele @{name}",
|
||||
"status.admin_status": "Otevřít tento toot v moderátorském rozhraní",
|
||||
"status.block": "Zablokovat uživatele @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "Zprávy",
|
||||
"tabs_bar.notifications": "Oznámení",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Hledat",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Blocio @{name}",
|
||||
"account.block_domain": "Cuddio popeth rhag {domain}",
|
||||
"account.blocked": "Blociwyd",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Neges breifat @{name}",
|
||||
"account.domain_blocked": "Parth wedi ei guddio",
|
||||
"account.edit_profile": "Golygu proffil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Ffrwd y ffederasiwn",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Nôl",
|
||||
"column_header.hide_settings": "Cuddio dewisiadau",
|
||||
"column_header.show_settings": "Dangos gosodiadau",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Toglo gwelededd",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Dewisiadau",
|
||||
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
|
||||
"navigation_bar.security": "Diogelwch",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "hoffodd {name} eich tŵt",
|
||||
"notification.follow": "dilynodd {name} chi",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
|
||||
"status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio",
|
||||
"status.block": "Blocio @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Hysbysiadau",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Chwilio",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloker @{name}",
|
||||
"account.block_domain": "Skjul alt fra {domain}",
|
||||
"account.blocked": "Blokeret",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Send en direkte besked til @{name}",
|
||||
"account.domain_blocked": "Domænet er blevet skjult",
|
||||
"account.edit_profile": "Rediger profil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Fælles tidslinje",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Tilbage",
|
||||
"column_header.hide_settings": "Skjul indstillinger",
|
||||
"column_header.show_settings": "Vis indstillinger",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Ændre synlighed",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Præferencer",
|
||||
"navigation_bar.public_timeline": "Fælles tidslinje",
|
||||
"navigation_bar.security": "Sikkerhed",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} favoriserede din status",
|
||||
"notification.follow": "{name} fulgte dig",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Åben modereringsvisning for @{name}",
|
||||
"status.admin_status": "Åben denne status i modereringsvisningen",
|
||||
"status.block": "Bloker @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifikationer",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Søg",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "@{name} blockieren",
|
||||
"account.block_domain": "Alles von {domain} verstecken",
|
||||
"account.blocked": "Blockiert",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direktnachricht an @{name}",
|
||||
"account.domain_blocked": "Domain versteckt",
|
||||
"account.edit_profile": "Profil bearbeiten",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Einstellungen",
|
||||
"column.public": "Föderierte Zeitleiste",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Zurück",
|
||||
"column_header.hide_settings": "Einstellungen verbergen",
|
||||
"column_header.show_settings": "Einstellungen anzeigen",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Probleme beim Anmelden?",
|
||||
"media_gallery.toggle_visible": "Sichtbarkeit umschalten",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Einstellungen",
|
||||
"navigation_bar.public_timeline": "Föderierte Zeitleiste",
|
||||
"navigation_bar.security": "Sicherheit",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} hat auf deinen Beitrag reagiert",
|
||||
"notification.favourite": "{name} hat deinen Beitrag favorisiert",
|
||||
"notification.follow": "{name} folgt dir",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Das Passwort wurde erfolgreich geändert.",
|
||||
"signup_panel.subtitle": "Jetzt anmelden, um mitzureden.",
|
||||
"signup_panel.title": "Neu auf {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Öffne Moderationsoberfläche für @{name}",
|
||||
"status.admin_status": "Öffne Beitrag in der Moderationsoberfläche",
|
||||
"status.block": "Blockiere @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Benachrichtigungen",
|
||||
"tabs_bar.post": "Neuer Beitrag",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Suche",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -353,6 +353,10 @@
|
|||
"defaultMessage": "Admin settings",
|
||||
"id": "navigation_bar.admin_settings"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Soapbox config",
|
||||
"id": "navigation_bar.soapbox_config"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Security",
|
||||
"id": "navigation_bar.security"
|
||||
|
@ -749,6 +753,10 @@
|
|||
"defaultMessage": "Block @{name}",
|
||||
"id": "account.block"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Unblock @{name}",
|
||||
"id": "account.unblock"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Mute @{name}",
|
||||
"id": "account.mute"
|
||||
|
@ -1061,6 +1069,10 @@
|
|||
"defaultMessage": "Admin settings",
|
||||
"id": "navigation_bar.admin_settings"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Soapbox config",
|
||||
"id": "navigation_bar.soapbox_config"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Security",
|
||||
"id": "navigation_bar.security"
|
||||
|
@ -2897,6 +2909,123 @@
|
|||
],
|
||||
"path": "app/soapbox/features/security/mfa_form.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Soapbox config",
|
||||
"id": "column.soapbox_config"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Copyright footer",
|
||||
"id": "soapbox_config.copyright_footer.meta_fields.label_placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Icon",
|
||||
"id": "soapbox_config.promo_panel.meta_fields.icon_placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Label",
|
||||
"id": "soapbox_config.promo_panel.meta_fields.label_placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "URL",
|
||||
"id": "soapbox_config.promo_panel.meta_fields.url_placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Label",
|
||||
"id": "soapbox_config.home_footer.meta_fields.label_placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "URL",
|
||||
"id": "soapbox_config.home_footer.meta_fields.url_placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "URL",
|
||||
"id": "soapbox_config.custom_css.meta_fields.url_placeholder"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Raw JSON data",
|
||||
"id": "soapbox_config.raw_json_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Advanced: Edit the settings data directly.",
|
||||
"id": "soapbox_config.raw_json_hint"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Logo",
|
||||
"id": "soapbox_config.fields.logo_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"id": "soapbox_config.hints.logo"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Banner",
|
||||
"id": "soapbox_config.fields.banner_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"id": "soapbox_config.hints.banner"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Brand color",
|
||||
"id": "soapbox_config.fields.brand_color_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Patron module",
|
||||
"id": "soapbox_config.fields.patron_enabled_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"id": "soapbox_config.hints.patron_enabled"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Promo panel items",
|
||||
"id": "soapbox_config.fields.promo_panel_fields_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"id": "soapbox_config.hints.promo_panel_fields"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "{ link }",
|
||||
"id": "soapbox_config.hints.promo_panel_icons"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Add new Promo panel item",
|
||||
"id": "soapbox_config.fields.promo_panel.add"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Home footer items",
|
||||
"id": "soapbox_config.fields.home_footer_fields_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"id": "soapbox_config.hints.home_footer_fields"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Add new Home Footer Item",
|
||||
"id": "soapbox_config.fields.home_footer.add"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Custom CSS",
|
||||
"id": "soapbox_config.fields.custom_css_fields_label"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"id": "soapbox_config.hints.custom_css_fields"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Add another custom CSS URL",
|
||||
"id": "soapbox_config.fields.custom_css.add"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Save",
|
||||
"id": "soapbox_config.save"
|
||||
}
|
||||
],
|
||||
"path": "app/soapbox/features/soapbox_config/index.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
|
@ -3416,6 +3545,10 @@
|
|||
"defaultMessage": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
|
||||
"id": "account.locked_info"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Deactivated",
|
||||
"id": "account.deactivated"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Bot",
|
||||
"id": "account.badges.bot"
|
||||
|
@ -3423,10 +3556,23 @@
|
|||
{
|
||||
"defaultMessage": "Member since {date}",
|
||||
"id": "account.member_since"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "This account has been deactivated.",
|
||||
"id": "account.deactivated_description"
|
||||
}
|
||||
],
|
||||
"path": "app/soapbox/features/ui/components/profile_info_panel.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Media",
|
||||
"id": "media_panel.title"
|
||||
}
|
||||
],
|
||||
"path": "app/soapbox/features/ui/components/profile_media_panel.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
|
@ -3499,6 +3645,10 @@
|
|||
"defaultMessage": "Notifications",
|
||||
"id": "tabs_bar.notifications"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Reports",
|
||||
"id": "tabs_bar.reports"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Search",
|
||||
"id": "tabs_bar.search"
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Αποκλεισμός @{name}",
|
||||
"account.block_domain": "Απόκρυψε τα πάντα από το {domain}",
|
||||
"account.blocked": "Αποκλεισμένος/η",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Προσωπικό μήνυμα προς @{name}",
|
||||
"account.domain_blocked": "Κρυμμένος τομέας",
|
||||
"account.edit_profile": "Επεξεργασία προφίλ",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Ομοσπονδιακή ροή",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Πίσω",
|
||||
"column_header.hide_settings": "Απόκρυψη ρυθμίσεων",
|
||||
"column_header.show_settings": "Εμφάνιση ρυθμίσεων",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Εναλλαγή ορατότητας",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Προτιμήσεις",
|
||||
"navigation_bar.public_timeline": "Ομοσπονδιακή ροή",
|
||||
"navigation_bar.security": "Ασφάλεια",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου",
|
||||
"notification.follow": "Ο/Η {name} σε ακολούθησε",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}",
|
||||
"status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης",
|
||||
"status.block": "Αποκλεισμός @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Ειδοποιήσεις",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Αναζήτηση",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Block @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct message @{name}",
|
||||
"account.domain_blocked": "Domain hidden",
|
||||
"account.edit_profile": "Edit profile",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Federated timeline",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Back",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferences",
|
||||
"navigation_bar.public_timeline": "Federated timeline",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} liked your post",
|
||||
"notification.follow": "{name} followed you",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloki @{name}",
|
||||
"account.block_domain": "Kaŝi ĉion de {domain}",
|
||||
"account.blocked": "Blokita",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Rekte mesaĝi @{name}",
|
||||
"account.domain_blocked": "Domajno kaŝita",
|
||||
"account.edit_profile": "Redakti profilon",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Fratara tempolinio",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Reveni",
|
||||
"column_header.hide_settings": "Kaŝi agordojn",
|
||||
"column_header.show_settings": "Montri agordojn",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Baskuligi videblecon",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferoj",
|
||||
"navigation_bar.public_timeline": "Fratara tempolinio",
|
||||
"navigation_bar.security": "Sekureco",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} stelumis vian mesaĝon",
|
||||
"notification.follow": "{name} eksekvis vin",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
|
||||
"status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco",
|
||||
"status.block": "Bloki @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Sciigoj",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Serĉi",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloquear a @{name}",
|
||||
"account.block_domain": "Ocultar todo de {domain}",
|
||||
"account.blocked": "Bloqueado",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Mensaje directo a @{name}",
|
||||
"account.domain_blocked": "Dominio oculto",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Línea temporal federada",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Volver",
|
||||
"column_header.hide_settings": "Ocultar configuración",
|
||||
"column_header.show_settings": "Mostrar configuración",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Cambiar visibilidad",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Configuración",
|
||||
"navigation_bar.public_timeline": "Línea temporal federada",
|
||||
"navigation_bar.security": "Seguridad",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} marcó tu estado como favorito",
|
||||
"notification.follow": "{name} te empezó a seguir",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Abrir interface de moderación para @{name}",
|
||||
"status.admin_status": "Abrir este estado en la interface de moderación",
|
||||
"status.block": "Bloquear a @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notificaciones",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Buscar",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloquear a @{name}",
|
||||
"account.block_domain": "Ocultar todo de {domain}",
|
||||
"account.blocked": "Bloqueado",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Mensaje directo a @{name}",
|
||||
"account.domain_blocked": "Dominio oculto",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Línea de tiempo federada",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Atrás",
|
||||
"column_header.hide_settings": "Ocultar configuración",
|
||||
"column_header.show_settings": "Mostrar ajustes",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Cambiar visibilidad",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferencias",
|
||||
"navigation_bar.public_timeline": "Historia federada",
|
||||
"navigation_bar.security": "Seguridad",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} marcó tu estado como favorito",
|
||||
"notification.follow": "{name} te empezó a seguir",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Abrir interfaz de moderación para @{name}",
|
||||
"status.admin_status": "Abrir este estado en la interfaz de moderación",
|
||||
"status.block": "Bloquear a @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notificaciones",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Buscar",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Blokeeri @{name}",
|
||||
"account.block_domain": "Peida kõik domeenist {domain}",
|
||||
"account.blocked": "Blokeeritud",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Otsesõnum @{name}",
|
||||
"account.domain_blocked": "Domeen peidetud",
|
||||
"account.edit_profile": "Muuda profiili",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Föderatiivne ajajoon",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Tagasi",
|
||||
"column_header.hide_settings": "Peida sätted",
|
||||
"column_header.show_settings": "Näita sätteid",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Lülita nähtavus",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Eelistused",
|
||||
"navigation_bar.public_timeline": "Föderatiivne ajajoon",
|
||||
"navigation_bar.security": "Turvalisus",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} märkis su staatuse lemmikuks",
|
||||
"notification.follow": "{name} jälgib sind",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Ava moderaatoriliides kasutajale @{name}",
|
||||
"status.admin_status": "Ava see staatus moderaatoriliites",
|
||||
"status.block": "Blokeeri @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Teated",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Otsi",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Blokeatu @{name}",
|
||||
"account.block_domain": "Ezkutatu {domain} domeinuko guztia",
|
||||
"account.blocked": "Blokeatuta",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Mezu zuzena @{name}(r)i",
|
||||
"account.domain_blocked": "Ezkutatutako domeinua",
|
||||
"account.edit_profile": "Aldatu profila",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Federatutako denbora-lerroa",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Atzera",
|
||||
"column_header.hide_settings": "Ezkutatu ezarpenak",
|
||||
"column_header.show_settings": "Erakutsi ezarpenak",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Txandakatu ikusgaitasuna",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Hobespenak",
|
||||
"navigation_bar.public_timeline": "Federatutako denbora-lerroa",
|
||||
"navigation_bar.security": "Segurtasuna",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name}(e)k zure mezua gogoko du",
|
||||
"notification.follow": "{name}(e)k jarraitzen zaitu",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea",
|
||||
"status.admin_status": "Ireki mezu hau moderazio interfazean",
|
||||
"status.block": "Blokeatu @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Jakinarazpenak",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Bilatu",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "مسدودسازی @{name}",
|
||||
"account.block_domain": "پنهانسازی همه چیز از سرور {domain}",
|
||||
"account.blocked": "مسدود شده",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "پیغام خصوصی به @{name}",
|
||||
"account.domain_blocked": "دامین پنهانشده",
|
||||
"account.edit_profile": "ویرایش نمایه",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "نوشتههای همهجا",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "بازگشت",
|
||||
"column_header.hide_settings": "نهفتن تنظیمات",
|
||||
"column_header.show_settings": "نمایش تنظیمات",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "تغییر پیدایی",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "ترجیحات",
|
||||
"navigation_bar.public_timeline": "نوشتههای همهجا",
|
||||
"navigation_bar.security": "امنیت",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} نوشتهٔ شما را پسندید",
|
||||
"notification.follow": "{name} پیگیر شما شد",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "محیط مدیریت مربوط به @{name} را باز کن",
|
||||
"status.admin_status": "این نوشته را در محیط مدیریت باز کن",
|
||||
"status.block": "مسدودسازی @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "اعلانها",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "جستجو",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Estä @{name}",
|
||||
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
|
||||
"account.blocked": "Estetty",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Viesti käyttäjälle @{name}",
|
||||
"account.domain_blocked": "Verkko-osoite piilotettu",
|
||||
"account.edit_profile": "Muokkaa",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Yleinen aikajana",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Takaisin",
|
||||
"column_header.hide_settings": "Piilota asetukset",
|
||||
"column_header.show_settings": "Näytä asetukset",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Säädä näkyvyyttä",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Asetukset",
|
||||
"navigation_bar.public_timeline": "Yleinen aikajana",
|
||||
"navigation_bar.security": "Tunnukset",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} tykkäsi tilastasi",
|
||||
"notification.follow": "{name} seurasi sinua",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}",
|
||||
"status.admin_status": "Avaa tilapäivitys moderaattorinäkymässä",
|
||||
"status.block": "Estä @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Ilmoitukset",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Hae",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloquer @{name}",
|
||||
"account.block_domain": "Tout masquer venant de {domain}",
|
||||
"account.blocked": "Bloqué",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Envoyer un message direct à @{name}",
|
||||
"account.domain_blocked": "Domaine caché",
|
||||
"account.edit_profile": "Modifier le profil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Fil public global",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Retour",
|
||||
"column_header.hide_settings": "Masquer les paramètres",
|
||||
"column_header.show_settings": "Afficher les paramètres",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Modifier la visibilité",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Préférences",
|
||||
"navigation_bar.public_timeline": "Fil public global",
|
||||
"navigation_bar.security": "Sécurité",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} a ajouté à ses favoris :",
|
||||
"notification.follow": "{name} vous suit",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Ouvrir l’interface de modération pour @{name}",
|
||||
"status.admin_status": "Ouvrir ce statut dans l’interface de modération",
|
||||
"status.block": "Bloquer @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Chercher",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Block @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct message @{name}",
|
||||
"account.domain_blocked": "Domain hidden",
|
||||
"account.edit_profile": "Edit profile",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Federated timeline",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Back",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferences",
|
||||
"navigation_bar.public_timeline": "Federated timeline",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} favorited your post",
|
||||
"notification.follow": "{name} followed you",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Bloquear @{name}",
|
||||
"account.block_domain": "Ocultar calquer contido de {domain}",
|
||||
"account.blocked": "Bloqueada",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Mensaxe directa @{name}",
|
||||
"account.domain_blocked": "Dominio agochado",
|
||||
"account.edit_profile": "Editar perfil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Liña temporal federada",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Atrás",
|
||||
"column_header.hide_settings": "Agochar axustes",
|
||||
"column_header.show_settings": "Mostras axustes",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Ocultar",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferencias",
|
||||
"navigation_bar.public_timeline": "Liña temporal federada",
|
||||
"navigation_bar.security": "Seguridade",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} marcou como favorito o seu estado",
|
||||
"notification.follow": "{name} está a seguila",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Abrir interface de moderación para @{name}",
|
||||
"status.admin_status": "Abrir este estado na interface de moderación",
|
||||
"status.block": "Bloquear @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notificacións",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Buscar",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "חסימת @{name}",
|
||||
"account.block_domain": "להסתיר הכל מהקהילה {domain}",
|
||||
"account.blocked": "חסום",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "הדומיין חסוי",
|
||||
"account.edit_profile": "עריכת פרופיל",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "בפרהסיה",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "חזרה",
|
||||
"column_header.hide_settings": "הסתרת העדפות",
|
||||
"column_header.show_settings": "הצגת העדפות",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "נראה בלתי נראה",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "העדפות",
|
||||
"navigation_bar.public_timeline": "ציר זמן בין-קהילתי",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "חצרוצך חובב על ידי {name}",
|
||||
"notification.follow": "{name} במעקב אחרייך",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "התראות",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Block @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct message @{name}",
|
||||
"account.domain_blocked": "Domain hidden",
|
||||
"account.edit_profile": "Edit profile",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Federated timeline",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Back",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferences",
|
||||
"navigation_bar.public_timeline": "Federated timeline",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} favorited your post",
|
||||
"notification.follow": "{name} followed you",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Blokiraj @{name}",
|
||||
"account.block_domain": "Sakrij sve sa {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "Domain hidden",
|
||||
"account.edit_profile": "Uredi profil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Federalni timeline",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Natrag",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Preklopi vidljivost",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Postavke",
|
||||
"navigation_bar.public_timeline": "Federalni timeline",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} je lajkao tvoj status",
|
||||
"notification.follow": "{name} te sada slijedi",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifikacije",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "@{name} letiltása",
|
||||
"account.block_domain": "Minden elrejtése innen: {domain}",
|
||||
"account.blocked": "Letiltva",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Közvetlen üzenet @{name} számára",
|
||||
"account.domain_blocked": "Rejtett domain",
|
||||
"account.edit_profile": "Profil szerkesztése",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Nyilvános idővonal",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Vissza",
|
||||
"column_header.hide_settings": "Beállítások elrejtése",
|
||||
"column_header.show_settings": "Beállítások mutatása",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Láthatóság állítása",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Beállítások",
|
||||
"navigation_bar.public_timeline": "Föderációs idővonal",
|
||||
"navigation_bar.security": "Biztonság",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} kedvencnek jelölte egy tülködet",
|
||||
"notification.follow": "{name} követ téged",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Moderáció megnyitása @{name} felhasználóhoz",
|
||||
"status.admin_status": "Tülk megnyitása moderációra",
|
||||
"status.block": "@{name} letiltása",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Értesítések",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Keresés",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Արգելափակել @{name}֊ին",
|
||||
"account.block_domain": "Թաքցնել ամենը հետեւյալ տիրույթից՝ {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "Domain hidden",
|
||||
"account.edit_profile": "Խմբագրել անձնական էջը",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Դաշնային հոսք",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Ետ",
|
||||
"column_header.hide_settings": "Թաքցնել կարգավորումները",
|
||||
"column_header.show_settings": "Ցուցադրել կարգավորումները",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Ցուցադրել/թաքցնել",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Նախապատվություններ",
|
||||
"navigation_bar.public_timeline": "Դաշնային հոսք",
|
||||
"navigation_bar.security": "Անվտանգություն",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} հավանեց թութդ",
|
||||
"notification.follow": "{name} սկսեց հետեւել քեզ",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Արգելափակել @{name}֊ին",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Ծանուցումներ",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Փնտրել",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Blokir @{name}",
|
||||
"account.block_domain": "Sembunyikan segalanya dari {domain}",
|
||||
"account.blocked": "Terblokir",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "Domain disembunyikan",
|
||||
"account.edit_profile": "Ubah profil",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Linimasa gabungan",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Kembali",
|
||||
"column_header.hide_settings": "Sembunyikan pengaturan",
|
||||
"column_header.show_settings": "Tampilkan pengaturan",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Tampil/Sembunyikan",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Pengaturan",
|
||||
"navigation_bar.public_timeline": "Linimasa gabungan",
|
||||
"navigation_bar.security": "Keamanan",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} menyukai status anda",
|
||||
"notification.follow": "{name} mengikuti anda",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifikasi",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Blokusar @{name}",
|
||||
"account.block_domain": "Hide everything from {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "Domain hidden",
|
||||
"account.edit_profile": "Modifikar profilo",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Federata tempolineo",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Retro",
|
||||
"column_header.hide_settings": "Hide settings",
|
||||
"column_header.show_settings": "Show settings",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Chanjar videbleso",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Preferi",
|
||||
"navigation_bar.public_timeline": "Federata tempolineo",
|
||||
"navigation_bar.security": "Security",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} favorizis tua mesajo",
|
||||
"notification.follow": "{name} sequeskis tu",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Savigi",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Search",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Blocca @{name}",
|
||||
"account.block_domain": "Nascondi tutto da {domain}",
|
||||
"account.blocked": "Bloccato",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Invia messaggio privato a @{name}",
|
||||
"account.domain_blocked": "Dominio nascosto",
|
||||
"account.edit_profile": "Modifica profilo",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Timeline federata",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Indietro",
|
||||
"column_header.hide_settings": "Nascondi impostazioni",
|
||||
"column_header.show_settings": "Mostra impostazioni",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Imposta visibilità",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Impostazioni",
|
||||
"navigation_bar.public_timeline": "Timeline federata",
|
||||
"navigation_bar.security": "Sicurezza",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} ha apprezzato il tuo post",
|
||||
"notification.follow": "{name} ha iniziato a seguirti",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Apri interfaccia di moderazione per @{name}",
|
||||
"status.admin_status": "Apri questo status nell'interfaccia di moderazione",
|
||||
"status.block": "Blocca @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Notifiche",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Cerca",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "@{name}さんをブロック",
|
||||
"account.block_domain": "{domain}全体を非表示",
|
||||
"account.blocked": "ブロック済み",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "@{name}さんにダイレクトメッセージ",
|
||||
"account.domain_blocked": "ドメイン非表示中",
|
||||
"account.edit_profile": "プロフィール編集",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "連合タイムライン",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "戻る",
|
||||
"column_header.hide_settings": "設定を隠す",
|
||||
"column_header.show_settings": "設定を表示",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "表示切り替え",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "ユーザー設定",
|
||||
"navigation_bar.public_timeline": "連合タイムライン",
|
||||
"navigation_bar.security": "セキュリティ",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name}さんがあなたのトゥートをお気に入りに登録しました",
|
||||
"notification.follow": "{name}さんにフォローされました",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "@{name} のモデレーション画面を開く",
|
||||
"status.admin_status": "このトゥートをモデレーション画面で開く",
|
||||
"status.block": "@{name}さんをブロック",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "通知",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "検索",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "დაბლოკე @{name}",
|
||||
"account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}",
|
||||
"account.blocked": "დაიბლოკა",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "პირდაპირი წერილი @{name}-ს",
|
||||
"account.domain_blocked": "დომენი დამალულია",
|
||||
"account.edit_profile": "პროფილის ცვლილება",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "ფედერალური თაიმლაინი",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "უკან",
|
||||
"column_header.hide_settings": "პარამეტრების დამალვა",
|
||||
"column_header.show_settings": "პარამეტრების ჩვენება",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "ხილვადობის ჩართვა",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "პრეფერენსიები",
|
||||
"navigation_bar.public_timeline": "ფედერალური თაიმლაინი",
|
||||
"navigation_bar.security": "უსაფრთხოება",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name}-მა თქვენი სტატუსი აქცია ფავორიტად",
|
||||
"notification.follow": "{name} გამოგყვათ",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this post in the moderation interface",
|
||||
"status.block": "დაბლოკე @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "შეტყობინებები",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "ძებნა",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "Бұғаттау @{name}",
|
||||
"account.block_domain": "Домендегі барлығын бұғатта {domain}",
|
||||
"account.blocked": "Бұғатталды",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "Жеке хат @{name}",
|
||||
"account.domain_blocked": "Домен жабық",
|
||||
"account.edit_profile": "Профильді өңдеу",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "Жаһандық желі",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "Артқа",
|
||||
"column_header.hide_settings": "Баптауларды жасыр",
|
||||
"column_header.show_settings": "Баптауларды көрсет",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "Көрінуді қосу",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "Басымдықтар",
|
||||
"navigation_bar.public_timeline": "Жаһандық желі",
|
||||
"navigation_bar.security": "Қауіпсіздік",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name} жазбаңызды таңдаулыға қосты",
|
||||
"notification.follow": "{name} сізге жазылды",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "@{name} үшін модерация интерфейсін аш",
|
||||
"status.admin_status": "Бұл жазбаны модерация интерфейсінде аш",
|
||||
"status.block": "Бұғаттау @{name}",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "Ескертпелер",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "Іздеу",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"account.block": "@{name}을 차단",
|
||||
"account.block_domain": "{domain} 전체를 숨김",
|
||||
"account.blocked": "차단 됨",
|
||||
"account.deactivated": "Deactivated",
|
||||
"account.deactivated_description": "This account has been deactivated.",
|
||||
"account.direct": "@{name}으로부터의 다이렉트 메시지",
|
||||
"account.domain_blocked": "도메인 숨겨짐",
|
||||
"account.edit_profile": "프로필 편집",
|
||||
|
@ -96,7 +98,7 @@
|
|||
"column.preferences": "Preferences",
|
||||
"column.public": "연합 타임라인",
|
||||
"column.security": "Security",
|
||||
"column.soapbox_settings": "Soapbox settings",
|
||||
"column.soapbox_config": "Soapbox config",
|
||||
"column_back_button.label": "돌아가기",
|
||||
"column_header.hide_settings": "설정 숨기기",
|
||||
"column_header.show_settings": "설정 보이기",
|
||||
|
@ -304,6 +306,7 @@
|
|||
"login.otp_log_in.fail": "Invalid code, please try again.",
|
||||
"login.reset_password_hint": "Trouble logging in?",
|
||||
"media_gallery.toggle_visible": "표시 전환",
|
||||
"media_panel.title": "Media",
|
||||
"mfa.mfa_disable_enter_password": "Enter your current password to disable two-factor auth:",
|
||||
"mfa.mfa_setup_enter_password": "Enter your current password to confirm your identity:",
|
||||
"mfa.mfa_setup_scan_description": "Using your two-factor app, scan this QR code or enter text key:",
|
||||
|
@ -345,6 +348,7 @@
|
|||
"navigation_bar.preferences": "사용자 설정",
|
||||
"navigation_bar.public_timeline": "연합 타임라인",
|
||||
"navigation_bar.security": "보안",
|
||||
"navigation_bar.soapbox_config": "Soapbox config",
|
||||
"notification.emoji_react": "{name} reacted to your post",
|
||||
"notification.favourite": "{name}님이 즐겨찾기 했습니다",
|
||||
"notification.follow": "{name}님이 나를 팔로우 했습니다",
|
||||
|
@ -477,33 +481,33 @@
|
|||
"security.update_password.success": "Password successfully updated.",
|
||||
"signup_panel.subtitle": "Sign up now to discuss.",
|
||||
"signup_panel.title": "New to {site_title}?",
|
||||
"soapbox_settings.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_settings.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.fields.auto_play_gif_label": "Auto-play GIFs",
|
||||
"soapbox_settings.fields.banner_label": "Banner",
|
||||
"soapbox_settings.fields.brand_color_label": "Brand color",
|
||||
"soapbox_settings.fields.custom_css.add": "Add new Custom CSS item",
|
||||
"soapbox_settings.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_settings.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_settings.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_settings.fields.logo_label": "Logo",
|
||||
"soapbox_settings.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_settings.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_settings.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_settings.hints.auto_play_gif": "Enable auto-playing of GIF files in timeline",
|
||||
"soapbox_settings.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be downscaled to 400x400px",
|
||||
"soapbox_settings.hints.custom_css_fields": "You can have custom CSS definitions",
|
||||
"soapbox_settings.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_settings.hints.logo": "SVG. At most 2 MB. Will be downscaled to 50px height, maintaining aspect ratio",
|
||||
"soapbox_settings.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_settings.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_settings.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_settings.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_settings.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_settings.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_settings.save": "Save",
|
||||
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
|
||||
"soapbox_config.custom_css.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.fields.banner_label": "Banner",
|
||||
"soapbox_config.fields.brand_color_label": "Brand color",
|
||||
"soapbox_config.fields.custom_css.add": "Add another custom CSS URL",
|
||||
"soapbox_config.fields.custom_css_fields_label": "Custom CSS",
|
||||
"soapbox_config.fields.home_footer.add": "Add new Home Footer Item",
|
||||
"soapbox_config.fields.home_footer_fields_label": "Home footer items",
|
||||
"soapbox_config.fields.logo_label": "Logo",
|
||||
"soapbox_config.fields.patron_enabled_label": "Patron module",
|
||||
"soapbox_config.fields.promo_panel.add": "Add new Promo panel item",
|
||||
"soapbox_config.fields.promo_panel_fields_label": "Promo panel items",
|
||||
"soapbox_config.hints.banner": "PNG, GIF or JPG. At most 2 MB. Will be displayed to 400x400px",
|
||||
"soapbox_config.hints.custom_css_fields": "Insert a URL to a CSS file like `https://mysite.com/instance/custom.css`, or simply `/instance/custom.css`",
|
||||
"soapbox_config.hints.home_footer_fields": "You can have custom defined links displayed on the footer of your static pages",
|
||||
"soapbox_config.hints.logo": "SVG. At most 2 MB. Will be displayed to 50px height, maintaining aspect ratio",
|
||||
"soapbox_config.hints.patron_enabled": "Enables display of Patron module. Requires installation of Patron module.",
|
||||
"soapbox_config.hints.promo_panel_fields": "You can have custom defined links displayed on the left panel of the timelines page.",
|
||||
"soapbox_config.hints.promo_panel_icons": "{ link }",
|
||||
"soapbox_config.home_footer.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.home_footer.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
|
||||
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
|
||||
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
|
||||
"soapbox_config.raw_json_hint": "Advanced: Edit the settings data directly.",
|
||||
"soapbox_config.raw_json_label": "Raw JSON data",
|
||||
"soapbox_config.save": "Save",
|
||||
"status.admin_account": "@{name}에 대한 모더레이션 인터페이스 열기",
|
||||
"status.admin_status": "모더레이션 인터페이스에서 이 게시물 열기",
|
||||
"status.block": "@{name} 차단",
|
||||
|
@ -554,6 +558,7 @@
|
|||
"tabs_bar.news": "News",
|
||||
"tabs_bar.notifications": "알림",
|
||||
"tabs_bar.post": "Post",
|
||||
"tabs_bar.reports": "Reports",
|
||||
"tabs_bar.search": "검색",
|
||||
"tabs_bar.theme_toggle_dark": "Switch to dark theme",
|
||||
"tabs_bar.theme_toggle_light": "Switch to light theme",
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue