Merge pull request #698 from urtzai/main

add: Basque language added to the README UI language list
This commit is contained in:
Piero Toffanin 2024-10-18 10:52:15 -04:00 committed by GitHub
commit da0421a600
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

169
README.md
View file

@ -22,9 +22,9 @@ const res = await fetch("https://libretranslate.com/translate", {
body: JSON.stringify({ body: JSON.stringify({
q: "Hello!", q: "Hello!",
source: "en", source: "en",
target: "es" target: "es",
}), }),
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" },
}); });
console.log(await res.json()); console.log(await res.json());
@ -50,9 +50,9 @@ const res = await fetch("https://libretranslate.com/translate", {
body: JSON.stringify({ body: JSON.stringify({
q: "Ciao!", q: "Ciao!",
source: "auto", source: "auto",
target: "en" target: "en",
}), }),
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" },
}); });
console.log(await res.json()); console.log(await res.json());
@ -81,9 +81,9 @@ const res = await fetch("https://libretranslate.com/translate", {
q: '<p class="green">Hello!</p>', q: '<p class="green">Hello!</p>',
source: "en", source: "en",
target: "es", target: "es",
format: "html" format: "html",
}), }),
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" },
}); });
console.log(await res.json()); console.log(await res.json());
@ -103,15 +103,15 @@ Request:
```javascript ```javascript
const res = await fetch("https://libretranslate.com/translate", { const res = await fetch("https://libretranslate.com/translate", {
method: "POST", method: "POST",
body: JSON.stringify({ body: JSON.stringify({
q: "Hello", q: "Hello",
source: "en", source: "en",
target: "it", target: "it",
format: "text", format: "text",
alternatives: 3 alternatives: 3,
}), }),
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" },
}); });
console.log(await res.json()); console.log(await res.json());
@ -184,18 +184,18 @@ Arguments passed to the process or set via environment variables are split into
### Settings / Flags ### Settings / Flags
| Argument | Description | Default Setting | Env. name | | Argument | Description | Default Setting | Env. name |
|-----------------------------|-------------------------------------------------------------------------------------------------------------| -------------------- |------------------------------| | --------------------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------- | ---------------------------- |
| --debug | Enable debug environment | `Disabled` | LT_DEBUG | | --debug | Enable debug environment | `Disabled` | LT_DEBUG |
| --ssl | Whether to enable SSL | `Disabled` | LT_SSL | | --ssl | Whether to enable SSL | `Disabled` | LT_SSL |
| --api-keys | Enable API keys database for per-client rate limits when --req-limit is reached | `Don't use API keys` | LT_API_KEYS | | --api-keys | Enable API keys database for per-client rate limits when --req-limit is reached | `Don't use API keys` | LT_API_KEYS |
| --require-api-key-origin | Require use of an API key for programmatic access to the API, unless the request origin matches this domain | `No restrictions on domain origin` | LT_REQUIRE_API_KEY_ORIGIN | | --require-api-key-origin | Require use of an API key for programmatic access to the API, unless the request origin matches this domain | `No restrictions on domain origin` | LT_REQUIRE_API_KEY_ORIGIN |
| --require-api-key-secret | Require use of an API key for programmatic access to the API, unless the client also sends a secret match | `No secrets required` | LT_REQUIRE_API_KEY_SECRET | | --require-api-key-secret | Require use of an API key for programmatic access to the API, unless the client also sends a secret match | `No secrets required` | LT_REQUIRE_API_KEY_SECRET |
| --suggestions | Allow user suggestions | `Disabled` | LT_SUGGESTIONS | | --suggestions | Allow user suggestions | `Disabled` | LT_SUGGESTIONS |
| --disable-files-translation | Disable files translation | `File translation allowed` | LT_DISABLE_FILES_TRANSLATION | | --disable-files-translation | Disable files translation | `File translation allowed` | LT_DISABLE_FILES_TRANSLATION |
| --disable-web-ui | Disable web ui | `Web Ui enabled` | LT_DISABLE_WEB_UI | | --disable-web-ui | Disable web ui | `Web Ui enabled` | LT_DISABLE_WEB_UI |
| --update-models | Update language models at startup | `Only on if no models found` | LT_UPDATE_MODELS | | --update-models | Update language models at startup | `Only on if no models found` | LT_UPDATE_MODELS |
| --metrics | Enable the /metrics endpoint for exporting [Prometheus](https://prometheus.io/) usage metrics | `Disabled` | LT_METRICS | | --metrics | Enable the /metrics endpoint for exporting [Prometheus](https://prometheus.io/) usage metrics | `Disabled` | LT_METRICS |
### Configuration Parameters ### Configuration Parameters
@ -343,7 +343,7 @@ scrape_configs:
# Needed only if you use --metrics-auth-token # Needed only if you use --metrics-auth-token
#authorization: #authorization:
#credentials: "mytoken" #credentials: "mytoken"
static_configs: static_configs:
- targets: ["localhost:5000"] - targets: ["localhost:5000"]
@ -414,25 +414,26 @@ See it in action on this [page](https://community.libretranslate.com/t/have-you-
This is a list of public LibreTranslate instances, some require an API key. If you want to add a new URL, please open a pull request. This is a list of public LibreTranslate instances, some require an API key. If you want to add a new URL, please open a pull request.
URL |API Key Required | Links | URL | API Key Required | Links |
--- | --- | --- | ----------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------- |
[libretranslate.com](https://libretranslate.com)|:heavy_check_mark:|[ [Get API Key](https://portal.libretranslate.com) ] [ [Service Status](https://status.libretranslate.com/) ] | [libretranslate.com](https://libretranslate.com) | :heavy_check_mark: | [ [Get API Key](https://portal.libretranslate.com) ] [ [Service Status](https://status.libretranslate.com/) ] |
[translate.terraprint.co](https://translate.terraprint.co/)|- | [translate.terraprint.co](https://translate.terraprint.co/) | - |
[trans.zillyhuhn.com](https://trans.zillyhuhn.com/)|- | [trans.zillyhuhn.com](https://trans.zillyhuhn.com/) | - |
[translate.lotigara.ru](https://translate.lotigara.ru)|- | [translate.lotigara.ru](https://translate.lotigara.ru) | - |
## TOR/i2p Mirrors ## TOR/i2p Mirrors
URL | | URL |
--- | | ---------------------------------------------------------------------------------------------------------------------------------------------- |
[lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/)| | [lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/) |
[lt.vern.i2p](http://vernf45n7mxwqnp5riaax7p67pwcl7wcefdcnqqvim7ckdx4264a.b32.i2p/)| | [lt.vern.i2p](http://vernf45n7mxwqnp5riaax7p67pwcl7wcefdcnqqvim7ckdx4264a.b32.i2p/) |
## Adding New Language Models ## Adding New Language Models
You have two options to create new language models: You have two options to create new language models:
* [Locomotive](https://github.com/LibreTranslate/Locomotive)
* [Argos Train](https://github.com/argosopentech/argos-train) ([video tutorial](https://www.youtube.com/watch?v=Vj_qgnhOEwg)) - [Locomotive](https://github.com/LibreTranslate/Locomotive)
- [Argos Train](https://github.com/argosopentech/argos-train) ([video tutorial](https://www.youtube.com/watch?v=Vj_qgnhOEwg))
Most of the training data is from [Opus](http://opus.nlpl.eu/), which is an open source parallel corpus. Check also [NLLU](https://nllu.libretranslate.com) Most of the training data is from [Opus](http://opus.nlpl.eu/), which is an open source parallel corpus. Check also [NLLU](https://nllu.libretranslate.com)
@ -445,50 +446,51 @@ To help improve or review the UI translations:
- Go to <https://hosted.weblate.org/projects/libretranslate/app/#translations>. All changes are automatically pushed to this repository. - Go to <https://hosted.weblate.org/projects/libretranslate/app/#translations>. All changes are automatically pushed to this repository.
- Once all strings have been reviewed/edited, open a pull request and change `libretranslate/locales/{code}/meta.json`: - Once all strings have been reviewed/edited, open a pull request and change `libretranslate/locales/{code}/meta.json`:
```json ```json
{ {
"name": "<Language>", "name": "<Language>",
"reviewed": true <-- Change this from false to true "reviewed": true <-- Change this from false to true
} }
``` ```
### UI Languages ### UI Languages
Language | Reviewed | Weblate Link | Language | Reviewed | Weblate Link |
-------- | -------- | ------------ | --------------------- | ------------------ | ------------------------------------------------------------------------ |
Arabic | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ar/) | Arabic | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ar/) |
Azerbaijani | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/az/) | Azerbaijani | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/az/) |
Chinese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/zh/) | Basque | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/eu/) |
Chinese (Traditional) | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/zh_Hant/) | Chinese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/zh/) |
Czech | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/cs/) | Chinese (Traditional) | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/zh_Hant/) |
Danish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/da/) | Czech | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/cs/) |
Dutch | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/nl/) | Danish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/da/) |
English | :heavy_check_mark: | [Edit](https://hosted.weblate.org/projects/libretranslate/app/) | Dutch | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/nl/) |
Esperanto | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/eo/) | English | :heavy_check_mark: | [Edit](https://hosted.weblate.org/projects/libretranslate/app/) |
Finnish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fi/) | Esperanto | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/eo/) |
French | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fr/) | Finnish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fi/) |
German | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/de/) | French | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fr/) |
Greek | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/el/) | German | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/de/) |
Hebrew | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/he/) | Greek | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/el/) |
Hindi | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/hi/) | Hebrew | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/he/) |
Hungarian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/hu/) | Hindi | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/hi/) |
Indonesian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/id/) | Hungarian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/hu/) |
Irish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ga/) | Indonesian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/id/) |
Italian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/it/) | Irish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ga/) |
Japanese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ja/) | Italian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/it/) |
Kabyle | :heavy_check_mark: | [Edit](https://hosted.weblate.org/projects/libretranslate/app/kab/) | Japanese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ja/) |
Korean | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ko/) | Kabyle | :heavy_check_mark: | [Edit](https://hosted.weblate.org/projects/libretranslate/app/kab/) |
Occitan | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/oc/) | Korean | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ko/) |
Persian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fa/) | Occitan | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/oc/) |
Polish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/pl/) | Persian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fa/) |
Portuguese | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/pt/) | Polish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/pl/) |
Russian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ru/) | Portuguese | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/pt/) |
Slovak | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/sk/) | Russian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ru/) |
Spanish | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/es/) | Slovak | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/sk/) |
Swedish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/sv/) | Spanish | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/es/) |
Turkish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/tr/) | Swedish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/sv/) |
Ukrainian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/uk/) | Turkish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/tr/) |
Vietnamese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/vi/) | Ukrainian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/uk/) |
| Vietnamese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/vi/) |
## Roadmap ## Roadmap
@ -565,6 +567,7 @@ Remove `#` on the ErrorLog and CustomLog lines to log requests.
Add this to an existing site config, or a new file in `/etc/apache2/sites-available/new-site.conf` and run `sudo a2ensite new-site.conf`. Add this to an existing site config, or a new file in `/etc/apache2/sites-available/new-site.conf` and run `sudo a2ensite new-site.conf`.
To get a HTTPS subdomain certificate, install `certbot` (snap), run `sudo certbot certonly --manual --preferred-challenges dns` and enter your information (with `subdomain.domain.tld` as the domain). Add a DNS TXT record with your domain registrar when asked. This will save your certificate and key to `/etc/letsencrypt/live/{subdomain.domain.tld}/`. Alternatively, comment the SSL lines out if you don't want to use HTTPS. To get a HTTPS subdomain certificate, install `certbot` (snap), run `sudo certbot certonly --manual --preferred-challenges dns` and enter your information (with `subdomain.domain.tld` as the domain). Add a DNS TXT record with your domain registrar when asked. This will save your certificate and key to `/etc/letsencrypt/live/{subdomain.domain.tld}/`. Alternatively, comment the SSL lines out if you don't want to use HTTPS.
</details> </details>
<details> <details>
@ -683,9 +686,9 @@ const res = await fetch("https://libretranslate.com/translate", {
body: JSON.stringify({ body: JSON.stringify({
q: ["Hello", "world"], q: ["Hello", "world"],
source: "en", source: "en",
target: "es" target: "es",
}), }),
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" },
}); });
console.log(await res.json()); console.log(await res.json());
@ -701,9 +704,9 @@ console.log(await res.json());
We welcome contributions! Here's some ideas: We welcome contributions! Here's some ideas:
* Train a new language model using [Locomotive](https://github.com/LibreTranslate/Locomotive). For example, we want to train improved neural networks for [German](https://community.libretranslate.com/t/help-wanted-improve-en-de-translation/935) and many other languages. - Train a new language model using [Locomotive](https://github.com/LibreTranslate/Locomotive). For example, we want to train improved neural networks for [German](https://community.libretranslate.com/t/help-wanted-improve-en-de-translation/935) and many other languages.
* Can you beat the performance of our language models? Train a new one and let's compare it. To submit your model make a post on the [community forum](https://community.libretranslate.com/) with a link to download your .argosmodel file and some sample text that your model has translated. - Can you beat the performance of our language models? Train a new one and let's compare it. To submit your model make a post on the [community forum](https://community.libretranslate.com/) with a link to download your .argosmodel file and some sample text that your model has translated.
* Pick an [issue](https://github.com/LibreTranslate/LibreTranslate/issues) to work on. - Pick an [issue](https://github.com/LibreTranslate/LibreTranslate/issues) to work on.
## Credits ## Credits