diff --git a/phpunit.xml b/phpunit.xml index 72e06a3fc..2e07cdbf8 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -22,6 +22,7 @@ <php> <env name="APP_ENV" value="testing"/> <env name="APP_DEBUG" value="false"/> + <env name="APP_LANG" value="en"/> <env name="CACHE_DRIVER" value="array"/> <env name="SESSION_DRIVER" value="array"/> <env name="QUEUE_DRIVER" value="sync"/> diff --git a/resources/lang/en/common.php b/resources/lang/en/common.php new file mode 100644 index 000000000..8daf0a1c8 --- /dev/null +++ b/resources/lang/en/common.php @@ -0,0 +1,16 @@ +<?php +return [ + + /** + * Buttons + */ + 'cancel' => 'Cancel', + 'confirm' => 'Confirm', + + + /** + * Form Labels + */ + 'name' => 'Name', + 'description' => 'Description', +]; \ No newline at end of file diff --git a/resources/lang/en/entities.php b/resources/lang/en/entities.php new file mode 100644 index 000000000..d832720b0 --- /dev/null +++ b/resources/lang/en/entities.php @@ -0,0 +1,75 @@ +<?php +return [ + + /** + * Shared + */ + 'recently_created' => 'Recently Created', + 'recently_update' => 'Recently Updated', + 'recently_viewed' => 'Recently Viewed', + 'recent_activity' => 'Recent Activity', + 'create_now' => 'Create one now', + 'edit' => 'Edit', + 'sort' => 'Sort', + 'move' => 'Move', + 'permissions' => 'Permissions', + 'delete' => 'Delete', + 'meta_created' => 'Created :timeLength', + 'meta_created_name' => 'Created :timeLength by :user', + 'meta_updated' => 'Updated :timeLength', + 'meta_updated_name' => 'Updated :timeLength by :user', + 'x_pages' => ':count Pages', + + /** + * Search + */ + 'search_results' => 'Search Results', + 'search_clear' => 'Clear Search', + + /** + * Books + */ + 'books' => 'Books', + 'books_empty' => 'No books have been created', + 'books_popular' => 'Popular Books', + 'books_popular_empty' => 'The most popular books will appear here.', + 'books_create' => 'Create New Book', + 'books_delete' => 'Delete Book', + 'books_delete_explain' => 'This will delete the book with the name \':bookName\', All pages and chapters will be removed.', + 'books_delete_confirmation' => 'Are you sure you want to delete this book?', + 'books_edit' => 'Edit Book', + 'books_form_book_name' => 'Book Name', + 'books_save' => 'Save Book', + 'books_permissions' => 'Book Permissions', + 'books_empty_contents' => 'No pages or chapters have been created for this book.', + 'books_empty_create_page' => 'Create a new page', + 'books_empty_or' => 'or', + 'books_empty_sort_current_book' => 'Sort the current book', + 'books_empty_add_chapter' => 'Add a chapter', + 'books_permissions_active' => 'Book Permissions Active', + 'books_search_this' => 'Search this book', + 'books_navigation' => 'Book Navigation', + + /** + * Chapters + */ + 'chapters_new' => 'New Chapter', + 'chapters_create' => 'Create New Chapter', + 'chapters_delete' => 'Delete Chapter', + 'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\', All pages will be removed + and added directly to the parent book.', + 'chapters_delete_confirm' => 'Are you sure you want to delete this chapter?', + 'chapters_edit' => 'Edit Chapter', + 'chapters_save' => 'Save Chapter', + 'chapters_move' => 'Move Chapter', + 'chapters_permissions' => 'Chapter Permissions', + 'chapters_empty' => 'No pages are currently in this chapter.', + 'chapters_permissions_active' => 'Chapter Permissions Active', + + /** + * Pages + */ + 'pages_new' => 'New Page', + 'pages_attachments' => 'Attachments', + 'pages_navigation' => 'Page Navigation', +]; \ No newline at end of file diff --git a/resources/views/auth/passwords/reset.blade.php b/resources/views/auth/passwords/reset.blade.php index fef9ad476..a463eef45 100644 --- a/resources/views/auth/passwords/reset.blade.php +++ b/resources/views/auth/passwords/reset.blade.php @@ -1,4 +1,4 @@ -1@extends('public') +@extends('public') @section('header-buttons') <a href="{{ baseUrl("/login") }}"><i class="zmdi zmdi-sign-in"></i>{{ trans('auth.log_in') }}</a> diff --git a/resources/views/books/create.blade.php b/resources/views/books/create.blade.php index 60f4f65bd..2c629e699 100644 --- a/resources/views/books/create.blade.php +++ b/resources/views/books/create.blade.php @@ -3,7 +3,7 @@ @section('content') <div class="container small" ng-non-bindable> - <h1>Create New Book</h1> + <h1>{{ trans('entities.books_create') }}</h1> <form action="{{ baseUrl("/books") }}" method="POST"> @include('books/form') </form> diff --git a/resources/views/books/delete.blade.php b/resources/views/books/delete.blade.php index 68f755131..b47cae2cc 100644 --- a/resources/views/books/delete.blade.php +++ b/resources/views/books/delete.blade.php @@ -3,15 +3,15 @@ @section('content') <div class="container small" ng-non-bindable> - <h1>Delete Book</h1> - <p>This will delete the book with the name '{{$book->name}}', All pages and chapters will be removed.</p> - <p class="text-neg">Are you sure you want to delete this book?</p> + <h1>{{ trans('entities.books_delete') }}</h1> + <p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p> + <p class="text-neg">{{ trans('entities.books_delete_confirmation') }}</p> <form action="{{$book->getUrl()}}" method="POST"> {!! csrf_field() !!} <input type="hidden" name="_method" value="DELETE"> - <a href="{{$book->getUrl()}}" class="button">Cancel</a> - <button type="submit" class="button neg">Confirm</button> + <a href="{{$book->getUrl()}}" class="button">{{ trans('common.cancel') }}</a> + <button type="submit" class="button neg">{{ trans('common.confirm') }}</button> </form> </div> diff --git a/resources/views/books/edit.blade.php b/resources/views/books/edit.blade.php index e67e6f459..2b9e376e7 100644 --- a/resources/views/books/edit.blade.php +++ b/resources/views/books/edit.blade.php @@ -3,7 +3,7 @@ @section('content') <div class="container small" ng-non-bindable> - <h1>Edit Book</h1> + <h1>{{ trans('entities.books_edit') }}</h1> <form action="{{ $book->getUrl() }}" method="POST"> <input type="hidden" name="_method" value="PUT"> @include('books/form', ['model' => $book]) diff --git a/resources/views/books/form.blade.php b/resources/views/books/form.blade.php index dc0fd0a3f..514abf42c 100644 --- a/resources/views/books/form.blade.php +++ b/resources/views/books/form.blade.php @@ -1,16 +1,16 @@ {{ csrf_field() }} <div class="form-group title-input"> - <label for="name">Book Name</label> + <label for="name">{{ trans('common.name') }}</label> @include('form/text', ['name' => 'name']) </div> <div class="form-group description-input"> - <label for="description">Description</label> + <label for="description">{{ trans('common.description') }}</label> @include('form/textarea', ['name' => 'description']) </div> <div class="form-group"> - <a href="{{ back()->getTargetUrl() }}" class="button muted">Cancel</a> - <button type="submit" class="button pos">Save Book</button> + <a href="{{ back()->getTargetUrl() }}" class="button muted">{{ trans('common.cancel') }}</a> + <button type="submit" class="button pos">{{ trans('entities.books_save') }}</button> </div> \ No newline at end of file diff --git a/resources/views/books/index.blade.php b/resources/views/books/index.blade.php index 91906e7b8..c090a127e 100644 --- a/resources/views/books/index.blade.php +++ b/resources/views/books/index.blade.php @@ -9,7 +9,7 @@ <div class="col-xs-11 faded"> <div class="action-buttons"> @if($currentUser->can('book-create-all')) - <a href="{{ baseUrl("/books/create") }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>Add new book</a> + <a href="{{ baseUrl("/books/create") }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.books_create') }}</a> @endif </div> </div> @@ -21,7 +21,7 @@ <div class="container" ng-non-bindable> <div class="row"> <div class="col-sm-7"> - <h1>Books</h1> + <h1>{{ trans('entities.books') }}</h1> @if(count($books) > 0) @foreach($books as $book) @include('books/list-item', ['book' => $book]) @@ -29,27 +29,27 @@ @endforeach {!! $books->render() !!} @else - <p class="text-muted">No books have been created.</p> + <p class="text-muted">{{ trans('entities.books_empty') }}</p> @if(userCan('books-create-all')) - <a href="{{ baseUrl("/books/create") }}" class="text-pos"><i class="zmdi zmdi-edit"></i>Create one now</a> + <a href="{{ baseUrl("/books/create") }}" class="text-pos"><i class="zmdi zmdi-edit"></i>{{ trans('entities.create_one_now') }}</a> @endif @endif </div> <div class="col-sm-4 col-sm-offset-1"> <div id="recents"> @if($recents) - <div class="margin-top large"> </div> - <h3>Recently Viewed</h3> + <div class="margin-top"> </div> + <h3>{{ trans('entities.recently_viewed') }}</h3> @include('partials/entity-list', ['entities' => $recents]) @endif </div> <div class="margin-top large"> </div> <div id="popular"> - <h3>Popular Books</h3> + <h3>{{ trans('entities.books_popular') }}</h3> @if(count($popular) > 0) @include('partials/entity-list', ['entities' => $popular]) @else - <p class="text-muted">The most popular books will appear here.</p> + <p class="text-muted">{{ trans('entities.books_popular_empty') }}</p> @endif </div> </div> diff --git a/resources/views/books/restrictions.blade.php b/resources/views/books/restrictions.blade.php index 7fdd3abef..f14042933 100644 --- a/resources/views/books/restrictions.blade.php +++ b/resources/views/books/restrictions.blade.php @@ -16,7 +16,7 @@ <div class="container" ng-non-bindable> - <h1>Book Permissions</h1> + <h1>{{ trans('entities.books_permissions') }}</h1> @include('form/restriction-form', ['model' => $book]) </div> diff --git a/resources/views/books/show.blade.php b/resources/views/books/show.blade.php index 129851d5e..6ae126c63 100644 --- a/resources/views/books/show.blade.php +++ b/resources/views/books/show.blade.php @@ -8,26 +8,26 @@ <div class="col-md-12"> <div class="action-buttons faded"> @if(userCan('page-create', $book)) - <a href="{{ $book->getUrl('/page/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i> New Page</a> + <a href="{{ $book->getUrl('/page/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.pages_new') }}</a> @endif @if(userCan('chapter-create', $book)) - <a href="{{ $book->getUrl('/chapter/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i> New Chapter</a> + <a href="{{ $book->getUrl('/chapter/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.chapters_new') }}</a> @endif @if(userCan('book-update', $book)) - <a href="{{$book->getEditUrl()}}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>Edit</a> + <a href="{{$book->getEditUrl()}}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>{{ trans('entities.edit') }}</a> @endif @if(userCan('book-update', $book) || userCan('restrictions-manage', $book) || userCan('book-delete', $book)) <div dropdown class="dropdown-container"> <a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a> <ul> @if(userCan('book-update', $book)) - <li><a href="{{ $book->getUrl('/sort') }}" class="text-primary"><i class="zmdi zmdi-sort"></i>Sort</a></li> + <li><a href="{{ $book->getUrl('/sort') }}" class="text-primary"><i class="zmdi zmdi-sort"></i>{{ trans('entities.sort') }}</a></li> @endif @if(userCan('restrictions-manage', $book)) - <li><a href="{{ $book->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>Permissions</a></li> + <li><a href="{{ $book->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.permissions') }}</a></li> @endif @if(userCan('book-delete', $book)) - <li><a href="{{ $book->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a></li> + <li><a href="{{ $book->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>{{ trans('entities.delete') }}</a></li> @endif </ul> </div> @@ -59,23 +59,19 @@ <hr> @endforeach @else - <p class="text-muted">No pages or chapters have been created for this book.</p> + <p class="text-muted">{{ trans('entities.books_empty_contents') }}</p> <p> - <a href="{{ $book->getUrl('/page/create') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>Create a new page</a> - <em class="text-muted">-or-</em> - <a href="{{ $book->getUrl('/chapter/create') }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>Add a chapter</a> + <a href="{{ $book->getUrl('/page/create') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.books_empty_create_page') }}</a> + <em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em> + <a href="{{ $book->getUrl('/chapter/create') }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>{{ trans('entities.books_empty_add_chapter') }}</a> </p> <hr> @endif - <p class="text-muted small"> - Created {{$book->created_at->diffForHumans()}} @if($book->createdBy) by <a href="{{ $book->createdBy->getProfileUrl() }}">{{$book->createdBy->name}}</a> @endif - <br> - Last Updated {{$book->updated_at->diffForHumans()}} @if($book->updatedBy) by <a href="{{ $book->updatedBy->getProfileUrl() }}">{{$book->updatedBy->name}}</a> @endif - </p> + @include('partials.entity-meta', ['entity' => $book]) </div> </div> <div class="search-results" ng-cloak ng-show="searching"> - <h3 class="text-muted">Search Results <a ng-if="searching" ng-click="clearSearch()" class="text-small"><i class="zmdi zmdi-close"></i>Clear Search</a></h3> + <h3 class="text-muted">{{ trans('entities.search_results') }} <a ng-if="searching" ng-click="clearSearch()" class="text-small"><i class="zmdi zmdi-close"></i>{{ trans('entities.search_clear') }}</a></h3> <div ng-if="!searchResults"> @include('partials/loading-icon') </div> @@ -90,21 +86,21 @@ @if($book->restricted) <p class="text-muted"> @if(userCan('restrictions-manage', $book)) - <a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Book Permissions Active</a> + <a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}</a> @else - <i class="zmdi zmdi-lock-outline"></i>Book Permissions Active + <i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }} @endif </p> @endif <div class="search-box"> <form ng-submit="searchBook($event)"> - <input ng-model="searchTerm" ng-change="checkSearchForm()" type="text" name="term" placeholder="Search This Book"> + <input ng-model="searchTerm" ng-change="checkSearchForm()" type="text" name="term" placeholder="{{ trans('entities.books_search_this') }}"> <button type="submit"><i class="zmdi zmdi-search"></i></button> <button ng-if="searching" ng-click="clearSearch()" type="button"><i class="zmdi zmdi-close"></i></button> </form> </div> <div class="activity anim fadeIn"> - <h3>Recent Activity</h3> + <h3>{{ trans('entities.recent_activity') }}</h3> @include('partials/activity-list', ['activity' => Activity::entityActivity($book, 20, 0)]) </div> </div> diff --git a/resources/views/chapters/create.blade.php b/resources/views/chapters/create.blade.php index b81cb15d7..afdbfa99d 100644 --- a/resources/views/chapters/create.blade.php +++ b/resources/views/chapters/create.blade.php @@ -3,7 +3,7 @@ @section('content') <div class="container small" ng-non-bindable> - <h1>Create New Chapter</h1> + <h1>{{ trans('entities.chapters_create') }}</h1> <form action="{{ $book->getUrl('/chapter/create') }}" method="POST"> @include('chapters/form') </form> diff --git a/resources/views/chapters/delete.blade.php b/resources/views/chapters/delete.blade.php index e9573f228..7005312c8 100644 --- a/resources/views/chapters/delete.blade.php +++ b/resources/views/chapters/delete.blade.php @@ -3,16 +3,15 @@ @section('content') <div class="container small" ng-non-bindable> - <h1>Delete Chapter</h1> - <p>This will delete the chapter with the name '{{$chapter->name}}', All pages will be removed - and added directly to the book.</p> - <p class="text-neg">Are you sure you want to delete this chapter?</p> + <h1>{{ trans('entities.chapters_delete') }}</h1> + <p>{{ trans('entities.chapters_delete_explain', ['chapterName' => $chapter->name]) }}</p> + <p class="text-neg">{{ trans('entities.chapters_delete_confirm') }}</p> <form action="{{ $chapter->getUrl() }}" method="POST"> {!! csrf_field() !!} <input type="hidden" name="_method" value="DELETE"> - <a href="{{ $chapter->getUrl() }}" class="button primary">Cancel</a> - <button type="submit" class="button neg">Confirm</button> + <a href="{{ $chapter->getUrl() }}" class="button primary">{{ trans('common.cancel') }}</a> + <button type="submit" class="button neg">{{ trans('common.confirm') }}</button> </form> </div> diff --git a/resources/views/chapters/edit.blade.php b/resources/views/chapters/edit.blade.php index 0363da96d..272543e67 100644 --- a/resources/views/chapters/edit.blade.php +++ b/resources/views/chapters/edit.blade.php @@ -3,7 +3,7 @@ @section('content') <div class="container small" ng-non-bindable> - <h1>Edit Chapter</h1> + <h1>{{ trans('entities.chapters_edit') }}</h1> <form action="{{ $chapter->getUrl() }}" method="POST"> <input type="hidden" name="_method" value="PUT"> @include('chapters/form', ['model' => $chapter]) diff --git a/resources/views/chapters/form.blade.php b/resources/views/chapters/form.blade.php index 70df4737a..54722a58a 100644 --- a/resources/views/chapters/form.blade.php +++ b/resources/views/chapters/form.blade.php @@ -2,16 +2,16 @@ {!! csrf_field() !!} <div class="form-group title-input"> - <label for="name">Chapter Name</label> + <label for="name">{{ trans('common.name') }}</label> @include('form/text', ['name' => 'name']) </div> <div class="form-group description-input"> - <label for="description">Description</label> + <label for="description">{{ trans('common.description') }}</label> @include('form/textarea', ['name' => 'description']) </div> <div class="form-group"> - <a href="{{ back()->getTargetUrl() }}" class="button muted">Cancel</a> - <button type="submit" class="button pos">Save Chapter</button> + <a href="{{ back()->getTargetUrl() }}" class="button muted">{{ trans('common.cancel') }}</a> + <button type="submit" class="button pos">{{ trans('entities.chapters_save') }}</button> </div> diff --git a/resources/views/chapters/list-item.blade.php b/resources/views/chapters/list-item.blade.php index f70e59244..8487a63a3 100644 --- a/resources/views/chapters/list-item.blade.php +++ b/resources/views/chapters/list-item.blade.php @@ -17,7 +17,7 @@ @endif @if(!isset($hidePages) && count($chapter->pages) > 0) - <p class="text-muted chapter-toggle"><i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ count($chapter->pages) }} Pages</span></p> + <p class="text-muted chapter-toggle"><i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ trans('entities.x_pages', ['count' => $chapter->pages->count()]) }}</span></p> <div class="inset-list"> @foreach($chapter->pages as $page) <h5 class="@if($page->draft) draft @endif"><a href="{{ $page->getUrl() }}" class="text-page @if($page->draft) draft @endif"><i class="zmdi zmdi-file-text"></i>{{$page->name}}</a></h5> diff --git a/resources/views/chapters/move.blade.php b/resources/views/chapters/move.blade.php index 37d56d30d..291ab5015 100644 --- a/resources/views/chapters/move.blade.php +++ b/resources/views/chapters/move.blade.php @@ -17,7 +17,7 @@ </div> <div class="container"> - <h1>Move Chapter <small class="subheader">{{$chapter->name}}</small></h1> + <h1>{{ trans('entities.chapters_move') }} <small class="subheader">{{$chapter->name}}</small></h1> <form action="{{ $chapter->getUrl('/move') }}" method="POST"> {!! csrf_field() !!} @@ -25,8 +25,8 @@ @include('partials/entity-selector', ['name' => 'entity_selection', 'selectorSize' => 'large', 'entityTypes' => 'book']) - <a href="{{ $chapter->getUrl() }}" class="button muted">Cancel</a> - <button type="submit" class="button pos">Move Chapter</button> + <a href="{{ $chapter->getUrl() }}" class="button muted">{{ trans('common.cancel') }}</a> + <button type="submit" class="button pos">{{ trans('entities.chapters_move') }}</button> </form> </div> diff --git a/resources/views/chapters/restrictions.blade.php b/resources/views/chapters/restrictions.blade.php index 771665037..7a38fa104 100644 --- a/resources/views/chapters/restrictions.blade.php +++ b/resources/views/chapters/restrictions.blade.php @@ -17,7 +17,7 @@ </div> <div class="container" ng-non-bindable> - <h1>Chapter Permissions</h1> + <h1>{{ trans('entities.chapters_permissions') }}</h1> @include('form/restriction-form', ['model' => $chapter]) </div> diff --git a/resources/views/chapters/show.blade.php b/resources/views/chapters/show.blade.php index 70b09e9ce..d929d61cc 100644 --- a/resources/views/chapters/show.blade.php +++ b/resources/views/chapters/show.blade.php @@ -13,23 +13,23 @@ <div class="col-sm-4 faded"> <div class="action-buttons"> @if(userCan('page-create', $chapter)) - <a href="{{ $chapter->getUrl('/create-page') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>New Page</a> + <a href="{{ $chapter->getUrl('/create-page') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.pages_new') }}</a> @endif @if(userCan('chapter-update', $chapter)) - <a href="{{ $chapter->getUrl('/edit') }}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>Edit</a> + <a href="{{ $chapter->getUrl('/edit') }}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>{{ trans('entities.edit') }}</a> @endif @if(userCan('chapter-update', $chapter) || userCan('restrictions-manage', $chapter) || userCan('chapter-delete', $chapter)) <div dropdown class="dropdown-container"> <a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a> <ul> @if(userCan('chapter-update', $chapter)) - <li><a href="{{ $chapter->getUrl('/move') }}" class="text-primary"><i class="zmdi zmdi-folder"></i>Move</a></li> + <li><a href="{{ $chapter->getUrl('/move') }}" class="text-primary"><i class="zmdi zmdi-folder"></i>{{ trans('entities.move') }}</a></li> @endif @if(userCan('restrictions-manage', $chapter)) - <li><a href="{{ $chapter->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>Permissions</a></li> + <li><a href="{{ $chapter->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.permissions') }}</a></li> @endif @if(userCan('chapter-delete', $chapter)) - <li><a href="{{ $chapter->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a></li> + <li><a href="{{ $chapter->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>{{ trans('entities.delete') }}</a></li> @endif </ul> </div> @@ -57,26 +57,22 @@ </div> @else <hr> - <p class="text-muted">No pages are currently in this chapter.</p> + <p class="text-muted">{{ trans('entities.chapters_empty') }}</p> <p> @if(userCan('page-create', $chapter)) - <a href="{{ $chapter->getUrl('/create-page') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>Create a new page</a> + <a href="{{ $chapter->getUrl('/create-page') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.books_empty_create_page') }}</a> @endif @if(userCan('page-create', $chapter) && userCan('book-update', $book)) - <em class="text-muted">-or-</em> + <em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em> @endif @if(userCan('book-update', $book)) - <a href="{{ $book->getUrl('/sort') }}" class="text-book"><i class="zmdi zmdi-book"></i>Sort the current book</a> + <a href="{{ $book->getUrl('/sort') }}" class="text-book"><i class="zmdi zmdi-book"></i>{{ trans('entities.books_empty_sort_current_book') }}</a> @endif </p> <hr> @endif - <p class="text-muted small"> - Created {{ $chapter->created_at->diffForHumans() }} @if($chapter->createdBy) by <a href="{{ $chapter->createdBy->getProfileUrl() }}">{{ $chapter->createdBy->name}}</a> @endif - <br> - Last Updated {{ $chapter->updated_at->diffForHumans() }} @if($chapter->updatedBy) by <a href="{{ $chapter->updatedBy->getProfileUrl() }}">{{ $chapter->updatedBy->name}}</a> @endif - </p> + @include('partials.entity-meta', ['entity' => $chapter]) </div> <div class="col-md-3 col-md-offset-1"> <div class="margin-top large"></div> @@ -84,19 +80,20 @@ <div class="text-muted"> @if($book->restricted) - @if(userCan('restrictions-manage', $book)) - <a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Book Permissions Active</a> - @else - <i class="zmdi zmdi-lock-outline"></i>Book Permissions Active - @endif - <br> + <p class="text-muted"> + @if(userCan('restrictions-manage', $book)) + <a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}</a> + @else + <i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }} + @endif + </p> @endif @if($chapter->restricted) @if(userCan('restrictions-manage', $chapter)) - <a href="{{ $chapter->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Chapter Permissions Active</a> + <a href="{{ $chapter->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.chapters_permissions_active') }}</a> @else - <i class="zmdi zmdi-lock-outline"></i>Chapter Permissions Active + <i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.chapters_permissions_active') }} @endif @endif </div> diff --git a/resources/views/pages/show.blade.php b/resources/views/pages/show.blade.php index af85075a2..0a96afdab 100644 --- a/resources/views/pages/show.blade.php +++ b/resources/views/pages/show.blade.php @@ -72,11 +72,7 @@ <hr> - <p class="text-muted small"> - Created {{ $page->created_at->diffForHumans() }} @if($page->createdBy) by <a href="{{ $page->createdBy->getProfileUrl() }}">{{$page->createdBy->name}}</a> @endif - <br> - Last Updated {{ $page->updated_at->diffForHumans() }} @if($page->updatedBy) by <a href="{{ $page->updatedBy->getProfileUrl() }}">{{$page->updatedBy->name}}</a> @endif - </p> + @include('partials.entity-meta', ['entity' => $page]) </div> </div> diff --git a/resources/views/pages/sidebar-tree-list.blade.php b/resources/views/pages/sidebar-tree-list.blade.php index 09d9b77f9..74ce6c34d 100644 --- a/resources/views/pages/sidebar-tree-list.blade.php +++ b/resources/views/pages/sidebar-tree-list.blade.php @@ -2,16 +2,16 @@ <div class="book-tree" ng-non-bindable> @if (isset($page) && $page->attachments->count() > 0) - <h6 class="text-muted">Attachments</h6> + <h6 class="text-muted">{{ trans('entities.pages_attachments') }}</h6> @foreach($page->attachments as $attachment) <div class="attachment"> - <a href="{{ $attachment->getUrl() }}" @if($attachment->external) target="_blank" @endif><i class="zmdi zmdi-{{ $attachment->external ? 'open-in-new' : 'file' }}"></i> {{ $attachment->name }}</a> + <a href="{{ $attachment->getUrl() }}" @if($attachment->external) target="_blank" @endif><i class="zmdi zmdi-{{ $attachment->external ? 'open-in-new' : 'file' }}"></i>{{ $attachment->name }}</a> </div> @endforeach @endif @if (isset($pageNav) && $pageNav) - <h6 class="text-muted">Page Navigation</h6> + <h6 class="text-muted">{{ trans('entities.pages_navigation') }}</h6> <div class="sidebar-page-nav menu"> @foreach($pageNav as $navItem) <li class="page-nav-item {{ $navItem['nodeName'] }}"> @@ -21,7 +21,7 @@ </div> @endif - <h6 class="text-muted">Book Navigation</h6> + <h6 class="text-muted">{{ trans('entities.books_navigation') }}</h6> <ul class="sidebar-page-list menu"> <li class="book-header"><a href="{{ $book->getUrl() }}" class="book {{ $current->matches($book)? 'selected' : '' }}"><i class="zmdi zmdi-book"></i>{{$book->name}}</a></li> @@ -34,7 +34,7 @@ @if($bookChild->isA('chapter') && count($bookChild->pages) > 0) <p class="text-muted chapter-toggle @if($bookChild->matchesOrContains($current)) open @endif"> - <i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ count($bookChild->pages) }} Pages</span> + <i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ trans('entities.x_pages', ['count' => $bookChild->pages->count()]) }}</span> </p> <ul class="menu sub-menu inset-list @if($bookChild->matchesOrContains($current)) open @endif"> @foreach($bookChild->pages as $childPage) diff --git a/resources/views/partials/entity-meta.blade.php b/resources/views/partials/entity-meta.blade.php new file mode 100644 index 000000000..2a7427422 --- /dev/null +++ b/resources/views/partials/entity-meta.blade.php @@ -0,0 +1,13 @@ +<p class="text-muted small"> + @if ($entity->createdBy) + {!! trans('entities.meta_created_name', ['timeLength' => $entity->created_at->diffForHumans(), 'user' => "<a href='{$entity->createdBy->getProfileUrl()}'>".htmlentities($entity->createdBy->name). "</a>"]) !!} + @else + {{ trans('entities.meta_created', ['timeLength' => $entity->created_at->diffForHumans()]) }} + @endif + <br> + @if ($entity->updatedBy) + {!! trans('entities.meta_updated_name', ['timeLength' => $entity->updated_at->diffForHumans(), 'user' => "<a href='{$entity->updatedBy->getProfileUrl()}'>".htmlentities($entity->updatedBy->name). "</a>"]) !!} + @else + {{ trans('entities.meta_updated', ['timeLength' => $entity->updated_at->diffForHumans()]) }} + @endif +</p> \ No newline at end of file diff --git a/tests/Auth/AuthTest.php b/tests/Auth/AuthTest.php index 0d2e4ac17..f287f8490 100644 --- a/tests/Auth/AuthTest.php +++ b/tests/Auth/AuthTest.php @@ -245,7 +245,7 @@ class AuthTest extends TestCase { $this->setSettings(['registration-enabled' => 'true']); $this->visit('/password/email') - ->seeLink('Sign in') + ->seeLink('Log in') ->seeLink('Sign up'); } @@ -260,6 +260,6 @@ class AuthTest extends TestCase return $this->visit('/login') ->type($email, '#email') ->type($password, '#password') - ->press('Sign In'); + ->press('Log In'); } } diff --git a/tests/Auth/LdapTest.php b/tests/Auth/LdapTest.php index 9573321fb..45e46fe81 100644 --- a/tests/Auth/LdapTest.php +++ b/tests/Auth/LdapTest.php @@ -36,11 +36,11 @@ class LdapTest extends \TestCase ->see('Username') ->type($this->mockUser->name, '#username') ->type($this->mockUser->password, '#password') - ->press('Sign In') + ->press('Log In') ->seePageIs('/login')->see('Please enter an email to use for this account.'); $this->type($this->mockUser->email, '#email') - ->press('Sign In') + ->press('Log In') ->seePageIs('/') ->see($this->mockUser->name) ->seeInDatabase('users', ['email' => $this->mockUser->email, 'email_confirmed' => false, 'external_auth_id' => $this->mockUser->name]); @@ -64,7 +64,7 @@ class LdapTest extends \TestCase ->see('Username') ->type($this->mockUser->name, '#username') ->type($this->mockUser->password, '#password') - ->press('Sign In') + ->press('Log In') ->seePageIs('/') ->see($this->mockUser->name) ->seeInDatabase('users', ['email' => $this->mockUser->email, 'email_confirmed' => false, 'external_auth_id' => $ldapDn]); @@ -87,7 +87,7 @@ class LdapTest extends \TestCase ->see('Username') ->type($this->mockUser->name, '#username') ->type($this->mockUser->password, '#password') - ->press('Sign In') + ->press('Log In') ->seePageIs('/login')->see('These credentials do not match our records.') ->dontSeeInDatabase('users', ['external_auth_id' => $this->mockUser->name]); } diff --git a/tests/Entity/EntityTest.php b/tests/Entity/EntityTest.php index 20721968f..79e574cbd 100644 --- a/tests/Entity/EntityTest.php +++ b/tests/Entity/EntityTest.php @@ -136,7 +136,7 @@ class EntityTest extends TestCase $this->asAdmin() ->visit('/books') // Choose to create a book - ->click('Add new book') + ->click('Create New Book') ->seePageIs('/books/create') // Fill out form & save ->type($book->name, '#name') diff --git a/tests/Permissions/RolesTest.php b/tests/Permissions/RolesTest.php index 7a0515fd9..1d44e9691 100644 --- a/tests/Permissions/RolesTest.php +++ b/tests/Permissions/RolesTest.php @@ -211,7 +211,7 @@ class RolesTest extends TestCase $this->checkAccessPermission('book-create-all', [ '/books/create' ], [ - '/books' => 'Add new book' + '/books' => 'Create New Book' ]); $this->visit('/books/create')