Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

ABS+ now speaks 22 languages: how I translated a 4 MB audiobook player and tested every one

Description and use

ABS+ 1.2.4 added 22‑language support, improved plural handling, RTL layout, locale‑aware file size formatting, and dynamic error messages, raising the APK size by 243 KB.

Problem

Translate the ABS+ audiobook player into 22 languages while ensuring complete, correct, and functional localization.

Outcome

The 1.2.4 release added full 22‑language support, improved plural and RTL handling, dynamic error messages, and locale‑aware file size formatting, increasing APK size by 243 KB (6.2 %).

Workflow

  • 1. Added 22 language string catalogs (137 strings + 9 plural sets each) to Android and iOS projects.
  • 2. Updated Google Play and App Store listings to 24 locales, writing market‑specific text.
  • 3. Implemented LocalizationTest to verify string completeness, placeholder usage, plural coverage, and untranslated string detection.
  • 4. Added RTL support in Android manifest and fixed media controls layout for RTL languages.
  • 5. Replaced custom file‑size formatting with Android’s locale‑aware formatter.
  • 6. Refactored download error handling to store error reasons instead of full sentences, rendering them at display time.
  • 7. Added certificate‑error detection logic that distinguishes certificate problems from connectivity issues.
  • 8. Ran full test suite, ensuring all locales pass all checks.
  • 9. Released APK (4,182,014 bytes) and updated GitHub and release pages.
  • 10. Monitored App Store listings for iOS localization rollout.

Evidence

ABS+ 1.2.4, released on October 28, 2026, translates the whole app into 22 languages: English plus 21 more, from Arabic with a proper right-to-left layout to Ukrainian.

Source

I wrote one test, LocalizationTest, that does four things for every language: ...

Source

The manifest declares RTL support and the test asserts that an Arabic phone gets a right-to-left layout direction.

Source

The app builds "MB" and "GB" from its own strings. It now asks Android's size formatter, which picks the unit for the UI language, and the test checks that Russian and Ukrainian show "МБ" and that Arabic doesn't show the Latin "MB".

Source

The bug I'm gladdest I found is a quiet one. Before 1.2.4, when a download failed, the app stored the error on the download job as a finished sentence, such as "Couldn't download (HTTP 404)", built in whatever language was active at that moment.

Source

Now it says, in your language: "Couldn't connect securely to the server. Check its certificate."

Source

  • Record date: 2026-11-01T20:43:45.394Z