mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-06 17:19:39 +03:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ee79d16c9 | ||
|
|
a1ea4006e0 | ||
|
|
a721405202 | ||
|
|
d20aacb732 | ||
|
|
65fa96e405 | ||
|
|
736d6afb7d | ||
|
|
0bcd1795cb | ||
|
|
47887ec595 | ||
|
|
9078188939 | ||
|
|
ed0aad1a7a | ||
|
|
43749cd94e | ||
|
|
107df6c28f | ||
|
|
c1d1ec5b89 | ||
|
|
12c282597d | ||
|
|
c9d0e22132 | ||
|
|
0801955a26 | ||
|
|
3ed1ffdbeb |
@@ -39,7 +39,7 @@ class GroupSyncService
|
||||
|
||||
protected function parseRoleExternalAuthId(string $externalId): array
|
||||
{
|
||||
$inputIds = preg_split('/(?<!\\\),/', $externalId);
|
||||
$inputIds = preg_split('/(?<!\\\),/', strtolower($externalId));
|
||||
$cleanIds = [];
|
||||
|
||||
foreach ($inputIds as $inputId) {
|
||||
|
||||
@@ -88,10 +88,11 @@ class BookController extends Controller
|
||||
public function store(Request $request, string $shelfSlug = null)
|
||||
{
|
||||
$this->checkPermission('book-create-all');
|
||||
$this->validate($request, [
|
||||
$validated = $this->validate($request, [
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'description' => ['string', 'max:1000'],
|
||||
'image' => array_merge(['nullable'], $this->getImageValidationRules()),
|
||||
'tags' => ['array'],
|
||||
]);
|
||||
|
||||
$bookshelf = null;
|
||||
@@ -100,7 +101,7 @@ class BookController extends Controller
|
||||
$this->checkOwnablePermission('bookshelf-update', $bookshelf);
|
||||
}
|
||||
|
||||
$book = $this->bookRepo->create($request->all());
|
||||
$book = $this->bookRepo->create($validated);
|
||||
|
||||
if ($bookshelf) {
|
||||
$bookshelf->appendBook($book);
|
||||
@@ -163,6 +164,7 @@ class BookController extends Controller
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'description' => ['string', 'max:1000'],
|
||||
'image' => array_merge(['nullable'], $this->getImageValidationRules()),
|
||||
'tags' => ['array'],
|
||||
]);
|
||||
|
||||
if ($request->has('image_reset')) {
|
||||
|
||||
@@ -13,7 +13,8 @@ You'll need to tell BookStack to use your theme via the `APP_THEME` option in yo
|
||||
|
||||
## Customizing View Files
|
||||
|
||||
Content placed in your `themes/<theme_name>/` folder will override the original view files found in the `resources/views` folder. These files are typically [Laravel Blade](https://laravel.com/docs/6.x/blade) files.
|
||||
Content placed in your `themes/<theme_name>/` folder will override the original view files found in the `resources/views` folder. These files are typically [Laravel Blade](https://laravel.com/docs/8.x/blade) files.
|
||||
As an example, I could override the `resources/views/books/parts/list-item.blade.php` file with my own template at the path `themes/<theme_name>/books/parts/list-item.blade.php`.
|
||||
|
||||
## Customizing Icons
|
||||
|
||||
|
||||
2
public/dist/app.js
vendored
2
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
@@ -7,36 +7,34 @@ class EntitySelectorPopup {
|
||||
setup() {
|
||||
this.elem = this.$el;
|
||||
this.selectButton = this.$refs.select;
|
||||
this.searchInput = this.$refs.searchInput;
|
||||
|
||||
window.EntitySelectorPopup = this;
|
||||
this.selectorEl = this.$refs.selector;
|
||||
|
||||
this.callback = null;
|
||||
this.selection = null;
|
||||
|
||||
this.selectButton.addEventListener('click', this.onSelectButtonClick.bind(this));
|
||||
window.$events.listen('entity-select-change', this.onSelectionChange.bind(this));
|
||||
window.$events.listen('entity-select-confirm', this.onSelectionConfirm.bind(this));
|
||||
window.$events.listen('entity-select-confirm', this.handleConfirmedSelection.bind(this));
|
||||
}
|
||||
|
||||
show(callback) {
|
||||
this.callback = callback;
|
||||
this.elem.components.popup.show();
|
||||
this.searchInput.focus();
|
||||
this.getSelector().focusSearch();
|
||||
}
|
||||
|
||||
hide() {
|
||||
this.elem.components.popup.hide();
|
||||
}
|
||||
|
||||
onSelectButtonClick() {
|
||||
this.hide();
|
||||
if (this.selection !== null && this.callback) this.callback(this.selection);
|
||||
getSelector() {
|
||||
return this.selectorEl.components['entity-selector'];
|
||||
}
|
||||
|
||||
onSelectionConfirm(entity) {
|
||||
this.hide();
|
||||
if (this.callback && entity) this.callback(entity);
|
||||
onSelectButtonClick() {
|
||||
this.handleConfirmedSelection(this.selection);
|
||||
}
|
||||
|
||||
onSelectionChange(entity) {
|
||||
@@ -47,6 +45,12 @@ class EntitySelectorPopup {
|
||||
this.selectButton.removeAttribute('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
handleConfirmedSelection(entity) {
|
||||
this.hide();
|
||||
this.getSelector().reset();
|
||||
if (this.callback && entity) this.callback(entity);
|
||||
}
|
||||
}
|
||||
|
||||
export default EntitySelectorPopup;
|
||||
@@ -87,6 +87,16 @@ class EntitySelector {
|
||||
}
|
||||
}
|
||||
|
||||
reset() {
|
||||
this.searchInput.value = '';
|
||||
this.showLoading();
|
||||
this.initialLoad();
|
||||
}
|
||||
|
||||
focusSearch() {
|
||||
this.searchInput.focus();
|
||||
}
|
||||
|
||||
showLoading() {
|
||||
this.loading.style.display = 'block';
|
||||
this.resultsContainer.style.display = 'none';
|
||||
|
||||
@@ -28,8 +28,8 @@ return [
|
||||
// Books
|
||||
'book_create' => 'libro creado',
|
||||
'book_create_notification' => 'Libro creado correctamente',
|
||||
'book_create_from_chapter' => 'convertido capítulo a libro',
|
||||
'book_create_from_chapter_notification' => 'Capítulo convertido a libro con éxito',
|
||||
'book_create_from_chapter' => 'capítulo convertido en libro',
|
||||
'book_create_from_chapter_notification' => 'Capítulo convertido en libro con éxito',
|
||||
'book_update' => 'libro actualizado',
|
||||
'book_update_notification' => 'Libro actualizado correctamente',
|
||||
'book_delete' => 'libro borrado',
|
||||
@@ -40,8 +40,8 @@ return [
|
||||
// Bookshelves
|
||||
'bookshelf_create' => 'estante creado',
|
||||
'bookshelf_create_notification' => 'Estante creado correctamente',
|
||||
'bookshelf_create_from_book' => 'convertido libro a estante',
|
||||
'bookshelf_create_from_book_notification' => 'Libro convertido a estante con éxito',
|
||||
'bookshelf_create_from_book' => 'libro convertido en estante',
|
||||
'bookshelf_create_from_book_notification' => 'Libro convertido en estante con éxito',
|
||||
'bookshelf_update' => 'Estante actualizado',
|
||||
'bookshelf_update_notification' => 'Estante actualizado correctamente',
|
||||
'bookshelf_delete' => 'Estante borrado',
|
||||
|
||||
@@ -48,7 +48,7 @@ return [
|
||||
'filter_active' => 'Filtro activo:',
|
||||
'filter_clear' => 'Limpiar filtro',
|
||||
'download' => 'Descargar',
|
||||
'open_in_tab' => 'Abrir en una nueva pestaña',
|
||||
'open_in_tab' => 'Abrir en una pestaña',
|
||||
|
||||
// Sort Options
|
||||
'sort_options' => 'Opciones de Orden',
|
||||
|
||||
@@ -16,12 +16,12 @@ return [
|
||||
'undo' => 'Deshacer',
|
||||
'redo' => 'Rehacer',
|
||||
'left' => 'Izquierda',
|
||||
'center' => 'Centro',
|
||||
'center' => 'Centrar',
|
||||
'right' => 'Derecha',
|
||||
'top' => 'Arriba',
|
||||
'middle' => 'Medio',
|
||||
'bottom' => 'Abajo',
|
||||
'width' => 'Anchura',
|
||||
'width' => 'Ancho',
|
||||
'height' => 'Altura',
|
||||
'More' => 'Más',
|
||||
'select' => 'Seleccionar...',
|
||||
@@ -29,9 +29,9 @@ return [
|
||||
// Toolbar
|
||||
'formats' => 'Formatos',
|
||||
'header_large' => 'Encabezado grande',
|
||||
'header_medium' => 'Encabezado medio',
|
||||
'header_small' => 'Encabezado pequeño',
|
||||
'header_tiny' => 'Encabezado muy pequeño',
|
||||
'header_medium' => 'Encabezado mediano',
|
||||
'header_small' => 'Encabezado chico',
|
||||
'header_tiny' => 'Encabezado pequeño',
|
||||
'paragraph' => 'Párrafo',
|
||||
'blockquote' => 'Cita',
|
||||
'inline_code' => 'Código en línea',
|
||||
@@ -46,31 +46,31 @@ return [
|
||||
'strikethrough' => 'Tachado',
|
||||
'superscript' => 'Superíndice',
|
||||
'subscript' => 'Subíndice',
|
||||
'text_color' => 'Color de texto',
|
||||
'text_color' => 'Color del texto',
|
||||
'custom_color' => 'Color personalizado',
|
||||
'remove_color' => 'Eliminar color',
|
||||
'background_color' => 'Color de fondo',
|
||||
'align_left' => 'Alinear a la izquierda',
|
||||
'align_center' => 'Alinear al centro',
|
||||
'align_center' => 'Centrar',
|
||||
'align_right' => 'Alinear a la derecha',
|
||||
'align_justify' => 'Justificado',
|
||||
'list_bullet' => 'Lista sin ordenar',
|
||||
'list_numbered' => 'Lista ordenada',
|
||||
'list_bullet' => 'Lista de viñetas',
|
||||
'list_numbered' => 'Lista numerada',
|
||||
'list_task' => 'Lista de tareas',
|
||||
'indent_increase' => 'Aumentar sangría',
|
||||
'indent_decrease' => 'Reducir sangría',
|
||||
'table' => 'Tabla',
|
||||
'insert_image' => 'Importar imagen',
|
||||
'insert_image' => 'Insertar Imagen',
|
||||
'insert_image_title' => 'Insertar/Editar imagen',
|
||||
'insert_link' => 'Insertar/editar enlace',
|
||||
'insert_link_title' => 'Insertar/Editar enlace',
|
||||
'insert_link_title' => 'Insertar/Editar Enlace',
|
||||
'insert_horizontal_line' => 'Insertar línea horizontal',
|
||||
'insert_code_block' => 'Insertar bloque de código',
|
||||
'insert_drawing' => 'Insertar/editar dibujo',
|
||||
'drawing_manager' => 'Gestor de dibujo',
|
||||
'insert_media' => 'Insertar/editar medios',
|
||||
'insert_media_title' => 'Insertar/Editar medios',
|
||||
'clear_formatting' => 'Borrar formato',
|
||||
'insert_media' => 'Insertar/editar media',
|
||||
'insert_media_title' => 'Insertar/Editar Media',
|
||||
'clear_formatting' => 'Limpiar formato',
|
||||
'source_code' => 'Código fuente',
|
||||
'source_code_title' => 'Código Fuente',
|
||||
'fullscreen' => 'Pantalla completa',
|
||||
@@ -90,10 +90,10 @@ return [
|
||||
'table_row' => 'Fila',
|
||||
'table_column' => 'Columna',
|
||||
'cell_properties' => 'Propiedades de la celda',
|
||||
'cell_properties_title' => 'Propiedades de Celda',
|
||||
'cell_properties_title' => 'Propiedades de la Celda',
|
||||
'cell_type' => 'Tipo de celda',
|
||||
'cell_type_cell' => 'Celda',
|
||||
'cell_scope' => 'Ámbito',
|
||||
'cell_scope' => 'Alcance',
|
||||
'cell_type_header' => 'Celda de cabecera',
|
||||
'merge_cells' => 'Combinar celdas',
|
||||
'split_cell' => 'Dividir celda',
|
||||
@@ -120,7 +120,7 @@ return [
|
||||
'paste_column_before' => 'Pegar columna a la izquierda',
|
||||
'paste_column_after' => 'Pegar columna a la derecha',
|
||||
'cell_padding' => 'Relleno de la celda',
|
||||
'cell_spacing' => 'Espaciado entre celdas',
|
||||
'cell_spacing' => 'Espaciado de celdas',
|
||||
'caption' => 'Leyenda',
|
||||
'show_caption' => 'Mostrar leyenda',
|
||||
'constrain' => 'Restringir proporciones',
|
||||
@@ -128,29 +128,29 @@ return [
|
||||
'cell_border_dotted' => 'Punteada',
|
||||
'cell_border_dashed' => 'Discontinua',
|
||||
'cell_border_double' => 'Doble',
|
||||
'cell_border_groove' => 'Surcos',
|
||||
'cell_border_ridge' => 'Cresta',
|
||||
'cell_border_inset' => 'Interno',
|
||||
'cell_border_outset' => 'Externo',
|
||||
'cell_border_groove' => 'Ranura',
|
||||
'cell_border_ridge' => 'Reborde',
|
||||
'cell_border_inset' => 'Recuadro',
|
||||
'cell_border_outset' => 'Recuadro externo',
|
||||
'cell_border_none' => 'Ninguno',
|
||||
'cell_border_hidden' => 'Oculto',
|
||||
|
||||
// Images, links, details/summary & embed
|
||||
'source' => 'Origen',
|
||||
'alt_desc' => 'Descripción alternativa',
|
||||
'embed' => 'Incrustar',
|
||||
'paste_embed' => 'Pegue su código incrustado a continuación:',
|
||||
'embed' => 'Embeber',
|
||||
'paste_embed' => 'Pegue su código embebido a continuación:',
|
||||
'url' => 'URL',
|
||||
'text_to_display' => 'Texto para mostrar',
|
||||
'title' => 'Titulo',
|
||||
'text_to_display' => 'Texto a mostrar',
|
||||
'title' => 'Título',
|
||||
'open_link' => 'Abrir enlace en...',
|
||||
'open_link_current' => 'Ventana actual',
|
||||
'open_link_new' => 'Nueva ventana',
|
||||
'insert_collapsible' => 'Insertar bloque plegable',
|
||||
'open_link_new' => 'Ventana nueva',
|
||||
'insert_collapsible' => 'Insertar bloque desplegable',
|
||||
'collapsible_unwrap' => 'Desplegar',
|
||||
'edit_label' => 'Editar etiqueta',
|
||||
'toggle_open_closed' => 'Abrir/Cerrar',
|
||||
'collapsible_edit' => 'Editar bloque plegable',
|
||||
'toggle_open_closed' => 'Alternar Abrir/Cerrar',
|
||||
'collapsible_edit' => 'Editar bloque desplegable',
|
||||
'toggle_label' => 'Cambiar etiqueta',
|
||||
|
||||
// About view
|
||||
@@ -158,7 +158,7 @@ return [
|
||||
'about_title' => 'Acerca del editor WYSIWYG',
|
||||
'editor_license' => 'Licencia del editor y derechos de autor',
|
||||
'editor_tiny_license' => 'Este editor se construye usando :tinyLink que se proporciona bajo una licencia LGPL v2.1.',
|
||||
'editor_tiny_license_link' => 'Aquí encontrará los detalles de los derechos de autor y la licencia de TinyMCE.',
|
||||
'editor_tiny_license_link' => 'Aquí se muestran los detalles de los derechos de autor y la licencia de TinyMCE.',
|
||||
'save_continue' => 'Guardar Página y Continuar',
|
||||
'callouts_cycle' => '(Siga presionando para alternar entre tipos)',
|
||||
'link_selector' => 'Enlace a contenido',
|
||||
|
||||
@@ -208,7 +208,7 @@ return [
|
||||
'pages_editor_switch_consider_following' => 'Considere lo siguiente cuando cambie de editor:',
|
||||
'pages_editor_switch_consideration_a' => 'Una vez guardado, el nuevo editor será utilizado por todos los usuarios nuevos, incluyendo aquellos que quizás no tengan permisos para cambiar su editor.',
|
||||
'pages_editor_switch_consideration_b' => 'Esto puede llevar a una pérdida de detalle y sintaxis en ciertas circunstancias.',
|
||||
'pages_editor_switch_consideration_c' => 'Cambios en etiquetas o en el registro de cambios, realizados desde el último guardado, no persistirán a través de este cambio.',
|
||||
'pages_editor_switch_consideration_c' => 'Cambios en la etiqueta o en el registro de cambios, realizados desde la última vez que se guardan, no persistirán a través de este cambio.',
|
||||
'pages_save' => 'Guardar página',
|
||||
'pages_title' => 'Título de página',
|
||||
'pages_name' => 'Nombre de página',
|
||||
@@ -361,10 +361,10 @@ return [
|
||||
'convert_to_shelf_contents_desc' => 'Puedes convertir este libro a un nuevo estante con el mismo contenido. Los capítulos contenidos en este libro se convertirán en libros nuevos. Si este libro contiene alguna página, que no esté en un capítulo, este libro será renombrado y contendrá tales páginas, y este libro pasará a formar parte del nuevo estante.',
|
||||
'convert_to_shelf_permissions_desc' => 'Cualquier permiso establecido en este libro será copiado al nuevo estante y a todos los nuevos libros que no tengan sus propios permisos configurados. Tenga en cuenta que los permisos de los estantes no se aplican automáticamente sobre el contenido en su interior, como lo hacen para los libros.',
|
||||
'convert_book' => 'Convertir Libro',
|
||||
'convert_book_confirm' => '¿Está seguro de que desea borrar este libro?',
|
||||
'convert_undo_warning' => 'Esto no puede revertirse de forma sencilla.',
|
||||
'convert_book_confirm' => '¿Está seguro de que desea convertir este libro?',
|
||||
'convert_undo_warning' => 'Esto no se puede deshacer de forma sencilla.',
|
||||
'convert_to_book' => 'Convertir a Libro',
|
||||
'convert_to_book_desc' => 'Puede convertir este capítulo en un nuevo libro con el mismo contenido. Cualquier permiso establecido en este capítulo será copiado al nuevo libro pero cualquier permiso heredado, del libro padre, no se copiará lo que podría conducir a un cambio de control de acceso.',
|
||||
'convert_to_book_desc' => 'Puede convertir este capítulo en un nuevo libro con el mismo contenido. Cualquier permiso establecido en este capítulo será copiado al nuevo libro pero cualquier permiso heredado, del libro padre, no se copiará lo que podría derivar en un cambio en el control de acceso.',
|
||||
'convert_chapter' => 'Convertir Capítulo',
|
||||
'convert_chapter_confirm' => '¿Estás seguro de que quieres convertir este capítulo?',
|
||||
'convert_chapter_confirm' => '¿Está seguro de que quiere convertir este capítulo?',
|
||||
];
|
||||
|
||||
@@ -28,8 +28,8 @@ return [
|
||||
// Books
|
||||
'book_create' => 'a créé un livre',
|
||||
'book_create_notification' => 'Livre créé avec succès',
|
||||
'book_create_from_chapter' => 'converted chapter to book',
|
||||
'book_create_from_chapter_notification' => 'Chapter successfully converted to a book',
|
||||
'book_create_from_chapter' => 'chapitre converti en livre',
|
||||
'book_create_from_chapter_notification' => 'Chapitre converti en livre avec succès',
|
||||
'book_update' => 'a modifié le livre',
|
||||
'book_update_notification' => 'Livre modifié avec succès',
|
||||
'book_delete' => 'a supprimé un livre',
|
||||
@@ -40,8 +40,8 @@ return [
|
||||
// Bookshelves
|
||||
'bookshelf_create' => 'a créé l\'étagère',
|
||||
'bookshelf_create_notification' => 'Étagère créée avec succès',
|
||||
'bookshelf_create_from_book' => 'converted book to bookshelf',
|
||||
'bookshelf_create_from_book_notification' => 'Book successfully converted to a shelf',
|
||||
'bookshelf_create_from_book' => 'livre converti en étagère',
|
||||
'bookshelf_create_from_book_notification' => 'Livre converti en étagère avec succès',
|
||||
'bookshelf_update' => 'a modifié l\'étagère',
|
||||
'bookshelf_update_notification' => 'Étagère modifiée avec succès',
|
||||
'bookshelf_delete' => 'a supprimé l\'étagère',
|
||||
|
||||
@@ -39,9 +39,9 @@ return [
|
||||
'register_success' => 'Merci pour votre inscription. Vous êtes maintenant inscrit(e) et connecté(e)',
|
||||
|
||||
// Login auto-initiation
|
||||
'auto_init_starting' => 'Attempting Login',
|
||||
'auto_init_starting_desc' => 'We\'re contacting your authentication system to start the login process. If there\'s no progress after 5 seconds you can try clicking the link below.',
|
||||
'auto_init_start_link' => 'Proceed with authentication',
|
||||
'auto_init_starting' => 'Tentative de connexion',
|
||||
'auto_init_starting_desc' => 'Nous contactons votre système d\'authentification pour démarrer le processus de connexion. S\'il n\'y a pas de progrès après 5 secondes, vous pouvez essayer de cliquer sur le lien ci-dessous.',
|
||||
'auto_init_start_link' => 'Procéder à l\'authentification',
|
||||
|
||||
// Password Reset
|
||||
'reset_password' => 'Réinitialiser le mot de passe',
|
||||
|
||||
@@ -357,14 +357,14 @@ return [
|
||||
'copy_consider_access' => 'Un changement d\'emplacement, de propriétaire ou d\'autorisation peut rendre ce contenu accessible à ceux précédemment sans accès.',
|
||||
|
||||
// Conversions
|
||||
'convert_to_shelf' => 'Convert to Shelf',
|
||||
'convert_to_shelf_contents_desc' => 'You can convert this book to a new shelf with the same contents. Chapters contained within this book will be converted to new books. If this book contains any pages, that are not in a chapter, this book will be renamed and contain such pages, and this book will become part of the new shelf.',
|
||||
'convert_to_shelf_permissions_desc' => 'Any permissions set on this book will be copied to the new shelf and to all new child books that don\'t have their own permissions enforced. Note that permissions on shelves do not auto-cascade to content within, as they do for books.',
|
||||
'convert_book' => 'Convert Book',
|
||||
'convert_book_confirm' => 'Are you sure you want to convert this book?',
|
||||
'convert_undo_warning' => 'This cannot be as easily undone.',
|
||||
'convert_to_book' => 'Convert to Book',
|
||||
'convert_to_book_desc' => 'You can convert this chapter to a new book with the same contents. Any permissions set on this chapter will be copied to the new book but any inherited permissions, from the parent book, will not be copied which could lead to a change of access control.',
|
||||
'convert_chapter' => 'Convert Chapter',
|
||||
'convert_chapter_confirm' => 'Are you sure you want to convert this chapter?',
|
||||
'convert_to_shelf' => 'Convertir en étagère',
|
||||
'convert_to_shelf_contents_desc' => 'Vous pouvez convertir ce livre en une nouvelle étagère avec le même contenu. Les chapitres contenus dans ce livre seront convertis en nouveaux livres. Si ce livre contient des pages, qui ne sont pas dans un chapitre, ce livre sera renommé et contiendra ces pages, et ce livre fera partie de la nouvelle étagère.',
|
||||
'convert_to_shelf_permissions_desc' => 'Toutes les autorisations définies sur ce livre seront copiées sur la nouvelle étagère et sur tous les nouveaux livres enfants qui n\'ont pas leurs propres permissions appliquées. Notez que les permissions sur les étagères ne font pas automatiquement cascade au contenu intérieur, comme elles le font pour les livres.',
|
||||
'convert_book' => 'Convertir le livre',
|
||||
'convert_book_confirm' => 'Êtes-vous sûr(e) de vouloir convertir ce livre ?',
|
||||
'convert_undo_warning' => 'Cela ne peut pas être facilement annulé.',
|
||||
'convert_to_book' => 'Convertir en livre',
|
||||
'convert_to_book_desc' => 'Vous pouvez convertir ce chapitre en un nouveau livre avec le même contenu. Toutes les permissions définies dans ce chapitre seront copiées dans le nouveau livre mais toutes les permissions héritées du livre parent ne seront pas copiés, ce qui pourrait conduire à un changement de contrôle d\'accès.',
|
||||
'convert_chapter' => 'Convertir le chapitre',
|
||||
'convert_chapter_confirm' => 'Êtes-vous sûr(e) de vouloir convertir ce chapitre ?',
|
||||
];
|
||||
|
||||
@@ -28,8 +28,8 @@ return [
|
||||
// Books
|
||||
'book_create' => 'ha creato il libro',
|
||||
'book_create_notification' => 'Libro creato con successo',
|
||||
'book_create_from_chapter' => 'converted chapter to book',
|
||||
'book_create_from_chapter_notification' => 'Chapter successfully converted to a book',
|
||||
'book_create_from_chapter' => 'convertito da capitolo a libro',
|
||||
'book_create_from_chapter_notification' => 'Capitolo convertito con successo in libro',
|
||||
'book_update' => 'ha aggiornato il libro',
|
||||
'book_update_notification' => 'Libro aggiornato con successo',
|
||||
'book_delete' => 'ha eliminato il libro',
|
||||
@@ -40,8 +40,8 @@ return [
|
||||
// Bookshelves
|
||||
'bookshelf_create' => 'libreria creata',
|
||||
'bookshelf_create_notification' => 'Libreria creata con successo',
|
||||
'bookshelf_create_from_book' => 'converted book to bookshelf',
|
||||
'bookshelf_create_from_book_notification' => 'Book successfully converted to a shelf',
|
||||
'bookshelf_create_from_book' => 'libro convertito in libreria',
|
||||
'bookshelf_create_from_book_notification' => 'Libro convertito con successo in libreria',
|
||||
'bookshelf_update' => 'ha aggiornato la libreria',
|
||||
'bookshelf_update_notification' => 'Libreria aggiornata con successo',
|
||||
'bookshelf_delete' => 'ha eliminato la libreria',
|
||||
|
||||
@@ -39,9 +39,9 @@ return [
|
||||
'register_success' => 'Grazie per la registrazione! Sei registrato e loggato.',
|
||||
|
||||
// Login auto-initiation
|
||||
'auto_init_starting' => 'Attempting Login',
|
||||
'auto_init_starting_desc' => 'We\'re contacting your authentication system to start the login process. If there\'s no progress after 5 seconds you can try clicking the link below.',
|
||||
'auto_init_start_link' => 'Proceed with authentication',
|
||||
'auto_init_starting' => 'Tentativo di accesso',
|
||||
'auto_init_starting_desc' => 'Stiamo contattando il vostro sistema di autenticazione per avviare il processo di login. Se dopo 5 secondi non si verifica alcun progresso, si può provare a fare clic sul link sottostante.',
|
||||
'auto_init_start_link' => 'Procedi con l\'autenticazione',
|
||||
|
||||
// Password Reset
|
||||
'reset_password' => 'Reimposta Password',
|
||||
|
||||
@@ -357,14 +357,14 @@ return [
|
||||
'copy_consider_access' => 'Un cambiamento di luogo, di proprietario o di autorizzazioni può far sì che questo contenuto sia accessibile a chi prima non aveva accesso.',
|
||||
|
||||
// Conversions
|
||||
'convert_to_shelf' => 'Convert to Shelf',
|
||||
'convert_to_shelf_contents_desc' => 'You can convert this book to a new shelf with the same contents. Chapters contained within this book will be converted to new books. If this book contains any pages, that are not in a chapter, this book will be renamed and contain such pages, and this book will become part of the new shelf.',
|
||||
'convert_to_shelf_permissions_desc' => 'Any permissions set on this book will be copied to the new shelf and to all new child books that don\'t have their own permissions enforced. Note that permissions on shelves do not auto-cascade to content within, as they do for books.',
|
||||
'convert_book' => 'Convert Book',
|
||||
'convert_book_confirm' => 'Are you sure you want to convert this book?',
|
||||
'convert_undo_warning' => 'This cannot be as easily undone.',
|
||||
'convert_to_book' => 'Convert to Book',
|
||||
'convert_to_book_desc' => 'You can convert this chapter to a new book with the same contents. Any permissions set on this chapter will be copied to the new book but any inherited permissions, from the parent book, will not be copied which could lead to a change of access control.',
|
||||
'convert_chapter' => 'Convert Chapter',
|
||||
'convert_chapter_confirm' => 'Are you sure you want to convert this chapter?',
|
||||
'convert_to_shelf' => 'Converti in Libreria',
|
||||
'convert_to_shelf_contents_desc' => 'È possibile convertire questo libro in una nuova libreria con gli stessi contenuti. I capitoli contenuti in questo libro saranno convertiti in nuovi libri. Se il libro contiene pagine che non fanno parte di un capitolo, questo libro verrà rinominato e conterrà tali pagine e diventerà parte della nuova libreria.',
|
||||
'convert_to_shelf_permissions_desc' => 'Tutti i permessi impostati su questo libro saranno copiati sulla nuova libreria e su tutti i nuovi libri figli che non hanno i loro permessi applicati. Si noti che i permessi delle librerie non si trasmettono automaticamente ai contenuti al loro interno, come avviene per i libri.',
|
||||
'convert_book' => 'Converti Libro',
|
||||
'convert_book_confirm' => 'Sei sicuro di voler convertire questo libro?',
|
||||
'convert_undo_warning' => 'Questo non può essere annullato con la stessa facilità.',
|
||||
'convert_to_book' => 'Converti in libro',
|
||||
'convert_to_book_desc' => 'È possibile convertire questo capitolo in un nuovo libro con gli stessi contenuti. Tutti i permessi impostati su questo capitolo saranno copiati nel nuovo libro, ma i permessi ereditati dal libro principale non saranno copiati, il che potrebbe portare a una modifica del controllo degli accessi.',
|
||||
'convert_chapter' => 'Converti Capitolo',
|
||||
'convert_chapter_confirm' => 'Sei sicuro di voler convertire questo capitolo?',
|
||||
];
|
||||
|
||||
@@ -28,8 +28,8 @@ return [
|
||||
// Books
|
||||
'book_create' => 'がブックを作成:',
|
||||
'book_create_notification' => 'ブックを作成しました',
|
||||
'book_create_from_chapter' => 'converted chapter to book',
|
||||
'book_create_from_chapter_notification' => 'Chapter successfully converted to a book',
|
||||
'book_create_from_chapter' => 'がチャプターをブックに変換:',
|
||||
'book_create_from_chapter_notification' => 'チャプターがブックへ正常に変換されました',
|
||||
'book_update' => 'がブックを更新:',
|
||||
'book_update_notification' => 'ブックを更新しました',
|
||||
'book_delete' => 'がブックを削除:',
|
||||
@@ -40,8 +40,8 @@ return [
|
||||
// Bookshelves
|
||||
'bookshelf_create' => 'が本棚を作成:',
|
||||
'bookshelf_create_notification' => '本棚を作成しました',
|
||||
'bookshelf_create_from_book' => 'converted book to bookshelf',
|
||||
'bookshelf_create_from_book_notification' => 'Book successfully converted to a shelf',
|
||||
'bookshelf_create_from_book' => 'がブックを本棚に変換:',
|
||||
'bookshelf_create_from_book_notification' => 'ブックが本棚へ正常に変換されました',
|
||||
'bookshelf_update' => 'が本棚を更新:',
|
||||
'bookshelf_update_notification' => '本棚を更新しました',
|
||||
'bookshelf_delete' => 'が本棚を削除:',
|
||||
|
||||
@@ -47,8 +47,8 @@ return [
|
||||
'previous' => '前へ',
|
||||
'filter_active' => '有効なフィルター:',
|
||||
'filter_clear' => 'フィルターを解除',
|
||||
'download' => 'Download',
|
||||
'open_in_tab' => 'Open in Tab',
|
||||
'download' => 'ダウンロード',
|
||||
'open_in_tab' => 'タブで開く',
|
||||
|
||||
// Sort Options
|
||||
'sort_options' => '並べ替えオプション',
|
||||
|
||||
@@ -357,14 +357,14 @@ return [
|
||||
'copy_consider_access' => '場所、所有者または権限を変更すると、以前アクセスできなかったユーザーがこのコンテンツにアクセスできるようになる可能性があります。',
|
||||
|
||||
// Conversions
|
||||
'convert_to_shelf' => 'Convert to Shelf',
|
||||
'convert_to_shelf_contents_desc' => 'You can convert this book to a new shelf with the same contents. Chapters contained within this book will be converted to new books. If this book contains any pages, that are not in a chapter, this book will be renamed and contain such pages, and this book will become part of the new shelf.',
|
||||
'convert_to_shelf_permissions_desc' => 'Any permissions set on this book will be copied to the new shelf and to all new child books that don\'t have their own permissions enforced. Note that permissions on shelves do not auto-cascade to content within, as they do for books.',
|
||||
'convert_book' => 'Convert Book',
|
||||
'convert_book_confirm' => 'Are you sure you want to convert this book?',
|
||||
'convert_undo_warning' => 'This cannot be as easily undone.',
|
||||
'convert_to_book' => 'Convert to Book',
|
||||
'convert_to_book_desc' => 'You can convert this chapter to a new book with the same contents. Any permissions set on this chapter will be copied to the new book but any inherited permissions, from the parent book, will not be copied which could lead to a change of access control.',
|
||||
'convert_chapter' => 'Convert Chapter',
|
||||
'convert_chapter_confirm' => 'Are you sure you want to convert this chapter?',
|
||||
'convert_to_shelf' => '本棚に変換',
|
||||
'convert_to_shelf_contents_desc' => 'このブックを同じ内容の新しい棚に変換できます。このブックに含まれるチャプターは新しいブックに変換されます。このブックにチャプター内にないページが含まれている場合、このブックは名前が変更され、そのようなページを含む新しい本棚の一部となります。',
|
||||
'convert_to_shelf_permissions_desc' => 'このブックに設定されているすべての権限は、新しい本棚と、独自の権限が適用されていないすべての新しい子ブックにコピーされます。本棚の権限はブックの場合のように、内部のコンテンツに自動的に継承されないことに注意してください。',
|
||||
'convert_book' => 'ブックを変換',
|
||||
'convert_book_confirm' => 'このブックを変換してもよろしいですか?',
|
||||
'convert_undo_warning' => 'これは簡単には元に戻せません。',
|
||||
'convert_to_book' => 'ブックに変換',
|
||||
'convert_to_book_desc' => 'このチャプターを同じ内容の新しいブックに変換できます。このチャプターで設定された権限は新しいブックにコピーされますが、親ブックから継承された権限はコピーされないため、アクセス制御が変更される可能性があります。',
|
||||
'convert_chapter' => 'チャプターを変換',
|
||||
'convert_chapter_confirm' => 'このチャプターを変換してもよろしいですか?',
|
||||
];
|
||||
|
||||
@@ -39,9 +39,9 @@ return [
|
||||
'register_success' => 'Dziękujemy za rejestrację! Zostałeś zalogowany automatycznie.',
|
||||
|
||||
// Login auto-initiation
|
||||
'auto_init_starting' => 'Attempting Login',
|
||||
'auto_init_starting_desc' => 'We\'re contacting your authentication system to start the login process. If there\'s no progress after 5 seconds you can try clicking the link below.',
|
||||
'auto_init_start_link' => 'Proceed with authentication',
|
||||
'auto_init_starting' => 'Próba logowania',
|
||||
'auto_init_starting_desc' => 'Łączymy się z twoim systemem uwierzytelniania w celu rozpoczęcia procesu logowania. Jeśli po 5 sekundach nie ma żadnych postępów, możesz spróbować kliknąć poniższy link.',
|
||||
'auto_init_start_link' => 'Kontynuuj uwierzytelnianie',
|
||||
|
||||
// Password Reset
|
||||
'reset_password' => 'Resetowanie hasła',
|
||||
@@ -64,8 +64,8 @@ return [
|
||||
|
||||
'email_not_confirmed' => 'Adres e-mail nie został potwierdzony',
|
||||
'email_not_confirmed_text' => 'Twój adres e-mail nie został jeszcze potwierdzony.',
|
||||
'email_not_confirmed_click_link' => 'Aby potwierdzić swoje konto kliknij w link wysłany w wiadomości po rejestracji.',
|
||||
'email_not_confirmed_resend' => 'Jeśli wiadomość do Ciebie nie dotarła możesz wysłać ją ponownie wypełniając formularz poniżej.',
|
||||
'email_not_confirmed_click_link' => 'Aby potwierdzić swoje konto, kliknij link wysłany w wiadomości po rejestracji.',
|
||||
'email_not_confirmed_resend' => 'Jeśli wiadomość do Ciebie nie dotarła, możesz wysłać ją ponownie, wypełniając formularz poniżej.',
|
||||
'email_not_confirmed_resend_button' => 'Wyślij ponownie wiadomość z potwierdzeniem',
|
||||
|
||||
// User Invite
|
||||
|
||||
@@ -247,7 +247,7 @@ return [
|
||||
'pages_permissions_active' => 'Uprawnienia strony są aktywne',
|
||||
'pages_initial_revision' => 'Pierwsze wydanie',
|
||||
'pages_initial_name' => 'Nowa strona',
|
||||
'pages_editing_draft_notification' => 'Edytujesz obecnie wersje roboczą, która była ostatnio zapisana :timeDiff.',
|
||||
'pages_editing_draft_notification' => 'Edytujesz obecnie wersję roboczą, która była ostatnio zapisana :timeDiff.',
|
||||
'pages_draft_edited_notification' => 'Od tego czasu ta strona była zmieniana. Zalecane jest odrzucenie tej wersji roboczej.',
|
||||
'pages_draft_page_changed_since_creation' => 'Ta strona została zaktualizowana od czasu utworzenia tego szkicu. Zaleca się, aby odrzucić ten szkic lub nie nadpisywać żadnych zmian na stronie.',
|
||||
'pages_draft_edit_active' => [
|
||||
@@ -358,7 +358,7 @@ return [
|
||||
|
||||
// Conversions
|
||||
'convert_to_shelf' => 'Konwertuj na półkę',
|
||||
'convert_to_shelf_contents_desc' => 'Możesz przekonwertować tę książkę do nowej półki z tą samą zawartością. Rozdziały zawarte w tej książce zostaną przekonwertowane na nowe książki. Jeśli ta książka zawiera jakieś strony, które nie znajdują się w rozdziale, wtedy nazwa tej książki zostanie zmieniona i będzie ona zawierać te strony, a sama książka stanie się częścią nowej półki.',
|
||||
'convert_to_shelf_contents_desc' => 'Możesz skonwertować tę książkę do nowej półki z tą samą zawartością. Rozdziały zawarte w tej książce zostaną skonwertowane na nowe książki. Jeśli ta książka zawiera jakieś strony, które nie znajdują się w rozdziale, wtedy nazwa tej książki zostanie zmieniona i będzie ona zawierać te strony, a sama książka stanie się częścią nowej półki.',
|
||||
'convert_to_shelf_permissions_desc' => 'Wszelkie uprawnienia ustawione w tej książce zostaną skopiowane do nowej półki i do wszystkich nowych książek tej półki, które nie mają własnych uprawnień. Zauważ, że uprawnienia na półkach nie są automatycznie kaskadowane do ich zawartości, tak jak to ma miejsce w przypadku książek.',
|
||||
'convert_book' => 'Konwertuj książkę',
|
||||
'convert_book_confirm' => 'Czy na pewno chcesz skonwertować tę książkę?',
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
return [
|
||||
|
||||
// Pages
|
||||
'page_create' => 'Создать страницу',
|
||||
'page_create' => 'создал страницу',
|
||||
'page_create_notification' => 'Страница успешно создана',
|
||||
'page_update' => 'обновил страницу',
|
||||
'page_update_notification' => 'Страница успешно обновлена',
|
||||
@@ -28,8 +28,8 @@ return [
|
||||
// Books
|
||||
'book_create' => 'создал книгу',
|
||||
'book_create_notification' => 'Книга успешно создана',
|
||||
'book_create_from_chapter' => 'converted chapter to book',
|
||||
'book_create_from_chapter_notification' => 'Chapter successfully converted to a book',
|
||||
'book_create_from_chapter' => 'преобразовал главу в книгу',
|
||||
'book_create_from_chapter_notification' => 'Глава успешно преобразована в книгу',
|
||||
'book_update' => 'обновил книгу',
|
||||
'book_update_notification' => 'Книга успешно обновлена',
|
||||
'book_delete' => 'удалил книгу',
|
||||
@@ -40,8 +40,8 @@ return [
|
||||
// Bookshelves
|
||||
'bookshelf_create' => 'создал полку',
|
||||
'bookshelf_create_notification' => 'Полка успешно создана',
|
||||
'bookshelf_create_from_book' => 'converted book to bookshelf',
|
||||
'bookshelf_create_from_book_notification' => 'Book successfully converted to a shelf',
|
||||
'bookshelf_create_from_book' => 'преобразовать книгу в полку',
|
||||
'bookshelf_create_from_book_notification' => 'Книга успешно преобразована в полку',
|
||||
'bookshelf_update' => 'обновил полку',
|
||||
'bookshelf_update_notification' => 'Полка успешно обновлена',
|
||||
'bookshelf_delete' => 'удалил полку',
|
||||
|
||||
@@ -39,9 +39,9 @@ return [
|
||||
'register_success' => 'Спасибо за регистрацию! Регистрация и вход в систему выполнены.',
|
||||
|
||||
// Login auto-initiation
|
||||
'auto_init_starting' => 'Attempting Login',
|
||||
'auto_init_starting_desc' => 'We\'re contacting your authentication system to start the login process. If there\'s no progress after 5 seconds you can try clicking the link below.',
|
||||
'auto_init_start_link' => 'Proceed with authentication',
|
||||
'auto_init_starting' => 'Попытка входа',
|
||||
'auto_init_starting_desc' => 'Мы связываемся с вашей системой аутентификации, для процесса входа. Если через 5 секунд ничего не произошло, вы можете попробовать нажать на ссылку ниже.',
|
||||
'auto_init_start_link' => 'Повторить аутентификацию',
|
||||
|
||||
// Password Reset
|
||||
'reset_password' => 'Сброс пароля',
|
||||
|
||||
@@ -93,7 +93,7 @@ return [
|
||||
'cell_properties_title' => 'Свойства ячейки',
|
||||
'cell_type' => 'Тип ячейки',
|
||||
'cell_type_cell' => 'Ячейка',
|
||||
'cell_scope' => 'Scope',
|
||||
'cell_scope' => 'Область охвата',
|
||||
'cell_type_header' => 'Заголовок ячейки',
|
||||
'merge_cells' => 'Объединить ячейки',
|
||||
'split_cell' => 'Разделить ячейку',
|
||||
@@ -104,8 +104,8 @@ return [
|
||||
'border_width' => 'Ширина границы',
|
||||
'border_style' => 'Стиль границы',
|
||||
'border_color' => 'Цвет границы',
|
||||
'row_properties' => 'Свойства ячейки',
|
||||
'row_properties_title' => 'Свойства ячейки',
|
||||
'row_properties' => 'Свойства строки',
|
||||
'row_properties_title' => 'Свойства строки',
|
||||
'cut_row' => 'Вырезать строку',
|
||||
'copy_row' => 'Копировать строку',
|
||||
'paste_row_before' => 'Вставить строку выше',
|
||||
@@ -122,16 +122,16 @@ return [
|
||||
'cell_padding' => 'Свойство cellpadding',
|
||||
'cell_spacing' => 'Свойство cellspacing',
|
||||
'caption' => 'Подпись',
|
||||
'show_caption' => 'Показать подпись',
|
||||
'show_caption' => 'Показать',
|
||||
'constrain' => 'Сохранять пропорции',
|
||||
'cell_border_solid' => 'Сплошная',
|
||||
'cell_border_dotted' => 'Точками',
|
||||
'cell_border_dashed' => 'Пунктирная',
|
||||
'cell_border_double' => 'Двойная сплошная',
|
||||
'cell_border_groove' => 'Groove',
|
||||
'cell_border_ridge' => 'Ridge',
|
||||
'cell_border_inset' => 'Inset',
|
||||
'cell_border_outset' => 'Outset',
|
||||
'cell_border_groove' => 'Канавка',
|
||||
'cell_border_ridge' => 'Хребет',
|
||||
'cell_border_inset' => 'Вставка',
|
||||
'cell_border_outset' => 'Начало',
|
||||
'cell_border_none' => 'Нет',
|
||||
'cell_border_hidden' => 'Прозрачная',
|
||||
|
||||
|
||||
@@ -357,14 +357,14 @@ return [
|
||||
'copy_consider_access' => 'Изменение положения, владельца или разрешений может привести к тому, что контент будет доступен пользователям, у которых не было доступа ранее.',
|
||||
|
||||
// Conversions
|
||||
'convert_to_shelf' => 'Convert to Shelf',
|
||||
'convert_to_shelf_contents_desc' => 'You can convert this book to a new shelf with the same contents. Chapters contained within this book will be converted to new books. If this book contains any pages, that are not in a chapter, this book will be renamed and contain such pages, and this book will become part of the new shelf.',
|
||||
'convert_to_shelf_permissions_desc' => 'Any permissions set on this book will be copied to the new shelf and to all new child books that don\'t have their own permissions enforced. Note that permissions on shelves do not auto-cascade to content within, as they do for books.',
|
||||
'convert_book' => 'Convert Book',
|
||||
'convert_book_confirm' => 'Are you sure you want to convert this book?',
|
||||
'convert_undo_warning' => 'This cannot be as easily undone.',
|
||||
'convert_to_book' => 'Convert to Book',
|
||||
'convert_to_book_desc' => 'You can convert this chapter to a new book with the same contents. Any permissions set on this chapter will be copied to the new book but any inherited permissions, from the parent book, will not be copied which could lead to a change of access control.',
|
||||
'convert_chapter' => 'Convert Chapter',
|
||||
'convert_chapter_confirm' => 'Are you sure you want to convert this chapter?',
|
||||
'convert_to_shelf' => 'Преобразовать в полку',
|
||||
'convert_to_shelf_contents_desc' => 'Вы можете превратить эту книгу в новую полку с тем же содержимым. Главы, содержащиеся в этой книге, будут преобразованы в новые книги. Если эта книга содержит какие-либо страницы, которых нет в главе, она будет переименована и будет содержать такие страницы, и эта книга станет частью новой полки.',
|
||||
'convert_to_shelf_permissions_desc' => 'Любые разрешения, установленные для этой книги, будут скопированы на новую полку и во все новые дочерние книги, для которых не применяются собственные разрешения. Обратите внимание, что разрешения на полки не применяются автоматически к содержимому внутри, как это происходит с книгами.',
|
||||
'convert_book' => 'Преобразовать книгу',
|
||||
'convert_book_confirm' => 'Вы уверены, что хотите преобразовать эту книгу?',
|
||||
'convert_undo_warning' => 'Это не отменяется простым способом.',
|
||||
'convert_to_book' => 'Преобразовать в книгу',
|
||||
'convert_to_book_desc' => 'Вы можете преобразовать эту главу в новую книгу с тем же содержанием. Любые разрешения, установленные в этой главе, будут скопированы в новую книгу, но любые унаследованные разрешения из родительской книги не будут скопированы, что может привести к изменению контроля доступа.',
|
||||
'convert_chapter' => 'Преобразовать главу',
|
||||
'convert_chapter_confirm' => 'Вы уверены, что хотите преобразовать эту главу?',
|
||||
];
|
||||
|
||||
@@ -28,8 +28,8 @@ return [
|
||||
// Books
|
||||
'book_create' => '创建了图书',
|
||||
'book_create_notification' => '图书已成功创建',
|
||||
'book_create_from_chapter' => 'converted chapter to book',
|
||||
'book_create_from_chapter_notification' => 'Chapter successfully converted to a book',
|
||||
'book_create_from_chapter' => '将章节转换为图书',
|
||||
'book_create_from_chapter_notification' => '章节已成功转换为图书',
|
||||
'book_update' => '更新了图书',
|
||||
'book_update_notification' => '图书已成功更新',
|
||||
'book_delete' => '删除了图书',
|
||||
@@ -40,8 +40,8 @@ return [
|
||||
// Bookshelves
|
||||
'bookshelf_create' => '创建了书架',
|
||||
'bookshelf_create_notification' => '书架已成功创建',
|
||||
'bookshelf_create_from_book' => 'converted book to bookshelf',
|
||||
'bookshelf_create_from_book_notification' => 'Book successfully converted to a shelf',
|
||||
'bookshelf_create_from_book' => '将图书转换为书架',
|
||||
'bookshelf_create_from_book_notification' => '图书已成功转换为书架',
|
||||
'bookshelf_update' => '更新了书架',
|
||||
'bookshelf_update_notification' => '书架已成功更新',
|
||||
'bookshelf_delete' => '删除了书架',
|
||||
|
||||
@@ -39,9 +39,9 @@ return [
|
||||
'register_success' => '感谢您注册:appName,您现在已经登录。',
|
||||
|
||||
// Login auto-initiation
|
||||
'auto_init_starting' => 'Attempting Login',
|
||||
'auto_init_starting_desc' => 'We\'re contacting your authentication system to start the login process. If there\'s no progress after 5 seconds you can try clicking the link below.',
|
||||
'auto_init_start_link' => 'Proceed with authentication',
|
||||
'auto_init_starting' => '尝试登录中',
|
||||
'auto_init_starting_desc' => '我们正在联系您的身份验证系统以启动登录过程。如果 5 秒后还没有进展,您可以尝试点击下面的链接。',
|
||||
'auto_init_start_link' => '继续进行身份验证',
|
||||
|
||||
// Password Reset
|
||||
'reset_password' => '重置密码',
|
||||
|
||||
@@ -357,14 +357,14 @@ return [
|
||||
'copy_consider_access' => '改变位置、所有者或权限可能会导致此内容被以前无法访问的人访问。',
|
||||
|
||||
// Conversions
|
||||
'convert_to_shelf' => 'Convert to Shelf',
|
||||
'convert_to_shelf_contents_desc' => 'You can convert this book to a new shelf with the same contents. Chapters contained within this book will be converted to new books. If this book contains any pages, that are not in a chapter, this book will be renamed and contain such pages, and this book will become part of the new shelf.',
|
||||
'convert_to_shelf_permissions_desc' => 'Any permissions set on this book will be copied to the new shelf and to all new child books that don\'t have their own permissions enforced. Note that permissions on shelves do not auto-cascade to content within, as they do for books.',
|
||||
'convert_book' => 'Convert Book',
|
||||
'convert_book_confirm' => 'Are you sure you want to convert this book?',
|
||||
'convert_undo_warning' => 'This cannot be as easily undone.',
|
||||
'convert_to_book' => 'Convert to Book',
|
||||
'convert_to_book_desc' => 'You can convert this chapter to a new book with the same contents. Any permissions set on this chapter will be copied to the new book but any inherited permissions, from the parent book, will not be copied which could lead to a change of access control.',
|
||||
'convert_chapter' => 'Convert Chapter',
|
||||
'convert_chapter_confirm' => 'Are you sure you want to convert this chapter?',
|
||||
'convert_to_shelf' => '转换为书架',
|
||||
'convert_to_shelf_contents_desc' => '你可以将这本书转换为具有相同内容的新书架。本书中的章节将被转换为图书。如果这本书包含任何不在章节分类中的页面,那么将会有一本图书被重命名并包含这些页面,这本书也将成为新书架的一部分。',
|
||||
'convert_to_shelf_permissions_desc' => '在这本书上设置的任何权限都将复制到所有未强制执行权限的新书架和新子图书上。请注意,书架上的权限不会像图书那样继承到内容物上。',
|
||||
'convert_book' => '转换图书',
|
||||
'convert_book_confirm' => '您确定要转换此图书吗?',
|
||||
'convert_undo_warning' => '这可不能轻易撤消。',
|
||||
'convert_to_book' => '转换为图书',
|
||||
'convert_to_book_desc' => '您可以将此章节转换为具有相同内容的新图书。此章节中设置的任何权限都将复制到新图书上,但从父图书继承的任何权限都不会被复制,这可能会导致访问控制发生变化。',
|
||||
'convert_chapter' => '转换章节',
|
||||
'convert_chapter_confirm' => '您确定要转换此章节吗?',
|
||||
];
|
||||
|
||||
@@ -14,7 +14,7 @@ return [
|
||||
'categories' => '类别',
|
||||
|
||||
// App Settings
|
||||
'app_customization' => '定制',
|
||||
'app_customization' => '个性化',
|
||||
'app_features_security' => '功能与安全',
|
||||
'app_name' => '站点名称',
|
||||
'app_name_desc' => '此名称将在网页头部和系统发送的电子邮件中显示。',
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
display: grid;
|
||||
grid-column-gap: $-l;
|
||||
grid-row-gap: $-l;
|
||||
> * {
|
||||
min-width: 0;
|
||||
}
|
||||
&.half {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
<div class="form-group entity-selector-container">
|
||||
<div component="entity-selector"
|
||||
refs="entity-selector-popup@selector"
|
||||
class="entity-selector {{$selectorSize ?? ''}}"
|
||||
option:entity-selector:entity-types="{{ $entityTypes ?? 'book,chapter,page' }}"
|
||||
option:entity-selector:entity-permission="{{ $entityPermission ?? 'view' }}">
|
||||
<input refs="entity-selector@input" type="hidden" name="{{$name}}" value="">
|
||||
<input refs="entity-selector@search entity-selector-popup@searchInput" type="text" placeholder="{{ trans('common.search') }}" @if($autofocus ?? false) autofocus @endif>
|
||||
<input refs="entity-selector@search" type="text" placeholder="{{ trans('common.search') }}" @if($autofocus ?? false) autofocus @endif>
|
||||
<div class="text-center loading" refs="entity-selector@loading">@include('common.loading-icon')</div>
|
||||
<div refs="entity-selector@results"></div>
|
||||
@if($showAdd ?? false)
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
<div>
|
||||
<h5>{{ trans('settings.categories') }}</h5>
|
||||
<nav class="active-link-list in-sidebar">
|
||||
<a href="{{ url('/settings/features') }}" class="{{ $category === 'features' ? 'active' : '' }}">@icon('star') Features & Security</a>
|
||||
<a href="{{ url('/settings/customization') }}" class="{{ $category === 'customization' ? 'active' : '' }}">@icon('palette') Customization</a>
|
||||
<a href="{{ url('/settings/registration') }}" class="{{ $category === 'registration' ? 'active' : '' }}">@icon('lock') Registration</a>
|
||||
<a href="{{ url('/settings/features') }}" class="{{ $category === 'features' ? 'active' : '' }}">@icon('star') {{ trans('settings.app_features_security') }}</a>
|
||||
<a href="{{ url('/settings/customization') }}" class="{{ $category === 'customization' ? 'active' : '' }}">@icon('palette') {{ trans('settings.app_customization') }}</a>
|
||||
<a href="{{ url('/settings/registration') }}" class="{{ $category === 'registration' ? 'active' : '' }}">@icon('lock') {{ trans('settings.reg_settings') }}</a>
|
||||
</nav>
|
||||
|
||||
<h5 class="mt-xl">{{ trans('settings.system_version') }}</h5>
|
||||
|
||||
@@ -54,4 +54,16 @@ class GroupSyncServiceTest extends TestCase
|
||||
$user = User::query()->find($user->id);
|
||||
$this->assertTrue($user->hasRole($role->id));
|
||||
}
|
||||
|
||||
public function test_external_auth_id_matches_ignoring_case()
|
||||
{
|
||||
$user = $this->getViewer();
|
||||
$role = Role::factory()->create(['display_name' => 'ABC123', 'external_auth_id' => 'WaRRioRs']);
|
||||
$this->assertFalse($user->hasRole($role->id));
|
||||
|
||||
(new GroupSyncService())->syncUserWithFoundGroups($user, ['wArriors', 'penguiNs'], false);
|
||||
|
||||
$user = User::query()->find($user->id);
|
||||
$this->assertTrue($user->hasRole($role->id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,33 @@ class BookTest extends TestCase
|
||||
$this->assertEquals('my-first-book', $books[1]->slug);
|
||||
}
|
||||
|
||||
public function test_create_sets_tags()
|
||||
{
|
||||
// Cheeky initial update to refresh slug
|
||||
$this->asEditor()->post('books', [
|
||||
'name' => 'My book with tags',
|
||||
'description' => 'A book with tags',
|
||||
'tags' => [
|
||||
[
|
||||
'name' => 'Category',
|
||||
'value' => 'Donkey Content',
|
||||
],
|
||||
[
|
||||
'name' => 'Level',
|
||||
'value' => '5',
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->where('name', '=', 'My book with tags')->firstOrFail();
|
||||
$tags = $book->tags()->get();
|
||||
|
||||
$this->assertEquals(2, $tags->count());
|
||||
$this->assertEquals('Donkey Content', $tags[0]->value);
|
||||
$this->assertEquals('Level', $tags[1]->name);
|
||||
}
|
||||
|
||||
public function test_update()
|
||||
{
|
||||
/** @var Book $book */
|
||||
@@ -74,6 +101,36 @@ class BookTest extends TestCase
|
||||
$resp->assertSee($newDesc);
|
||||
}
|
||||
|
||||
public function test_update_sets_tags()
|
||||
{
|
||||
/** @var Book $book */
|
||||
$book = Book::query()->first();
|
||||
|
||||
$this->assertEquals(0, $book->tags()->count());
|
||||
|
||||
// Cheeky initial update to refresh slug
|
||||
$this->asEditor()->put($book->getUrl(), [
|
||||
'name' => $book->name,
|
||||
'tags' => [
|
||||
[
|
||||
'name' => 'Category',
|
||||
'value' => 'Dolphin Content',
|
||||
],
|
||||
[
|
||||
'name' => 'Level',
|
||||
'value' => '5',
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
$book->refresh();
|
||||
$tags = $book->tags()->get();
|
||||
|
||||
$this->assertEquals(2, $tags->count());
|
||||
$this->assertEquals('Dolphin Content', $tags[0]->value);
|
||||
$this->assertEquals('Level', $tags[1]->name);
|
||||
}
|
||||
|
||||
public function test_delete()
|
||||
{
|
||||
$book = Book::query()->whereHas('pages')->whereHas('chapters')->first();
|
||||
|
||||
Reference in New Issue
Block a user