| // 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`.'''; |
| } |
| |
| /// 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'; |