Metadata-Version: 2.4
Name: fluent-telegrinder
Version: 1.0.3
Summary: Fluent i18n implementation for telegrinder
Author-email: ventuero <amerfoe@gmail.com>
Project-URL: Homepage, https://github.com/ventuero/fluent-telegrinder/blob/main/README.md
Project-URL: Repository, https://github.com/ventuero/fluent-telegrinder
Keywords: telegram,bot,fluent
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fluent-runtime>=0.4.0
Provides-Extra: dev
Requires-Dist: ruff>=0.13.2; extra == "dev"
Requires-Dist: telegrinder; extra == "dev"
Dynamic: license-file

# Fluent Telegrinder
[Fluent](https://projectfluent.org) i18n implementation for telegrinder

## Installation:
```shell
pip install fluent-telegrinder
```

## Usage:
```python
from telegrinder import API, Message, Telegrinder, Token
from telegrinder.node import as_node

from fluent_telegrinder import (
    DefaultLocaleSource,  # UserLanguageSource or custom source (any node, returns str)
    FluentConfig,
    FluentTranslator,  # or alias: Translator
    TextEquals,
)

config = FluentConfig(
    folder="locales/",
    source=as_node(DefaultLocaleSource), # source for locale
    default_locale="ru",
    replace_underscore=True, # i_love_telegrinder -> i-love-telegrinder
)
FluentTranslator.configure(config)

bot = Telegrinder(API(Token.from_env()))

@bot.on.message(TextEquals("hello", ignore_case=True)) # hello - i18n key (hello, привет)
async def on_hello(msg: Message, _: FluentTranslator):
    await msg.reply(_.hello_answer(user=msg.from_user.first_name))

bot.run_forever(skip_updates=True)
```

## License
Fluent Telegrinder licensed under [MIT license](./LICENSE)
