ARB Desk - third-party notices ============================== ARB Desk (https://arb-desk.skillsafe.ai/) is a derived work. It is not affiliated with or endorsed by Google or the Flutter project. 1. The agent skill @flutter/flutter-localizing-apps Source: https://github.com/flutter/agent-plugins, skills/flutter-localizing-apps/SKILL.md at commit 44685e80869e5e0304075974c7f9c598f5a3a967 (the version the SkillSafe registry lists; upstream later replaced it with skills/flutter-setup-localization/SKILL.md, read at main 3f58a5512a03c854b6c8b1128d6711e5e2d5055b on 2026-09-28). Licence: BSD 3-Clause, Copyright 2026 The Flutter Authors. Full text: /LICENSE-agent-plugins.txt Used as: the source of the app's localization workflow (ARB files, @key metadata, placeholders, plurals, selects, dates and numbers, l10n.yaml, generate: true, adding a language, iOS bundle localizations). The app's system prompt is new text written for this app. Where the skill's example config is now out of date (package:flutter_gen imports and the synthetic package, removed in Flutter 3.35), the app says so and shows the current setup instead. 2. Flutter's gen-l10n tool (flutter_tools) Source: https://github.com/flutter/flutter, packages/flutter_tools/lib/src/localizations/ (message_parser.dart, gen_l10n.dart, gen_l10n_types.dart, localizations_utils.dart), master at commit 8db55268667c738b90677d49857ff42938e9c9fa (read 2026-09-28). Licence: BSD 3-Clause, Copyright 2014 The Flutter Authors. Full text: /LICENSE-flutter.txt Used as: icu.js is a JavaScript port of message_parser.dart (lexer, grammar, tree compression, extra rules); arbkit.js re-implements the resource-name rule, placeholder type inference, the valid number formats and DateFormat skeletons, and the plural case mapping from those files. The ports are modified (translated to JavaScript); behaviour is intended to match. 3. The intl package (dart-lang/i18n) Source: https://github.com/dart-lang/i18n, pkgs/intl/lib/intl.dart (Intl.pluralLogic). Licence: BSD 3-Clause. Used as: the reference for how a plural case is chosen (exact 0/1/2 first, then the CLDR category, with fallbacks). No code is copied; the behaviour is re-implemented in icu.js. Plural categories themselves come from the browser's Intl.PluralRules (Unicode CLDR data), which can differ from intl's bundled rules for a few rare locales. 4. SkillSafe apps SDK (sdk.js), vendored from https://skillsafe.ai/apps-sdk/v1.js.