الوثائق / Flutter
تعدين محلي اللغة لفلتر مع ملفات ARB، تلقائيًا
تعدين تطبيق فلتر: تصبح النصوص مثل Text() و hintText بحثًا في AppLocalizations باستخدام ملفات ARB، مع الجمعيات المتعددة لغة (ICU) والمetadata للمحافظات، وتكون إعدادات gen-l10n جاهزة.
كيف يعمل
Text('…') والأرجومنتات مثل hintText:, labelText: و tooltip: تصبح AppLocalizations.of(context)!.key مع أرجومنتات للمethods للمحافظات.
const يتم إهماله فقط من الويدجيتات التي تحتوي الآن على بحث؛ يتم الإبلاغ عن النصوص بدون BuildContext في نطاقها، وليس تغييرها.
قبل وبعد
المخرجات الحقيقية للمحرك لهذا الملف. في تشغيل حقيقي، يقوم النموذج المستضاف بتسمية المفاتيح من السياق.
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!'),
]);
}
}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)),
]);
}
}{
"cartScreenYourCart": "Your cart",
"cartScreenWelcomeBack": "Welcome back, {name}!"
}ما يضيفه الإعداد
الإعداد الأول يقوم بإعداد flutter_localizations و gen-l10n إذا لم يكن المشروع يحتوي عليه بعد:
flutter_localizations,intlوgenerate: trueفي ملف pubspec.yamll10n.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 واحصل على طلب سحب عند كل دفعة. جربه على الكود الخاص بك أولاً في ملعب.