我正在尝试让我的应用程序支持本地化。我希望我的应用程序可以使用两种语言:English
& Hindi
。所以我在我的中添加了以下包pubspec.yaml
:
flutter_localizations:
sdk: flutter
intl: ^0.17.0 # Add this line
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个l10n.yaml
文件并添加了以下内容:
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
Run Code Online (Sandbox Code Playgroud)
我还制作了app_en.arb
这样的文件:
{
"helloWorld": "Hello World!",
"@helloWorld": {
"description": "The conventional newborn programmer greeting"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行这段代码时,它给了我一个错误:
Generating synthetic localizations package failed with 1 error:
Exception: The 'template-arb-file', LocalFile: 'C:\Users\Crosslynx25\Desktop\SW_Mobile_Platform\lib/l10n\app_en.arb', is not readable.
Please ensure that the user has read permissions.
Run Code Online (Sandbox Code Playgroud)
main.dart
文件
import 'package:ble_app_flutter/screens/home_screen.dart';
import 'package:ble_app_flutter/screens/otp_screen.dart';
import 'package:ble_app_flutter/screens/splash_screen.dart';
import 'package:ble_app_flutter/utils/colors.dart';
import 'package:ble_app_flutter/l10n/L10n.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:lottie/lottie.dart';
import 'country_codes.dart'
as CountryCodes;
import 'screens/driver/driver_home_screen.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
State < MyApp > createState() => _MyAppState();
}
Map < int, Color > myTheme = {
50: Color.fromRGBO(9, 65, 155, .1),
100: Color.fromRGBO(9, 65, 155, .2),
};
class _MyAppState extends State < MyApp > {
// This widget is the root of your application.
MaterialColor myColor = MaterialColor(0xFF09419b, myTheme);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'BLE App gkhglkjhkl',
debugShowCheckedModeBanner: false,
supportedLocales: L10n.all,
// localizationsDelegates: [
// AppLocalizations.delegate, // Add this line
// GlobalMaterialLocalizations.delegate,
// GlobalWidgetsLocalizations.delegate,
// GlobalCupertinoLocalizations.delegate,
// ],
theme: ThemeData(
primarySwatch: myColor,
),
home: new Login(),
);
}
}
class Login extends StatefulWidget {
@override
State < Login > createState() => _LoginState();
}
class _LoginState extends State < Login > {
// const Login({
var selectedCountry = "91";
var phoneNumber = "";
@override
Widget build(BuildContext context) {
.
. //some code
.
}
}
Run Code Online (Sandbox Code Playgroud)
错误显示在这里
C:\Users\Crosslynx25\Desktop\SW_Mobile_Platform\lib/l10n\app_en.arb
Run Code Online (Sandbox Code Playgroud)
您使用的是 Windows,因此您应该在路径中使用\
and 。/
所以我想像l10n.yaml
这样修改你的
arb-dir: lib\l10n
Run Code Online (Sandbox Code Playgroud)
会成功的。
归档时间: |
|
查看次数: |
7333 次 |
最近记录: |