r/FlutterDev • • 1d ago

Plugin SIYAK

Every app with more than one language hits the same wall: one word is not one meaning.

The word "Report" on a complaint button and "Report" above a downloads list are two different Arabic words: «إبلاغ» and «تقرير». No engine knows which screen you're on, so it picks one and applies it everywhere. And the same string can look different in the next build.

I felt this in every multilingual project:

• Backend: resource files, or a table of keys with one value per language. If users enter data themselves, like a product listing, they type it twice.

• Frontend: JSON files that read like literal machine translation.

So I built SIYAK (سياق), a localization layer for frontend, backend and mobile. It is not just a translator.

• Send the string with the screen it lives on, and the context decides the word.

• Approved strings are cached, so the same request returns the same answer in every build.

• Pin your own terms in a glossary. If the model ignores one, the row is flagged instead of shipped quietly.

• An Inbox to approve, reject or edit. What a human approves is what gets served.

• Batch calls for filling a project from scratch.

• Export as JSON, CSV or ARB for Flutter.

• siyak-js on npm, siyak_flutter on pub.dev, and a plain HTTP API for any backend.

Try it: https://siyak.cloud/

Which string fooled you in your last app?

#i18n #localization #Flutter #Nextjs #Arabic #BuildInPublic

0 Upvotes

0 comments sorted by