PHPackages                             dive-be/laravel-lingo - 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. dive-be/laravel-lingo

ActiveLibrary[Localization &amp; i18n](/categories/localization)

dive-be/laravel-lingo
=====================

Import and export translations from CSV files

v0.3.0(3y ago)015MITPHPPHP ^8.1

Since Aug 11Pushed 3y agoCompare

[ Source](https://github.com/dive-be/laravel-lingo)[ Packagist](https://packagist.org/packages/dive-be/laravel-lingo)[ Docs](https://github.com/dive-be/laravel-lingo)[ RSS](/packages/dive-be-laravel-lingo/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (3)Dependencies (11)Versions (4)Used By (0)

Laravel Lingo
=============

[](#laravel-lingo)

[![Latest Version on Packagist](https://camo.githubusercontent.com/8c31f8478927d24f6551d1125973bcf17c0178d25fe8a943a12f580e236fb6b1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646976652d62652f6c61726176656c2d6c696e676f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dive-be/laravel-lingo)

⚠️ Minor releases of this package may cause breaking changes as it has no stable release yet.

What problem does this package solve?
-------------------------------------

[](#what-problem-does-this-package-solve)

Sometimes, clients will use translation services and supply CSV files with translations. You can use this package to import those translations.

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

[](#installation)

You can install the package via composer:

```
composer require dive-be/laravel-lingo
```

This is the contents of the published config file:

```
return [
    'exclude' => [],
];
```

Usage
-----

[](#usage)

A common usage is to load or export specific translations from a CSV file.

### Example usage

[](#example-usage)

#### Saving loaded translations to your local Laravel project

[](#saving-loaded-translations-to-your-local-laravel-project)

You can take the loaded translations and save them to your local Laravel project.

```
Lingo::make()
    ->parseFile('/path/to/translations.csv', 'nl')
    ->persist('nl');
```

You may wish to load the existing translations from your Laravel app first, and then save (overwrite) the merged list of translations:

```
Lingo::make()
    ->load('nl')
    ->parseFile('/path/to/translations.csv', 'nl')
    ->persist('nl');
```

If you do not want to override translation keys that already exist (and only import new ones), you can configure this when parsing the file:

```
Lingo::make()
    ->load('es')
    ->parseFile(
        filePath: '/path/to/translations.csv',
        locales: 'es',
        replacingExistingValues: false,
    )
    ->persist('es');
```

#### Exporting to a CSV file

[](#exporting-to-a-csv-file)

Another common use case is exporting your translations to a CSV file, so you can send these to a client or translator.

**Note**: If you have keys for translations that only exist for a given language, you may wish to *load all* translations, and export for all languages. This way you can get the union of all translation keys across all those languages, along with the localized version. If translations are missing, those fields will be left empty.

This can easily be accomplished like this:

```
Lingo::make()
    ->load($languages = ['en', 'nl', 'fr'])
    ->exportToCsvFile('path/to/output.csv', $languages);
```

### CSV file constraints (for importing translations)

[](#csv-file-constraints-for-importing-translations)

- The CSV file must have headers corresponding to the different locales.
- The translation key's header must be `key`.
- By default, you must use a semicolon (`;`) to separate columns. (You can modify the delimiter character.)
- You cannot have duplicate column names (you may wish to rename empty columns after exporting from Excel or Numbers).

A valid file looks like this:

```
key,nl,en
auth-login.title;Aanmelden;Log In
auth-login.description;Vul hieronder je gegevens in.;Fill in your details below.
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Nico Verbruggen](https://github.com/dive-be)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

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 ~13 days

Total

3

Last Release

1395d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/59749?v=4)[Artem Loenko](/maintainers/dive)[@dive](https://github.com/dive)

---

Tags

exportimportlaraveltranslationslaraveldivelingo

###  Code Quality

TestsPest

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/dive-be-laravel-lingo/health.svg)

```
[![Health](https://phpackages.com/badges/dive-be-laravel-lingo/health.svg)](https://phpackages.com/packages/dive-be-laravel-lingo)
```

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M188](/packages/laravel-ai)[laravel/sail

Docker files for running a basic Laravel application.

1.9k205.7M1.3k](/packages/laravel-sail)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M145](/packages/laravel-mcp)[propaganistas/laravel-disposable-email

Disposable email validator

6023.0M7](/packages/propaganistas-laravel-disposable-email)[tallstackui/tallstackui

TallStackUI is a powerful suite of Blade components that elevate your workflow of Livewire applications.

725172.4k14](/packages/tallstackui-tallstackui)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)

PHPackages © 2026

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