[feature] Set/show instance language(s); show post language on frontend (#2362)

* update go text, include text/display

* [feature] Set instance langs, show post lang on frontend

* go fmt

* WebGet

* set language for whole article, don't use FA icon

* mention instance languages + other optional config vars

* little tweak

* put languages in config properly

* warn log language parse

* change some naming around

* tidy up validate a bit

* lint

* rename LanguageTmpl in template
This commit is contained in:
tobi 2023-11-17 11:35:28 +01:00 committed by GitHub
commit fc02d3c6f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
73 changed files with 55005 additions and 141 deletions

View file

@ -38,6 +38,12 @@ GTS_MEDIA_IMAGE_MAX_SIZE=2097152
If you're in doubt about any of the names of these environment variables, just check the `--help` for the subcommand you're using.
!!! tip "Environment variable arrays"
If you need to use an environment variable to set a configuration option that accepts an array, provide each value in a comma-separated list.
For example, `instance-languages` may be set in the config.yaml file as an array like so: `["nl", "de", "fr", "en"]`. To set the same values as an environment variable, use: `GTS_INSTANCE_LANGUAGES="nl,de,fr,en"`
### Command Line Flags
Finally, you can set configuration values using command-line flags, which you pass directly when you're running a `gotosocial` command. For example, instead of setting `media-image-max-size` in your config.yaml, or with an environment variable, you can pass the value directly through the command line:

View file

@ -9,6 +9,21 @@
# Config pertaining to instance federation settings, pages to hide/expose, etc.
# Array of string. BCP47 language tags to indicate preferred languages of users on this instance.
#
# If you provide these, you should provide these in order from most-preferred to least-preferred,
# but note that leaving out a language from this array doesn't mean it can't be used on this instance,
# it only means it won't be advertised as a preferred instance language.
#
# It is valid to provide no entries here; your instance will then have no particular preferred language.
#
# See here for commonly-used tags: https://en.wikipedia.org/wiki/IETF_language_tag#List_of_common_primary_language_subtags
# See here for all current tags: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
#
# Example: ["nl", "en-gb", "fr"]
# Default: []
instance-languages: []
# String. Federation mode to use for this instance.
#
# "blocklist" -- open federation by default. Only instances that are explicitly

View file

@ -76,6 +76,21 @@ If you want to use [LetsEncrypt](../../configuration/tls.md) for TLS certificate
2. Remove the `#` before `- "80:80"` in the `ports` section.
3. (Optional) Set `GTS_LETSENCRYPT_EMAIL_ADDRESS` to a valid email address to receive certificate expiry warnings etc.
!!! info "Optional configuration"
There are many other configuration options documented in the config.yaml file, which you can use to further customize the behavior of your GoToSocial instance. These use sensible defaults where possible, so you don't necessarily need to make any changes to them right now, but here are a few you may be interested in:
- `GTS_INSTANCE_LANGUAGES`: array of [BCP47 language tags](https://en.wikipedia.org/wiki/IETF_language_tag) which determines the preferred languages of your instance.
- `GTS_MEDIA_REMOTE_CACHE_DAYS`: number of days to keep remote media cached in storage.
- `GTS_SMTP_*`: settings to allow your GoToSocial instance to connect to an email server and send notification emails.
If you decide to set/change any of these variables later on, be sure to restart your GoToSocial instance after making the changes.
!!! tip
For help translating variable names from the config.yaml file to environment variables, refer to the [configuration section](../../configuration/index.md#environment-variables).
## Start GoToSocial
With those small changes out of the way, you can now start GoToSocial with the following command:

View file

@ -61,6 +61,16 @@ Now open the file in your text editor of choice so that you can set some importa
The above options assume you're using SQLite as your database. If you want to use Postgres instead, see [here](../../configuration/database.md) for the config options.
!!! info "Optional configuration"
There are many other configuration options documented in the config.yaml file, which you can use to further customize the behavior of your GoToSocial instance. These use sensible defaults where possible, so you don't necessarily need to make any changes to them right now, but here are a few you may be interested in:
- `instance-languages`: array of [BCP47 language tags](https://en.wikipedia.org/wiki/IETF_language_tag) which determines the preferred languages of your instance.
- `media-remote-cache-days`: number of days to keep remote media cached in storage.
- `smtp-*`: settings to allow your GoToSocial instance to connect to an email server and send notification emails.
If you decide to set/change any of these variables later on, be sure to restart your GoToSocial instance after making the changes.
## Run the Binary
You can now run the binary.