anki/rslib/i18n/Cargo.toml
Damien Elmes 9aece2a7b8 rework translation handling
Instead of generating a fluent.proto file with a giant enum, create
a .json file representing the translations that downstream consumers
can use for code generation.

This enables the generation of a separate method for each translation,
with a docstring that shows the actual text, and any required arguments
listed in the function signature.

The codebase is still using the old enum for now; updating it will need
to come in future commits, and the old enum will need to be kept
around, as add-ons are referencing it.

Other changes:

- move translation code into a separate crate
- store the translations on a per-file/module basis, which will allow
us to avoid sending 1000+ strings on each JS page load in the future
- drop the undocumented support for external .ftl files, that we weren't
using
- duplicate strings in translation files are now checked for at build
time
- fix i18n test failing when run outside Bazel
- drop slog dependency in i18n module
2021-03-26 09:41:32 +10:00

36 lines
853 B
TOML

[package]
name = "anki_i18n"
version = "0.0.0"
edition = "2018"
authors = ["Ankitects Pty Ltd and contributors"]
license = "AGPL-3.0-or-later"
description = "Anki's Rust library i18n code"
build = "build/main.rs"
[lib]
name = "anki_i18n"
path = "src/lib.rs"
[[bin]]
name = "write_json"
path = "build/write_json.rs"
# After updating anything below, run ../cargo/update.py
[build-dependencies]
fluent-syntax = "0.10"
fluent = "0.13.1"
unic-langid = { version = "0.9", features = ["macros"] }
serde = { version = "1.0.114", features = ["derive"] }
serde_json = "1.0.56"
inflections = "1.1.1"
[dependencies]
phf = { version = "0.8", features = ["macros"] }
fluent = "0.13.1"
num-format = "0.4.0"
unic-langid = { version = "0.9", features = ["macros"] }
serde = { version = "1.0.114", features = ["derive"] }
serde_json = "1.0.56"
intl-memoizer = "0.5"