This commit is contained in:
@@ -27,6 +27,34 @@ The API is split in two layers:
|
||||
Devise/ActiveAdmin authentication, theming and assets. It consumes WarpEngine
|
||||
as a path gem and mounts it at `/`.
|
||||
|
||||
## Languages
|
||||
|
||||
The site is bilingual (English and Hungarian) and so is the wiki behind it.
|
||||
`Locales` (`lib/locales.rb`) is the one list of supported codes; anything else
|
||||
falls back to `en`.
|
||||
|
||||
The wiki serves English unprefixed and Hungarian under `/hu`, so
|
||||
`Wiki::Pages` builds the language into the request path rather than into a query
|
||||
parameter:
|
||||
|
||||
```
|
||||
GET /api/wiki/pages?tag=howto&lang=hu -> https://wiki.teletypegames.org/hu/custom/pages.json?tag=howto
|
||||
GET /api/wiki/pages?tag=howto -> https://wiki.teletypegames.org/custom/pages.json?tag=howto
|
||||
```
|
||||
|
||||
Each page in the response carries a `locale` saying which language its body is
|
||||
**actually** written in. That differs from the requested `lang` for the wiki
|
||||
pages that exist only in Hungarian: they are served as-is rather than 404ing, and
|
||||
a client can label them.
|
||||
|
||||
The RSS feeds take the same `lang` parameter (`/api/rss/blog?lang=hu`), which
|
||||
sets the channel language and picks the wiki language and the feed's own strings
|
||||
from `config/locales/`.
|
||||
|
||||
The frontend passes the interface language on every wiki call and rebuilds its
|
||||
outbound wiki links with `wikiUrl()`, so switching EN/HU re-reads the catalog and
|
||||
points the links at the matching wiki pages.
|
||||
|
||||
## The store registry
|
||||
|
||||
`GET /api/stores` lists the stores a client can install from. The desktop
|
||||
|
||||
Reference in New Issue
Block a user