Skip to content

Commit

Permalink
docs: Updated README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
maicol07 authored and thiagocordeiro committed Jan 31, 2023
1 parent a21f796 commit a243266
Showing 1 changed file with 24 additions and 14 deletions.
38 changes: 24 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,17 @@ functions, then it create keys based on first parameter value and insert into js

You just have to require the package

```sh
$ composer require thiagocordeiro/laravel-translator
```bash
composer require thiagocordeiro/laravel-translator
```

This package register the provider automatically,
[See laravel package discover](https://laravel.com/docs/5.5/packages#package-discovery).

After composer finish installing, you'll be able to update your project translation keys running the following command:
```sh
$ php artisan translator:update

```bash
php artisan translator:update
```

if for any reason artisan can't find `translator:update` command, you can register the provider manually on your `config/app.php` file:
Expand All @@ -33,7 +34,9 @@ return [
```

### Usage

First you have to create your json translation files:

```
app/
resources/
Expand All @@ -43,9 +46,11 @@ app/
fr.json
...
```

Keep working as you are used to, when laravel built-in translation funcion can't find given key,
it'll return itself, so if you create english keys, you don't need to create an english translation.
```html

```php-template
blade:
<html>
@lang('Hello World')
Expand All @@ -60,11 +65,13 @@ controllers, models, etc.:
```

also you can use params on translation keys
```

```php
@lang('Welcome, :name', ['Arthur Dent'])
```

### Output

`translator:update` command will scan your code to identify new translation keys, then it'll update all json files on `app/resources/lang/` folder appending this keys.

```json
Expand All @@ -76,19 +83,18 @@ also you can use params on translation keys
```

### Customization

You can change the default path of views to scan and the output of the json translation files.

First, publish the configuration file.

```
```bash
php artisan vendor:publish --provider="Translator\Framework\TranslatorServiceProvider"
```

On ``config/translator.php`` you can change the default values of `languages`, `default_language`, `use_keys_as_default_value`, `directories`, `output`
or if you have a different implementation to save/load translations, you can create your own `translation_repository`
and replace on `container` config
On ``config/translator.php`` you can change the default values of `languages`, `default_language`, `use_keys_as_default_value`, `directories`, `functions`, `output` or if you have a different implementation to save/load translations, you can create your own`translation_repository`and replace on`container` config

```
```php
use Translator\Framework\LaravelConfigLoader;
use Translator\Infra\LaravelJsonTranslationRepository;

Expand All @@ -98,6 +104,7 @@ return [
app_path(),
resource_path('views'),
],
'functions' => ['lang', '__'],
'output' => resource_path('lang'),
'container' => [
'config_loader' => LaravelConfigLoader::class,
Expand All @@ -107,12 +114,15 @@ return [
```

## Using your keys as the default value
For the default language, most of the time you wish to use the key values as the default translation value. You can enable this by setting the config option `use_keys_as_default_value` to `true`, and defining a `default_language` to your language. This is by default configured to `en`, but can be overruled by setting the `default_language` key in your config.

For the default language, most of the time you wish to use the key values as the default translation value. You can enable this by settingd the config option `use_keys_as_default_value` to `true`, and defining a `default_language` to your language. This is by default configured to `en`, but can be overruled by setting the `default_language` key in your config.

### Tips
- Laravel `trans(...)` function doesn't use json files for translation, so you'd better using `__(...)` or it's alias `lang(...)` on php files and `@lang(...)` or `{{ lang(...) }}` on blade files.
- Do not use variables on translation functions, the scanner just get the key if it's a string

- Laravel `trans(...)` function doesn't use json files for translation, so you'd better using `__(...)` or it's alias `lang(...)` on php files and `@lang(...)` or `{{ lang(...) }}` on blade files.
- Do not use variables on translation functions, the scanner just get the key if it's a string

### Todo

- View for translate phrases;
- Integration with some translation api (google or deepl) for automatic translations

0 comments on commit a243266

Please sign in to comment.