Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
This commit is contained in:
commit
933840bebf
2
Gemfile
2
Gemfile
|
@ -29,7 +29,7 @@ gem 'browser'
|
||||||
gem 'charlock_holmes', '~> 0.7.5'
|
gem 'charlock_holmes', '~> 0.7.5'
|
||||||
gem 'iso-639'
|
gem 'iso-639'
|
||||||
gem 'cld3', '~> 3.2.0'
|
gem 'cld3', '~> 3.2.0'
|
||||||
gem 'devise', '~> 4.2'
|
gem 'devise', '~> 4.3'
|
||||||
gem 'devise-two-factor', '~> 3.0'
|
gem 'devise-two-factor', '~> 3.0'
|
||||||
gem 'doorkeeper', '~> 4.2'
|
gem 'doorkeeper', '~> 4.2'
|
||||||
gem 'fast_blank', '~> 1.0'
|
gem 'fast_blank', '~> 1.0'
|
||||||
|
|
|
@ -562,7 +562,7 @@ DEPENDENCIES
|
||||||
charlock_holmes (~> 0.7.5)
|
charlock_holmes (~> 0.7.5)
|
||||||
cld3 (~> 3.2.0)
|
cld3 (~> 3.2.0)
|
||||||
climate_control (~> 0.2)
|
climate_control (~> 0.2)
|
||||||
devise (~> 4.2)
|
devise (~> 4.3)
|
||||||
devise-two-factor (~> 3.0)
|
devise-two-factor (~> 3.0)
|
||||||
doorkeeper (~> 4.2)
|
doorkeeper (~> 4.2)
|
||||||
dotenv-rails (~> 2.2)
|
dotenv-rails (~> 2.2)
|
||||||
|
|
|
@ -38,6 +38,10 @@ class Auth::RegistrationsController < Devise::RegistrationsController
|
||||||
new_user_session_path
|
new_user_session_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def after_update_path_for(_resource)
|
||||||
|
edit_user_registration_path
|
||||||
|
end
|
||||||
|
|
||||||
def check_enabled_registrations
|
def check_enabled_registrations
|
||||||
redirect_to root_path if single_user_mode? || !allowed_registrations?
|
redirect_to root_path if single_user_mode? || !allowed_registrations?
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,6 +10,7 @@ class StatusesController < ApplicationController
|
||||||
before_action :set_link_headers
|
before_action :set_link_headers
|
||||||
before_action :check_account_suspension
|
before_action :check_account_suspension
|
||||||
before_action :redirect_to_original, only: [:show]
|
before_action :redirect_to_original, only: [:show]
|
||||||
|
before_action { response.headers['Vary'] = 'Accept' }
|
||||||
|
|
||||||
def show
|
def show
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
@ -26,6 +27,12 @@ class StatusesController < ApplicationController
|
||||||
serializer: ActivityPub::NoteSerializer,
|
serializer: ActivityPub::NoteSerializer,
|
||||||
adapter: ActivityPub::Adapter,
|
adapter: ActivityPub::Adapter,
|
||||||
content_type: 'application/activity+json'
|
content_type: 'application/activity+json'
|
||||||
|
|
||||||
|
# Allow HTTP caching for 3 minutes if the status is public
|
||||||
|
unless @stream_entry.hidden?
|
||||||
|
request.session_options[:skip] = true
|
||||||
|
expires_in(3.minutes, public: true)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,6 +30,7 @@ module SettingsHelper
|
||||||
ru: 'Русский',
|
ru: 'Русский',
|
||||||
sk: 'Slovensky',
|
sk: 'Slovensky',
|
||||||
sr: 'Српски',
|
sr: 'Српски',
|
||||||
|
'sr-Latn': 'Srpski (latinica)',
|
||||||
sv: 'Svenska',
|
sv: 'Svenska',
|
||||||
th: 'ภาษาไทย',
|
th: 'ภาษาไทย',
|
||||||
tr: 'Türkçe',
|
tr: 'Türkçe',
|
||||||
|
|
|
@ -31,7 +31,7 @@ const fetchRelatedRelationships = (dispatch, notifications) => {
|
||||||
|
|
||||||
const unescapeHTML = (html) => {
|
const unescapeHTML = (html) => {
|
||||||
const wrapper = document.createElement('div');
|
const wrapper = document.createElement('div');
|
||||||
html = html.replace(/<br \/>|<br>|\n/, ' ');
|
html = html.replace(/<br \/>|<br>|\n/g, ' ');
|
||||||
wrapper.innerHTML = html;
|
wrapper.innerHTML = html;
|
||||||
return wrapper.textContent;
|
return wrapper.textContent;
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,9 +15,9 @@ export {
|
||||||
register,
|
register,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function changeAlerts(key, value) {
|
export function changeAlerts(path, value) {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
dispatch(setAlerts(key, value));
|
dispatch(setAlerts(path, value));
|
||||||
dispatch(saveSettings());
|
dispatch(saveSettings());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,11 @@ export function clearSubscription () {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setAlerts (key, value) {
|
export function setAlerts (path, value) {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
dispatch({
|
dispatch({
|
||||||
type: SET_ALERTS,
|
type: SET_ALERTS,
|
||||||
key,
|
path,
|
||||||
value,
|
value,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,11 +4,11 @@ import { debounce } from 'lodash';
|
||||||
export const SETTING_CHANGE = 'SETTING_CHANGE';
|
export const SETTING_CHANGE = 'SETTING_CHANGE';
|
||||||
export const SETTING_SAVE = 'SETTING_SAVE';
|
export const SETTING_SAVE = 'SETTING_SAVE';
|
||||||
|
|
||||||
export function changeSetting(key, value) {
|
export function changeSetting(path, value) {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
dispatch({
|
dispatch({
|
||||||
type: SETTING_CHANGE,
|
type: SETTING_CHANGE,
|
||||||
key,
|
path,
|
||||||
value,
|
value,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ const debouncedSave = debounce((dispatch, getState) => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = getState().get('settings').filter((_, key) => key !== 'saved').toJS();
|
const data = getState().get('settings').filter((_, path) => path !== 'saved').toJS();
|
||||||
|
|
||||||
axios.put('/api/web/settings', { data }).then(() => dispatch({ type: SETTING_SAVE }));
|
axios.put('/api/web/settings', { data }).then(() => dispatch({ type: SETTING_SAVE }));
|
||||||
}, 5000, { trailing: true });
|
}, 5000, { trailing: true });
|
||||||
|
|
|
@ -5,20 +5,27 @@ import PropTypes from 'prop-types';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
import { me } from '../../../initial_state';
|
import { me } from '../../../initial_state';
|
||||||
|
|
||||||
|
const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\S+)/i;
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),
|
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),
|
||||||
|
hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && APPROX_HASHTAG_RE.test(state.getIn(['compose', 'text'])),
|
||||||
});
|
});
|
||||||
|
|
||||||
const WarningWrapper = ({ needsLockWarning }) => {
|
const WarningWrapper = ({ needsLockWarning, hashtagWarning }) => {
|
||||||
if (needsLockWarning) {
|
if (needsLockWarning) {
|
||||||
return <Warning message={<FormattedMessage id='compose_form.lock_disclaimer' defaultMessage='Your account is not {locked}. Anyone can follow you to view your follower-only posts.' values={{ locked: <a href='/settings/profile'><FormattedMessage id='compose_form.lock_disclaimer.lock' defaultMessage='locked' /></a> }} />} />;
|
return <Warning message={<FormattedMessage id='compose_form.lock_disclaimer' defaultMessage='Your account is not {locked}. Anyone can follow you to view your follower-only posts.' values={{ locked: <a href='/settings/profile'><FormattedMessage id='compose_form.lock_disclaimer.lock' defaultMessage='locked' /></a> }} />} />;
|
||||||
}
|
}
|
||||||
|
if (hashtagWarning) {
|
||||||
|
return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag." />} />;
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
WarningWrapper.propTypes = {
|
WarningWrapper.propTypes = {
|
||||||
needsLockWarning: PropTypes.bool,
|
needsLockWarning: PropTypes.bool,
|
||||||
|
hashtagWarning: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default connect(mapStateToProps)(WarningWrapper);
|
export default connect(mapStateToProps)(WarningWrapper);
|
||||||
|
|
|
@ -14,8 +14,8 @@ export default class ColumnSettings extends React.PureComponent {
|
||||||
onClear: PropTypes.func.isRequired,
|
onClear: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
onPushChange = (key, checked) => {
|
onPushChange = (path, checked) => {
|
||||||
this.props.onChange(['push', ...key], checked);
|
this.props.onChange(['push', ...path], checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -18,11 +18,11 @@ const mapStateToProps = state => ({
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch, { intl }) => ({
|
const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||||
|
|
||||||
onChange (key, checked) {
|
onChange (path, checked) {
|
||||||
if (key[0] === 'push') {
|
if (path[0] === 'push') {
|
||||||
dispatch(changePushNotifications(key.slice(1), checked));
|
dispatch(changePushNotifications(path.slice(1), checked));
|
||||||
} else {
|
} else {
|
||||||
dispatch(changeSetting(['notifications', ...key], checked));
|
dispatch(changeSetting(['notifications', ...path], checked));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
259
app/javascript/mastodon/locales/sr-Latn.json
Normal file
259
app/javascript/mastodon/locales/sr-Latn.json
Normal file
|
@ -0,0 +1,259 @@
|
||||||
|
{
|
||||||
|
"account.block": "Blokiraj korisnika @{name}",
|
||||||
|
"account.block_domain": "Sakrij sve sa domena {domain}",
|
||||||
|
"account.disclaimer_full": "Navedene informacije možda ne odslikavaju korisnički profil u potpunosti.",
|
||||||
|
"account.edit_profile": "Izmeni profil",
|
||||||
|
"account.follow": "Zaprati",
|
||||||
|
"account.followers": "Pratioca",
|
||||||
|
"account.follows": "Prati",
|
||||||
|
"account.follows_you": "Prati Vas",
|
||||||
|
"account.hide_reblogs": "Sakrij podrške koje daje korisnika @{name}",
|
||||||
|
"account.media": "Mediji",
|
||||||
|
"account.mention": "Pomeni korisnika @{name}",
|
||||||
|
"account.moved_to": "{name} se pomerio na:",
|
||||||
|
"account.mute": "Mutiraj @{name}",
|
||||||
|
"account.mute_notifications": "Isključi obaveštenja od korisnika @{name}",
|
||||||
|
"account.posts": "Statusa",
|
||||||
|
"account.report": "Prijavi @{name}",
|
||||||
|
"account.requested": "Čekam odobrenje. Kliknite da poništite zahtev za praćenje",
|
||||||
|
"account.share": "Podeli profil korisnika @{name}",
|
||||||
|
"account.show_reblogs": "Prikaži podrške od korisnika @{name}",
|
||||||
|
"account.unblock": "Odblokiraj korisnika @{name}",
|
||||||
|
"account.unblock_domain": "Odblokiraj domen {domain}",
|
||||||
|
"account.unfollow": "Otprati",
|
||||||
|
"account.unmute": "Odmutiraj @{name}",
|
||||||
|
"account.unmute_notifications": "Uključi nazad obaveštenja od korisnika @{name}",
|
||||||
|
"account.view_full_profile": "Vidi ceo profil",
|
||||||
|
"boost_modal.combo": "Možete pritisnuti {combo} da preskočite ovo sledeći put",
|
||||||
|
"bundle_column_error.body": "Nešto je pošlo po zlu prilikom učitavanja ove komponente.",
|
||||||
|
"bundle_column_error.retry": "Pokušajte ponovo",
|
||||||
|
"bundle_column_error.title": "Mrežna greška",
|
||||||
|
"bundle_modal_error.close": "Zatvori",
|
||||||
|
"bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.",
|
||||||
|
"bundle_modal_error.retry": "Pokušajte ponovo",
|
||||||
|
"column.blocks": "Blokirani korisnici",
|
||||||
|
"column.community": "Lokalna lajna",
|
||||||
|
"column.favourites": "Omiljeni",
|
||||||
|
"column.follow_requests": "Zahtevi za praćenje",
|
||||||
|
"column.home": "Početna",
|
||||||
|
"column.lists": "Liste",
|
||||||
|
"column.mutes": "Mutirani korisnici",
|
||||||
|
"column.notifications": "Obaveštenja",
|
||||||
|
"column.pins": "Prikačeni tutovi",
|
||||||
|
"column.public": "Združena lajna",
|
||||||
|
"column_back_button.label": "Nazad",
|
||||||
|
"column_header.hide_settings": "Sakrij postavke",
|
||||||
|
"column_header.moveLeft_settings": "Pomeri kolonu ulevo",
|
||||||
|
"column_header.moveRight_settings": "Pomeri kolonu udesno",
|
||||||
|
"column_header.pin": "Prikači",
|
||||||
|
"column_header.show_settings": "Prikaži postavke",
|
||||||
|
"column_header.unpin": "Otkači",
|
||||||
|
"column_subheading.navigation": "Navigacija",
|
||||||
|
"column_subheading.settings": "Postavke",
|
||||||
|
"compose_form.lock_disclaimer": "Vaš nalog nije {locked}. Svako može da Vas zaprati i da vidi objave namenjene samo Vašim pratiocima.",
|
||||||
|
"compose_form.lock_disclaimer.lock": "zaključan",
|
||||||
|
"compose_form.placeholder": "Šta Vam je na umu?",
|
||||||
|
"compose_form.publish": "Tutni",
|
||||||
|
"compose_form.publish_loud": "{publish}!",
|
||||||
|
"compose_form.sensitive": "Obeleži multimediju kao osetljivu",
|
||||||
|
"compose_form.spoiler": "Sakrij tekst ispod upozorenja",
|
||||||
|
"compose_form.spoiler_placeholder": "Ovde upišite upozorenje",
|
||||||
|
"confirmation_modal.cancel": "Poništi",
|
||||||
|
"confirmations.block.confirm": "Blokiraj",
|
||||||
|
"confirmations.block.message": "Da li ste sigurni da želite da blokirate korisnika {name}?",
|
||||||
|
"confirmations.delete.confirm": "Obriši",
|
||||||
|
"confirmations.delete.message": "Da li ste sigurni da želite obrišete ovaj status?",
|
||||||
|
"confirmations.delete_list.confirm": "Obriši",
|
||||||
|
"confirmations.delete_list.message": "Da li ste sigurni da želite da bespovratno obrišete ovu listu?",
|
||||||
|
"confirmations.domain_block.confirm": "Sakrij ceo domen",
|
||||||
|
"confirmations.domain_block.message": "Da li ste stvarno, stvarno sigurno da želite da blokirate ceo domen {domain}? U većini slučajeva, par dobrih blokiranja ili mutiranja su dovoljna i preporučljiva.",
|
||||||
|
"confirmations.mute.confirm": "Mutiraj",
|
||||||
|
"confirmations.mute.message": "Da li stvarno želite da mutirate korisnika {name}?",
|
||||||
|
"confirmations.unfollow.confirm": "Otprati",
|
||||||
|
"confirmations.unfollow.message": "Da li ste sigurni da želite da otpratite korisnika {name}?",
|
||||||
|
"embed.instructions": "Ugradi ovaj status na Vaš veb sajt kopiranjem koda ispod.",
|
||||||
|
"embed.preview": "Ovako će da izgleda:",
|
||||||
|
"emoji_button.activity": "Aktivnost",
|
||||||
|
"emoji_button.custom": "Proizvoljno",
|
||||||
|
"emoji_button.flags": "Zastave",
|
||||||
|
"emoji_button.food": "Hrana & piće",
|
||||||
|
"emoji_button.label": "Ubaci smajli",
|
||||||
|
"emoji_button.nature": "Priroda",
|
||||||
|
"emoji_button.not_found": "Nema smajlija!! (╯°□°)╯︵ ┻━┻",
|
||||||
|
"emoji_button.objects": "Objekti",
|
||||||
|
"emoji_button.people": "Ljudi",
|
||||||
|
"emoji_button.recent": "Najčešće korišćeni",
|
||||||
|
"emoji_button.search": "Pretraga...",
|
||||||
|
"emoji_button.search_results": "Rezultati pretrage",
|
||||||
|
"emoji_button.symbols": "Simboli",
|
||||||
|
"emoji_button.travel": "Putovanja & mesta",
|
||||||
|
"empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
|
||||||
|
"empty_column.hashtag": "Trenutno nema ništa na ovom heštegu.",
|
||||||
|
"empty_column.home": "Vaša lajna je prazna! Posetite {public} ili koristite pretragu da počnete i upoznajete nove ljude.",
|
||||||
|
"empty_column.home.public_timeline": "javna lajna",
|
||||||
|
"empty_column.list": "U ovoj listi još nema ničega. Kada članovi liste objave nove statuse, oni će se pojavljivati ovde.",
|
||||||
|
"empty_column.notifications": "Trenutno nemate obaveštenja. Družite se malo da započnete razgovore.",
|
||||||
|
"empty_column.public": "Ovde nema ničega! Napišite nešto javno, ili nađite korisnike sa drugih instanci koje ćete zapratiti da popunite ovu prazninu",
|
||||||
|
"follow_request.authorize": "Odobri",
|
||||||
|
"follow_request.reject": "Odbij",
|
||||||
|
"getting_started.appsshort": "Aplikacije",
|
||||||
|
"getting_started.faq": "ČPP",
|
||||||
|
"getting_started.heading": "Da počnete",
|
||||||
|
"getting_started.open_source_notice": "Mastodont je softver otvorenog koda. Možete mu doprineti ili prijaviti probleme preko GitHub-a na {github}.",
|
||||||
|
"getting_started.userguide": "Korisničko uputstvo",
|
||||||
|
"home.column_settings.advanced": "Napredno",
|
||||||
|
"home.column_settings.basic": "Osnovno",
|
||||||
|
"home.column_settings.filter_regex": "Filtriraj regularnim izrazima",
|
||||||
|
"home.column_settings.show_reblogs": "Prikaži i podržavanja",
|
||||||
|
"home.column_settings.show_replies": "Prikaži odgovore",
|
||||||
|
"home.settings": "Postavke kolone",
|
||||||
|
"keyboard_shortcuts.back": "da odete nazad",
|
||||||
|
"keyboard_shortcuts.boost": "da podržite",
|
||||||
|
"keyboard_shortcuts.column": "da se prebacite na status u jednoj od kolona",
|
||||||
|
"keyboard_shortcuts.compose": "da se prebacite na pisanje novog tuta",
|
||||||
|
"keyboard_shortcuts.description": "Opis",
|
||||||
|
"keyboard_shortcuts.down": "da se pomerite na dole u listi",
|
||||||
|
"keyboard_shortcuts.enter": "da otvorite status",
|
||||||
|
"keyboard_shortcuts.favourite": "da označite kao omiljeno",
|
||||||
|
"keyboard_shortcuts.heading": "Prečice na tastaturi",
|
||||||
|
"keyboard_shortcuts.hotkey": "Prečica",
|
||||||
|
"keyboard_shortcuts.legend": "da prikažete ovaj podsetnik",
|
||||||
|
"keyboard_shortcuts.mention": "da pomenete autora",
|
||||||
|
"keyboard_shortcuts.reply": "da odgovorite",
|
||||||
|
"keyboard_shortcuts.search": "da se prebacite na pretragu",
|
||||||
|
"keyboard_shortcuts.toot": "da započnete skroz novi tut",
|
||||||
|
"keyboard_shortcuts.unfocus": "da ne budete više na pretrazi/pravljenju novog tuta",
|
||||||
|
"keyboard_shortcuts.up": "da se pomerite na gore u listi",
|
||||||
|
"lightbox.close": "Zatvori",
|
||||||
|
"lightbox.next": "Sledeći",
|
||||||
|
"lightbox.previous": "Prethodni",
|
||||||
|
"lists.account.add": "Dodaj na listu",
|
||||||
|
"lists.account.remove": "Ukloni sa liste",
|
||||||
|
"lists.delete": "Obriši listu",
|
||||||
|
"lists.edit": "Izmeni listu",
|
||||||
|
"lists.new.create": "Dodaj listu",
|
||||||
|
"lists.new.title_placeholder": "Naslov nove liste",
|
||||||
|
"lists.search": "Pretraži među ljudima koje pratite",
|
||||||
|
"lists.subheading": "Vaše liste",
|
||||||
|
"loading_indicator.label": "Učitavam...",
|
||||||
|
"media_gallery.toggle_visible": "Uključi/isključi vidljivost",
|
||||||
|
"missing_indicator.label": "Nije pronađeno",
|
||||||
|
"mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?",
|
||||||
|
"navigation_bar.blocks": "Blokirani korisnici",
|
||||||
|
"navigation_bar.community_timeline": "Lokalna lajna",
|
||||||
|
"navigation_bar.edit_profile": "Izmeni profil",
|
||||||
|
"navigation_bar.favourites": "Omiljeni",
|
||||||
|
"navigation_bar.follow_requests": "Zahtevi za praćenje",
|
||||||
|
"navigation_bar.info": "O ovoj instanci",
|
||||||
|
"navigation_bar.keyboard_shortcuts": "Prečice na tastaturi",
|
||||||
|
"navigation_bar.lists": "Liste",
|
||||||
|
"navigation_bar.logout": "Odjava",
|
||||||
|
"navigation_bar.mutes": "Mutirani korisnici",
|
||||||
|
"navigation_bar.pins": "Prikačeni tutovi",
|
||||||
|
"navigation_bar.preferences": "Podešavanja",
|
||||||
|
"navigation_bar.public_timeline": "Združena lajna",
|
||||||
|
"notification.favourite": "{name} je stavio Vaš status kao omiljeni",
|
||||||
|
"notification.follow": "{name} Vas je zapratio",
|
||||||
|
"notification.mention": "{name} Vas je pomenuo",
|
||||||
|
"notification.reblog": "{name} je podržao(la) Vaš status",
|
||||||
|
"notifications.clear": "Očisti obaveštenja",
|
||||||
|
"notifications.clear_confirmation": "Da li ste sigurno da trajno želite da očistite Vaša obaveštenja?",
|
||||||
|
"notifications.column_settings.alert": "Obaveštenja na radnoj površini",
|
||||||
|
"notifications.column_settings.favourite": "Omiljeni:",
|
||||||
|
"notifications.column_settings.follow": "Novi pratioci:",
|
||||||
|
"notifications.column_settings.mention": "Pominjanja:",
|
||||||
|
"notifications.column_settings.push": "Guraj obaveštenja",
|
||||||
|
"notifications.column_settings.push_meta": "Ovaj uređaj",
|
||||||
|
"notifications.column_settings.reblog": "Podrški:",
|
||||||
|
"notifications.column_settings.show": "Prikaži u koloni",
|
||||||
|
"notifications.column_settings.sound": "Puštaj zvuk",
|
||||||
|
"onboarding.done": "Gotovo",
|
||||||
|
"onboarding.next": "Sledeće",
|
||||||
|
"onboarding.page_five.public_timelines": "Lokalna lajna prikazuje sve javne statuse od svih na domenu {domain}. Združena lajna prikazuje javne statuse od svih ljudi koje prate korisnici sa domena {domain}. Ovo su javne lajne, sjajan način da otkrijete nove ljude.",
|
||||||
|
"onboarding.page_four.home": "Početna lajna prikazuje statuse ljudi koje Vi pratite.",
|
||||||
|
"onboarding.page_four.notifications": "Kolona sa obaveštenjima Vam prikazuje kada neko priča sa Vama.",
|
||||||
|
"onboarding.page_one.federation": "Mastodont je mreža nezavisnih servera koji se uvezuju da naprave jednu veću društvenu mrežu. Ove servere zovemo instancama.",
|
||||||
|
"onboarding.page_one.handle": "Vi ste na domenu {domain}, pa je Vaša puna identifikacija {handle}",
|
||||||
|
"onboarding.page_one.welcome": "Dobrodošli na Mastodont!",
|
||||||
|
"onboarding.page_six.admin": "Administrator Vaše instance je {admin}.",
|
||||||
|
"onboarding.page_six.almost_done": "Još malo, pa gotovo...",
|
||||||
|
"onboarding.page_six.appetoot": "Prijatutno!",
|
||||||
|
"onboarding.page_six.apps_available": "Postoje {apps} dostupne za iOS, Android i druge platforme.",
|
||||||
|
"onboarding.page_six.github": "Mastodont je slobodan softver otvorenog koda. Možete prijavljivati greške, potraživati nove funckionalnosti, ili učestvujući u programiranju. Naš izvorni kod je ovde: {github}.",
|
||||||
|
"onboarding.page_six.guidelines": "smernice zajednice",
|
||||||
|
"onboarding.page_six.read_guidelines": "Pročitejte {guidelines} domena {domain}!",
|
||||||
|
"onboarding.page_six.various_app": "mobilne aplikacije",
|
||||||
|
"onboarding.page_three.profile": "Izmenite profil da promenite avatar, biografiju i ime za prikaz. Tamo ćete naći i ostala podešavanja.",
|
||||||
|
"onboarding.page_three.search": "Korisite pretragu da nađete ljude i gledate heštegove, kao što su {illustration} i {introductions}. Da nađete osobu koja nije na ovoj instanci, koristite njenu punu identifikaciju.",
|
||||||
|
"onboarding.page_two.compose": "Pišite statuse iz prve kolone. Možete otpremati slike, menjati podešavanja privatnosti, i dodavati upozorenja za osetljiv sadržaj preko ikonica ispod.",
|
||||||
|
"onboarding.skip": "Preskoči",
|
||||||
|
"privacy.change": "Podesi status privatnosti",
|
||||||
|
"privacy.direct.long": "Objavi samo korisnicima koji su pomenuti",
|
||||||
|
"privacy.direct.short": "Direktno",
|
||||||
|
"privacy.private.long": "Objavi samo pratiocima",
|
||||||
|
"privacy.private.short": "Samo za pratioce",
|
||||||
|
"privacy.public.long": "Objavi na javnoj lajni",
|
||||||
|
"privacy.public.short": "Javno",
|
||||||
|
"privacy.unlisted.long": "Ne objavljuj na javnim lajnama",
|
||||||
|
"privacy.unlisted.short": "Neizlistano",
|
||||||
|
"relative_time.days": "{number}d",
|
||||||
|
"relative_time.hours": "{number}h",
|
||||||
|
"relative_time.just_now": "sada",
|
||||||
|
"relative_time.minutes": "{number}m",
|
||||||
|
"relative_time.seconds": "{number}s",
|
||||||
|
"reply_indicator.cancel": "Poništi",
|
||||||
|
"report.placeholder": "Dodatni komentari",
|
||||||
|
"report.submit": "Pošalji",
|
||||||
|
"report.target": "Prijavljujem {target}",
|
||||||
|
"search.placeholder": "Pretraga",
|
||||||
|
"search_popout.search_format": "Napredni format pretrage",
|
||||||
|
"search_popout.tips.hashtag": "hešteg",
|
||||||
|
"search_popout.tips.status": "status",
|
||||||
|
"search_popout.tips.text": "Traženjem običnog teksta ćete dobiti sva pronađena imena, sva korisnička imena i sve nađene heštegove",
|
||||||
|
"search_popout.tips.user": "korisnik",
|
||||||
|
"search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}",
|
||||||
|
"standalone.public_title": "Pogled iznutra...",
|
||||||
|
"status.cannot_reblog": "Ovaj status ne može da se podrži",
|
||||||
|
"status.delete": "Obriši",
|
||||||
|
"status.embed": "Ugradi na sajt",
|
||||||
|
"status.favourite": "Omiljeno",
|
||||||
|
"status.load_more": "Učitaj još",
|
||||||
|
"status.media_hidden": "Multimedija sakrivena",
|
||||||
|
"status.mention": "Pomeni korisnika @{name}",
|
||||||
|
"status.more": "Još",
|
||||||
|
"status.mute_conversation": "Mutiraj prepisku",
|
||||||
|
"status.open": "Proširi ovaj status",
|
||||||
|
"status.pin": "Prikači na profil",
|
||||||
|
"status.reblog": "Podrži",
|
||||||
|
"status.reblogged_by": "{name} podržao(la)",
|
||||||
|
"status.reply": "Odgovori",
|
||||||
|
"status.replyAll": "Odgovori na diskusiju",
|
||||||
|
"status.report": "Prijavi korisnika @{name}",
|
||||||
|
"status.sensitive_toggle": "Kliknite da vidite",
|
||||||
|
"status.sensitive_warning": "Osetljiv sadržaj",
|
||||||
|
"status.share": "Podeli",
|
||||||
|
"status.show_less": "Prikaži manje",
|
||||||
|
"status.show_more": "Prikaži više",
|
||||||
|
"status.unmute_conversation": "Uključi prepisku",
|
||||||
|
"status.unpin": "Otkači sa profila",
|
||||||
|
"tabs_bar.compose": "Napiši",
|
||||||
|
"tabs_bar.federated_timeline": "Združeno",
|
||||||
|
"tabs_bar.home": "Početna",
|
||||||
|
"tabs_bar.local_timeline": "Lokalno",
|
||||||
|
"tabs_bar.notifications": "Obaveštenja",
|
||||||
|
"ui.beforeunload": "Ako napustite Mastodont, izgubićete napisani nacrt.",
|
||||||
|
"upload_area.title": "Prevucite ovde da otpremite",
|
||||||
|
"upload_button.label": "Dodaj multimediju",
|
||||||
|
"upload_form.description": "Opiši za slabovide osobe",
|
||||||
|
"upload_form.undo": "Opozovi",
|
||||||
|
"upload_progress.label": "Otpremam...",
|
||||||
|
"video.close": "Zatvori video",
|
||||||
|
"video.exit_fullscreen": "Napusti ceo ekran",
|
||||||
|
"video.expand": "Proširi video",
|
||||||
|
"video.fullscreen": "Ceo ekran",
|
||||||
|
"video.hide": "Sakrij video",
|
||||||
|
"video.mute": "Ugasi zvuk",
|
||||||
|
"video.pause": "Pauziraj",
|
||||||
|
"video.play": "Pusti",
|
||||||
|
"video.unmute": "Vrati zvuk"
|
||||||
|
}
|
|
@ -7,7 +7,7 @@
|
||||||
"account.followers": "Пратиоца",
|
"account.followers": "Пратиоца",
|
||||||
"account.follows": "Прати",
|
"account.follows": "Прати",
|
||||||
"account.follows_you": "Прати Вас",
|
"account.follows_you": "Прати Вас",
|
||||||
"account.hide_reblogs": "Сакриј погуравања од корисника @{name}",
|
"account.hide_reblogs": "Сакриј подршке које даје корисника @{name}",
|
||||||
"account.media": "Медији",
|
"account.media": "Медији",
|
||||||
"account.mention": "Помени корисника @{name}",
|
"account.mention": "Помени корисника @{name}",
|
||||||
"account.moved_to": "{name} се померио на:",
|
"account.moved_to": "{name} се померио на:",
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
"account.report": "Пријави @{name}",
|
"account.report": "Пријави @{name}",
|
||||||
"account.requested": "Чекам одобрење. Кликните да поништите захтев за праћење",
|
"account.requested": "Чекам одобрење. Кликните да поништите захтев за праћење",
|
||||||
"account.share": "Подели профил корисника @{name}",
|
"account.share": "Подели профил корисника @{name}",
|
||||||
"account.show_reblogs": "Прикажи погуравања од корисника @{name}",
|
"account.show_reblogs": "Прикажи подршке од корисника @{name}",
|
||||||
"account.unblock": "Одблокирај корисника @{name}",
|
"account.unblock": "Одблокирај корисника @{name}",
|
||||||
"account.unblock_domain": "Одблокирај домен {domain}",
|
"account.unblock_domain": "Одблокирај домен {domain}",
|
||||||
"account.unfollow": "Отпрати",
|
"account.unfollow": "Отпрати",
|
||||||
|
@ -104,11 +104,11 @@
|
||||||
"home.column_settings.advanced": "Напредно",
|
"home.column_settings.advanced": "Напредно",
|
||||||
"home.column_settings.basic": "Основно",
|
"home.column_settings.basic": "Основно",
|
||||||
"home.column_settings.filter_regex": "Филтрирај регуларним изразима",
|
"home.column_settings.filter_regex": "Филтрирај регуларним изразима",
|
||||||
"home.column_settings.show_reblogs": "Прикажи и погуравања",
|
"home.column_settings.show_reblogs": "Прикажи и подржавања",
|
||||||
"home.column_settings.show_replies": "Прикажи одговоре",
|
"home.column_settings.show_replies": "Прикажи одговоре",
|
||||||
"home.settings": "Поставке колоне",
|
"home.settings": "Поставке колоне",
|
||||||
"keyboard_shortcuts.back": "да одете назад",
|
"keyboard_shortcuts.back": "да одете назад",
|
||||||
"keyboard_shortcuts.boost": "да погурате",
|
"keyboard_shortcuts.boost": "да подржите",
|
||||||
"keyboard_shortcuts.column": "да се пребаците на статус у једној од колона",
|
"keyboard_shortcuts.column": "да се пребаците на статус у једној од колона",
|
||||||
"keyboard_shortcuts.compose": "да се пребаците на писање новог тута",
|
"keyboard_shortcuts.compose": "да се пребаците на писање новог тута",
|
||||||
"keyboard_shortcuts.description": "Опис",
|
"keyboard_shortcuts.description": "Опис",
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
"notification.favourite": "{name} је ставио Ваш статус као омиљени",
|
"notification.favourite": "{name} је ставио Ваш статус као омиљени",
|
||||||
"notification.follow": "{name} Вас је запратио",
|
"notification.follow": "{name} Вас је запратио",
|
||||||
"notification.mention": "{name} Вас је поменуо",
|
"notification.mention": "{name} Вас је поменуо",
|
||||||
"notification.reblog": "{name} је погурао Ваш статус",
|
"notification.reblog": "{name} је подржао(ла) Ваш статус",
|
||||||
"notifications.clear": "Очисти обавештења",
|
"notifications.clear": "Очисти обавештења",
|
||||||
"notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?",
|
"notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?",
|
||||||
"notifications.column_settings.alert": "Обавештења на радној површини",
|
"notifications.column_settings.alert": "Обавештења на радној површини",
|
||||||
|
@ -164,7 +164,7 @@
|
||||||
"notifications.column_settings.mention": "Помињања:",
|
"notifications.column_settings.mention": "Помињања:",
|
||||||
"notifications.column_settings.push": "Гурај обавештења",
|
"notifications.column_settings.push": "Гурај обавештења",
|
||||||
"notifications.column_settings.push_meta": "Овај уређај",
|
"notifications.column_settings.push_meta": "Овај уређај",
|
||||||
"notifications.column_settings.reblog": "Погуравања:",
|
"notifications.column_settings.reblog": "Подршки:",
|
||||||
"notifications.column_settings.show": "Прикажи у колони",
|
"notifications.column_settings.show": "Прикажи у колони",
|
||||||
"notifications.column_settings.sound": "Пуштај звук",
|
"notifications.column_settings.sound": "Пуштај звук",
|
||||||
"onboarding.done": "Готово",
|
"onboarding.done": "Готово",
|
||||||
|
@ -213,7 +213,7 @@
|
||||||
"search_popout.tips.user": "корисник",
|
"search_popout.tips.user": "корисник",
|
||||||
"search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
|
"search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
|
||||||
"standalone.public_title": "Поглед изнутра...",
|
"standalone.public_title": "Поглед изнутра...",
|
||||||
"status.cannot_reblog": "Овај статус не може да се погура",
|
"status.cannot_reblog": "Овај статус не може да се подржи",
|
||||||
"status.delete": "Обриши",
|
"status.delete": "Обриши",
|
||||||
"status.embed": "Угради на сајт",
|
"status.embed": "Угради на сајт",
|
||||||
"status.favourite": "Омиљено",
|
"status.favourite": "Омиљено",
|
||||||
|
@ -224,8 +224,8 @@
|
||||||
"status.mute_conversation": "Мутирај преписку",
|
"status.mute_conversation": "Мутирај преписку",
|
||||||
"status.open": "Прошири овај статус",
|
"status.open": "Прошири овај статус",
|
||||||
"status.pin": "Прикачи на профил",
|
"status.pin": "Прикачи на профил",
|
||||||
"status.reblog": "Погурај",
|
"status.reblog": "Подржи",
|
||||||
"status.reblogged_by": "{name} погурао(ла)",
|
"status.reblogged_by": "{name} подржао(ла)",
|
||||||
"status.reply": "Одговори",
|
"status.reply": "Одговори",
|
||||||
"status.replyAll": "Одговори на дискусију",
|
"status.replyAll": "Одговори на дискусију",
|
||||||
"status.report": "Пријави корисника @{name}",
|
"status.report": "Пријави корисника @{name}",
|
||||||
|
|
|
@ -44,7 +44,7 @@ export default function push_subscriptions(state = initialState, action) {
|
||||||
case CLEAR_SUBSCRIPTION:
|
case CLEAR_SUBSCRIPTION:
|
||||||
return initialState;
|
return initialState;
|
||||||
case SET_ALERTS:
|
case SET_ALERTS:
|
||||||
return state.setIn(action.key, action.value);
|
return state.setIn(action.path, action.value);
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ export default function settings(state = initialState, action) {
|
||||||
return hydrate(state, action.state.get('settings'));
|
return hydrate(state, action.state.get('settings'));
|
||||||
case SETTING_CHANGE:
|
case SETTING_CHANGE:
|
||||||
return state
|
return state
|
||||||
.setIn(action.key, action.value)
|
.setIn(action.path, action.value)
|
||||||
.set('saved', false);
|
.set('saved', false);
|
||||||
case COLUMN_ADD:
|
case COLUMN_ADD:
|
||||||
return state
|
return state
|
||||||
|
|
|
@ -2072,6 +2072,11 @@
|
||||||
cursor: default;
|
cursor: default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.getting-started__wrapper,
|
||||||
|
.getting_started {
|
||||||
|
background: $ui-base-color;
|
||||||
|
}
|
||||||
|
|
||||||
.getting-started__wrapper {
|
.getting-started__wrapper {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
|
@ -15,7 +15,7 @@ class ActivityTracker
|
||||||
key = [prefix, current_week].join(':')
|
key = [prefix, current_week].join(':')
|
||||||
|
|
||||||
redis.pfadd(key, value)
|
redis.pfadd(key, value)
|
||||||
redis.expire(key, value)
|
redis.expire(key, EXPIRE_AFTER)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -13,6 +13,7 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity
|
||||||
|
|
||||||
def delete_person
|
def delete_person
|
||||||
SuspendAccountService.new.call(@account)
|
SuspendAccountService.new.call(@account)
|
||||||
|
@account.destroy!
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete_note
|
def delete_note
|
||||||
|
|
|
@ -6,14 +6,14 @@ class Sanitize
|
||||||
|
|
||||||
CLASS_WHITELIST_TRANSFORMER = lambda do |env|
|
CLASS_WHITELIST_TRANSFORMER = lambda do |env|
|
||||||
node = env[:node]
|
node = env[:node]
|
||||||
class_list = node['class']&.split(' ')
|
class_list = node['class']&.split(/[\t\n\f\r ]/)
|
||||||
|
|
||||||
return unless class_list
|
return unless class_list
|
||||||
|
|
||||||
class_list.keep_if do |e|
|
class_list.keep_if do |e|
|
||||||
return true if e =~ /^(h|p|u|dt|e)-/ # microformats classes
|
next true if e =~ /^(h|p|u|dt|e)-/ # microformats classes
|
||||||
return true if e =~ /^(mention|hashtag)$/ # semantic classes
|
next true if e =~ /^(mention|hashtag)$/ # semantic classes
|
||||||
return true if e =~ /^(ellipsis|invisible)$/ # link formatting classes
|
next true if e =~ /^(ellipsis|invisible)$/ # link formatting classes
|
||||||
end
|
end
|
||||||
|
|
||||||
node['class'] = class_list.join(' ')
|
node['class'] = class_list.join(' ')
|
||||||
|
|
|
@ -13,7 +13,9 @@ class UserMailer < Devise::Mailer
|
||||||
return if @resource.disabled?
|
return if @resource.disabled?
|
||||||
|
|
||||||
I18n.with_locale(@resource.locale || I18n.default_locale) do
|
I18n.with_locale(@resource.locale || I18n.default_locale) do
|
||||||
mail to: @resource.unconfirmed_email.blank? ? @resource.email : @resource.unconfirmed_email, subject: I18n.t('devise.mailer.confirmation_instructions.subject', instance: @instance)
|
mail to: @resource.unconfirmed_email.blank? ? @resource.email : @resource.unconfirmed_email,
|
||||||
|
subject: I18n.t(@resource.pending_reconfirmation? ? 'devise.mailer.reconfirmation_instructions.subject' : 'devise.mailer.confirmation_instructions.subject', instance: @instance),
|
||||||
|
template_name: @resource.pending_reconfirmation? ? 'reconfirmation_instructions' : 'confirmation_instructions'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -39,4 +41,15 @@ class UserMailer < Devise::Mailer
|
||||||
mail to: @resource.email, subject: I18n.t('devise.mailer.password_change.subject')
|
mail to: @resource.email, subject: I18n.t('devise.mailer.password_change.subject')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def email_changed(user, **)
|
||||||
|
@resource = user
|
||||||
|
@instance = Rails.configuration.x.local_domain
|
||||||
|
|
||||||
|
return if @resource.disabled?
|
||||||
|
|
||||||
|
I18n.with_locale(@resource.locale || I18n.default_locale) do
|
||||||
|
mail to: @resource.email, subject: I18n.t('devise.mailer.email_changed.subject')
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -41,12 +41,15 @@ class User < ApplicationRecord
|
||||||
|
|
||||||
ACTIVE_DURATION = 14.days
|
ACTIVE_DURATION = 14.days
|
||||||
|
|
||||||
devise :registerable, :recoverable,
|
devise :two_factor_authenticatable,
|
||||||
:rememberable, :trackable, :validatable, :confirmable,
|
otp_secret_encryption_key: ENV['OTP_SECRET']
|
||||||
:two_factor_authenticatable, :two_factor_backupable,
|
|
||||||
otp_secret_encryption_key: ENV['OTP_SECRET'],
|
devise :two_factor_backupable,
|
||||||
otp_number_of_backup_codes: 10
|
otp_number_of_backup_codes: 10
|
||||||
|
|
||||||
|
devise :registerable, :recoverable, :rememberable, :trackable, :validatable,
|
||||||
|
:confirmable
|
||||||
|
|
||||||
belongs_to :account, inverse_of: :user, required: true
|
belongs_to :account, inverse_of: :user, required: true
|
||||||
belongs_to :invite, counter_cache: :uses
|
belongs_to :invite, counter_cache: :uses
|
||||||
accepts_nested_attributes_for :account
|
accepts_nested_attributes_for :account
|
||||||
|
|
|
@ -74,7 +74,7 @@ class ActivityPub::ProcessAccountService < BaseService
|
||||||
@account.statuses_count = outbox_total_items if outbox_total_items.present?
|
@account.statuses_count = outbox_total_items if outbox_total_items.present?
|
||||||
@account.following_count = following_total_items if following_total_items.present?
|
@account.following_count = following_total_items if following_total_items.present?
|
||||||
@account.followers_count = followers_total_items if followers_total_items.present?
|
@account.followers_count = followers_total_items if followers_total_items.present?
|
||||||
@account.moved_to_account = moved_account if @json['movedTo'].present?
|
@account.moved_to_account = @json['movedTo'].present? ? moved_account : nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def after_protocol_change!
|
def after_protocol_change!
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
%head
|
%head
|
||||||
%meta{ charset: 'utf-8' }/
|
%meta{ charset: 'utf-8' }/
|
||||||
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }/
|
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }/
|
||||||
%meta{ 'http-equiv' => 'X-UA-Compatible', content: 'IE=edge' }/
|
|
||||||
%link{ rel: 'icon', href: favicon_path, type: 'image/x-icon' }/
|
%link{ rel: 'icon', href: favicon_path, type: 'image/x-icon' }/
|
||||||
%link{ rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }/
|
%link{ rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }/
|
||||||
%link{ rel: 'mask-icon', href: '/mask-icon.svg', color: '#2B90D9' }/
|
%link{ rel: 'mask-icon', href: '/mask-icon.svg', color: '#2B90D9' }/
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
<p>Dobrodošao <%= @resource.email %> !</p>
|
||||||
|
|
||||||
|
<p>Upravo ste napravili nalog na instanci <%= @instance %>.</p>
|
||||||
|
|
||||||
|
<p>Da potvrdite Vašu registraciju, molimo Vas kliknite na sledeći link: <br>
|
||||||
|
<%= link_to 'Potvrdi moj nalog', confirmation_url(@resource, confirmation_token: @token) %></p>
|
||||||
|
|
||||||
|
<p>Ako link iznad ne radi, kopirajte i nalepite ovu adresu u adresnu traku: <br>
|
||||||
|
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
|
||||||
|
|
||||||
|
<p>Takođe pogledajte i <%= link_to 'pravila i uslove korišćenja', terms_url %>.</p>
|
||||||
|
|
||||||
|
<p>S poštovanjem,<p>
|
||||||
|
|
||||||
|
<p><%= @instance %> tim</p>
|
|
@ -0,0 +1,12 @@
|
||||||
|
Dobrodošao <%= @resource.email %> !
|
||||||
|
|
||||||
|
Upravo ste napravili nalog na instanci <%= @instance %>.
|
||||||
|
|
||||||
|
Da potvrdite Vašu registraciju, molimo Vas kliknite na sledeći link:
|
||||||
|
<%= confirmation_url(@resource, confirmation_token: @token) %>
|
||||||
|
|
||||||
|
Takođe pogledajte i pravila i uslove korišćenja <%= terms_url %>
|
||||||
|
|
||||||
|
S poštovanjem,
|
||||||
|
|
||||||
|
<%= @instance %> tim
|
15
app/views/user_mailer/email_changed.en.html.erb
Normal file
15
app/views/user_mailer/email_changed.en.html.erb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<p>Hello <%= @resource.email %>!</p>
|
||||||
|
|
||||||
|
<% if @resource&.unconfirmed_email? %>
|
||||||
|
<p>We're contacting you to notify you that the email you use on <%= @instance %> is being changed to <%= @resource.unconfirmed_email %>.</p>
|
||||||
|
<% else %>
|
||||||
|
<p>We're contacting you to notify you that the email you use on <%= @instance %> has been changed to <%= @resource.email %>.</p>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the instance admin if you're locked out of your account.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>Sincerely,<p>
|
||||||
|
|
||||||
|
<p>The <%= @instance %> team</p>
|
13
app/views/user_mailer/email_changed.en.text.erb
Normal file
13
app/views/user_mailer/email_changed.en.text.erb
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Hello <%= @resource.email %>!
|
||||||
|
|
||||||
|
<% if @resource&.unconfirmed_email? %>
|
||||||
|
We're contacting you to notify you that the email you use on <%= @instance %> is being changed to <%= @resource.unconfirmed_email %>.
|
||||||
|
<% else %>
|
||||||
|
We're contacting you to notify you that the email you use on <%= @instance %> has been changed to <%= @resource.email %>.
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the instance admin if you're locked out of your account.
|
||||||
|
|
||||||
|
Sincerely,
|
||||||
|
|
||||||
|
The <%= @instance %> team
|
3
app/views/user_mailer/password_change.sr-Latn.html.erb
Normal file
3
app/views/user_mailer/password_change.sr-Latn.html.erb
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<p>Zdravo <%= @resource.email %>!</p>
|
||||||
|
|
||||||
|
<p>Želimo samo da Vas obavestimo da je Vaša lozinka na Mastodont instanci <%= @instance %> promenjena.</p>
|
3
app/views/user_mailer/password_change.sr-Latn.text.erb
Normal file
3
app/views/user_mailer/password_change.sr-Latn.text.erb
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Zdravo <%= @resource.email %>!
|
||||||
|
|
||||||
|
Želimo samo da Vas obavestimo da je Vaša lozinka na Mastodont instanci <%= @instance %> promenjena.
|
|
@ -0,0 +1,15 @@
|
||||||
|
<p>Hello <%= @resource.unconfirmed_email %>!</p>
|
||||||
|
|
||||||
|
<p>You requested a change to the email address you use on <%= @instance %>.</p>
|
||||||
|
|
||||||
|
<p>To confirm your new email, please click on the following link:<br>
|
||||||
|
<%= link_to 'Confirm my email address', confirmation_url(@resource, confirmation_token: @token) %></p>
|
||||||
|
|
||||||
|
<p>If the above link did not work, copy and paste this URL into your address bar: <br>
|
||||||
|
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
|
||||||
|
|
||||||
|
<p>Please also check out our <%= link_to 'terms and conditions', terms_url %>.</p>
|
||||||
|
|
||||||
|
<p>Sincerely,<p>
|
||||||
|
|
||||||
|
<p>The <%= @instance %> team</p>
|
|
@ -0,0 +1,12 @@
|
||||||
|
Hello <%= @resource.unconfirmed_email %>!
|
||||||
|
|
||||||
|
You requested a change to the email address you use on <%= @instance %>.
|
||||||
|
|
||||||
|
To confirm your new email, please click on the following link:
|
||||||
|
<%= confirmation_url(@resource, confirmation_token: @token) %>
|
||||||
|
|
||||||
|
Please also check out our terms and conditions <%= terms_url %>
|
||||||
|
|
||||||
|
Sincerely,
|
||||||
|
|
||||||
|
The <%= @instance %> team
|
|
@ -0,0 +1,8 @@
|
||||||
|
<p>Zdravo <%= @resource.email %>!</p>
|
||||||
|
|
||||||
|
<p>Neko je zatražio link za promenu lozinke na instanci <%= @instance %>. Ovo možete uraditi klikom na link ispod.</p>
|
||||||
|
|
||||||
|
<p><%= link_to 'Promeni moju lozinku', edit_password_url(@resource, reset_password_token: @token) %></p>
|
||||||
|
|
||||||
|
<p>Ignorišite ovu poruku, ako niste Vi bili ti koji ste zatražili promenu lozinke.</p>
|
||||||
|
<p>Lozinka se neće promeniti sve dok ne kliknete link iznad i ne napravite novu lozinku.</p>
|
|
@ -0,0 +1,8 @@
|
||||||
|
Zdravo <%= @resource.email %>!
|
||||||
|
|
||||||
|
Neko je zatražio link za promenu lozinke na instanci <%= @instance %>. Ovo možete uraditi preko linka ispod.
|
||||||
|
|
||||||
|
<%= edit_password_url(@resource, reset_password_token: @token) %>
|
||||||
|
|
||||||
|
Ignorišite ovu poruku, ako niste Vi bili ti koji ste zatražili promenu lozinke.
|
||||||
|
Lozinka se neće promeniti sve dok ne kliknete link iznad i ne napravite novu lozinku.
|
|
@ -58,6 +58,7 @@ module Mastodon
|
||||||
:ru,
|
:ru,
|
||||||
:sk,
|
:sk,
|
||||||
:sr,
|
:sr,
|
||||||
|
:'sr-Latn',
|
||||||
:sv,
|
:sv,
|
||||||
:th,
|
:th,
|
||||||
:tr,
|
:tr,
|
||||||
|
|
|
@ -137,6 +137,9 @@ Devise.setup do |config|
|
||||||
# Setup a pepper to generate the encrypted password.
|
# Setup a pepper to generate the encrypted password.
|
||||||
# config.pepper = '104d16705f794923e77c5e5167b52452d00646dc952a2d30b541c24086e647012c7b9625f253c51912e455981e503446772973d5f1638631196c819d7137fad4'
|
# config.pepper = '104d16705f794923e77c5e5167b52452d00646dc952a2d30b541c24086e647012c7b9625f253c51912e455981e503446772973d5f1638631196c819d7137fad4'
|
||||||
|
|
||||||
|
# Send a notification to the original email when the user's email is changed.
|
||||||
|
config.send_email_changed_notification = true
|
||||||
|
|
||||||
# Send a notification email when the user's password is changed
|
# Send a notification email when the user's password is changed
|
||||||
config.send_password_change_notification = true
|
config.send_password_change_notification = true
|
||||||
|
|
||||||
|
@ -160,7 +163,7 @@ Devise.setup do |config|
|
||||||
# initial account confirmation) to be applied. Requires additional unconfirmed_email
|
# initial account confirmation) to be applied. Requires additional unconfirmed_email
|
||||||
# db field (see migrations). Until confirmed, new email is stored in
|
# db field (see migrations). Until confirmed, new email is stored in
|
||||||
# unconfirmed_email column, and copied to email column on successful confirmation.
|
# unconfirmed_email column, and copied to email column on successful confirmation.
|
||||||
config.reconfirmable = false
|
config.reconfirmable = true
|
||||||
|
|
||||||
# Defines which key will be used when confirming an account
|
# Defines which key will be used when confirming an account
|
||||||
# config.confirmation_keys = [:email]
|
# config.confirmation_keys = [:email]
|
||||||
|
|
13
config/locales/activerecord.sr-Latn.yml
Normal file
13
config/locales/activerecord.sr-Latn.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
sr-Latn:
|
||||||
|
activerecord:
|
||||||
|
errors:
|
||||||
|
models:
|
||||||
|
account:
|
||||||
|
attributes:
|
||||||
|
username:
|
||||||
|
invalid: samo slova, brojevi i donje crte
|
||||||
|
status:
|
||||||
|
attributes:
|
||||||
|
reblog:
|
||||||
|
taken: statusa već postoji
|
|
@ -18,8 +18,12 @@ en:
|
||||||
mailer:
|
mailer:
|
||||||
confirmation_instructions:
|
confirmation_instructions:
|
||||||
subject: 'Mastodon: Confirmation instructions for %{instance}'
|
subject: 'Mastodon: Confirmation instructions for %{instance}'
|
||||||
|
email_changed:
|
||||||
|
subject: 'Mastodon: Email changed'
|
||||||
password_change:
|
password_change:
|
||||||
subject: 'Mastodon: Password changed'
|
subject: 'Mastodon: Password changed'
|
||||||
|
reconfirmation_instructions:
|
||||||
|
subject: 'Mastodon: Confirm email for %{instance}'
|
||||||
reset_password_instructions:
|
reset_password_instructions:
|
||||||
subject: 'Mastodon: Reset password instructions'
|
subject: 'Mastodon: Reset password instructions'
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
|
|
63
config/locales/devise.sr-Latn.yml
Normal file
63
config/locales/devise.sr-Latn.yml
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
---
|
||||||
|
sr-Latn:
|
||||||
|
devise:
|
||||||
|
confirmations:
|
||||||
|
confirmed: Adresa Vaše e-pošte je uspešno potvrđena.
|
||||||
|
send_instructions: U roku od nekoliko minuta primićete e-poštu sa uputstvom za potvrdu Vašeg naloga. Molimo proverite i spam fasciklu ako niste primili poruku.
|
||||||
|
send_paranoid_instructions: Ukoliko se adresa Vaše e-pošte nalazi u našoj bazi, u roku od nekoliko minuta primićete poruku sa uputstvom kako da potvrdite Vaš nalog. Molimo proverite i spam fasciklu ako niste primili poruku.
|
||||||
|
failure:
|
||||||
|
already_authenticated: Već ste prijavljeni.
|
||||||
|
inactive: Vaš nalog još nije aktiviran.
|
||||||
|
invalid: Neispravan %{authentication_keys} ili lozinka.
|
||||||
|
last_attempt: Imate još jedan pokušaj pre nego što Vaš nalog bude zaključan.
|
||||||
|
locked: Vaš nalog je zaključan.
|
||||||
|
not_found_in_database: Neispravan %{authentication_keys} ili lozinka.
|
||||||
|
timeout: Vreme trajanja Vaše sesije je isteklo. Za nastavak prijavite se ponovo.
|
||||||
|
unauthenticated: Za nastavak se morate prijaviti ili registrovati.
|
||||||
|
unconfirmed: Pre nastavka morate potvrditi svoj nalog.
|
||||||
|
mailer:
|
||||||
|
confirmation_instructions:
|
||||||
|
subject: 'Mastodont: Uputstvo za potvrdu korisničkog naloga na instanci %{instance}'
|
||||||
|
password_change:
|
||||||
|
subject: 'Mastodont: Lozinka promenjena'
|
||||||
|
reset_password_instructions:
|
||||||
|
subject: 'Mastodont: Uputstvo za resetovanje lozinke'
|
||||||
|
unlock_instructions:
|
||||||
|
subject: 'Mastodont: Uputstvo za otključavanje korisničkog naloga'
|
||||||
|
omniauth_callbacks:
|
||||||
|
failure: Nismo u mogućnosti autorizovati Vas sa %{kind} nalogom zbog "%{reason}".
|
||||||
|
success: Uspešna autorizacija sa %{kind} naloga.
|
||||||
|
passwords:
|
||||||
|
no_token: Ne možete pristupiti ovoj stranici ako niste pratili vezu u imejlu za resetovanje lozinke. Ukoliko ste pratili vezu za resetovanje lozinke u poruci, molimo Vas da proverite da li ste koristili punu adresu.
|
||||||
|
send_instructions: U roku od nekoliko minuta primitićete poruku sa uputstvom za promenu Vaše lozinke. Molimo proverite i spam fasciklu ako niste primili poruku.
|
||||||
|
send_paranoid_instructions: Ukoliko se adresa Vaše e-pošte nalazi u našoj bazi, u roku od nekoliko minuta primićete poruku sa uputstvom za promenu Vaše lozinke. Molimo proverite i spam fasciklu ako niste primili poruku.
|
||||||
|
updated: Vaša lozinka je uspešno promenjena. Sada ste prijavljeni.
|
||||||
|
updated_not_active: Vaša lozinka nije uspešno promenjena.
|
||||||
|
registrations:
|
||||||
|
destroyed: Ćao! Vaš nalog je uspešno obrisan. Nadamo se da ćete se uskoro vratiti.
|
||||||
|
signed_up: Dobrodošli! Uspešno ste se registrovali.
|
||||||
|
signed_up_but_inactive: Uspešno ste se registrovali. Nažalost ne možete se prijaviti zato što Vaš nalog još nije aktiviran.
|
||||||
|
signed_up_but_locked: Uspešno ste se registrovali. Nažalost ne možete se prijaviti zato što je Vaš nalog zaključan.
|
||||||
|
signed_up_but_unconfirmed: Poruka za potvrdu Vašeg naloga je poslata na Vašu imejl adresu. Kliknite na vezu u imejlu da potvrdite svoj nalog. Molimo proverite i spam fasciklu ako niste primili poruku.
|
||||||
|
update_needs_confirmation: Uspešno ste ažurirali svoj nalog, ali treba da potvrdimo novu adresu Vaše e-pošte. Molimo Vas da proverite e-poštu i pratite link za potvrdu nove adrese Vaše e-pošte.
|
||||||
|
updated: Vaš nalog je uspešno ažuriran.
|
||||||
|
sessions:
|
||||||
|
already_signed_out: Uspešno ste se odjavili.
|
||||||
|
signed_in: Uspešno ste se prijavili.
|
||||||
|
signed_out: Uspešno ste se odjavili.
|
||||||
|
unlocks:
|
||||||
|
send_instructions: U roku od nekoliko minuta primićete imejl sa uputstvom za otključavanje Vašeg naloga. Molimo proverite i spam fasciklu ako niste primili poruku.
|
||||||
|
send_paranoid_instructions: koliko se adresa Vaše e-pošte nalazi u našoj bazi, u roku od nekoliko minuta primićete poruku sa uputstvom kako da otključate Vaš nalog. Molimo proverite i spam fasciklu ako niste primili poruku.
|
||||||
|
unlocked: Vaš nalog je uspešno otključan. Molimo Vas da se prijavite da biste nastavili.
|
||||||
|
errors:
|
||||||
|
messages:
|
||||||
|
already_confirmed: je već potvrđen, molimo Vas da se prijavite
|
||||||
|
confirmation_period_expired: je trebao biti potvrđen tokom perioda %{period}, molimo Vas da zatražite novi
|
||||||
|
expired: je istekao, molimo Vas da zatražite novi
|
||||||
|
not_found: nije pronađeno
|
||||||
|
not_locked: nije zaključan
|
||||||
|
not_saved:
|
||||||
|
few: "%{count} greške sprečavaju %{resource}a:"
|
||||||
|
many: "%{count} grešaka sprečavaju %{resource}a:"
|
||||||
|
one: '1 greška sprečava %{resource}a:'
|
||||||
|
other: "%{count} grešaka sprečavaju %{resource}a:"
|
119
config/locales/doorkeeper.sr-Latn.yml
Normal file
119
config/locales/doorkeeper.sr-Latn.yml
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
---
|
||||||
|
sr-Latn:
|
||||||
|
activerecord:
|
||||||
|
attributes:
|
||||||
|
doorkeeper/application:
|
||||||
|
name: Ime aplikacije
|
||||||
|
redirect_uri: Adresa za preusmeravanje
|
||||||
|
scopes: Opseg važenja
|
||||||
|
website: Veb sajt aplikacije
|
||||||
|
errors:
|
||||||
|
models:
|
||||||
|
doorkeeper/application:
|
||||||
|
attributes:
|
||||||
|
redirect_uri:
|
||||||
|
fragment_present: ne može da sadrži fragment.
|
||||||
|
invalid_uri: mora biti ispravan URI.
|
||||||
|
relative_uri: mora biti apsolutni URI.
|
||||||
|
secured_uri: mora biti HTTPS/SSL URI.
|
||||||
|
doorkeeper:
|
||||||
|
applications:
|
||||||
|
buttons:
|
||||||
|
authorize: Autorizuj
|
||||||
|
cancel: Poništi
|
||||||
|
destroy: Uništi
|
||||||
|
edit: Izmeni
|
||||||
|
submit: Pošalji
|
||||||
|
confirmations:
|
||||||
|
destroy: Da li ste sigurni?
|
||||||
|
edit:
|
||||||
|
title: Izmeni aplikaciju
|
||||||
|
form:
|
||||||
|
error: Ops! Proverite formular za eventualne greške
|
||||||
|
help:
|
||||||
|
native_redirect_uri: Koristite %{native_redirect_uri} za lokalno testiranje
|
||||||
|
redirect_uri: Koristite jednu liniju po URI-ju
|
||||||
|
scopes: Odvojite opsege važenja sa belinama. Ostavite prazno za podrazumevane opsege važenja.
|
||||||
|
index:
|
||||||
|
application: Aplikacija
|
||||||
|
callback_url: Adresa za povratni poziv
|
||||||
|
delete: Obriši
|
||||||
|
name: Ime
|
||||||
|
new: Nova aplikacija
|
||||||
|
scopes: Opsezi važenja
|
||||||
|
show: Prikaži
|
||||||
|
title: Vaše aplikacije
|
||||||
|
new:
|
||||||
|
title: Nova aplikacija
|
||||||
|
show:
|
||||||
|
actions: Akcije
|
||||||
|
application_id: Klijentski ključ
|
||||||
|
callback_urls: Adrese za povratne pozive
|
||||||
|
scopes: Opseg važenja
|
||||||
|
secret: Klijentska tajna
|
||||||
|
title: 'Aplikacija: %{name}'
|
||||||
|
authorizations:
|
||||||
|
buttons:
|
||||||
|
authorize: Autorizuj se
|
||||||
|
deny: Odbij
|
||||||
|
error:
|
||||||
|
title: Dogodila se greška
|
||||||
|
new:
|
||||||
|
able_to: Biće u mogućnosti da
|
||||||
|
prompt: Aplikacija %{client_name} zahteva pristup Vašem nalogu
|
||||||
|
title: Potrebna autorizacija
|
||||||
|
show:
|
||||||
|
title: Kopirajte ovaj autorizacioni kod i nalepite ga u aplikaciju.
|
||||||
|
authorized_applications:
|
||||||
|
buttons:
|
||||||
|
revoke: Opozovi
|
||||||
|
confirmations:
|
||||||
|
revoke: Da li ste sigurni?
|
||||||
|
index:
|
||||||
|
application: Aplikacija
|
||||||
|
created_at: Autorizovana
|
||||||
|
date_format: "%d.%m.%Y %H:%M:%S"
|
||||||
|
scopes: Opsezi važenja
|
||||||
|
title: Vaše autorizovane aplikacije
|
||||||
|
errors:
|
||||||
|
messages:
|
||||||
|
access_denied: Vlasnik resursa ili autorizacioni server su odbili zahtev.
|
||||||
|
credential_flow_not_configured: Tok Resource Owner Password Credentials nije uspeo pošto je Doorkeeper.configure.resource_owner_from_credentials neiskonfigurisan.
|
||||||
|
invalid_client: Klijentska identifikacija nije uspela zbog nepoznatog klijenta, zato što klijent nije uključio identifikaciju ili zato što je iskorišćen nepodržani identifikacioni metod.
|
||||||
|
invalid_grant: Zadata identifikaciona dozvola je neispravna, istekla, opozvana, ne poklapa se sa adresom preusmeravanja ili je izdata nekog drugom klijentu.
|
||||||
|
invalid_redirect_uri: Uključena adresa preusmeravanja nije ispravna.
|
||||||
|
invalid_request: Obavezni parametar fali u zahtevu, zahtev uključuje nepodržanu vrednost parametra ili je parametar na neki drugi način pogrešan.
|
||||||
|
invalid_resource_owner: Zadati kredencijali vlasnika resursa nisu ispravni ili vlasnik resursa ne može biti nađen
|
||||||
|
invalid_scope: Zahtevani opseg važenja nije ispravan, nepoznat je ili je na neki drugi način pogrešan.
|
||||||
|
invalid_token:
|
||||||
|
expired: Pristupni token je istekao
|
||||||
|
revoked: Pristupni token je opozvan
|
||||||
|
unknown: Pristupni token nije ispravan
|
||||||
|
resource_owner_authenticator_not_configured: Greška u pronalaženju vlasnika resursa pošto Doorkeeper.configure.resource_owner_authenticator nije konfigurisan.
|
||||||
|
server_error: Identifikacioni server je naišao na neočekivanu situaciju zbog koje nije ispunio upućeni zahtev.
|
||||||
|
temporarily_unavailable: Identifikacioni server trenutno ne može da obradi zahtev jer je privremeno preopterećen ili je u režimu održavanja.
|
||||||
|
unauthorized_client: Klijent nije ovlašćen da izvrši ovaj zahtev ovim metodom.
|
||||||
|
unsupported_grant_type: Tip autorizacione dozvole nije podržan od strane autorizacionog servera.
|
||||||
|
unsupported_response_type: Autorizacioni server ne podržava ovaj tip odgovora.
|
||||||
|
flash:
|
||||||
|
applications:
|
||||||
|
create:
|
||||||
|
notice: Aplikacija napravljena.
|
||||||
|
destroy:
|
||||||
|
notice: Aplikacija obrisana.
|
||||||
|
update:
|
||||||
|
notice: Aplikacija ažurirana.
|
||||||
|
authorized_applications:
|
||||||
|
destroy:
|
||||||
|
notice: Aplikacija opozvana.
|
||||||
|
layouts:
|
||||||
|
admin:
|
||||||
|
nav:
|
||||||
|
applications: Aplikacije
|
||||||
|
oauth2_provider: OAuth2 provajder
|
||||||
|
application:
|
||||||
|
title: OAuth autorizacija potrebna
|
||||||
|
scopes:
|
||||||
|
follow: prati, blokira, odblokira i otprati naloge
|
||||||
|
read: čita podatke Vašeg naloga
|
||||||
|
write: objavljuje statuse u Vaše ime
|
75
config/locales/simple_form.sr-Latn.yml
Normal file
75
config/locales/simple_form.sr-Latn.yml
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
---
|
||||||
|
sr-Latn:
|
||||||
|
simple_form:
|
||||||
|
hints:
|
||||||
|
defaults:
|
||||||
|
avatar: PNG, GIF ili JPG. Najviše 2MB. Biće smanjena na 120x120px
|
||||||
|
digest: Poslato posle dužeg perioda neaktivnosti sa pregledom svih bitnih stvari koje ste dobili dok ste bili odsutni
|
||||||
|
display_name:
|
||||||
|
few: <span class="name-counter">%{count}</span> karaktera preostala
|
||||||
|
many: <span class="name-counter">%{count}</span> karaktera preostalo
|
||||||
|
one: <span class="name-counter">1</span> karakter preostao
|
||||||
|
other: <span class="name-counter">%{count}</span> karaktera preostalo
|
||||||
|
header: PNG, GIF ili JPG. Najviše 2MB. Biće smanjena na 700x335px
|
||||||
|
locked: Zahteva da pojedinačno odobrite pratioce
|
||||||
|
note:
|
||||||
|
few: <span class="note-counter">%{count}</span> karaktera preostal
|
||||||
|
many: <span class="note-counter">%{count}</span> karaktera preostalo
|
||||||
|
one: <span class="note-counter">1</span> karakter preostao
|
||||||
|
other: <span class="note-counter">%{count}</span> karaktera preostalo
|
||||||
|
setting_noindex: Utiče na Vaš javni profil i statusne strane
|
||||||
|
setting_theme: Utiče kako će Mastodont izgledati kada ste prijavljeni sa bilo kog uređaja.
|
||||||
|
imports:
|
||||||
|
data: CSV fajl izvezen sa druge Mastodont instance
|
||||||
|
sessions:
|
||||||
|
otp: Unesite dvofaktorski kod sa Vašeg telefona ili koristite jedan od kodova za oporavak.
|
||||||
|
user:
|
||||||
|
filtered_languages: Označeni jezici će za Vas biti isfiltrirani sa javnih lajni
|
||||||
|
labels:
|
||||||
|
defaults:
|
||||||
|
avatar: Avatar
|
||||||
|
confirm_new_password: Potvrdite novu lozinku
|
||||||
|
confirm_password: Potvrdite lozinku
|
||||||
|
current_password: Trenutna lozinka
|
||||||
|
data: Podaci
|
||||||
|
display_name: Ime za prikaz
|
||||||
|
email: Adresa e-pošte
|
||||||
|
expires_in: Ističe nakon
|
||||||
|
filtered_languages: Filtrirani jezici
|
||||||
|
header: Zaglavlje
|
||||||
|
locale: Jezik
|
||||||
|
locked: Zaključaj nalog
|
||||||
|
max_uses: Maksimalni broj korišćenja
|
||||||
|
new_password: Nova lozinka
|
||||||
|
note: Biografija
|
||||||
|
otp_attempt: Dvofaktorski kod
|
||||||
|
password: Lozinka
|
||||||
|
setting_auto_play_gif: Automatski puštaj animirane GIF-ove
|
||||||
|
setting_boost_modal: Prikaži dijalog za potvrdu pre davanja podrške
|
||||||
|
setting_default_privacy: Privatnost objava
|
||||||
|
setting_default_sensitive: Uvek označi multimediju kao osetljivu
|
||||||
|
setting_delete_modal: Prikaži dijalog za potvrdu pre brisanja tuta
|
||||||
|
setting_noindex: Odjavi se od indeksiranja search engine-a
|
||||||
|
setting_reduce_motion: Smanji pokrete u animacijama
|
||||||
|
setting_system_font_ui: Koristi sistemski font
|
||||||
|
setting_theme: Tema sajta
|
||||||
|
setting_unfollow_modal: Prikaži dijalog za potvrdu pre nego što otpratite nekoga
|
||||||
|
severity: Oštrina
|
||||||
|
type: Tip uvoza
|
||||||
|
username: Korisničko ime
|
||||||
|
interactions:
|
||||||
|
must_be_follower: Blokiraj obaveštenja od korisnika koji me ne prate
|
||||||
|
must_be_following: Blokiraj obaveštenja od ljudi koje ne pratim
|
||||||
|
must_be_following_dm: Blokiraj direktne poruke od ljudi koje ne pratim
|
||||||
|
notification_emails:
|
||||||
|
digest: Šalji e-poštu sa sažetkom
|
||||||
|
favourite: Šalji e-poštu kada neko stavi da mu je Vaš status omiljen
|
||||||
|
follow: Šalji e-poštu kada Vas neko zaprati
|
||||||
|
follow_request: Šalji e-poštu kada neko zatraži da Vas zaprati
|
||||||
|
mention: Šalji e-poštu kada Vas neko pomene
|
||||||
|
reblog: Šalji e-poštu kada neko podrži Vaš status
|
||||||
|
'no': Ne
|
||||||
|
required:
|
||||||
|
mark: "*"
|
||||||
|
text: obavezno
|
||||||
|
'yes': Da
|
|
@ -45,7 +45,7 @@ sr:
|
||||||
otp_attempt: Двофакторски код
|
otp_attempt: Двофакторски код
|
||||||
password: Лозинка
|
password: Лозинка
|
||||||
setting_auto_play_gif: Аутоматски пуштај анимиране GIF-ове
|
setting_auto_play_gif: Аутоматски пуштај анимиране GIF-ове
|
||||||
setting_boost_modal: Прикажи дијалог за потврду пре погуравања
|
setting_boost_modal: Прикажи дијалог за потврду пре давања подршке
|
||||||
setting_default_privacy: Приватност објава
|
setting_default_privacy: Приватност објава
|
||||||
setting_default_sensitive: Увек означи мултимедију као осетљиву
|
setting_default_sensitive: Увек означи мултимедију као осетљиву
|
||||||
setting_delete_modal: Прикажи дијалог за потврду пре брисања тута
|
setting_delete_modal: Прикажи дијалог за потврду пре брисања тута
|
||||||
|
@ -67,7 +67,7 @@ sr:
|
||||||
follow: Шаљи е-пошту када Вас неко запрати
|
follow: Шаљи е-пошту када Вас неко запрати
|
||||||
follow_request: Шаљи е-пошту када неко затражи да Вас запрати
|
follow_request: Шаљи е-пошту када неко затражи да Вас запрати
|
||||||
mention: Шаљи е-пошту када Вас неко помене
|
mention: Шаљи е-пошту када Вас неко помене
|
||||||
reblog: Шаљи е-пошту када неко погура Ваш статус
|
reblog: Шаљи е-пошту када неко подржи Ваш статус
|
||||||
'no': Не
|
'no': Не
|
||||||
required:
|
required:
|
||||||
mark: "*"
|
mark: "*"
|
||||||
|
|
723
config/locales/sr-Latn.yml
Normal file
723
config/locales/sr-Latn.yml
Normal file
|
@ -0,0 +1,723 @@
|
||||||
|
---
|
||||||
|
sr-Latn:
|
||||||
|
about:
|
||||||
|
about_hashtag_html: Ovo su javni statusi tagovani sa <strong>#%{hashtag}</strong>. Možete odgovarati na njih ako imate nalog bilo gde u fediversu.
|
||||||
|
about_mastodon_html: Mastodont je društvena mreža bazirana na otvorenim protokolima i slobodnom softveru otvorenog koda. Decentralizovana je kao što je decentralizovana e-pošta.
|
||||||
|
about_this: O instanci
|
||||||
|
closed_registrations: Registracije su trenutno zatvorene na ovoj instanci. Ipak! Možete naći drugu instancu na kojoj ćete napraviti nalog i odatle dobiti pristup istoj ovoj mreži.
|
||||||
|
contact: Kontakt
|
||||||
|
contact_missing: Nije postavljeno
|
||||||
|
contact_unavailable: N/A
|
||||||
|
description_headline: Šta je %{domain}?
|
||||||
|
domain_count_after: ostale instance
|
||||||
|
domain_count_before: Povezan na
|
||||||
|
extended_description_html: |
|
||||||
|
<h3>Dobro mesto za pravila</h3>
|
||||||
|
<p>Prošireni opis koji još nije postavljen.</p>
|
||||||
|
features:
|
||||||
|
humane_approach_body: Učeći od grešaka sa ostalih mreža, a da bi se borio protiv zloupotreba na društvenim mrežama, Mastodont pokušava da pravi što etičkije odluke prilikom razvoja.
|
||||||
|
humane_approach_title: Humaniji pristup
|
||||||
|
not_a_product_body: Mastodont nije komercijalna mreža. Nema reklama, nema skupljanja privatnih podataka, nema zaštićenih delova. Nema centralnog autoriteta.
|
||||||
|
not_a_product_title: Vi ste osoba, ne proizvod
|
||||||
|
real_conversation_body: Sa 500 karaktera na raspolaganju i podrškom za granularniji sadržaj i upozorenja na osetljiviji sadržaj, možete se izraziti kako god želite.
|
||||||
|
real_conversation_title: Pravljen za pravi razgovor
|
||||||
|
within_reach_body: Više aplikacija za iOS, Android, kao i druge platforme zahvaljujući ekosistemu dobrih API-ja će Vam omogućiti da ostanete u kontaktu sa prijateljima svuda.
|
||||||
|
within_reach_title: Uvek u kontaktu
|
||||||
|
find_another_instance: Nađite drugu instancu
|
||||||
|
generic_description: "%{domain} je server na mreži"
|
||||||
|
hosted_on: Mastodont hostovan na %{domain}
|
||||||
|
learn_more: Saznajte više
|
||||||
|
other_instances: Lista instanci
|
||||||
|
source_code: Izvorni kod
|
||||||
|
status_count_after: statusa
|
||||||
|
status_count_before: Koji su napisali
|
||||||
|
user_count_after: korisnika
|
||||||
|
user_count_before: Dom za
|
||||||
|
what_is_mastodon: Šta je Mastodont?
|
||||||
|
accounts:
|
||||||
|
follow: Follow
|
||||||
|
followers: Followers
|
||||||
|
following: Following
|
||||||
|
media: Multimedija
|
||||||
|
moved_html: "%{name} je pomeren na %{new_profile_link}:"
|
||||||
|
nothing_here: Ovde nema ništa!
|
||||||
|
people_followed_by: Ljudi koje %{name} prati
|
||||||
|
people_who_follow: Ljudi koji prate %{name}
|
||||||
|
posts: Tutovi
|
||||||
|
posts_with_replies: Tutovi i odgovori
|
||||||
|
remote_follow: Udaljena praćenja
|
||||||
|
reserved_username: Korisničko ime je rezervisano
|
||||||
|
roles:
|
||||||
|
admin: Administrator
|
||||||
|
moderator: Moderator
|
||||||
|
unfollow: Otprati
|
||||||
|
admin:
|
||||||
|
account_moderation_notes:
|
||||||
|
account: Moderator
|
||||||
|
create: Napravi
|
||||||
|
created_at: Datum
|
||||||
|
created_msg: Moderatorska beleška uspešno napravljena!
|
||||||
|
delete: Obriši
|
||||||
|
destroyed_msg: Moderatorska beleška uspešno obrisana!
|
||||||
|
accounts:
|
||||||
|
are_you_sure: Da li ste sigurni?
|
||||||
|
by_domain: Domen
|
||||||
|
confirm: Potvrdi
|
||||||
|
confirmed: Potvrđeno
|
||||||
|
demote: Ražaluj
|
||||||
|
disable: Isključi
|
||||||
|
disable_two_factor_authentication: Isključi 2FA
|
||||||
|
disabled: Isključena
|
||||||
|
display_name: Prikazano ime
|
||||||
|
domain: Domen
|
||||||
|
edit: Izmeni
|
||||||
|
email: E-pošta
|
||||||
|
enable: Uključi
|
||||||
|
enabled: Uključeno
|
||||||
|
feed_url: Adresa dovoda
|
||||||
|
followers: Pratioci
|
||||||
|
followers_url: Adresa pratioca
|
||||||
|
follows: Praćeni
|
||||||
|
inbox_url: Adresa sandučeta
|
||||||
|
ip: IP
|
||||||
|
location:
|
||||||
|
all: Sve
|
||||||
|
local: Lokalne
|
||||||
|
remote: Udaljene
|
||||||
|
title: Lokacija
|
||||||
|
login_status: Status prijave
|
||||||
|
media_attachments: Multimedijalni prilozi
|
||||||
|
memorialize: Prebaci u in memoriam
|
||||||
|
moderation:
|
||||||
|
all: Svi
|
||||||
|
silenced: Ućutkani
|
||||||
|
suspended: Suspendovani
|
||||||
|
title: Moderacija
|
||||||
|
moderation_notes: Moderatorske beleške
|
||||||
|
most_recent_activity: Najskorija aktivnost
|
||||||
|
most_recent_ip: Najskorija IP adresa
|
||||||
|
not_subscribed: Nije pretplaćen
|
||||||
|
order:
|
||||||
|
alphabetic: Abecedni
|
||||||
|
most_recent: Najskoriji
|
||||||
|
title: Redosled
|
||||||
|
outbox_url: Odlazno sanduče
|
||||||
|
perform_full_suspension: Izvrši kompletno isključenje
|
||||||
|
profile_url: Adresa profila
|
||||||
|
promote: Unapredi
|
||||||
|
protocol: Protokol
|
||||||
|
public: Javno
|
||||||
|
push_subscription_expires: PuSH subscription expires
|
||||||
|
redownload: Osveži avatar
|
||||||
|
reset: Resetuj
|
||||||
|
reset_password: Resetuj lozinku
|
||||||
|
resubscribe: Ponovo se pretplati
|
||||||
|
role: Ovlašćenja
|
||||||
|
roles:
|
||||||
|
admin: Administrator
|
||||||
|
moderator: Moderator
|
||||||
|
staff: Osoblje
|
||||||
|
user: Korisnik
|
||||||
|
salmon_url: Salmon adresa
|
||||||
|
search: Pretraga
|
||||||
|
shared_inbox_url: Adresa deljenog sandučeta
|
||||||
|
show:
|
||||||
|
created_reports: Prijave koje je napravio ovaj nalog
|
||||||
|
report: prijava
|
||||||
|
targeted_reports: Prijave napravljene o ovom nalogu
|
||||||
|
silence: Ućutkaj
|
||||||
|
statuses: Statusi
|
||||||
|
subscribe: Pretplati se
|
||||||
|
title: Nalozi
|
||||||
|
undo_silenced: Ukini ćutanje
|
||||||
|
undo_suspension: Ukini suspenziju
|
||||||
|
unsubscribe: Ukini pretplatu
|
||||||
|
username: Korisničko ime
|
||||||
|
web: Veb
|
||||||
|
action_logs:
|
||||||
|
actions:
|
||||||
|
confirm_user: "%{name} je potvrdio adresu e-pošte korisnika %{target}"
|
||||||
|
create_custom_emoji: "%{name} je otpremio novi emotikon %{target}"
|
||||||
|
create_domain_block: "%{name} je blokirao domen %{target}"
|
||||||
|
create_email_domain_block: "%{name} je stavio na crnu listu domen e-pošte %{target}"
|
||||||
|
demote_user: "%{name} je ražalovao korisnika %{target}"
|
||||||
|
destroy_domain_block: "%{name} je odblokirao domen %{target}"
|
||||||
|
destroy_email_domain_block: "%{name} je stavio na belu listu domen e-pošte %{target}"
|
||||||
|
destroy_status: "%{name} je uklonio status korisnika %{target}"
|
||||||
|
disable_2fa_user: "%{name} je isključio obaveznu dvofaktorsku identifikaciju za korisnika %{target}"
|
||||||
|
disable_custom_emoji: "%{name} je onemogućio emotikon %{target}"
|
||||||
|
disable_user: "%{name} je onemogućio prijavljivanje korisniku %{target}"
|
||||||
|
enable_custom_emoji: "%{name} je omogućio emotikon %{target}"
|
||||||
|
enable_user: "%{name} je omogućio prijavljivanje za korisnika %{target}"
|
||||||
|
memorialize_account: "%{name} je pretvorio stranu naloga %{target} kao in memoriam stranu"
|
||||||
|
promote_user: "%{name} je unapredio korisnika %{target}"
|
||||||
|
reset_password_user: "%{name} je resetovao lozinku korisniku %{target}"
|
||||||
|
resolve_report: "%{name} je odbacio prijavu %{target}"
|
||||||
|
silence_account: "%{name} je ućutkao nalog %{target}"
|
||||||
|
suspend_account: "%{name} je suspendovao nalog %{target}"
|
||||||
|
unsilence_account: "%{name} je ukinuo ćutanje nalogu %{target}"
|
||||||
|
unsuspend_account: "%{name} je ukinuo suspenziju nalogu %{target}"
|
||||||
|
update_custom_emoji: "%{name} je izmenio emotikon %{target}"
|
||||||
|
update_status: "%{name} je izmenio status korisnika %{target}"
|
||||||
|
title: Zapisnik
|
||||||
|
custom_emojis:
|
||||||
|
by_domain: Domen
|
||||||
|
copied_msg: Uspešno napravljena lokalna kopija emotikona
|
||||||
|
copy: Kopiraj
|
||||||
|
copy_failed_msg: Ne mogu da napravim lokalnu kopiju tog emotikona
|
||||||
|
created_msg: Emotikon uspešno napravljen!
|
||||||
|
delete: Obriši
|
||||||
|
destroyed_msg: Emotikon uspešno obrisan!
|
||||||
|
disable: Onemogući
|
||||||
|
disabled_msg: Emotikon uspešno onemogućen
|
||||||
|
emoji: Emotikon
|
||||||
|
enable: Omogući
|
||||||
|
enabled_msg: Emotikon uspešno omogućen
|
||||||
|
image_hint: PNG do 50KB
|
||||||
|
listed: Izlistan
|
||||||
|
new:
|
||||||
|
title: Dodaj novi proizvoljni emotikon
|
||||||
|
overwrite: Prepiši
|
||||||
|
shortcode: Prečica
|
||||||
|
shortcode_hint: Najmanje 2 karaktera, dozvoljeni su samo slova, brojevi i donje crte
|
||||||
|
title: Proizvoljni emotikoni
|
||||||
|
unlisted: Neizlistan
|
||||||
|
update_failed_msg: Ne mogu da ažuriram ovaj emotikon
|
||||||
|
updated_msg: emotikon uspešno ažuriran!
|
||||||
|
upload: Otpremi
|
||||||
|
domain_blocks:
|
||||||
|
add_new: Dodaj novi
|
||||||
|
created_msg: Blokiranje domena se obrađuje
|
||||||
|
destroyed_msg: Blokiranje domena je opozvano
|
||||||
|
domain: Domen
|
||||||
|
new:
|
||||||
|
create: Napravi blokadu
|
||||||
|
hint: Blokiranje domena neće sprečiti pravljenje naloga u bazi, ali će retroaktivno i automatski primeniti određene moderatorske metode nad tim nalozima.
|
||||||
|
severity:
|
||||||
|
desc_html: "<strong>Ućutkavanje</strong> će sve statuse ovog naloga učiniti nevidiljivim za sve, osim za one koji nalog već prate. <strong>Suspenzija</strong> će ukloniti sav sadržaj naloga, svu multimediju, i profilne podatke. Koristite <strong>Ništa</strong> ako samo želite da odbacite multimedijalne fajlove."
|
||||||
|
noop: Ništa
|
||||||
|
silence: Ućutkavanje
|
||||||
|
suspend: Suspenzija
|
||||||
|
title: Novo blokiranje domena
|
||||||
|
reject_media: Odbaci multimediju
|
||||||
|
reject_media_hint: Uklanja lokalno uskladištene multimedijske fajlove i odbija da ih skida na dalje. Nebitno je za suspenziju.
|
||||||
|
severities:
|
||||||
|
noop: Ništa
|
||||||
|
silence: Ućutkavanje
|
||||||
|
suspend: Suspenzija
|
||||||
|
severity: Oštrina
|
||||||
|
show:
|
||||||
|
affected_accounts:
|
||||||
|
few: Utiče na %{count} naloga u bazi
|
||||||
|
many: Utiče na %{count} naloga u bazi
|
||||||
|
one: Utiče na jedan nalog u bazi
|
||||||
|
other: Utiče na %{count} naloga u bazi
|
||||||
|
retroactive:
|
||||||
|
silence: Ugasi ućutkivanje za sve postojeće naloge sa ovog domena
|
||||||
|
suspend: Ugasi suspenzije za sve postojeće naloge sa ovog domena
|
||||||
|
title: Poništi blokadu domena za domen %{domain}
|
||||||
|
undo: Poništi
|
||||||
|
title: Blokade domena
|
||||||
|
undo: Poništi
|
||||||
|
email_domain_blocks:
|
||||||
|
add_new: Dodaj novuAdd new
|
||||||
|
created_msg: Uspešno dodao domen e-pošte na crnu listu
|
||||||
|
delete: Ukloni
|
||||||
|
destroyed_msg: Uspešno uklonjen domen e-pošte sa crne liste
|
||||||
|
domain: Domen
|
||||||
|
new:
|
||||||
|
create: Dodaj domen
|
||||||
|
title: Nova stavka u crnoj listi e-pošti
|
||||||
|
title: Crna lista adresa e-pošte
|
||||||
|
instances:
|
||||||
|
account_count: Poznati nalozi
|
||||||
|
domain_name: Domen
|
||||||
|
reset: Resetuj
|
||||||
|
search: Pretraga
|
||||||
|
title: Poznate instance
|
||||||
|
invites:
|
||||||
|
filter:
|
||||||
|
all: Sve
|
||||||
|
available: Aktivne
|
||||||
|
expired: Istekle
|
||||||
|
title: Filter
|
||||||
|
title: Pozivnice
|
||||||
|
reports:
|
||||||
|
action_taken_by: Akciju izveo
|
||||||
|
are_you_sure: Da li ste sigurni?
|
||||||
|
comment:
|
||||||
|
label: Komentar
|
||||||
|
none: Ništa
|
||||||
|
delete: Obriši
|
||||||
|
id: ID
|
||||||
|
mark_as_resolved: Označi kao rešen
|
||||||
|
nsfw:
|
||||||
|
'false': Otkrij medijske priloge
|
||||||
|
'true': Sakrij medijske priloge
|
||||||
|
report: 'Prijava #%{id}'
|
||||||
|
report_contents: Sadržaj
|
||||||
|
reported_account: Prijavljeni nalog
|
||||||
|
reported_by: Prijavio
|
||||||
|
resolved: Rešeni
|
||||||
|
silence_account: Ućutkaj nalog
|
||||||
|
status: Status
|
||||||
|
suspend_account: Suspenduj nalog
|
||||||
|
target: Cilj
|
||||||
|
title: Prijave
|
||||||
|
unresolved: Nerešeni
|
||||||
|
view: Pogledaj
|
||||||
|
settings:
|
||||||
|
bootstrap_timeline_accounts:
|
||||||
|
desc_html: Odvojite više korisničkih imena zarezom. Radi samo za lokalne i otključane naloge. Ako je prazno, onda se odnosi na sve lokalne administratore.
|
||||||
|
title: Nalozi za automatsko zapraćivanje za nove korisnike
|
||||||
|
contact_information:
|
||||||
|
email: Poslovna e-pošta
|
||||||
|
username: Kontakt korisničko ime
|
||||||
|
registrations:
|
||||||
|
closed_message:
|
||||||
|
desc_html: Prikazuje se na glavnoj strani kada je instanca zatvorena za registracije. Možete koristiti HTML tagove
|
||||||
|
title: Poruka o zatvorenoj registraciji
|
||||||
|
deletion:
|
||||||
|
desc_html: Dozvoli svima da mogu da obrišu svoj nalog
|
||||||
|
title: Otvori brisanje naloga
|
||||||
|
min_invite_role:
|
||||||
|
disabled: Niko
|
||||||
|
title: Samo preko pozivnice
|
||||||
|
open:
|
||||||
|
desc_html: Dozvoli svakome da kreira nalog
|
||||||
|
title: Otvorena registracija
|
||||||
|
show_staff_badge:
|
||||||
|
desc_html: Prikaži bedž osoblja na korisničkoj strani
|
||||||
|
title: Prikaži bedž osoblja
|
||||||
|
site_description:
|
||||||
|
desc_html: Uvodni pasus na naslovnoj strani i u meta HTML tagovima. Možete koristiti HTML tagove, konkretno <code><a></code> i <code><em></code>.
|
||||||
|
title: Opis instance
|
||||||
|
site_description_extended:
|
||||||
|
desc_html: Dobro mesto za vaš kod ponašanja, pravila, smernice i druge stvari po kojima se Vaša instanca razlikuje. Možete koristiti HTML tagove
|
||||||
|
title: Proizvoljne dodatne informacije
|
||||||
|
site_terms:
|
||||||
|
desc_html: Možete pisati Vašu politiku privatnosti, uslove korišćenja i ostale legalne stvari. Možete koristiti HTML tagove
|
||||||
|
title: Proizvoljni uslovi korišćenja
|
||||||
|
site_title: Ime instance
|
||||||
|
thumbnail:
|
||||||
|
desc_html: Koristi se za preglede kroz OpenGraph i API. Preporučuje se 1200x630px
|
||||||
|
title: Sličica instance
|
||||||
|
timeline_preview:
|
||||||
|
desc_html: Prikaži javnu lajnu na početnoj strani
|
||||||
|
title: Pregled lajne
|
||||||
|
title: Postavke sajta
|
||||||
|
statuses:
|
||||||
|
back_to_account: Nazad na stranu naloga
|
||||||
|
batch:
|
||||||
|
delete: Obriši
|
||||||
|
nsfw_off: NSFW isključen
|
||||||
|
nsfw_on: NSFW uključen
|
||||||
|
execute: Izvrši
|
||||||
|
failed_to_execute: Neuspelo izvršavanje
|
||||||
|
media:
|
||||||
|
hide: Sakrij multimediju
|
||||||
|
show: Prikaži multimediju
|
||||||
|
title: Multimedija
|
||||||
|
no_media: Bez multimedije
|
||||||
|
title: Statusi naloga
|
||||||
|
with_media: Sa multimedijom
|
||||||
|
subscriptions:
|
||||||
|
callback_url: Callback URL
|
||||||
|
confirmed: Potvrđeno
|
||||||
|
expires_in: Ističe za
|
||||||
|
last_delivery: Poslednja dostava
|
||||||
|
title: WebSub
|
||||||
|
topic: Topic
|
||||||
|
title: Administracija
|
||||||
|
admin_mailer:
|
||||||
|
new_report:
|
||||||
|
body: "%{reporter} je prijavio %{target}"
|
||||||
|
subject: Nova prijava za %{instance} (#%{id})
|
||||||
|
application_mailer:
|
||||||
|
salutation: "%{name},"
|
||||||
|
settings: 'Promeni podešavanja e-pošte: %{link}'
|
||||||
|
signature: Mastodont obaveštenje sa instance %{instance}
|
||||||
|
view: 'Pogledaj:'
|
||||||
|
applications:
|
||||||
|
created: Aplikacija uspešno napravljena
|
||||||
|
destroyed: Aplikacija uspešno obrisana
|
||||||
|
invalid_url: Data adresa nije ispravna
|
||||||
|
regenerate_token: Rekreiraj pristupni token
|
||||||
|
token_regenerated: Pristupni token uspešno rekreiran
|
||||||
|
warning: Oprezno sa ovim podacima. Nikad je ne delite ni sa kim!
|
||||||
|
your_token: Vaš pristupni token
|
||||||
|
auth:
|
||||||
|
agreement_html: Pristupanjem instanci se slažete sa <a href="%{rules_path}">pravilima instance</a> i <a href="%{terms_path}">uslovima korišćenja</a>.
|
||||||
|
change_password: Bezbednost
|
||||||
|
delete_account: Obriši nalog
|
||||||
|
delete_account_html: Ako želite da obrišete Vaš nalog, možete <a href="%{path}">nastaviti ovde</a>. Bićete upitani da potvrdite.
|
||||||
|
didnt_get_confirmation: Niste dobili poruku sa uputstvima za potvrdu naloga?
|
||||||
|
forgot_password: Zaboravili ste lozinku?
|
||||||
|
invalid_reset_password_token: Token za resetovanje lozinke je neispravan ili je istekao. Zatražite novi.
|
||||||
|
login: Prijavi se
|
||||||
|
logout: Odjava
|
||||||
|
migrate_account: Pomeri u drugi nalog
|
||||||
|
migrate_account_html: Ako želite da preusmerite ovaj nalog na neki drugi, možete to <a href="%{path}">podesiti ovde</a>.
|
||||||
|
register: Registruj se
|
||||||
|
resend_confirmation: Pošalji poruku sa uputstvima o potvrdi naloga ponovo
|
||||||
|
reset_password: Resetuj lozinku
|
||||||
|
set_new_password: Postavi novu lozinku
|
||||||
|
authorize_follow:
|
||||||
|
error: Nažalost, desila se greška pri traženju udaljenog naloga
|
||||||
|
follow: Zaprati
|
||||||
|
follow_request: 'Poslali ste zahtev za praćenjen za:'
|
||||||
|
following: 'Sjajno! Sada pratite:'
|
||||||
|
post_follow:
|
||||||
|
close: Ili možete zatvoriti ovaj prozor.
|
||||||
|
return: Vrati se na profil ovog korisnika
|
||||||
|
web: Idi na veb
|
||||||
|
title: Zaprati %{acct}
|
||||||
|
datetime:
|
||||||
|
distance_in_words:
|
||||||
|
about_x_hours: "%{count}h"
|
||||||
|
about_x_months: "%{count}mesec"
|
||||||
|
about_x_years: "%{count}god"
|
||||||
|
almost_x_years: "%{count}god"
|
||||||
|
half_a_minute: Upravo sad
|
||||||
|
less_than_x_minutes: "%{count}m"
|
||||||
|
less_than_x_seconds: Upravo sad
|
||||||
|
over_x_years: "%{count}god"
|
||||||
|
x_days: "%{count}d"
|
||||||
|
x_minutes: "%{count}m"
|
||||||
|
x_months: "%{count}mesec"
|
||||||
|
x_seconds: "%{count}s"
|
||||||
|
deletes:
|
||||||
|
bad_password_msg: Dobar pokušaj, hakeri! Neispravna lozinka
|
||||||
|
confirm_password: Unesite trenutnu lozinku da bismo proverili Vaš identitet
|
||||||
|
description_html: Ovo će <strong>trajno, bespovratno</strong> ukloniti sadržaj sa Vašef naloga i deaktivirati ga. Vaše korisničko ime će ostati rezervisano da se spreči da se neko ne predstavlja kao Vi sutra.
|
||||||
|
proceed: Obriši nalog
|
||||||
|
success_msg: Vaš nalog je uspešno obrisan
|
||||||
|
warning_html: Garantovano je samo brisanje sadržaja sa ove instance. Sadržaj koji je deljen dalje će verovatno da ostavi neke tragove. Nedostupni i ugašeni serveri, kao i serveri koji su odjavljeni od primanja statusa od Vas, neće ažurirati svoje baze.
|
||||||
|
warning_title: Dostupnost rasejanog sadržaja
|
||||||
|
errors:
|
||||||
|
'403': Nemate dozvola da vidite ovu stranu.
|
||||||
|
'404': Strana koju ste tražili ne postoji.
|
||||||
|
'410': Strana koju ste tražili više ne postoji.
|
||||||
|
'422':
|
||||||
|
content: Security verification failed. Are you blocking cookies?
|
||||||
|
title: Security verification failed
|
||||||
|
'429': Uspored
|
||||||
|
'500':
|
||||||
|
content: Izvinjavamo se, nešto je pošlo po zlu sa ove strane.
|
||||||
|
title: Strana nije ispravna
|
||||||
|
noscript_html: Da biste koristili Mastodont veb aplikaciju, omogućite JavaScript. U suprotnom, probajte neku od <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">originalnih aplikacija</a> za Mastodont za Vašu platformu.
|
||||||
|
exports:
|
||||||
|
blocks: Blokirali ste
|
||||||
|
csv: CSV
|
||||||
|
follows: PRatite
|
||||||
|
mutes: Mutirali ste
|
||||||
|
storage: Multimedijalno skladište
|
||||||
|
followers:
|
||||||
|
domain: Domen
|
||||||
|
explanation_html: Ako želite da osigurate privatnost Vaših statusa, morate biti svesni ko Vas prati. <strong>Vaši privatni statusi se šalju na sve instance na kojima imate pratioce</strong>. Možda želite da ih pregledate i da uklonite one pratioce na onim instancama za koje nemate poverenja da će poštovati Vašu privatnost.
|
||||||
|
followers_count: Broj pratilaca
|
||||||
|
lock_link: Zaključajte nalog
|
||||||
|
purge: Ukloni iz pratioca
|
||||||
|
success:
|
||||||
|
few: U procesu blokiranja pratioca sa %{count} domena...
|
||||||
|
many: U procesu blokiranja pratioca sa %{count} domena...
|
||||||
|
one: U procesu blokiranja pratioca sa jednog domena...
|
||||||
|
other: U procesu blokiranja pratioca sa %{count} domena...
|
||||||
|
true_privacy_html: Zapamtite da se <strong>prava privatnost može postići samo šifrovanjem sa kraja na kraj</strong>.
|
||||||
|
unlocked_warning_html: Svako može da Vas zaprati da odmah vidi Vaše privatne statuse. %{lock_link} da biste pregledali i odbacili pratioce.
|
||||||
|
unlocked_warning_title: Vaš nalog nije zaključan
|
||||||
|
generic:
|
||||||
|
changes_saved_msg: Izmene uspešno sačuvane!
|
||||||
|
powered_by: omogućio %{link}
|
||||||
|
save_changes: Snimi izmene
|
||||||
|
validation_errors:
|
||||||
|
few: Nešto nije baš kako treba! Pregledajte %{count} greške ispod
|
||||||
|
many: Nešto nije baš kako treba! Pregledajte %{count} grešaka ispod
|
||||||
|
one: Nešto nije baš kako treba! Pregledajte greške ispod
|
||||||
|
other: Nešto nije baš kako treba! Pregledajte %{count} grešaka ispod
|
||||||
|
imports:
|
||||||
|
preface: Možete uvesti podatke koje ste izvezli sa druge instance, kao što su liste ljudi koje ste pratili ili blokirali.
|
||||||
|
success: Vaši podaci su uspešno otpremljeni i biće obrađeni uskoro
|
||||||
|
types:
|
||||||
|
blocking: Lista blokiranja
|
||||||
|
following: Lista pratilaca
|
||||||
|
muting: Lista mutiranih
|
||||||
|
upload: Otpremi
|
||||||
|
in_memoriam_html: In Memoriam.
|
||||||
|
invites:
|
||||||
|
delete: Deaktiviraj
|
||||||
|
expired: Isteklo
|
||||||
|
expires_in:
|
||||||
|
'1800': 30 minuta
|
||||||
|
'21600': 6 sati
|
||||||
|
'3600': 1 sad
|
||||||
|
'43200': 12 sati
|
||||||
|
'86400': 1 dan
|
||||||
|
expires_in_prompt: Nikad
|
||||||
|
generate: Generiši
|
||||||
|
max_uses:
|
||||||
|
few: "%{count} korišćenja"
|
||||||
|
many: "%{count} korišćenja"
|
||||||
|
one: 1 korišćenje
|
||||||
|
other: "%{count} korišćenja"
|
||||||
|
max_uses_prompt: Bez ograničenja
|
||||||
|
prompt: Generiši i podeli linkove sa drugima da im odobrite pristup ovoj instanci
|
||||||
|
table:
|
||||||
|
expires_at: Ističe
|
||||||
|
uses: Korišćenja
|
||||||
|
title: Pozovi ljude
|
||||||
|
landing_strip_html: "<strong>%{name}</strong> je korisnik na %{link_to_root_path}. Možete ga zapratiti ili komunicirati sa njim ako imte nalog bilo gde u fediversu."
|
||||||
|
landing_strip_signup_html: Ako nemate, možete se <a href="%{sign_up_path}">registrovati ovde</a>.
|
||||||
|
lists:
|
||||||
|
errors:
|
||||||
|
limit: Dostigli ste limit broja listi
|
||||||
|
media_attachments:
|
||||||
|
validations:
|
||||||
|
images_and_video: Ne može da se prikači video na status koji već ima slike
|
||||||
|
too_many: Ne može se prikačiti više od 4 fajla
|
||||||
|
migrations:
|
||||||
|
acct: korisnik@domen novog naloga
|
||||||
|
currently_redirecting: 'Profil Vam je podešen da preusmerava na :'
|
||||||
|
proceed: Sačuvaj
|
||||||
|
updated_msg: Prebacivanje postavki Vašeg naloga uspešno izmenjeno!
|
||||||
|
moderation:
|
||||||
|
title: Moderacija
|
||||||
|
notification_mailer:
|
||||||
|
digest:
|
||||||
|
body: 'Evo kratak pregled šta ste propustili na instanci %{instance} od poslednje posete od %{since}:'
|
||||||
|
mention: "%{name} Vas je pomenuo u:"
|
||||||
|
new_followers_summary:
|
||||||
|
few: Dobili ste %{count} nova pratioca! Sjajno!
|
||||||
|
many: Dobili ste %{count} novih pratioca! Sjajno!
|
||||||
|
one: Dobili ste jednog novog pratioca! Jeee!
|
||||||
|
other: Dobili ste %{count} novih pratioca! Sjajno!
|
||||||
|
subject:
|
||||||
|
few: "%{count} nova obaveštenja od poslednje posete \U0001F418"
|
||||||
|
many: "%{count} novih obaveštenja od poslednje posete \U0001F418"
|
||||||
|
one: "1 novo obaveštenje od poslednje posete \U0001F418"
|
||||||
|
other: "%{count} novih obaveštenja od poslednje posete \U0001F418"
|
||||||
|
favourite:
|
||||||
|
body: "%{name} je postavio kao omiljen Vaš status:"
|
||||||
|
subject: "%{name} je postavio kao omiljen Vaš status"
|
||||||
|
follow:
|
||||||
|
body: "%{name} Vas je zapratio!"
|
||||||
|
subject: "%{name} Vas je zapratio"
|
||||||
|
follow_request:
|
||||||
|
body: "%{name} je zatražio da Vas zaprati"
|
||||||
|
subject: 'Pratioci na čekanju: %{name}'
|
||||||
|
mention:
|
||||||
|
body: "%{name} Vas je pomenuo u:"
|
||||||
|
subject: "%{name} Vas je pomenuo"
|
||||||
|
reblog:
|
||||||
|
body: "%{name} Vam je podržao(la) status:"
|
||||||
|
subject: "%{name} je podržao(la) Vaš status"
|
||||||
|
number:
|
||||||
|
human:
|
||||||
|
decimal_units:
|
||||||
|
format: "%n%u"
|
||||||
|
units:
|
||||||
|
billion: B
|
||||||
|
million: M
|
||||||
|
quadrillion: Q
|
||||||
|
thousand: K
|
||||||
|
trillion: T
|
||||||
|
unit: ''
|
||||||
|
pagination:
|
||||||
|
next: Sledeći
|
||||||
|
prev: Prethodni
|
||||||
|
truncate: "…"
|
||||||
|
preferences:
|
||||||
|
languages: Jezici
|
||||||
|
other: Ostali
|
||||||
|
publishing: Objavljivanje
|
||||||
|
web: Veb
|
||||||
|
push_notifications:
|
||||||
|
favourite:
|
||||||
|
title: "%{name} je stavio Vaš status za omiljeni"
|
||||||
|
follow:
|
||||||
|
title: "%{name} Vas je zapratio"
|
||||||
|
group:
|
||||||
|
title: "%{count} obaveštenja"
|
||||||
|
mention:
|
||||||
|
action_boost: Podrži
|
||||||
|
action_expand: Prikaži još
|
||||||
|
action_favourite: Omiljeni
|
||||||
|
title: "%{name} Vas je pomenuo"
|
||||||
|
reblog:
|
||||||
|
title: "%{name} je podržao(la) Vaš status"
|
||||||
|
remote_follow:
|
||||||
|
acct: Unesite Vaš korisnik@domen sa koga želite da pratite
|
||||||
|
missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog
|
||||||
|
proceed: Nastavite da zapratite
|
||||||
|
prompt: 'Zapratite će:'
|
||||||
|
sessions:
|
||||||
|
activity: Poslednja aktivnost
|
||||||
|
browser: Veb čitač
|
||||||
|
browsers:
|
||||||
|
alipay: Alipay
|
||||||
|
blackberry: Blekberi
|
||||||
|
chrome: Hrom
|
||||||
|
edge: Microsoft Edge
|
||||||
|
firefox: Firefox
|
||||||
|
generic: Nepoznati veb čitač
|
||||||
|
ie: Internet Explorer
|
||||||
|
micro_messenger: MicroMessenger
|
||||||
|
nokia: Nokia S40 Ovi Browser
|
||||||
|
opera: Opera
|
||||||
|
phantom_js: PhantomJS
|
||||||
|
qq: QQ Browser
|
||||||
|
safari: Safari
|
||||||
|
uc_browser: UCBrowser
|
||||||
|
weibo: Weibo
|
||||||
|
current_session: Trenutna sesija
|
||||||
|
description: "%{browser} sa %{platform}"
|
||||||
|
explanation: Ovo su trenutno prijavljeni veb čitači na Vaš Mastodont nalog.
|
||||||
|
ip: IP
|
||||||
|
platforms:
|
||||||
|
adobe_air: Adobe Air-a
|
||||||
|
android: Androida
|
||||||
|
blackberry: Blekberija
|
||||||
|
chrome_os: Hrom OS-a
|
||||||
|
firefox_os: Fajerfoks OS-a
|
||||||
|
ios: iOS
|
||||||
|
linux: Linuksa
|
||||||
|
mac: Mac-a
|
||||||
|
other: nepoznate platforme
|
||||||
|
windows: Vindouza
|
||||||
|
windows_mobile: Vindouz mobilnog
|
||||||
|
windows_phone: Vindouz telefona
|
||||||
|
revoke: Opozovi
|
||||||
|
revoke_success: Sesija uspešno opozvana
|
||||||
|
title: Sesije
|
||||||
|
settings:
|
||||||
|
authorized_apps: Autorizovane aplikacije
|
||||||
|
back: Nazad na Mastodonta
|
||||||
|
delete: Brisanje naloga
|
||||||
|
development: Razvoj
|
||||||
|
edit_profile: Izmena profila
|
||||||
|
export: Izvoz podataka
|
||||||
|
followers: Autorizovani pratioci
|
||||||
|
import: Uvoz
|
||||||
|
migrate: Prebacivanje naloga
|
||||||
|
notifications: Obaveštenja
|
||||||
|
preferences: Podešavanja
|
||||||
|
settings: Postavke
|
||||||
|
two_factor_authentication: Dvofaktorska identifikacija
|
||||||
|
your_apps: Vaše aplikacije
|
||||||
|
statuses:
|
||||||
|
open_in_web: Otvori u vebu
|
||||||
|
over_character_limit: ograničenje od %{max} karaktera prekoračeno
|
||||||
|
pin_errors:
|
||||||
|
limit: Već imate prikačen najveći broj tutova
|
||||||
|
ownership: Tuđi tutovi ne mogu da se prikače
|
||||||
|
private: Tutovi koji nisu javni ne mogu da se prikače
|
||||||
|
reblog: Podrška ne može da se prikači
|
||||||
|
show_more: Prikaži još
|
||||||
|
title: '%{name}: "%{quote}"'
|
||||||
|
visibilities:
|
||||||
|
private: Samo pratioci
|
||||||
|
private_long: Samo prikaži pratiocima
|
||||||
|
public: Javno
|
||||||
|
public_long: Svako može da vidi
|
||||||
|
unlisted: Neizlistano
|
||||||
|
unlisted_long: Svako može da vidi, ali nije izlistano na javnim lajnama
|
||||||
|
stream_entries:
|
||||||
|
click_to_show: Klikni da vidiš
|
||||||
|
pinned: Prikačeni tut
|
||||||
|
reblogged: podržano
|
||||||
|
sensitive_content: Osetljiv sadržaj
|
||||||
|
terms:
|
||||||
|
body_html: |
|
||||||
|
<h2>Privacy Policy</h2>
|
||||||
|
|
||||||
|
<h3 id="collect">What information do we collect?</h3>
|
||||||
|
|
||||||
|
<p>We collect information from you when you register on our site and gather data when you participate in the forum by reading, writing, and evaluating the content shared here.</p>
|
||||||
|
|
||||||
|
<p>When registering on our site, you may be asked to enter your name and e-mail address. You may, however, visit our site without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address.</p>
|
||||||
|
|
||||||
|
<p>When registered and posting, we record the IP address that the post originated from. We also may retain server logs which include the IP address of every request to our server.</p>
|
||||||
|
|
||||||
|
<h3 id="use">What do we use your information for?</h3>
|
||||||
|
|
||||||
|
<p>Any of the information we collect from you may be used in one of the following ways:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>To personalize your experience — your information helps us to better respond to your individual needs.</li>
|
||||||
|
<li>To improve our site — we continually strive to improve our site offerings based on the information and feedback we receive from you.</li>
|
||||||
|
<li>To improve customer service — your information helps us to more effectively respond to your customer service requests and support needs.</li>
|
||||||
|
<li>To send periodic emails — The email address you provide may be used to send you information, notifications that you request about changes to topics or in response to your user name, respond to inquiries, and/or other requests or questions.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3 id="protect">How do we protect your information?</h3>
|
||||||
|
|
||||||
|
<p>We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information.</p>
|
||||||
|
|
||||||
|
<h3 id="data-retention">What is your data retention policy?</h3>
|
||||||
|
|
||||||
|
<p>We will make a good faith effort to:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Retain server logs containing the IP address of all requests to this server no more than 90 days.</li>
|
||||||
|
<li>Retain the IP addresses associated with registered users and their posts no more than 5 years.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3 id="cookies">Do we use cookies?</h3>
|
||||||
|
|
||||||
|
<p>Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.</p>
|
||||||
|
|
||||||
|
<p>We use cookies to understand and save your preferences for future visits and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business.</p>
|
||||||
|
|
||||||
|
<h3 id="disclose">Do we disclose any information to outside parties?</h3>
|
||||||
|
|
||||||
|
<p>We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.</p>
|
||||||
|
|
||||||
|
<h3 id="third-party">Third party links</h3>
|
||||||
|
|
||||||
|
<p>Occasionally, at our discretion, we may include or offer third party products or services on our site. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these sites.</p>
|
||||||
|
|
||||||
|
<h3 id="coppa">Children's Online Privacy Protection Act Compliance</h3>
|
||||||
|
|
||||||
|
<p>Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a>) do not use this site.</p>
|
||||||
|
|
||||||
|
<h3 id="online">Online Privacy Policy Only</h3>
|
||||||
|
|
||||||
|
<p>This online privacy policy applies only to information collected through our site and not to information collected offline.</p>
|
||||||
|
|
||||||
|
<h3 id="consent">Your Consent</h3>
|
||||||
|
|
||||||
|
<p>By using our site, you consent to our web site privacy policy.</p>
|
||||||
|
|
||||||
|
<h3 id="changes">Changes to our Privacy Policy</h3>
|
||||||
|
|
||||||
|
<p>If we decide to change our privacy policy, we will post those changes on this page.</p>
|
||||||
|
|
||||||
|
<p>This document is CC-BY-SA. It was last updated May 31, 2013.</p>
|
||||||
|
|
||||||
|
<p>Originally adapted from the <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
|
||||||
|
title: Uslovi korišćenja i politika privatnosti instance %{instance}
|
||||||
|
themes:
|
||||||
|
default: Mastodont
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
default: "%b %d, %Y, %H:%M"
|
||||||
|
two_factor_authentication:
|
||||||
|
code_hint: Unesite kod sa Vaše aplikacije za proveru identiteta da potvrdite
|
||||||
|
description_html: Ako uključite <strong>dvofaktorsku identifikaciju</strong>, moraćete da imate telefon sa sobom da biste mogli da se prijavite. Telefon će onda generisati tokene za Vašu prijavu.
|
||||||
|
disable: Isključi
|
||||||
|
enable: Uključi
|
||||||
|
enabled: Dvofaktorska identifikacija je uključena
|
||||||
|
enabled_success: Dvofaktorska identifikacija je uspešno uključena
|
||||||
|
generate_recovery_codes: Generiši kodove za oporavak
|
||||||
|
instructions_html: "<strong>Skenirajte ovaj QR kod u Google Authenticator ili nekoj sličnoj TOTP aplikaciji na Vašem telefonu</strong>. Od sada, ta aplikacija će Vam generisati tokene koje morate uneti da biste se prijavili."
|
||||||
|
lost_recovery_codes: Kodovi za oporavak Vam omogućavaju da povratite pristup nalogu ako izgubite telefon. Ako izgubite kodove za oporavak, možete ih regenerisati ovde. Od tog trenutka, stari kodovi za oporavak više ne važe.
|
||||||
|
manual_instructions: 'Ukoliko ne možete da skenirate QR kod i morate ga unesete ručno, evo je ogoljena šifra:'
|
||||||
|
recovery_codes: Napravite rezervu kodova za oporavak
|
||||||
|
recovery_codes_regenerated: Kodovi za oporavak uspešno regenerisani
|
||||||
|
recovery_instructions_html: Ako ikada izgubite pristup telefonu, možete iskoristiti kodove za oporavak date ispod da povratite pristup nalogu. <strong>Držite kodove za oporavak na sigurnom</strong>. Na primer, odštampajte ih i čuvajte ih sa ostalim važnim dokumentima.
|
||||||
|
setup: Nameštanje
|
||||||
|
wrong_code: Uneseni kod nije ispravan! Da li su vremena na serveru i na uređaju ispravna?
|
||||||
|
users:
|
||||||
|
invalid_email: Adresa e-pošte nije ispravna
|
||||||
|
invalid_otp_token: Neispravni dvofaktorski kod
|
||||||
|
signed_in_as: 'Prijavljen kao:'
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
sr:
|
sr:
|
||||||
about:
|
about:
|
||||||
about_hashtag_html: Ово су јавни статуси таговани са <strong>#%{hashtag}</strong>. Можете одговарати на њих ако имате налог било где у федиверзуму.
|
about_hashtag_html: Ово су јавни статуси таговани са <strong>#%{hashtag}</strong>. Можете одговарати на њих ако имате налог било где у федиверсу.
|
||||||
about_mastodon_html: Мастодонт је друштвена мрежа базирана на отвореним протоколима и слободном софтверу отвореног кода. Децентрализована је као што је децентрализована е-пошта.
|
about_mastodon_html: Мастодонт је друштвена мрежа базирана на отвореним протоколима и слободном софтверу отвореног кода. Децентрализована је као што је децентрализована е-пошта.
|
||||||
about_this: О инстанци
|
about_this: О инстанци
|
||||||
closed_registrations: Регистрације су тренутно затворене на овој инстанци. Ипак! Можете наћи другу инстанцу на којој ћете направити налог и одатле добити приступ истој овој мрежи.
|
closed_registrations: Регистрације су тренутно затворене на овој инстанци. Ипак! Можете наћи другу инстанцу на којој ћете направити налог и одатле добити приступ истој овој мрежи.
|
||||||
|
@ -509,8 +509,8 @@ sr:
|
||||||
body: "%{name} Вас је поменуо у:"
|
body: "%{name} Вас је поменуо у:"
|
||||||
subject: "%{name} Вас је поменуо"
|
subject: "%{name} Вас је поменуо"
|
||||||
reblog:
|
reblog:
|
||||||
body: "%{name} Вам је погурао статус:"
|
body: "%{name} Вам је подржао(ла) статус:"
|
||||||
subject: "%{name} је погурао Ваш статус"
|
subject: "%{name} је подржао(ла) Ваш статус"
|
||||||
number:
|
number:
|
||||||
human:
|
human:
|
||||||
decimal_units:
|
decimal_units:
|
||||||
|
@ -539,12 +539,12 @@ sr:
|
||||||
group:
|
group:
|
||||||
title: "%{count} обавештења"
|
title: "%{count} обавештења"
|
||||||
mention:
|
mention:
|
||||||
action_boost: Погурај
|
action_boost: Подржи
|
||||||
action_expand: Прикажи још
|
action_expand: Прикажи још
|
||||||
action_favourite: Омиљени
|
action_favourite: Омиљени
|
||||||
title: "%{name} Вас је поменуо"
|
title: "%{name} Вас је поменуо"
|
||||||
reblog:
|
reblog:
|
||||||
title: "%{name} је погурао Ваш статус"
|
title: "%{name} је подржао(ла) Ваш статус"
|
||||||
remote_follow:
|
remote_follow:
|
||||||
acct: Унесите Ваш корисник@домен са кога желите да пратите
|
acct: Унесите Ваш корисник@домен са кога желите да пратите
|
||||||
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
|
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
|
||||||
|
@ -611,7 +611,7 @@ sr:
|
||||||
limit: Већ имате прикачен највећи број тутова
|
limit: Већ имате прикачен највећи број тутова
|
||||||
ownership: Туђи тутови не могу да се прикаче
|
ownership: Туђи тутови не могу да се прикаче
|
||||||
private: Тутови који нису јавни не могу да се прикаче
|
private: Тутови који нису јавни не могу да се прикаче
|
||||||
reblog: Погуравање не може да се прикачи
|
reblog: Подршка не може да се прикачи
|
||||||
show_more: Прикажи још
|
show_more: Прикажи још
|
||||||
title: '%{name}: "%{quote}"'
|
title: '%{name}: "%{quote}"'
|
||||||
visibilities:
|
visibilities:
|
||||||
|
@ -624,7 +624,7 @@ sr:
|
||||||
stream_entries:
|
stream_entries:
|
||||||
click_to_show: Кликни да видиш
|
click_to_show: Кликни да видиш
|
||||||
pinned: Прикачени тут
|
pinned: Прикачени тут
|
||||||
reblogged: погурано
|
reblogged: подржано
|
||||||
sensitive_content: Осетљив садржај
|
sensitive_content: Осетљив садржај
|
||||||
terms:
|
terms:
|
||||||
body_html: |
|
body_html: |
|
||||||
|
|
|
@ -332,7 +332,7 @@ RSpec.describe Formatter do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'contains malicious classes' do
|
context 'contains malicious classes' do
|
||||||
let(:text) { '<span class="status__content__spoiler-link">Show more</span>' }
|
let(:text) { '<span class="mention status__content__spoiler-link">Show more</span>' }
|
||||||
|
|
||||||
it 'strips malicious classes' do
|
it 'strips malicious classes' do
|
||||||
is_expected.to_not include 'status__content__spoiler-link'
|
is_expected.to_not include 'status__content__spoiler-link'
|
||||||
|
|
|
@ -33,6 +33,20 @@ describe UserMailer, type: :mailer do
|
||||||
instance: Rails.configuration.x.local_domain
|
instance: Rails.configuration.x.local_domain
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'reconfirmation_instructions' do
|
||||||
|
let(:mail) { UserMailer.confirmation_instructions(receiver, 'spec') }
|
||||||
|
|
||||||
|
it 'renders reconfirmation instructions' do
|
||||||
|
receiver.update!(email: 'new-email@example.com', locale: nil)
|
||||||
|
expect(mail.body.encoded).to include 'new-email@example.com'
|
||||||
|
expect(mail.body.encoded).to include 'spec'
|
||||||
|
expect(mail.body.encoded).to include Rails.configuration.x.local_domain
|
||||||
|
expect(mail.subject).to eq I18n.t('devise.mailer.reconfirmation_instructions.subject',
|
||||||
|
instance: Rails.configuration.x.local_domain,
|
||||||
|
locale: I18n.default_locale)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'reset_password_instructions' do
|
describe 'reset_password_instructions' do
|
||||||
let(:mail) { UserMailer.reset_password_instructions(receiver, 'spec') }
|
let(:mail) { UserMailer.reset_password_instructions(receiver, 'spec') }
|
||||||
|
|
||||||
|
@ -57,4 +71,16 @@ describe UserMailer, type: :mailer do
|
||||||
include_examples 'localized subject',
|
include_examples 'localized subject',
|
||||||
'devise.mailer.password_change.subject'
|
'devise.mailer.password_change.subject'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'email_changed' do
|
||||||
|
let(:mail) { UserMailer.email_changed(receiver) }
|
||||||
|
|
||||||
|
it 'renders email change notification' do
|
||||||
|
receiver.update!(locale: nil)
|
||||||
|
expect(mail.body.encoded).to include receiver.email
|
||||||
|
end
|
||||||
|
|
||||||
|
include_examples 'localized subject',
|
||||||
|
'devise.mailer.email_changed.subject'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue