The default language is set by the `DEFAULT_LANGUAGE` variable in the `.env` file. This will be the language used until it is changed, which can be done using the `/language/{lang}` route or directly using `Language::setSessionLanguage($lang)` where in both cases `lang` is the language code for a given language.
In the view, a block of text can be configured with multiple languages using the following syntax:
```php
@lang([
'en' => "This is a sentence",
'fr' => "C'est une phrase"
])
```
or
```php
{{ Language::select([ 'en' => "This is a sentence", 'fr' => "C'est une phrase" ]) }}
The default public facing website uses vue.js. To configure a non-SPA traditional website, look at the files in `traditional-bootstrap`.
The following list of files and directories are where various pieces of the public website are located:
*`resources/views/templates/base.blade.php`: The outer template for the entire website
*`resources/views/templates/public.blade.php`: The inner template for the public site
*`resources/assets/fonts`: The folder containing website fonts (these get loaded into `public/fonts/` by the gulpfile)
*`resources/assets/js/app.js`: The main javascript file that loads the public site
*`resources/assets/js/mixins`: The folder containing vue.js mixins that can be applied globally in `resources/assets/js/app.js` or in individual components
*`resources/assets/js/mixins/base-page.js`: The base-page mixin with page functionality that should be imported into all page components
*`resources/components`: The folder containing vue.js components
*`resources/components/pages`: Page components that should be imported into vue-router in `resources/assets/js/app.js`
*`resources/components/sections`: Section components (single-use per page) that should be imported into mixins or page components
*`resources/components/partials`: Partial components (multi-use per page or section) that should be imported into mixins and/or page and section components
*`resources/assets/sass/app.scss`: The main sass file for the public site
*`resources/assets/sass/_fonts.scss`: Stylesheet containing font declarations and mixins declared to use those fonts in other stylesheets
*`resources/assets/sass/_var.scss`: Stylesheet containing variables to be used in other stylesheets
*`resources/assets/sass/pages`: Stylesheets for page-specific styles wrapped in the respective page component class
*`resources/assets/sass/sections`: Stylesheets for section-specific styles wrapped in the respective section component class
*`resources/assets/sass/partials`: Stylessheets for partial-specific styles wrapped in the respective partial component class
*`resources/assets/sass/classes`: General stylesheets for classes that can be used anywhere
*`resources/assets/sass/mixins`: Stylesheets declaring SCSS mixins for use in other stylesheets
Dependencies can be included with bower or npm and loaded either into the `jsPublicLibs` array in the gulpfile or imported in the javascript.
Other information about database interaction, routing, controllers, etc can be viewed in the [Laravel Documentation](https://laravel.com/docs).
*`$create`: A boolean determining whether to enable a button that allows new records to be created
*`$delete`: A boolean determining whether to enable a button that allows records to be deleted
*`$filter`: A boolean determining whether to enable an input field that allows records to be searched
*`$dashboard_help_text`: An html string that will add a help box to the top of the edit-item page
*`$dashboard_display`: An array to configure what column data to show on each item in the edit-list
*`$dashboard_reorder`: A boolean determining whether to render drag handles to reorder the items in the list
*`$dashboard_sort_column`: A string containing the column used to sort the list (this should be an `integer` when `$dashboard_reorder` is true)
*`$dashboard_sort_direction`: When `$dashboard_reorder` is false this determines the sort direction (this can be `desc` for descending or `asc` ascending)
*`$dashboard_button`: An array containing the following items in this order:
* The title
* Confirmation text asking the user to confirm
* A "success" message to display when the response is `success`
* A "failure" message to display when the response is not `success`
* The URL to send the POST request to with the respective `id` in the request variable