docs: add better docs on internationalization (#1932)

[skip ci]
This commit is contained in:
Nolan Lawson 2021-02-14 09:58:55 -08:00 committed by GitHub
parent a3e970fe7a
commit fc96d7137d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 6 deletions

View file

@ -1,11 +1,5 @@
# Contributing to Pinafore
## Internationalization
To contribute or change translations for Pinafore, look in the [src/intl](https://github.com/nolanlawson/pinafore/tree/master/src/intl) directory. Create a new file or edit an existing file based on its [two-letter language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) and optionally, a region. For instance, `en-US.js` is American English, and `fr.js` is French.
The default is `en-US.js`, and any strings not defined in a language file will fall back to the strings from that file.
## Installing
To install with dev dependencies, run:
@ -95,6 +89,10 @@ The tests have a naming convention:
In principle the `0-` tests don't have to worry about
clobbering each other, whereas the `1-` ones do.
### Internationalization
See [Internationalization.md](https://github.com/nolanlawson/pinafore/blob/master/docs/Internationalization.md).
### Mastodon used for testing
There are two parts to the Mastodon data used for testing:

View file

@ -0,0 +1,20 @@
# Internationalization
To contribute or change translations for Pinafore, look in the [src/intl](https://github.com/nolanlawson/pinafore/tree/master/src/intl) directory. Create a new file or edit an existing file based on its [two-letter language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) and optionally, a region. For instance, `en-US.js` is American English, and `fr.js` is French.
The default is `en-US.js`, and any strings not defined in a language file will fall back to the strings from that file.
There is also an `intl/emoji-picker` directory, which contains translations for [emoji-picker-element](https://github.com/nolanlawson/emoji-picker-element)
(which already comes with English built-in).
Note that internationalization is currently experimental. Client-side locale switching is not supported when you build
the instance of Pinafore, it is either one language or another. To build in a particular language, use (for example):
LOCALE=fr yarn build
or
LOCALE=fr yarn dev
There is also an experimental `LOCALE_DIRECTION` environment variable for the direction (LTR versus RTL) which is
exposed to the source code while building.