PHPackages                             phiil/googlesheets-translation-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. phiil/googlesheets-translation-bundle

AbandonedArchivedSymfony-bundle[Localization &amp; i18n](/categories/localization)

phiil/googlesheets-translation-bundle
=====================================

This bundle enables you to deploy your translation within seconds and the best part: Manage them in Googlesheets, probably the easiest way.

5.4.0(3y ago)1477MITPHPPHP ^7.4|^8.0|^8.1

Since Apr 11Pushed 3y ago1 watchersCompare

[ Source](https://github.com/philipp-riddle/SymfonyGoogleSheetsTranslationBundle)[ Packagist](https://packagist.org/packages/phiil/googlesheets-translation-bundle)[ RSS](/packages/phiil-googlesheets-translation-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (5)Versions (11)Used By (0)

[![Build Status](https://camo.githubusercontent.com/df9bc0d9edb7190e76009301d778fa04bfb3e5fc0ce7bd46f1d57a10da32dfb8/68747470733a2f2f7472617669732d63692e6f72672f7068696c6970702d726964646c652f53796d666f6e79476f6f676c655368656574735472616e736c6174696f6e42756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/philipp-riddle/SymfonyGoogleSheetsTranslationBundle)

SymfonyGoogleSheetsTranslationBundle
====================================

[](#symfonygooglesheetstranslationbundle)

Introduction
------------

[](#introduction)

Translation management can be rather... pesky. This bundle allows you to use a single Googlesheet and push your translations to your symfony site within seconds.

**Features:**

- *Use as many languages as you want:* this bundle sets you no limits, from just one locale (use case: you just want to keep texts out of your lovely source code) to even thirteen locales (because you just learned them on Dualingo)
- *Decide which sheet page you want to use for your translations:* Only the first sheet page of your GoogleSheet should be used for translations? No problem, you need one more setting. Although this is possible, we recommend to use the default mode which automatically includes all the sheets and merges them into one (translations-wise - **this bundle does not edit your GoogleSheet**).
- *One command to push it all...:* This bundle also provides you with one command which enables you to reload &amp; push your translations in all available languages within seconds.

**Requirements**

- Symfony ^5.2 (an older version for Symfony Version 4.4 is also available)
- PHP ^7.4|^8.0

Installation
------------

[](#installation)

Run `composer require phiil/googlesheets-translation-bundle`

Usage
-----

[](#usage)

### Video Guide

[](#video-guide)

Want to watch a video instead of reading the guide? Today you're lucky! Watch the video on YouTube: [![Watch the video](https://camo.githubusercontent.com/7d6afd3fade59a12045e8c38c0bdc9841168d1c01c18ecb3bf050ceed7ce0c1d/68747470733a2f2f692e696d6775722e636f6d2f54654f6f3163712e706e67)](https://youtu.be/8WgbDpzrjCs)

### Text Guide

[](#text-guide)

The first thing you need is a Googlesheet, go ahead and create on [sheets.google.com](https://sheets.google.com). My demo translations sheet is available at [this link](https://docs.google.com/spreadsheets/d/1D2qOEgEKgMy7qh0B-PQMzdil8AoE5NvYMsNuusqM-IA/edit?usp=sharing). I'd suggest that you just duplicate that one into your account / apply this structure - feel free to change the head =&gt; add as many locales as you want!

> Better customization &amp; configuration possibilities for the GoogleSheet are in the works - for now, just try to stick as close as possible to the structure.

Now, you need to publish it to the web. What first sounded very weird to me (should I really publish my translations publicly to the web?!), isn't really that dangerous. The chances of someone finding your translations is really low and on top of that no one can use it to attack you / do harm to your site.

**Step-by-step tutorial:**

1. Go to File &gt; Publish to the web: [![Publish Step 1](https://camo.githubusercontent.com/98265470fca1eb1c8f5a5e8d0677122b0ffe73a56c3a7c18264f477ac8bc39b4/68747470733a2f2f692e696d6775722e636f6d2f6b704a6a376e622e706e67)](https://camo.githubusercontent.com/98265470fca1eb1c8f5a5e8d0677122b0ffe73a56c3a7c18264f477ac8bc39b4/68747470733a2f2f692e696d6775722e636f6d2f6b704a6a376e622e706e67)
2. A window should pop up, just press 'Publish' (assuming that you want to publish the whole sheet): [![Publish Step 2](https://camo.githubusercontent.com/b0059c04e2d8335f81f1676f1330cbaa127157a159a3911fcd0516b3761a9bd8/68747470733a2f2f692e696d6775722e636f6d2f5472496874687a2e706e67)](https://camo.githubusercontent.com/b0059c04e2d8335f81f1676f1330cbaa127157a159a3911fcd0516b3761a9bd8/68747470733a2f2f692e696d6775722e636f6d2f5472496874687a2e706e67)
3. Now, you need to extract the ID of your sheet. Back to the URL window (CMD + L / CTRL + L for hot key lovers), copy the part which is marked in the following image: [![Publish Step 3](https://camo.githubusercontent.com/15270e04dac9d711f3b95fd59ebbcc82422d29045ce76dbb5344ffd43bc671b8/68747470733a2f2f692e696d6775722e636f6d2f7947306b5845692e706e67)](https://camo.githubusercontent.com/15270e04dac9d711f3b95fd59ebbcc82422d29045ce76dbb5344ffd43bc671b8/68747470733a2f2f692e696d6775722e636f6d2f7947306b5845692e706e67).
4. Finally we can hop back in Symfony. In **config/services.yaml** insert it like the following:

```
parameters:
    ...
    googlesheets_translations.sheet.publicId: '1D2qOEgEKgMy7qh0B-PQMzdil8AoE5NvYMsNuusqM-IA'
    ...
```

I went ahead and already pasted in the ID from above.

5. (Optional) Configure which sheet pages you want to add. If you want to only push a single sheet page, you have to add the following parameter:

```
parameters:
    ...
    googlesheets_translations.sheet.mode: 'all' # that's the default value
    # or...
    googlesheets_translations.sheet.mode: 1     # if you only want to use the first sheet page for your translations
    ...
```

My final config (config/services.yaml):

```
parameters:
    googlesheets_translations.sheet.mode: 'all'
    googlesheets_translations.sheet.publicId: '1D2qOEgEKgMy7qh0B-PQMzdil8AoE5NvYMsNuusqM-IA'
```

6. Push your translations with the built-in command: `phiil:translation:reload` (in my case, I have to execute `php bin/console phiil:translation:reload`). Have a look at the output of my console: [![Publish Step 7](https://camo.githubusercontent.com/195afd4cc145babf206ba0180088838ac77a619a05109ab0c1955f234b31ce5d/68747470733a2f2f692e696d6775722e636f6d2f644635417a54582e706e67)](https://camo.githubusercontent.com/195afd4cc145babf206ba0180088838ac77a619a05109ab0c1955f234b31ce5d/68747470733a2f2f692e696d6775722e636f6d2f644635417a54582e706e67)

#### Congratulations, you're all set!

[](#congratulations-youre-all-set)

Problems? Issues?
-----------------

[](#problems-issues)

Just post them here on Github or contact me via email: . Feel free to contribute!

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~91 days

Recently: every ~204 days

Total

10

Last Release

1404d ago

Major Versions

4.4.x-dev → 5.0.12020-04-12

PHP version history (4 changes)5.0.0PHP ^7.2.5

4.4.0.1PHP ^7.1.3

5.2.0PHP ^7.4|^8.0

5.4.0PHP ^7.4|^8.0|^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/26253126?v=4)[Phil Young Xu](/maintainers/phiil)[@Phiil](https://github.com/Phiil)

---

Top Contributors

[![philipp-riddle](https://avatars.githubusercontent.com/u/53085316?v=4)](https://github.com/philipp-riddle "philipp-riddle (18 commits)")

---

Tags

googlesheetlanguagessymfonytranslation

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/phiil-googlesheets-translation-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/phiil-googlesheets-translation-bundle/health.svg)](https://phpackages.com/packages/phiil-googlesheets-translation-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[lexik/translation-bundle

This bundle allows to import translation files content into the database and provide a GUI to edit translations.

4362.7M19](/packages/lexik-translation-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[jms/translation-bundle

Puts the Symfony Translation Component on steroids

42510.8M63](/packages/jms-translation-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
