Websites nowadays are needed to support multi-lingual, in order to reach more people in many countries. Along with fast growth of technologies, we have a lot of framework equipped with packages. This time I’d like to write about one of my favorite framework, Laravel, along with a package by Nikaia. This package use Google Spreadsheet to facilitate team collaboration. As you know that Google Spreadsheet is real time cloud-synchronized, this makes possible to access and edit at the same time without making any conflict with another team member.


Install package

$ composer require nikaia/translation-sheet

Add service provider to your config/app.php


Configuration can be done via environments variables, but if you prefer you can override the configuration by publishing the package config file using :

$ php artisan vendor:publish --provider="Nikaia\TranslationSheet\ServiceProvider"

Google API

Go to Create a new project Activate Sheet API for the project: Go to Library > Search Google Sheet API > Select it > Enable Create a Service Account and Credentials

  • Go 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), “Editor” as role and “JSON” for the key type.
  • Save the credentials to ‘resources/google/service-account.json’ folder. (You can choose another name/folder if you want in your application folder)
  • Make sure to write down the service account email, you will need it later for the package configuration.


Create a blank/new spreadsheet here . Share it with the service account email with Can edit permission


In your .env file or in your published config file (config/translation_sheet.php) Set service account email


Set path to the downloaded service account credentials


Set ID of the spreadsheet that we will be using for translation


Set locales of the application (separated by comma)



Setup the spreadsheet (only once)

$ php artisan translation_sheet:setup

Prepare the sheet (to avoid conflicts, run this command to rewrite the locale languages files)

$ php artisan translation_sheet:prepare

Publish translation to sheet

$ php artisan translation_sheet:push

Lock translations on the spreadsheet (the sheet will be disabled for edit)

$ php artisan translation_sheet:lock

Unlock translations on the spreadsheet

$ php artisan translation_sheet:unlock

Pull translations (this will write languages files in your applications. You can use git diff here to make sure everything is ok)

$ php artisan translation_sheet:pull

Open spreadsheet in browser

$ php artisan translation_sheet:open

Note: Don’t forget to share your spreadsheet to your team. You can follow this package’s updates in Nikaia github.


or Sign Up

Sign Up

or Login
Want to create your own SAAS?

I can teach you to create your own Software as a Service. Click here to learn more!

Visit SAAS Adventure!