PHPackages                             yurijbogdanov/remote-translations-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. yurijbogdanov/remote-translations-bundle

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

yurijbogdanov/remote-translations-bundle
========================================

YBRemoteTranslationsBundle - Symfony bundle for using translations stored remotely (API, AWS S3, Google Sheets, PDO).

1.0.12(8y ago)1582MITPHPPHP &gt;=7.1

Since Dec 14Pushed 8y ago1 watchersCompare

[ Source](https://github.com/yurijbogdanov/symfony-remote-translations-bundle)[ Packagist](https://packagist.org/packages/yurijbogdanov/remote-translations-bundle)[ Docs](https://github.com/yurijbogdanov/symfony-remote-translations-bundle)[ RSS](/packages/yurijbogdanov-remote-translations-bundle/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

Symfony bundle for using translations stored remotely (API, AWS S3, Google Sheets, PDO)
=======================================================================================

[](#symfony-bundle-for-using-translations-stored-remotely-api-aws-s3-google-sheets-pdo)

[![Build Status](https://camo.githubusercontent.com/12dbfbe4eb29dddb28fd27b7af6d1040129a7291c43195b074af266b31f65c5f/68747470733a2f2f7472617669732d63692e6f72672f797572696a626f6764616e6f762f73796d666f6e792d72656d6f74652d7472616e736c6174696f6e732d62756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/yurijbogdanov/symfony-remote-translations-bundle)

[![SensioLabsInsight](https://camo.githubusercontent.com/5d184a7591508ce082dbef9f09e9a1d6d357c9380b9af0bcc25cb7b8fcf84915/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f39383635633566352d306662302d343565612d626131382d6230393665323932363438642f6269672e706e67)](https://insight.sensiolabs.com/projects/9865c5f5-0fb0-45ea-ba18-b096e292648d)

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

[](#installation)

The YBRemoteTranslationsBundle can be installed:

- via Terminal by executing command:

```
composer require yurijbogdanov/remote-translations-bundle
```

- via [Composer](http://getcomposer.org) by requiring the `yurijbogdanov/remote-translations-bundle` package in your project's `composer.json`:

```
{
    "require": {
        "yurijbogdanov/remote-translations-bundle": "~1.0"
    }
}
```

and adding an instance of `YB\Bundle\RemoteTranslationsBundle\YBRemoteTranslationsBundle` to your application's kernel:

```
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        return [
            ...
            new YB\Bundle\RemoteTranslationsBundle\YBRemoteTranslationsBundle(),
        ];
    }
    ...
}
```

Configuration
-------------

[](#configuration)

Minimum configurations `config.yml` with only required options:

```
yb_remote_translations:
    api:
        client:
            endpoint: 'http://example.com/no-auth/translations/{domain}/{locale}/'

    awss3:
        client:
            region: 'my-region'
            bucket: 'my-translations-bucket'
            credentials:
                key: 'my-aws-s3-key'
                secret: 'my-aws-s3-secret'

    googlesheets:
        client:
            spreadsheet_id: 'my-google-spreadsheet-id'
            credentials: '%kernel.root_dir%/../var/credentials/google/my-google-project-credentials.json'

    pdo: ~
```

Full configurations `config.yml`:

```
yb_remote_translations:
    api:
        loader:
            class: YB\Bundle\RemoteTranslationsBundle\Translation\Loader\ApiLoader
        client:
            endpoint: 'http://example.com/basic-auth/translations/{domain}/{locale}/'
            class: GuzzleHttp\Client
            method: 'GET'
            auth: ['my-username', 'my-password']
            headers:
                My-Custom-Header-Key: 'My-Custom-Header-Value'
        logger: logger

    awss3:
        loader:
            class: YB\Bundle\RemoteTranslationsBundle\Translation\Loader\AwsS3Loader
        client:
            region: 'my-region'
            bucket: 'my-translations-bucket'
            credentials:
                key: 'my-aws-s3-key'
                secret: 'my-aws-s3-secret'
            class: Aws\S3\S3Client
            version: 'latest'
            file_name_format: '{domain}.{locale}.csv'
        logger: logger

    googlesheets:
        loader:
            class: YB\Bundle\RemoteTranslationsBundle\Translation\Loader\GoogleSheetsLoader
        client:
            spreadsheet_id: 'my-google-spreadsheet-id'
            credentials: '%kernel.root_dir%/../var/credentials/google/my-google-project-credentials.json'
            class: Google_Service_Sheets
            sheet_name_format: '{domain}.{locale}'
            sheet_range: 'A1:B'
        logger: logger

    pdo:
        loader:
            class: YB\Bundle\RemoteTranslationsBundle\Translation\Loader\PdoLoader
        client:
            dsn: 'mysql:host=%database_host%;port=%database_port%;dbname=%database_name%'
            user: '%database_user%'
            password: '%database_password%'
            class: PDO
            table: 'translations'
            locale_col: 'locale'
            domain_col: 'domain'
            key_col: 'key'
            value_col: 'value'
        logger: logger
```

Usage
-----

[](#usage)

Create empty files in your Resources/translations/ folder using format %domain%.%locale%.%loader%:

- for using API create new file with extension `.api` (e.g. messages.en.api)
- for using AWS S3 create new file with extension `.awss3` (e.g. messages.en.awss3)
- for using Google Sheets create new file with extension `.googlesheets` (e.g. messages.en.googlesheets)
- for using PDO create new file with extension `.pdo` (e.g. messages.en.pdo)

### ApiLoader

[](#apiloader)

Dependencies:

- [Guzzle, PHP HTTP client](https://github.com/guzzle/guzzle)

### AwsS3Loader

[](#awss3loader)

Dependencies:

- [AWS SDK for PHP](https://github.com/aws/aws-sdk-php)

### GoogleSheetsLoader

[](#googlesheetsloader)

Dependencies:

- [Google APIs Client Library for PHP](https://github.com/google/google-api-php-client)

### PdoLoader

[](#pdoloader)

Dependencies:

##### MySQL

[](#mysql)

```
CREATE TABLE translations (
    id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    locale VARCHAR(128) NOT NULL,
    domain VARCHAR(128) NOT NULL,
    key VARCHAR(128) NOT NULL,
    value TEXT NOT NULL
);
```

##### PostgreSQL

[](#postgresql)

```
CREATE TABLE translations (
  id SERIAL NOT NULL,
  locale VARCHAR(128) NOT NULL,
  domain VARCHAR(128) NOT NULL,
  key VARCHAR(128) NOT NULL,
  value TEXT NOT NULL
);
```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

3120d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d846e41fe3c9624196805fd056443c3337004eb1b2ebcfb3986b17f54f5703dd?d=identicon)[yurijbogdanov](/maintainers/yurijbogdanov)

---

Top Contributors

[![yurijbogdanov](https://avatars.githubusercontent.com/u/2619096?v=4)](https://github.com/yurijbogdanov "yurijbogdanov (1 commits)")

---

Tags

phpsymfonysymfony-bundlesymfony-translationsymfony-translationsphpsymfonySymfony Bundlesymfony-translationsymfony-translations

### Embed Badge

![Health badge](/badges/yurijbogdanov-remote-translations-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/yurijbogdanov-remote-translations-bundle/health.svg)](https://phpackages.com/packages/yurijbogdanov-remote-translations-bundle)
```

###  Alternatives

[ellaisys/aws-cognito

Laravel Authentication using AWS Cognito (Web and API)

123256.9k1](/packages/ellaisys-aws-cognito)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k34](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[keboola/storage-api-client

Keboola Storage API PHP Client

10405.9k31](/packages/keboola-storage-api-client)[jasara/php-amzn-selling-partner-api

A fluent interface for Amazon's Selling Partner API in PHP

1348.1k1](/packages/jasara-php-amzn-selling-partner-api)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1232.2k17](/packages/fleetbase-core-api)

PHPackages © 2026

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