mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
huge Laravel 10 upgrade
This commit is contained in:
201
support/laravel-translation/readme.md
Normal file
201
support/laravel-translation/readme.md
Normal file
@@ -0,0 +1,201 @@
|
||||
<div align="center">
|
||||
|
||||

|
||||
|
||||
Translation management for your Laravel application.
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
</div>
|
||||
|
||||
------
|
||||
|
||||
## About Laravel Translation
|
||||
|
||||
Laravel Translation is a package for Laravel which allows you full control
|
||||
over your translations when using [Laravel's
|
||||
localization](https://laravel.com/docs/5.7/localization) functionality.
|
||||
|
||||
The package allows you to manage your translations using either the native file
|
||||
based translations, but also provides a database driver which is useful in
|
||||
multi-server setups.
|
||||
|
||||
It exposes a user interface allowing you to update existing and add new
|
||||
translations to your application.
|
||||
|
||||
Below are a full list of features:
|
||||
|
||||
- File and database drivers
|
||||
- Database translation loader (automatically load translations from the database
|
||||
when Laravel's translation retrieval methods and the database driver)
|
||||
- User interface to add new languages and add and update translations
|
||||
- Artisan commands to manage your translations
|
||||
- Scan your application for missing translations
|
||||
|
||||
## Version Compatibility
|
||||
|
||||
| Laravel | Laravel Translation |
|
||||
| ------------- | ------------------- |
|
||||
| 6.x | 1.x |
|
||||
| 7.x | 1.x |
|
||||
| 8.x | 2.x |
|
||||
| 9.x | 2.x |
|
||||
|
||||
## Installation
|
||||
|
||||
Install the package via Composer
|
||||
|
||||
`composer require joedixon/laravel-translation`
|
||||
|
||||
Publish configuration and assets
|
||||
|
||||
`php artisan vendor:publish --provider="JoeDixon\Translation\TranslationServiceProvider"`
|
||||
|
||||
The service provider is loaded automatically using [package discovery](https://laravel.com/docs/5.7/packages#package-discovery).
|
||||
|
||||
## Usage
|
||||
|
||||
### Configuration
|
||||
|
||||
The package ships with a configuration file called `translation.php` which is published to the
|
||||
config directory during installation. Below is an outline of the settings.
|
||||
|
||||
```
|
||||
driver [file|database]
|
||||
```
|
||||
Choose either `file` or `database`. File translations utilise Laravel's native
|
||||
file based translations and includes support for both `array` based and `json` based
|
||||
language files.
|
||||
|
||||
```
|
||||
route_group_config.middleware [string|array]
|
||||
```
|
||||
Apply middleware to the routes which ship with the package. For example, you may
|
||||
which to use the `auth` middleware to ensure package user interface is only
|
||||
accessible to logged in users.
|
||||
|
||||
```
|
||||
translation_methods [array]
|
||||
```
|
||||
Choose which of Laravel's translation methods to use when searching for missing
|
||||
translation keys.
|
||||
|
||||
```
|
||||
scan_paths [array]
|
||||
```
|
||||
Choose which paths to use when searching for missing translations. Narrowing the
|
||||
search to specific directories will result in a performance increase when
|
||||
scanning for missing translations.
|
||||
|
||||
```
|
||||
ui_url [string]
|
||||
```
|
||||
Choose the root URL where the package user interface can be accessed. All routes
|
||||
will be prefixed by this value.
|
||||
|
||||
e.g. setting this value to `languages` will result in URLs such as `translations/{language}/translations`
|
||||
|
||||
```
|
||||
database.languages_table
|
||||
```
|
||||
Choose the name of the languages table when using the database driver.
|
||||
|
||||
```
|
||||
database.translations_table
|
||||
```
|
||||
Choose the name of the translations table when using the database driver.
|
||||
|
||||
### Drivers
|
||||
|
||||
#### File
|
||||
Utitlises Laravel's native php array and JSON based language files and exposes a
|
||||
user interface to manage the enclosed translations. Add and update languages and translations
|
||||
using either the user interface or the built-in [Artisan commands](https://laravel.com/docs/5.7/artisan).
|
||||
|
||||
#### Database
|
||||
The database driver takes all of the functionality of Laravel's file based
|
||||
language files, but moves the storage to the database, utilising the connection
|
||||
configured for your Laravel application.
|
||||
|
||||
It also replaces the translation loader in the container so all of Laravel's
|
||||
translation retrieval methods (`__()`, `trans()`, `@lang()`, etc) will load the
|
||||
relevant strings from the database rather than the files without the need to
|
||||
change any code in your application. It's a like for like swap.
|
||||
|
||||
To utilise the database driver, make sure to update the database table names in
|
||||
the configuration file and run the migrations.
|
||||
|
||||
#### Changing Drivers from File (default) to Database
|
||||
|
||||
1. Update the driver to use database in `./config/translation.php`.
|
||||
|
||||
```php
|
||||
'driver' => 'database'
|
||||
```
|
||||
|
||||
2. Run the migration to add translations and languages tables.
|
||||
|
||||
```shell
|
||||
php artisan migrate
|
||||
```
|
||||
|
||||
3. Run the following command and folow the prompts to synchronise the translations between drivers.
|
||||
|
||||
```shell
|
||||
php artisan translation:sync-translations
|
||||
```
|
||||
|
||||
4. A few questions will be prompted which have to be answered. See the screenshot below:
|
||||
|
||||
### User interface
|
||||
Navigate to http://your-project.test/languages (update `languages` to match the
|
||||
`translation.ui_url` configuration setting) and use the interface to manage
|
||||
your translations.
|
||||
|
||||
First, click on the language you wish to edit. On the subsequent page, find the
|
||||
translation you want to edit and click on the pencil icon or on the text and
|
||||
make your edits. As soon as you remove focus from the input, your translation
|
||||
will be saved, indicated by the green check icon.
|
||||
|
||||
### Artisan Commands
|
||||
The package ships with a series of Artisan commands which assist with
|
||||
translation management.
|
||||
|
||||
```
|
||||
translation:add-language
|
||||
```
|
||||
Add a new language to the application.
|
||||
|
||||
```
|
||||
translation:add-translation-key
|
||||
```
|
||||
Add a new language key for the application.
|
||||
|
||||
```
|
||||
translation:list-languages
|
||||
```
|
||||
List all of the available languages in the application.
|
||||
|
||||
```
|
||||
translation:list-missing-translation-keys
|
||||
```
|
||||
List all of the translation keys in the app which don't have a corresponding translation.
|
||||
|
||||
```
|
||||
translation:sync-translations
|
||||
```
|
||||
Synchronise translations between drivers. This is useful if you have an exisitng
|
||||
application using the native file based language files and wish to move to the
|
||||
database driver. Running this command will take all of the translations from the
|
||||
language files and insert them in to the database.
|
||||
|
||||
```
|
||||
translation:sync-missing-translation-keys
|
||||
```
|
||||
This command will scan your project (using the paths supplied in the
|
||||
configuration file) and create all of the missing translation keys. This can be
|
||||
run for all languages or a single language.
|
||||
|
||||
Reference in New Issue
Block a user