localize.dev

الوثائق / Flutter

تعدين محلي اللغة لفلتر مع ملفات ARB، تلقائيًا

تعدين تطبيق فلتر: تصبح النصوص مثل Text() و hintText بحثًا في AppLocalizations باستخدام ملفات ARB، مع الجمعيات المتعددة لغة (ICU) والمetadata للمحافظات، وتكون إعدادات gen-l10n جاهزة.

كيف يعمل

Text('…') والأرجومنتات مثل hintText:, labelText: و tooltip: تصبح AppLocalizations.of(context)!.key مع أرجومنتات للمethods للمحافظات.

const يتم إهماله فقط من الويدجيتات التي تحتوي الآن على بحث؛ يتم الإبلاغ عن النصوص بدون BuildContext في نطاقها، وليس تغييرها.

قبل وبعد

المخرجات الحقيقية للمحرك لهذا الملف. في تشغيل حقيقي، يقوم النموذج المستضاف بتسمية المفاتيح من السياق.

lib/screens/cart_screen.dart · قبل
import 'package:flutter/material.dart';

class CartScreen extends StatelessWidget {
  const CartScreen({super.key, required this.name});
  final String name;

  @override
  Widget build(BuildContext context) {
    return Column(children: [
      const Text('Your cart'),
      Text('Welcome back, $name!'),
    ]);
  }
}
lib/screens/cart_screen.dart · بعد
import 'package:flutter/material.dart';

class CartScreen extends StatelessWidget {
  const CartScreen({super.key, required this.name});
  final String name;

  @override
  Widget build(BuildContext context) {
    return Column(children: [
      Text(AppLocalizations.of(context)!.cartScreenYourCart),
      Text(AppLocalizations.of(context)!.cartScreenWelcomeBack(name)),
    ]);
  }
}
lib/l10n/app_en.arb
{
  "cartScreenYourCart": "Your cart",
  "cartScreenWelcomeBack": "Welcome back, {name}!"
}

ما يضيفه الإعداد

الإعداد الأول يقوم بإعداد flutter_localizations و gen-l10n إذا لم يكن المشروع يحتوي عليه بعد:

  • flutter_localizations, intl و generate: true في ملف pubspec.yaml
  • l10n.yaml و lib/l10n/app_<locale>.arb
  • مفوضات MaterialApp والمجالات المدعومة، وقائمة لغات iOS

قم بتشغيله

يتطلب CLI إصدار Node.js 22 أو أحدث، لا شيء آخر: npx يقوم بتشغيله دون إضافة package.json إلى المشروع. لا يوجد Node على جهازك؟ إجراء GitHub أدناه يقوم بتشغيله لك.

npx localize-dev login

# Preview, then write the changes
npx localize-dev run --dry-run -l es,fr,de
npx localize-dev run -l es,fr,de

# Or open a pull request instead
npx localize-dev pr -l es,fr,de

أو أضف إجراء GitHub واحصل على طلب سحب عند كل دفعة. جربه على الكود الخاص بك أولاً في ملعب.