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 🥳
Albert Wolszon 💙@albert_wolszon@OrestesGaolin after your talk at @FlutterBerlin I'm about to jump into creating an open-source Localizely solution focused on #Flutter that anyone would be able to self-host for free. Let's see if this project will be a finished one 😂18:37 PM - 12 May 2020
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
Arbify
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
todb
. - By default
MAIL_MAILER
uses SMTP transport; you may want to change that tolog
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)
Albert Wolszon 💙@albert_wolszonFor the last week, I was working on Arbify! An open-source localization tool for #Flutter. Inspired by @OrestesGaolin talk at @FlutterBerlin x @FlutterLDN. You can check it out yourself with Docker github.com/Arbify/Arbify. 🌟 appreciated. Keep in mind it's early alpha!21:31 PM - 18 May 2020
Top comments (2)
Great work, I'll use it in next project.
Super cool!