Ответ 1
сначала вы должны добавить пакет flutter_localizations
в ваш pubspec.yml
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
Теперь у вас есть два варианта:
1. форсировать локаль (и направление) на всех устройствах
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
MaterialApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
Locale("fa", "IR"), // OR Locale('ar', 'AE') OR Other RTL locales
],
locale: Locale("fa", "IR") // OR Locale('ar', 'AE') OR Other RTL locales,
.
.
.
);
2. установить направление компоновки в соответствии с локалью устройства
(если язык телефона пользователя является языком RTL
и существует в supportedLocales
, ваше приложение будет работать в режиме RTL
, в противном случае ваше приложение будет LTR
)
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
MaterialApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
Locale("en", "US"),
Locale("fa", "IR"), // OR Locale('ar', 'AE') OR Other RTL locales
],
.
.
.
);
примечание: языки rtl в флаттере:
static const List<String> _rtlLanguages = <String>[
'ar', // Arabic
'fa', // Farsi
'he', // Hebrew
'ps', // Pashto
'ur', // Urdu
];