mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-06 17:19:39 +03:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f4a6ab8ea | ||
|
|
9c4b6f36f1 | ||
|
|
140aed3586 | ||
|
|
cf87b78636 | ||
|
|
ec827da5a5 | ||
|
|
20528a2442 | ||
|
|
78886b1e67 | ||
|
|
d9debaf032 | ||
|
|
b3c47649b4 | ||
|
|
70be28d22c | ||
|
|
9df4dee1b2 | ||
|
|
60ffe6a993 | ||
|
|
0c880def5e |
1
.github/translators.txt
vendored
1
.github/translators.txt
vendored
@@ -156,3 +156,4 @@ nikservik :: Ukrainian; Russian; Polish
|
||||
HenrijsS :: Latvian
|
||||
Pascal R-B (pborgner) :: German
|
||||
Boris (Ginfred) :: Russian
|
||||
Jonas Anker Rasmussen (jonasanker) :: Danish
|
||||
|
||||
@@ -202,6 +202,7 @@ class AttachmentService
|
||||
try {
|
||||
$storage->put($attachmentPath, $attachmentData);
|
||||
} catch (Exception $e) {
|
||||
\Log::error('Error when attempting file upload:' . $e->getMessage());
|
||||
throw new FileUploadException(trans('errors.path_not_writable', ['filePath' => $attachmentPath]));
|
||||
}
|
||||
|
||||
|
||||
@@ -109,6 +109,7 @@ class ImageService
|
||||
$storage->put($fullPath, $imageData);
|
||||
$storage->setVisibility($fullPath, 'public');
|
||||
} catch (Exception $e) {
|
||||
\Log::error('Error when attempting image upload:' . $e->getMessage());
|
||||
throw new ImageUploadException(trans('errors.path_not_writable', ['filePath' => $fullPath]));
|
||||
}
|
||||
|
||||
|
||||
466
composer.lock
generated
466
composer.lock
generated
File diff suppressed because it is too large
Load Diff
46
public/dist/app.js
vendored
46
public/dist/app.js
vendored
File diff suppressed because one or more lines are too long
2
public/dist/export-styles.css
vendored
2
public/dist/export-styles.css
vendored
File diff suppressed because one or more lines are too long
2
public/dist/styles.css
vendored
2
public/dist/styles.css
vendored
File diff suppressed because one or more lines are too long
@@ -12,6 +12,7 @@ class DropDown {
|
||||
this.menu = this.$refs.menu;
|
||||
this.toggle = this.$refs.toggle;
|
||||
this.moveMenu = this.$opts.moveMenu;
|
||||
this.bubbleEscapes = this.$opts.bubbleEscapes === 'true';
|
||||
|
||||
this.direction = (document.dir === 'rtl') ? 'right' : 'left';
|
||||
this.body = document.body;
|
||||
@@ -137,7 +138,9 @@ class DropDown {
|
||||
} else if (event.key === 'Escape') {
|
||||
this.hide();
|
||||
this.toggle.focus();
|
||||
event.stopPropagation();
|
||||
if (!this.bubbleEscapes) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
};
|
||||
this.container.addEventListener('keydown', keyboardNavigation);
|
||||
|
||||
@@ -1,31 +1,41 @@
|
||||
|
||||
class HeaderMobileToggle {
|
||||
|
||||
constructor(elem) {
|
||||
this.elem = elem;
|
||||
this.toggleButton = elem.querySelector('.mobile-menu-toggle');
|
||||
this.menu = elem.querySelector('.header-links');
|
||||
this.open = false;
|
||||
setup() {
|
||||
this.elem = this.$el;
|
||||
this.toggleButton = this.$refs.toggle;
|
||||
this.menu = this.$refs.menu;
|
||||
|
||||
this.open = false;
|
||||
this.toggleButton.addEventListener('click', this.onToggle.bind(this));
|
||||
this.onWindowClick = this.onWindowClick.bind(this);
|
||||
this.onKeyDown = this.onKeyDown.bind(this);
|
||||
}
|
||||
|
||||
onToggle(event) {
|
||||
this.open = !this.open;
|
||||
this.menu.classList.toggle('show', this.open);
|
||||
this.toggleButton.setAttribute('aria-expanded', this.open ? 'true' : 'false');
|
||||
if (this.open) {
|
||||
this.elem.addEventListener('keydown', this.onKeyDown);
|
||||
window.addEventListener('click', this.onWindowClick)
|
||||
} else {
|
||||
this.elem.removeEventListener('keydown', this.onKeyDown);
|
||||
window.removeEventListener('click', this.onWindowClick)
|
||||
}
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
||||
onKeyDown(event) {
|
||||
if (event.code === 'Escape') {
|
||||
this.onToggle(event);
|
||||
}
|
||||
}
|
||||
|
||||
onWindowClick(event) {
|
||||
this.onToggle(event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = HeaderMobileToggle;
|
||||
export default HeaderMobileToggle;
|
||||
@@ -1,8 +1,9 @@
|
||||
|
||||
class TriLayout {
|
||||
|
||||
constructor(elem) {
|
||||
this.elem = elem;
|
||||
setup() {
|
||||
this.container = this.$refs.container;
|
||||
this.tabs = this.$manyRefs.tab;
|
||||
|
||||
this.lastLayoutType = 'none';
|
||||
this.onDestroy = null;
|
||||
@@ -43,13 +44,12 @@ class TriLayout {
|
||||
}
|
||||
|
||||
setupMobile() {
|
||||
const layoutTabs = document.querySelectorAll('[tri-layout-mobile-tab]');
|
||||
for (let tab of layoutTabs) {
|
||||
for (const tab of this.tabs) {
|
||||
tab.addEventListener('click', this.mobileTabClick);
|
||||
}
|
||||
|
||||
this.onDestroy = () => {
|
||||
for (let tab of layoutTabs) {
|
||||
for (const tab of this.tabs) {
|
||||
tab.removeEventListener('click', this.mobileTabClick);
|
||||
}
|
||||
}
|
||||
@@ -65,7 +65,7 @@ class TriLayout {
|
||||
* @param event
|
||||
*/
|
||||
mobileTabClick(event) {
|
||||
const tab = event.target.getAttribute('tri-layout-mobile-tab');
|
||||
const tab = event.target.dataset.tab;
|
||||
this.showTab(tab);
|
||||
}
|
||||
|
||||
@@ -79,21 +79,21 @@ class TriLayout {
|
||||
|
||||
/**
|
||||
* Show the given tab
|
||||
* @param tabName
|
||||
* @param {String} tabName
|
||||
* @param {Boolean }scroll
|
||||
*/
|
||||
showTab(tabName, scroll = true) {
|
||||
this.scrollCache[this.lastTabShown] = document.documentElement.scrollTop;
|
||||
|
||||
// Set tab status
|
||||
const tabs = document.querySelectorAll('.tri-layout-mobile-tab');
|
||||
for (let tab of tabs) {
|
||||
const isActive = (tab.getAttribute('tri-layout-mobile-tab') === tabName);
|
||||
tab.classList.toggle('active', isActive);
|
||||
for (const tab of this.tabs) {
|
||||
const isActive = (tab.dataset.tab === tabName);
|
||||
tab.setAttribute('aria-selected', isActive ? 'true' : 'false');
|
||||
}
|
||||
|
||||
// Toggle section
|
||||
const showInfo = (tabName === 'info');
|
||||
this.elem.classList.toggle('show-info', showInfo);
|
||||
this.container.classList.toggle('show-info', showInfo);
|
||||
|
||||
// Set the scroll position from cache
|
||||
if (scroll) {
|
||||
|
||||
@@ -152,8 +152,8 @@ function codePlugin() {
|
||||
return;
|
||||
}
|
||||
|
||||
let lang = selectedNode.hasAttribute('data-lang') ? selectedNode.getAttribute('data-lang') : '';
|
||||
let currentCode = selectedNode.querySelector('textarea').textContent;
|
||||
const lang = selectedNode.hasAttribute('data-lang') ? selectedNode.getAttribute('data-lang') : '';
|
||||
const currentCode = selectedNode.querySelector('textarea').textContent;
|
||||
|
||||
window.components.first('code-editor').open(currentCode, lang, (code, lang) => {
|
||||
const editorElem = selectedNode.querySelector('.CodeMirror');
|
||||
@@ -225,22 +225,23 @@ function codePlugin() {
|
||||
return elem.contentEditable !== "false";
|
||||
});
|
||||
|
||||
if (!codeSamples.length) return;
|
||||
editor.undoManager.transact(function () {
|
||||
codeSamples.each((index, elem) => {
|
||||
Code.wysiwygView(elem);
|
||||
});
|
||||
codeSamples.each((index, elem) => {
|
||||
Code.wysiwygView(elem);
|
||||
});
|
||||
}
|
||||
|
||||
editor.on('init', function() {
|
||||
// Parse code mirror instances on init, but delay a little so this runs after
|
||||
// initial styles are fetched into the editor.
|
||||
parseCodeMirrorInstances();
|
||||
editor.undoManager.transact(function () {
|
||||
parseCodeMirrorInstances();
|
||||
});
|
||||
// Parsed code mirror blocks when content is set but wait before setting this handler
|
||||
// to avoid any init 'SetContent' events.
|
||||
setTimeout(() => {
|
||||
editor.on('SetContent', parseCodeMirrorInstances);
|
||||
editor.on('SetContent', () => {
|
||||
setTimeout(parseCodeMirrorInstances, 100);
|
||||
});
|
||||
}, 200);
|
||||
});
|
||||
|
||||
|
||||
@@ -149,8 +149,8 @@ async function getResponseContent(response) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const responseContentType = response.headers.get('Content-Type');
|
||||
const subType = responseContentType.split('/').pop();
|
||||
const responseContentType = response.headers.get('Content-Type') || '';
|
||||
const subType = responseContentType.split(';')[0].split('/').pop();
|
||||
|
||||
if (subType === 'javascript' || subType === 'json') {
|
||||
return await response.json();
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'شريط التنقل',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'قائمة ملف التعريف',
|
||||
'view_profile' => 'عرض الملف الشخصي',
|
||||
'edit_profile' => 'تعديل الملف الشخصي',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'معلومات',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'المحتوى',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'إذا واجهتكم مشكلة بضغط زر ":actionText" فبإمكانكم نسخ الرابط أدناه ولصقه بالمتصفح:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Трасиране',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Профил меню',
|
||||
'view_profile' => 'Разглеждане на профил',
|
||||
'edit_profile' => 'Редактиране на профила',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Информация',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Съдържание',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Ако имате проблеми с бутона ":actionText" по-горе, копирайте и поставете URL адреса по-долу в уеб браузъра си:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Navigacijske stavke',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Meni profila',
|
||||
'view_profile' => 'Pogledaj profil',
|
||||
'edit_profile' => 'Izmjeni profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informacije',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Sadržaj',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Ukoliko imate poteškoća sa pritiskom na ":actionText" dugme, kopirajte i zaljepite URL koji se nalazi ispod u vaš web pretraživač:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Ruta de navegació',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menú del perfil',
|
||||
'view_profile' => 'Mostra el perfil',
|
||||
'edit_profile' => 'Edita el perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informació',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Contingut',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Si teniu problemes per fer clic al botó ":actionText", copieu i enganxeu l\'URL següent al vostre navegador web:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Drobečková navigace',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Nabídka profilu',
|
||||
'view_profile' => 'Zobrazit profil',
|
||||
'edit_profile' => 'Upravit profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informace',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Obsah',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Pokud se vám nedaří kliknout na tlačítko „:actionText“, zkopírujte a vložte níže uvedenou URL do vašeho webového prohlížeče:',
|
||||
|
||||
@@ -20,7 +20,7 @@ return [
|
||||
'chapter_create' => 'oprettede kapitel',
|
||||
'chapter_create_notification' => 'Kapitel blev oprettet',
|
||||
'chapter_update' => 'opdaterede kapitel',
|
||||
'chapter_update_notification' => 'Kapitel blev opdateret',
|
||||
'chapter_update_notification' => 'Kapitlet blev opdateret',
|
||||
'chapter_delete' => 'slettede kapitel',
|
||||
'chapter_delete_notification' => 'Kapitel blev slettet',
|
||||
'chapter_move' => 'flyttede kapitel',
|
||||
@@ -45,5 +45,5 @@ return [
|
||||
|
||||
// Other
|
||||
'commented_on' => 'kommenterede til',
|
||||
'permissions_update' => 'updated permissions',
|
||||
'permissions_update' => 'Tilladelser opdateret',
|
||||
];
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
*/
|
||||
return [
|
||||
|
||||
'failed' => 'Det indtastede stemmer ikke overens med vores registrering.',
|
||||
'throttle' => 'For mange mislykkede loginforsøg. Prøv igen om :seconds seconds.',
|
||||
'failed' => 'Dee indtastede brugeroplysninger stemmer ikke overens med vores registreringer.',
|
||||
'throttle' => 'For mange mislykkede loginforsøg. Prøv igen om :seconds sekunder.',
|
||||
|
||||
// Login & Register
|
||||
'sign_up' => 'Registrér',
|
||||
@@ -21,11 +21,11 @@ return [
|
||||
'email' => 'E-mail',
|
||||
'password' => 'Adgangskode',
|
||||
'password_confirm' => 'Bekræft adgangskode',
|
||||
'password_hint' => 'Skal være på mindst 8 karakterer',
|
||||
'password_hint' => 'Skal være på mindst 7 karakterer',
|
||||
'forgot_password' => 'Glemt Adgangskode?',
|
||||
'remember_me' => 'Husk Mig',
|
||||
'remember_me' => 'Husk mig',
|
||||
'ldap_email_hint' => 'Angiv venligst din kontos e-mail.',
|
||||
'create_account' => 'Opret Konto',
|
||||
'create_account' => 'Opret konto',
|
||||
'already_have_account' => 'Har du allerede en konto?',
|
||||
'dont_have_account' => 'Har du ikke en konto?',
|
||||
'social_login' => 'Social Log ind',
|
||||
|
||||
@@ -33,7 +33,7 @@ return [
|
||||
'copy' => 'Kopier',
|
||||
'reply' => 'Besvar',
|
||||
'delete' => 'Slet',
|
||||
'delete_confirm' => 'Confirm Deletion',
|
||||
'delete_confirm' => 'Bekræft sletning',
|
||||
'search' => 'Søg',
|
||||
'search_clear' => 'Ryd søgning',
|
||||
'reset' => 'Nulstil',
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Sorter stigende',
|
||||
'sort_descending' => 'Sorter faldende',
|
||||
'sort_name' => 'Navn',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Standard',
|
||||
'sort_created_at' => 'Oprettelsesdato',
|
||||
'sort_updated_at' => 'Opdateringsdato',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brødkrumme',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Udvid header menu',
|
||||
'profile_menu' => 'Profilmenu',
|
||||
'view_profile' => 'Vis profil',
|
||||
'edit_profile' => 'Redigér Profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Faneblad: Vis sekundær information',
|
||||
'tab_content' => 'Indhold',
|
||||
'tab_content_label' => 'Faneblad: Vis primær indhold',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Hvis du har problemer med at trykke på ":actionText" knappen, prøv at kopiere og indsætte linket herunder ind i din webbrowser:',
|
||||
@@ -81,6 +84,6 @@ return [
|
||||
|
||||
// Footer Link Options
|
||||
// Not directly used but available for convenience to users.
|
||||
'privacy_policy' => 'Privacy Policy',
|
||||
'terms_of_service' => 'Terms of Service',
|
||||
'privacy_policy' => 'Privatlivspolitik',
|
||||
'terms_of_service' => 'Tjenestevilkår',
|
||||
];
|
||||
|
||||
@@ -15,7 +15,7 @@ return [
|
||||
'image_load_more' => 'Indlæse mere',
|
||||
'image_image_name' => 'Billednavn',
|
||||
'image_delete_used' => 'Dette billede er brugt på siderne nedenfor.',
|
||||
'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
|
||||
'image_delete_confirm_text' => 'Er du sikker på at du vil slette dette billede?',
|
||||
'image_select_image' => 'Vælg billede',
|
||||
'image_dropzone' => 'Træk-og-slip billede eller klik her for at uploade',
|
||||
'images_deleted' => 'Billede slettet',
|
||||
@@ -29,6 +29,6 @@ return [
|
||||
'code_editor' => 'Rediger kode',
|
||||
'code_language' => 'Kodesprog',
|
||||
'code_content' => 'Kodeindhold',
|
||||
'code_session_history' => 'Session History',
|
||||
'code_session_history' => 'Sessionshistorik',
|
||||
'code_save' => 'Gem kode',
|
||||
];
|
||||
|
||||
@@ -22,7 +22,7 @@ return [
|
||||
'meta_created_name' => 'Oprettet :timeLength af :user',
|
||||
'meta_updated' => 'Opdateret :timeLength',
|
||||
'meta_updated_name' => 'Opdateret :timeLength af :user',
|
||||
'meta_owned_name' => 'Owned by :user',
|
||||
'meta_owned_name' => 'Ejet af :user',
|
||||
'entity_select' => 'Vælg emne',
|
||||
'images' => 'Billeder',
|
||||
'my_recent_drafts' => 'Mine seneste kladder',
|
||||
@@ -40,7 +40,7 @@ return [
|
||||
'permissions_intro' => 'Når de er aktiveret, vil disse tilladelser have prioritet over alle indstillede rolletilladelser.',
|
||||
'permissions_enable' => 'Aktivér tilpassede tilladelser',
|
||||
'permissions_save' => 'Gem tilladelser',
|
||||
'permissions_owner' => 'Owner',
|
||||
'permissions_owner' => 'Ejer',
|
||||
|
||||
// Search
|
||||
'search_results' => 'Søgeresultater',
|
||||
@@ -49,8 +49,8 @@ return [
|
||||
'search_no_pages' => 'Ingen sider matchede søgning',
|
||||
'search_for_term' => 'Søgning for :term',
|
||||
'search_more' => 'Flere resultater',
|
||||
'search_advanced' => 'Advanced Search',
|
||||
'search_terms' => 'Search Terms',
|
||||
'search_advanced' => 'Avanceret søgning',
|
||||
'search_terms' => 'Søgeord',
|
||||
'search_content_type' => 'Indholdstype',
|
||||
'search_exact_matches' => 'Nøjagtige matches',
|
||||
'search_tags' => 'Tagsøgninger',
|
||||
@@ -60,7 +60,7 @@ return [
|
||||
'search_permissions_set' => 'Rettigheders sæt',
|
||||
'search_created_by_me' => 'Oprettet af mig',
|
||||
'search_updated_by_me' => 'Opdateret af mig',
|
||||
'search_owned_by_me' => 'Owned by me',
|
||||
'search_owned_by_me' => 'Ejet af mig',
|
||||
'search_date_options' => 'Datoindstillinger',
|
||||
'search_updated_before' => 'Opdateret før',
|
||||
'search_updated_after' => 'Opdateret efter',
|
||||
@@ -149,7 +149,7 @@ return [
|
||||
'chapters_create' => 'Opret nyt kapitel',
|
||||
'chapters_delete' => 'Slet kapitel',
|
||||
'chapters_delete_named' => 'Slet kapitel :chapterName',
|
||||
'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\'. All pages that exist within this chapter will also be deleted.',
|
||||
'chapters_delete_explain' => 'Dette vil slette kapitlet med navnet \':chapterName\'. Alle sider i dette kapitel vil også blive slettet.',
|
||||
'chapters_delete_confirm' => 'Er du sikker på du vil slette dette kapitel?',
|
||||
'chapters_edit' => 'Rediger kapitel',
|
||||
'chapters_edit_named' => 'Rediger kapitel :chapterName',
|
||||
@@ -211,7 +211,7 @@ return [
|
||||
'pages_revisions' => 'Sidserevisioner',
|
||||
'pages_revisions_named' => 'Siderevisioner for :pageName',
|
||||
'pages_revision_named' => 'Siderevision for :pageName',
|
||||
'pages_revision_restored_from' => 'Restored from #:id; :summary',
|
||||
'pages_revision_restored_from' => 'Genoprettet fra #:id; :summary',
|
||||
'pages_revisions_created_by' => 'Oprettet af',
|
||||
'pages_revisions_date' => 'Revisionsdato',
|
||||
'pages_revisions_number' => '#',
|
||||
@@ -260,7 +260,7 @@ return [
|
||||
'attachments_upload' => 'Upload fil',
|
||||
'attachments_link' => 'Vedhæft link',
|
||||
'attachments_set_link' => 'Sæt link',
|
||||
'attachments_delete' => 'Are you sure you want to delete this attachment?',
|
||||
'attachments_delete' => 'Er du sikker på at du vil slette denne vedhæftning?',
|
||||
'attachments_dropzone' => 'Slip filer eller klik her for at vedhæfte en fil',
|
||||
'attachments_no_files' => 'Ingen filer er blevet overført',
|
||||
'attachments_explain_link' => 'Du kan vedhæfte et link, hvis du foretrækker ikke at uploade en fil. Dette kan være et link til en anden side eller et link til en fil i skyen.',
|
||||
@@ -269,7 +269,7 @@ return [
|
||||
'attachments_link_url' => 'Link til filen',
|
||||
'attachments_link_url_hint' => 'Adresse (URL) på side eller fil',
|
||||
'attach' => 'Vedhæft',
|
||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
||||
'attachments_insert_link' => 'Tilføj vedhæftningslink til side',
|
||||
'attachments_edit_file' => 'Rediger fil',
|
||||
'attachments_edit_file_name' => 'Filnavn',
|
||||
'attachments_edit_drop_upload' => 'Slip filer eller klik her for at uploade og overskrive',
|
||||
|
||||
@@ -9,13 +9,13 @@ return [
|
||||
// Common Messages
|
||||
'settings' => 'Indstillinger',
|
||||
'settings_save' => 'Gem indstillinger',
|
||||
'settings_save_success' => 'Indstillinger gemt',
|
||||
'settings_save_success' => 'Indstillingerne blev gemt',
|
||||
|
||||
// App Settings
|
||||
'app_customization' => 'Tilpasning',
|
||||
'app_features_security' => 'Funktioner & sikkerhed',
|
||||
'app_name' => 'Programnavn',
|
||||
'app_name_desc' => 'Dette er navnet vist i headeren og i systemafsendte E-Mails.',
|
||||
'app_features_security' => 'Funktionalitet og sikkerhed',
|
||||
'app_name' => 'Applikationsnavn',
|
||||
'app_name_desc' => 'Dette navn vises i headeren og i alle e-mails sendt fra systemet.',
|
||||
'app_name_header' => 'Vis navn i header',
|
||||
'app_public_access' => 'Offentlig adgang',
|
||||
'app_public_access_desc' => 'Aktivering af denne funktion giver besøgende, der ikke er logget ind, adgang til indhold i din BookStack-instans.',
|
||||
@@ -24,24 +24,24 @@ return [
|
||||
'app_public_viewing' => 'Tillad offentlig visning?',
|
||||
'app_secure_images' => 'Højere sikkerhed for billeduploads',
|
||||
'app_secure_images_toggle' => 'Aktiver højere sikkerhed for billeduploads',
|
||||
'app_secure_images_desc' => 'Af ydeevneårsager er alle billeder offentlige. Denne funktion tilføjer en tilfældig, vanskelig at gætte streng foran billed-Url\'er. Sørg for, at mappeindekser ikke er aktiveret for at forhindre nem adgang.',
|
||||
'app_secure_images_desc' => 'Af performanceårsager er alle billeder offentlige. Denne funktion tilføjer en tilfældig, vanskelig at gætte streng foran billed-url\'er. Sørg for, at mappeindeksering ikke er aktiveret for at forhindre nem adgang.',
|
||||
'app_editor' => 'Sideeditor',
|
||||
'app_editor_desc' => 'Vælg hvilken editor der skal bruges af alle brugere til at redigere sider.',
|
||||
'app_custom_html' => 'Tilpasset HTML head-indhold',
|
||||
'app_custom_html_desc' => 'Al indhold tilføjet her, vil blive indsat i bunden af <head> sektionen på alle sider. Dette er brugbart til overskrivning af styling og tilføjelse af analysekode.',
|
||||
'app_custom_html_disabled_notice' => 'Brugerdefineret HTML-head indhold er deaktiveret på denne indstillingsside for at sikre, at ødelæggende ændringer kan rettes.',
|
||||
'app_logo' => 'Programlogo',
|
||||
'app_logo_desc' => 'Dette billede skal være 43px højt. <br> Større billeder vil blive skaleret ned.',
|
||||
'app_primary_color' => 'Primær programfarve',
|
||||
'app_custom_html' => 'Tilpasset HTML head indhold',
|
||||
'app_custom_html_desc' => 'Alt indhold tilføjet her, vil blive indsat i bunden af <head> sektionen på alle sider. Dette er brugbart til overskrivning af styles og tilføjelse af analytics kode.',
|
||||
'app_custom_html_disabled_notice' => 'Brugerdefineret HTML head indhold er deaktiveret på denne indstillingsside for at, at ændringer kan rulles tilbage.',
|
||||
'app_logo' => 'Applikationslogo',
|
||||
'app_logo_desc' => 'Dette billede skal være 43px højt. <br>Store billeder vil blive skaleret ned.',
|
||||
'app_primary_color' => 'Primær applikationsfarve',
|
||||
'app_primary_color_desc' => 'Sætter den primære farve for applikationen herunder banneret, knapper og links.',
|
||||
'app_homepage' => 'Programforside',
|
||||
'app_homepage_desc' => 'Vælg en visning, der skal vises på startsiden i stedet for standardvisningen. Sidetilladelser ignoreres for valgte sider.',
|
||||
'app_homepage' => 'Applikationsforside',
|
||||
'app_homepage_desc' => 'Vælg en visning, der skal vises på forsiden i stedet for standardvisningen. Sidetilladelser ignoreres for de valgte sider.',
|
||||
'app_homepage_select' => 'Vælg en side',
|
||||
'app_footer_links' => 'Footer Links',
|
||||
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
|
||||
'app_footer_links_label' => 'Link Label',
|
||||
'app_footer_links' => 'Footer links',
|
||||
'app_footer_links_desc' => 'Tilføj links til footeren. Linksene vil blive vist nederst på de fleste sider, inkluderet sider, som ikke kræver login. Brug en label med "trans::<key>" for at bruge systemdefinerede oversættelser. For eksempel: "trans::common.privacy_policy" giver den oversatte tekst "Privacy Policy" og "trans::common.terms_of_service" vil give den oversatte tekst "Terms of Service".',
|
||||
'app_footer_links_label' => 'Link label',
|
||||
'app_footer_links_url' => 'Link URL',
|
||||
'app_footer_links_add' => 'Add Footer Link',
|
||||
'app_footer_links_add' => 'Tilføj footer link',
|
||||
'app_disable_comments' => 'Deaktiver kommentarer',
|
||||
'app_disable_comments_toggle' => 'Deaktiver kommentar',
|
||||
'app_disable_comments_desc' => 'Deaktiverer kommentarer på tværs af alle sider i applikationen. <br> Eksisterende kommentarer vises ikke.',
|
||||
@@ -73,7 +73,7 @@ return [
|
||||
'maint' => 'Vedligeholdelse',
|
||||
'maint_image_cleanup' => 'Ryd op i billeder',
|
||||
'maint_image_cleanup_desc' => "Scanner side & revisionsindhold for at kontrollere, hvilke billeder og tegninger, der i øjeblikket er i brug, og hvilke billeder, der er overflødige. Sørg for, at du opretter en komplet database og billedbackup, før du kører dette.",
|
||||
'maint_delete_images_only_in_revisions' => 'Also delete images that only exist in old page revisions',
|
||||
'maint_delete_images_only_in_revisions' => 'Slet også billeder, der kun findes i gamle siderevisioner',
|
||||
'maint_image_cleanup_run' => 'Kør Oprydning',
|
||||
'maint_image_cleanup_warning' => 'der blev fundet :count potentielt ubrugte billeder. Er du sikker på, at du vil slette disse billeder?',
|
||||
'maint_image_cleanup_success' => ':count: potentielt ubrugte billeder fundet og slettet!',
|
||||
@@ -85,41 +85,41 @@ return [
|
||||
'maint_send_test_email_mail_subject' => 'Test E-Mail',
|
||||
'maint_send_test_email_mail_greeting' => 'E-Mail levering ser ud til at virke!',
|
||||
'maint_send_test_email_mail_text' => 'Tillykke! Da du har modtaget denne mailnotifikation, ser det ud som om, at dine mailindstillinger er opsat korrekt.',
|
||||
'maint_recycle_bin_desc' => 'Deleted shelves, books, chapters & pages are sent to the recycle bin so they can be restored or permanently deleted. Older items in the recycle bin may be automatically removed after a while depending on system configuration.',
|
||||
'maint_recycle_bin_open' => 'Open Recycle Bin',
|
||||
'maint_recycle_bin_desc' => 'Slettede hylder, bøger, kapitler og sider overføres til papirkurven, så de kan gendannes eller slettes permanent. Ældre elementer i papirkurven fjernes automatisk efter et stykke tid afhængigt af systemets konfiguration.',
|
||||
'maint_recycle_bin_open' => 'Åbn papirkurven',
|
||||
|
||||
// Recycle Bin
|
||||
'recycle_bin' => 'Recycle Bin',
|
||||
'recycle_bin_desc' => 'Here you can restore items that have been deleted or choose to permanently remove them from the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
||||
'recycle_bin_deleted_item' => 'Deleted Item',
|
||||
'recycle_bin_deleted_by' => 'Deleted By',
|
||||
'recycle_bin_deleted_at' => 'Deletion Time',
|
||||
'recycle_bin_permanently_delete' => 'Permanently Delete',
|
||||
'recycle_bin_restore' => 'Restore',
|
||||
'recycle_bin_contents_empty' => 'The recycle bin is currently empty',
|
||||
'recycle_bin_empty' => 'Empty Recycle Bin',
|
||||
'recycle_bin_empty_confirm' => 'This will permanently destroy all items in the recycle bin including content contained within each item. Are you sure you want to empty the recycle bin?',
|
||||
'recycle_bin_destroy_confirm' => 'This action will permanently delete this item, along with any child elements listed below, from the system and you will not be able to restore this content. Are you sure you want to permanently delete this item?',
|
||||
'recycle_bin_destroy_list' => 'Items to be Destroyed',
|
||||
'recycle_bin_restore_list' => 'Items to be Restored',
|
||||
'recycle_bin_restore_confirm' => 'This action will restore the deleted item, including any child elements, to their original location. If the original location has since been deleted, and is now in the recycle bin, the parent item will also need to be restored.',
|
||||
'recycle_bin_restore_deleted_parent' => 'The parent of this item has also been deleted. These will remain deleted until that parent is also restored.',
|
||||
'recycle_bin_destroy_notification' => 'Deleted :count total items from the recycle bin.',
|
||||
'recycle_bin_restore_notification' => 'Restored :count total items from the recycle bin.',
|
||||
'recycle_bin' => 'Papirkurv',
|
||||
'recycle_bin_desc' => 'Her kan du gendanne elementer, der er blevet slettet eller vælge at permanent fjerne dem fra systemet. Denne liste er ufiltreret, i modsætning til lignende aktivitetslister i systemet, hvor tilladelsesfiltre anvendes.',
|
||||
'recycle_bin_deleted_item' => 'Slettet element',
|
||||
'recycle_bin_deleted_by' => 'Slettet af',
|
||||
'recycle_bin_deleted_at' => 'Sletningstidspunkt',
|
||||
'recycle_bin_permanently_delete' => 'Slet permanent',
|
||||
'recycle_bin_restore' => 'Gendan',
|
||||
'recycle_bin_contents_empty' => 'Papirkurven er tom',
|
||||
'recycle_bin_empty' => 'Tøm papirkurv',
|
||||
'recycle_bin_empty_confirm' => 'Dette vil permanent slette alle elementer i papirkurven, inkluderet hvert elements indhold. Er du sikker på, at du vil tømme papirkurven?',
|
||||
'recycle_bin_destroy_confirm' => 'Denne handling sletter dette element permanent, sammen med elementerne anført nedenfor, fra systemet. Du vil ikke være i stand til at gendanne dette indhold. Er du sikker på, at du vil slette dette element permanent?',
|
||||
'recycle_bin_destroy_list' => 'Elementer der skal slettes',
|
||||
'recycle_bin_restore_list' => 'Elementer der skal gendannes',
|
||||
'recycle_bin_restore_confirm' => 'Denne handling vil gendanne det slettede element, herunder alle underelementer, til deres oprindelige placering. Hvis den oprindelige placering siden er blevet slettet, og nu er i papirkurven, vil det overordnede element også skulle gendannes.',
|
||||
'recycle_bin_restore_deleted_parent' => 'Det overordnede element til dette element er også blevet slettet. Disse vil forblive slettet indtil det overordnede også er gendannet.',
|
||||
'recycle_bin_destroy_notification' => 'Slettede :count elementer fra papirkurven.',
|
||||
'recycle_bin_restore_notification' => 'Gendannede :count elementer fra papirkurven.',
|
||||
|
||||
// Audit Log
|
||||
'audit' => 'Audit Log',
|
||||
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
||||
'audit_event_filter' => 'Event Filter',
|
||||
'audit_event_filter_no_filter' => 'No Filter',
|
||||
'audit_deleted_item' => 'Deleted Item',
|
||||
'audit_deleted_item_name' => 'Name: :name',
|
||||
'audit_table_user' => 'User',
|
||||
'audit_table_event' => 'Event',
|
||||
'audit_table_related' => 'Related Item or Detail',
|
||||
'audit_table_date' => 'Activity Date',
|
||||
'audit_date_from' => 'Date Range From',
|
||||
'audit_date_to' => 'Date Range To',
|
||||
'audit' => 'Revisionslog',
|
||||
'audit_desc' => 'Denne revisionslog viser en liste over aktiviteter sporet i systemet. Denne liste er ufiltreret i modsætning til lignende aktivitetslister i systemet, hvor tilladelsesfiltre anvendes.',
|
||||
'audit_event_filter' => 'Event filter',
|
||||
'audit_event_filter_no_filter' => 'Intet filter',
|
||||
'audit_deleted_item' => 'Element slettet',
|
||||
'audit_deleted_item_name' => 'Navn: :name',
|
||||
'audit_table_user' => 'Bruger',
|
||||
'audit_table_event' => 'Hændelse',
|
||||
'audit_table_related' => 'Relateret element eller detalje',
|
||||
'audit_table_date' => 'Aktivitetsdato',
|
||||
'audit_date_from' => 'Datointerval fra',
|
||||
'audit_date_to' => 'Datointerval til',
|
||||
|
||||
// Role Settings
|
||||
'roles' => 'Roller',
|
||||
@@ -146,7 +146,7 @@ return [
|
||||
'role_access_api' => 'Tilgå system-API',
|
||||
'role_manage_settings' => 'Administrer app-indstillinger',
|
||||
'role_asset' => 'Tilladelser for medier og "assets"',
|
||||
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
|
||||
'roles_system_warning' => 'Vær opmærksom på, at adgang til alle af de ovennævnte tre tilladelser, kan give en bruger mulighed for at ændre deres egne brugerrettigheder eller brugerrettigheder for andre i systemet. Tildel kun roller med disse tilladelser til betroede brugere.',
|
||||
'role_asset_desc' => 'Disse tilladelser kontrollerer standardadgang til medier og "assets" i systemet. Tilladelser til bøger, kapitler og sider tilsidesætter disse tilladelser.',
|
||||
'role_asset_admins' => 'Administratorer får automatisk adgang til alt indhold, men disse indstillinger kan vise eller skjule UI-indstillinger.',
|
||||
'role_all' => 'Alle',
|
||||
@@ -162,7 +162,7 @@ return [
|
||||
'user_profile' => 'Brugerprofil',
|
||||
'users_add_new' => 'Tilføj ny bruger',
|
||||
'users_search' => 'Søg efter brugere',
|
||||
'users_latest_activity' => 'Latest Activity',
|
||||
'users_latest_activity' => 'Seneste aktivitet',
|
||||
'users_details' => 'Brugeroplysninger',
|
||||
'users_details_desc' => 'Angiv et visningsnavn og en E-Mail-adresse for denne bruger. E-Mail-adressen bruges til at logge ind på applikationen.',
|
||||
'users_details_desc_no_email' => 'Sætter et visningsnavn for denne bruger, så andre kan genkende dem.',
|
||||
@@ -180,10 +180,10 @@ return [
|
||||
'users_delete_named' => 'Slet bruger :userName',
|
||||
'users_delete_warning' => 'Dette vil helt slette denne bruger med navnet \':userName\' fra systemet.',
|
||||
'users_delete_confirm' => 'Er du sikker på, at du vil slette denne bruger?',
|
||||
'users_migrate_ownership' => 'Migrate Ownership',
|
||||
'users_migrate_ownership_desc' => 'Select a user here if you want another user to become the owner of all items currently owned by this user.',
|
||||
'users_none_selected' => 'No user selected',
|
||||
'users_delete_success' => 'User successfully removed',
|
||||
'users_migrate_ownership' => 'Overfør ejerskab',
|
||||
'users_migrate_ownership_desc' => 'Vælg en bruger her, hvis du vil have en anden bruger til at blive ejer af alle elementer, der i øjeblikket ejes af denne bruger.',
|
||||
'users_none_selected' => 'Ingen bruger valgt',
|
||||
'users_delete_success' => 'Brugeren blev fjernet',
|
||||
'users_edit' => 'Rediger bruger',
|
||||
'users_edit_profile' => 'Rediger profil',
|
||||
'users_edit_success' => 'Bruger suscesfuldt opdateret',
|
||||
@@ -232,7 +232,7 @@ return [
|
||||
'ar' => 'العربية',
|
||||
'bg' => 'Bǎlgarski',
|
||||
'bs' => 'Bosanski',
|
||||
'ca' => 'Català',
|
||||
'ca' => 'Catalansk',
|
||||
'cs' => 'Česky',
|
||||
'da' => 'Dansk',
|
||||
'de' => 'Deutsch (Sie)',
|
||||
|
||||
@@ -89,7 +89,7 @@ return [
|
||||
'required_without' => ':attribute skal udfyldes når :values ikke er udfyldt.',
|
||||
'required_without_all' => ':attribute skal udfyldes når ingen af :values er udfyldt.',
|
||||
'same' => ':attribute og :other skal være ens.',
|
||||
'safe_url' => 'The provided link may not be safe.',
|
||||
'safe_url' => 'Det angivne link kan være usikkert.',
|
||||
'size' => [
|
||||
'numeric' => ':attribute skal være :size.',
|
||||
'file' => ':attribute skal være :size kilobytes.',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brotkrumen',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profilmenü',
|
||||
'view_profile' => 'Profil ansehen',
|
||||
'edit_profile' => 'Profil bearbeiten',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Inhalt',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Sollte es beim Anklicken der Schaltfläche ":action_text" Probleme geben, öffnen Sie folgende URL in Ihrem Browser:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brotkrumen',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profilmenü',
|
||||
'view_profile' => 'Profil ansehen',
|
||||
'edit_profile' => 'Profil bearbeiten',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Inhalt',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Sollte es beim Anklicken der Schaltfläche ":action_text" Probleme geben, öffne die folgende URL in Deinem Browser:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'View Profile',
|
||||
'edit_profile' => 'Edit Profile',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Content',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'If you’re having trouble clicking the ":actionText" button, copy and paste the URL below into your web browser:',
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Ordenar Ascendentemente',
|
||||
'sort_descending' => 'Ordenar Descendentemente',
|
||||
'sort_name' => 'Nombre',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Predeterminada',
|
||||
'sort_created_at' => 'Fecha de Creación',
|
||||
'sort_updated_at' => 'Fecha de Modificación',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Rastro de migas de pan',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expandir el Menú de la Cabecera',
|
||||
'profile_menu' => 'Menú de Perfil',
|
||||
'view_profile' => 'Ver Perfil',
|
||||
'edit_profile' => 'Editar Perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Información',
|
||||
'tab_info_label' => 'Pestaña: Mostrar Información Secundaria',
|
||||
'tab_content' => 'Contenido',
|
||||
'tab_content_label' => 'Pestaña: Mostrar Contenido Primario',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Si está teniendo problemas clicando en el botón ":actionText", copie y pegue la siguiente URL en su navegador web:',
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Orden Ascendente',
|
||||
'sort_descending' => 'Orden Descendente',
|
||||
'sort_name' => 'Nombre',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Por defecto',
|
||||
'sort_created_at' => 'Fecha de creación',
|
||||
'sort_updated_at' => 'Fecha de actualización',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Miga de Pan',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu del Perfil',
|
||||
'view_profile' => 'Ver Perfil',
|
||||
'edit_profile' => 'Editar Perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Información',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Contenido',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Si está teniendo problemas haga click en el botón ":actionText", copie y pegue la siguiente URL en su navegador web:',
|
||||
|
||||
@@ -60,7 +60,7 @@ return [
|
||||
'search_permissions_set' => 'Permisos establecidos',
|
||||
'search_created_by_me' => 'Creado por mí',
|
||||
'search_updated_by_me' => 'Actualizado por mí',
|
||||
'search_owned_by_me' => 'Owned by me',
|
||||
'search_owned_by_me' => 'De mi propiedad',
|
||||
'search_date_options' => 'Opciones de fecha',
|
||||
'search_updated_before' => 'Actualizado antes de',
|
||||
'search_updated_after' => 'Actualizado después de',
|
||||
|
||||
@@ -73,7 +73,7 @@ return [
|
||||
'maint' => 'Mantenimiento',
|
||||
'maint_image_cleanup' => 'Limpiar imágenes',
|
||||
'maint_image_cleanup_desc' => "Analizar contenido de páginas y revisiones para detectar cuáles imágenes y dibujos están en uso y cuáles son redundantes. Asegúrese de crear un respaldo completo de imágenes y base de datos antes de ejecutar esta tarea.",
|
||||
'maint_delete_images_only_in_revisions' => 'Elimina también imágenes que sólo existen en antiguas revisiones de páginas',
|
||||
'maint_delete_images_only_in_revisions' => 'También elimina imágenes que sólo existen en antiguas revisiones de páginas',
|
||||
'maint_image_cleanup_run' => 'Ejecutar limpieza',
|
||||
'maint_image_cleanup_warning' => 'Se encontraron :count imágenes pontencialmente sin uso. Está seguro de que quiere eliminarlas?',
|
||||
'maint_image_cleanup_success' => 'Se encontraron y se eliminaron :count imágenes pontencialmente sin uso!',
|
||||
@@ -99,13 +99,13 @@ return [
|
||||
'recycle_bin_contents_empty' => 'La papelera de reciclaje está vacía',
|
||||
'recycle_bin_empty' => 'Vaciar Papelera de reciclaje',
|
||||
'recycle_bin_empty_confirm' => 'Esto destruirá permanentemente todos los elementos de la papelera de reciclaje, incluyendo el contenido existente en cada elemento. ¿Está seguro de que desea vaciar la papelera de reciclaje?',
|
||||
'recycle_bin_destroy_confirm' => 'Esta acción eliminará permanentemente este elemento del sistema, junto con los elementos secundarios listados a continuación, y no podrá restaurar este contenido de nuevo. ¿Está seguro de que desea eliminar permanentemente este elemento?',
|
||||
'recycle_bin_destroy_list' => 'Elementos a eliminar',
|
||||
'recycle_bin_destroy_confirm' => 'Esta acción eliminará permanentemente este elemento del sistema, junto con los elementos secundarios listados a continuación, y no podrá restaurar este contenido. ¿Está seguro de que desea eliminar permanentemente este elemento?',
|
||||
'recycle_bin_destroy_list' => 'Elementos a destruir',
|
||||
'recycle_bin_restore_list' => 'Elementos a restaurar',
|
||||
'recycle_bin_restore_confirm' => 'Esta acción restaurará el elemento eliminado, incluyendo cualquier elemento secundario, a su ubicación original. Si la ubicación original ha sido eliminada, y ahora está en la papelera de reciclaje, el elemento padre también tendrá que ser restaurado.',
|
||||
'recycle_bin_restore_deleted_parent' => 'El padre de este elemento también ha sido eliminado. Estos permanecerán eliminados hasta que el padre también sea restaurado.',
|
||||
'recycle_bin_destroy_notification' => 'Eliminados :count artículos de la papelera de reciclaje.',
|
||||
'recycle_bin_restore_notification' => 'Restaurados :count artículos desde la papelera de reciclaje.',
|
||||
'recycle_bin_destroy_notification' => 'Eliminados :count elementos de la papelera de reciclaje.',
|
||||
'recycle_bin_restore_notification' => 'Restaurados :count elementos desde la papelera de reciclaje.',
|
||||
|
||||
// Audit Log
|
||||
'audit' => 'Registro de Auditoría',
|
||||
@@ -183,8 +183,8 @@ return [
|
||||
'users_delete_confirm' => '¿Está seguro que desea borrar este usuario?',
|
||||
'users_migrate_ownership' => 'Cambiar Propietario',
|
||||
'users_migrate_ownership_desc' => 'Seleccione un usuario aquí si desea que otro usuario se convierta en el dueño de todos los elementos que actualmente son propiedad de este usuario.',
|
||||
'users_none_selected' => 'Usuario no seleccionado',
|
||||
'users_delete_success' => 'El usuario se ha eliminado correctamente',
|
||||
'users_none_selected' => 'No hay usuario seleccionado',
|
||||
'users_delete_success' => 'El usuario fue eliminado correctamente',
|
||||
'users_edit' => 'Editar Usuario',
|
||||
'users_edit_profile' => 'Editar perfil',
|
||||
'users_edit_success' => 'Usuario actualizado',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'View Profile',
|
||||
'edit_profile' => 'Edit Profile',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Content',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'If you’re having trouble clicking the ":actionText" button, copy and paste the URL below into your web browser:',
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Tri ascendant',
|
||||
'sort_descending' => 'Tri descendant',
|
||||
'sort_name' => 'Nom',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Défaut',
|
||||
'sort_created_at' => 'Date de création',
|
||||
'sort_updated_at' => 'Date de mise à jour',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Fil d\'Ariane',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu du profil',
|
||||
'view_profile' => 'Voir le profil',
|
||||
'edit_profile' => 'Modifier le profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informations',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Contenu',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Si vous rencontrez des problèmes pour cliquer sur le bouton ":actionText", copiez et collez l\'adresse ci-dessous dans votre navigateur :',
|
||||
|
||||
@@ -60,7 +60,7 @@ return [
|
||||
'search_permissions_set' => 'Ensemble d\'autorisations',
|
||||
'search_created_by_me' => 'Créé par moi',
|
||||
'search_updated_by_me' => 'Mis à jour par moi',
|
||||
'search_owned_by_me' => 'Owned by me',
|
||||
'search_owned_by_me' => 'Créés par moi',
|
||||
'search_date_options' => 'Recherche par date',
|
||||
'search_updated_before' => 'Mis à jour avant',
|
||||
'search_updated_after' => 'Mis à jour après',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'הצג פרופיל',
|
||||
'edit_profile' => 'ערוך פרופיל',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'מידע',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'תוכן',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'אם לא ניתן ללחות על כפתור ״:actionText״, יש להעתיק ולהדביק את הכתובת למטה אל דפדפן האינטרנט שלך:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Morzsa',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profil menü',
|
||||
'view_profile' => 'Profil megtekintése',
|
||||
'edit_profile' => 'Profil szerkesztése',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Információ',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Tartalom',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Probléma esetén a lenti ":actionText" gombra kell kattintani, majd ki kell másolni a lenti webcímet és be kell illeszteni egy böngészőbe:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'Tampilkan profil',
|
||||
'edit_profile' => 'Sunting Profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informasi',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Konten',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Jika Anda mengalami masalah saat mengklik tombol ":actionText", salin dan tempel URL di bawah ini ke browser web Anda:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Navigazione',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu del profilo',
|
||||
'view_profile' => 'Visualizza Profilo',
|
||||
'edit_profile' => 'Modifica Profilo',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Contenuto',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Se hai problemi nel cliccare il pulsante ":actionText", copia e incolla lo URL sotto nel tuo browser:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profile Menu',
|
||||
'view_profile' => 'プロフィール表示',
|
||||
'edit_profile' => 'プロフィール編集',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Content',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => '":actionText" をクリックできない場合、以下のURLをコピーしブラウザで開いてください:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => '탐색 경로',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => '프로필',
|
||||
'view_profile' => '프로필 보기',
|
||||
'edit_profile' => '프로필 바꾸기',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => '정보',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => '내용',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => ':actionText를 클릭할 수 없을 때는 웹 브라우저에서 다음 링크로 접속할 수 있습니다.',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Navigācija',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profila izvēlne',
|
||||
'view_profile' => 'Apskatīt profilu',
|
||||
'edit_profile' => 'Rediģēt profilu',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informācija',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Saturs',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Ja ir problēmas noklikšķināt ":actionText" pogu, nokopē un ievieto saiti savā interneta pārlūkā:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brødsmuler',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profilmeny',
|
||||
'view_profile' => 'Vis profil',
|
||||
'edit_profile' => 'Endre Profile',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informasjon',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Innhold',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Om du har problemer med å trykke på «:actionText»-knappen, bruk nettadressen under for å gå direkte dit:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Kruimelpad',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profiel menu',
|
||||
'view_profile' => 'Profiel Weergeven',
|
||||
'edit_profile' => 'Profiel Bewerken',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Info',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Inhoud',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Als je de knop ":actionText" niet werkt, kopieer en plak de onderstaande URL in je web browser:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Ścieżka nawigacji',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu profilu',
|
||||
'view_profile' => 'Zobacz profil',
|
||||
'edit_profile' => 'Edytuj profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informacje',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Treść',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Jeśli masz problem z kliknięciem przycisku ":actionText", skopiuj i wklej poniższy adres URL w nowej karcie swojej przeglądarki:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Caminho',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu de Perfil',
|
||||
'view_profile' => 'Visualizar Perfil',
|
||||
'edit_profile' => 'Editar Perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informações',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Conteúdo',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Se estiver com problemas ao carregar no botão ":actionText", copie e cole o URL abaixo no seu navegador:',
|
||||
|
||||
@@ -47,7 +47,7 @@ return [
|
||||
'sort_ascending' => 'Ordenação Crescente',
|
||||
'sort_descending' => 'Ordenação Decrescente',
|
||||
'sort_name' => 'Nome',
|
||||
'sort_default' => 'Default',
|
||||
'sort_default' => 'Padrão',
|
||||
'sort_created_at' => 'Data de Criação',
|
||||
'sort_updated_at' => 'Data de Atualização',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Caminho',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu de Perfil',
|
||||
'view_profile' => 'Visualizar Perfil',
|
||||
'edit_profile' => 'Editar Perfil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informações',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Conteúdo',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Se você estiver tendo problemas ao clicar o botão ":actionText", copie e cole a URL abaixo no seu navegador:',
|
||||
|
||||
@@ -39,9 +39,9 @@ return [
|
||||
'app_homepage_select' => 'Selecione uma página',
|
||||
'app_footer_links' => 'Links do Rodapé',
|
||||
'app_footer_links_desc' => 'Add links to show within the site footer. These will be displayed at the bottom of most pages, including those that do not require login. You can use a label of "trans::<key>" to use system-defined translations. For example: Using "trans::common.privacy_policy" will provide the translated text "Privacy Policy" and "trans::common.terms_of_service" will provide the translated text "Terms of Service".',
|
||||
'app_footer_links_label' => 'Link Label',
|
||||
'app_footer_links_url' => 'Link URL',
|
||||
'app_footer_links_add' => 'Add Footer Link',
|
||||
'app_footer_links_label' => 'Etiqueta do Link',
|
||||
'app_footer_links_url' => 'URL do Link',
|
||||
'app_footer_links_add' => 'Adicionar Link de Rodapé',
|
||||
'app_disable_comments' => 'Desativar Comentários',
|
||||
'app_disable_comments_toggle' => 'Desativar comentários',
|
||||
'app_disable_comments_desc' => 'Desativar comentários em todas as páginas no aplicativo.<br> Comentários existentes não serão exibidos.',
|
||||
@@ -73,7 +73,7 @@ return [
|
||||
'maint' => 'Manutenção',
|
||||
'maint_image_cleanup' => 'Limpeza de Imagens',
|
||||
'maint_image_cleanup_desc' => "Examina páginas e revisa seus conteúdos para verificar quais imagens e desenhos estão atualmente em uso e quais são redundantes. Certifique-se de criar um backup completo do banco de dados e imagens antes de executar esta ação.",
|
||||
'maint_delete_images_only_in_revisions' => 'Also delete images that only exist in old page revisions',
|
||||
'maint_delete_images_only_in_revisions' => 'Também excluir imagens que existem apenas em revisões de página antigas',
|
||||
'maint_image_cleanup_run' => 'Executar Limpeza',
|
||||
'maint_image_cleanup_warning' => ':count imagens potencialmente não utilizadas foram encontradas. Tem certeza de que deseja excluir estas imagens?',
|
||||
'maint_image_cleanup_success' => ':count imagens potencialmente não utilizadas foram encontradas e excluídas!',
|
||||
@@ -100,8 +100,8 @@ return [
|
||||
'recycle_bin_empty' => 'Esvaziar Lixeira',
|
||||
'recycle_bin_empty_confirm' => 'Isso irá destruir permanentemente todos os itens na lixeira inclusive o conteúdo de cada item. Tem certeza de que quer esvaziar a lixeira?',
|
||||
'recycle_bin_destroy_confirm' => 'Esta ação irá excluir permanentemente do sistema este item junto com todos os elementos filhos listados abaixo. Você não poderá restaurar esse conteúdo. Tem certeza de que deseja excluir permanentemente este item?',
|
||||
'recycle_bin_destroy_list' => 'Items to be Destroyed',
|
||||
'recycle_bin_restore_list' => 'Items to be Restored',
|
||||
'recycle_bin_destroy_list' => 'Itens a serem Destruídos',
|
||||
'recycle_bin_restore_list' => 'Itens a serem restaurados',
|
||||
'recycle_bin_restore_confirm' => 'Esta ação irá restaurar o item excluído, inclusive quaisquer elementos filhos, para seu local original. Se a localização original tiver, entretanto, sido eliminada e estiver agora na lixeira, o item pai também precisará ser restaurado.',
|
||||
'recycle_bin_restore_deleted_parent' => 'The parent of this item has also been deleted. These will remain deleted until that parent is also restored.',
|
||||
'recycle_bin_destroy_notification' => 'Deleted :count total items from the recycle bin.',
|
||||
@@ -110,7 +110,7 @@ return [
|
||||
// Audit Log
|
||||
'audit' => 'Registro de auditoria',
|
||||
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
||||
'audit_event_filter' => 'Event Filter',
|
||||
'audit_event_filter' => 'Filtro de Eventos',
|
||||
'audit_event_filter_no_filter' => 'Sem filtro',
|
||||
'audit_deleted_item' => 'Item excluído',
|
||||
'audit_deleted_item_name' => 'Nome: :name',
|
||||
@@ -162,7 +162,7 @@ return [
|
||||
'user_profile' => 'Perfil do Usuário',
|
||||
'users_add_new' => 'Adicionar Novo Usuário',
|
||||
'users_search' => 'Pesquisar Usuários',
|
||||
'users_latest_activity' => 'Latest Activity',
|
||||
'users_latest_activity' => 'Última Atividade',
|
||||
'users_details' => 'Detalhes do Usuário',
|
||||
'users_details_desc' => 'Defina um nome de exibição e um endereço de e-mail para este usuário. O endereço de e-mail será usado para fazer login na aplicação.',
|
||||
'users_details_desc_no_email' => 'Defina um nome de exibição para este usuário para que outros usuários possam reconhecê-lo',
|
||||
@@ -182,8 +182,8 @@ return [
|
||||
'users_delete_confirm' => 'Tem certeza que deseja excluir esse usuário?',
|
||||
'users_migrate_ownership' => 'Migrate Ownership',
|
||||
'users_migrate_ownership_desc' => 'Select a user here if you want another user to become the owner of all items currently owned by this user.',
|
||||
'users_none_selected' => 'No user selected',
|
||||
'users_delete_success' => 'User successfully removed',
|
||||
'users_none_selected' => 'Nenhum usuário selecionado',
|
||||
'users_delete_success' => 'Usuário removido com sucesso',
|
||||
'users_edit' => 'Editar Usuário',
|
||||
'users_edit_profile' => 'Editar Perfil',
|
||||
'users_edit_success' => 'Usuário atualizado com sucesso',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Навигация',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Меню профиля',
|
||||
'view_profile' => 'Посмотреть профиль',
|
||||
'edit_profile' => 'Редактировать профиль',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Информация',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Содержание',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Если у вас возникли проблемы с нажатием кнопки \':actionText\', то скопируйте и вставьте указанный URL-адрес в свой браузер:',
|
||||
|
||||
@@ -38,7 +38,7 @@ return [
|
||||
'app_homepage_desc' => 'Выберите страницу, которая будет отображаться на главной странице вместо стандартной. Права на страницы игнорируются для выбранных страниц.',
|
||||
'app_homepage_select' => 'Выберите страницу',
|
||||
'app_footer_links' => 'Ссылки в нижней части страницы',
|
||||
'app_footer_links_desc' => 'Добавьте ссылки для отображения в нижнем колонтитуле сайта. Они будут отображаться внизу большинства страниц, включая те, которые не требуют входа. Вы можете использовать метку "trans::<key>" для использования системных переводов. Например: Использование "trans::common.privacy_policy" обеспечит перевод текста "Политика конфиденциальности" и "trans:common.terms_of_service" предоставит переведенный текст "Правила использования".',
|
||||
'app_footer_links_desc' => 'Добавьте ссылки для отображения в нижнем колонтитуле сайта. Они будут отображаться в нижней части большинства страниц, включая те, которые не требуют входа. Вы можете использовать метку "trans::<key>" для использования системных переводов. Например: Использование "trans::common.privacy_policy" обеспечит перевод текста "Политика конфиденциальности" и "trans:common.terms_of_service" предоставит переведенный текст "Правила использования".',
|
||||
'app_footer_links_label' => 'Название ссылки',
|
||||
'app_footer_links_url' => 'Адрес ссылки',
|
||||
'app_footer_links_add' => 'Добавить ссылку',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Breadcrumb',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu profilu',
|
||||
'view_profile' => 'Zobraziť profil',
|
||||
'edit_profile' => 'Upraviť profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informácie',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Obsah',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Ak máte problém klinkúť na tlačidlo ":actionText", skopírujte a vložte URL uvedenú nižšie do Vášho prehliadača:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Pot',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Meni profila',
|
||||
'view_profile' => 'Ogled profila',
|
||||
'edit_profile' => 'Uredi profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Informacije',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Vsebina',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'V kolikor imate težave s klikom na gumb ":actionText", kopirajte in prilepite spodnjo povezavo v vaš brskalnik:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Brödsmula',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profilmeny',
|
||||
'view_profile' => 'Visa profil',
|
||||
'edit_profile' => 'Redigera profil',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Information',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Innehåll',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Om du har problem, klicka på knappen ":actionText", och kopiera och klistra in den här adressen i din webbläsare:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Gezinti Menüsü',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Profil Menüsü',
|
||||
'view_profile' => 'Profili Görüntüle',
|
||||
'edit_profile' => 'Profili Düzenle',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Bilgi',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'İçerik',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => '":actionText" butonuna tıklamada sorun yaşıyorsanız, aşağıda bulunan bağlantıyı kopyalayıp tarayıcınıza yapıştırın:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Навігація',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Меню профілю',
|
||||
'view_profile' => 'Переглянути профіль',
|
||||
'edit_profile' => 'Редагувати профіль',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Інфо',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Вміст',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Якщо у вас виникають проблеми при натисканні кнопки ":actionText", скопіюйте та вставте URL у свій веб-браузер:',
|
||||
|
||||
@@ -232,7 +232,7 @@ return [
|
||||
'ar' => 'العربية',
|
||||
'bg' => 'Bǎlgarski',
|
||||
'bs' => 'Bosanski',
|
||||
'ca' => 'Каталаньський',
|
||||
'ca' => 'Català',
|
||||
'cs' => 'Česky',
|
||||
'da' => 'Dansk',
|
||||
'de' => 'Deutsch (Sie)',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => 'Đường dẫn liên kết',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => 'Menu Hồ sơ',
|
||||
'view_profile' => 'Xem Hồ sơ',
|
||||
'edit_profile' => 'Sửa Hồ sơ',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Thông tin',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => 'Nội dung',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Nếu bạn đang có vấn đề trong việc bấm nút ":actionText", sao chép và dán địa chỉ URL dưới đây vào trình duyệt web:',
|
||||
|
||||
@@ -16,7 +16,7 @@ return [
|
||||
'sign_up_with' => '注册:socialDriver',
|
||||
'logout' => '注销',
|
||||
|
||||
'name' => '姓名',
|
||||
'name' => '名称',
|
||||
'username' => '用户名',
|
||||
'email' => 'Email地址',
|
||||
'password' => '密码',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => '面包屑导航',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => '展开标头菜单',
|
||||
'profile_menu' => '个人资料',
|
||||
'view_profile' => '查看资料',
|
||||
'edit_profile' => '编辑资料',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => '信息',
|
||||
'tab_info_label' => '标签:显示次要信息',
|
||||
'tab_content' => '内容',
|
||||
'tab_content_label' => '标签:显示主要内容',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => '如果您无法点击“:actionText”按钮,请将下面的网址复制到您的浏览器中打开:',
|
||||
|
||||
@@ -65,6 +65,7 @@ return [
|
||||
'breadcrumb' => '頁面路徑',
|
||||
|
||||
// Header
|
||||
'header_menu_expand' => 'Expand Header Menu',
|
||||
'profile_menu' => '個人資料選單',
|
||||
'view_profile' => '檢視個人資料',
|
||||
'edit_profile' => '編輯個人資料',
|
||||
@@ -73,7 +74,9 @@ return [
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => '資訊',
|
||||
'tab_info_label' => 'Tab: Show Secondary Information',
|
||||
'tab_content' => '內容',
|
||||
'tab_content_label' => 'Tab: Show Primary Content',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => '如果您無法點擊 ":actionText" 按鈕,請將下方的網址複製並貼上到您的網路瀏覽器中:',
|
||||
|
||||
@@ -191,6 +191,11 @@ header .search-box {
|
||||
@include lightDark(color, #000, #fff);
|
||||
text-decoration: none;
|
||||
}
|
||||
&:focus {
|
||||
@include lightDark(background-color, #eee, #333);
|
||||
outline-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
}
|
||||
header .dropdown-container {
|
||||
display: block;
|
||||
@@ -225,7 +230,7 @@ header .search-box {
|
||||
&:first-child {
|
||||
border-inline-end: 1px solid #DDD;
|
||||
}
|
||||
&.active {
|
||||
&[aria-selected="true"] {
|
||||
border-bottom-color: currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
@include('partials.notifications')
|
||||
@include('common.header')
|
||||
|
||||
<div id="content" class="block">
|
||||
<div id="content" components="@yield('content-components')" class="block">
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<header id="header" header-mobile-toggle class="primary-background">
|
||||
<header id="header" component="header-mobile-toggle" class="primary-background">
|
||||
<div class="grid mx-l">
|
||||
|
||||
<div>
|
||||
@@ -10,7 +10,11 @@
|
||||
<span class="logo-text">{{ setting('app-name') }}</span>
|
||||
@endif
|
||||
</a>
|
||||
<div class="mobile-menu-toggle hide-over-l">@icon('more')</div>
|
||||
<button type="button"
|
||||
refs="header-mobile-toggle@toggle"
|
||||
title="{{ trans('common.header_menu_expand') }}"
|
||||
aria-expanded="false"
|
||||
class="mobile-menu-toggle hide-over-l">@icon('more')</button>
|
||||
</div>
|
||||
|
||||
<div class="flex-container-row justify-center hide-under-l">
|
||||
@@ -25,7 +29,7 @@
|
||||
</div>
|
||||
|
||||
<div class="text-right">
|
||||
<nav class="header-links">
|
||||
<nav refs="header-mobile-toggle@menu" class="header-links">
|
||||
<div class="links text-center">
|
||||
@if (hasAppAccess())
|
||||
<a class="hide-over-l" href="{{ url('/search') }}">@icon('search'){{ trans('common.search') }}</a>
|
||||
@@ -50,7 +54,7 @@
|
||||
</div>
|
||||
@if(signedInUser())
|
||||
<?php $currentUser = user(); ?>
|
||||
<div class="dropdown-container" component="dropdown">
|
||||
<div class="dropdown-container" component="dropdown" option:dropdown:bubble-escapes="true">
|
||||
<span class="user-name py-s hide-under-l" refs="dropdown@toggle"
|
||||
aria-haspopup="true" aria-expanded="false" aria-label="{{ trans('common.profile_menu') }}" tabindex="0">
|
||||
<img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($entity->ownedBy && $entity->ownedBy->id !== $entity->createdBy->id)
|
||||
@if ($entity->ownedBy && $entity->owned_by !== $entity->created_by)
|
||||
<div>
|
||||
@icon('user'){!! trans('entities.meta_owned_name', [
|
||||
'user' => "<a href='{$entity->ownedBy->getProfileUrl()}'>".e($entity->ownedBy->name). "</a>"
|
||||
|
||||
@@ -1,21 +1,31 @@
|
||||
@extends('base')
|
||||
|
||||
@section('body-class', 'tri-layout')
|
||||
@section('content-components', 'tri-layout')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="tri-layout-mobile-tabs text-primary print-hidden">
|
||||
<div class="tri-layout-mobile-tabs print-hidden">
|
||||
<div class="grid half no-break no-gap">
|
||||
<div class="tri-layout-mobile-tab px-m py-s" tri-layout-mobile-tab="info">
|
||||
<button type="button"
|
||||
refs="tri-layout@tab"
|
||||
data-tab="info"
|
||||
aria-label="{{ trans('common.tab_info_label') }}"
|
||||
class="tri-layout-mobile-tab px-m py-m text-primary">
|
||||
{{ trans('common.tab_info') }}
|
||||
</div>
|
||||
<div class="tri-layout-mobile-tab px-m py-s active" tri-layout-mobile-tab="content">
|
||||
</button>
|
||||
<button type="button"
|
||||
refs="tri-layout@tab"
|
||||
data-tab="content"
|
||||
aria-label="{{ trans('common.tab_content_label') }}"
|
||||
aria-selected="true"
|
||||
class="tri-layout-mobile-tab px-m py-m text-primary active">
|
||||
{{ trans('common.tab_content') }}
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tri-layout-container" tri-layout @yield('container-attrs') >
|
||||
<div refs="tri-layout@container" class="tri-layout-container" @yield('container-attrs') >
|
||||
|
||||
<div class="tri-layout-left print-hidden pt-m" id="sidebar">
|
||||
<aside class="tri-layout-left-contents">
|
||||
|
||||
@@ -6,6 +6,22 @@ use Tests\TestCase;
|
||||
|
||||
class PageTest extends TestCase
|
||||
{
|
||||
|
||||
public function test_page_view_when_creator_is_deleted_but_owner_exists()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$user = $this->getViewer();
|
||||
$owner = $this->getEditor();
|
||||
$page->created_by = $user->id;
|
||||
$page->owned_by = $owner->id;
|
||||
$page->save();
|
||||
$user->delete();
|
||||
|
||||
$resp = $this->asAdmin()->get($page->getUrl());
|
||||
$resp->assertStatus(200);
|
||||
$resp->assertSeeText('Owned by ' . $owner->name);
|
||||
}
|
||||
|
||||
public function test_page_creation_with_markdown_content()
|
||||
{
|
||||
$this->setSettings(['app-editor' => 'markdown']);
|
||||
|
||||
@@ -8,6 +8,7 @@ use BookStack\Auth\User;
|
||||
use BookStack\Entities\Models\Book;
|
||||
use BookStack\Entities\Models\Chapter;
|
||||
use BookStack\Entities\Models\Page;
|
||||
use Illuminate\Support\Facades\View;
|
||||
|
||||
class PublicActionTest extends TestCase
|
||||
{
|
||||
@@ -115,10 +116,12 @@ class PublicActionTest extends TestCase
|
||||
public function test_content_not_listed_on_404_for_public_users()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page->fill(['name' => 'my testing random unique page name'])->save();
|
||||
$this->asAdmin()->get($page->getUrl()); // Fake visit to show on recents
|
||||
$resp = $this->get('/cats/dogs/hippos');
|
||||
$resp->assertStatus(404);
|
||||
$resp->assertSee($page->name);
|
||||
View::share('pageTitle', '');
|
||||
|
||||
Auth::logout();
|
||||
$resp = $this->get('/cats/dogs/hippos');
|
||||
|
||||
Reference in New Issue
Block a user