esmaulhusna_muslimbg 1.0.8
esmaulhusna_muslimbg: ^1.0.8 copied to clipboard
Flutter package for Esmaul Husna / Asma ul Husna with Arabic text, meanings, offline JSON data, and Balkan locale support for Islamic apps.
Changelog #
1.1.0 Unreleased #
1.0.8 #
- Add audio support — 99 MP3 files (Ar-Rahman → As-Sabur) bundled in
lib/assets/audio/ - Add
audiofield to all translation JSON files (ar,bg,bs_BA,en,sq_AL,tr) — points topackages/esmaulhusna_muslimbg/lib/assets/audio/{n}_{transliteration}.mp3; empty string for the Allah entry getNames()andgetRandomName()now return theaudioasset path alongsidearabic,name, andtranslation- Update example app — tapping the Arabic name in the detail sheet plays the pronunciation audio using
audioplayers
1.0.7 #
- Replace translation data for
tr,bs_BA,sq_AL, andenwith enriched full-meaning entries — each locale now includes all 100 entries (Allah + 99 names) with detailed meanings - Remove
sq_XKlocale — file removed;sq_xkalias now resolves tosq_AL - Remove
mk_MKfrom supported locales (translation pending) —mk/mk_MK/macedonianaliases fall back toen - Add
albanian,bosnianfull-name aliases - Fix
setState()async bug in example app —Futurenow assigned beforesetStatecall - Update example app language dropdown to reflect current supported locales:
ar,bg,bs_BA,en,sq_AL,tr
1.0.6 #
- Rewrite example app with 3-tab layout — names list with language selector, random name card, and locale reference tab
- Add
.pubignoreto exclude build artifacts and IDE files from the published archive - Improve README — add pub.dev badges, full API reference, locale alias table, device locale integration, built-in widget docs, and 1.0.3→1.0.4 migration guide
- Update
flutter_lintsto^5.0.0and remove redundantlintsdev dependency - Clean up
pubspec.yaml— remove boilerplate comments
1.0.4 #
- Add canonical offline JSON translation files for
ar,bg,en,tr,bs_BA,mk_MK,sq_AL, andsq_XK - Add locale alias resolution — short codes (
bs,mk,sq), regional variants (en_US,tr_TR), and full names (english,turkish) all resolve correctly - Add
getSupportedLanguages()to expose the list of canonical locale codes - Add in-memory cache for
getNames()— repeated calls for the same locale skip asset re-loading getRandomName()now throws a descriptiveStateErrorwhen no data is available- Rename translation map key
description→translationfor consistency (breaking for consumers reading this key) - Add unit tests in
test/esmaulhusna_base_test.dart - Update package description and pub.dev topics for better discoverability
- Fix
issue_trackerURL
1.0.3 #
- First stable release
- Added more comprehensive language support
- Optimized performance for name retrieval
- Improved error handling and user feedback
- Updated documentation with detailed usage examples
- Ensured compatibility with latest Flutter versions
- Fixed all known bugs from previous versions
0.0.5 #
- Improved translation accuracy for existing languages
- Enhanced error handling for invalid language codes
- Added new method
getSupportedLanguages()to get available translations - Updated documentation with new language examples
- Performance optimizations for name retrieval
- Added proper null safety support
- Improved code documentation and examples
0.0.4 #
-
Added new
getRandomNamemethod for random name selection -
Improved error handling in translation loading
-
Added comprehensive test suite
-
Updated documentation with new examples
-
Fixed asset loading in package environment
-
Added GitHub Actions for automated publishing
-
Minor documentation updates to reflect the changes in the Arabic names
-
Improved error handling for translation loading
-
Added proper asset bundling support
-
Major API changes for better async support:
// New async API for getting names final names = await EsmaulHusna.getNames('bg'); final randomName = await EsmaulHusna.getRandomName('bg'); -
Added support for structured JSON translations
-
Improved asset loading for package usage
-
Fixed file path issues when used as a package
-
Updated translation file naming convention to
{language}_name_value.json
0.0.2+1 #
-
Fixed package name from 'esmaulhusna_muslimbg' to 'esmaulhusna_muslimbg'
-
Updated documentation with detailed usage examples:
// Get specific name final names = await EsmaulHusna.getNames('en'); print(names[0]['name']); // Returns: The Most Gracious print(names[0]['arabic']); // Returns: الرَّحْمَنُ -
Added example app demonstrating:
- ListView of all 99 names
- Individual name lookup
- Multi-language display
-
Improved code organization and readability
-
Performance optimizations for name retrieval
-
Enhanced error handling with meaningful messages
0.0.2 #
-
Added comprehensive support for multiple languages:
// Example usage for all supported languages final englishNames = await EsmaulHusna.getNames('en'); final turkishNames = await EsmaulHusna.getNames('tr'); final bulgarianNames = await EsmaulHusna.getNames('bg'); -
Each name entry now contains:
{ 'arabic': 'Arabic text of the name', 'name': 'Name in requested language', 'translation': 'Description/meaning in requested language' }
0.0.1 #
- Initial release with basic functionality
- Support for English, Arabic, Turkish, and Bulgarian translations
- Basic error handling and input validation