1
0
mirror of https://github.com/actix/examples synced 2025-06-27 01:27:43 +02:00

add fluent templates example

This commit is contained in:
Rob Ede
2022-07-10 03:30:48 +01:00
parent 0f08afee18
commit 8770694e11
13 changed files with 278 additions and 6 deletions

View File

@ -0,0 +1,33 @@
# Fluent Templates
This is an example of how to integrate [Fluent Templates](https://crates.io/crates/fluent-templates) with Actix Web using the Handlebars templating engine.
# Directory Structure
- `src`: Rust source code for web server and endpoint configuration
- `templates`: Handlebars templates (no text content is stored in the templates)
- `locales`: Fluent files containing translations for English (en) and French (fr)
## Usage
```sh
cd templating/fluent
cargo run
```
After starting the server, you may visit the following pages:
- http://localhost:8080
- http://localhost:8080/Alice/documents
- http://localhost:8080/Bob/passwords
- http://localhost:8080/some-non-existing-page - 404 error rendered using template
This example implements language selection using the standard Accept-Language header, which is sent by browsers according to OS/browser settings. To view the translated pages, pass the Accept-Encoding header with `en` or `fr`. Values which do not have associated translation files will fall back to English.
```
# using HTTPie
http :8080/Alice/documents Accept-Language:fr
# using cURL
curl http://localhost:8080/Alice/documents -H 'accept-language: fr'
```