Skip to content

Update AppLocalizations iOS localization docs to match current Xcode UI#188675

Open
MajidAli2006 wants to merge 1 commit into
flutter:masterfrom
MajidAli2006:docs/update-applocalizations-ios-184916
Open

Update AppLocalizations iOS localization docs to match current Xcode UI#188675
MajidAli2006 wants to merge 1 commit into
flutter:masterfrom
MajidAli2006:docs/update-applocalizations-ios-184916

Conversation

@MajidAli2006

Copy link
Copy Markdown

Description

The generated AppLocalizations dartdoc (produced by the gen_l10n template) described the deprecated workflow for declaring supported iOS locales — editing Info.plist via the ios/Runner.xcworkspace workspace and the Information Property List editor.

This updates the documentation to match the current workflow documented on docs.flutter.dev — Localizing for iOS: Updating the iOS app bundle:

  1. Open ios/Runner.xcodeproj
  2. Select the Runner project under Projects in the Project Navigator
  3. Select the Info tab
  4. Use the Localizations section's Add (+) button to add supported languages/regions

The same doc block is updated in the template and in its two checked-in generated outputs so the regeneration check stays consistent:

  • packages/flutter_tools/lib/src/localizations/gen_l10n_templates.dart (template)
  • dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart (generated)
  • dev/integration_tests/new_gallery/lib/gallery_localizations.dart (generated)

Related Issues

Fixes #184916

Tests

Documentation-only change (dartdoc comments); no behavioral change, so no new tests are added.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
  • I signed the CLA.
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is test-exempt.
  • All existing and new tests are passing.

@github-actions github-actions Bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Jun 27, 2026
@google-cla

google-cla Bot commented Jun 27, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the iOS localization instructions in stock_strings.dart, gallery_localizations.dart, and gen_l10n_templates.dart to guide users through configuring supported languages via the Xcode project settings instead of editing the Info.plist file directly. Feedback on these changes suggests referencing ios/Runner.xcworkspace instead of ios/Runner.xcodeproj to prevent potential build issues with CocoaPods dependencies.

///
/// Next, select the Information Property List item, select Add Item from the
/// Editor menu, then select Localizations from the pop-up menu.
/// 1. Open your project's `ios/Runner.xcodeproj` Xcode file.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The official Flutter documentation (https://docs.flutter.dev/ui/internationalization#localizing-for-ios-updating-the-ios-app-bundle) recommends opening ios/Runner.xcworkspace rather than ios/Runner.xcodeproj. Opening the .xcodeproj file directly in a Flutter project that uses plugins can cause build issues in Xcode because CocoaPods dependencies are only integrated via the workspace (.xcworkspace). Please update this step to reference ios/Runner.xcworkspace to align with the official documentation and standard Flutter practices.

Suggested change
/// 1. Open your project's `ios/Runner.xcodeproj` Xcode file.
/// 1. Open your project's ios/Runner.xcworkspace Xcode workspace.
References
  1. Documentation should be useful and accurate, explaining the why and the how correctly. (link)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review! This is intentional and I'd like to keep ios/Runner.xcodeproj here.

This change is specifically aligning the doc with the official Flutter documentation that issue #184916 cited — Localizing for iOS: Updating the iOS app bundle. Step 1 there reads verbatim: "Open your project's ios/Runner.xcodeproj Xcode file."

The .xcworkspace guidance applies when building/running an app with plugins (CocoaPods integrates via the workspace). This section is about adding App Store localization metadata in the project editor (Info tab → Localizations), which Apple/Flutter document via the .xcodeproj project file. So switching to .xcworkspace would re-introduce exactly the wording this PR set out to correct. Keeping .xcodeproj to match the authoritative docs.

///
/// Next, select the Information Property List item, select Add Item from the
/// Editor menu, then select Localizations from the pop-up menu.
/// 1. Open your project's `ios/Runner.xcodeproj` Xcode file.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The official Flutter documentation (https://docs.flutter.dev/ui/internationalization#localizing-for-ios-updating-the-ios-app-bundle) recommends opening ios/Runner.xcworkspace rather than ios/Runner.xcodeproj. Opening the .xcodeproj file directly in a Flutter project that uses plugins can cause build issues in Xcode because CocoaPods dependencies are only integrated via the workspace (.xcworkspace). Please update this step to reference ios/Runner.xcworkspace to align with the official documentation and standard Flutter practices.

Suggested change
/// 1. Open your project's `ios/Runner.xcodeproj` Xcode file.
/// 1. Open your project's ios/Runner.xcworkspace Xcode workspace.
References
  1. Documentation should be useful and accurate, explaining the why and the how correctly. (link)

///
/// Next, select the Information Property List item, select Add Item from the
/// Editor menu, then select Localizations from the pop-up menu.
/// 1. Open your project's `ios/Runner.xcodeproj` Xcode file.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The official Flutter documentation (https://docs.flutter.dev/ui/internationalization#localizing-for-ios-updating-the-ios-app-bundle) recommends opening ios/Runner.xcworkspace rather than ios/Runner.xcodeproj. Opening the .xcodeproj file directly in a Flutter project that uses plugins can cause build issues in Xcode because CocoaPods dependencies are only integrated via the workspace (.xcworkspace). Please update this step to reference ios/Runner.xcworkspace to align with the official documentation and standard Flutter practices.

Suggested change
/// 1. Open your project's `ios/Runner.xcodeproj` Xcode file.
/// 1. Open your project's ios/Runner.xcworkspace Xcode workspace.
References
  1. Documentation should be useful and accurate, explaining the why and the how correctly. (link)

@MajidAli2006

Copy link
Copy Markdown
Author

@googlebot I signed it!

1 similar comment
@MajidAli2006

Copy link
Copy Markdown
Author

@googlebot I signed it!

@fluttergithubbot

Copy link
Copy Markdown
Contributor

An existing Git SHA, 13635cff54177a525df9e6cc997d3692ff1c8395, was detected, and no actions were taken.

To re-trigger presubmits after closing or re-opeing a PR, or pushing a HEAD commit (i.e. with --force) that already was pushed before, push a blank commit (git commit --allow-empty -m "Trigger Build") or rebase to continue.

@MajidAli2006 MajidAli2006 force-pushed the docs/update-applocalizations-ios-184916 branch from 13635cf to c0397cd Compare June 27, 2026 05:55
The generated `AppLocalizations` dartdoc described the deprecated
Info.plist/xcworkspace workflow for declaring supported iOS locales.
Update the gen_l10n template and its checked-in generated outputs to
match the current `ios/Runner.xcodeproj` → Info tab → Localizations
steps documented at docs.flutter.dev.

Fixes flutter#184916
@MajidAli2006 MajidAli2006 force-pushed the docs/update-applocalizations-ios-184916 branch from c0397cd to 95af9d2 Compare June 27, 2026 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal:Update AppLocalizations iOS Documentation

2 participants