mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Bumps the Dart version to 3.8 across the repo (excluding engine/src/flutter/third_party) and applies formatting updates from Dart 3.8. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] 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 `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
80 lines
2.8 KiB
Dart
80 lines
2.8 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'localizations_utils.dart';
|
|
|
|
// See http://en.wikipedia.org/wiki/Right-to-left
|
|
const List<String> _rtlLanguages = <String>[
|
|
'ar', // Arabic
|
|
'fa', // Farsi
|
|
'he', // Hebrew
|
|
'ps', // Pashto
|
|
'ur', // Urdu
|
|
];
|
|
|
|
String generateWidgetsHeader(String regenerateInstructions) {
|
|
return '''
|
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// This file has been automatically generated. Please do not edit it manually.
|
|
// To regenerate the file, use:
|
|
// $regenerateInstructions
|
|
|
|
import 'dart:collection';
|
|
import 'dart:ui';
|
|
|
|
import '../widgets_localizations.dart';
|
|
|
|
// The classes defined here encode all of the translations found in the
|
|
// `flutter_localizations/lib/src/l10n/*.arb` files.
|
|
//
|
|
// These classes are constructed by the [getWidgetsTranslation] method at the
|
|
// bottom of this file, and used by the [_WidgetsLocalizationsDelegate.load]
|
|
// method defined in `flutter_localizations/lib/src/widgets_localizations.dart`.
|
|
|
|
// TODO(goderbauer): Extend the generator to properly format the output.
|
|
// dart format off''';
|
|
}
|
|
|
|
/// Returns the source of the constructor for a GlobalWidgetsLocalizations
|
|
/// subclass.
|
|
String generateWidgetsConstructor(LocaleInfo locale) {
|
|
final String localeName = locale.originalString;
|
|
final String language = locale.languageCode.toLowerCase();
|
|
final String textDirection = _rtlLanguages.contains(language)
|
|
? 'TextDirection.rtl'
|
|
: 'TextDirection.ltr';
|
|
return '''
|
|
/// Create an instance of the translation bundle for ${describeLocale(localeName)}.
|
|
///
|
|
/// For details on the meaning of the arguments, see [GlobalWidgetsLocalizations].
|
|
const WidgetsLocalization${locale.camelCase()}() : super($textDirection);''';
|
|
}
|
|
|
|
/// Returns the source of the constructor for a GlobalWidgetsLocalizations
|
|
/// subclass.
|
|
String generateWidgetsConstructorForCountrySubclass(LocaleInfo locale) {
|
|
final String localeName = locale.originalString;
|
|
return '''
|
|
/// Create an instance of the translation bundle for ${describeLocale(localeName)}.
|
|
///
|
|
/// For details on the meaning of the arguments, see [GlobalWidgetsLocalizations].
|
|
const WidgetsLocalization${locale.camelCase()}();''';
|
|
}
|
|
|
|
const String widgetsFactoryName = 'getWidgetsTranslation';
|
|
|
|
const String widgetsFactoryDeclaration = '''
|
|
GlobalWidgetsLocalizations? getWidgetsTranslation(
|
|
Locale locale,
|
|
) {''';
|
|
|
|
const String widgetsFactoryArguments = '';
|
|
|
|
const String widgetsSupportedLanguagesConstant = 'kWidgetsSupportedLanguages';
|
|
|
|
const String widgetsSupportedLanguagesDocMacro = 'flutter.localizations.widgets.languages';
|