Merge branch 'master' into release
This commit is contained in:
commit
9443ae9f40
|
@ -67,6 +67,9 @@ class HomeController extends Controller
|
|||
|
||||
if ($homepageOption === 'bookshelves') {
|
||||
$shelves = $this->entityRepo->getAllPaginated('bookshelf', 18, $commonData['sort'], $commonData['order']);
|
||||
foreach ($shelves as $shelf) {
|
||||
$shelf->books = $this->entityRepo->getBookshelfChildren($shelf);
|
||||
}
|
||||
$data = array_merge($commonData, ['shelves' => $shelves]);
|
||||
return view('common.home-shelves', $data);
|
||||
}
|
||||
|
|
|
@ -4,10 +4,8 @@ use Illuminate\Contracts\Cache\Repository as Cache;
|
|||
|
||||
/**
|
||||
* Class SettingService
|
||||
*
|
||||
* The settings are a simple key-value database store.
|
||||
*
|
||||
* @package BookStack\Services
|
||||
* For non-authenticated users, user settings are stored via the session instead.
|
||||
*/
|
||||
class SettingService
|
||||
{
|
||||
|
@ -52,6 +50,19 @@ class SettingService
|
|||
return $formatted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a value from the session instead of the main store option.
|
||||
* @param $key
|
||||
* @param bool $default
|
||||
* @return mixed
|
||||
*/
|
||||
protected function getFromSession($key, $default = false)
|
||||
{
|
||||
$value = session()->get($key, $default);
|
||||
$formatted = $this->formatValue($value, $default);
|
||||
return $formatted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a user-specific setting from the database or cache.
|
||||
* @param \BookStack\Auth\User $user
|
||||
|
@ -62,7 +73,7 @@ class SettingService
|
|||
public function getUser($user, $key, $default = false)
|
||||
{
|
||||
if ($user->isDefault()) {
|
||||
return session()->get($key, $default);
|
||||
return $this->getFromSession($key, $default);
|
||||
}
|
||||
return $this->get($this->userKey($user->id, $key), $default);
|
||||
}
|
||||
|
|
|
@ -298,7 +298,7 @@ class MarkdownEditor {
|
|||
formData.append('file', file, remoteFilename);
|
||||
formData.append('uploaded_to', context.pageId);
|
||||
|
||||
window.$http.post('/images/gallery/upload', formData).then(resp => {
|
||||
window.$http.post('/images/gallery', formData).then(resp => {
|
||||
const newContent = `[](${resp.data.url})`;
|
||||
replaceContent(placeHolderText, newContent);
|
||||
}).catch(err => {
|
||||
|
@ -366,7 +366,7 @@ class MarkdownEditor {
|
|||
uploaded_to: Number(document.getElementById('page-editor').getAttribute('page-id'))
|
||||
};
|
||||
|
||||
window.$http.post(window.baseUrl('/images/drawing/upload'), data).then(resp => {
|
||||
window.$http.post(window.baseUrl('/images/drawio'), data).then(resp => {
|
||||
this.insertDrawing(resp.data, cursorPos);
|
||||
DrawIO.close();
|
||||
}).catch(err => {
|
||||
|
@ -402,7 +402,7 @@ class MarkdownEditor {
|
|||
uploaded_to: Number(document.getElementById('page-editor').getAttribute('page-id'))
|
||||
};
|
||||
|
||||
window.$http.post(window.baseUrl(`/images/drawing/upload`), data).then(resp => {
|
||||
window.$http.post(window.baseUrl(`/images/drawio`), data).then(resp => {
|
||||
let newText = `<div drawio-diagram="${resp.data.id}"><img src="${resp.data.url}"></div>`;
|
||||
let newContent = this.cm.getValue().split('\n').map(line => {
|
||||
if (line.indexOf(`drawio-diagram="${drawingId}"`) !== -1) {
|
||||
|
|
|
@ -53,7 +53,7 @@ async function uploadImageFile(file, wysiwygComponent) {
|
|||
formData.append('file', file, remoteFilename);
|
||||
formData.append('uploaded_to', wysiwygComponent.pageId);
|
||||
|
||||
const resp = await window.$http.post(window.baseUrl('/images/gallery/upload'), formData);
|
||||
const resp = await window.$http.post(window.baseUrl('/images/gallery'), formData);
|
||||
return resp.data;
|
||||
}
|
||||
|
||||
|
|
|
@ -192,7 +192,7 @@
|
|||
}
|
||||
@include smaller-than($xxl) {
|
||||
.content-wrap.card {
|
||||
padding: $-l $-xl;
|
||||
padding: $-m $-xl;
|
||||
}
|
||||
}
|
||||
@include smaller-than($m) {
|
||||
|
|
|
@ -26,6 +26,8 @@ return [
|
|||
'remember_me' => 'Recordarme',
|
||||
'ldap_email_hint' => 'Por favor introduzca un mail para utilizar con esta cuenta.',
|
||||
'create_account' => 'Crear una Cuenta',
|
||||
'already_have_account' => '¿Ya tienes una cuenta?',
|
||||
'dont_have_account' => '¿No tienes una cuenta?',
|
||||
'social_login' => 'Login Social',
|
||||
'social_registration' => 'Registro Social',
|
||||
'social_registration_text' => 'Registrar y entrar utilizando otro servicio.',
|
||||
|
|
|
@ -11,6 +11,7 @@ return [
|
|||
'save' => 'Guardar',
|
||||
'continue' => 'Continuar',
|
||||
'select' => 'Seleccionar',
|
||||
'toggle_all' => 'Marcarlos todos',
|
||||
'more' => 'Más',
|
||||
|
||||
// Form Labels
|
||||
|
@ -23,6 +24,7 @@ return [
|
|||
// Actions
|
||||
'actions' => 'Acciones',
|
||||
'view' => 'Ver',
|
||||
'view_all' => 'Ver todos',
|
||||
'create' => 'Crear',
|
||||
'update' => 'Actualizar',
|
||||
'edit' => 'Editar',
|
||||
|
@ -37,6 +39,11 @@ return [
|
|||
'remove' => 'Remover',
|
||||
'add' => 'Añadir',
|
||||
|
||||
// Sort Options
|
||||
'sort_name' => 'Nombre',
|
||||
'sort_created_at' => 'Fecha de Creación',
|
||||
'sort_updated_at' => 'Fecha de Modificación',
|
||||
|
||||
// Misc
|
||||
'deleted_user' => 'Usuario borrado',
|
||||
'no_activity' => 'Ninguna actividad para mostrar',
|
||||
|
@ -53,6 +60,10 @@ return [
|
|||
'view_profile' => 'Ver Perfil',
|
||||
'edit_profile' => 'Editar Perfil',
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Información',
|
||||
'tab_content' => 'Contenido',
|
||||
|
||||
// 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:',
|
||||
'email_rights' => 'Todos los derechos reservados',
|
||||
|
|
|
@ -11,6 +11,7 @@ return [
|
|||
'recently_updated_pages' => 'Páginas recientemente actualizadas',
|
||||
'recently_created_chapters' => 'Capítulos recientemente creados',
|
||||
'recently_created_books' => 'Libros recientemente creados',
|
||||
'recently_created_shelves' => 'Estantes recientemente creados',
|
||||
'recently_update' => 'Recientemente actualizado',
|
||||
'recently_viewed' => 'Recientemente visto',
|
||||
'recent_activity' => 'Actividad reciente',
|
||||
|
@ -67,11 +68,13 @@ return [
|
|||
// Shelves
|
||||
'shelf' => 'Estante',
|
||||
'shelves' => 'Estantes',
|
||||
'x_shelves' => ':count estante|:count estantes',
|
||||
'shelves_long' => 'Estantes',
|
||||
'shelves_empty' => 'No hay estantes creados',
|
||||
'shelves_create' => 'Crear estante',
|
||||
'shelves_popular' => 'Estantes populares',
|
||||
'shelves_new' => 'Estantes nuevos',
|
||||
'shelves_new_action' => 'Nuevo estante',
|
||||
'shelves_popular_empty' => 'Los estantes más populares aparecerán aquí.',
|
||||
'shelves_new_empty' => 'Los libros más recientes aparecerán aquí.',
|
||||
'shelves_save' => 'Guardar estante',
|
||||
|
@ -102,6 +105,7 @@ return [
|
|||
'books_popular' => 'Libros populares',
|
||||
'books_recent' => 'Libros recientes',
|
||||
'books_new' => 'Libros nuevos',
|
||||
'books_new_action' => 'Nuevo Libro',
|
||||
'books_popular_empty' => 'Los libros más populares aparecerán aquí.',
|
||||
'books_new_empty' => 'Los libros más recientes aparecerán aquí.',
|
||||
'books_create' => 'Crear nuevo libro',
|
||||
|
@ -117,7 +121,6 @@ return [
|
|||
'books_permissions_updated' => 'Permisos del libro actualizados',
|
||||
'books_empty_contents' => 'Ninguna página o capítulo ha sido creada para este libro.',
|
||||
'books_empty_create_page' => 'Crear una nueva página',
|
||||
'books_empty_or' => 'ó',
|
||||
'books_empty_sort_current_book' => 'Organizar el libro actual',
|
||||
'books_empty_add_chapter' => 'Agregar un capítulo',
|
||||
'books_permissions_active' => 'Permisos de libro activos',
|
||||
|
@ -125,6 +128,11 @@ return [
|
|||
'books_navigation' => 'Navegación de libro',
|
||||
'books_sort' => 'Organizar contenido de libro',
|
||||
'books_sort_named' => 'Organizar libro :bookName',
|
||||
'books_sort_name' => 'Organizar por Nombre',
|
||||
'books_sort_created' => 'Organizar por Fecha de creación',
|
||||
'books_sort_updated' => 'Organizar por Fecha de modificación',
|
||||
'books_sort_chapters_first' => 'Capítulos al inicio',
|
||||
'books_sort_chapters_last' => 'Capítulos al final ',
|
||||
'books_sort_show_other' => 'Mostrar otros libros',
|
||||
'books_sort_save' => 'Guardar nuevo orden',
|
||||
|
||||
|
@ -202,6 +210,8 @@ return [
|
|||
'pages_revisions_created_by' => 'Creado por',
|
||||
'pages_revisions_date' => 'Fecha de revisión',
|
||||
'pages_revisions_number' => '#',
|
||||
'pages_revisions_numbered' => 'Revisión #:id',
|
||||
'pages_revisions_numbered_changes' => 'Revisión #:id Cambios',
|
||||
'pages_revisions_changelog' => 'Log de cambios',
|
||||
'pages_revisions_changes' => 'Cambios',
|
||||
'pages_revisions_current' => 'Versión actual',
|
||||
|
@ -267,6 +277,7 @@ return [
|
|||
'profile_not_created_pages' => ':userName no ha creado ninguna página',
|
||||
'profile_not_created_chapters' => ':userName no ha creado ningún capítulo',
|
||||
'profile_not_created_books' => ':userName no ha creado ningún libro',
|
||||
'profile_not_created_shelves' => ':userName no ha creado ningún estante',
|
||||
|
||||
// Comments
|
||||
'comment' => 'Comentario',
|
||||
|
@ -288,6 +299,7 @@ return [
|
|||
|
||||
// Revision
|
||||
'revision_delete_confirm' => '¿Está seguro de que desea eliminar esta revisión?',
|
||||
'revision_restore_confirm' => '¿Está seguro de que desea restaurar esta revisión? El contenido actual de la página será reemplazado.',
|
||||
'revision_delete_success' => 'Revisión eliminada',
|
||||
'revision_cannot_delete_latest' => 'No se puede eliminar la última revisión.'
|
||||
];
|
|
@ -64,6 +64,7 @@ return [
|
|||
'role_cannot_be_edited' => 'Este rol no puede ser editado',
|
||||
'role_system_cannot_be_deleted' => 'Este rol es un rol de sistema y no puede ser borrado',
|
||||
'role_registration_default_cannot_delete' => 'Este rol no puede ser borrado mientras sea el rol por defecto de nuevos registros',
|
||||
'role_cannot_remove_only_admin' => 'Este usuario es el único usuario asignado al rol de administrador. Asigna primero este rol a otro usuario antes de eliminarlo.',
|
||||
|
||||
// Comments
|
||||
'comment_list' => 'Se ha producido un error al buscar los comentarios.',
|
||||
|
|
|
@ -12,34 +12,44 @@ return [
|
|||
'settings_save_success' => 'Ajustes guardados',
|
||||
|
||||
// App Settings
|
||||
'app_settings' => 'Ajustes de la aplicación',
|
||||
'app_customization' => 'Personalización',
|
||||
'app_features_security' => 'Características & Seguridad',
|
||||
'app_name' => 'Nombre de la aplicación',
|
||||
'app_name_desc' => 'Este nombre se muestra en la cabecera y en cualquier correo electrónico',
|
||||
'app_name_header' => '¿Mostrar el nombre de la aplicación en la cabecera?',
|
||||
'app_public_viewing' => '¿Permitir vista pública?',
|
||||
'app_secure_images' => '¿Habilitar mayor seguridad para subir imágenes?',
|
||||
'app_name_header' => 'Mostrar el nombre de la aplicación en la cabecera',
|
||||
'app_public_access' => 'Acceso Público',
|
||||
'app_public_access_desc' => 'Activando esta opción permitirá que usuarios sin iniciar sesión puedan ver el contenido de tu aplicación Bookstack.',
|
||||
'app_public_access_desc_guest' => 'El acceso público para visitantes puede ser controlado a través del usuario "Guest".',
|
||||
'app_public_access_toggle' => 'Permitir acceso público',
|
||||
'app_public_viewing' => '¿Permitir acceso público?',
|
||||
'app_secure_images' => 'Mayor seguridad para subir imágenes',
|
||||
'app_secure_images_toggle' => 'Habilitar mayor seguridad en la subida de imágenes',
|
||||
'app_secure_images_desc' => 'Por razones de rendimiento, todas las imágenes son públicas. Esta opción agrega una cadena de texto larga difícil de adivinar. Asegúrese que los índices de directorio no están habilitados para evitar el acceso fácil a las imágenes.',
|
||||
'app_editor' => 'Editor de páginas',
|
||||
'app_editor' => 'Editor de Páginas',
|
||||
'app_editor_desc' => 'Seleccione qué editor se usará por todos los usuarios para editar páginas.',
|
||||
'app_custom_html' => 'Contenido de cabecera HTML personalizado',
|
||||
'app_custom_html_desc' => 'Cualquier contenido agregado aquí será insertado al final de la sección <head> de cada página. Esto es útil para sobreescribir estilos o agregar código para analíticas web.',
|
||||
'app_logo' => 'Logo de la aplicación',
|
||||
'app_logo' => 'Logo de la Aplicación',
|
||||
'app_logo_desc' => 'Esta imagen debería de ser 43px de altura. <br> Las imágenes grandes serán escaladas.',
|
||||
'app_primary_color' => 'Color primario de la aplicación',
|
||||
'app_primary_color' => 'Color Primario de la Aplicación',
|
||||
'app_primary_color_desc' => 'Esto debería ser un valor hexadecimal. <br>Deje el valor vacío para restaurar al valor por defecto.',
|
||||
'app_homepage' => 'Página de inicio',
|
||||
'app_homepage_desc' => 'Elija la vista que se mostrará en la página de inicio en lugar de la vista predeterminada. Se ignorarán los permisos de la página seleccionada.',
|
||||
'app_homepage_select' => 'Elija una página',
|
||||
'app_disable_comments' => 'Deshabilitar comentarios',
|
||||
'app_disable_comments_desc' => 'Deshabilita los comentarios en todas las páginas de la aplicación. Los comentarios existentes no se muestran.',
|
||||
'app_disable_comments' => 'Deshabilitar Comentarios',
|
||||
'app_disable_comments_toggle' => 'Deshabilitar comentarios',
|
||||
'app_disable_comments_desc' => 'Deshabilita los comentarios en todas las páginas de la aplicación. <br> Los comentarios existentes no se muestran.',
|
||||
|
||||
// Registration Settings
|
||||
'reg_settings' => 'Ajustes de registro',
|
||||
'reg_allow' => '¿Permitir registro?',
|
||||
'reg_settings' => 'Registro',
|
||||
'reg_enable' => 'Habilitar Registro',
|
||||
'reg_enable_toggle' => 'Habilitar registro',
|
||||
'reg_enable_desc' => 'Cuando se habilita el registro los usuarios podrán registrarse como usuarios de la aplicación. Al registrarse se les asigna un rol único por defecto.',
|
||||
'reg_default_role' => 'Rol de usuario por defecto después del registro',
|
||||
'reg_confirm_email' => '¿Requerir correo electrónico de confirmaación?',
|
||||
'reg_confirm_email_desc' => 'Si se emplea la restricción por dominio, entonces se requerirá la confirmación por correo electrónico y el valor a continuación será ignorado.',
|
||||
'reg_confirm_restrict_domain' => 'Restringir registro al dominio',
|
||||
'reg_email_confirmation' => 'Confirmación por Email',
|
||||
'reg_email_confirmation_toggle' => 'Requerir confirmación por Email',
|
||||
'reg_confirm_email_desc' => 'Si se emplea la restricción por dominio, entonces se requerirá la confirmación por correo electrónico y esta opción será ignorada.',
|
||||
'reg_confirm_restrict_domain' => 'Restricción de Dominio',
|
||||
'reg_confirm_restrict_domain_desc' => 'Introduzca una lista separada por comas de los dominio a los que les gustaría restringir el registro de usuarios. A los usuarios les será enviado un correo electrónico para confirmar la dirección antes de que se le permita interactuar con la aplicación. <br> Tenga en cuenta que los usuarios podrán cambiar sus direcciones de correo electrónico después de registrarse exitosamente.',
|
||||
'reg_confirm_restrict_domain_placeholder' => 'Ninguna restricción establecida',
|
||||
|
||||
|
@ -88,12 +98,19 @@ return [
|
|||
|
||||
// Users
|
||||
'users' => 'Usuarios',
|
||||
'user_profile' => 'Perfil de usuario',
|
||||
'users_add_new' => 'Agregar nuevo usuario',
|
||||
'user_profile' => 'Perfil de Usuario',
|
||||
'users_add_new' => 'Agregar Nuevo Usuario',
|
||||
'users_details' => 'Detalles de Usuario',
|
||||
'users_details_desc' => 'Ajusta un nombre público y email para este usuario. El email será empleado para acceder a la aplicación.',
|
||||
'users_details_desc_no_email' => 'Ajusta un nombre público para este usuario para que pueda ser reconocido por otros.',
|
||||
'users_search' => 'Buscar usuarios',
|
||||
'users_role' => 'Roles de usuario',
|
||||
'users_role_desc' => 'Selecciona los roles a los que será asignado este usuario. Si se asignan varios roles los permisos se acumularán y recibirá todas las habilidades de los roles asignados.',
|
||||
'users_password' => 'Contraseña de Usuario',
|
||||
'users_password_desc' => 'Ajusta una contraseña que se utilizará para acceder a la aplicación. Debe ser al menos de 5 caracteres de longitud.',
|
||||
'users_external_auth_id' => 'ID externo de autenticación',
|
||||
'users_password_warning' => 'Solo debe rellenar este campo si desea cambiar su contraseña:',
|
||||
'users_external_auth_id_desc' => 'Esta es la ID usada para asociar este usuario con LDAP.',
|
||||
'users_password_warning' => 'Solo debe rellenar este campo si desea cambiar su contraseña.',
|
||||
'users_system_public' => 'Este usuario representa cualquier usuario invitado que visita la aplicación. No puede utilizarse para acceder pero es asignado automáticamente.',
|
||||
'users_delete' => 'Borrar usuario',
|
||||
'users_delete_named' => 'Borrar usuario :userName',
|
||||
|
@ -104,8 +121,9 @@ return [
|
|||
'users_edit_profile' => 'Editar perfil',
|
||||
'users_edit_success' => 'Usuario actualizado',
|
||||
'users_avatar' => 'Avatar del usuario',
|
||||
'users_avatar_desc' => 'Esta imagen debe ser aproximadamente de 256px por lado.',
|
||||
'users_avatar_desc' => 'Elige una imagen para representar a este usuario. Debe ser aproximadamente de 256px por lado.',
|
||||
'users_preferred_language' => 'Idioma preferido',
|
||||
'users_preferred_language_desc' => 'Esta opción cambiará el idioma de la interfaz de usuario en la aplicación. No afectará al contenido creado por los usuarios.',
|
||||
'users_social_accounts' => 'Cuentas sociales',
|
||||
'users_social_accounts_info' => 'Aquí puede conectar sus otras cuentas para un acceso rápido y fácil a la aplicación. Desconectando una cuenta aquí no revoca accesos ya autorizados. Revoque el acceso desde los ajustes de perfil en la cuenta social conectada.',
|
||||
'users_social_connect' => 'Conectar cuenta',
|
||||
|
|
|
@ -33,6 +33,7 @@ return [
|
|||
'filled' => 'El campo :attribute es requerido.',
|
||||
'exists' => 'El :attribute seleccionado es inválido.',
|
||||
'image' => 'El :attribute debe ser una imagen.',
|
||||
'image_extension' => 'El :attribute debe tener una extensión de imagen válida y soportada.',
|
||||
'in' => 'El selected :attribute es inválio.',
|
||||
'integer' => 'El :attribute debe ser un entero.',
|
||||
'ip' => 'El :attribute debe ser una dirección IP válida.',
|
||||
|
@ -49,6 +50,7 @@ return [
|
|||
'string' => 'El :attribute debe ser al menos :min caracteres.',
|
||||
'array' => 'El :attribute debe tener como mínimo :min items.',
|
||||
],
|
||||
'no_double_extension' => 'El :attribute solo debe tener una extensión de archivo.',
|
||||
'not_in' => 'El :attribute seleccionado es inválio.',
|
||||
'numeric' => 'El :attribute debe ser numérico.',
|
||||
'regex' => 'El formato de :attribute es inválido',
|
||||
|
@ -69,6 +71,7 @@ return [
|
|||
'timezone' => 'El atributo :attribute debe ser una zona válida.',
|
||||
'unique' => 'El atributo :attribute ya ha sido tomado.',
|
||||
'url' => 'El atributo :attribute tiene un formato inválido.',
|
||||
'uploaded' => 'El archivo no ha podido subirse. Es posible que el servidor no acepte archivos de este tamaño.',
|
||||
|
||||
// Custom validation lines
|
||||
'custom' => [
|
||||
|
|
|
@ -32,6 +32,8 @@ return [
|
|||
'remember_me' => 'Kom ihåg mig',
|
||||
'ldap_email_hint' => 'Vänligen ange en e-postadress att använda till kontot.',
|
||||
'create_account' => 'Skapa konto',
|
||||
'already_have_account' => 'Har du redan en användare?',
|
||||
'dont_have_account' => 'Har du ingen användare?',
|
||||
'social_login' => 'Logga in genom socialt medie',
|
||||
'social_registration' => 'Registrera dig genom socialt media',
|
||||
'social_registration_text' => 'Registrera dig och logga in genom en annan tjänst.',
|
||||
|
|
|
@ -10,6 +10,7 @@ return [
|
|||
'save' => 'Spara',
|
||||
'continue' => 'Fortsätt',
|
||||
'select' => 'Välj',
|
||||
'toggle_all' => 'Ändra alla',
|
||||
'more' => 'Mer',
|
||||
|
||||
/**
|
||||
|
@ -26,6 +27,7 @@ return [
|
|||
*/
|
||||
'actions' => 'Åtgärder',
|
||||
'view' => 'Visa',
|
||||
'view_all' => 'Visa alla',
|
||||
'create' => 'Skapa',
|
||||
'update' => 'Uppdatera',
|
||||
'edit' => 'Redigera',
|
||||
|
@ -40,6 +42,13 @@ return [
|
|||
'remove' => 'Radera',
|
||||
'add' => 'Lägg till',
|
||||
|
||||
/**
|
||||
* Sort Options
|
||||
*/
|
||||
'sort_name' => 'Namn',
|
||||
'sort_created_at' => 'Skapad',
|
||||
'sort_updated_at' => 'Uppdaterad',
|
||||
|
||||
/**
|
||||
* Misc
|
||||
*/
|
||||
|
@ -60,6 +69,12 @@ return [
|
|||
'view_profile' => 'Visa profil',
|
||||
'edit_profile' => 'Redigera profil',
|
||||
|
||||
/**
|
||||
* Layout tabs
|
||||
*/
|
||||
'tab_info' => 'Information',
|
||||
'tab_content' => 'Innehåll',
|
||||
|
||||
/**
|
||||
* Email Content
|
||||
*/
|
||||
|
|
|
@ -9,6 +9,7 @@ return [
|
|||
'recently_updated_pages' => 'Sidor som uppdaterats nyligen',
|
||||
'recently_created_chapters' => 'Kapitel som skapats nyligen',
|
||||
'recently_created_books' => 'Böcker som skapats nyligen',
|
||||
'recently_created_shelves' => 'Hyllor som skapats nyligen',
|
||||
'recently_update' => 'Nyligen uppdaterat',
|
||||
'recently_viewed' => 'Nyligen läst',
|
||||
'recent_activity' => 'Aktivitet',
|
||||
|
@ -76,6 +77,7 @@ return [
|
|||
'books_popular' => 'Populära böcker',
|
||||
'books_recent' => 'Nya böcker',
|
||||
'books_new' => 'Nya böcker',
|
||||
'books_new_action' => 'Ny bok',
|
||||
'books_popular_empty' => 'De mest populära böckerna kommer att visas här.',
|
||||
'books_new_empty' => 'De senaste böckerna som skapats kommer att visas här.',
|
||||
'books_create' => 'Skapa ny bok',
|
||||
|
@ -91,7 +93,6 @@ return [
|
|||
'books_permissions_updated' => 'Bokens rättigheter har uppdaterats',
|
||||
'books_empty_contents' => 'Det finns inga sidor eller kapitel i den här boken.',
|
||||
'books_empty_create_page' => 'Skapa en ny sida',
|
||||
'books_empty_or' => 'eller',
|
||||
'books_empty_sort_current_book' => 'Sortera aktuell bok',
|
||||
'books_empty_add_chapter' => 'Lägg till kapitel',
|
||||
'books_permissions_active' => 'Anpassade rättigheter är i bruk',
|
||||
|
@ -99,6 +100,11 @@ return [
|
|||
'books_navigation' => 'Navigering',
|
||||
'books_sort' => 'Sortera bokens innehåll',
|
||||
'books_sort_named' => 'Sortera boken :bookName',
|
||||
'books_sort_name' => 'Sortera utifrån namn',
|
||||
'books_sort_created' => 'Sortera utifrån skapelse',
|
||||
'books_sort_updated' => 'Sortera utifrån uppdatering',
|
||||
'books_sort_chapters_first' => 'Kapitel först',
|
||||
'books_sort_chapters_last' => 'Kapitel sist',
|
||||
'books_sort_show_other' => 'Visa andra böcker',
|
||||
'books_sort_save' => 'Spara ordning',
|
||||
|
||||
|
@ -180,6 +186,8 @@ return [
|
|||
'pages_revisions_created_by' => 'Skapad av',
|
||||
'pages_revisions_date' => 'Revisionsdatum',
|
||||
'pages_revisions_number' => '#',
|
||||
'pages_revisions_numbered' => 'Revision #:id',
|
||||
'pages_revisions_numbered_changes' => 'Revision #:id ändringar',
|
||||
'pages_revisions_changelog' => 'Ändringslogg',
|
||||
'pages_revisions_changes' => 'Ändringar',
|
||||
'pages_revisions_current' => 'Nuvarande version',
|
||||
|
@ -208,11 +216,13 @@ return [
|
|||
*/
|
||||
'shelf' => 'Hylla',
|
||||
'shelves' => 'Hyllor',
|
||||
'x_shelves' => ':count hylla|:count hyllor',
|
||||
'shelves_long' => 'Bokhyllor',
|
||||
'shelves_empty' => 'Du har inte skapat någon hylla',
|
||||
'shelves_create' => 'Skapa ny hylla',
|
||||
'shelves_popular' => 'Populära hyllor',
|
||||
'shelves_new' => 'Ny hylla',
|
||||
'shelves_new' => 'Nya hyllor',
|
||||
'shelves_new_action' => 'Ny hylla',
|
||||
'shelves_popular_empty' => 'De populäraste hyllorna kommer hamna här',
|
||||
'shelves_new_empty' => 'De senast skapade hyllorna kommer hamna här',
|
||||
'shelves_save' => 'Spara hylla',
|
||||
|
@ -281,6 +291,7 @@ return [
|
|||
'profile_not_created_pages' => ':userName har inte skapat några sidor',
|
||||
'profile_not_created_chapters' => ':userName har inte skapat några kapitel',
|
||||
'profile_not_created_books' => ':userName har inte skapat några böcker',
|
||||
'profile_not_created_shelves' => ':userName har inte skapat några hyllor',
|
||||
|
||||
/**
|
||||
* Comments
|
||||
|
@ -307,5 +318,6 @@ return [
|
|||
*/
|
||||
'revision_delete_confirm' => 'Är du säker på att du vill radera den här versionen?',
|
||||
'revision_delete_success' => 'Revisionen raderad',
|
||||
'revision_cannot_delete_latest' => 'Det går inte att ta bort den senaste versionen.'
|
||||
'revision_cannot_delete_latest' => 'Det går inte att ta bort den senaste versionen.',
|
||||
'revision_restore_confirm' => 'Är du säker på att du vill använda denna revision? Det nuvarande innehållet kommer att ersättas.'
|
||||
];
|
||||
|
|
|
@ -7,7 +7,6 @@ return [
|
|||
* Contains all text strings used in the general settings sections of BookStack
|
||||
* including users and roles.
|
||||
*/
|
||||
|
||||
'settings' => 'Inställningar',
|
||||
'settings_save' => 'Spara inställningar',
|
||||
'settings_save_success' => 'Inställningarna har sparats',
|
||||
|
@ -15,13 +14,18 @@ return [
|
|||
/**
|
||||
* App settings
|
||||
*/
|
||||
|
||||
'app_settings' => 'Appinställningar',
|
||||
'app_customization' => 'Sidanpassning',
|
||||
'app_features_security' => 'Funktioner och säkerhet',
|
||||
'app_name' => 'Applikationsnamn',
|
||||
'app_name_desc' => 'Namnet visas i sidhuvdet och i eventuella mail.',
|
||||
'app_name_header' => 'Visa applikationsnamn i sidhuvudet?',
|
||||
'app_public_access' => 'Offentlig åtkomst',
|
||||
'app_public_access_desc' => 'Om du aktiverar detta alternativ låter du icke inloggade besökare komma åt innehåll på din sida',
|
||||
'app_public_access_desc_guest' => 'Åtkomst för icke inloggade besökare kan styras via användaren "Guest".',
|
||||
'app_public_access_toggle' => 'Tillåt offentlig åtkomst',
|
||||
'app_public_viewing' => 'Tillåt publikt innehåll?',
|
||||
'app_secure_images' => 'Aktivera högre säkerhet för bilduppladdningar?',
|
||||
'app_secure_images_toggle' => 'Aktivera säkrare bilduppladdningar',
|
||||
'app_secure_images_desc' => 'Av prestandaskäl är alla bilder publika. Det här alternativet lägger till en slumpmässig, svårgissad sträng framför alla bild-URL:er. Se till att kataloglistning inte är aktivt för att förhindra åtkomst.',
|
||||
'app_editor' => 'Redigeringsverktyg',
|
||||
'app_editor_desc' => 'Välj vilket redigeringsverktyg som ska användas av alla användare för att redigera sidor.',
|
||||
|
@ -35,16 +39,19 @@ return [
|
|||
'app_homepage_desc' => 'Välj en sida att använda som startsida istället för standardvyn. Den valda sidans rättigheter kommer att ignoreras.',
|
||||
'app_homepage_select' => 'Välj en sida',
|
||||
'app_disable_comments' => 'Inaktivera kommentarer',
|
||||
'app_disable_comments_toggle' => 'Inaktivera kommentarer',
|
||||
'app_disable_comments_desc' => 'Inaktivera kommentarer på alla sidor i applikationen. Befintliga kommentarer visas inte.',
|
||||
|
||||
/**
|
||||
* Registration settings
|
||||
*/
|
||||
|
||||
'reg_settings' => 'Registreringsinställningar',
|
||||
'reg_allow' => 'Tillåt registrering?',
|
||||
'reg_enable' => 'Tillåt registrering',
|
||||
'reg_enable_toggle' => 'Tillåt registrering',
|
||||
'reg_enable_desc' => 'När registrering tillåts kan användaren logga in som en användare. Vid registreringen ges de en förvald användarroll.',
|
||||
'reg_default_role' => 'Standardroll efter registrering',
|
||||
'reg_confirm_email' => 'Kräv e-postbekräftelse?',
|
||||
'reg_email_confirmation' => 'E-postbekräftelse',
|
||||
'reg_email_confirmation_toggle' => 'Kräv e-postbekräftelse',
|
||||
'reg_confirm_email_desc' => 'Om registrering begränas till vissa domäner kommer e-postbekräftelse alltid att krävas och den här inställningen kommer att ignoreras.',
|
||||
'reg_confirm_restrict_domain' => 'Begränsa registrering till viss domän',
|
||||
'reg_confirm_restrict_domain_desc' => 'Ange en kommaseparerad lista över e-postdomäner till vilka du vill begränsa registrering. Användare kommer att skickas ett mail för att bekräfta deras e-post innan de får logga in. <br> Notera att användare kommer att kunna ändra sin e-postadress efter lyckad registrering.',
|
||||
|
@ -53,7 +60,6 @@ return [
|
|||
/**
|
||||
* Maintenance settings
|
||||
*/
|
||||
|
||||
'maint' => 'Underhåll',
|
||||
'maint_image_cleanup' => 'Rensa bilder',
|
||||
'maint_image_cleanup_desc' => "Söker igenom innehåll i sidor & revisioner för att se vilka bilder och teckningar som är i bruk och vilka som är överflödiga. Se till att ta en komplett backup av databas och bilder innan du kör detta.",
|
||||
|
@ -66,7 +72,6 @@ return [
|
|||
/**
|
||||
* Role settings
|
||||
*/
|
||||
|
||||
'roles' => 'Roller',
|
||||
'role_user_roles' => 'Användarroller',
|
||||
'role_create' => 'Skapa ny roll',
|
||||
|
@ -102,13 +107,19 @@ return [
|
|||
/**
|
||||
* Users
|
||||
*/
|
||||
|
||||
'users' => 'Användare',
|
||||
'user_profile' => 'Användarprofil',
|
||||
'users_add_new' => 'Lägg till användare',
|
||||
'users_search' => 'Sök användare',
|
||||
'users_details' => 'Användarinformation',
|
||||
'users_details_desc' => 'Ange ett visningsnamn och en e-postadress för den här användaren. E-postadressen kommer att användas vid inloggningen.',
|
||||
'users_details_desc_no_email' => 'Ange ett visningsnamn för den här användaren så att andra kan känna igen den.',
|
||||
'users_role' => 'Användarroller',
|
||||
'users_role_desc' => 'Välj vilka roller den här användaren ska tilldelas. Om en användare har tilldelats flera roller kommer behörigheterna från dessa roller att staplas och de kommer att få alla rättigheter i de tilldelade rollerna.',
|
||||
'users_password' => 'Användarlösenord',
|
||||
'users_password_desc' => 'Ange ett lösenord som ska användas för att logga in på sidan. Lösenordet måste vara minst 5 tecken långt.',
|
||||
'users_external_auth_id' => 'Externt ID för autentisering',
|
||||
'users_external_auth_id_desc' => 'Detta är det ID som används för att matcha användaren när den kommunicerar med ditt LDAP-system.',
|
||||
'users_password_warning' => 'Fyll i nedanstående fält endast om du vill byta lösenord:',
|
||||
'users_system_public' => 'Den här användaren representerar eventuella gäster som använder systemet. Den kan inte användas för att logga in utan tilldeles automatiskt.',
|
||||
'users_delete' => 'Ta bort användare',
|
||||
|
@ -121,7 +132,8 @@ return [
|
|||
'users_edit_success' => 'Användaren har uppdaterats',
|
||||
'users_avatar' => 'Avatar',
|
||||
'users_avatar_desc' => 'Bilden bör vara kvadratisk och ca 256px stor.',
|
||||
'users_preferred_language' => 'Språk',
|
||||
'users_preferred_language' => 'Föredraget språk',
|
||||
'users_preferred_language_desc' => 'Det här alternativet kommer att ändra det språk som används i användargränssnittet. Detta påverkar inget användarskapat innehåll.',
|
||||
'users_social_accounts' => 'Anslutna konton',
|
||||
'users_social_accounts_info' => 'Här kan du ansluta dina andra konton för snabbare och smidigare inloggning. Om du kopplar från en tjänst här kommer de behörigheter som tidigare givits inte att tas bort - ta bort behörigheter genom att logga in på ditt konto på tjänsten i fråga.',
|
||||
'users_social_connect' => 'Anslut konto',
|
||||
|
|
|
@ -12,7 +12,6 @@ return [
|
|||
| as the size rules. Feel free to tweak each of these messages here.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => ':attribute måste godkännas.',
|
||||
'active_url' => ':attribute är inte en giltig URL.',
|
||||
'after' => ':attribute måste vara efter :date.',
|
||||
|
@ -76,6 +75,7 @@ return [
|
|||
'timezone' => ':attribute måste vara en giltig tidszon.',
|
||||
'unique' => ':attribute är upptaget',
|
||||
'url' => 'Formatet på :attribute är ogiltigt.',
|
||||
'uploaded' => 'Filen kunde inte laddas upp. Servern kanske inte tillåter filer med denna storlek.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
@ -87,7 +87,6 @@ return [
|
|||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'password-confirm' => [
|
||||
'required_with' => 'Lösenordet måste bekräftas',
|
||||
|
@ -104,7 +103,6 @@ return [
|
|||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [],
|
||||
|
||||
];
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* Activity text strings.
|
||||
* Is used for all the text within activity logs & notifications.
|
||||
* Текстові рядки активності.
|
||||
* Використовується для всього тексту в журналах активності та сповіщеннях.
|
||||
* Activity text strings. / Текстові рядки активності.
|
||||
* Is used for all the text within activity logs & notifications. / Використовується для всього тексту в журналах активності та сповіщеннях.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
<?php
|
||||
/**
|
||||
* Authentication Language Lines
|
||||
* The following language lines are used during authentication for various
|
||||
* messages that we need to display to the user.
|
||||
* Під час автентифікації використовуються наступні лінії мов для різних повідомлень
|
||||
* які нам потрібно показати користувачеві.
|
||||
* The following language lines are used during authentication for various / Під час автентифікації використовуються наступні лінії мов для різних повідомлень
|
||||
* messages that we need to display to the user. / які нам потрібно показати користувачеві.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
@ -18,7 +16,7 @@ return [
|
|||
'sign_up_with' => 'Зареєструватись з :socialDriver',
|
||||
'logout' => 'Вихід',
|
||||
|
||||
'name' => 'Ім’я',
|
||||
'name' => 'Ім\'я',
|
||||
'username' => 'Логін',
|
||||
'email' => 'Email',
|
||||
'password' => 'Пароль',
|
||||
|
@ -28,6 +26,8 @@ return [
|
|||
'remember_me' => 'Запам’ятати мене',
|
||||
'ldap_email_hint' => 'Введіть email для цього облікового запису.',
|
||||
'create_account' => 'Створити обліковий запис',
|
||||
'already_have_account' => 'Вже є обліковий запис?',
|
||||
'dont_have_account' => 'Немає облікового запису?',
|
||||
'social_login' => 'Вхід через соціальну мережу',
|
||||
'social_registration' => 'Реєстрація через соціальну мережу',
|
||||
'social_registration_text' => 'Реєстрація і вхід через інший сервіс',
|
||||
|
@ -35,7 +35,7 @@ return [
|
|||
'register_thanks' => 'Дякуємо за реєстрацію!',
|
||||
'register_confirm' => 'Будь ласка, перевірте свою електронну пошту та натисніть кнопку підтвердження, щоб отримати доступ до :appName.',
|
||||
'registrations_disabled' => 'Реєстрацію вимкнено',
|
||||
'registration_email_domain_invalid' => 'Цей домен електронної пошти не має доступу до реєстрації',
|
||||
'registration_email_domain_invalid' => 'Цей домен електронної пошти заборонений для реєстрації',
|
||||
'register_success' => 'Дякуємо за реєстрацію! Ви зареєстровані та ввійшли в систему.',
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Common elements found throughout many areas of BookStack.
|
||||
* Загальні елементи, використовуються в багатьох областях BookStack.
|
||||
* Common elements found throughout many areas of BookStack. / Загальні елементи, використовуються в багатьох областях BookStack.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
@ -12,6 +11,7 @@ return [
|
|||
'save' => 'Зберегти',
|
||||
'continue' => 'Продовжити',
|
||||
'select' => 'Вибрати',
|
||||
'toggle_all' => 'Увімкнути все',
|
||||
'more' => 'Ще',
|
||||
|
||||
// Form Labels
|
||||
|
@ -23,7 +23,8 @@ return [
|
|||
|
||||
// Actions
|
||||
'actions' => 'Дії',
|
||||
'view' => 'Перегляд',
|
||||
'view' => 'Подивитись',
|
||||
'view_all' => 'Подивитись все',
|
||||
'create' => 'Створити',
|
||||
'update' => 'Оновити',
|
||||
'edit' => 'Редагувати',
|
||||
|
@ -38,6 +39,11 @@ return [
|
|||
'remove' => 'Видалити',
|
||||
'add' => 'Додати',
|
||||
|
||||
// Sort Options
|
||||
'sort_name' => 'Ім\'я',
|
||||
'sort_created_at' => 'Дата створення',
|
||||
'sort_updated_at' => 'Дата оновлення',
|
||||
|
||||
// Misc
|
||||
'deleted_user' => 'Видалений користувач',
|
||||
'no_activity' => 'Немає активності для показу',
|
||||
|
@ -54,6 +60,10 @@ return [
|
|||
'view_profile' => 'Переглянути профіль',
|
||||
'edit_profile' => 'Редагувати профіль',
|
||||
|
||||
// Layout tabs
|
||||
'tab_info' => 'Інфо',
|
||||
'tab_content' => 'Вміст',
|
||||
|
||||
// Email Content
|
||||
'email_action_help' => 'Якщо у вас виникають проблеми при натисканні кнопки ":actionText", скопіюйте та вставте URL у свій веб-браузер:',
|
||||
'email_rights' => 'Всі права захищені',
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Text used in custom JavaScript driven components.
|
||||
* Текст використовується в індивідуальних компонентах, керованих JavaScript.
|
||||
* Text used in custom JavaScript driven components. / Текст використовується в індивідуальних компонентах, керованих JavaScript.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* Text used for 'Entities' (Document Structure Elements) such as
|
||||
* Books, Shelves, Chapters & Pages
|
||||
* Текст використовується для "об'єктів" (елементів структури документів), таких як
|
||||
* Книги, Полиці, Розділи та Сторінки
|
||||
* Text used for 'Entities' (Document Structure Elements) such as / Текст використовується для "об'єктів" (елементів структури документів), таких як
|
||||
* Books, Shelves, Chapters & Pages / Книги, Полиці, Розділи та Сторінки
|
||||
*/
|
||||
return [
|
||||
|
||||
|
@ -13,6 +11,7 @@ return [
|
|||
'recently_updated_pages' => 'Нещодавно оновлені сторінки',
|
||||
'recently_created_chapters' => 'Нещодавно створені розділи',
|
||||
'recently_created_books' => 'Нещодавно створені книги',
|
||||
'recently_created_shelves' => 'Нещодавно створені полиці',
|
||||
'recently_update' => 'Недавно оновлено',
|
||||
'recently_viewed' => 'Недавно переглянуто',
|
||||
'recent_activity' => 'Остання активність',
|
||||
|
@ -37,7 +36,7 @@ return [
|
|||
|
||||
// Permissions and restrictions
|
||||
'permissions' => 'Дозволи',
|
||||
'permissions_intro' => 'Після ввімкнення ці дозволи будуть мати пріоритет над усіма дозволеними ролями.',
|
||||
'permissions_intro' => 'Після ввімкнення ці дозволи будуть мати вищий пріоритет ніж інші дозволи ролей.',
|
||||
'permissions_enable' => 'Увімкнути спеціальні дозволи',
|
||||
'permissions_save' => 'Зберегти дозволи',
|
||||
|
||||
|
@ -69,11 +68,13 @@ return [
|
|||
// Shelves
|
||||
'shelf' => 'Полиця',
|
||||
'shelves' => 'Полиці',
|
||||
'x_shelves' => ':count Полиця|:count Полиць',
|
||||
'shelves_long' => 'Книжкові полиці',
|
||||
'shelves_empty' => 'Жодних полиць не було створено',
|
||||
'shelves_create' => 'Створити нову полицю',
|
||||
'shelves_popular' => 'Популярні полиці',
|
||||
'shelves_new' => 'Нові полиці',
|
||||
'shelves_new_action' => 'Нова полиця',
|
||||
'shelves_popular_empty' => 'Найпопулярніші полиці з\'являться тут.',
|
||||
'shelves_new_empty' => 'Тут будуть з\'являтися останні створені полиці.',
|
||||
'shelves_save' => 'Зберегти полицю',
|
||||
|
@ -104,6 +105,7 @@ return [
|
|||
'books_popular' => 'Популярні книги',
|
||||
'books_recent' => 'Останні книги',
|
||||
'books_new' => 'Нові книги',
|
||||
'books_new_action' => 'Нова книга',
|
||||
'books_popular_empty' => 'Найпопулярніші книги з\'являться тут.',
|
||||
'books_new_empty' => 'Найновіші книги з\'являться тут.',
|
||||
'books_create' => 'Створити нову книгу',
|
||||
|
@ -119,7 +121,6 @@ return [
|
|||
'books_permissions_updated' => 'Дозволи на книгу оновлено',
|
||||
'books_empty_contents' => 'Для цієї книги не створено жодної сторінки або розділів.',
|
||||
'books_empty_create_page' => 'Створити нову сторінку',
|
||||
'books_empty_or' => 'або',
|
||||
'books_empty_sort_current_book' => 'Сортувати поточну книгу',
|
||||
'books_empty_add_chapter' => 'Додати розділ',
|
||||
'books_permissions_active' => 'Діючі дозволи на книгу',
|
||||
|
@ -127,6 +128,11 @@ return [
|
|||
'books_navigation' => 'Навігація по книзі',
|
||||
'books_sort' => 'Сортувати вміст книги',
|
||||
'books_sort_named' => 'Сортувати книгу :bookName',
|
||||
'books_sort_name' => 'Сортувати за назвою',
|
||||
'books_sort_created' => 'Сортувати за датою створення',
|
||||
'books_sort_updated' => 'Сортувати за датою оновлення',
|
||||
'books_sort_chapters_first' => 'Спершу розділи',
|
||||
'books_sort_chapters_last' => 'Розділи в кінці',
|
||||
'books_sort_show_other' => 'Показати інші книги',
|
||||
'books_sort_save' => 'Зберегти нове замовлення',
|
||||
|
||||
|
@ -204,6 +210,8 @@ return [
|
|||
'pages_revisions_created_by' => 'Створена',
|
||||
'pages_revisions_date' => 'Дата версії',
|
||||
'pages_revisions_number' => '#',
|
||||
'pages_revisions_numbered' => 'Версія #:id',
|
||||
'pages_revisions_numbered_changes' => 'Зміни версії #:id',
|
||||
'pages_revisions_changelog' => 'Історія змін',
|
||||
'pages_revisions_changes' => 'Зміни',
|
||||
'pages_revisions_current' => 'Поточна версія',
|
||||
|
@ -218,7 +226,7 @@ return [
|
|||
'pages_editing_draft_notification' => 'Ви наразі редагуєте чернетку, що була збережена останньою :timeDiff.',
|
||||
'pages_draft_edited_notification' => 'З того часу ця сторінка була оновлена. Рекомендуємо відмовитися від цього проекту.',
|
||||
'pages_draft_edit_active' => [
|
||||
'start_a' => ':count користувачі(в) почала редагувати цю сторінку',
|
||||
'start_a' => ':count користувачі(в) почали редагувати цю сторінку',
|
||||
'start_b' => ':userName розпочав редагування цієї сторінки',
|
||||
'time_a' => 'з моменту останньої оновлення сторінки',
|
||||
'time_b' => 'за останні :minCount хвилин',
|
||||
|
@ -269,6 +277,7 @@ return [
|
|||
'profile_not_created_pages' => ':userName не створив жодної сторінки',
|
||||
'profile_not_created_chapters' => ':userName не створив жодного розділу',
|
||||
'profile_not_created_books' => ':userName не створив жодної книги',
|
||||
'profile_not_created_shelves' => ':userName не створив жодної полиці',
|
||||
|
||||
// Comments
|
||||
'comment' => 'Коментар',
|
||||
|
@ -290,6 +299,7 @@ return [
|
|||
|
||||
// Revision
|
||||
'revision_delete_confirm' => 'Ви впевнені, що хочете видалити цю версію?',
|
||||
'revision_restore_confirm' => 'Дійсно відновити цю версію? Вміст поточної сторінки буде замінено.',
|
||||
'revision_delete_success' => 'Версія видалена',
|
||||
'revision_cannot_delete_latest' => 'Неможливо видалити останню версію.'
|
||||
];
|
|
@ -1,7 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Text shown in error messaging.
|
||||
* Текст відображається в повідомленнях про помилку.
|
||||
* Text shown in error messaging. / Текст відображається в повідомленнях про помилку.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
@ -37,6 +36,7 @@ return [
|
|||
'uploaded' => 'Сервер не дозволяє завантажувати файли такого розміру. Спробуйте менший розмір файлу.',
|
||||
'image_upload_error' => 'Виникла помилка під час завантаження зображення',
|
||||
'image_upload_type_error' => 'Тип завантаженого зображення недійсний',
|
||||
'file_upload_timeout' => 'Тайм-аут при завантаженні файлу',
|
||||
|
||||
// Attachments
|
||||
'attachment_page_mismatch' => 'Невідповідність сторінки при оновленні вкладень',
|
||||
|
@ -64,6 +64,7 @@ return [
|
|||
'role_cannot_be_edited' => 'Цю роль не можна редагувати',
|
||||
'role_system_cannot_be_deleted' => 'Ця роль є системною, і її не можна видалити',
|
||||
'role_registration_default_cannot_delete' => 'Цю роль не можна видалити, бо вона встановлена як роль реєстрації за умовчанням',
|
||||
'role_cannot_remove_only_admin' => 'Цей користувач є єдиним користувачем, призначеним для ролі адміністратора. Призначте роль адміністратора іншому користувачеві, перш ніж спробувати його видалити.',
|
||||
|
||||
// Comments
|
||||
'comment_list' => 'Під час отримання коментарів сталася помилка.',
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
<?php
|
||||
/**
|
||||
* Pagination Language Lines
|
||||
* The following language lines are used by the paginator library to build
|
||||
* the simple pagination links.
|
||||
* Лінії мови вирівнювання по сторінках
|
||||
* Наступні мовні лінії використовуються бібліотекою журналіста для створення
|
||||
* простих посилань на сторінки.
|
||||
* Pagination Language Lines / Лінії мови вирівнювання по сторінках
|
||||
* The following language lines are used by the paginator library to build / Наступні мовні лінії використовуються бібліотекою журналіста для створення
|
||||
* the simple pagination links. / простих посилань на сторінки.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
<?php
|
||||
/**
|
||||
* Password Reminder Language Lines
|
||||
* Password Reminder Language Lines / Нагадування про пароль
|
||||
* The following language lines are the default lines which match reasons
|
||||
* that are given by the password broker for a password update attempt has failed.
|
||||
* Нагадування про пароль
|
||||
*/
|
||||
return [
|
||||
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
<?php
|
||||
/**
|
||||
* Settings text strings
|
||||
* Contains all text strings used in the general settings sections of BookStack
|
||||
* including users and roles.
|
||||
* Текст налаштувань
|
||||
* Містить всі текстові рядки, що використовуються в розділах загальної настройки BookStack
|
||||
* включаючи користувачів та ролі.
|
||||
* Settings text strings / Текст налаштувань
|
||||
* Contains all text strings used in the general settings sections of BookStack / Містить всі текстові рядки, що використовуються в розділах загальної настройки BookStack
|
||||
* including users and roles. / включаючи користувачів та ролі.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
@ -15,12 +12,18 @@ return [
|
|||
'settings_save_success' => 'Налаштування збережено',
|
||||
|
||||
// App Settings
|
||||
'app_settings' => 'Налаштування програми',
|
||||
'app_customization' => 'Налаштування',
|
||||
'app_features_security' => 'Особливості та безпека',
|
||||
'app_name' => 'Назва програми',
|
||||
'app_name_desc' => 'Ця назва відображається у заголовку та у всіх листах.',
|
||||
'app_name_header' => 'Показати назву програми в заголовку?',
|
||||
'app_name_header' => 'Показати назву програми в заголовку',
|
||||
'app_public_access' => 'Публічнй доступ',
|
||||
'app_public_access_desc' => 'Увімкнення цієї опції дозволить відвідувачам, які не увійшли в систему, отримати доступ до вмісту у вашому екземплярі BookStack.',
|
||||
'app_public_access_desc_guest' => 'Доступ для публічних відвідувачів можна контролювати через користувача "Гість".',
|
||||
'app_public_access_toggle' => 'Дозволити публічний доступ',
|
||||
'app_public_viewing' => 'Дозволити публічний перегляд?',
|
||||
'app_secure_images' => 'Увімкунти вищі налаштування безпеки для завантаження зображень?',
|
||||
'app_secure_images' => 'Вищі налаштування безпеки для зображень',
|
||||
'app_secure_images_toggle' => 'Увімкунти вищі налаштування безпеки для завантаження зображень',
|
||||
'app_secure_images_desc' => 'З міркувань продуктивності всі зображення є загальнодоступними. Цей параметр додає випадковий, важко передбачуваний рядок перед URL-адресами зображень. Переконайтеся, що індексація каталогів не активована, щоб запобігти легкому доступу.',
|
||||
'app_editor' => 'Редактор сторінок',
|
||||
'app_editor_desc' => 'Виберіть, який редактор буде використовуватися всіма користувачами для редагування сторінок.',
|
||||
|
@ -34,15 +37,19 @@ return [
|
|||
'app_homepage_desc' => 'Виберіть сторінку, яка відображатиметься на домашній сторінці замість перегляду за умовчанням. Права на сторінку не враховуються для вибраних сторінок.',
|
||||
'app_homepage_select' => 'Вибрати сторінку',
|
||||
'app_disable_comments' => 'Вимкнути коментарі',
|
||||
'app_disable_comments_toggle' => 'Вимкнути коментарі',
|
||||
'app_disable_comments_desc' => 'Вимкнути коментарі на всіх сторінках програми. Існуючі коментарі не відображаються.',
|
||||
|
||||
// Registration Settings
|
||||
'reg_settings' => 'Налаштування реєстрації',
|
||||
'reg_allow' => 'Дозволити реєстрацію?',
|
||||
'reg_settings' => 'Реєстрація',
|
||||
'reg_enable' => 'Дозволити реєстрацію',
|
||||
'reg_enable_toggle' => 'Дозволити реєстрацію',
|
||||
'reg_enable_desc' => 'При включенні реєстрації відвідувач зможе зареєструватися як користувач програми. Після реєстрації їм надається єдина роль користувача за замовчуванням.',
|
||||
'reg_default_role' => 'Роль користувача за умовчанням після реєстрації',
|
||||
'reg_confirm_email' => 'Потрібне підтвердження електронною поштою?',
|
||||
'reg_email_confirmation' => 'Підтвердження електронною поштою',
|
||||
'reg_email_confirmation_toggle' => 'Необхідне підтвердження електронною поштою',
|
||||
'reg_confirm_email_desc' => 'Якщо використовується обмеження домену, то підтвердження електронною поштою буде потрібно, а нижче значення буде проігноровано.',
|
||||
'reg_confirm_restrict_domain' => 'Обмежити реєстрацію до домену',
|
||||
'reg_confirm_restrict_domain' => 'Обмежити по домену',
|
||||
'reg_confirm_restrict_domain_desc' => 'Введіть список розділених комами доменів електронної пошти, до яких ви хочете обмежити реєстрацію. Користувачам буде надіслано електронне повідомлення для підтвердження своєї адреси, перш ніж дозволяти взаємодіяти з додатком. <br> Зауважте, що користувачі зможуть змінювати свої електронні адреси після успішної реєстрації.',
|
||||
'reg_confirm_restrict_domain_placeholder' => 'Не встановлено обмежень',
|
||||
|
||||
|
@ -94,8 +101,15 @@ return [
|
|||
'user_profile' => 'Профіль користувача',
|
||||
'users_add_new' => 'Додати нового користувача',
|
||||
'users_search' => 'Пошук користувачів',
|
||||
'users_details' => 'Відомості про користувача',
|
||||
'users_details_desc' => 'Встановіть ім\'я та електронну адресу для цього користувача. Адреса електронної пошти буде використана для входу до програми.',
|
||||
'users_details_desc_no_email' => 'Встановіть ім\'я для цього користувача, щоб інші могли його розпізнати.',
|
||||
'users_role' => 'Ролі користувача',
|
||||
'users_role_desc' => 'Виберіть, до яких ролей буде призначено цього користувача. Якщо користувачеві призначено декілька ролей, дозволи з цих ролей будуть складатись і вони отримуватимуть усі можливості призначених ролей.',
|
||||
'users_password' => 'Пароль користувача',
|
||||
'users_password_desc' => 'Встановіть пароль для входу. Він повинен містити принаймні 5 символів.',
|
||||
'users_external_auth_id' => 'Зовнішній ID автентифікації',
|
||||
'users_external_auth_id_desc' => 'Цей ID використовується для пошуку збігу цього користувача під час зв\'язку з LDAP.',
|
||||
'users_password_warning' => 'Тільки якщо ви хочете змінити свій пароль, заповніть поля нижче:',
|
||||
'users_system_public' => 'Цей користувач представляє будь-яких гостьових користувачів, які відвідують ваш екземпляр. Його не можна використовувати для входу, але він призначається автоматично.',
|
||||
'users_delete' => 'Видалити користувача',
|
||||
|
@ -109,6 +123,7 @@ return [
|
|||
'users_avatar' => 'Аватар користувача',
|
||||
'users_avatar_desc' => 'Це квадратне зображення має бути приблизно 256px.',
|
||||
'users_preferred_language' => 'Бажана мова',
|
||||
'users_preferred_language_desc' => 'Цей параметр змінить мову інтерфейсу користувача в програмі. Не вплине на створений користувачем вміст.',
|
||||
'users_social_accounts' => 'Соціальні акаунти',
|
||||
'users_social_accounts_info' => 'Тут ви можете підключити інші облікові записи для швидшого та легшого входу. Від\'єднання соціального облікового запису тут не дозволяється. Скасуйте доступ із налаштувань вашого профілю в пов\'язаній соціальній мережі.',
|
||||
'users_social_connect' => 'Підключити обліковий запис',
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
<?php
|
||||
/**
|
||||
* Validation Lines
|
||||
* The following language lines contain the default error messages used by
|
||||
* the validator class. Some of these rules have multiple versions such
|
||||
* as the size rules. Feel free to tweak each of these messages here.
|
||||
* Стрічки перевірки
|
||||
* Наступні мовні лінії містять повідомлення про помилку за замовчуванням,
|
||||
* що використовуються класом валідатора. Деякі з цих правил мають кілька версій,
|
||||
* таких як правила розмірів. Ви можете налаштувати кожен з цих повідомлень тут.
|
||||
* Validation Lines / Стрічки перевірки
|
||||
* The following language lines contain the default error messages used by / Наступні мовні лінії містять повідомлення про помилку за замовчуванням,
|
||||
* the validator class. Some of these rules have multiple versions such / що використовуються класом валідатора. Деякі з цих правил мають кілька версій,
|
||||
* as the size rules. Feel free to tweak each of these messages here. / таких як правила розмірів. Ви можете налаштувати кожен з цих повідомлень тут.
|
||||
*/
|
||||
return [
|
||||
|
||||
|
@ -37,6 +33,7 @@ return [
|
|||
'filled' => ':attribute поле обов\'язкове.',
|
||||
'exists' => 'Вибраний :attribute недійсний.',
|
||||
'image' => ':attribute повинен бути зображенням.',
|
||||
'image_extension' => ':attribute повинен мати дійсне та підтримуване розширення зображення.',
|
||||
'in' => 'Вибраний :attribute недійсний.',
|
||||
'integer' => ':attribute повинен бути цілим числом.',
|
||||
'ip' => ':attribute повинна бути дійсною IP-адресою.',
|
||||
|
@ -53,6 +50,7 @@ return [
|
|||
'string' => ':attribute повинен бути принаймні :min символів.',
|
||||
'array' => ':attribute повинен містити принаймні :min елементів.',
|
||||
],
|
||||
'no_double_extension' => ':attribute повинен мати тільки одне розширення файлу.',
|
||||
'not_in' => 'Вибраний :attribute недійсний.',
|
||||
'numeric' => ':attribute повинен бути числом.',
|
||||
'regex' => ':attribute формат недійсний.',
|
||||
|
@ -73,6 +71,7 @@ return [
|
|||
'timezone' => ':attribute повинен бути дійсною зоною.',
|
||||
'unique' => ':attribute вже є.',
|
||||
'url' => ':attribute формат недійсний.',
|
||||
'uploaded' => 'Не вдалося завантажити файл. Сервер може не приймати файли такого розміру.',
|
||||
|
||||
// Custom validation lines
|
||||
'custom' => [
|
||||
|
|
|
@ -15,5 +15,5 @@
|
|||
|
||||
<div class="form-group">
|
||||
<label for="password">{{ trans('auth.password') }}</label>
|
||||
@include('form.password', ['name' => 'password', 'tabindex' => 2])
|
||||
@include('form.password', ['name' => 'password', 'tabindex' => 1])
|
||||
</div>
|
|
@ -27,7 +27,7 @@
|
|||
</div>
|
||||
|
||||
<div class="text-right">
|
||||
<button class="button primary" tabindex="3">{{ title_case(trans('auth.log_in')) }}</button>
|
||||
<button class="button primary" tabindex="1">{{ title_case(trans('auth.log_in')) }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -46,7 +46,7 @@
|
|||
@endif
|
||||
|
||||
@if(setting('registration-enabled', false))
|
||||
<div class="text-center">
|
||||
<div class="text-center pb-s">
|
||||
<hr class="my-l">
|
||||
<a href="{{ baseUrl('/register') }}">{{ trans('auth.dont_have_account') }}</a>
|
||||
</div>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="grid third gap-xxl">
|
||||
<div>
|
||||
<div class="card mb-xl">
|
||||
<h3>{{ trans('entities.pages_popular') }}</h3>
|
||||
<h3 class="card-title">{{ trans('entities.pages_popular') }}</h3>
|
||||
<div class="px-m">
|
||||
@include('partials.entity-list', ['entities' => Views::getPopular(10, 0, 'page'), 'style' => 'compact'])
|
||||
</div>
|
||||
|
@ -28,7 +28,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<div class="card mb-xl">
|
||||
<h3>{{ trans('entities.books_popular') }}</h3>
|
||||
<h3 class="card-title">{{ trans('entities.books_popular') }}</h3>
|
||||
<div class="px-m">
|
||||
@include('partials.entity-list', ['entities' => Views::getPopular(10, 0, 'book'), 'style' => 'compact'])
|
||||
</div>
|
||||
|
@ -36,7 +36,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<div class="card mb-xl">
|
||||
<h3>{{ trans('entities.chapters_popular') }}</h3>
|
||||
<h3 class="card-title">{{ trans('entities.chapters_popular') }}</h3>
|
||||
<div class="px-m">
|
||||
@include('partials.entity-list', ['entities' => Views::getPopular(10, 0, 'chapter'), 'style' => 'compact'])
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?php namespace Tests;
|
||||
|
||||
use BookStack\Entities\Bookshelf;
|
||||
|
||||
class HomepageTest extends TestCase
|
||||
{
|
||||
|
||||
|
@ -89,4 +91,33 @@ class HomepageTest extends TestCase
|
|||
$this->setSettings(['app-homepage-type' => false]);
|
||||
$this->test_default_homepage_visible();
|
||||
}
|
||||
|
||||
public function test_shelves_list_homepage_adheres_to_book_visibility_permissions()
|
||||
{
|
||||
$editor = $this->getEditor();
|
||||
setting()->putUser($editor, 'bookshelves_view_type', 'list');
|
||||
$this->setSettings(['app-homepage-type' => 'bookshelves']);
|
||||
$this->asEditor();
|
||||
|
||||
$shelf = Bookshelf::query()->first();
|
||||
$book = $shelf->books()->first();
|
||||
|
||||
// Ensure initially visible
|
||||
$homeVisit = $this->get('/');
|
||||
$homeVisit->assertElementContains('.content-wrap', $shelf->name);
|
||||
$homeVisit->assertElementContains('.content-wrap', $book->name);
|
||||
|
||||
// Ensure book no longer visible without view permission
|
||||
$editor->roles()->detach();
|
||||
$this->giveUserPermissions($editor, ['bookshelf-view-all']);
|
||||
$homeVisit = $this->get('/');
|
||||
$homeVisit->assertElementContains('.content-wrap', $shelf->name);
|
||||
$homeVisit->assertElementNotContains('.content-wrap', $book->name);
|
||||
|
||||
// Ensure is visible again with entity-level view permission
|
||||
$this->setEntityRestrictions($book, ['view'], [$editor->roles()->first()]);
|
||||
$homeVisit = $this->get('/');
|
||||
$homeVisit->assertElementContains('.content-wrap', $shelf->name);
|
||||
$homeVisit->assertElementContains('.content-wrap', $book->name);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue