* Add Rust bin to deprecate unused ftl entries
* Align function names with bin names
* Support passing in multiple ftl roots
* Use source instead of jsons for deprecating
* Fix CargoRun not working more than once (dae)
* Add ftl:deprecate (dae)
* Deprecate some strings (dae)
This is not all of the strings that are currently unused
* Check json files before deprecating; add allowlist (dae)
The scheduler messages we'll probably want to reuse for the v2->v3
transition, so I'd prefer to keep them undeprecated for now.
* Deprecate old bury options (dae)
* Support gathering usages from Kotlin files for AnkiDroid (dae)
* Update json scripts (dae)
* Remove old deprecation headers
* Parameterize JSON roots to keep
* Tweak deprecation message (dae)
* Canonify import of i18n module
Should always be imported as `tr`, or `tr2` if there is a name collision
(Svelte).
* Add helper for garbage collecting ftl strings
Also add a serializer for ftl asts.
* Add helper for filter-mapping `DirEntry`s
* Fix `i18n_helpers/BUILD.bazel`
* run cargo-raze
* Refactor `garbage_collection.rs`
- Improve helper for file iterating
- Remove unused terms as well
- Fix issue with checking for nested messages by switching to a regex-
based approach (which runs before deleting)
- Some more refactorings and lint fixes
* Fix lints in `serialize.rs`
* Write json pretty and sorted
* Update `serialize.rs` and fix header
* Fix doc and remove `dbg!`
* Add binaries for ftl garbage collection
Also relax type constraints and strip debug tests.
* add rust_binary targets for i18n helpers (dae)
* add scripts to update desktop usage/garbage collect (dae)
Since we've already diverged from 2.1.49, we won't gain anything
from generating a stable json just yet. But once 2.1.50 is released,
we should run 'ftl/update-desktop-usage.sh stable'.
* add keys from AnkiMobile (dae)
* Mention caveats in `remove-unused.sh`