DEV Community

Albert Wolszon
Albert Wolszon

Posted on

Arbify - l10n for Flutter made easy!

A week ago I attended an online meetup Flutter Berlin x FlutterLDN. One of the topics was Convenient internationalization of Flutter apps by Dominik Roszkowski. I really liked the solutions to l10n problems existing in Flutter that he presented.

But there was this one thing that I didn't like. He showed us one SaaS application as the only piece of software that deals with Flutter's ARB files good enough. This software, of course, is a paid one (with some free plan), but I thought it can't be that. That was the moment when I created a new GitHub repository 🥳

Arbify

Arbify is an ARB file localization tool dedicated to Flutter and its intl package. I'm developing it for 8 days straight now and it already works well as an MVP.

Target

My target to what I want Arbify to be is a tool that:

  • works well both for individuals as well as teams and companies
  • offers a simple access control via user and project roles
  • lets you easily export your messages to ARB file
  • and most importantly, is free to use! It's open-source and you can self-host it.

I plan to have a Dart extension that will let you easily integrate your Flutter project to any Arbify instance and easily sync your messages with your codebase.

Quick demo

Technology

At the beginning, I was wondering what technology should I choose for this project. I really had three options in my mind:

Dart
The language that the community already knows well so it would probably attract more contributors from the Flutter environment. But that's the technology I didn't know at all in terms of backend development.

PHP: Symfony/Laravel
The technologies that I personally know quite well and I can easily create stuff in.

Eventually, I chose Laravel and, I believe, thanks to that the project is in a very good shape right now!

Repository

GitHub logo Arbify / Arbify

ARB files localization tool. Dedicated to Flutter and its intl package.

Arbify

PHP workflow

ARB files localization tool. Dedicated to Flutter and its intl package.

For documentation regarding source code of Arbify, check DOCS.md.

Installation

For installation using docker-compose.

cp .env.example .env

Fill .env file with the configuration you want to use.

  • If you're using docker-compose, you need to change DB_HOST to db.
  • By default MAIL_MAILER uses SMTP transport; you may want to change that to log for development purposes.
docker-compose build arbify
docker-compose up -d

docker-compose run arbify composer install
docker-compose run arbify php artisan key:generate
docker-compose run arbify php artisan migrate
docker-compose run arbify php artisan db:seed
docker-compose run arbify npm install
docker-compose run arbify npm run prod

After this you're ready to go to http://localhost:8000 and check out Arbify yourself!

The php artisan db:seed command seeded the database with a pre-verified admin account with email admin@arbify.io and password password.




Additional thoughts

I'm very happy I finally found an idea for a project that a) is a niche on the market b) will truly help people and c) drives me so crazy I'm a little bit frustrated I'm programming instead of procrastinating 😂.

Giving back to the community is an awesome thing. (And looks like they like the idea)

Top comments (2)

Collapse
 
hdeyana profile image
hdeyana

Great work, I'll use it in next project.

Collapse
 
bartekpacia profile image
Bartek Pacia

Super cool!