[flutter_releases] Flutter beta 2.5.0-5.2.pre Framework Cherrypicks (#88476)

* l10n updates for August beta (#88328)
* Make doctor Xcode version requirement clearer (#88137)
* 'Update Engine revision to 7a4c4505f6a7a1aa758d62b58150dce43cfa473f for beta release 2.5.0-5.2.pre'

Co-authored-by: Todd Volkert <tvolkert@users.noreply.github.com>
Co-authored-by: Jenn Magder <magder@google.com>
diff --git a/bin/internal/engine.version b/bin/internal/engine.version
index ff2c18c..75f19e3 100644
--- a/bin/internal/engine.version
+++ b/bin/internal/engine.version
@@ -1 +1 @@
-fbeb7e22bd6d594a16c487cc138970fbd2a77d40
+7a4c4505f6a7a1aa758d62b58150dce43cfa473f
diff --git a/packages/flutter_localizations/lib/src/l10n/generated_material_localizations.dart b/packages/flutter_localizations/lib/src/l10n/generated_material_localizations.dart
index b06b37e..4868677 100644
--- a/packages/flutter_localizations/lib/src/l10n/generated_material_localizations.dart
+++ b/packages/flutter_localizations/lib/src/l10n/generated_material_localizations.dart
@@ -17975,7 +17975,7 @@
   String get unspecifiedDateRange => 'तारीख श्रेणी';
 
   @override
-  String get viewLicensesButtonLabel => 'परवाने पाहा';
+  String get viewLicensesButtonLabel => 'परवाने पहा';
 }
 
 /// The translations for Malay (`ms`).
@@ -25238,7 +25238,7 @@
   String get showMenuTooltip => 'మెనూను చూపు';
 
   @override
-  String get signedInLabel => 'సైన్ ఇన్ చేసారు';
+  String get signedInLabel => 'సైన్ ఇన్ చేశారు';
 
   @override
   String get tabLabelRaw => r'$tabCountలో $tabIndexవ ట్యాబ్';
diff --git a/packages/flutter_localizations/lib/src/l10n/material_mr.arb b/packages/flutter_localizations/lib/src/l10n/material_mr.arb
index a6c18f7..e4d6756 100644
--- a/packages/flutter_localizations/lib/src/l10n/material_mr.arb
+++ b/packages/flutter_localizations/lib/src/l10n/material_mr.arb
@@ -29,7 +29,7 @@
   "okButtonLabel": "ओके",
   "pasteButtonLabel": "पेस्ट करा",
   "selectAllButtonLabel": "सर्व निवडा",
-  "viewLicensesButtonLabel": "परवाने पाहा",
+  "viewLicensesButtonLabel": "परवाने पहा",
   "anteMeridiemAbbreviation": "AM",
   "postMeridiemAbbreviation": "PM",
   "timePickerHourModeAnnouncement": "तास निवडा",
diff --git a/packages/flutter_localizations/lib/src/l10n/material_te.arb b/packages/flutter_localizations/lib/src/l10n/material_te.arb
index 27e1e32..bfda85c 100644
--- a/packages/flutter_localizations/lib/src/l10n/material_te.arb
+++ b/packages/flutter_localizations/lib/src/l10n/material_te.arb
@@ -34,7 +34,7 @@
   "timePickerHourModeAnnouncement": "గంటలను ఎంచుకోండి",
   "timePickerMinuteModeAnnouncement": "నిమిషాలను ఎంచుకోండి",
   "modalBarrierDismissLabel": "విస్మరించు",
-  "signedInLabel": "సైన్ ఇన్ చేసారు",
+  "signedInLabel": "సైన్ ఇన్ చేశారు",
   "hideAccountsLabel": "ఖాతాలను దాచు",
   "showAccountsLabel": "ఖాతాలను చూపు",
   "drawerLabel": "నావిగేషన్ మెనూ",
diff --git a/packages/flutter_tools/lib/src/base/user_messages.dart b/packages/flutter_tools/lib/src/base/user_messages.dart
index cfa5540..013d5c6 100644
--- a/packages/flutter_tools/lib/src/base/user_messages.dart
+++ b/packages/flutter_tools/lib/src/base/user_messages.dart
@@ -145,9 +145,14 @@
   // Messages used in XcodeValidator
   String xcodeLocation(String location) => 'Xcode at $location';
 
-  String xcodeOutdated(String currentVersion, String recommendedVersion) =>
-      'Xcode $currentVersion out of date ($recommendedVersion is recommended).\n'
+  String xcodeOutdated(String requiredVersion) =>
+      'Flutter requires a minimum Xcode version of $requiredVersion.\n'
       'Download the latest version or update via the Mac App Store.';
+
+  String xcodeRecommended(String recommendedVersion) =>
+      'Flutter recommends a minimum Xcode version of $recommendedVersion.\n'
+      'Download the latest version or update via the Mac App Store.';
+
   String get xcodeEula => "Xcode end user license agreement not signed; open Xcode or run the command 'sudo xcodebuild -license'.";
   String get xcodeMissingSimct =>
       'Xcode requires additional components to be installed in order to run.\n'
diff --git a/packages/flutter_tools/lib/src/macos/xcode_validator.dart b/packages/flutter_tools/lib/src/macos/xcode_validator.dart
index adf584c..18bb98b 100644
--- a/packages/flutter_tools/lib/src/macos/xcode_validator.dart
+++ b/packages/flutter_tools/lib/src/macos/xcode_validator.dart
@@ -37,16 +37,10 @@
 
       if (!_xcode.isInstalledAndMeetsVersionCheck) {
         xcodeStatus = ValidationType.partial;
-        messages.add(ValidationMessage.error(_userMessages.xcodeOutdated(
-          _xcode.currentVersion.toString(),
-          xcodeRecommendedVersion.toString(),
-        )));
+        messages.add(ValidationMessage.error(_userMessages.xcodeOutdated(xcodeRequiredVersion.toString())));
       } else if (!_xcode.isRecommendedVersionSatisfactory) {
         xcodeStatus = ValidationType.partial;
-        messages.add(ValidationMessage.hint(_userMessages.xcodeOutdated(
-          _xcode.currentVersion.toString(),
-          xcodeRecommendedVersion.toString(),
-        )));
+        messages.add(ValidationMessage.hint(_userMessages.xcodeRecommended(xcodeRecommendedVersion.toString())));
       }
 
       if (!_xcode.eulaSigned) {
diff --git a/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart b/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart
index d1056bb..655004f 100644
--- a/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart
+++ b/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart
@@ -55,21 +55,21 @@
       final ValidationResult result = await validator.validate();
       expect(result.type, ValidationType.partial);
       expect(result.messages.last.type, ValidationMessageType.error);
-      expect(result.messages.last.message, contains('Xcode 7.0.1 out of date (12.0.1 is recommended)'));
+      expect(result.messages.last.message, contains('Flutter requires a minimum Xcode version of 12.0.1'));
     });
 
     testWithoutContext('Emits partial status when Xcode below recommended version', () async {
       final ProcessManager processManager = FakeProcessManager.any();
       final Xcode xcode = Xcode.test(
         processManager: processManager,
-        xcodeProjectInterpreter: XcodeProjectInterpreter.test(processManager: processManager, version: Version(11, 0, 0)),
+        xcodeProjectInterpreter: XcodeProjectInterpreter.test(processManager: processManager, version: Version(12, 0, 1)),
       );
       final XcodeValidator validator = XcodeValidator(xcode: xcode, userMessages: UserMessages());
       final ValidationResult result = await validator.validate();
       expect(result.type, ValidationType.partial);
       expect(result.messages.last.type, ValidationMessageType.hint);
-      expect(result.messages.last.message, contains('Xcode 11.0.0 out of date (12.0.1 is recommended)'));
-    }, skip: true); // Unskip and update when minimum and required check versions diverge.
+      expect(result.messages.last.message, contains('Flutter recommends a minimum Xcode version of 12.0.2'));
+    }, skip: true); // [intended] Unskip and update when minimum and required check versions diverge.
 
     testWithoutContext('Emits partial status when Xcode EULA not signed', () async {
       final ProcessManager processManager = FakeProcessManager.list(<FakeCommand>[