<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Azma Finance</title>
    <description>The latest articles on DEV Community by Azma Finance (@azma_finance).</description>
    <link>https://dev.to/azma_finance</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3928458%2Faaeaace0-f752-4e5e-b3d9-fd06c8780435.png</url>
      <title>DEV Community: Azma Finance</title>
      <link>https://dev.to/azma_finance</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/azma_finance"/>
    <language>en</language>
    <item>
      <title>Building a Multi-Language SaaS in Central Asia: Lessons Learned (UZ/RU/EN/CN)</title>
      <dc:creator>Azma Finance</dc:creator>
      <pubDate>Wed, 13 May 2026 05:22:19 +0000</pubDate>
      <link>https://dev.to/azma_finance/building-a-multi-language-saas-in-central-asia-lessons-learned-uzruencn-1ccc</link>
      <guid>https://dev.to/azma_finance/building-a-multi-language-saas-in-central-asia-lessons-learned-uzruencn-1ccc</guid>
      <description>&lt;p&gt;When we started building Azma Finance — an online accounting platform for small businesses in Uzbekistan — we knew localization would be important. We didn't know it would become one of our biggest engineering and product challenges.&lt;/p&gt;

&lt;p&gt;Here's what we learned after shipping in four languages: Uzbek, Russian, English, and Chinese.&lt;/p&gt;

&lt;p&gt;Why four languages?&lt;/p&gt;

&lt;p&gt;Uzbekistan is genuinely multilingual. Most people over 35 are comfortable in Russian. The younger generation prefers Uzbek. Foreign investors and expats need English. And with a growing wave of Chinese businesses entering the Central Asian market, Mandarin became a real business need — not a nice-to-have.&lt;/p&gt;

&lt;p&gt;Skip any of these, and you're leaving a meaningful chunk of users behind.&lt;/p&gt;

&lt;p&gt;Lesson 1: Language is not just translation&lt;/p&gt;

&lt;p&gt;The hardest part wasn't translating strings — it was context. In Uzbek, formal and informal address completely change the tone of UI copy. In Russian, nouns have grammatical gender that affects button labels. In Chinese, the same concept can require a completely different explanation because the business culture around accounting is different.&lt;/p&gt;

&lt;p&gt;We learned quickly: &lt;strong&gt;don't hand a spreadsheet of strings to a translator and call it done.&lt;/strong&gt; You need someone who understands your product and the language.&lt;/p&gt;

&lt;p&gt;Lesson 2: RTL isn't your only layout problem&lt;/p&gt;

&lt;p&gt;We didn't have RTL to deal with, but we did have text expansion. Russian strings are typically 30–40% longer than their English equivalents. Uzbek in Latin script is closer to English in length, but Uzbek in Cyrillic (still used by many) is longer again.&lt;/p&gt;

&lt;p&gt;Buttons that look clean in English break in Russian. Modals overflow. Tables wrap awkwardly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Design with Russian as your "stress test" language. If a UI element holds in Russian, it'll hold in everything else.&lt;/p&gt;

&lt;p&gt;Lesson 3: Locale goes deeper than language&lt;/p&gt;

&lt;p&gt;Date formats, number formats, currency display — these all differ. In Uzbekistan, the currency is UZS (Uzbek soum), and large numbers are written differently than in Western contexts. Tax reporting has its own terminology that doesn't map cleanly to international accounting language.&lt;/p&gt;

&lt;p&gt;We had to build a locale layer that handled not just &lt;code&gt;i18n&lt;/code&gt; strings, but business logic formatting too.&lt;/p&gt;

&lt;p&gt;Lesson 4: Let users switch language instantly — no page reload&lt;/p&gt;

&lt;p&gt;This sounds obvious but it's easy to get wrong early on. We initially built language switching as a full page reload with a URL prefix (&lt;code&gt;/ru&lt;/code&gt;, &lt;code&gt;/uz&lt;/code&gt;, &lt;code&gt;/en&lt;/code&gt;). It worked, but it felt sluggish and lost form state.&lt;/p&gt;

&lt;p&gt;Moving to in-memory locale switching (with the URL update happening silently) made the experience feel much more native.&lt;/p&gt;

&lt;p&gt;Lesson 5: English opens unexpected doors&lt;/p&gt;

&lt;p&gt;We added English primarily for foreign-owned businesses in Uzbekistan. But English content also helped us reach the diaspora — Uzbek entrepreneurs living abroad who want to register and manage a business back home remotely.&lt;/p&gt;

&lt;p&gt;It also made our product legible to international investors. Sometimes &lt;code&gt;EN&lt;/code&gt; is less about language and more about signal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start with a proper i18n library from day one (we refactored mid-build)&lt;/li&gt;
&lt;li&gt;Build a translation management system early — spreadsheets don't scale past two languages&lt;/li&gt;
&lt;li&gt;Involve native speakers in UX review, not just translation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building for a multilingual market in Central Asia is genuinely interesting engineering. The region is growing fast, the problems are real, and the solutions can't just be copy-pasted from Western SaaS playbooks.&lt;/p&gt;

&lt;p&gt;If you're building something similar — or thinking about expanding into this market — happy to talk -&amp;gt; &lt;a href="https://azmafinance.com/talk-to-expert" rel="noopener noreferrer"&gt;https://azmafinance.com/talk-to-expert&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>database</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
