app_name_localizer 1.2.0
app_name_localizer: ^1.2.0 copied to clipboard
A powerful CLI tool to easily and automatically localize your Flutter app name across all Flutter platforms without manual configuration.
1.0.0 #
π Initial Release
- β¨ Core Feature: Introduced a powerful CLI tool to automatically localize Flutter app names for both Android and iOS seamlessly.
- π€ Smart Android Processing: Automatically and safely updates
AndroidManifest.xmland generates the requiredstrings.xmlfiles for all specified languages. - π Smart iOS Processing: Automatically configures
Info.plistand generatesInfoPlist.stringsdirectories for targeted iOS localizations. - π» Interactive CLI: Added a user-friendly terminal interface allowing developers to target specific platforms (Android only, iOS only, or Both) using interactive prompts or fast CLI flags (
-a,-i). - βοΈ Easy Configuration: Reads language key-value pairs effortlessly from the project configuration.
- π¨ Developer Experience: Implemented colorful, formatted console logs with clear success messages, warnings, and error handling for a premium developer experience.
1.0.1 #
- π οΈ Fix: Added missing
voidreturn type to_printHelpto satisfy static analysis. - π Documentation: Added comprehensive Dartdoc comments (API reference) for all public and private classes.
- π Metadata: Corrected repository and homepage URLs in
pubspec.yaml. - π Example: Added an official example directory to demonstrate usage.
- β‘ Optimization: Removed unnecessary Flutter dependencies to make the package "Pure Dart".
1.0.2 #
- π Platform Support: Officially restricted package tags to Android and iOS only to reflect intended CLI usage for mobile projects.
1.0.3 #
- π Feature (Revert): Introduced the ability to undo localization changes and safely restore original
AndroidManifest.xml,project.pbxproj, andInfo.plistfiles from backups.- Use
-ror--revertflag, or access it via the interactive menu.
- Use
- π§Ή Feature (Clean): Added a dedicated command to clean up your workspace by permanently deleting all
.bakfiles generated by the tool.- Use
-cor--cleanflag, or access it via the interactive menu with a safety confirmation prompt (y/n).
- Use
- π― Enhancement (Targeted Operations): You can now target specific platforms for revert and clean operations (e.g.,
dart run app_name_localizer -r -ato revert Android only). - π‘οΈ Enhancement (Interactive CLI): Improved the interactive menu UX by removing default empty inputs to prevent accidental executions and added intuitive sub-menus for advanced options.
- π Documentation: Updated CLI
--helpcommand with practical examples for the new flags.
1.0.4 #
- π Feature (macOS Support): Fully automated app name localization for macOS! The tool now automatically generates
InfoPlist.strings, configuresInfo.plist, and seamlessly updates your macOS Xcodeproject.pbxproj. - π‘οΈ Enhanced Revert & Clean: The revert (
-r) and clean (-c) operations now fully support macOS backups. - πΊοΈ Roadmap Preview: Added "Coming Soon" placeholders in the interactive menu and CLI help for Linux, Windows, and Web platforms. Stay tuned!
- π» Interactive CLI: Expanded the main menu to handle 9 dynamic options with seamless platform targeting.
1.0.5 #
- π οΈ Fix: Some Problem in Code.
1.0.6 #
- π‘οΈ Fix (Backup Safety):
.bakfiles are no longer overwritten on repeated runs, so--revertcan no longer lose the true original file after a second execution. - π οΈ Fix (Xcode Project Idempotency): Fixed two bugs in the
project.pbxprojeditor where re-running the tool (or running it after a previous version) would create duplicateInfoPlist.stringsvariant groups and duplicate children instead of detecting the existing ones. - π‘οΈ Enhancement (Safer Xcode Edits):
project.pbxprojedits are now validated for balanced braces/parentheses before being written; if a change would corrupt the file, the backup is restored automatically and the operation is aborted with a clear error instead of leaving a broken Xcode project. - π§© Refactor: Extracted the duplicated iOS/macOS
project.pbxprojediting logic into a single sharedPbxprojEditor, removing ~170 lines of duplicated code and ensuring future fixes apply to both platforms. - π‘οΈ Fix (XML Safety):
AndroidManifest.xmlandstrings.xmlare now parsed and written with a real XML parser instead of regular expressions, so app names containing characters like&,<, or"no longer produce invalid XML. - π§Ή Cleanup: Removed leftover internal review comments from the source.
- π Tests: Added a unit test suite covering configuration loading, backup/restore behavior, Android processing, and the
project.pbxprojeditor.
1.1.0 #
- π§ Feature (Linux Support): Wired up the previously-unused
LinuxProcessorinto the CLI β-l/--linuxnow generates/updates a localized.desktopfile (Name=/Name[lang]=per language), with full revert (-r -l) and clean (-c -l) support. - π Feature (Web Support):
--webnow localizesweb/index.html(<title>,apple-mobile-web-app-title) andweb/manifest.json(name,short_name). Since the Web App Manifest spec has no per-locale name mechanism, a single primary name is used everywhere β yourenentry if present, otherwise the first configured language. - πͺ Feature (Windows Support):
-w/--windowsnow localizeswindows/runner/Runner.rc(FileDescription,InternalName,ProductName) and the taskbar/window title inwindows/runner/main.cpp. Same single-primary-name limitation as Web, since Windows has no built-in per-locale display name either. Non-ASCII names are written intomain.cppas\uXXXX/\UXXXXXXXXC++ universal character escapes rather than raw UTF-8 bytes, since the default Flutter Windows template doesn't set the/utf-8compiler flag. - π» Enhancement (Interactive CLI): The interactive menu, revert submenu, and clean submenu all now offer Linux/Windows/Web alongside Android/iOS/macOS instead of "Coming Soon" placeholders.
- π Tests: Added unit test suites for the Linux, Web, and Windows processors.
- π οΈ Fix (Test Infra): Added
dart_test.yamlforcing serial test execution β the suite manipulatesDirectory.current, which is a process-wide OS attribute shared by every isolate, so concurrent test files could race on it. - π¦ Fix (Metadata):
pubspec.yaml'splatforms:declaration was still only listingandroid/ioseven though macOS support shipped in 1.0.4 β now declares all six supported platforms.
1.2.0 #
- π Feature (Dry Run): New
-n/--dry-runflag previews exactly what every processor would change β a per-file, line-level diff β without writing, backing up, or creating any file or directory. Works with any platform flag combination and the interactive menu. - π§© Refactor: Every processor's core write path now separates "compute the new content" from "write it," so dry-run and real runs share the exact same transformation logic β the preview is guaranteed to match what a real run would produce.
- π οΈ Fix (Minimal Diffs):
AndroidManifest.xmlandstrings.xmledits no longer re-serialize the whole file through thexmlpackage (which flattened hand-formatted, multi-line XML into single-line output). Both files are now edited with targeted text surgery that touches only the specific attribute/element that changed β a hand-formattedAndroidManifest.xmlwith comments and multi-line attributes now gets a single-line diff instead of the entire file being rewritten. - π Tests: Added dry-run coverage across all six processors plus
PbxprojEditor, new baseline test suites forIosProcessor/MacosProcessor(previously only covered indirectly throughPbxprojEditor's tests), and formatting-preservation tests forAndroidManifest.xml.