[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-flutter-flutter-setup-localization":3,"mdc-vwm404-key":30,"related-org-flutter-flutter-setup-localization":2233,"related-repo-flutter-flutter-setup-localization":2371},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":28,"mdContent":29},"flutter-setup-localization","initialize localization support in Flutter apps","Add `flutter_localizations` and `intl` dependencies, enable \"generate true\" in `pubspec.yaml`, and create an `l10n.yaml` configuration file. Use when initializing localization support for a new Flutter project.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"flutter","Flutter (Google)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fflutter.png",[12,15,17],{"name":13,"slug":8,"type":14},"Flutter","tag",{"name":16,"slug":16,"type":14},"i18n",{"name":18,"slug":19,"type":14},"Dart","dart",2664,"https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins","2026-07-15T05:22:27.590794",null,155,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":23},[],"https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins\u002Ftree\u002FHEAD\u002Fskills\u002Fflutter-setup-localization","---\nname: flutter-setup-localization\ndescription: Add `flutter_localizations` and `intl` dependencies, enable \"generate true\" in `pubspec.yaml`, and create an `l10n.yaml` configuration file. Use when initializing localization support for a new Flutter project.\nmetadata:\n  model: models\u002Fgemini-3.1-pro-preview\n  last_modified: Tue, 21 Apr 2026 21:27:35 GMT\n---\n# Internationalizing Flutter Applications\n\n## Contents\n- [Core Concepts](#core-concepts)\n- [Setup Workflow](#setup-workflow)\n- [Implementation Workflow](#implementation-workflow)\n- [Advanced Formatting](#advanced-formatting)\n- [Examples](#examples)\n\n## Core Concepts\nFlutter handles internationalization (i18n) and localization (l10n) via the `flutter_localizations` and `intl` packages. The standard approach uses App Resource Bundle (`.arb`) files to define localized strings, which are then compiled into a generated `AppLocalizations` class for type-safe access within the widget tree.\n\n## Setup Workflow\n\nCopy and track this checklist when initializing internationalization in a Flutter project:\n\n- [ ] **Task Progress**\n  - [ ] 1. Add dependencies to `pubspec.yaml`.\n  - [ ] 2. Enable the `generate` flag.\n  - [ ] 3. Create the `l10n.yaml` configuration file.\n  - [ ] 4. Configure `MaterialApp` or `CupertinoApp`.\n\n### 1. Add Dependencies\nAdd the required localization packages to the project. Execute the following commands in the terminal:\n```bash\nflutter pub add flutter_localizations --sdk=flutter\nflutter pub add intl:any\n```\n\nVerify your `pubspec.yaml` includes the following under `dependencies`:\n```yaml\ndependencies:\n  flutter:\n    sdk: flutter\n  flutter_localizations:\n    sdk: flutter\n  intl: any\n```\n\n### 2. Enable Code Generation\nOpen `pubspec.yaml` and enable the `generate` flag within the `flutter` section to automate localization tasks:\n```yaml\nflutter:\n  generate: true\n```\n\n### 3. Create Configuration File\nCreate a new file named `l10n.yaml` in the root directory of the Flutter project. Define the input directory, template file, and output file:\n```yaml\narb-dir: lib\u002Fl10n\ntemplate-arb-file: app_en.arb\noutput-localization-file: app_localizations.dart\nsynthetic-package: true\n```\n\n### 4. Configure the App Entry Point\nImport the generated localizations and the `flutter_localizations` library in your `main.dart`. Inject the delegates and supported locales into your `MaterialApp` or `CupertinoApp`.\n\n```dart\nimport 'package:flutter_localizations\u002Fflutter_localizations.dart';\nimport 'package:flutter_gen\u002Fgen_l10n\u002Fapp_localizations.dart'; \u002F\u002F Adjust path if synthetic-package is false\n\n\u002F\u002F ... inside build method\nreturn MaterialApp(\n  localizationsDelegates: const [\n    AppLocalizations.delegate,\n    GlobalMaterialLocalizations.delegate,\n    GlobalWidgetsLocalizations.delegate,\n    GlobalCupertinoLocalizations.delegate,\n  ],\n  supportedLocales: const [\n    Locale('en'), \u002F\u002F English\n    Locale('es'), \u002F\u002F Spanish\n  ],\n  home: const MyHomePage(),\n);\n```\n\n## Implementation Workflow\n\nFollow this workflow when adding or modifying localized content.\n\n### 1. Define ARB Files\n*   **If creating NEW content:** Add the base string to the template file (`lib\u002Fl10n\u002Fapp_en.arb`). Include a description for context.\n*   **If EDITING existing content:** Locate the key in all supported `.arb` files and update the values.\n\n```json\n{\n  \"helloWorld\": \"Hello World!\",\n  \"@helloWorld\": {\n    \"description\": \"The conventional newborn programmer greeting\"\n  }\n}\n```\n\nCreate corresponding files for other locales (e.g., `app_es.arb`):\n```json\n{\n  \"helloWorld\": \"¡Hola Mundo!\"\n}\n```\n\n### 2. Generate Localization Classes\nRun the following command to trigger code generation:\n```bash\nflutter pub get\n```\n*Feedback Loop:* Run validator -> review terminal output for ARB syntax errors -> fix missing commas or mismatched placeholders -> re-run `flutter pub get`.\n\n### 3. Consume Localized Strings\nAccess the localized strings in your widget tree using `AppLocalizations.of(context)`. Ensure the widget calling this is a descendant of `MaterialApp`.\n\n```dart\nText(AppLocalizations.of(context)!.helloWorld)\n```\n\n## Advanced Formatting\n\nUse placeholders for dynamic data, plurals, and conditional selects.\n\n### Placeholders\nDefine parameters within curly braces and specify their type in the metadata object.\n```json\n\"hello\": \"Hello {userName}\",\n\"@hello\": {\n  \"description\": \"A message with a single parameter\",\n  \"placeholders\": {\n    \"userName\": {\n      \"type\": \"String\",\n      \"example\": \"Bob\"\n    }\n  }\n}\n```\n\n### Plurals\nUse the `plural` syntax to handle quantity-based string variations. The `other` case is mandatory.\n```json\n\"nWombats\": \"{count, plural, =0{no wombats} =1{1 wombat} other{{count} wombats}}\",\n\"@nWombats\": {\n  \"description\": \"A plural message\",\n  \"placeholders\": {\n    \"count\": {\n      \"type\": \"num\",\n      \"format\": \"compact\"\n    }\n  }\n}\n```\n\n### Selects\nUse the `select` syntax for conditional strings, such as gendered text.\n```json\n\"pronoun\": \"{gender, select, male{he} female{she} other{they}}\",\n\"@pronoun\": {\n  \"description\": \"A gendered message\",\n  \"placeholders\": {\n    \"gender\": {\n      \"type\": \"String\"\n    }\n  }\n}\n```\n\n## Examples\n\n### Complete `l10n.yaml`\n```yaml\narb-dir: lib\u002Fl10n\ntemplate-arb-file: app_en.arb\noutput-localization-file: app_localizations.dart\nsynthetic-package: true\nuse-escaping: true\n```\n\n### Complete Widget Implementation\n```dart\nimport 'package:flutter\u002Fmaterial.dart';\nimport 'package:flutter_gen\u002Fgen_l10n\u002Fapp_localizations.dart';\n\nclass GreetingWidget extends StatelessWidget {\n  final String userName;\n  final int notificationCount;\n\n  const GreetingWidget({\n    super.key, \n    required this.userName, \n    required this.notificationCount,\n  });\n\n  @override\n  Widget build(BuildContext context) {\n    final l10n = AppLocalizations.of(context)!;\n\n    return Column(\n      children: [\n        Text(l10n.hello(userName)),\n        Text(l10n.nWombats(notificationCount)),\n      ],\n    );\n  }\n}\n```\n",{"data":31,"body":35},{"name":4,"description":6,"metadata":32},{"model":33,"last_modified":34},"models\u002Fgemini-3.1-pro-preview","Tue, 21 Apr 2026 21:27:35 GMT",{"type":36,"children":37},"root",[38,47,54,105,110,149,154,159,262,269,274,338,358,458,464,490,526,532,544,618,624,656,810,815,820,826,864,999,1012,1065,1071,1076,1099,1117,1123,1142,1156,1161,1166,1172,1177,1424,1430,1451,1692,1698,1710,1913,1918,1929,2012,2018,2227],{"type":39,"tag":40,"props":41,"children":43},"element","h1",{"id":42},"internationalizing-flutter-applications",[44],{"type":45,"value":46},"text","Internationalizing Flutter Applications",{"type":39,"tag":48,"props":49,"children":51},"h2",{"id":50},"contents",[52],{"type":45,"value":53},"Contents",{"type":39,"tag":55,"props":56,"children":57},"ul",{},[58,69,78,87,96],{"type":39,"tag":59,"props":60,"children":61},"li",{},[62],{"type":39,"tag":63,"props":64,"children":66},"a",{"href":65},"#core-concepts",[67],{"type":45,"value":68},"Core Concepts",{"type":39,"tag":59,"props":70,"children":71},{},[72],{"type":39,"tag":63,"props":73,"children":75},{"href":74},"#setup-workflow",[76],{"type":45,"value":77},"Setup Workflow",{"type":39,"tag":59,"props":79,"children":80},{},[81],{"type":39,"tag":63,"props":82,"children":84},{"href":83},"#implementation-workflow",[85],{"type":45,"value":86},"Implementation Workflow",{"type":39,"tag":59,"props":88,"children":89},{},[90],{"type":39,"tag":63,"props":91,"children":93},{"href":92},"#advanced-formatting",[94],{"type":45,"value":95},"Advanced Formatting",{"type":39,"tag":59,"props":97,"children":98},{},[99],{"type":39,"tag":63,"props":100,"children":102},{"href":101},"#examples",[103],{"type":45,"value":104},"Examples",{"type":39,"tag":48,"props":106,"children":108},{"id":107},"core-concepts",[109],{"type":45,"value":68},{"type":39,"tag":111,"props":112,"children":113},"p",{},[114,116,123,125,131,133,139,141,147],{"type":45,"value":115},"Flutter handles internationalization (i18n) and localization (l10n) via the ",{"type":39,"tag":117,"props":118,"children":120},"code",{"className":119},[],[121],{"type":45,"value":122},"flutter_localizations",{"type":45,"value":124}," and ",{"type":39,"tag":117,"props":126,"children":128},{"className":127},[],[129],{"type":45,"value":130},"intl",{"type":45,"value":132}," packages. The standard approach uses App Resource Bundle (",{"type":39,"tag":117,"props":134,"children":136},{"className":135},[],[137],{"type":45,"value":138},".arb",{"type":45,"value":140},") files to define localized strings, which are then compiled into a generated ",{"type":39,"tag":117,"props":142,"children":144},{"className":143},[],[145],{"type":45,"value":146},"AppLocalizations",{"type":45,"value":148}," class for type-safe access within the widget tree.",{"type":39,"tag":48,"props":150,"children":152},{"id":151},"setup-workflow",[153],{"type":45,"value":77},{"type":39,"tag":111,"props":155,"children":156},{},[157],{"type":45,"value":158},"Copy and track this checklist when initializing internationalization in a Flutter project:",{"type":39,"tag":55,"props":160,"children":163},{"className":161},[162],"contains-task-list",[164],{"type":39,"tag":59,"props":165,"children":168},{"className":166},[167],"task-list-item",[169,175,177,183],{"type":39,"tag":170,"props":171,"children":174},"input",{"disabled":172,"type":173},true,"checkbox",[],{"type":45,"value":176}," ",{"type":39,"tag":178,"props":179,"children":180},"strong",{},[181],{"type":45,"value":182},"Task Progress",{"type":39,"tag":55,"props":184,"children":186},{"className":185},[162],[187,204,221,238],{"type":39,"tag":59,"props":188,"children":190},{"className":189},[167],[191,194,196,202],{"type":39,"tag":170,"props":192,"children":193},{"disabled":172,"type":173},[],{"type":45,"value":195}," 1. Add dependencies to ",{"type":39,"tag":117,"props":197,"children":199},{"className":198},[],[200],{"type":45,"value":201},"pubspec.yaml",{"type":45,"value":203},".",{"type":39,"tag":59,"props":205,"children":207},{"className":206},[167],[208,211,213,219],{"type":39,"tag":170,"props":209,"children":210},{"disabled":172,"type":173},[],{"type":45,"value":212}," 2. Enable the ",{"type":39,"tag":117,"props":214,"children":216},{"className":215},[],[217],{"type":45,"value":218},"generate",{"type":45,"value":220}," flag.",{"type":39,"tag":59,"props":222,"children":224},{"className":223},[167],[225,228,230,236],{"type":39,"tag":170,"props":226,"children":227},{"disabled":172,"type":173},[],{"type":45,"value":229}," 3. Create the ",{"type":39,"tag":117,"props":231,"children":233},{"className":232},[],[234],{"type":45,"value":235},"l10n.yaml",{"type":45,"value":237}," configuration file.",{"type":39,"tag":59,"props":239,"children":241},{"className":240},[167],[242,245,247,253,255,261],{"type":39,"tag":170,"props":243,"children":244},{"disabled":172,"type":173},[],{"type":45,"value":246}," 4. Configure ",{"type":39,"tag":117,"props":248,"children":250},{"className":249},[],[251],{"type":45,"value":252},"MaterialApp",{"type":45,"value":254}," or ",{"type":39,"tag":117,"props":256,"children":258},{"className":257},[],[259],{"type":45,"value":260},"CupertinoApp",{"type":45,"value":203},{"type":39,"tag":263,"props":264,"children":266},"h3",{"id":265},"_1-add-dependencies",[267],{"type":45,"value":268},"1. Add Dependencies",{"type":39,"tag":111,"props":270,"children":271},{},[272],{"type":45,"value":273},"Add the required localization packages to the project. Execute the following commands in the terminal:",{"type":39,"tag":275,"props":276,"children":281},"pre",{"className":277,"code":278,"language":279,"meta":280,"style":280},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","flutter pub add flutter_localizations --sdk=flutter\nflutter pub add intl:any\n","bash","",[282],{"type":39,"tag":117,"props":283,"children":284},{"__ignoreMap":280},[285,317],{"type":39,"tag":286,"props":287,"children":290},"span",{"class":288,"line":289},"line",1,[291,296,302,307,312],{"type":39,"tag":286,"props":292,"children":294},{"style":293},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[295],{"type":45,"value":8},{"type":39,"tag":286,"props":297,"children":299},{"style":298},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[300],{"type":45,"value":301}," pub",{"type":39,"tag":286,"props":303,"children":304},{"style":298},[305],{"type":45,"value":306}," add",{"type":39,"tag":286,"props":308,"children":309},{"style":298},[310],{"type":45,"value":311}," flutter_localizations",{"type":39,"tag":286,"props":313,"children":314},{"style":298},[315],{"type":45,"value":316}," --sdk=flutter\n",{"type":39,"tag":286,"props":318,"children":320},{"class":288,"line":319},2,[321,325,329,333],{"type":39,"tag":286,"props":322,"children":323},{"style":293},[324],{"type":45,"value":8},{"type":39,"tag":286,"props":326,"children":327},{"style":298},[328],{"type":45,"value":301},{"type":39,"tag":286,"props":330,"children":331},{"style":298},[332],{"type":45,"value":306},{"type":39,"tag":286,"props":334,"children":335},{"style":298},[336],{"type":45,"value":337}," intl:any\n",{"type":39,"tag":111,"props":339,"children":340},{},[341,343,348,350,356],{"type":45,"value":342},"Verify your ",{"type":39,"tag":117,"props":344,"children":346},{"className":345},[],[347],{"type":45,"value":201},{"type":45,"value":349}," includes the following under ",{"type":39,"tag":117,"props":351,"children":353},{"className":352},[],[354],{"type":45,"value":355},"dependencies",{"type":45,"value":357},":",{"type":39,"tag":275,"props":359,"children":363},{"className":360,"code":361,"language":362,"meta":280,"style":280},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dependencies:\n  flutter:\n    sdk: flutter\n  flutter_localizations:\n    sdk: flutter\n  intl: any\n","yaml",[364],{"type":39,"tag":117,"props":365,"children":366},{"__ignoreMap":280},[367,381,393,411,424,440],{"type":39,"tag":286,"props":368,"children":369},{"class":288,"line":289},[370,375],{"type":39,"tag":286,"props":371,"children":373},{"style":372},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[374],{"type":45,"value":355},{"type":39,"tag":286,"props":376,"children":378},{"style":377},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[379],{"type":45,"value":380},":\n",{"type":39,"tag":286,"props":382,"children":383},{"class":288,"line":319},[384,389],{"type":39,"tag":286,"props":385,"children":386},{"style":372},[387],{"type":45,"value":388},"  flutter",{"type":39,"tag":286,"props":390,"children":391},{"style":377},[392],{"type":45,"value":380},{"type":39,"tag":286,"props":394,"children":396},{"class":288,"line":395},3,[397,402,406],{"type":39,"tag":286,"props":398,"children":399},{"style":372},[400],{"type":45,"value":401},"    sdk",{"type":39,"tag":286,"props":403,"children":404},{"style":377},[405],{"type":45,"value":357},{"type":39,"tag":286,"props":407,"children":408},{"style":298},[409],{"type":45,"value":410}," flutter\n",{"type":39,"tag":286,"props":412,"children":414},{"class":288,"line":413},4,[415,420],{"type":39,"tag":286,"props":416,"children":417},{"style":372},[418],{"type":45,"value":419},"  flutter_localizations",{"type":39,"tag":286,"props":421,"children":422},{"style":377},[423],{"type":45,"value":380},{"type":39,"tag":286,"props":425,"children":427},{"class":288,"line":426},5,[428,432,436],{"type":39,"tag":286,"props":429,"children":430},{"style":372},[431],{"type":45,"value":401},{"type":39,"tag":286,"props":433,"children":434},{"style":377},[435],{"type":45,"value":357},{"type":39,"tag":286,"props":437,"children":438},{"style":298},[439],{"type":45,"value":410},{"type":39,"tag":286,"props":441,"children":443},{"class":288,"line":442},6,[444,449,453],{"type":39,"tag":286,"props":445,"children":446},{"style":372},[447],{"type":45,"value":448},"  intl",{"type":39,"tag":286,"props":450,"children":451},{"style":377},[452],{"type":45,"value":357},{"type":39,"tag":286,"props":454,"children":455},{"style":298},[456],{"type":45,"value":457}," any\n",{"type":39,"tag":263,"props":459,"children":461},{"id":460},"_2-enable-code-generation",[462],{"type":45,"value":463},"2. Enable Code Generation",{"type":39,"tag":111,"props":465,"children":466},{},[467,469,474,476,481,483,488],{"type":45,"value":468},"Open ",{"type":39,"tag":117,"props":470,"children":472},{"className":471},[],[473],{"type":45,"value":201},{"type":45,"value":475}," and enable the ",{"type":39,"tag":117,"props":477,"children":479},{"className":478},[],[480],{"type":45,"value":218},{"type":45,"value":482}," flag within the ",{"type":39,"tag":117,"props":484,"children":486},{"className":485},[],[487],{"type":45,"value":8},{"type":45,"value":489}," section to automate localization tasks:",{"type":39,"tag":275,"props":491,"children":493},{"className":360,"code":492,"language":362,"meta":280,"style":280},"flutter:\n  generate: true\n",[494],{"type":39,"tag":117,"props":495,"children":496},{"__ignoreMap":280},[497,508],{"type":39,"tag":286,"props":498,"children":499},{"class":288,"line":289},[500,504],{"type":39,"tag":286,"props":501,"children":502},{"style":372},[503],{"type":45,"value":8},{"type":39,"tag":286,"props":505,"children":506},{"style":377},[507],{"type":45,"value":380},{"type":39,"tag":286,"props":509,"children":510},{"class":288,"line":319},[511,516,520],{"type":39,"tag":286,"props":512,"children":513},{"style":372},[514],{"type":45,"value":515},"  generate",{"type":39,"tag":286,"props":517,"children":518},{"style":377},[519],{"type":45,"value":357},{"type":39,"tag":286,"props":521,"children":523},{"style":522},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[524],{"type":45,"value":525}," true\n",{"type":39,"tag":263,"props":527,"children":529},{"id":528},"_3-create-configuration-file",[530],{"type":45,"value":531},"3. Create Configuration File",{"type":39,"tag":111,"props":533,"children":534},{},[535,537,542],{"type":45,"value":536},"Create a new file named ",{"type":39,"tag":117,"props":538,"children":540},{"className":539},[],[541],{"type":45,"value":235},{"type":45,"value":543}," in the root directory of the Flutter project. Define the input directory, template file, and output file:",{"type":39,"tag":275,"props":545,"children":547},{"className":360,"code":546,"language":362,"meta":280,"style":280},"arb-dir: lib\u002Fl10n\ntemplate-arb-file: app_en.arb\noutput-localization-file: app_localizations.dart\nsynthetic-package: true\n",[548],{"type":39,"tag":117,"props":549,"children":550},{"__ignoreMap":280},[551,568,585,602],{"type":39,"tag":286,"props":552,"children":553},{"class":288,"line":289},[554,559,563],{"type":39,"tag":286,"props":555,"children":556},{"style":372},[557],{"type":45,"value":558},"arb-dir",{"type":39,"tag":286,"props":560,"children":561},{"style":377},[562],{"type":45,"value":357},{"type":39,"tag":286,"props":564,"children":565},{"style":298},[566],{"type":45,"value":567}," lib\u002Fl10n\n",{"type":39,"tag":286,"props":569,"children":570},{"class":288,"line":319},[571,576,580],{"type":39,"tag":286,"props":572,"children":573},{"style":372},[574],{"type":45,"value":575},"template-arb-file",{"type":39,"tag":286,"props":577,"children":578},{"style":377},[579],{"type":45,"value":357},{"type":39,"tag":286,"props":581,"children":582},{"style":298},[583],{"type":45,"value":584}," app_en.arb\n",{"type":39,"tag":286,"props":586,"children":587},{"class":288,"line":395},[588,593,597],{"type":39,"tag":286,"props":589,"children":590},{"style":372},[591],{"type":45,"value":592},"output-localization-file",{"type":39,"tag":286,"props":594,"children":595},{"style":377},[596],{"type":45,"value":357},{"type":39,"tag":286,"props":598,"children":599},{"style":298},[600],{"type":45,"value":601}," app_localizations.dart\n",{"type":39,"tag":286,"props":603,"children":604},{"class":288,"line":413},[605,610,614],{"type":39,"tag":286,"props":606,"children":607},{"style":372},[608],{"type":45,"value":609},"synthetic-package",{"type":39,"tag":286,"props":611,"children":612},{"style":377},[613],{"type":45,"value":357},{"type":39,"tag":286,"props":615,"children":616},{"style":522},[617],{"type":45,"value":525},{"type":39,"tag":263,"props":619,"children":621},{"id":620},"_4-configure-the-app-entry-point",[622],{"type":45,"value":623},"4. Configure the App Entry Point",{"type":39,"tag":111,"props":625,"children":626},{},[627,629,634,636,642,644,649,650,655],{"type":45,"value":628},"Import the generated localizations and the ",{"type":39,"tag":117,"props":630,"children":632},{"className":631},[],[633],{"type":45,"value":122},{"type":45,"value":635}," library in your ",{"type":39,"tag":117,"props":637,"children":639},{"className":638},[],[640],{"type":45,"value":641},"main.dart",{"type":45,"value":643},". Inject the delegates and supported locales into your ",{"type":39,"tag":117,"props":645,"children":647},{"className":646},[],[648],{"type":45,"value":252},{"type":45,"value":254},{"type":39,"tag":117,"props":651,"children":653},{"className":652},[],[654],{"type":45,"value":260},{"type":45,"value":203},{"type":39,"tag":275,"props":657,"children":660},{"className":658,"code":659,"language":19,"meta":280,"style":280},"language-dart shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import 'package:flutter_localizations\u002Fflutter_localizations.dart';\nimport 'package:flutter_gen\u002Fgen_l10n\u002Fapp_localizations.dart'; \u002F\u002F Adjust path if synthetic-package is false\n\n\u002F\u002F ... inside build method\nreturn MaterialApp(\n  localizationsDelegates: const [\n    AppLocalizations.delegate,\n    GlobalMaterialLocalizations.delegate,\n    GlobalWidgetsLocalizations.delegate,\n    GlobalCupertinoLocalizations.delegate,\n  ],\n  supportedLocales: const [\n    Locale('en'), \u002F\u002F English\n    Locale('es'), \u002F\u002F Spanish\n  ],\n  home: const MyHomePage(),\n);\n",[661],{"type":39,"tag":117,"props":662,"children":663},{"__ignoreMap":280},[664,672,680,688,696,704,712,721,730,739,748,757,766,775,784,792,801],{"type":39,"tag":286,"props":665,"children":666},{"class":288,"line":289},[667],{"type":39,"tag":286,"props":668,"children":669},{},[670],{"type":45,"value":671},"import 'package:flutter_localizations\u002Fflutter_localizations.dart';\n",{"type":39,"tag":286,"props":673,"children":674},{"class":288,"line":319},[675],{"type":39,"tag":286,"props":676,"children":677},{},[678],{"type":45,"value":679},"import 'package:flutter_gen\u002Fgen_l10n\u002Fapp_localizations.dart'; \u002F\u002F Adjust path if synthetic-package is false\n",{"type":39,"tag":286,"props":681,"children":682},{"class":288,"line":395},[683],{"type":39,"tag":286,"props":684,"children":685},{"emptyLinePlaceholder":172},[686],{"type":45,"value":687},"\n",{"type":39,"tag":286,"props":689,"children":690},{"class":288,"line":413},[691],{"type":39,"tag":286,"props":692,"children":693},{},[694],{"type":45,"value":695},"\u002F\u002F ... inside build method\n",{"type":39,"tag":286,"props":697,"children":698},{"class":288,"line":426},[699],{"type":39,"tag":286,"props":700,"children":701},{},[702],{"type":45,"value":703},"return MaterialApp(\n",{"type":39,"tag":286,"props":705,"children":706},{"class":288,"line":442},[707],{"type":39,"tag":286,"props":708,"children":709},{},[710],{"type":45,"value":711},"  localizationsDelegates: const [\n",{"type":39,"tag":286,"props":713,"children":715},{"class":288,"line":714},7,[716],{"type":39,"tag":286,"props":717,"children":718},{},[719],{"type":45,"value":720},"    AppLocalizations.delegate,\n",{"type":39,"tag":286,"props":722,"children":724},{"class":288,"line":723},8,[725],{"type":39,"tag":286,"props":726,"children":727},{},[728],{"type":45,"value":729},"    GlobalMaterialLocalizations.delegate,\n",{"type":39,"tag":286,"props":731,"children":733},{"class":288,"line":732},9,[734],{"type":39,"tag":286,"props":735,"children":736},{},[737],{"type":45,"value":738},"    GlobalWidgetsLocalizations.delegate,\n",{"type":39,"tag":286,"props":740,"children":742},{"class":288,"line":741},10,[743],{"type":39,"tag":286,"props":744,"children":745},{},[746],{"type":45,"value":747},"    GlobalCupertinoLocalizations.delegate,\n",{"type":39,"tag":286,"props":749,"children":751},{"class":288,"line":750},11,[752],{"type":39,"tag":286,"props":753,"children":754},{},[755],{"type":45,"value":756},"  ],\n",{"type":39,"tag":286,"props":758,"children":760},{"class":288,"line":759},12,[761],{"type":39,"tag":286,"props":762,"children":763},{},[764],{"type":45,"value":765},"  supportedLocales: const [\n",{"type":39,"tag":286,"props":767,"children":769},{"class":288,"line":768},13,[770],{"type":39,"tag":286,"props":771,"children":772},{},[773],{"type":45,"value":774},"    Locale('en'), \u002F\u002F English\n",{"type":39,"tag":286,"props":776,"children":778},{"class":288,"line":777},14,[779],{"type":39,"tag":286,"props":780,"children":781},{},[782],{"type":45,"value":783},"    Locale('es'), \u002F\u002F Spanish\n",{"type":39,"tag":286,"props":785,"children":787},{"class":288,"line":786},15,[788],{"type":39,"tag":286,"props":789,"children":790},{},[791],{"type":45,"value":756},{"type":39,"tag":286,"props":793,"children":795},{"class":288,"line":794},16,[796],{"type":39,"tag":286,"props":797,"children":798},{},[799],{"type":45,"value":800},"  home: const MyHomePage(),\n",{"type":39,"tag":286,"props":802,"children":804},{"class":288,"line":803},17,[805],{"type":39,"tag":286,"props":806,"children":807},{},[808],{"type":45,"value":809},");\n",{"type":39,"tag":48,"props":811,"children":813},{"id":812},"implementation-workflow",[814],{"type":45,"value":86},{"type":39,"tag":111,"props":816,"children":817},{},[818],{"type":45,"value":819},"Follow this workflow when adding or modifying localized content.",{"type":39,"tag":263,"props":821,"children":823},{"id":822},"_1-define-arb-files",[824],{"type":45,"value":825},"1. Define ARB Files",{"type":39,"tag":55,"props":827,"children":828},{},[829,847],{"type":39,"tag":59,"props":830,"children":831},{},[832,837,839,845],{"type":39,"tag":178,"props":833,"children":834},{},[835],{"type":45,"value":836},"If creating NEW content:",{"type":45,"value":838}," Add the base string to the template file (",{"type":39,"tag":117,"props":840,"children":842},{"className":841},[],[843],{"type":45,"value":844},"lib\u002Fl10n\u002Fapp_en.arb",{"type":45,"value":846},"). Include a description for context.",{"type":39,"tag":59,"props":848,"children":849},{},[850,855,857,862],{"type":39,"tag":178,"props":851,"children":852},{},[853],{"type":45,"value":854},"If EDITING existing content:",{"type":45,"value":856}," Locate the key in all supported ",{"type":39,"tag":117,"props":858,"children":860},{"className":859},[],[861],{"type":45,"value":138},{"type":45,"value":863}," files and update the values.",{"type":39,"tag":275,"props":865,"children":869},{"className":866,"code":867,"language":868,"meta":280,"style":280},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"helloWorld\": \"Hello World!\",\n  \"@helloWorld\": {\n    \"description\": \"The conventional newborn programmer greeting\"\n  }\n}\n","json",[870],{"type":39,"tag":117,"props":871,"children":872},{"__ignoreMap":280},[873,881,923,948,983,991],{"type":39,"tag":286,"props":874,"children":875},{"class":288,"line":289},[876],{"type":39,"tag":286,"props":877,"children":878},{"style":377},[879],{"type":45,"value":880},"{\n",{"type":39,"tag":286,"props":882,"children":883},{"class":288,"line":319},[884,889,895,900,904,909,914,918],{"type":39,"tag":286,"props":885,"children":886},{"style":377},[887],{"type":45,"value":888},"  \"",{"type":39,"tag":286,"props":890,"children":892},{"style":891},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[893],{"type":45,"value":894},"helloWorld",{"type":39,"tag":286,"props":896,"children":897},{"style":377},[898],{"type":45,"value":899},"\"",{"type":39,"tag":286,"props":901,"children":902},{"style":377},[903],{"type":45,"value":357},{"type":39,"tag":286,"props":905,"children":906},{"style":377},[907],{"type":45,"value":908}," \"",{"type":39,"tag":286,"props":910,"children":911},{"style":298},[912],{"type":45,"value":913},"Hello World!",{"type":39,"tag":286,"props":915,"children":916},{"style":377},[917],{"type":45,"value":899},{"type":39,"tag":286,"props":919,"children":920},{"style":377},[921],{"type":45,"value":922},",\n",{"type":39,"tag":286,"props":924,"children":925},{"class":288,"line":395},[926,930,935,939,943],{"type":39,"tag":286,"props":927,"children":928},{"style":377},[929],{"type":45,"value":888},{"type":39,"tag":286,"props":931,"children":932},{"style":891},[933],{"type":45,"value":934},"@helloWorld",{"type":39,"tag":286,"props":936,"children":937},{"style":377},[938],{"type":45,"value":899},{"type":39,"tag":286,"props":940,"children":941},{"style":377},[942],{"type":45,"value":357},{"type":39,"tag":286,"props":944,"children":945},{"style":377},[946],{"type":45,"value":947}," {\n",{"type":39,"tag":286,"props":949,"children":950},{"class":288,"line":413},[951,956,961,965,969,973,978],{"type":39,"tag":286,"props":952,"children":953},{"style":377},[954],{"type":45,"value":955},"    \"",{"type":39,"tag":286,"props":957,"children":958},{"style":293},[959],{"type":45,"value":960},"description",{"type":39,"tag":286,"props":962,"children":963},{"style":377},[964],{"type":45,"value":899},{"type":39,"tag":286,"props":966,"children":967},{"style":377},[968],{"type":45,"value":357},{"type":39,"tag":286,"props":970,"children":971},{"style":377},[972],{"type":45,"value":908},{"type":39,"tag":286,"props":974,"children":975},{"style":298},[976],{"type":45,"value":977},"The conventional newborn programmer greeting",{"type":39,"tag":286,"props":979,"children":980},{"style":377},[981],{"type":45,"value":982},"\"\n",{"type":39,"tag":286,"props":984,"children":985},{"class":288,"line":426},[986],{"type":39,"tag":286,"props":987,"children":988},{"style":377},[989],{"type":45,"value":990},"  }\n",{"type":39,"tag":286,"props":992,"children":993},{"class":288,"line":442},[994],{"type":39,"tag":286,"props":995,"children":996},{"style":377},[997],{"type":45,"value":998},"}\n",{"type":39,"tag":111,"props":1000,"children":1001},{},[1002,1004,1010],{"type":45,"value":1003},"Create corresponding files for other locales (e.g., ",{"type":39,"tag":117,"props":1005,"children":1007},{"className":1006},[],[1008],{"type":45,"value":1009},"app_es.arb",{"type":45,"value":1011},"):",{"type":39,"tag":275,"props":1013,"children":1015},{"className":866,"code":1014,"language":868,"meta":280,"style":280},"{\n  \"helloWorld\": \"¡Hola Mundo!\"\n}\n",[1016],{"type":39,"tag":117,"props":1017,"children":1018},{"__ignoreMap":280},[1019,1026,1058],{"type":39,"tag":286,"props":1020,"children":1021},{"class":288,"line":289},[1022],{"type":39,"tag":286,"props":1023,"children":1024},{"style":377},[1025],{"type":45,"value":880},{"type":39,"tag":286,"props":1027,"children":1028},{"class":288,"line":319},[1029,1033,1037,1041,1045,1049,1054],{"type":39,"tag":286,"props":1030,"children":1031},{"style":377},[1032],{"type":45,"value":888},{"type":39,"tag":286,"props":1034,"children":1035},{"style":891},[1036],{"type":45,"value":894},{"type":39,"tag":286,"props":1038,"children":1039},{"style":377},[1040],{"type":45,"value":899},{"type":39,"tag":286,"props":1042,"children":1043},{"style":377},[1044],{"type":45,"value":357},{"type":39,"tag":286,"props":1046,"children":1047},{"style":377},[1048],{"type":45,"value":908},{"type":39,"tag":286,"props":1050,"children":1051},{"style":298},[1052],{"type":45,"value":1053},"¡Hola Mundo!",{"type":39,"tag":286,"props":1055,"children":1056},{"style":377},[1057],{"type":45,"value":982},{"type":39,"tag":286,"props":1059,"children":1060},{"class":288,"line":395},[1061],{"type":39,"tag":286,"props":1062,"children":1063},{"style":377},[1064],{"type":45,"value":998},{"type":39,"tag":263,"props":1066,"children":1068},{"id":1067},"_2-generate-localization-classes",[1069],{"type":45,"value":1070},"2. Generate Localization Classes",{"type":39,"tag":111,"props":1072,"children":1073},{},[1074],{"type":45,"value":1075},"Run the following command to trigger code generation:",{"type":39,"tag":275,"props":1077,"children":1079},{"className":277,"code":1078,"language":279,"meta":280,"style":280},"flutter pub get\n",[1080],{"type":39,"tag":117,"props":1081,"children":1082},{"__ignoreMap":280},[1083],{"type":39,"tag":286,"props":1084,"children":1085},{"class":288,"line":289},[1086,1090,1094],{"type":39,"tag":286,"props":1087,"children":1088},{"style":293},[1089],{"type":45,"value":8},{"type":39,"tag":286,"props":1091,"children":1092},{"style":298},[1093],{"type":45,"value":301},{"type":39,"tag":286,"props":1095,"children":1096},{"style":298},[1097],{"type":45,"value":1098}," get\n",{"type":39,"tag":111,"props":1100,"children":1101},{},[1102,1108,1110,1116],{"type":39,"tag":1103,"props":1104,"children":1105},"em",{},[1106],{"type":45,"value":1107},"Feedback Loop:",{"type":45,"value":1109}," Run validator -> review terminal output for ARB syntax errors -> fix missing commas or mismatched placeholders -> re-run ",{"type":39,"tag":117,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":45,"value":1115},"flutter pub get",{"type":45,"value":203},{"type":39,"tag":263,"props":1118,"children":1120},{"id":1119},"_3-consume-localized-strings",[1121],{"type":45,"value":1122},"3. Consume Localized Strings",{"type":39,"tag":111,"props":1124,"children":1125},{},[1126,1128,1134,1136,1141],{"type":45,"value":1127},"Access the localized strings in your widget tree using ",{"type":39,"tag":117,"props":1129,"children":1131},{"className":1130},[],[1132],{"type":45,"value":1133},"AppLocalizations.of(context)",{"type":45,"value":1135},". Ensure the widget calling this is a descendant of ",{"type":39,"tag":117,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":45,"value":252},{"type":45,"value":203},{"type":39,"tag":275,"props":1143,"children":1145},{"className":658,"code":1144,"language":19,"meta":280,"style":280},"Text(AppLocalizations.of(context)!.helloWorld)\n",[1146],{"type":39,"tag":117,"props":1147,"children":1148},{"__ignoreMap":280},[1149],{"type":39,"tag":286,"props":1150,"children":1151},{"class":288,"line":289},[1152],{"type":39,"tag":286,"props":1153,"children":1154},{},[1155],{"type":45,"value":1144},{"type":39,"tag":48,"props":1157,"children":1159},{"id":1158},"advanced-formatting",[1160],{"type":45,"value":95},{"type":39,"tag":111,"props":1162,"children":1163},{},[1164],{"type":45,"value":1165},"Use placeholders for dynamic data, plurals, and conditional selects.",{"type":39,"tag":263,"props":1167,"children":1169},{"id":1168},"placeholders",[1170],{"type":45,"value":1171},"Placeholders",{"type":39,"tag":111,"props":1173,"children":1174},{},[1175],{"type":45,"value":1176},"Define parameters within curly braces and specify their type in the metadata object.",{"type":39,"tag":275,"props":1178,"children":1180},{"className":866,"code":1179,"language":868,"meta":280,"style":280},"\"hello\": \"Hello {userName}\",\n\"@hello\": {\n  \"description\": \"A message with a single parameter\",\n  \"placeholders\": {\n    \"userName\": {\n      \"type\": \"String\",\n      \"example\": \"Bob\"\n    }\n  }\n}\n",[1181],{"type":39,"tag":117,"props":1182,"children":1183},{"__ignoreMap":280},[1184,1223,1247,1283,1306,1330,1369,1402,1410,1417],{"type":39,"tag":286,"props":1185,"children":1186},{"class":288,"line":289},[1187,1191,1196,1200,1206,1210,1215,1219],{"type":39,"tag":286,"props":1188,"children":1189},{"style":377},[1190],{"type":45,"value":899},{"type":39,"tag":286,"props":1192,"children":1193},{"style":298},[1194],{"type":45,"value":1195},"hello",{"type":39,"tag":286,"props":1197,"children":1198},{"style":377},[1199],{"type":45,"value":899},{"type":39,"tag":286,"props":1201,"children":1203},{"style":1202},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1204],{"type":45,"value":1205},": ",{"type":39,"tag":286,"props":1207,"children":1208},{"style":377},[1209],{"type":45,"value":899},{"type":39,"tag":286,"props":1211,"children":1212},{"style":298},[1213],{"type":45,"value":1214},"Hello {userName}",{"type":39,"tag":286,"props":1216,"children":1217},{"style":377},[1218],{"type":45,"value":899},{"type":39,"tag":286,"props":1220,"children":1221},{"style":1202},[1222],{"type":45,"value":922},{"type":39,"tag":286,"props":1224,"children":1225},{"class":288,"line":319},[1226,1230,1235,1239,1243],{"type":39,"tag":286,"props":1227,"children":1228},{"style":377},[1229],{"type":45,"value":899},{"type":39,"tag":286,"props":1231,"children":1232},{"style":298},[1233],{"type":45,"value":1234},"@hello",{"type":39,"tag":286,"props":1236,"children":1237},{"style":377},[1238],{"type":45,"value":899},{"type":39,"tag":286,"props":1240,"children":1241},{"style":1202},[1242],{"type":45,"value":1205},{"type":39,"tag":286,"props":1244,"children":1245},{"style":377},[1246],{"type":45,"value":880},{"type":39,"tag":286,"props":1248,"children":1249},{"class":288,"line":395},[1250,1254,1258,1262,1266,1270,1275,1279],{"type":39,"tag":286,"props":1251,"children":1252},{"style":377},[1253],{"type":45,"value":888},{"type":39,"tag":286,"props":1255,"children":1256},{"style":891},[1257],{"type":45,"value":960},{"type":39,"tag":286,"props":1259,"children":1260},{"style":377},[1261],{"type":45,"value":899},{"type":39,"tag":286,"props":1263,"children":1264},{"style":377},[1265],{"type":45,"value":357},{"type":39,"tag":286,"props":1267,"children":1268},{"style":377},[1269],{"type":45,"value":908},{"type":39,"tag":286,"props":1271,"children":1272},{"style":298},[1273],{"type":45,"value":1274},"A message with a single parameter",{"type":39,"tag":286,"props":1276,"children":1277},{"style":377},[1278],{"type":45,"value":899},{"type":39,"tag":286,"props":1280,"children":1281},{"style":377},[1282],{"type":45,"value":922},{"type":39,"tag":286,"props":1284,"children":1285},{"class":288,"line":413},[1286,1290,1294,1298,1302],{"type":39,"tag":286,"props":1287,"children":1288},{"style":377},[1289],{"type":45,"value":888},{"type":39,"tag":286,"props":1291,"children":1292},{"style":891},[1293],{"type":45,"value":1168},{"type":39,"tag":286,"props":1295,"children":1296},{"style":377},[1297],{"type":45,"value":899},{"type":39,"tag":286,"props":1299,"children":1300},{"style":377},[1301],{"type":45,"value":357},{"type":39,"tag":286,"props":1303,"children":1304},{"style":377},[1305],{"type":45,"value":947},{"type":39,"tag":286,"props":1307,"children":1308},{"class":288,"line":426},[1309,1313,1318,1322,1326],{"type":39,"tag":286,"props":1310,"children":1311},{"style":377},[1312],{"type":45,"value":955},{"type":39,"tag":286,"props":1314,"children":1315},{"style":293},[1316],{"type":45,"value":1317},"userName",{"type":39,"tag":286,"props":1319,"children":1320},{"style":377},[1321],{"type":45,"value":899},{"type":39,"tag":286,"props":1323,"children":1324},{"style":377},[1325],{"type":45,"value":357},{"type":39,"tag":286,"props":1327,"children":1328},{"style":377},[1329],{"type":45,"value":947},{"type":39,"tag":286,"props":1331,"children":1332},{"class":288,"line":442},[1333,1338,1344,1348,1352,1356,1361,1365],{"type":39,"tag":286,"props":1334,"children":1335},{"style":377},[1336],{"type":45,"value":1337},"      \"",{"type":39,"tag":286,"props":1339,"children":1341},{"style":1340},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1342],{"type":45,"value":1343},"type",{"type":39,"tag":286,"props":1345,"children":1346},{"style":377},[1347],{"type":45,"value":899},{"type":39,"tag":286,"props":1349,"children":1350},{"style":377},[1351],{"type":45,"value":357},{"type":39,"tag":286,"props":1353,"children":1354},{"style":377},[1355],{"type":45,"value":908},{"type":39,"tag":286,"props":1357,"children":1358},{"style":298},[1359],{"type":45,"value":1360},"String",{"type":39,"tag":286,"props":1362,"children":1363},{"style":377},[1364],{"type":45,"value":899},{"type":39,"tag":286,"props":1366,"children":1367},{"style":377},[1368],{"type":45,"value":922},{"type":39,"tag":286,"props":1370,"children":1371},{"class":288,"line":714},[1372,1376,1381,1385,1389,1393,1398],{"type":39,"tag":286,"props":1373,"children":1374},{"style":377},[1375],{"type":45,"value":1337},{"type":39,"tag":286,"props":1377,"children":1378},{"style":1340},[1379],{"type":45,"value":1380},"example",{"type":39,"tag":286,"props":1382,"children":1383},{"style":377},[1384],{"type":45,"value":899},{"type":39,"tag":286,"props":1386,"children":1387},{"style":377},[1388],{"type":45,"value":357},{"type":39,"tag":286,"props":1390,"children":1391},{"style":377},[1392],{"type":45,"value":908},{"type":39,"tag":286,"props":1394,"children":1395},{"style":298},[1396],{"type":45,"value":1397},"Bob",{"type":39,"tag":286,"props":1399,"children":1400},{"style":377},[1401],{"type":45,"value":982},{"type":39,"tag":286,"props":1403,"children":1404},{"class":288,"line":723},[1405],{"type":39,"tag":286,"props":1406,"children":1407},{"style":377},[1408],{"type":45,"value":1409},"    }\n",{"type":39,"tag":286,"props":1411,"children":1412},{"class":288,"line":732},[1413],{"type":39,"tag":286,"props":1414,"children":1415},{"style":377},[1416],{"type":45,"value":990},{"type":39,"tag":286,"props":1418,"children":1419},{"class":288,"line":741},[1420],{"type":39,"tag":286,"props":1421,"children":1422},{"style":377},[1423],{"type":45,"value":998},{"type":39,"tag":263,"props":1425,"children":1427},{"id":1426},"plurals",[1428],{"type":45,"value":1429},"Plurals",{"type":39,"tag":111,"props":1431,"children":1432},{},[1433,1435,1441,1443,1449],{"type":45,"value":1434},"Use the ",{"type":39,"tag":117,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":45,"value":1440},"plural",{"type":45,"value":1442}," syntax to handle quantity-based string variations. The ",{"type":39,"tag":117,"props":1444,"children":1446},{"className":1445},[],[1447],{"type":45,"value":1448},"other",{"type":45,"value":1450}," case is mandatory.",{"type":39,"tag":275,"props":1452,"children":1454},{"className":866,"code":1453,"language":868,"meta":280,"style":280},"\"nWombats\": \"{count, plural, =0{no wombats} =1{1 wombat} other{{count} wombats}}\",\n\"@nWombats\": {\n  \"description\": \"A plural message\",\n  \"placeholders\": {\n    \"count\": {\n      \"type\": \"num\",\n      \"format\": \"compact\"\n    }\n  }\n}\n",[1455],{"type":39,"tag":117,"props":1456,"children":1457},{"__ignoreMap":280},[1458,1495,1519,1555,1578,1602,1638,1671,1678,1685],{"type":39,"tag":286,"props":1459,"children":1460},{"class":288,"line":289},[1461,1465,1470,1474,1478,1482,1487,1491],{"type":39,"tag":286,"props":1462,"children":1463},{"style":377},[1464],{"type":45,"value":899},{"type":39,"tag":286,"props":1466,"children":1467},{"style":298},[1468],{"type":45,"value":1469},"nWombats",{"type":39,"tag":286,"props":1471,"children":1472},{"style":377},[1473],{"type":45,"value":899},{"type":39,"tag":286,"props":1475,"children":1476},{"style":1202},[1477],{"type":45,"value":1205},{"type":39,"tag":286,"props":1479,"children":1480},{"style":377},[1481],{"type":45,"value":899},{"type":39,"tag":286,"props":1483,"children":1484},{"style":298},[1485],{"type":45,"value":1486},"{count, plural, =0{no wombats} =1{1 wombat} other{{count} wombats}}",{"type":39,"tag":286,"props":1488,"children":1489},{"style":377},[1490],{"type":45,"value":899},{"type":39,"tag":286,"props":1492,"children":1493},{"style":1202},[1494],{"type":45,"value":922},{"type":39,"tag":286,"props":1496,"children":1497},{"class":288,"line":319},[1498,1502,1507,1511,1515],{"type":39,"tag":286,"props":1499,"children":1500},{"style":377},[1501],{"type":45,"value":899},{"type":39,"tag":286,"props":1503,"children":1504},{"style":298},[1505],{"type":45,"value":1506},"@nWombats",{"type":39,"tag":286,"props":1508,"children":1509},{"style":377},[1510],{"type":45,"value":899},{"type":39,"tag":286,"props":1512,"children":1513},{"style":1202},[1514],{"type":45,"value":1205},{"type":39,"tag":286,"props":1516,"children":1517},{"style":377},[1518],{"type":45,"value":880},{"type":39,"tag":286,"props":1520,"children":1521},{"class":288,"line":395},[1522,1526,1530,1534,1538,1542,1547,1551],{"type":39,"tag":286,"props":1523,"children":1524},{"style":377},[1525],{"type":45,"value":888},{"type":39,"tag":286,"props":1527,"children":1528},{"style":891},[1529],{"type":45,"value":960},{"type":39,"tag":286,"props":1531,"children":1532},{"style":377},[1533],{"type":45,"value":899},{"type":39,"tag":286,"props":1535,"children":1536},{"style":377},[1537],{"type":45,"value":357},{"type":39,"tag":286,"props":1539,"children":1540},{"style":377},[1541],{"type":45,"value":908},{"type":39,"tag":286,"props":1543,"children":1544},{"style":298},[1545],{"type":45,"value":1546},"A plural message",{"type":39,"tag":286,"props":1548,"children":1549},{"style":377},[1550],{"type":45,"value":899},{"type":39,"tag":286,"props":1552,"children":1553},{"style":377},[1554],{"type":45,"value":922},{"type":39,"tag":286,"props":1556,"children":1557},{"class":288,"line":413},[1558,1562,1566,1570,1574],{"type":39,"tag":286,"props":1559,"children":1560},{"style":377},[1561],{"type":45,"value":888},{"type":39,"tag":286,"props":1563,"children":1564},{"style":891},[1565],{"type":45,"value":1168},{"type":39,"tag":286,"props":1567,"children":1568},{"style":377},[1569],{"type":45,"value":899},{"type":39,"tag":286,"props":1571,"children":1572},{"style":377},[1573],{"type":45,"value":357},{"type":39,"tag":286,"props":1575,"children":1576},{"style":377},[1577],{"type":45,"value":947},{"type":39,"tag":286,"props":1579,"children":1580},{"class":288,"line":426},[1581,1585,1590,1594,1598],{"type":39,"tag":286,"props":1582,"children":1583},{"style":377},[1584],{"type":45,"value":955},{"type":39,"tag":286,"props":1586,"children":1587},{"style":293},[1588],{"type":45,"value":1589},"count",{"type":39,"tag":286,"props":1591,"children":1592},{"style":377},[1593],{"type":45,"value":899},{"type":39,"tag":286,"props":1595,"children":1596},{"style":377},[1597],{"type":45,"value":357},{"type":39,"tag":286,"props":1599,"children":1600},{"style":377},[1601],{"type":45,"value":947},{"type":39,"tag":286,"props":1603,"children":1604},{"class":288,"line":442},[1605,1609,1613,1617,1621,1625,1630,1634],{"type":39,"tag":286,"props":1606,"children":1607},{"style":377},[1608],{"type":45,"value":1337},{"type":39,"tag":286,"props":1610,"children":1611},{"style":1340},[1612],{"type":45,"value":1343},{"type":39,"tag":286,"props":1614,"children":1615},{"style":377},[1616],{"type":45,"value":899},{"type":39,"tag":286,"props":1618,"children":1619},{"style":377},[1620],{"type":45,"value":357},{"type":39,"tag":286,"props":1622,"children":1623},{"style":377},[1624],{"type":45,"value":908},{"type":39,"tag":286,"props":1626,"children":1627},{"style":298},[1628],{"type":45,"value":1629},"num",{"type":39,"tag":286,"props":1631,"children":1632},{"style":377},[1633],{"type":45,"value":899},{"type":39,"tag":286,"props":1635,"children":1636},{"style":377},[1637],{"type":45,"value":922},{"type":39,"tag":286,"props":1639,"children":1640},{"class":288,"line":714},[1641,1645,1650,1654,1658,1662,1667],{"type":39,"tag":286,"props":1642,"children":1643},{"style":377},[1644],{"type":45,"value":1337},{"type":39,"tag":286,"props":1646,"children":1647},{"style":1340},[1648],{"type":45,"value":1649},"format",{"type":39,"tag":286,"props":1651,"children":1652},{"style":377},[1653],{"type":45,"value":899},{"type":39,"tag":286,"props":1655,"children":1656},{"style":377},[1657],{"type":45,"value":357},{"type":39,"tag":286,"props":1659,"children":1660},{"style":377},[1661],{"type":45,"value":908},{"type":39,"tag":286,"props":1663,"children":1664},{"style":298},[1665],{"type":45,"value":1666},"compact",{"type":39,"tag":286,"props":1668,"children":1669},{"style":377},[1670],{"type":45,"value":982},{"type":39,"tag":286,"props":1672,"children":1673},{"class":288,"line":723},[1674],{"type":39,"tag":286,"props":1675,"children":1676},{"style":377},[1677],{"type":45,"value":1409},{"type":39,"tag":286,"props":1679,"children":1680},{"class":288,"line":732},[1681],{"type":39,"tag":286,"props":1682,"children":1683},{"style":377},[1684],{"type":45,"value":990},{"type":39,"tag":286,"props":1686,"children":1687},{"class":288,"line":741},[1688],{"type":39,"tag":286,"props":1689,"children":1690},{"style":377},[1691],{"type":45,"value":998},{"type":39,"tag":263,"props":1693,"children":1695},{"id":1694},"selects",[1696],{"type":45,"value":1697},"Selects",{"type":39,"tag":111,"props":1699,"children":1700},{},[1701,1702,1708],{"type":45,"value":1434},{"type":39,"tag":117,"props":1703,"children":1705},{"className":1704},[],[1706],{"type":45,"value":1707},"select",{"type":45,"value":1709}," syntax for conditional strings, such as gendered text.",{"type":39,"tag":275,"props":1711,"children":1713},{"className":866,"code":1712,"language":868,"meta":280,"style":280},"\"pronoun\": \"{gender, select, male{he} female{she} other{they}}\",\n\"@pronoun\": {\n  \"description\": \"A gendered message\",\n  \"placeholders\": {\n    \"gender\": {\n      \"type\": \"String\"\n    }\n  }\n}\n",[1714],{"type":39,"tag":117,"props":1715,"children":1716},{"__ignoreMap":280},[1717,1754,1778,1814,1837,1861,1892,1899,1906],{"type":39,"tag":286,"props":1718,"children":1719},{"class":288,"line":289},[1720,1724,1729,1733,1737,1741,1746,1750],{"type":39,"tag":286,"props":1721,"children":1722},{"style":377},[1723],{"type":45,"value":899},{"type":39,"tag":286,"props":1725,"children":1726},{"style":298},[1727],{"type":45,"value":1728},"pronoun",{"type":39,"tag":286,"props":1730,"children":1731},{"style":377},[1732],{"type":45,"value":899},{"type":39,"tag":286,"props":1734,"children":1735},{"style":1202},[1736],{"type":45,"value":1205},{"type":39,"tag":286,"props":1738,"children":1739},{"style":377},[1740],{"type":45,"value":899},{"type":39,"tag":286,"props":1742,"children":1743},{"style":298},[1744],{"type":45,"value":1745},"{gender, select, male{he} female{she} other{they}}",{"type":39,"tag":286,"props":1747,"children":1748},{"style":377},[1749],{"type":45,"value":899},{"type":39,"tag":286,"props":1751,"children":1752},{"style":1202},[1753],{"type":45,"value":922},{"type":39,"tag":286,"props":1755,"children":1756},{"class":288,"line":319},[1757,1761,1766,1770,1774],{"type":39,"tag":286,"props":1758,"children":1759},{"style":377},[1760],{"type":45,"value":899},{"type":39,"tag":286,"props":1762,"children":1763},{"style":298},[1764],{"type":45,"value":1765},"@pronoun",{"type":39,"tag":286,"props":1767,"children":1768},{"style":377},[1769],{"type":45,"value":899},{"type":39,"tag":286,"props":1771,"children":1772},{"style":1202},[1773],{"type":45,"value":1205},{"type":39,"tag":286,"props":1775,"children":1776},{"style":377},[1777],{"type":45,"value":880},{"type":39,"tag":286,"props":1779,"children":1780},{"class":288,"line":395},[1781,1785,1789,1793,1797,1801,1806,1810],{"type":39,"tag":286,"props":1782,"children":1783},{"style":377},[1784],{"type":45,"value":888},{"type":39,"tag":286,"props":1786,"children":1787},{"style":891},[1788],{"type":45,"value":960},{"type":39,"tag":286,"props":1790,"children":1791},{"style":377},[1792],{"type":45,"value":899},{"type":39,"tag":286,"props":1794,"children":1795},{"style":377},[1796],{"type":45,"value":357},{"type":39,"tag":286,"props":1798,"children":1799},{"style":377},[1800],{"type":45,"value":908},{"type":39,"tag":286,"props":1802,"children":1803},{"style":298},[1804],{"type":45,"value":1805},"A gendered message",{"type":39,"tag":286,"props":1807,"children":1808},{"style":377},[1809],{"type":45,"value":899},{"type":39,"tag":286,"props":1811,"children":1812},{"style":377},[1813],{"type":45,"value":922},{"type":39,"tag":286,"props":1815,"children":1816},{"class":288,"line":413},[1817,1821,1825,1829,1833],{"type":39,"tag":286,"props":1818,"children":1819},{"style":377},[1820],{"type":45,"value":888},{"type":39,"tag":286,"props":1822,"children":1823},{"style":891},[1824],{"type":45,"value":1168},{"type":39,"tag":286,"props":1826,"children":1827},{"style":377},[1828],{"type":45,"value":899},{"type":39,"tag":286,"props":1830,"children":1831},{"style":377},[1832],{"type":45,"value":357},{"type":39,"tag":286,"props":1834,"children":1835},{"style":377},[1836],{"type":45,"value":947},{"type":39,"tag":286,"props":1838,"children":1839},{"class":288,"line":426},[1840,1844,1849,1853,1857],{"type":39,"tag":286,"props":1841,"children":1842},{"style":377},[1843],{"type":45,"value":955},{"type":39,"tag":286,"props":1845,"children":1846},{"style":293},[1847],{"type":45,"value":1848},"gender",{"type":39,"tag":286,"props":1850,"children":1851},{"style":377},[1852],{"type":45,"value":899},{"type":39,"tag":286,"props":1854,"children":1855},{"style":377},[1856],{"type":45,"value":357},{"type":39,"tag":286,"props":1858,"children":1859},{"style":377},[1860],{"type":45,"value":947},{"type":39,"tag":286,"props":1862,"children":1863},{"class":288,"line":442},[1864,1868,1872,1876,1880,1884,1888],{"type":39,"tag":286,"props":1865,"children":1866},{"style":377},[1867],{"type":45,"value":1337},{"type":39,"tag":286,"props":1869,"children":1870},{"style":1340},[1871],{"type":45,"value":1343},{"type":39,"tag":286,"props":1873,"children":1874},{"style":377},[1875],{"type":45,"value":899},{"type":39,"tag":286,"props":1877,"children":1878},{"style":377},[1879],{"type":45,"value":357},{"type":39,"tag":286,"props":1881,"children":1882},{"style":377},[1883],{"type":45,"value":908},{"type":39,"tag":286,"props":1885,"children":1886},{"style":298},[1887],{"type":45,"value":1360},{"type":39,"tag":286,"props":1889,"children":1890},{"style":377},[1891],{"type":45,"value":982},{"type":39,"tag":286,"props":1893,"children":1894},{"class":288,"line":714},[1895],{"type":39,"tag":286,"props":1896,"children":1897},{"style":377},[1898],{"type":45,"value":1409},{"type":39,"tag":286,"props":1900,"children":1901},{"class":288,"line":723},[1902],{"type":39,"tag":286,"props":1903,"children":1904},{"style":377},[1905],{"type":45,"value":990},{"type":39,"tag":286,"props":1907,"children":1908},{"class":288,"line":732},[1909],{"type":39,"tag":286,"props":1910,"children":1911},{"style":377},[1912],{"type":45,"value":998},{"type":39,"tag":48,"props":1914,"children":1916},{"id":1915},"examples",[1917],{"type":45,"value":104},{"type":39,"tag":263,"props":1919,"children":1921},{"id":1920},"complete-l10nyaml",[1922,1924],{"type":45,"value":1923},"Complete ",{"type":39,"tag":117,"props":1925,"children":1927},{"className":1926},[],[1928],{"type":45,"value":235},{"type":39,"tag":275,"props":1930,"children":1932},{"className":360,"code":1931,"language":362,"meta":280,"style":280},"arb-dir: lib\u002Fl10n\ntemplate-arb-file: app_en.arb\noutput-localization-file: app_localizations.dart\nsynthetic-package: true\nuse-escaping: true\n",[1933],{"type":39,"tag":117,"props":1934,"children":1935},{"__ignoreMap":280},[1936,1951,1966,1981,1996],{"type":39,"tag":286,"props":1937,"children":1938},{"class":288,"line":289},[1939,1943,1947],{"type":39,"tag":286,"props":1940,"children":1941},{"style":372},[1942],{"type":45,"value":558},{"type":39,"tag":286,"props":1944,"children":1945},{"style":377},[1946],{"type":45,"value":357},{"type":39,"tag":286,"props":1948,"children":1949},{"style":298},[1950],{"type":45,"value":567},{"type":39,"tag":286,"props":1952,"children":1953},{"class":288,"line":319},[1954,1958,1962],{"type":39,"tag":286,"props":1955,"children":1956},{"style":372},[1957],{"type":45,"value":575},{"type":39,"tag":286,"props":1959,"children":1960},{"style":377},[1961],{"type":45,"value":357},{"type":39,"tag":286,"props":1963,"children":1964},{"style":298},[1965],{"type":45,"value":584},{"type":39,"tag":286,"props":1967,"children":1968},{"class":288,"line":395},[1969,1973,1977],{"type":39,"tag":286,"props":1970,"children":1971},{"style":372},[1972],{"type":45,"value":592},{"type":39,"tag":286,"props":1974,"children":1975},{"style":377},[1976],{"type":45,"value":357},{"type":39,"tag":286,"props":1978,"children":1979},{"style":298},[1980],{"type":45,"value":601},{"type":39,"tag":286,"props":1982,"children":1983},{"class":288,"line":413},[1984,1988,1992],{"type":39,"tag":286,"props":1985,"children":1986},{"style":372},[1987],{"type":45,"value":609},{"type":39,"tag":286,"props":1989,"children":1990},{"style":377},[1991],{"type":45,"value":357},{"type":39,"tag":286,"props":1993,"children":1994},{"style":522},[1995],{"type":45,"value":525},{"type":39,"tag":286,"props":1997,"children":1998},{"class":288,"line":426},[1999,2004,2008],{"type":39,"tag":286,"props":2000,"children":2001},{"style":372},[2002],{"type":45,"value":2003},"use-escaping",{"type":39,"tag":286,"props":2005,"children":2006},{"style":377},[2007],{"type":45,"value":357},{"type":39,"tag":286,"props":2009,"children":2010},{"style":522},[2011],{"type":45,"value":525},{"type":39,"tag":263,"props":2013,"children":2015},{"id":2014},"complete-widget-implementation",[2016],{"type":45,"value":2017},"Complete Widget Implementation",{"type":39,"tag":275,"props":2019,"children":2021},{"className":658,"code":2020,"language":19,"meta":280,"style":280},"import 'package:flutter\u002Fmaterial.dart';\nimport 'package:flutter_gen\u002Fgen_l10n\u002Fapp_localizations.dart';\n\nclass GreetingWidget extends StatelessWidget {\n  final String userName;\n  final int notificationCount;\n\n  const GreetingWidget({\n    super.key, \n    required this.userName, \n    required this.notificationCount,\n  });\n\n  @override\n  Widget build(BuildContext context) {\n    final l10n = AppLocalizations.of(context)!;\n\n    return Column(\n      children: [\n        Text(l10n.hello(userName)),\n        Text(l10n.nWombats(notificationCount)),\n      ],\n    );\n  }\n}\n",[2022],{"type":39,"tag":117,"props":2023,"children":2024},{"__ignoreMap":280},[2025,2033,2041,2048,2056,2064,2072,2079,2087,2095,2103,2111,2119,2126,2134,2142,2150,2157,2166,2175,2184,2193,2202,2211,2219],{"type":39,"tag":286,"props":2026,"children":2027},{"class":288,"line":289},[2028],{"type":39,"tag":286,"props":2029,"children":2030},{},[2031],{"type":45,"value":2032},"import 'package:flutter\u002Fmaterial.dart';\n",{"type":39,"tag":286,"props":2034,"children":2035},{"class":288,"line":319},[2036],{"type":39,"tag":286,"props":2037,"children":2038},{},[2039],{"type":45,"value":2040},"import 'package:flutter_gen\u002Fgen_l10n\u002Fapp_localizations.dart';\n",{"type":39,"tag":286,"props":2042,"children":2043},{"class":288,"line":395},[2044],{"type":39,"tag":286,"props":2045,"children":2046},{"emptyLinePlaceholder":172},[2047],{"type":45,"value":687},{"type":39,"tag":286,"props":2049,"children":2050},{"class":288,"line":413},[2051],{"type":39,"tag":286,"props":2052,"children":2053},{},[2054],{"type":45,"value":2055},"class GreetingWidget extends StatelessWidget {\n",{"type":39,"tag":286,"props":2057,"children":2058},{"class":288,"line":426},[2059],{"type":39,"tag":286,"props":2060,"children":2061},{},[2062],{"type":45,"value":2063},"  final String userName;\n",{"type":39,"tag":286,"props":2065,"children":2066},{"class":288,"line":442},[2067],{"type":39,"tag":286,"props":2068,"children":2069},{},[2070],{"type":45,"value":2071},"  final int notificationCount;\n",{"type":39,"tag":286,"props":2073,"children":2074},{"class":288,"line":714},[2075],{"type":39,"tag":286,"props":2076,"children":2077},{"emptyLinePlaceholder":172},[2078],{"type":45,"value":687},{"type":39,"tag":286,"props":2080,"children":2081},{"class":288,"line":723},[2082],{"type":39,"tag":286,"props":2083,"children":2084},{},[2085],{"type":45,"value":2086},"  const GreetingWidget({\n",{"type":39,"tag":286,"props":2088,"children":2089},{"class":288,"line":732},[2090],{"type":39,"tag":286,"props":2091,"children":2092},{},[2093],{"type":45,"value":2094},"    super.key, \n",{"type":39,"tag":286,"props":2096,"children":2097},{"class":288,"line":741},[2098],{"type":39,"tag":286,"props":2099,"children":2100},{},[2101],{"type":45,"value":2102},"    required this.userName, \n",{"type":39,"tag":286,"props":2104,"children":2105},{"class":288,"line":750},[2106],{"type":39,"tag":286,"props":2107,"children":2108},{},[2109],{"type":45,"value":2110},"    required this.notificationCount,\n",{"type":39,"tag":286,"props":2112,"children":2113},{"class":288,"line":759},[2114],{"type":39,"tag":286,"props":2115,"children":2116},{},[2117],{"type":45,"value":2118},"  });\n",{"type":39,"tag":286,"props":2120,"children":2121},{"class":288,"line":768},[2122],{"type":39,"tag":286,"props":2123,"children":2124},{"emptyLinePlaceholder":172},[2125],{"type":45,"value":687},{"type":39,"tag":286,"props":2127,"children":2128},{"class":288,"line":777},[2129],{"type":39,"tag":286,"props":2130,"children":2131},{},[2132],{"type":45,"value":2133},"  @override\n",{"type":39,"tag":286,"props":2135,"children":2136},{"class":288,"line":786},[2137],{"type":39,"tag":286,"props":2138,"children":2139},{},[2140],{"type":45,"value":2141},"  Widget build(BuildContext context) {\n",{"type":39,"tag":286,"props":2143,"children":2144},{"class":288,"line":794},[2145],{"type":39,"tag":286,"props":2146,"children":2147},{},[2148],{"type":45,"value":2149},"    final l10n = AppLocalizations.of(context)!;\n",{"type":39,"tag":286,"props":2151,"children":2152},{"class":288,"line":803},[2153],{"type":39,"tag":286,"props":2154,"children":2155},{"emptyLinePlaceholder":172},[2156],{"type":45,"value":687},{"type":39,"tag":286,"props":2158,"children":2160},{"class":288,"line":2159},18,[2161],{"type":39,"tag":286,"props":2162,"children":2163},{},[2164],{"type":45,"value":2165},"    return Column(\n",{"type":39,"tag":286,"props":2167,"children":2169},{"class":288,"line":2168},19,[2170],{"type":39,"tag":286,"props":2171,"children":2172},{},[2173],{"type":45,"value":2174},"      children: [\n",{"type":39,"tag":286,"props":2176,"children":2178},{"class":288,"line":2177},20,[2179],{"type":39,"tag":286,"props":2180,"children":2181},{},[2182],{"type":45,"value":2183},"        Text(l10n.hello(userName)),\n",{"type":39,"tag":286,"props":2185,"children":2187},{"class":288,"line":2186},21,[2188],{"type":39,"tag":286,"props":2189,"children":2190},{},[2191],{"type":45,"value":2192},"        Text(l10n.nWombats(notificationCount)),\n",{"type":39,"tag":286,"props":2194,"children":2196},{"class":288,"line":2195},22,[2197],{"type":39,"tag":286,"props":2198,"children":2199},{},[2200],{"type":45,"value":2201},"      ],\n",{"type":39,"tag":286,"props":2203,"children":2205},{"class":288,"line":2204},23,[2206],{"type":39,"tag":286,"props":2207,"children":2208},{},[2209],{"type":45,"value":2210},"    );\n",{"type":39,"tag":286,"props":2212,"children":2214},{"class":288,"line":2213},24,[2215],{"type":39,"tag":286,"props":2216,"children":2217},{},[2218],{"type":45,"value":990},{"type":39,"tag":286,"props":2220,"children":2222},{"class":288,"line":2221},25,[2223],{"type":39,"tag":286,"props":2224,"children":2225},{},[2226],{"type":45,"value":998},{"type":39,"tag":2228,"props":2229,"children":2230},"style",{},[2231],{"type":45,"value":2232},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2234,"total":2370},[2235,2246,2257,2269,2280,2289,2301,2313,2325,2337,2351,2361],{"slug":2236,"name":2236,"fn":2237,"description":2238,"org":2239,"tags":2240,"stars":20,"repoUrl":21,"updatedAt":2245},"dart-add-unit-test","write unit tests for Dart code","Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains correct and regression-free.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2241,2242],{"name":18,"slug":19,"type":14},{"name":2243,"slug":2244,"type":14},"Testing","testing","2026-07-15T05:22:40.104823",{"slug":2247,"name":2247,"fn":2248,"description":2249,"org":2250,"tags":2251,"stars":20,"repoUrl":21,"updatedAt":2256},"dart-build-cli-app","build Dart command line applications","Entrypoint structure, exit codes, cross-platform scripts. Use when building command line utilities, scripts, or applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2252,2255],{"name":2253,"slug":2254,"type":14},"CLI","cli",{"name":18,"slug":19,"type":14},"2026-07-15T05:22:18.863572",{"slug":2258,"name":2258,"fn":2259,"description":2260,"org":2261,"tags":2262,"stars":20,"repoUrl":21,"updatedAt":2268},"dart-collect-coverage","collect Dart test coverage reports","Collect coverage using the coverage packge and create an LCOV report",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2263,2264,2267],{"name":18,"slug":19,"type":14},{"name":2265,"slug":2266,"type":14},"Reporting","reporting",{"name":2243,"slug":2244,"type":14},"2026-07-15T05:22:21.38636",{"slug":2270,"name":2270,"fn":2271,"description":2272,"org":2273,"tags":2274,"stars":20,"repoUrl":21,"updatedAt":2279},"dart-fix-runtime-errors","debug and fix Dart runtime errors","Uses get_runtime_errors and lsp to fetch an active stack trace, locate the failing line, apply a fix, and verify resolution via hot_reload.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2275,2276],{"name":18,"slug":19,"type":14},{"name":2277,"slug":2278,"type":14},"Debugging","debugging","2026-07-15T05:22:22.622501",{"slug":2281,"name":2281,"fn":2282,"description":2283,"org":2284,"tags":2285,"stars":20,"repoUrl":21,"updatedAt":2288},"dart-generate-test-mocks","generate mock objects for Dart tests","Define and generate mock objects for external dependencies using `package:mockito` and `build_runner`. Use when unit testing classes that depend on complex external services like APIs or databases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2286,2287],{"name":18,"slug":19,"type":14},{"name":2243,"slug":2244,"type":14},"2026-07-15T05:22:42.607449",{"slug":2290,"name":2290,"fn":2291,"description":2292,"org":2293,"tags":2294,"stars":20,"repoUrl":21,"updatedAt":2300},"dart-migrate-to-checks-package","migrate test matchers to checks package","Replace the usage of `expect` and similar functions from `package:matcher`\nto `package:checks` equivalents.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2295,2296,2299],{"name":18,"slug":19,"type":14},{"name":2297,"slug":2298,"type":14},"Migration","migration",{"name":2243,"slug":2244,"type":14},"2026-07-15T05:22:31.276564",{"slug":2302,"name":2302,"fn":2303,"description":2304,"org":2305,"tags":2306,"stars":20,"repoUrl":21,"updatedAt":2312},"dart-resolve-package-conflicts","resolve Dart package version conflicts","Workflow for fixing package version conflicts. Use this when `pub get` fails due to incompatible package versions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2307,2308,2309],{"name":18,"slug":19,"type":14},{"name":2277,"slug":2278,"type":14},{"name":2310,"slug":2311,"type":14},"Engineering","engineering","2026-07-15T05:22:30.059335",{"slug":2314,"name":2314,"fn":2315,"description":2316,"org":2317,"tags":2318,"stars":20,"repoUrl":21,"updatedAt":2324},"dart-run-static-analysis","run static analysis and apply fixes","Execute `dart analyze` to identify warnings and errors, and use `dart fix --apply` to automatically resolve mechanical lint issues. Use during development to ensure code quality and before committing changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2319,2322,2323],{"name":2320,"slug":2321,"type":14},"Code Analysis","code-analysis",{"name":18,"slug":19,"type":14},{"name":2277,"slug":2278,"type":14},"2026-07-15T05:22:23.861119",{"slug":2326,"name":2326,"fn":2327,"description":2328,"org":2329,"tags":2330,"stars":20,"repoUrl":21,"updatedAt":2336},"dart-setup-ffi-assets","package C\u002FC++ assets for Dart","Guides agents in compiling and packaging C\u002FC++ source code into dynamic or static libraries (Code Assets) using Dart's Native Assets hook system (via hook\u002Fbuild.dart and hook\u002Flink.dart utilizing package:hooks and package:native_toolchain_c). Use when a user asks to: 'setup native assets', 'compile C\u002FC++ source code', 'bundle dynamic libraries', 'build native C code', 'link native assets', 'implement build.dart or link.dart hooks', or 'integrate C\u002FC++ interop in Dart\u002FFlutter'. Helps agents avoid manual toolchain orchestration and configures secure hash-validated binary downloads or advanced linker tree-shaking with package:record_use mapping.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2331,2332,2335],{"name":18,"slug":19,"type":14},{"name":2333,"slug":2334,"type":14},"Deployment","deployment",{"name":2310,"slug":2311,"type":14},"2026-07-15T05:22:20.138636",{"slug":2338,"name":2338,"fn":2339,"description":2340,"org":2341,"tags":2342,"stars":20,"repoUrl":21,"updatedAt":2350},"dart-skills-lint-setup","configure dart_skills_lint for Dart projects","Use this skill when you need to set up validation for AI agent skills in a Dart project for the first time.\nAdds the linter as a dev_dependency, creates a configuration file, and generates a baseline for legacy repos.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2343,2344,2347],{"name":18,"slug":19,"type":14},{"name":2345,"slug":2346,"type":14},"Plugin Development","plugin-development",{"name":2348,"slug":2349,"type":14},"QA","qa","2026-07-15T05:22:47.488998",{"slug":2352,"name":2352,"fn":2353,"description":2354,"org":2355,"tags":2356,"stars":20,"repoUrl":21,"updatedAt":2360},"dart-skills-lint-validation","validate agent skills with dart_skills_lint","Use this skill when you need to validate AI agent skills with dart_skills_lint — running the linter, interpreting failures, fixing violations, and authoring custom rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2357,2358,2359],{"name":18,"slug":19,"type":14},{"name":2345,"slug":2346,"type":14},{"name":2348,"slug":2349,"type":14},"2026-07-21T05:38:34.451024",{"slug":2362,"name":2362,"fn":2363,"description":2364,"org":2365,"tags":2366,"stars":20,"repoUrl":21,"updatedAt":2369},"dart-use-ffigen","generate FFI bindings with ffigen","Guide agents to use `package:ffigen` to automatically generate FFI bindings instead of writing them manually. Use this skill when a task involves writing new FFI bindings, extending C\u002FObjective-C\u002FSwift integrations, or replacing hand-crafted `dart:ffi` setups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2367,2368],{"name":18,"slug":19,"type":14},{"name":2310,"slug":2311,"type":14},"2026-07-15T05:22:17.592351",27,{"items":2372,"total":2213},[2373,2378,2383,2389,2394,2399,2405],{"slug":2236,"name":2236,"fn":2237,"description":2238,"org":2374,"tags":2375,"stars":20,"repoUrl":21,"updatedAt":2245},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2376,2377],{"name":18,"slug":19,"type":14},{"name":2243,"slug":2244,"type":14},{"slug":2247,"name":2247,"fn":2248,"description":2249,"org":2379,"tags":2380,"stars":20,"repoUrl":21,"updatedAt":2256},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2381,2382],{"name":2253,"slug":2254,"type":14},{"name":18,"slug":19,"type":14},{"slug":2258,"name":2258,"fn":2259,"description":2260,"org":2384,"tags":2385,"stars":20,"repoUrl":21,"updatedAt":2268},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2386,2387,2388],{"name":18,"slug":19,"type":14},{"name":2265,"slug":2266,"type":14},{"name":2243,"slug":2244,"type":14},{"slug":2270,"name":2270,"fn":2271,"description":2272,"org":2390,"tags":2391,"stars":20,"repoUrl":21,"updatedAt":2279},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2392,2393],{"name":18,"slug":19,"type":14},{"name":2277,"slug":2278,"type":14},{"slug":2281,"name":2281,"fn":2282,"description":2283,"org":2395,"tags":2396,"stars":20,"repoUrl":21,"updatedAt":2288},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2397,2398],{"name":18,"slug":19,"type":14},{"name":2243,"slug":2244,"type":14},{"slug":2290,"name":2290,"fn":2291,"description":2292,"org":2400,"tags":2401,"stars":20,"repoUrl":21,"updatedAt":2300},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2402,2403,2404],{"name":18,"slug":19,"type":14},{"name":2297,"slug":2298,"type":14},{"name":2243,"slug":2244,"type":14},{"slug":2302,"name":2302,"fn":2303,"description":2304,"org":2406,"tags":2407,"stars":20,"repoUrl":21,"updatedAt":2312},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2408,2409,2410],{"name":18,"slug":19,"type":14},{"name":2277,"slug":2278,"type":14},{"name":2310,"slug":2311,"type":14}]