如何检测法语和英语?

问题描述 投票:0回答:1

我正在构建一个具有多种语言(阿拉伯语、英语和法语)的应用程序。英语到阿拉伯语的主要单词是

      'Weekly': 'اسبوعيا',
      'Monthly': 'شهريا',
      'Yearly': 'سنويا',
      'Once': 'مرة واحدة',
      'Daily': 'يومياً',

阿拉伯语到法语是

  //french
  case "مرة واحدة":
    return "Une fois";
  case "يومياً":
    return "Quotidien";
  case "سنويا":
    return "Annuel";
  case "شهريا":
    return "Mensuel";
  case "اسبوعيا":
    return "Hebdomadaire";

这是我的正则表达式

  final RegExp english = RegExp(r'^[a-zA-Z]+');
  final RegExp arabic = RegExp(r'^[\u0621-\u064A]+');
  final RegExp french = RegExp(r'^[\u00C0-\u017F]+');

当我尝试检测 Une fois 时,我得到的结果是 en 而不是 fr,那么我该怎么办?

regex flutter dart
1个回答
0
投票

为 Flutter 应用添加本地化,您可以按照以下步骤操作:

添加依赖项:

在您的

pubspec.yaml
文件中,添加
flutter_localizations
包(包含在 Flutter SDK 中)和 intl 包(提供国际化和本地化支持):

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.17.0

运行 flutter pub get 安装软件包。

在项目的根目录中创建一个名为 l10n 的新目录。在此目录中,为您想要支持的每种语言创建 JSON 文件。文件名应遵循 app_.json 格式,其中是语言和国家/地区代码(例如 en_US、es_ES)。例如:

l10n/
  app_en_US.json
  app_es_ES.json

每个 JSON 文件应包含每个本地化字符串的键值对。例如,app_en_US.json 可能如下所示:

{
  "title": "Hello World",
  "greeting": "Welcome to our app!"
}

在 main.dart 文件中或设置应用程序的任何位置,导入必要的包并配置本地化设置:

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart';
import 'l10n/app_localizations.dart'; // Import your localization class

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      onGenerateTitle: (BuildContext context) => 
          AppLocalizations.of(context)!.title, // Use localized title
      localizationsDelegates: [
        AppLocalizations.delegate, // Add your localization delegate
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: [
        Locale('en', 'US'), // Add supported locales
        Locale('es', 'ES'),
      ],
      home: MyHomePage(),
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.