Download the PHP package nikaia/translation-sheet without Composer
On this page you can find all versions of the php package nikaia/translation-sheet. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nikaia/translation-sheet
More information about nikaia/translation-sheet
Files in nikaia/translation-sheet
Package translation-sheet
Short Description Laravel Translation via Google Spreadsheet
License MIT
Homepage https://github.com/nikaia/translation-sheet
Informations about the package translation-sheet
Laravel Translation Sheet
Translating Laravel languages files using a Google Spreadsheet.
Contents
- Installation
- Usage
- Changelog
- Testing
- Security
- Contributing
- Credits
- License
Installation
-
Install package
-
If Laravel version <= 5.4, Add service provider to your 'config/app.php'. For version >= 5.5, package will be auto-discoverd by Laravel.
- Configuration can be done via environments variables, but if you prefer you can override the configuration by publishing the package config file using :
Requirements
Laravel >= 5.1
Configuration
Google Api credentials
- Create a new project in https://console.developers.google.com/
- Make sure to activate
Sheet Api
for the created project- Navigate to "Library"
- Search "Google Sheets API" > Click on "Google Sheets API" and click enable
- Create credentials
- Navigate to "Credentials"
- Click "Create credentials"
- Choose "Service Account key"
- Choose A "New Service Account" in the "Service account" select
- Choose a name. (ie. This is the name that will show up in the Spreadsheet history operations),
- Choose "Editor" as the role
- Choose "JSON" for the key type.
- Save the credentials to 'resources/google/service-account.json' folder. (You can choose another name/folder and update the package configuration)
- Make sure to write down the service account email, you will need to share the spreadsheet with this email (see below).
Spreadsheet
- Create a blank/new spreadsheet here https://docs.google.com/spreadsheets/ .
- Share it with the service account email with
Can edit
permission.
Package configuration
In your .env file or in your published config file (config/translation_sheet.php
), you need to add the following
# The service account email
TS_SERVICE_ACCOUNT_EMAIL=***@***.iam.gserviceaccount.com
# The path to the downloaded service account credentials file
TS_SERVICE_ACCOUNT_CREDENTIALS_FILE=resources/google/service-account.json
# The ID of the spreadsheet that we will be using for translation (the last portion of the spreadsheet url)
TS_SPREADSHEET_ID=xxxx
# The locales of the application (separated by comma)
TS_LOCALES=fr,en,es
Usage
1/ Setup the spreadsheet
This need to be done only once.
2/ Prepare the sheet
To avoid some conflicts, we will first run this command to rewrite the locale languages files.
3/ Publish translation to sheet
4/ Share the spreadsheet with clients or project managers for translations.
5/ Once done, You can lock the translations on the spreadsheet (to avoid conflicts)
6/ Pull the translations
This will pull the translations from the spreadsheet, and write it the language files in your applications. You can use git diff here to make sure eveything is ok (Conflicts, errors etc ...)
6/ Unlock the translations on the spreadsheet
Open the spreadsheet in the browser
Excluding translations
Sometimes you might need to instruct the package to exclude some translations.
You can do so by specifying patterns in the exclude
config option.
It accepts multiple patterns that target the full translation keys and that the Str::is can understand.
Extra sheets
Sometimes you may have other files that need translations.
They are not related to the laravel application per se and are not stored in the resources\lang
folder.
Maybe you are building a web app (spa), or even a mobile app alongside
the laravel app, and you need to handle their translations.
In this specific case, you can configure extra sheets to handle those translations files stored inside a specific path.
- This feature handles only json files.
- The files must live outside the
resources\lang
directory. For instanceresources\web-app\lang
.
You need to run
translation_sheet:setup
command, if you add this config later on.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
N.B : You need a valid configuration service-account.json file to run tests.
Github action
To test your fork using github action, you need a valid service-account.json
. The file is ignored in the repository to avoid exposing credentials.
You need to encode your credentials file tests/fixtures/service-account.json using
gpg`
Commit the .gpg
encoded file.
PS. Github action will decrypt the file just before running the tests. See the run-tests.yml
file.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
- Nassif Bourguig
- All Contributors
All versions of translation-sheet with dependencies
illuminate/console Version ^v9.0|^10.0|^11.0
illuminate/filesystem Version ^v9.0|^10.0|^11.0
illuminate/support Version ^v9.0|^10.0|^11.0