app_name_localizer 1.2.0 copy "app_name_localizer: ^1.2.0" to clipboard
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.xml and generates the required strings.xml files for all specified languages.
  • 🍎 Smart iOS Processing: Automatically configures Info.plist and generates InfoPlist.strings directories 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 void return type to _printHelp to 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, and Info.plist files from backups.
    • Use -r or --revert flag, or access it via the interactive menu.
  • 🧹 Feature (Clean): Added a dedicated command to clean up your workspace by permanently deleting all .bak files generated by the tool.
    • Use -c or --clean flag, or access it via the interactive menu with a safety confirmation prompt (y/n).
  • 🎯 Enhancement (Targeted Operations): You can now target specific platforms for revert and clean operations (e.g., dart run app_name_localizer -r -a to 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 --help command 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, configures Info.plist, and seamlessly updates your macOS Xcode project.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): .bak files are no longer overwritten on repeated runs, so --revert can no longer lose the true original file after a second execution.
  • πŸ› οΈ Fix (Xcode Project Idempotency): Fixed two bugs in the project.pbxproj editor where re-running the tool (or running it after a previous version) would create duplicate InfoPlist.strings variant groups and duplicate children instead of detecting the existing ones.
  • πŸ›‘οΈ Enhancement (Safer Xcode Edits): project.pbxproj edits 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.pbxproj editing logic into a single shared PbxprojEditor, removing ~170 lines of duplicated code and ensuring future fixes apply to both platforms.
  • πŸ›‘οΈ Fix (XML Safety): AndroidManifest.xml and strings.xml are 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.pbxproj editor.

1.1.0 #

  • 🐧 Feature (Linux Support): Wired up the previously-unused LinuxProcessor into the CLI β€” -l/--linux now generates/updates a localized .desktop file (Name=/Name[lang]= per language), with full revert (-r -l) and clean (-c -l) support.
  • 🌐 Feature (Web Support): --web now localizes web/index.html (<title>, apple-mobile-web-app-title) and web/manifest.json (name, short_name). Since the Web App Manifest spec has no per-locale name mechanism, a single primary name is used everywhere β€” your en entry if present, otherwise the first configured language.
  • πŸͺŸ Feature (Windows Support): -w/--windows now localizes windows/runner/Runner.rc (FileDescription, InternalName, ProductName) and the taskbar/window title in windows/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 into main.cpp as \uXXXX/\UXXXXXXXX C++ universal character escapes rather than raw UTF-8 bytes, since the default Flutter Windows template doesn't set the /utf-8 compiler 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.yaml forcing serial test execution β€” the suite manipulates Directory.current, which is a process-wide OS attribute shared by every isolate, so concurrent test files could race on it.
  • πŸ“¦ Fix (Metadata): pubspec.yaml's platforms: declaration was still only listing android/ios even though macOS support shipped in 1.0.4 β€” now declares all six supported platforms.

1.2.0 #

  • πŸ” Feature (Dry Run): New -n/--dry-run flag 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.xml and strings.xml edits no longer re-serialize the whole file through the xml package (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-formatted AndroidManifest.xml with 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 for IosProcessor/MacosProcessor (previously only covered indirectly through PbxprojEditor's tests), and formatting-preservation tests for AndroidManifest.xml.
17
likes
160
points
148
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A powerful CLI tool to easily and automatically localize your Flutter app name across all Flutter platforms without manual configuration.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

path, xml, yaml

More

Packages that depend on app_name_localizer