PHPackages                             internetztube/craft-spreadsheet-translations - 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. internetztube/craft-spreadsheet-translations

ActiveCraft-plugin[Localization &amp; i18n](/categories/localization)

internetztube/craft-spreadsheet-translations
============================================

Adds support for dynamic translations from Google Spreadsheets.

1.1.5(4y ago)96251MITPHPPHP &gt;=7.1.0

Since Jan 2Pushed 2y ago1 watchersCompare

[ Source](https://github.com/internetztube/craft-spreadsheet-translations)[ Packagist](https://packagist.org/packages/internetztube/craft-spreadsheet-translations)[ RSS](/packages/internetztube-craft-spreadsheet-translations/feed)WikiDiscussions 3.x Synced yesterday

READMEChangelog (9)Dependencies (2)Versions (12)Used By (0)

Spreadsheet Translations plugin for Craft CMS 5.x
=================================================

[](#spreadsheet-translations-plugin-for-craft-cms-5x)

This plugin enables non-developers to access static translations via a Google spreadsheet.

[![Share Image](screenshots/share.png)](screenshots/share.png)

Screenshots
-----------

[](#screenshots)

[![Sample Spreadsheet](screenshots/spreadsheet.png)](screenshots/spreadsheet.png)[![Translation Files](screenshots/translation-files.png)](screenshots/translation-files.png)[![Utilities](screenshots/utilities.png)](screenshots/utilities.png)[![Settings](screenshots/settings.png)](screenshots/settings.png)

Requirements
------------

[](#requirements)

This plugin requires Craft CMS 5.0.0 or later.

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

[](#installation)

To install this plugin, follow these steps:

1. Install with Composer via `internetztube/craft-spreadsheet-translations`
2. Install plugin in the Craft Control Panel under Settings &gt; Plugins You can also install this plugin via the Plugin Store in the Craft Control Panel.

Issues
------

[](#issues)

Please report any issues you find to the [Issues](https://github.com/internetztube/craft-spreadsheet-translations/issues) page.

Dynamic Strings
---------------

[](#dynamic-strings)

- You CANNOT translate dynamic strings. Please use the [message parameter](https://docs.craftcms.com/v3/static-translations.html#provide-the-translations). ```
    {{ ("Welcome back, " ~ currentUser.friendlyName ~ "!") | t }}

    ```

    ```
    {{ 'Welcome back, {name}!' | t(params = { name: currentUser.friendlyName}) }}

    ```

Console Utilities
-----------------

[](#console-utilities)

- Pulls all translations from the spreadsheet into static files on the disk. No handles get deleted! ```
    php craft spreadsheet-translations/main/pull-translations

    ```
- Pushes all missing translation handles from the templates into the spreadsheet. No handles get deleted! ```
    php craft spreadsheet-translations/main/push-missing-handles

    ```

    ⚠️ *Make sure there is an `translations//site.php` present! Otherwise, no translations get pulled from templates!*
- Pushes all missing site languages into the spreadsheet. No languages get deleted! ```
    php craft spreadsheet-translations/main/push-missing-languages

    ```

*These utilities are also available in the control panel in the Utilities section.*

Setup / Settings
----------------

[](#setup--settings)

### Google API

[](#google-api)

For this plugin a Google API token is mandatory. Here you will be shown how to create one.

1. Go to .
2. Click `ENABLE`.
3. Click `Credentials` in the sidebar.
4. Click `Create Credentials` and then select `Service account key`.
5. Click `Select...` and create a new Service account *or* use an existing Service account.
6. Just fill in a name and an eMail prefix. You will need the eMail address in a further step.
7. Keep `JSON` as Key type.
8. Click `Create`.
9. This Service account DOES NOT need a special role. So click `CREATE WITHOUT ROLE` in the modal.
10. A JSON file had been downloaded. The contents of this file must be copied to the `Contents of the access key file`-field in the plugin's settings.
11. Go to your Spreadsheet and share it with the eMail Address of the Service account.

### Google Spreadsheets

[](#google-spreadsheets)

In addition to the `Contents of the access key file`, the `Spreadsheet Id` and the `Sheet Name where the Translations are located` is required in the settings.

#### Spreadsheet Id

[](#spreadsheet-id)

The Spreadsheet Id is just a part of the URL.

```
https://docs.google.com/spreadsheets/d//edit

```

`https://docs.google.com/spreadsheets/d/11fRj44MwhGqFGpIYHGfwpA69ed-Z657WdiXex6kvuo8/edit` -&gt; `11fRj44MwhGqFGpIYHGfwpA69ed-Z657WdiXex6kvuo8`

#### Sheet Name

[](#sheet-name)

This is the name of the sheet, where the translations are stored, which should be applied for this project.

---

Brought to you by [Frederic Köberl](https://github.com/internetztube)

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 84.7% 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 ~156 days

Recently: every ~193 days

Total

11

Last Release

763d ago

Major Versions

1.1.5 → 2.0.0-beta.12022-04-02

2.0.0-beta.1 → 3.0.0-beta.12024-04-09

2.x-dev → 3.x-dev2024-04-09

PHP version history (3 changes)1.0.11PHP &gt;=7.0.0

1.1.1PHP &gt;=7.1.0

2.0.0-beta.1PHP ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6382364?v=4)[Frederic Köberl](/maintainers/internetztube)[@internetztube](https://github.com/internetztube)

---

Top Contributors

[![internetztube](https://avatars.githubusercontent.com/u/6382364?v=4)](https://github.com/internetztube "internetztube (50 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (7 commits)")[![JamesNuttall](https://avatars.githubusercontent.com/u/22011451?v=4)](https://github.com/JamesNuttall "JamesNuttall (2 commits)")

---

Tags

craft-plugincraft3craftcmstranslationcmsCraftcraftcmscraft-pluginspreadsheet translationsgoogle-spreadsheets

### Embed Badge

![Health badge](/badges/internetztube-craft-spreadsheet-translations/health.svg)

```
[![Health](https://phpackages.com/badges/internetztube-craft-spreadsheet-translations/health.svg)](https://phpackages.com/packages/internetztube-craft-spreadsheet-translations)
```

###  Alternatives

[acclaro/translations

Easily launch and manage multilingual Craft websites without having to copy/paste content or manually track updates.

1229.5k](/packages/acclaro-translations)[pierrestoffe/craft-language-redirector

Automatically redirect visitors to their preferred language

1634.0k](/packages/pierrestoffe-craft-language-redirector)

PHPackages © 2026

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