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">&nbsp;</div>
-                        <h3>Recently Viewed</h3>
+                        <div class="margin-top">&nbsp;</div>
+                        <h3>{{ trans('entities.recently_viewed') }}</h3>
                         @include('partials/entity-list', ['entities' => $recents])
                     @endif
                 </div>
                 <div class="margin-top large">&nbsp;</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>
-                                &nbsp;&nbsp;<em class="text-muted">-or-</em>&nbsp;&nbsp;&nbsp;
-                                <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>
+                                &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
+                                <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))
-                            &nbsp;&nbsp;<em class="text-muted">-or-</em>&nbsp;&nbsp;&nbsp;
+                            &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
                         @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')