Compare commits

...

960 commits
v1.2.4 ... main

Author SHA1 Message Date
Dương Nguyễn Võ Quốc d8ff2de3c3
Translated using Weblate (Vietnamese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/vi/
2024-06-14 18:34:08 +02:00
Piero Toffanin 0c86cc63a9
Merge pull request #634 from lotigara/main
Add a customized LibreTranslate instance to the README.md
2024-06-14 08:50:54 -04:00
lotigara 11ba0ffafc
Add a customized LibreTranslate instance to the README.md 2024-06-14 14:33:12 +03:00
Luna 4088b271ee
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-06-09 19:09:21 +02:00
Wahyu Hamdani e237d06349
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2024-06-08 12:27:05 +00:00
Piero Toffanin d530b628d0
Update issue-triage.yml 2024-06-07 11:17:45 -04:00
Piero Toffanin 8bbda1949d Filter empty strings 2024-06-03 13:20:48 -04:00
Piero Toffanin f0fb4218e7 Bump version 2024-06-03 13:11:59 -04:00
Piero Toffanin df3680c280 Fix alternatives unique comparison 2024-06-03 13:11:42 -04:00
Piero Toffanin cb6b324478
Update README.md 2024-06-03 13:08:16 -04:00
Piero Toffanin 76721891b4
Merge pull request #630 from pierotofy/alternatives
Support for alternative translations
2024-06-03 13:03:19 -04:00
Piero Toffanin 86d15118ca Fix indendation 2024-06-03 12:55:35 -04:00
Piero Toffanin ba8b8d97a1 Feat: support for alternative translations 2024-06-03 12:42:32 -04:00
Piero Toffanin f7a35db05b
Merge pull request #622 from savionlee/patch-1
Update cuda.Dockerfile to CUDA 12
2024-05-06 16:06:16 -04:00
Savion Lee 16ae59aa43
Update cuda.Dockerfile to CUDA 12 2024-05-06 14:06:40 -05:00
P.J. Finlay 67c5348c02
Merge pull request #618 from LibreTranslate/update-argos-1_9_6
Upgrade to Argos Translate v1.9.6
2024-05-01 16:42:36 -05:00
Piero Toffanin f167b94166
Merge pull request #619 from PeterDaveHello/UpdateDockerBaseImage
Update Dockerfile base image to Python v3.11.9
2024-05-01 09:13:59 -04:00
Peter Dave Hello 7722984df5 Update Dockerfile base image to Python v3.11.9 2024-05-01 17:57:27 +08:00
P.J. Finlay 9dde1e0142
Upgrade to Argos Translate v1.9.6
- Upgrade CTranslate2 to v4 for CUDA 12 support (https://github.com/argosopentech/argos-translate/pull/404)
- Fix deprecation error for CTranslate2 TranslationResult (https://github.com/argosopentech/argos-translate/pull/404)
2024-04-30 16:46:20 -05:00
P.J. Finlay c8360d0359 Update Argos Translate to v1.9.4
This fixes an issue in SentencePiece where the packaging is broken for newer versions of Python.

https://github.com/argosopentech/argos-translate/issues/405
2024-04-29 14:41:12 -05:00
Piero Toffanin f1195d9d13 Bump version 2024-04-28 11:50:36 -04:00
Peter Dave Hello a403ba7e3a
Translated using Weblate (Chinese (Traditional))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hant/
2024-04-23 22:07:09 +02:00
Piero Toffanin 720b5c17a7
Merge pull request #608 from LibreTranslate/mo
Fix localization on docker/pip
2024-04-22 13:23:43 -04:00
Piero Toffanin 0a83fd29bd Include mo files 2024-04-22 13:13:47 -04:00
Piero Toffanin df78c333c9
Update README.md 2024-04-21 12:20:01 -04:00
Piero Toffanin fd0739b85e
Merge pull request #607 from steve15963/develop
update readme.md(add language List)
2024-04-21 12:18:42 -04:00
송진현 79836663ec update readme.md(add language List) 2024-04-22 01:04:36 +09:00
Netesfiu 1bc6a3061c
Translated using Weblate (Hungarian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hu/
2024-04-18 10:04:47 +02:00
Piero Toffanin 9d9e3233ba
Merge pull request #606 from Netesfiu/patch-1
Mark hungarian a reviewed
2024-04-17 08:04:28 -04:00
András Farkas a6e8ee4af0
Mark hungarian a reviewed
I've just finished reviewing the strings. It should be usable at this state.
2024-04-17 10:51:35 +02:00
Ilya 847235e33b
Translated using Weblate (Persian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fa/
2024-04-07 11:57:44 +02:00
searinminecraft 7fdde99b48
Translated using Weblate (Filipino)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fil/
2024-04-03 10:46:50 +02:00
searinminecraft 71b24e0631
Added translation using Weblate (Filipino) 2024-04-03 03:50:00 +02:00
rferee 51ef2b5915
Translated using Weblate (Belarusian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/be/
2024-04-03 01:12:15 +02:00
rferee cabf2294b2
Added translation using Weblate (Belarusian) 2024-04-02 22:03:03 +02:00
I Just Me 508cff36f8
Translated using Weblate (Chinese (Traditional))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hant/
2024-03-28 22:01:49 +01:00
Piero Toffanin 2007ea87e6
Merge pull request #603 from zachdecook/detect-integer
Documentation: /detect returns an integer 0-100, not a float
2024-03-26 10:47:43 -04:00
Zach DeCook 94f87cdac1 Documentataion: /detect returns an integer 0-100, not a float 2024-03-26 09:24:16 -04:00
Kaleido Scope 887b282c6a
Translated using Weblate (Norwegian Nynorsk)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/nn/
2024-03-25 13:01:56 +01:00
Kaleido Scope 87beef971d
Translated using Weblate (Norwegian Bokmål)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/nb_NO/
2024-03-25 13:01:55 +01:00
cat 01a82975fd
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-03-25 13:01:54 +01:00
symegac 1d8fbfda0a
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-03-25 13:01:53 +01:00
VorHerre 5d9506c4bd
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-03-25 13:01:52 +01:00
Kaleido Scope 65609a6bcf
Translated using Weblate (Norwegian Nynorsk)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/nn/
2024-03-22 17:01:53 +01:00
Kaleido Scope 619e6593ef
Added translation using Weblate (Norwegian Nynorsk) 2024-03-21 16:11:18 +01:00
cat 540df02a21
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-03-15 11:01:51 +01:00
cat c0ce429163
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-03-12 23:01:46 +01:00
symegac 950d68f44d
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-03-12 23:01:45 +01:00
d fcbf627b5b
Translated using Weblate (Catalan)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ca/
2024-03-07 09:01:57 +01:00
Piero Toffanin 0478cce281 Bump version 2024-03-06 11:37:20 -05:00
Piero Toffanin 6ae0091c4b
Merge pull request #596 from cyrinux/fix/ipv6-compat
fix: make libretranslate works with ipv6
2024-03-06 11:36:34 -05:00
Cyril Levis 3bfb8342a0
fix: also change entrypoint 2024-03-06 16:30:28 +01:00
Cyril Levis 732e984382
fix: make libretranslate with ipv6 2024-03-06 15:48:24 +01:00
Cyril Levis b25ed7aae4
fix: make libretranslate with ipv6 2024-03-06 10:37:47 +01:00
Piero Toffanin 74a7831962
Merge pull request #594 from myanesp/main
add: R binding
2024-03-01 19:03:19 +01:00
myanesp 7b5303c875 add: R binding 2024-02-28 19:59:31 +00:00
Piero Toffanin 9af842b7df
Merge pull request #593 from Phoenix616/patch-1
Specify the supported color schemes
2024-02-27 17:17:45 +01:00
Max Lee 4549a2b3d6
Specify the supported color schemes 2024-02-27 14:36:41 +01:00
Scrambled777 6313175321
Translated using Weblate (Hindi)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hi/
2024-02-24 18:01:59 +01:00
Piero Toffanin 51cefcfb4e
Update README.md 2024-02-20 13:17:13 -05:00
Liam Johnson da9837f833
Translated using Weblate (Uyghur)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ug/
2024-02-20 08:02:08 +01:00
Piero Toffanin eaa3d58076
Merge pull request #590 from tderflinger/main
Added TypeScript language binding library.
2024-02-19 16:24:58 -05:00
Thomas Derflinger 49787d8b44 Added TypeScript language binding library. 2024-02-19 22:00:12 +01:00
Liam Johnson a7910dd61c
Added translation using Weblate (Uyghur) 2024-02-19 08:00:25 +01:00
Piero Toffanin 2b59e5d2fc Reviewed Bulgarian 2024-02-17 15:09:14 -05:00
Salif Mehmed c671bad1ab
Translated using Weblate (Bulgarian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/bg/
2024-02-17 03:36:14 +01:00
Salif Mehmed cbe8d91a8e
Translated using Weblate (Bulgarian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/bg/
2024-02-15 19:02:06 +01:00
Salif Mehmed 718297d74a
Added translation using Weblate (Bulgarian) 2024-02-14 18:02:45 +01:00
Piero Toffanin b0f372638e
Update README.md 2024-02-13 10:36:06 -05:00
Piero Toffanin 210f4cfb4f
Merge pull request #585 from argosopentech/patch-3
Improve model contributing doc
2024-02-13 10:30:48 -05:00
Argos Open Tech abbfb3561d
Improve model contributing doc 2024-02-13 07:53:11 -06:00
Piero Toffanin d0f1cdfc96
Update README.md 2024-02-11 14:28:22 -05:00
石丸健太郎 45266554cb
Translated using Weblate (Japanese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ja/
2024-02-10 05:01:56 +01:00
Piero Toffanin e34687df9b
Merge pull request #584 from pierotofy/timecost
Add --req-time-cost
2024-02-05 15:22:24 -05:00
Piero Toffanin 176d37df73 Remove trailing whitespace test 2024-02-05 15:16:32 -05:00
Piero Toffanin 1e50dc92bf Update README 2024-02-05 15:13:20 -05:00
Piero Toffanin b522a0f763 Add --req-time-cost 2024-02-05 15:03:27 -05:00
ShareASmile 8d4fa40acd
Translated using Weblate (Hindi)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hi/
2024-02-02 21:01:50 +01:00
Priit Jõerüüt 4419d5ec75
Translated using Weblate (Estonian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/et/
2024-02-01 19:01:49 +01:00
Priit Jõerüüt 611c548db5
Translated using Weblate (Estonian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/et/
2024-01-31 17:22:03 +01:00
Priit Jõerüüt 0c6fd67e40
Added translation using Weblate (Estonian) 2024-01-31 00:40:59 +01:00
Yanjun Chen 349284d6c2
Translated using Weblate (Chinese (Simplified))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hans/
2024-01-30 17:01:53 +01:00
r5jyhte 6228706d5b
Translated using Weblate (Polish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pl/
2024-01-30 17:01:52 +01:00
victor dargallo 9a1934e450
Translated using Weblate (Catalan)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ca/
2024-01-27 10:01:47 +01:00
Piero Toffanin b7a273dd28
Merge pull request #580 from jmlord/main
ltmanage in bin
2024-01-24 21:54:05 -05:00
Jean-Michel b3d6815323 moved ltmanage to /usr/bin 2024-01-24 16:36:18 -05:00
Jean-Michel 929002b0c6 ltmanage in bin
This allows using the api key instructions from the readme as-is in the docker container.
2024-01-24 16:05:01 -05:00
Piero Toffanin a90814706a
Update README.md 2024-01-23 12:44:14 -05:00
Michal Čihař cf2216f441
Translated using Weblate (Czech)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/cs/
2024-01-23 15:01:51 +01:00
Piero Toffanin fa24655404 Fix remote API key database lookup 2024-01-21 13:17:07 -05:00
Piero Toffanin c782fe108b
Merge pull request #574 from pierotofy/charlimit
Granular API key char limit support
2024-01-21 12:54:10 -05:00
Piero Toffanin 2b11e909d3 Granular API key char limit support 2024-01-21 12:48:42 -05:00
dtalens 0b139b9dac
Translated using Weblate (Catalan)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ca/
2024-01-21 02:01:49 +01:00
dtalens 3edc1883ed
Added translation using Weblate (Catalan) 2024-01-20 01:14:34 +01:00
symegac 9283bdb2d9
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2024-01-15 00:06:18 +00:00
Piero Toffanin 1d8b58e2bf Bump version 2024-01-10 13:18:20 -05:00
Piero Toffanin 6809b9ff44 Fix locale change button behavior 2024-01-10 13:15:33 -05:00
Michal Čihař 9067c38407
Translated using Weblate (Czech)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/cs/
2024-01-10 18:14:32 +00:00
Piero Toffanin 575a2d4960
Update README.md 2024-01-10 09:55:25 -05:00
Piero Toffanin a2e73daab9
Merge pull request #572 from nijel/patch-1
Mark Czech as reviewed
2024-01-10 09:55:04 -05:00
Michal Čihař f888d77b3a
Mark Czech as reviewed
I've just gone through the strings and fixed them. I still might have missed something, but it should be good to use now.
2024-01-10 10:37:18 +01:00
Piero Toffanin f955583308
Merge pull request #570 from CandiedCode/security-updates
build(sca): 🔒 update dependencies to address security issues
2024-01-08 11:14:22 -05:00
Jennifer Cwagenberg 51341d92ad build(sca): 🔒 update dependencies to address security issues 2024-01-08 08:42:21 -06:00
Piero Toffanin 25b9d92a32 Remove notice in web ui 2024-01-07 10:58:26 -05:00
Piero Toffanin 300d0b0d79
Add FAQ 2024-01-06 22:06:01 -05:00
EGuillemot f4d81ea8ba
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2024-01-04 01:08:20 +01:00
Piero Toffanin 5cb0cd6b3c Bump version 2024-01-03 13:33:01 -05:00
EGuillemot b85378646d
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2024-01-02 23:38:10 +00:00
fail a fail ddc46bc6f8
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2024-01-02 23:38:10 +00:00
EGuillemot 4158785089
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2024-01-02 23:38:09 +00:00
Piero Toffanin 18fa24c7e6
Update mirrors list 2023-12-30 12:01:38 -05:00
Piero Toffanin 6c2ff0e389
Discourse translator link update 2023-12-29 16:10:19 -05:00
Moji Norouzi zadeh 9ae6ee7ef3
Translated using Weblate (Persian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fa/
2023-12-26 21:08:58 +00:00
Piero Toffanin 08be64d80c
Update README.md 2023-12-26 14:05:02 -05:00
Piero Toffanin dab87ee34c
Merge pull request #563 from SebouChu/main
Added Ruby API wrapper
2023-12-26 13:58:00 -05:00
Sébastien Gaya 0968a95391
Added Ruby API wrapper 2023-12-26 18:49:06 +01:00
Piero Toffanin e7773f2e94
Merge pull request #561 from euberdeveloper/main
build(docker): add arm version
2023-12-24 00:40:17 -05:00
euberdeveloper 57bcae918d build(docker): add arm version
Signed-off-by: euberdeveloper <euberdeveloper@gmail.com>
2023-12-24 02:24:55 +01:00
tuanta 2855d19323
Translated using Weblate (Vietnamese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/vi/
2023-12-16 08:07:38 +00:00
Piero Toffanin c6be02a0c2
Merge pull request #557 from drivard/main
Removed helm chart directory. It is moved to its own repository. Upda…
2023-12-15 22:11:28 -05:00
Dominick Rivard 09f47b3ffa Update helm install command 2023-12-15 16:14:33 -05:00
Dominick Rivard ca559711cc Removed helm chart directory. It is moved to its own repository. Updated the readme file. 2023-12-15 16:04:20 -05:00
Piero Toffanin f1524218ce
Merge pull request #555 from drivard/main
Update README.md with Helm installation instructions
2023-12-14 20:46:21 -05:00
Dominick Rivard 55f0bbe768 Update README.md with Helm installation instructions 2023-12-14 20:26:06 -05:00
Piero Toffanin e221721e23
Merge pull request #554 from pierotofy/salad
Workaround for salad
2023-12-11 17:23:00 -05:00
Piero Toffanin 310b71c056 Workaround for salad 2023-12-11 17:14:27 -05:00
Piero Toffanin 7508dbaa46
Merge pull request #553 from rasos/patch-1
Add k8s.yaml to kubernetes section of readme.md
2023-12-10 11:20:03 -05:00
Roland 822aa1c632
Update README.md
Add k8s.yaml to kubernetes section of readme
2023-12-10 10:12:36 +01:00
ArnoldCordewiner 08a711631b
Translated using Weblate (Dutch)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/nl/
2023-12-09 22:07:03 +01:00
Piero Toffanin c6fe6cfdbf
Merge pull request #551 from LibreTranslate/dependabot/github_actions/actions/setup-python-5
Bump actions/setup-python from 4 to 5
2023-12-06 13:34:03 -05:00
dependabot[bot] c186d72f27
Bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 16:07:07 +00:00
Aitor Salaberria 57a87f35ee
Translated using Weblate (Basque)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/eu/
2023-12-05 21:06:25 +01:00
Aitor Salaberria a1b8b8beba
Added translation using Weblate (Basque) 2023-12-04 20:53:43 +01:00
Fqwe1 18d3a5a03c
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-11-26 08:04:46 +01:00
Bezruchenko Simon 65fdbe8c5f
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-11-22 21:02:48 +01:00
symegac 172e1e56ee
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2023-11-18 06:03:12 +01:00
Piero Toffanin bbb2ba3b70
Merge pull request #542 from pierotofy/decay
Add hourly decay limit
2023-11-16 15:51:28 -05:00
Piero Toffanin 6d6202de83 Add hourly decay limit 2023-11-16 15:43:47 -05:00
Piero Toffanin a4a67b2b79 Prevent div by zero 2023-11-15 15:02:23 -05:00
Piero Toffanin 80b510b1ad
Merge pull request #541 from pierotofy/cost
Dynamic limiter costs
2023-11-15 14:59:10 -05:00
Piero Toffanin 48464938cb Fix tab 2023-11-15 14:49:53 -05:00
Piero Toffanin 9bc342a9ae Cleanup 2023-11-15 14:47:44 -05:00
Piero Toffanin f3bf89375f Dynamic limit costs 2023-11-15 14:34:20 -05:00
Piero Toffanin 0aa4bcac7f Add FAQ 2023-11-15 13:57:54 -05:00
Piero Toffanin b0a84f30f4
Merge pull request #540 from pierotofy/pin
Pin torch to 2.0.1
2023-11-15 13:18:43 -05:00
Piero Toffanin e0d20c2cba Up version 2023-11-15 13:13:36 -05:00
Piero Toffanin 5120f122f1 Pin torch to 2.0.1 2023-11-15 13:11:52 -05:00
Piero Toffanin 57c7f63cce
Merge pull request #537 from pierotofy/hourly
Add hourly req limit option
2023-11-10 15:00:49 -05:00
Piero Toffanin 4903ab757c Add --hourly-req-limit 2023-11-10 14:56:52 -05:00
Piero Toffanin 7f0ae82f14
Merge pull request #534 from argosopentech/patch-2
Remove translate.argosopentech.com mirror
2023-11-09 11:03:29 -05:00
Argos Open Tech d750584abe
Remove translate.argosopentech.com mirror
This instance is already overburdened and I want to stop directing new users to it.

I'm having a hard time keeping the translate.argosopentech.com LibreTranslate mirror up on the current server. The CPU usage is consistently at 100% because so many people are making requests. I limited requests to 3/minute per IP address but am still having issues.
2023-11-09 09:50:47 -06:00
Piero Toffanin 4761ae5c43
Merge pull request #533 from pierotofy/batchfix
Fix batch auto language detection
2023-11-08 22:04:45 -05:00
Piero Toffanin 8427f86275 Minor refactor 2023-11-08 21:58:59 -05:00
Piero Toffanin 37bd2365b9 Bump version 2023-11-08 21:57:14 -05:00
Piero Toffanin dc194db0dd Refactor translate_file endpoint 2023-11-08 21:55:55 -05:00
Piero Toffanin cbe1c5db71 Fix auto batch translation 2023-11-08 21:49:56 -05:00
Piero Toffanin 3ad487f4bf
Update issue-triage.yml 2023-11-08 09:07:42 -05:00
Piero Toffanin 95c4cf6466 Add issue triage 2023-11-07 17:36:36 -05:00
Rex_sa 881a0e8874
Translated using Weblate (Arabic)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ar/
2023-11-02 04:00:21 +00:00
Piero Toffanin 92df4c3e6b
Merge pull request #528 from pierotofy/ld
Use langdetect
2023-10-30 20:54:35 -04:00
Piero Toffanin 02ea8ae011 Switch linguars for langdetect 2023-10-30 20:39:30 -04:00
Piero Toffanin 5033f58e0d Handle zt lingua case 2023-10-30 13:23:16 -04:00
Piero Toffanin f9712c800c
Merge pull request #526 from pierotofy/langdetect
Use lingua for language detection
2023-10-30 13:14:04 -04:00
Piero Toffanin 2972292fc5 Fix string index out of range fault 2023-10-30 13:09:39 -04:00
Piero Toffanin a9bff7929c Bump version 2023-10-30 12:53:03 -04:00
Piero Toffanin 6ff5bba000 Add lexilang for language detection on short texts 2023-10-30 12:52:33 -04:00
Piero Toffanin c9592a236a Fix trailing whitespace 2023-10-30 00:35:40 -04:00
Piero Toffanin 3fd2abc1f9 Run ruff 2023-10-30 00:20:11 -04:00
Piero Toffanin 522b8b03d7 Fix some warnings 2023-10-30 00:09:52 -04:00
Piero Toffanin 6c5fa2a4ee Use lingua for language detection 2023-10-30 00:03:00 -04:00
Piero Toffanin e7347c9fef
Merge pull request #525 from pierotofy/crashfix
Fix docker crash on ARM
2023-10-29 21:46:22 -04:00
Piero Toffanin 7be612419b Pin torch to 2.0.1 2023-10-29 21:40:23 -04:00
Piero Toffanin be8637e0c6
Discourse plugin example link 2023-10-29 18:38:47 -04:00
Piero Toffanin 8e3eac60cd Merge branch 'main' of https://github.com/uav4geo/LibreTranslate 2023-10-27 10:03:14 -04:00
Piero Toffanin 001a870fbd Improve layout on mobile 2023-10-27 10:02:56 -04:00
Piero Toffanin 7a2b9a51fc
Update VERSION 2023-10-27 00:08:34 -04:00
Fqwe1 d6ebead75f
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-10-23 10:00:39 +02:00
Piero Toffanin 0f8afa9c19
Update VERSION 2023-10-21 22:09:37 -04:00
Fqwe1 d1fe43cc3b
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-10-21 21:02:12 +02:00
Piero Toffanin 27e6535014 Update argostranslate 2023-10-21 10:27:57 -04:00
Piero Toffanin 673afbb6ab
Merge pull request #520 from CandiedCode/update_actions
ci(actions): ⬆️ update github actions to the latest versions
2023-10-19 16:25:01 -04:00
Jennifer Cwagenberg fb1772fd0f ci(actions): ⬆️ update github actions to the latest versions 2023-10-19 14:26:57 -05:00
Piero Toffanin 4abccd5ea3
Merge pull request #519 from CandiedCode/docker_cleanup
build(docker): 🔧 update dockerignore
2023-10-19 15:02:02 -04:00
Jennifer Cwagenberg 7125fb2385 build(docker): 🔧 update dockerignore to remove unused files and directories from docker images 2023-10-19 13:59:03 -05:00
Piero Toffanin e5258d0cb6 Fix translate into sort order 2023-10-19 14:52:16 -04:00
Piero Toffanin 87322de964 Unicode title 2023-10-19 13:20:23 -04:00
Piero Toffanin c256359ec2 Update argostranslate 2023-10-19 06:25:11 -04:00
Piero Toffanin 285ba58e29
Merge pull request #516 from Fqwe1/main
Add Ukrainian translation
2023-10-18 10:44:55 -04:00
Fqwe1 d65bc1202d
Update README.md 2023-10-18 04:40:44 +00:00
Fqwe1 d4eecca927
Update meta.json 2023-10-18 04:39:46 +00:00
Piero Toffanin c044d52177 Merge branch 'front' 2023-10-09 16:17:49 -04:00
Piero Toffanin 09b42256a2 Fix download button color 2023-10-09 16:17:38 -04:00
Piero Toffanin 29b3972c37
Merge pull request #515 from pierotofy/front
Fix select background colors, add dark/light mode toggle
2023-10-09 16:08:27 -04:00
Piero Toffanin 11df3d5de6 Bump version 2023-10-09 15:48:25 -04:00
Piero Toffanin b825370a88 Fix pycld2 error 2023-10-09 15:46:50 -04:00
Piero Toffanin aac2d9820a Update strings 2023-10-09 15:20:47 -04:00
Piero Toffanin 3f9da87639 Toggle light/dark mode 2023-10-09 15:15:39 -04:00
Piero Toffanin e0a143987f Improve loading, add TM warning 2023-10-09 14:36:20 -04:00
Piero Toffanin 640d4f5bf2
Merge pull request #511 from gi-yt/patch-2
Remove lt.psf.lt
2023-10-07 12:36:29 -04:00
Piero Toffanin cad8192f7f
Merge branch 'main' into patch-2 2023-10-07 12:36:02 -04:00
Piero Toffanin 447bdc9c7d
Merge pull request #512 from eownerdead/add-mirror
Add my mirror (libretranslate.eownerdead.dedyn.io)
2023-10-07 12:34:52 -04:00
EOWNERDEAD 31d02724f4
Add my mirror (libretranslate.eownerdead.dedyn.io) 2023-10-07 13:45:44 +00:00
Arya K 2a196f0f4a
Remove lt.psf.lt 2023-10-07 12:38:21 +05:30
Piero Toffanin 015291f2ac
Merge pull request #507 from argosopentech/no-access-check-suggest
Don't require API key for suggestions
2023-10-01 10:50:45 -04:00
P.J. Finlay bc10febe9b Don't require API key for suggestions
Remove the access check when a user submits
a suggestion. This allows submitting translation
suggestions without an API key or secret.

https://github.com/LibreTranslate/LibreTranslate/issues/490
2023-10-01 08:07:55 -05:00
Piero Toffanin ffa7fd8f2d
Merge pull request #506 from argosopentech/ctranslate2-v3
Update CTranslate2 to v3
2023-09-30 19:20:31 -04:00
P.J. Finlay 9697543666 Update CTranslate2 to v3
Update to Argos Translate 1.8.2 with CTranslate2 3.20.0

https://github.com/argosopentech/argos-translate/pull/364
2023-09-30 14:06:24 -05:00
Skrripy e0be164b2c
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-09-30 09:00:49 +00:00
Michael Lewnton f772705495
Translated using Weblate (Greek)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/el/
2023-09-30 09:00:48 +00:00
Piero Toffanin 33f12a8ebb
Merge pull request #503 from rrgeorge/add_update_option
Add option to update models rather than reinstall
2023-09-29 21:34:44 -04:00
Piero Toffanin bc4bf7cadb
Merge branch 'main' into add_update_option 2023-09-29 21:30:45 -04:00
Robert George 94f63cedda
Use package.version for model version comparison
Change `--install-models` to `--force-update-models`
2023-09-29 15:31:33 -07:00
Piero Toffanin ce25eec774
Merge pull request #504 from rrgeorge/allow_json_suggest
Allow json submission to /suggest
2023-09-29 18:00:52 -04:00
Robert George cb11dfc6b1
Allow json submission to /suggest 2023-09-29 13:49:52 -07:00
Robert George 78713d8017
Added option to update models rather than reinstall 2023-09-29 13:43:59 -07:00
Olivier Dragon 81ba2b81e9
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-09-27 02:59:46 +00:00
Piero Toffanin 2fd4fdd2dd
Update VERSION 2023-09-26 10:14:20 -04:00
Piero Toffanin e77c7c4964
Update README.md 2023-09-26 10:13:44 -04:00
Piero Toffanin b0b22f8074
Merge pull request #498 from dacmot/main
French translation is complete
2023-09-26 10:13:23 -04:00
Olivier Dragon 457295a4cb
French translation is complete 2023-09-25 22:38:57 -04:00
ShareASmile 243affe139
Translated using Weblate (Hindi)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hi/
2023-09-23 14:04:59 +00:00
ShareASmile 128b3dc34f
Added translation using Weblate (Punjabi) 2023-09-23 14:04:59 +00:00
Piero Toffanin d8b2ec68c3
Add Locomotive URL 2023-09-22 15:10:08 -04:00
Piero Toffanin c032cdac25
Merge pull request #493 from argosopentech/dropdown-text-color-darkmode
Fix text color in dark mode
2023-09-16 20:02:22 -04:00
Piero Toffanin 4cb0ad5ca5
Merge pull request #495 from argosopentech/yaml-auto-formatting
Ran automattic formatting
2023-09-16 20:01:20 -04:00
Piero Toffanin d76d0b7de4
Merge pull request #496 from argosopentech/fix-pre-commit-automation
Remove YAML validation
2023-09-16 20:00:56 -04:00
P.J. Finlay d382227674 Remove YAML validation
The YAML validation step is currently failing
on the chart directory. This commit removes the
YAML check.

Error:
$ hatch run test
 ✔️  Check YAML..........................................................Failed
- hook id: check-yaml
- exit code: 1

while parsing a flow node
did not find expected node content
  in "chart/templates/pvc.yaml", line 1, column 3
while parsing a flow node
did not find expected node content
  in "chart/templates/statefulset.yaml", line 6, column
2023-09-16 17:54:50 -05:00
P.J. Finlay e2711bd2a0 Ran automattic formatting
Triggered with `hatch run test`
2023-09-16 17:40:13 -05:00
P.J. Finlay ef902e0257 Fix text color in dark mode
Currently when the browser has a dark theme enabled
the language selection dropdown has white text on a
white background that is un-readable.

This commit changes the dropdown select to have black
text on a white background.

https://github.com/LibreTranslate/LibreTranslate/issues/491
2023-09-16 17:00:10 -05:00
Piero Toffanin 830e168fec
Update README.md 2023-09-15 14:16:50 -04:00
Michael Lewnton b3d4d53d33
Translated using Weblate (Greek)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/el/
2023-09-13 09:54:35 +02:00
Piero Toffanin 7ee611168c
Merge pull request #489 from gi-yt/patch-1
Add ProjectSegfault LibreTranslate isntance
2023-09-07 07:33:48 -04:00
Arya K b059a87134
Add ProjectSegfault LibreTranslate isntance 2023-09-07 11:14:33 +05:30
Reza Almanda 44a39763bf
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-09-06 13:02:41 +02:00
Blueberry 1147e7e95a
Translated using Weblate (Russian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/
2023-09-05 13:54:35 +02:00
Olivier Dragon 1c56ad3dd5
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-09-05 13:54:35 +02:00
Piero Toffanin 2d5212de9f
Merge pull request #487 from Blueberryy/main
added 2 new languages to translation file
2023-09-04 10:56:51 -04:00
Piero Toffanin 08d3033d51
Merge pull request #488 from argosopentech/argos-train-readme
Update Argos Train tutorial link
2023-09-04 10:53:15 -04:00
P.J. Finlay 7275a93238 Update Argos Train tutorial link
Updates the README with a new Argos
Train tutorial link
2023-09-04 09:43:27 -05:00
Blueberryy 7b6089c438
added 2 new languages to translation file 2023-09-04 16:45:30 +05:00
Wojtek Jurkowlaniec f89fbfc147
Translated using Weblate (Polish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pl/
2023-09-01 13:56:32 +02:00
Maciej Olko 508326caae
Translated using Weblate (Polish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pl/
2023-08-31 12:59:19 +02:00
Eryk Michalak 52ccc73e20
Translated using Weblate (Polish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pl/
2023-08-31 09:05:05 +02:00
Ali Evcil c20c24ebac
Translated using Weblate (Azerbaijani)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/az/
2023-08-31 09:05:05 +02:00
Dimitri Hauet 4eb5538e34
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-08-22 06:44:13 +02:00
Piero Toffanin fbbf780890 Revert "Create ISSUE_TEMPLATE.md"
This reverts commit f71df1c1a6.
2023-08-13 10:09:02 -04:00
Piero Toffanin f71df1c1a6
Create ISSUE_TEMPLATE.md 2023-08-13 10:08:00 -04:00
Piero Toffanin 0b40d00b8b
Merge pull request #481 from drivard/main
Add Helm Chart for LibreTranslate Deployment
2023-08-11 11:29:01 +02:00
Dominick Rivard ae7af14660 Add Helm Chart for LibreTranslate Deployment
Introduce a Helm chart to streamline the deployment and management of LibreTranslate within a Kubernetes cluster. The chart includes configurable parameters, persistent storage support, authentication, scalability features, health checks, and detailed documentation. See the PR for complete details.
2023-08-11 02:38:12 -04:00
Milan Šalka fafc6a0cc6
Translated using Weblate (Slovak)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/sk/
2023-08-10 23:59:12 +02:00
Dingedi 3eea9efc15
Merge pull request #479 from argosopentech/epub-fix
Upgrade argos-translate-files to 1.1.4
2023-08-05 22:56:24 +01:00
P.J. Finlay c72cfc1e08 Upgrade argos-translate-files to 1.1.4
This version of Argos Translate Files improves
translation of EPUB ebook documents.

81daf76492
2023-08-05 15:56:28 -05:00
Simon Hahne d8a2784ccc
Translated using Weblate (German)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/de/
2023-08-04 19:05:00 +02:00
Piero Toffanin a1d8a09b72
Merge pull request #474 from argosopentech/show-favicon
Always show favicon
2023-07-30 10:03:10 +02:00
Piero Toffanin 62dcf039a2
Merge pull request #475 from argosopentech/humane-design-link
Update Humane Design link
2023-07-30 10:02:18 +02:00
P.J. Finlay 7dd65c8dfa Update Humane Design link
It looks like the Humane tech project moved from
[GitHub](https://github.com/humanetech-community/awesome-humane-tech).

This commit updates the Readme badge link:
https://codeberg.org/teaserbot-labs/delightful-humane-design
2023-07-29 14:21:37 -05:00
P.J. Finlay ee9438446f Always show favicon
Currently the LibreTranslate web app only shows
the favicon icon when the `LT_WEB=1` environment
variable is set. LT_WEB is used to disable
metadata by default to prevent search engines
from indexing private LibreTranslate instances.
This commit makes the favicon available even when
the metadata is disabled.

- https://github.com/LibreTranslate/LibreTranslate/issues/471
2023-07-29 13:42:20 -05:00
Overplant Poster d9313d02a0
Translated using Weblate (Sinhala)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/si/
2023-07-27 09:54:20 +02:00
Rex_sa cec61ae70d
Translated using Weblate (Arabic)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ar/
2023-07-26 22:09:09 +02:00
Overplant Poster 4fceca09f5
Added translation using Weblate (Sinhala) 2023-07-26 22:09:09 +02:00
Piero Toffanin 5aac8670c0
Merge pull request #467 from vemonet/add-pre-commit
Add pre-commit to automatically run formatting when committing
2023-07-23 22:18:15 +02:00
Vincent Emonet f5a6c96798 add detail to contributing.md 2023-07-23 17:03:49 +02:00
Vincent Emonet 25168ba6e1 Add pre-commit to automatically run formatting when committing 2023-07-23 13:24:15 +02:00
Piero Toffanin 7d07967574
Merge pull request #465 from rasos/main
Create k8s deployment file
2023-07-20 00:07:29 +02:00
Roland 2684322388
Create k8s deployment file
improved k8s support https://github.com/LibreTranslate/LibreTranslate/issues/464
2023-07-19 15:20:32 +02:00
Piero Toffanin 5e6cd19327 Fix download button CSS 2023-07-19 12:45:23 +02:00
Piero Toffanin e20c1b1135 Improve Japanese punctuation 2023-07-17 19:59:55 +02:00
Piero Toffanin 29ddc2784d
Add --debug flag to dev command 2023-07-10 21:35:54 +02:00
Piero Toffanin e93f22276b
Merge pull request #462 from vemonet/use-standard-build-system
Update the project configuration to use modern PEP standards, and replace `flake8` by `ruff` for linting
2023-07-10 21:35:09 +02:00
Vincent Emonet 0d989ac537 Merge branch 'main' into use-standard-build-system 2023-07-10 08:49:42 +02:00
Vincent Emonet 697be38fab Use pip to install build instead of pipx in the publish workflow, and add link to contributing 2023-07-10 08:46:37 +02:00
Vincent Emonet a1eb871bb6 Edit publish workflow to reuse existing test workflow, and use the build package to build the libretranslate package 2023-07-10 08:11:51 +02:00
Piero Toffanin 0f2e77989b
Merge pull request #461 from SethFalco/partial-fix-310
fix: make code blocks match height
2023-07-09 21:56:29 +02:00
Seth Falco 1c3f3e5696
fix: make code blocks match height 2023-07-09 12:25:03 +01:00
Vincent Emonet 1c0fb597fb Fixed some ruff warnings: requests without timeout and naming not complying with PEP 2023-07-09 12:38:03 +02:00
Vincent Emonet bf18dcbcf9 run ruff formatting 2023-07-09 12:29:11 +02:00
Vincent Emonet 62712dcad3 improve ruff config 2023-07-09 12:23:48 +02:00
Vincent Emonet 0e404b5ee3 update contributing to provide instructions to run script using hatch 2023-07-09 12:18:58 +02:00
Vincent Emonet 19fb149112 Update checkout and setup-python actions version in workflow and improve ruff config 2023-07-09 11:43:58 +02:00
Vincent Emonet f0943dada1 Upgrade project config to use a pyproject.toml file for the package metadata and tool configs (PEP 621), and the hatch build-system. Remove requirements.txt and setup.py 2023-07-09 11:35:53 +02:00
Piero Toffanin dcc821bc3c
Merge pull request #458 from SethFalco/fix-437
fix: don't update url after character-limit
2023-07-08 14:52:07 +02:00
Seth Falco 4f6145e275
fix: don't update url after character-limit 2023-07-08 13:32:17 +01:00
Seth Falco d69bbb326c
chore: update editorconfig got js.template files 2023-07-08 13:32:16 +01:00
Piero Toffanin 57cfdec439
Merge pull request #459 from SethFalco/fix-query-params
fix: stop double encoding query params
2023-07-08 14:27:12 +02:00
Piero Toffanin 99ce267c91
Merge pull request #460 from SethFalco/fix-305
fix: request and push notification on file translations
2023-07-08 14:25:31 +02:00
Seth Falco 193b6284d4
fix: fix error message UI on dark mode 2023-07-08 11:59:07 +01:00
Seth Falco b3ac81ebca
fix: avoid browser pop-up message 2023-07-08 11:58:46 +01:00
Seth Falco 9032605138
fix: request and push notification on file translations 2023-07-08 11:58:26 +01:00
Piero Toffanin 9052265d5b
Merge pull request #457 from SethFalco/fix-dark-theme
fix(css): fix issues visual issues with dark theme
2023-07-08 10:05:51 +02:00
Seth Falco 97dcb1decc
fix: stop double encoding query params 2023-07-08 04:48:26 +01:00
Seth Falco d4071e8a02
fix(css): fix issues visual issues with dark theme 2023-07-08 04:18:12 +01:00
Seth Falco 5e6d1642e3
fix: make textarea text white in dark theme 2023-07-08 02:23:53 +01:00
Piero Toffanin abc77002e2
Merge pull request #454 from SethFalco/theming
chore: clean up theming
2023-07-05 14:04:06 +02:00
Seth Falco 88021880cd
chore: clean up theming 2023-07-04 20:02:15 +01:00
Piero Toffanin e2841ddc19
Update CONTRIBUTING.md 2023-07-04 09:42:58 +02:00
Piero Toffanin 05e66d4147
Update CONTRIBUTING.md 2023-07-04 09:41:53 +02:00
Piero Toffanin c45a62778d
Merge pull request #453 from SethFalco/contributing-guide
docs: add contributing guide
2023-07-04 09:41:08 +02:00
Seth Falco 96ac960663
docs: add contributing guide 2023-07-04 00:43:01 +01:00
jonnysemon 909851d59b
Translated using Weblate (Arabic)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ar/
2023-07-02 15:53:13 +02:00
J. Lavoie 29bf14b399
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-06-29 04:45:55 +02:00
J. Lavoie 9c127da7e4
Translated using Weblate (German)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/de/
2023-06-29 04:45:55 +02:00
Dingedi 14679695cd
Merge pull request #451 from ChillerDragon/mr_zilly_mirror
Add trans.zillyhuhn.com mirror
2023-06-25 09:41:50 +02:00
Chiller Dragon 7db96c1ffd
Add trans.zillyhuhn.com mirror 2023-06-25 02:20:26 +02:00
zerof ee051dc634
Translated using Weblate (Serbian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/sr/
2023-06-22 21:41:53 +02:00
zerof 03dcf4226d
Translated using Weblate (Russian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/
2023-06-22 21:41:52 +02:00
zerof e012c71429
Added translation using Weblate (Serbian) 2023-06-21 10:51:58 +02:00
Jessica Patricio 7359e93704
Translated using Weblate (Portuguese (Brazil))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt_BR/
2023-06-20 13:29:32 +02:00
Jessica Patricio 81ed31c696
Translated using Weblate (Portuguese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt/
2023-06-20 13:29:30 +02:00
Jessica Patricio 96f8a386a4
Added translation using Weblate (Portuguese (Brazil)) 2023-06-19 23:26:53 +02:00
Sungjoon Moon 91533c9228
Translated using Weblate (Korean)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ko/
2023-06-19 22:49:39 +02:00
T. Alexander 5ff8913deb
Translated using Weblate (Norwegian Bokmål)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/nb_NO/
2023-06-03 04:40:28 +02:00
Surena aaaf050f96
Translated using Weblate (Persian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fa/
2023-06-03 04:40:27 +02:00
Surena f0424d9452
Translated using Weblate (Persian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fa/
2023-06-01 15:49:39 +02:00
Locid bae0a570e2
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-05-31 09:48:18 +02:00
Peter Dave Hello 35cd80169f
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-05-31 09:48:18 +02:00
Peter Dave Hello d2ba27b276
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-05-30 09:04:39 +02:00
Locid cac2167d86
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-05-30 09:04:39 +02:00
Piero Toffanin 03ab96cf69
Bump version 2023-05-29 16:52:03 -04:00
Piero Toffanin 73421cd709
Merge pull request #443 from pierotofy/main
Allow UTF-8 JSON output
2023-05-29 16:51:44 -04:00
Piero Toffanin fdb317c559 Don't force ASCII output 2023-05-29 16:47:32 -04:00
Piero Toffanin d70497a3c8
Merge pull request #442 from aysilu-kitsune/main
a new instance add request
2023-05-28 09:38:42 -04:00
aysilu-kitsune 4cd102ee16
added a new instance, changed a typo 2023-05-28 06:52:32 +00:00
aysilu-kitsune f5b6d88c63
added a new instance 2023-05-27 02:36:27 +00:00
Piero Toffanin 14e6e4e13e
Merge pull request #440 from PeterDaveHello/Docker
Speed up Docker image build and make Docker image smaller
2023-05-22 12:32:56 -04:00
Peter Dave Hello 842a2860af Optimize pip install in Dockerfile to minimize image size 2023-05-22 23:28:24 +08:00
Peter Dave Hello 6c5f27d7f1 Speed up Docker image build and make image smaller
Run `apt-get upgrade` right after `apt-get install`, instead of cleaning
up apt index first, do `apt-get update` again, then `apt-get upgrade`.

This will save some build time and disk space, because it didn't clean
up apt index after the `apt-get upgrade` before.
2023-05-22 22:57:38 +08:00
Peter Dave Hello 9f1417f28c
Translated using Weblate (Chinese (Traditional))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hant/
2023-05-18 19:53:14 +02:00
Piero Toffanin 4937c9a39e
Merge pull request #436 from PeterDaveHello/patch-1
Add Traditional Chinese local in README.md
2023-05-17 13:32:04 -04:00
Peter Dave Hello 12f22d7d1d
Add Traditional Chinese local in README.md 2023-05-18 01:28:38 +08:00
Peter Dave Hello 9d1726691b
Added translation using Weblate (Chinese (Traditional)) 2023-05-15 19:00:24 +02:00
Piero Toffanin 88524ba63d
Merge pull request #435 from BoFFire/patch-2
Kabyle language reviewed
2023-05-12 15:02:51 -04:00
ButterflyOfFire 9c87de49ed
Kabyle language reviewed 2023-05-12 19:42:34 +01:00
Jorge Maldonado Ventura 80ef24477e
Translated using Weblate (Esperanto)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/eo/
2023-05-02 21:52:50 +02:00
GpixeL 29b89ed128
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-05-01 13:52:50 +02:00
Tamir Ben-Arie b6daa29a7c
Translated using Weblate (Hebrew)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/he/
2023-05-01 13:52:50 +02:00
Tamir Ben-Arie 7d2248d781
Translated using Weblate (Hebrew)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/he/
2023-04-29 23:52:45 +02:00
Piero Toffanin 90f1fa9b41
Merge pull request #434 from misuzu/flask-babel-3-compat
Fix compatibility with flask-babel v3
2023-04-27 13:16:12 -04:00
misuzu 0f8952fd10 Fix compatibility with flask-babel v3+
Babel.locale_selector was removed in 3.0.0
2023-04-27 19:43:39 +03:00
oTalDoNexus fb8fcda2af
Translated using Weblate (Portuguese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt/
2023-04-24 21:53:07 +02:00
Piero Toffanin db3bcedf32
Update meta.json 2023-04-23 11:58:45 -04:00
Piero Toffanin 568b8e39ec
Merge pull request #432 from oTalDoNexus/patch-1
readme.md reviewed portuguese translation
2023-04-23 11:58:21 -04:00
oTalDoNexus 344ced489b
readme.md reviewed portuguese translation
I've translated to Portuguese using Weblate and it's reviewed so just changing the Portuguese to reviewed
2023-04-22 22:28:49 -03:00
Piero Toffanin a85e6c49fc
Merge pull request #431 from jorgesumle/main
Reviewed Esperanto translation
2023-04-21 02:09:23 -04:00
oTalDoNexus 30151c54fc
Translated using Weblate (Portuguese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt/
2023-04-21 08:08:38 +02:00
Jorge Maldonado Ventura 1cd5a7e0bb
Translated using Weblate (Esperanto)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/eo/
2023-04-21 08:08:38 +02:00
Jorge Maldonado Ventura 7b6892b18c Update README to show that Esperanto translation was reviewed 2023-04-20 23:27:22 +02:00
Jorge Maldonado Ventura a16524af84 Reviewed Esperanto translation 2023-04-20 23:21:51 +02:00
Wuzzy 3961faec78
Translated using Weblate (German)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/de/
2023-04-19 22:48:40 +02:00
박현준 (천의유) d8b9e60f4a
Translated using Weblate (Korean)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ko/
2023-04-03 20:22:54 +02:00
Piero Toffanin bc3829a2fb
Merge pull request #428 from mnzaki/patch-1
Fix bad help message in manage.py
2023-04-03 12:09:52 -04:00
Mina Nagy Zaki fd691cae25
Update manage.py 2023-04-03 17:06:46 +02:00
Piero Toffanin 4852234636
Merge pull request #427 from TheTakylo/main
Fix docker cuda image build
2023-04-03 10:37:55 -04:00
Sébastien T 8e9142adcb
remove arm64 build for docker cuda image 2023-04-03 10:40:28 +02:00
Sébastien T 6a9c34d408
prevent install all models 2023-04-03 10:39:52 +02:00
Sébastien T 24fb27dfe4
upgrade babel 2023-04-03 10:39:00 +02:00
Piero Toffanin 2502e55645
Update README.md 2023-04-03 02:30:14 -04:00
Piero Toffanin 323eb46db6
Merge pull request #426 from chun92/patch-1
Translated using Weblate (Korean)
2023-04-03 02:29:51 -04:00
hyunjoon Park c5e9beffab
Translate and Review Korean 2023-04-03 11:36:40 +09:00
Piero Toffanin 0b0e191c8b
Merge pull request #425 from TheTakylo/main
Reduce docker image size
2023-04-02 14:15:33 -04:00
Sébastien T ac3cdb80db build and push image with cuda support 2023-04-02 19:03:06 +02:00
Sébastien T 4dc7372a20 upgrade Babel & install torch without nvidia cuda 2023-04-02 18:58:43 +02:00
Sébastien T a59aaff57b upgrade image 2023-04-02 18:58:11 +02:00
CakesTwix 41b3c61269
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-03-28 14:37:20 +02:00
Piero Toffanin 38888c79bf
Improved link formatting 2023-03-27 13:47:05 -04:00
Piero Toffanin 2ca1fdc978
Add service status link 2023-03-27 13:44:23 -04:00
Piero Toffanin 281f3bddaa
Merge pull request #420 from Tampa/main
Split parameters into logical blocks, add some notes
2023-03-24 10:00:27 -04:00
Vincent Sylvester 975f82838c Split parameters into logical blocks, add some notes 2023-03-24 10:55:44 +01:00
Parsa 030ab3fadc
Translated using Weblate (Persian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fa/
2023-03-24 08:38:28 +01:00
Blueberry 9b8abe9c44
Translated using Weblate (Russian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/
2023-03-20 00:38:52 +01:00
Juanro49 33f011d035
Added translation using Weblate (Extremaduran) 2023-03-14 22:22:55 +01:00
Piero Toffanin 43f097bde1
Remove inactive mirror 2023-03-13 19:51:04 -04:00
Piero Toffanin a579da752d
Merge pull request #415 from Mortein/main
Update README
2023-03-13 09:15:16 -04:00
Kiel Hurley 58d43a72b1 Update LibreTranslator URL
Has moved from GitLab to Codeberg
2023-03-13 21:01:23 +13:00
Kiel Hurley 073930572d Resolve Markdown issues 2023-03-13 20:56:36 +13:00
Blueberry 1a38f3f60a
Translated using Weblate (Russian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/
2023-03-12 19:38:31 +01:00
Piero Toffanin df8c1b4b21 Show title only if web_version 2023-03-11 14:01:39 -05:00
Piero Toffanin 3fe629f8cf Persistent secrets 2023-03-11 12:06:36 -05:00
Piero Toffanin 683d155b1e Reviewed Russian 2023-03-11 11:58:32 -05:00
Blueberry 5d25b02cfa
Translated using Weblate (Russian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/
2023-03-11 15:38:47 +01:00
Piero Toffanin 246ad84419
Merge pull request #412 from pierotofy/secret
Add shared storage option
2023-03-09 23:14:45 -05:00
Piero Toffanin 3f7489836f Cleanup 2023-03-09 23:13:05 -05:00
Piero Toffanin f8084c0ae1 Update README 2023-03-09 23:09:55 -05:00
Piero Toffanin 6a231d974b Testing, fixes 2023-03-09 23:07:12 -05:00
Piero Toffanin ab27dcbaf3 Add shared storage option 2023-03-09 22:00:27 -05:00
Piero Toffanin e00f3af7db Shared storage implementation 2023-03-09 16:09:04 -05:00
Piero Toffanin 3726b5788d
Merge pull request #411 from pierotofy/secret
Secrets support
2023-03-09 14:06:24 -05:00
Piero Toffanin b59b82cfb0 Fix last-modified header response 2023-03-09 14:05:09 -05:00
Piero Toffanin f2792e5001 Add require-api-key-secret 2023-03-09 13:59:25 -05:00
Yamin Siahmargooei b3e9105d21
Translated using Weblate (Persian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fa/
2023-03-09 17:18:13 +01:00
Piero Toffanin 11ec67663d Fix require-api-key-origin logic 2023-03-07 09:16:55 -05:00
Fireman733 01a99b3d3e
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-03-06 09:38:54 +01:00
Piero Toffanin 13f7d6556f
Merge pull request #410 from Andrew15-5/patch-1
Updated Android app info in "Mobile Apps" sections
2023-03-05 22:31:32 -05:00
Andrew Voynov 5ba9c1151d
Updated Android app info in "Mobile Apps" sections
App's name and link have changed.
2023-03-06 02:52:10 +03:00
tygyh aa0ce7a592
Translated using Weblate (Swedish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/sv/
2023-03-01 09:36:31 +01:00
Simona Iacob 2c92a3c5ad
Translated using Weblate (Romanian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ro/
2023-02-27 20:38:18 +01:00
Oğuz Ersen 3d1f31f6a3
Translated using Weblate (Turkish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/
2023-02-27 20:38:17 +01:00
Marko Korhonen 843351e954
Translated using Weblate (Finnish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fi/
2023-02-27 20:38:16 +01:00
Christian Eichert c392f711b6
Added translation using Weblate (Romanian) 2023-02-25 21:35:41 +01:00
ebela 93c514a91b
Translated using Weblate (Hungarian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hu/
2023-02-25 12:36:30 +01:00
Piero Toffanin 17085741c0
Merge pull request #408 from FledPaul/bug-fix
Uninitialized variable error in check_command function - Fixed
2023-02-25 02:10:03 -05:00
Paul 359d31792d Uninitialized variable error in check_command function - Fixed 2023-02-24 22:28:11 +01:00
Yi Yunseok 5efbd6c7f7
Translated using Weblate (Korean)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ko/
2023-02-18 08:37:46 +01:00
Luna Jernberg ebdc038d50
Translated using Weblate (Swedish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/sv/
2023-02-11 11:36:28 +01:00
Jorge Maldonado Ventura 5a70b458fb
Translated using Weblate (Esperanto)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/eo/
2023-02-07 02:46:42 +01:00
Piero Toffanin 90fea3226f
Merge pull request #403 from pierotofy/metricsfix
Fix metrics endpoint in non-gunicorn processes
2023-02-06 00:39:40 +01:00
Piero Toffanin 87e1bf3f72 Add space 2023-02-06 00:39:06 +01:00
Piero Toffanin 8ace1bddf9 Fix metrics endpoint in non-gunicorn processes 2023-02-06 00:37:23 +01:00
Piero Toffanin ea9654277b
Merge pull request #400 from argosopentech/argos-translate-1-8
Upgrade to Argos Translate 1.8
2023-02-06 00:26:23 +01:00
P.J. Finlay c404885d5d Upgrade to Argos Translate 1.8
Uses argostranslate.package.Package.install which deletes the
cached package file after it has been installed
2023-02-04 10:25:17 -06:00
Poesty Li 27cae03e97
Translated using Weblate (Chinese (Simplified))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hans/
2023-02-02 19:50:37 +01:00
Piero Toffanin 1742157f00 Merge branch 'main' of https://github.com/uav4geo/LibreTranslate 2023-02-01 17:44:51 -05:00
Piero Toffanin f95ec7e6e1 Fix publish package workflow 2023-02-01 17:44:45 -05:00
Piero Toffanin 9abb560784 Drop Python 3.7 package publishing 2023-01-31 17:37:54 -05:00
Dingedi db8b892408
Merge pull request #398 from lordyavin/bugfix/use-non-cuda-dockerfile
Switches (back) to docker/Dockerfile as default for docker-compose
2023-01-31 16:22:06 +01:00
lordyavin 505c634ee4 Switches (back) to docker/Dockerfile as default for docker-compose 2023-01-31 15:53:03 +01:00
Piero Toffanin 165eb5e49a Merge branch 'main' of https://github.com/uav4geo/LibreTranslate 2023-01-30 10:38:24 -05:00
Piero Toffanin 4564bbc029 Document URL prefix 2023-01-30 10:38:17 -05:00
Michał Mateusz 497f2ea641
Translated using Weblate (Polish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pl/
2023-01-30 02:16:56 +01:00
ⵣⵓⵀⵉⵔ ⴰⵎⴰⵣⵉⵖ ZOUHIR DEHBI 64c8ad659f
Translated using Weblate (Tamazight (Standard Moroccan))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zgh/
2023-01-28 15:45:34 +01:00
hzrbasaran 3a491c42db
Translated using Weblate (Turkish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/
2023-01-28 15:45:34 +01:00
ⵣⵓⵀⵉⵔ ⴰⵎⴰⵣⵉⵖ ZOUHIR DEHBI 3f601c6be3
Added translation using Weblate (Tamazight (Standard Moroccan)) 2023-01-26 22:25:30 +01:00
Rorkh ca46f71313
Translated using Weblate (Russian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/
2023-01-26 17:54:32 +01:00
José Alberto Justiniani e422bb6dd1
Translated using Weblate (Spanish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/es/
2023-01-25 03:06:20 +01:00
Piero Toffanin dc995a8386
Remove unavailable mirrors 2023-01-24 13:03:17 -05:00
Piero Toffanin 363b639b2e
Update README.md 2023-01-23 22:39:56 -05:00
Piero Toffanin beb578fc06 Reviewed Spanish 2023-01-23 22:33:46 -05:00
Piero Toffanin e470ab77d8
Translated using Weblate (Spanish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/es/
2023-01-24 04:29:26 +01:00
José Alberto Justiniani ba4eb6c7f6
Translated using Weblate (Spanish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/es/
2023-01-24 04:29:26 +01:00
Piero Toffanin 94ab47c81d Accept a regex for require api key origin 2023-01-23 16:15:23 -05:00
Piero Toffanin bf79912d2c German reviewed 2023-01-23 13:14:29 -05:00
Piero Toffanin 2aacfbb972
Translated using Weblate (German)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/de/
2023-01-23 19:11:18 +01:00
Piero Toffanin 18959f5cf5
Disable push to ghcr 2023-01-23 11:09:53 -05:00
Selyan Sliman Amiri 7a26b4d97b
Translated using Weblate (Kabyle)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/
2023-01-23 16:12:04 +01:00
georgina odusanya 0868d37606
Translated using Weblate (German)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/de/
2023-01-23 16:12:03 +01:00
Quentin PAGÈS 01a66e53b2
Translated using Weblate (Occitan)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/oc/
2023-01-19 11:35:55 +01:00
gallegonovato 9cdf6d9aae
Translated using Weblate (Galician)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/gl/
2023-01-17 10:47:29 +01:00
Piero Toffanin 6ec1702ab7 Update readme 2023-01-16 12:17:11 -05:00
Piero Toffanin 590e543864 Move healthcheck.py to scripts 2023-01-16 12:16:30 -05:00
Piero Toffanin ec87536412
Merge pull request #394 from jonathan-chin/main
added script to allow healthcheck call in docker-compose
2023-01-16 12:15:50 -05:00
josé m 840e967927
Translated using Weblate (Galician)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/gl/
2023-01-16 07:47:57 +01:00
ButterflyOfFire 45b64de309
Translated using Weblate (Kabyle)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/
2023-01-16 07:47:57 +01:00
Jon Chin b93f11b548 added note about healthcheck 2023-01-15 16:29:45 -05:00
Jon Chin 83282ab47d small script for testing if service is ready for requests 2023-01-15 16:21:13 -05:00
Jon Chin 9da5051ae2 added example of including healthcheck configuration 2023-01-15 16:20:47 -05:00
Piero Toffanin a6dd316aa0
Merge pull request #393 from pierotofy/matchloc
Match target translation to site locale
2023-01-15 12:30:44 -05:00
Piero Toffanin 573b449c81 Fix build 2023-01-15 12:14:04 -05:00
Piero Toffanin 9fe372f58f Match target translation to site's locale 2023-01-15 12:07:51 -05:00
Piero Toffanin 5bf7a80932 Fix quotes in api key dialog 2023-01-15 11:42:59 -05:00
Piero Toffanin 96885a3a9d
Merge pull request #392 from BoFFire/patch-1
Updating README.MD
2023-01-14 11:43:05 -05:00
ButterflyOfFire d3e025c488
Updating README.MD
Adding Kabyle `kab` and Occitan `oc`.
2023-01-14 11:44:35 +01:00
josé m 66ca92bfad
Translated using Weblate (Galician)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/gl/
2023-01-13 16:53:47 +01:00
ssantos 6fb2bcd8c5
Translated using Weblate (Portuguese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt/
2023-01-13 16:53:47 +01:00
Piero Toffanin ac2188b1b1
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-01-13 16:53:47 +01:00
Piero Toffanin ad1fbcd54d
Merge pull request #391 from dingedi/feature/clear-root
Make the github root less cluttered.
2023-01-13 10:34:05 -05:00
Piero Toffanin 256e63f535 Do not hide docker folder 2023-01-13 10:24:56 -05:00
Piero Toffanin cfe904dfe2 Allow execution of scripts even if lt package is not installed 2023-01-13 10:21:07 -05:00
Piero Toffanin 230eee1490 Update run.bat 2023-01-13 10:14:31 -05:00
Piero Toffanin 7bef7a8a74 Update readme 2023-01-13 10:12:26 -05:00
Ferdi Alimadhi 1b66037529
Added translation using Weblate (Albanian) 2023-01-12 20:35:48 +01:00
dingedi 1803f24c19
fix script 2023-01-12 16:24:18 +01:00
dingedi d76a9a887b
move run.bat & run.sh to root 2023-01-12 16:07:26 +01:00
dingedi 74be246c74
move also gunicorn_conf.py in scripts directory 2023-01-12 14:57:18 +01:00
dingedi 9eb2d34971
move ISSUE_TEMPLATE in .github directory 2023-01-12 14:55:57 +01:00
dingedi 84fbd41501
upgrade pytest 2023-01-12 14:50:38 +01:00
dingedi c812f362e6
remove useless .gitmodules 2023-01-12 14:48:29 +01:00
dingedi 3a635564bf
remove python 3.7 2023-01-12 14:44:55 +01:00
dingedi cb7a12577d
fix new path for script in dockerfile 2023-01-12 14:42:41 +01:00
dingedi 62d53e3f09
fix docker & upgrade base to python:3.10.9-slim-bullseye 2023-01-12 14:42:09 +01:00
dingedi 1fd329ffd9
fix docker build 2023-01-12 14:39:17 +01:00
dingedi 75869e30ab
update references to scripts 2023-01-12 14:23:43 +01:00
dingedi c18a8d4855
fix docker 2023-01-12 14:23:29 +01:00
dingedi 5ea18f88db
move dockerfile in a .docker 2023-01-12 14:23:13 +01:00
dingedi 6e04c88308
mover scripts in a scripts dir 2023-01-12 14:21:17 +01:00
Dan 9b20a735c6
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-01-11 06:33:22 +01:00
josé m d6f9f9bf8b
Added translation using Weblate (Galician) 2023-01-11 06:33:22 +01:00
Piero Toffanin b32078c0fc Merge branch 'main' of https://github.com/uav4geo/LibreTranslate 2023-01-10 10:02:18 -05:00
Piero Toffanin f1f0753cd4 Fix content type for app.js 2023-01-10 10:02:12 -05:00
Allan Nordhøy 1176ef33bc
Translated using Weblate (Norwegian Bokmål)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/nb_NO/
2023-01-10 10:58:00 +01:00
Quentin PAGÈS be2d7efc6c
Translated using Weblate (Occitan)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/oc/
2023-01-10 10:57:59 +01:00
Allan Nordhøy 44946d4c72
Translated using Weblate (Chinese (Simplified))
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hans/
2023-01-10 10:57:59 +01:00
Allan Nordhøy 6c849f62c6
Translated using Weblate (Vietnamese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/vi/
2023-01-10 10:57:59 +01:00
Allan Nordhøy 69b2290fd0
Translated using Weblate (Ukrainian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/
2023-01-10 10:57:58 +01:00
Allan Nordhøy d8c1d30e55
Translated using Weblate (Swedish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/sv/
2023-01-10 10:57:58 +01:00
Allan Nordhøy 0231dbfa3b
Translated using Weblate (Slovak)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/sk/
2023-01-10 10:57:58 +01:00
Allan Nordhøy b6fd4936df
Translated using Weblate (Russian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/
2023-01-10 10:57:57 +01:00
Allan Nordhøy 8cb4591f9d
Translated using Weblate (Portuguese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt/
2023-01-10 10:57:57 +01:00
Allan Nordhøy 78b21f4c13
Translated using Weblate (Polish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pl/
2023-01-10 10:57:57 +01:00
Allan Nordhøy 408796740f
Translated using Weblate (Dutch)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/nl/
2023-01-10 10:57:57 +01:00
Allan Nordhøy 1f9919d74e
Translated using Weblate (Korean)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ko/
2023-01-10 10:57:56 +01:00
Allan Nordhøy 6d594ab134
Translated using Weblate (Japanese)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ja/
2023-01-10 10:57:56 +01:00
Allan Nordhøy 29a24ae82e
Translated using Weblate (Indonesian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/
2023-01-10 10:57:56 +01:00
Allan Nordhøy a1d1ddf5f8
Translated using Weblate (Hungarian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hu/
2023-01-10 10:57:55 +01:00
Allan Nordhøy d2fc72d624
Translated using Weblate (Hindi)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hi/
2023-01-10 10:57:55 +01:00
Allan Nordhøy 7c15821885
Translated using Weblate (Hebrew)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/he/
2023-01-10 10:57:55 +01:00
Allan Nordhøy bc8a2acfff
Translated using Weblate (Irish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ga/
2023-01-10 10:57:55 +01:00
Allan Nordhøy 62c7ee6254
Translated using Weblate (Finnish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fi/
2023-01-10 10:57:54 +01:00
Allan Nordhøy 32ecd6982b
Translated using Weblate (Persian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fa/
2023-01-10 10:57:54 +01:00
Allan Nordhøy 27e3770913
Translated using Weblate (Spanish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/es/
2023-01-10 10:57:54 +01:00
Allan Nordhøy f254eb23a0
Translated using Weblate (Esperanto)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/eo/
2023-01-10 10:57:54 +01:00
Allan Nordhøy 877ae4fba9
Translated using Weblate (Greek)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/el/
2023-01-10 10:57:53 +01:00
Allan Nordhøy aad1aaa115
Translated using Weblate (Danish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/
2023-01-10 10:57:53 +01:00
Allan Nordhøy b780f8ed76
Translated using Weblate (Czech)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/cs/
2023-01-10 10:57:53 +01:00
Allan Nordhøy 3a75e086b8
Translated using Weblate (Azerbaijani)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/az/
2023-01-10 10:57:52 +01:00
Allan Nordhøy 15bee8b43b
Translated using Weblate (Arabic)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ar/
2023-01-10 10:57:52 +01:00
Allan Nordhøy 4e4c7993a1
Translated using Weblate (German)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/de/
2023-01-10 10:57:52 +01:00
Quentin PAGÈS 0420c8bb57
Translated using Weblate (Occitan)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/oc/
2023-01-09 06:44:48 +01:00
Selyan Sliman Amiri 3c3606e092
Translated using Weblate (Kabyle)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/
2023-01-09 06:44:48 +01:00
ButterflyOfFire da13b74118
Translated using Weblate (Kabyle)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/
2023-01-09 06:44:48 +01:00
R_SACI 9d2c077c46
Translated using Weblate (Kabyle)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/
2023-01-09 06:44:48 +01:00
ButterflyOfFire 9e0cda3322
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-01-09 06:44:48 +01:00
Allan Nordhøy eaf10bd8ad
Added translation using Weblate (Norwegian Bokmål) 2023-01-09 06:44:48 +01:00
Dingedi f2c5405ab1
Merge pull request #388 from dingedi/upgrade-argostranslatefiles
Update requirements.txt
2023-01-08 12:52:16 +01:00
Dingedi 0f6d210a63
Update requirements.txt 2023-01-08 12:40:40 +01:00
Piero Toffanin dd53d61943
Added translation using Weblate (Occitan) 2023-01-08 07:19:39 +01:00
R_SACI 45c4075435
Translated using Weblate (Kabyle)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/
2023-01-07 15:07:32 +01:00
ButterflyOfFire 5758919854
Translated using Weblate (Kabyle)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/
2023-01-07 15:07:32 +01:00
gallegonovato 586e5a6faa
Translated using Weblate (Spanish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/es/
2023-01-07 15:07:31 +01:00
Oğuz Ersen 2adf6cf35c
Translated using Weblate (Turkish)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/
2023-01-07 14:03:48 +01:00
ButterflyOfFire 1afa19b69a
Translated using Weblate (Arabic)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ar/
2023-01-07 14:03:48 +01:00
Piero Toffanin fd304b94e8
Translated using Weblate (Italian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/it/
2023-01-07 14:03:48 +01:00
ButterflyOfFire 5091e589c5
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-01-07 14:03:48 +01:00
dingedi 9e5ecf7af1
Translated using Weblate (French)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/
2023-01-07 14:03:48 +01:00
Piero Toffanin 4a8803439a
Added translation using Weblate (Kabyle) 2023-01-07 14:03:48 +01:00
Piero Toffanin e45d27d9ce Reviewed Italian 2023-01-06 18:23:34 -05:00
Piero Toffanin d5ab4d9559
Translated using Weblate (Italian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/it/
2023-01-07 00:21:52 +01:00
Piero Toffanin 018bf90b33 Do not extract swagger consumes field 2023-01-06 17:53:36 -05:00
Piero Toffanin 28b465b3ba Add missing swagger strings 2023-01-06 16:35:07 -05:00
Piero Toffanin 7b363478d0
Translated using Weblate (Italian)
Translation: LibreTranslate/App
Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/it/
2023-01-06 21:37:56 +01:00
Piero Toffanin dd4fe8cba4 Add all locales 2023-01-06 15:27:04 -05:00
Piero Toffanin c33300bf77 Update instructions 2023-01-06 15:03:26 -05:00
Piero Toffanin 859fddeb77 Add messages.pot 2023-01-06 14:49:23 -05:00
Piero Toffanin cb3ee55eb4
Merge pull request #380 from pierotofy/loc
Localization Support
2023-01-06 14:42:20 -05:00
Piero Toffanin 4af4454db3 Add it,fr,de locales 2023-01-06 14:34:40 -05:00
Piero Toffanin 2ad3627ec8 Fix panel location 2023-01-06 14:24:00 -05:00
Piero Toffanin 4d3f8703f4 Fix setup.py 2023-01-06 14:17:11 -05:00
Piero Toffanin fa8516516c Install babel before running compile_locales.py 2023-01-06 14:09:43 -05:00
Piero Toffanin 4c17cd7572 Compile locales before installing package 2023-01-06 14:06:16 -05:00
Piero Toffanin ca72e3ec3e Include mo files (fix) 2023-01-06 13:55:56 -05:00
Piero Toffanin 0b5601981e Dark theme fixes 2023-01-06 13:47:05 -05:00
Piero Toffanin a67db35d61 Persistent change language dialog on click 2023-01-06 13:37:34 -05:00
Piero Toffanin 54c67ba2d7 Merge main 2023-01-06 13:07:35 -05:00
Piero Toffanin 727c3c82f7 Merge main 2023-01-06 13:07:07 -05:00
Piero Toffanin a17ef40981
Fix quotation 2023-01-06 13:02:20 -05:00
Piero Toffanin bdbf50f7cc
Merge pull request #382 from nvda-es/accessibility
Use WAI-ARIA attributes to make the web interface more accessible
2023-01-06 12:58:29 -05:00
José Manuel Delicado Alcolea 4ba8c8e3cb
Use WAI-ARIA attributes to make the web interface more accessible for screen reader users 2023-01-06 18:25:42 +01:00
Piero Toffanin 9d55718a62 Use lru_cache 2023-01-06 12:02:45 -05:00
Piero Toffanin 7e2b7fbabf Update build files 2023-01-06 11:58:32 -05:00
Piero Toffanin 58350d868c Language selector working 2023-01-06 11:50:51 -05:00
Piero Toffanin 754ac65b9e Locale selector UI works 2023-01-06 10:27:39 -05:00
Piero Toffanin aa5936dae5 Locale select panel mock 2023-01-05 16:06:19 -05:00
Piero Toffanin f0457da7b6 Avoid repetition in menu links 2023-01-05 14:54:56 -05:00
Piero Toffanin bfbe848c01 LT_LOCALE_LINK_TEMPLATE support 2023-01-05 14:36:50 -05:00
Piero Toffanin b26a3931a2 Translate swagger 2023-01-05 14:07:39 -05:00
Piero Toffanin edd3d6931d Tagged all strings 2023-01-05 13:12:35 -05:00
Piero Toffanin 19c3c04ca6 Translated index.html 2023-01-04 17:54:07 -05:00
Piero Toffanin 3cbbd8ae16 Auto self-translation 2023-01-04 15:36:26 -05:00
Piero Toffanin 50c9b62595 PoC translation working 2023-01-04 12:40:00 -05:00
Piero Toffanin 05900ff556 Translation scripts 2023-01-04 12:15:18 -05:00
Piero Toffanin bd9a153773
Merge pull request #377 from mynameisfiber/main
Fix reference to `app` and `url`
2023-01-03 08:01:38 -05:00
Piero Toffanin 84487585eb Fix #376 could not build url for endpoint 2023-01-03 07:57:29 -05:00
Micha Gorelick 468b4923f3 Bump argostranslate's patch version to 1.7.5 2023-01-03 12:40:45 +00:00
Micha Gorelick cca7dd5eac Fixed un-modified reference to app from a23a9fbd75 2023-01-03 12:40:05 +00:00
Micha Gorelick c17832a37c Optimize dockerfile.cuda for dev builds
install large packages before copying repo over to container so that we
can use build caches more efficiently.
2023-01-03 11:03:06 +00:00
Piero Toffanin 5f4ef37ed3 Fix limiter mock class 2023-01-01 13:22:01 -05:00
Piero Toffanin e74cdd4db3 Fix limiter initialization 2023-01-01 13:18:00 -05:00
Piero Toffanin 67453b0c15 Merge branch 'main' of https://github.com/uav4geo/LibreTranslate 2022-12-31 17:34:26 -05:00
Piero Toffanin ecffd24dc1 Typo 2022-12-31 17:34:20 -05:00
Piero Toffanin 994f319f04
Merge pull request #374 from reynoldsnlp/main
Allow `url-prefix`
2022-12-31 17:28:59 -05:00
reynoldsnlp c0d7c1ec21 bump version 2022-12-31 15:25:51 -07:00
reynoldsnlp 14b4f28a1a fix app.js with url_prefix 2022-12-31 15:15:51 -07:00
reynoldsnlp c5cc233aaf Fix API Docs link 2022-12-31 14:44:25 -07:00
Rob Reynolds 4bb4beee16
Merge branch 'LibreTranslate:main' into main 2022-12-30 21:31:38 -07:00
reynoldsnlp 638d664cff allow --url-prefix 2022-12-30 21:23:50 -07:00
Piero Toffanin 423b06d0cc Bump version 2022-12-30 08:17:42 -05:00
Piero Toffanin 033554a121
Merge pull request #372 from reynoldsnlp/main
app->libretranslate; mv tests/ inside libretranslate/
2022-12-30 08:16:37 -05:00
reynoldsnlp a23a9fbd75 app->libretranslate; mv tests/ inside libretranslate/ 2022-12-29 16:44:53 -07:00
Piero Toffanin 40a1141eac Excempt /metrics from limits 2022-12-26 20:00:55 -05:00
Piero Toffanin 9d2a2cd55f Add libretranslate namespace to prometheus metrics 2022-12-26 16:49:04 -05:00
Piero Toffanin b6111b95f8
Merge pull request #368 from pierotofy/prom
Prometheus Support
2022-12-26 16:21:46 -05:00
Piero Toffanin 06d4ac91f5 false --> Disabled 2022-12-26 16:15:19 -05:00
Piero Toffanin 9f243fd6be Prometheus support 2022-12-26 16:10:43 -05:00
Piero Toffanin 753a33e7c5 install_models.py note 2022-12-20 12:39:36 -05:00
Piero Toffanin e559f899b8 Fix headings, move section 2022-12-20 12:37:59 -05:00
Piero Toffanin 01b892b96a Update notes 2022-12-20 12:36:12 -05:00
Piero Toffanin 282737519c Fix suggestions, move all sqlite databases to db 2022-12-20 12:25:31 -05:00
Piero Toffanin 5a2e0fe656
Merge pull request #366 from pierotofy/lt
Run helper script, misc improvements
2022-12-20 11:57:46 -05:00
Piero Toffanin 11324ab1f5 Bump version 2022-12-20 11:48:25 -05:00
Piero Toffanin 91ae57ad6c Add run.bat 2022-12-20 11:48:03 -05:00
Piero Toffanin 72aaa41d8f Add run.sh 2022-12-20 11:30:14 -05:00
Piero Toffanin b407ffee3c lt.sh --> run.sh 2022-12-20 11:29:51 -05:00
Piero Toffanin f2d6800f4c Readme tweaks 2022-12-20 11:17:34 -05:00
Piero Toffanin 959f4638cc Named volume for db, --update-models arg 2022-12-20 11:13:56 -05:00
Piero Toffanin 5285697203 Add db 2022-12-20 10:36:31 -05:00
Piero Toffanin 10f82d9a3e lt.sh helper script 2022-12-20 10:33:15 -05:00
Piero Toffanin c4d1b05b27
Merge pull request #364 from suuft/patch-1
add java library
2022-12-18 12:15:45 -05:00
suuft (valeriy) 034407ee15
add java library 2022-12-18 00:38:26 +03:00
Piero Toffanin b55d150f9c
Update link 2022-12-11 03:09:20 -05:00
Piero Toffanin cdfeb6d8fc
Update link 2022-12-11 02:58:41 -05:00
Piero Toffanin 34fceaacc7
Update README.md 2022-12-11 02:33:51 -05:00
Piero Toffanin c9ccbf6a25
Update README.md 2022-12-11 02:32:51 -05:00
Piero Toffanin 9a3b92caf1
Merge pull request #360 from pierotofy/m1
Apple M1 support, ARM docker images
2022-12-11 01:21:19 -05:00
Piero Toffanin 5974c022b6 Simplify mirrors table in readme 2022-12-11 01:09:22 -05:00
Piero Toffanin c21fedc6bb Remove libicu dep 2022-12-11 01:04:12 -05:00
Piero Toffanin 9629cb8888 Enable multi-platform docker images 2022-12-11 00:55:27 -05:00
Piero Toffanin b9293e911a Merge branch 'main' of https://github.com/LibreTranslate/LibreTranslate into m1 2022-12-11 00:55:14 -05:00
Piero Toffanin 4ab7e7d2f5 Fix auto-detect 2022-12-11 00:53:19 -05:00
Piero Toffanin 9deefbbc84 Builds/runs natively on Apple M1 2022-12-11 00:45:14 -05:00
Piero Toffanin 8be739a783
Merge pull request #358 from pierotofy/misc
Miscellaneous Fixes and Improvements
2022-12-10 00:37:41 -05:00
Piero Toffanin 2b0074b94f Only show target languages, check swap, bump version 2022-12-10 00:21:38 -05:00
Piero Toffanin 0875fdc433 Server-side check for target lang 2022-12-10 00:03:21 -05:00
Piero Toffanin 6621c51b52 Fix array 2022-12-09 16:38:58 -05:00
Piero Toffanin e79089b5c1 Extend /languages to include targets 2022-12-09 16:36:12 -05:00
Piero Toffanin 0478d4ee2c Handle empty translation 2022-12-09 14:35:39 -05:00
Piero Toffanin b87b210bfc Fix indent 2022-12-09 14:29:44 -05:00
Piero Toffanin 30b3382af8 Fix CSS indent on firefox 2022-12-09 14:28:14 -05:00
Piero Toffanin 7c5d798fd5
Bump version 2022-11-16 12:29:41 -05:00
P.J. Finlay ee638b407d Remove Polyglot transliteration library
The model server for the Polyglot transliteration library is currently
down and the project looks unmaintained; this currently is breaking
LibreTranslate installs. This commit removes Polyglot for
transliteration but keeps using Polyglot for language detection.

- https://github.com/LibreTranslate/LibreTranslate/issues/344
- https://community.libretranslate.com/t/improving-transliteration-in-libretranslate/400
2022-11-16 08:59:11 -06:00
Piero Toffanin 1c5b006c87
Clarify modified definition 2022-11-14 01:28:51 -05:00
Piero Toffanin 488aa6db97
Merge pull request #343 from LibreTranslate/PJ-Finlay-patch-8
Fix README typo
2022-11-13 17:11:49 -05:00
P.J. Finlay b59e8ffcab
Fix README typo 2022-11-13 15:17:32 -06:00
Piero Toffanin 7c753a33d4
Merge pull request #339 from Dafnik/patch-2
Add NGINX to reverse proxy section
2022-11-11 11:30:40 -05:00
Dafnik f96e77df2b Add NGINX to reverse proxy section
Adds an example nginx config to the README
2022-11-11 15:21:22 +01:00
Piero Toffanin 65e6a7f262
Merge pull request #337 from Kuchenmampfer/main
Added reverse proxy example for Caddy
2022-11-07 13:26:04 -05:00
Kuchenmampfer 968793d36e
Added reverse proxy example for Caddy 2022-11-07 17:53:38 +00:00
Piero Toffanin 8e2c6a9405
Merge pull request #336 from SethFalco/fix/style
style: fix drop down arrow on dark mode
2022-11-04 08:50:19 -04:00
Seth Falco dc7b1367f6
style: fix drop down arrow on dark mode
Signed-off-by: Seth Falco <seth@falco.fun>
2022-11-04 12:10:02 +00:00
Piero Toffanin a6a061d439
Merge pull request #333 from wacumov/patch-1
Add Swift binding to README.md
2022-10-30 12:09:53 -04:00
Mikhail Akopov db71da493b
Add Swift binding to README.md 2022-10-30 17:45:45 +02:00
Piero Toffanin 6cf1a931fa Fix swagger schema id for translate_file 2022-10-18 11:41:36 -04:00
Piero Toffanin aed684b666
Create FUNDING.yml 2022-10-18 11:34:31 -04:00
Piero Toffanin 07fafa2f4b Typo 2022-10-14 13:47:06 -04:00
Piero Toffanin 99672ef528 Merge branch 'redis' 2022-10-14 13:35:34 -04:00
Piero Toffanin 69762ce4f4
Merge pull request #330 from LibreTranslate/redis
Support for persistent request limit storage via redis
2022-10-14 13:35:02 -04:00
Piero Toffanin 85da156c39 Bump version 2022-10-14 13:28:59 -04:00
Piero Toffanin 70c4571067 Add --req-limit-storage redis support 2022-10-14 13:27:34 -04:00
Piero Toffanin bc8b331fe9 Do not decrease flood violations 2022-10-14 12:49:28 -04:00
Piero Toffanin f18dfcd60d
Merge pull request #329 from Hayao0819/main
Add shell binding to README
2022-10-05 18:48:19 +02:00
Yamada Hayao 0b34a4545c
Add shell binding to README 2022-10-05 23:42:13 +09:00
Dingedi ea3979ab0c
Merge pull request #327 from dingedi/main
auto focus in input textarea
2022-10-02 14:52:04 +02:00
dingedi 0e3b9a9ebd
auto focus in input textarea 2022-10-02 14:50:58 +02:00
Dingedi e68ec8411d
Merge pull request #326 from dingedi/feature/swap-langs-fix
fix swap lang
2022-10-02 14:43:11 +02:00
dingedi b833608f5c
fix swap lang 2022-10-02 14:40:25 +02:00
Dingedi eb0df4d0df
Merge pull request #325 from dingedi/feature/auto-translate-url
run translation if text is in url
2022-10-02 14:33:51 +02:00
dingedi 54079b0276
run translation if text is in url 2022-10-02 14:31:57 +02:00
Dingedi 9e8bcf6040
Merge pull request #324 from dingedi/main
better display of detected language
2022-10-02 14:21:37 +02:00
dingedi eee2cf2f33
show iso if language name is not found (prevent error) 2022-10-02 14:20:20 +02:00
dingedi 3072219085
better display of detected language 2022-10-01 17:34:17 +02:00
Dingedi 5d8e513d45
fix 2022-10-01 17:12:05 +02:00
Piero Toffanin 7c37681afc
Merge pull request #323 from AnTheMaker/patch-1
Show detected Language (#314)
2022-10-01 10:40:12 -04:00
An | Anton Röhm 99b6a1a2f2
Show detectedLangText 2022-10-01 14:25:29 +02:00
An | Anton Röhm b90d996965
introduce detectedLangText var to store auto-detected lang 2022-10-01 14:21:50 +02:00
Dingedi 36e05596aa
Merge pull request #320 from kianmeng/fix-typos-in-readme
Fix typo in README.md
2022-09-26 14:37:53 +02:00
Kian-Meng Ang 057e4b01c9 Fix typo in README.md
Found via `codespell -L ot,fo,te,ue,inout,optionel`
2022-09-26 20:14:01 +08:00
Piero Toffanin 052f0ae1cd
Merge pull request #317 from dingedi/main
move improve_translation in language.py and use it in transliteration
2022-09-23 22:06:13 -04:00
Piero Toffanin eb5aec7bdb
Merge pull request #318 from dingedi/upgrade-requirements
upgrade requirements
2022-09-23 22:04:29 -04:00
dingedi bb6536d786
upgrade requirements 2022-09-23 15:35:44 +02:00
dingedi c66a519751
restore formatting only if transliteration dont fail 2022-09-23 14:20:22 +02:00
dingedi 077d6e9efa
move and improve_translation in language.py, use it for transliteration 2022-09-23 13:59:13 +02:00
Dingedi 5aa3f1eee8
Merge pull request #313 from dingedi/main
remove use of deprecated method
2022-09-17 08:53:46 +02:00
dingedi 13d792b6b6
remove use of deprecated method 2022-09-17 08:45:59 +02:00
Piero Toffanin 7b7cd7768b
Merge pull request #312 from eugene-davis/non-root-user
Non-root User for Dockerfile and Multi-Stage Build
2022-09-14 01:45:32 -04:00
Eugene Davis cabb887212
Update base image 2022-09-14 00:35:04 +02:00
Eugene Davis 9d6d06ceeb
Minor fixes 2022-09-13 23:09:20 +02:00
Eugene Davis 81f667b214
Move initialization into final image build 2022-09-13 21:24:18 +02:00
Eugene Davis 2a5e84730a
Execute docker as non-root 2022-09-13 14:21:44 +02:00
Piero Toffanin 299e5c3aa0
Merge pull request #311 from viktorkalyniuk/added-ios-app
Update README.md
2022-09-11 19:44:28 -04:00
Viktor Kalyniuk 8f8473ed4a Added LiTranslate iOS app to the README 2022-09-11 23:56:39 +03:00
Piero Toffanin 6cc4f94da2
Merge pull request #304 from youngtrashbag/patch-1
Make switch-language-btn white in Dark Theme
2022-08-24 12:44:13 +02:00
youngtrashbag 6415ea98f2
fix(css): btn-switch-language white in dark theme 2022-08-24 10:09:49 +02:00
Piero Toffanin d11e2ea165
Update README.md 2022-08-24 09:56:31 +02:00
Piero Toffanin be03358e83
Merge pull request #300 from gi-yt/patch-1
Add ~vern's onion/i2p instances of libretranslate
2022-08-24 09:54:41 +02:00
Arya K d8bf8af169
Short links for i2p along with b32 addr 2022-08-20 19:05:02 +05:30
Arya K d7a536fdd0
Add ~vern's onion/i2p instances of libretranslate 2022-08-20 19:01:25 +05:30
Piero Toffanin 95405726a2
Merge pull request #294 from ecxod/preloading-stuff
Preloading stuff
2022-08-07 00:39:07 -04:00
Christian Eichert cebeca43cb preloading the stuff 2022-08-06 20:16:01 +02:00
Christian Eichert dd4b2cb0b9 Merge branch 'main' of https://github.com/ecxod/LibreTranslate into christian 2022-08-06 19:17:59 +02:00
Christian Eichert e0c4810246 https://github.com/LibreTranslate/LibreTranslate/pull/293 2022-08-06 19:05:39 +02:00
Piero Toffanin 85c569e124
Merge pull request #293 from ecxod/main
brightened the Realm of Darkness
2022-08-06 11:31:54 -04:00
Christian Eichert 982c412169
Merge branch 'LibreTranslate:main' into main 2022-08-06 17:09:39 +02:00
Christian Eichert 54bdc77bdc
brightened the Realm of Darkness
some CSS adjustments to make "Tanslate-Files" look like "Translate-Text
2022-08-06 17:08:11 +02:00
Piero Toffanin b2a4dd0a9f
Merge pull request #291 from ecx0d/main
Update dark-theme.css
2022-08-01 00:09:25 -04:00
Christian Eichert c36c9ade62
Merge pull request #1 from ecx0d/ecx0d-css-patch-1
Update dark-theme.css
2022-07-31 21:01:14 +02:00
Christian Eichert 537430f55d
Update dark-theme.css
just a bit css, making <select> and <option> more readable in dark theme
2022-07-31 20:53:48 +02:00
Piero Toffanin d1d8fbab89
Merge pull request #287 from jonwiggins/main
Fix Security Vulnerabilities
2022-07-26 00:07:36 -04:00
JonWiggins b6219cb605 Upgrade waitress to patch CVE-2022-31015
Remove pip to close IN1-PYTHON-PIP-1278135
apt-get upgrade to close CVE-2022-1664, CVE-2022-1304, and CVE-2022-2068
2022-07-25 16:47:19 -05:00
Piero Toffanin ed764ce81b
Merge pull request #286 from TheFrenchGhosty/patch-1
Remove libretranslate.pussthecat.org
2022-07-24 12:13:05 -04:00
TheFrenchGhosty da1c9af97d
Remove libretranslate.pussthecat.org 2022-07-24 18:10:48 +02:00
Piero Toffanin be88f289c7 More forgiving 2022-07-15 13:03:13 -04:00
Piero Toffanin 1dddcea794 Add --threads 2022-07-15 12:12:20 -04:00
Piero Toffanin e4fe0e8919
Merge pull request #285 from Minosity-VR/main
Add --api-keys-db-path argument
2022-07-15 10:10:30 -04:00
Minosity-VR 752d2aae2c
Add api keys db path as env var (#1)
* Add API Keys DB path to command & env vars

* Create API Keys DB directory if not exists before sqlite connection & Add docker-compose example
2022-07-15 13:22:04 +02:00
Piero Toffanin 393eebe235
Merge pull request #283 from jonwiggins/main
Expand CUDA Support to more GPUs
2022-07-03 12:50:32 -04:00
jonwiggins 482a1c65c6 Add cuda pytorch install
Add info on adding cuda to the container path if needed
2022-07-03 11:35:29 -05:00
Piero Toffanin 727b9192e8
Merge pull request #279 from SethFalco/chores-2
fix: fix race condition in settings and langs
2022-06-22 19:50:22 -04:00
Seth Falco 6e2df73a7f
fix: fix race condition in settings and langs 2022-06-22 23:21:19 +01:00
Piero Toffanin c2b82e9303 Use get_api_key link in link 2022-06-21 17:00:27 -04:00
Piero Toffanin 79b9af9071 Say something on startup 2022-06-21 16:56:48 -04:00
Piero Toffanin 78d2bc7be4 Better error message when API key link is available 2022-06-21 16:39:08 -04:00
Piero Toffanin 47fc85fdec return None on failed remote key lookup 2022-06-21 16:37:06 -04:00
Piero Toffanin ed68f1bcf9 Add --get-api-key-link 2022-06-21 15:17:42 -04:00
Piero Toffanin 8f8087f8ae Add --api-keys-remote 2022-06-21 14:57:32 -04:00
Piero Toffanin 647379aea5 Fix check_and_install_transliteration 2022-06-21 14:22:12 -04:00
Piero Toffanin 3c1be4e731
Merge pull request #275 from jonwiggins/main
Add CUDA docker version
2022-06-20 19:00:46 -04:00
Jon Wiggins 89dde2d468 Add CUDA docker version 2022-06-20 16:23:32 -06:00
Piero Toffanin 8247444fb2
Merge pull request #273 from gi-yt/main
Add lt.vern.cc instance to instance list
2022-06-08 15:30:13 -04:00
Arya K 9670777484
Add lt.vern.cc instance to instance list 2022-06-08 21:51:40 +05:30
Piero Toffanin ef8ccc231c
Merge pull request #268 from dingedi/main
improve translation of punctuation
2022-05-30 12:33:07 -04:00
dingedi 9831ba88a6
improve translation of punctuation 2022-05-30 09:14:45 +02:00
Piero Toffanin d5f6276e7a
Merge pull request #266 from dingedi/main
Upgrade argos-translate-files
2022-05-27 12:58:28 -04:00
Dingedi e81d119603
Upgrade argos-translate-files
Add support for .epub and .html
2022-05-27 10:41:27 +02:00
Piero Toffanin d6ef04ba3e Extract JSONL from suggestions.db script 2022-05-22 16:17:41 -04:00
Piero Toffanin 0136d8808c Bump version (2) 2022-05-19 11:09:20 -04:00
Piero Toffanin 07b42d89d4 Bump version 2022-05-19 10:49:25 -04:00
Piero Toffanin aec1da8951
Update README.md 2022-05-18 10:07:23 -04:00
Dingedi eb9cb07a5d
Merge pull request #263 from dingedi/main
Upgrade argostranslate
2022-05-15 21:18:04 +02:00
Dingedi 3e8e3a07e4
Upgrade argostranslate 2022-05-15 21:10:43 +02:00
Piero Toffanin b0b446b11c
Merge pull request #261 from Anomalion/main
Include `dark-theme.css`
2022-05-10 11:16:49 -04:00
Anomalion 8eece0e984
Include dark-theme.css 2022-05-10 11:57:47 +02:00
Anomalion 6e7df35ae7
Merge pull request #1 from Anomalion/patch-1
Create dark-theme.css
2022-05-09 14:41:17 +02:00
Anomalion d28b684ee8
Create dark-theme.css 2022-05-09 14:15:18 +02:00
Piero Toffanin ee5829721f
Merge pull request #258 from pingufreak/patch-1
Update README.md
2022-05-06 10:01:39 -04:00
pingufreak 2cf9d2a028
Update README.md
File translation via Apache proxy needs "ProxyPreserveHost On", which is "Off" on some distributions (RHEL8 for instance). Else window.location.host will point to the container IP instead of the host.
2022-05-06 09:58:29 +02:00
Piero Toffanin e9bf9099d3
Merge pull request #257 from dingedi/main
improve translation formating
2022-05-03 11:47:44 -04:00
dingedi 3873d51c3c
improve translation formating 2022-05-03 16:48:06 +02:00
Dingedi 3c6fa1b01e
Merge pull request #256 from LibreTranslate/revert-255-main
Revert "improve translation formating"
2022-05-03 16:44:26 +02:00
Dingedi 5773adaabd
Revert "improve translation formating" 2022-05-03 16:43:05 +02:00
Dingedi adebc2a536
Merge pull request #255 from dingedi/main
improve translation formating
2022-05-03 16:42:50 +02:00
dingedi a91303d27e
improve translation formating 2022-05-03 16:30:20 +02:00
Piero Toffanin 8ea0fa7dca
Merge pull request #254 from dingedi/feature/add-python3-10
add python 3.10
2022-05-03 08:46:23 -04:00
Piero Toffanin e86365b44b
Merge pull request #253 from dingedi/main
upgrade requirements
2022-05-03 08:45:58 -04:00
dingedi 8d4ab72e05
upgrade pytest 2022-05-03 11:16:03 +02:00
dingedi ea63203aea
prevent github action error with python 3.10 recognized as python 3.1 2022-05-03 11:14:21 +02:00
dingedi 0c85b1a53c
add python 3.10 2022-05-03 11:09:55 +02:00
dingedi 4ac1ea13df
upgrade requirements 2022-05-03 11:04:21 +02:00
Piero Toffanin 9f73221d75
Merge pull request #252 from LibreTranslate/PJ-Finlay-patch-7
Upgrade deprecated Argos Translate call
2022-04-30 17:55:07 -04:00
P.J. Finlay 278a7057e4
Upgrade deprecated Argos Translate call
- load_installed_languages has been deprecated in favor of get_installed_languages
2022-04-30 06:15:54 -05:00
Piero Toffanin df491b0f91
Merge pull request #250 from vemonet/fix-readme-badges
Fix badges in the readme
2022-04-21 16:25:56 -04:00
Vincent Emonet f77c8bb8f1 Fix badges in the readme 2022-04-21 20:18:25 +02:00
Piero Toffanin aa8a0f0db5
Update TRADEMARK.md 2022-04-20 10:26:56 -04:00
Piero Toffanin f47cffc031
Usage of mark in instances 2022-04-19 18:36:24 -04:00
Piero Toffanin 46b15daec1
Clarify hosting name usage 2022-04-19 18:22:30 -04:00
Piero Toffanin 2fde4f7966
Merge pull request #249 from K-Francis-H/readme-api-examples-mirror-update
Readme api examples, mirror update
2022-04-19 18:19:05 -04:00
Kyle Harrity dc81d6c80a update auto detect example to show "detectedLanguage" object in response 2022-04-18 18:41:52 -04:00
Kyle Harrity 86cb815395 Add mirror for translate.terraprint.co 2022-04-18 18:39:19 -04:00
Piero Toffanin 059404f84a Add trademark policy 2022-04-17 13:32:01 -04:00
Piero Toffanin 42d41493d9
Merge pull request #248 from nuttolum/patch-1
Update README.md
2022-04-17 01:24:19 -04:00
nuttolum b20d06d679
Update README.md
added a link to my guide for running libretranslate on windows natively
2022-04-16 21:44:46 -04:00
Piero Toffanin 988ce9e7f9
Merge pull request #246 from DmitrySandalov/main
Add .gitattributes
2022-04-16 12:25:35 -04:00
Dmitry Sandalov 6396acd2bc
Add .gitattributes 2022-04-16 12:41:55 +03:00
Dingedi f5b5e801b3
Merge pull request #244 from dingedi/main
Remove instances not working
2022-04-08 09:48:51 +02:00
Dingedi aa49535a81
Remove instances not working 2022-04-08 09:47:49 +02:00
P.J. Finlay fc2ad8d637
Add translate.fortytwo-it.com mirror (#243)
https://community.libretranslate.com/t/scaling-libretranslate-distribution/78/16
2022-04-07 19:51:33 -05:00
Dingedi 8c2f3678cc
Merge pull request #242 from dingedi/main
update deprecated parameter name
2022-04-07 16:12:19 +02:00
Sébastien Thuret 51768e2d82
update deprecated parameter name 2022-04-07 15:56:57 +02:00
Dingedi 77ad23f630
Merge pull request #241 from dingedi/main
Upgrade requirements
2022-04-07 15:50:04 +02:00
Sébastien Thuret 0bbcc2ae83
Upgrade requirements 2022-04-07 15:43:13 +02:00
Piero Toffanin 9eb1bff261
Merge pull request #237 from dingedi/main
Run test for pull requests, add some functional tests
2022-04-06 09:41:30 -04:00
Sébastien Thuret 118924f897
fix 2022-04-06 14:27:55 +02:00
Sébastien Thuret ba32595a43
add another docker test 2022-04-06 14:22:15 +02:00
Sébastien Thuret 5c44eaff17
dont need to wait python tests 2022-04-06 14:17:19 +02:00
Sébastien Thuret c9886b736e
fix syntax error 2022-04-06 14:14:59 +02:00
Sébastien Thuret 5ea9f27ea5
add *.py 2022-04-06 14:13:31 +02:00
Sébastien Thuret c42740f6d1
Add test for docker build 2022-04-06 14:11:19 +02:00
Sébastien Thuret 8d602a80c3
add more tests for /translate 2022-04-05 17:12:15 +02:00
Sébastien Thuret 7113a30a0c
load only en & es models (avoid to download all models) 2022-04-05 16:39:31 +02:00
Sébastien Thuret 55b05992b5
fix function name 2022-04-04 08:26:58 +02:00
P.J. Finlay 8495211ac9
Merge pull request #239 from LibreTranslate/PJ-Finlay-patch-5
Add PHP bindings
2022-04-03 17:18:37 -05:00
P.J. Finlay 57707cb2a7
Add PHP bindings
https://community.libretranslate.com/t/php-class-for-libretranslate/195
2022-04-03 17:18:01 -05:00
Sébastien Thuret 97ff47bc2b
add translate test (test if it work & models are downloaded) 2022-04-03 20:41:59 +02:00
Sébastien Thuret 99c6ceba43
upgrade pytest 2022-04-03 19:50:11 +02:00
Sébastien Thuret e3a3db5996
remove python 3.6 2022-04-03 19:49:49 +02:00
Dingedi 7da51e8680
Merge pull request #238 from dingedi/focus-textarea
Focus textarea after delete text
2022-04-03 18:21:51 +02:00
Dingedi 5b45b9a53b
Focus textarea after delete text 2022-04-03 18:08:10 +02:00
Sébastien Thuret d7377d174b
/languages should be only available for GET 2022-04-03 13:17:13 +02:00
Dingedi 2bbf17b835
fix 2022-04-03 12:24:39 +02:00
Dingedi 8c7badff47
run pytest in verbose mode 2022-04-03 11:13:15 +02:00
Sébastien Thuret 0874dc062e
reorganization of tests (1 route per file), add some basic tests 2022-04-03 11:07:37 +02:00
Sébastien Thuret 00a6039289
Refactor & add the first test ! 2022-04-02 22:26:37 +02:00
Dingedi 9638b67f70
Remove python 3.6
Flask-Limiter 2.2 require >= python 3.7
2022-04-02 21:14:27 +02:00
Dingedi 70afa5e5e0
Run test for pull requests 2022-04-02 21:02:17 +02:00
Piero Toffanin a2bea5e300
Fix install_models.py (2) 2022-04-01 10:06:03 -04:00
Piero Toffanin 8cc03572e5
Fix install_models.py 2022-04-01 10:01:15 -04:00
Piero Toffanin 39c6cd6e8a
Fix build 2022-03-31 23:06:25 -04:00
Piero Toffanin 7f5e4db46b
Merge pull request #235 from setokesan/include-models-in-docker
Added models include option in docker build
2022-03-31 10:52:26 -04:00
Piti Cookie e828658332 Added models include option in docker build 2022-03-31 07:21:20 -07:00
Piero Toffanin 3a65bbce52
Merge pull request #234 from feliskio/main
Fix Docker build failing due to username casing
2022-03-30 12:21:23 -04:00
Felix Wotschofsky db34db1688 Fix Docker build failing due to username casing 2022-03-30 15:29:51 +00:00
Piero Toffanin c217c65358
Merge pull request #233 from feliskio/main
Improve container publishing workflow
2022-03-30 09:28:05 -04:00
Felix Wotschofsky aee96f077b Improve container building workflow 2022-03-30 12:29:33 +00:00
Piero Toffanin 5da194905a
Add new language notes 2022-03-26 11:56:50 -04:00
Piero Toffanin dba7fa5285
Removed jinja2 dep 2022-03-26 11:52:40 -04:00
Piero Toffanin b9e96fc30f
Merge pull request #231 from dingedi/dingedi-patch-1
Set jinja2 version
2022-03-26 11:32:53 -04:00
Piero Toffanin fa6d60c1e2
Merge branch 'main' into dingedi-patch-1 2022-03-26 11:28:42 -04:00
Piero Toffanin c19823344c
Merge pull request #232 from dingedi/feature/upgrade-to-flask2
Upgrade to flask 2
2022-03-26 11:27:19 -04:00
Sébastien Thuret a88841c174
upgrade-to-flask2 2022-03-26 09:02:54 +01:00
Dingedi 8b50afdc82
Set jinja2 version 2022-03-26 08:45:41 +01:00
Piero Toffanin 6b2ef99f78
Merge pull request #229 from K-Francis-H/translate-auto-show-langs
include language detected, confidence for /translate calls with auto detect
2022-03-25 10:37:54 -04:00
Kyle Harrity 2499c6c379 include language detected, confidence for /translate calls with auto detect 2022-03-25 02:19:56 -04:00
Piero Toffanin cd45641452
Merge pull request #223 from ewrenge/fix-broken-link
Fix broken link on README
2022-03-09 19:26:26 -05:00
ewreurei 349d5f1e4a
Fix broken link on README 2022-03-10 05:11:33 +09:00
Piero Toffanin bc67c21a41
Merge pull request #222 from LibreTranslate/PJ-Finlay-patch-4
Edit README documentation
2022-03-05 10:49:09 -05:00
P.J. Finlay 1219bbcd30
Edit README documentation
Mostly minor changes in phrasing
2022-03-05 07:54:55 -06:00
P.J. Finlay fae16e7e67
Merge pull request #221 from LibreTranslate/PJ-Finlay-patch-3
Improve links in mobile app documentation
2022-03-05 07:30:50 -06:00
P.J. Finlay f6fd24adcd
Improve links in mobile app documentation 2022-03-05 07:28:07 -06:00
Dingedi bf36738552
Merge pull request #220 from TheFrenchGhosty/patch-1
Add the PussTheCat.org instance
2022-03-05 11:58:50 +01:00
TheFrenchGhosty cdab73500b
Add the PussTheCat.org instance 2022-03-05 03:11:12 +01:00
Piero Toffanin c3548bffe1 Memoize 2022-03-04 10:24:29 -05:00
Piero Toffanin 45649c3340
Merge pull request #219 from ZenulAbidin/detect_fix
Fix language detection error
2022-03-04 10:09:46 -05:00
Ali Sherief e23b96f1da Fix language detection error
The root cause was load_installed_languages() of argostranslate
being called at the top of the file instead of inside a function,
this caused the list of installed languages to incorrectly be
returned as an empty list.
2022-03-04 08:23:11 +00:00
Piero Toffanin bcf051b7ff
Update README.md 2022-02-25 11:43:17 -05:00
Piero Toffanin 3480fbde01
Update README.md 2022-02-25 11:42:21 -05:00
Piero Toffanin ea332b11e6
Merge pull request #216 from fushinari/suggest-errors
suggestions: Abort when missing parameters
2022-02-20 12:26:55 -05:00
Mufeed Ali 9edcbe8bea
suggestions: Abort when missing parameters 2022-02-20 22:52:12 +05:30
Piero Toffanin 124e736685 Downgrade flask 2022-02-20 11:41:33 -05:00
Piero Toffanin 0d33e251c1 Pin itsdangerous 2022-02-20 11:40:34 -05:00
Piero Toffanin b87305b375 Update flask 2022-02-20 11:35:43 -05:00
Piero Toffanin a85b645550
Merge pull request #215 from fushinari/api-key-access
app: Fail when giving invalid API keys
2022-02-20 11:29:40 -05:00
Mufeed Ali 2ddb415bba
cleanup: Whitespaces and imports
- Remove unnecessary import
- Reorder imports
- Fix whitespace issues
2022-02-20 13:39:02 +05:30
Mufeed Ali 933c96914b
app: Fail when giving invalid API keys
When an API key is passed, fail in the case of an invalid API key even
if an API key is not required. This allows the user to know that the API
key is invalid. Otherwise, they work under the assumption that the API
key is correct, even though it is not.
2022-02-20 13:36:29 +05:30
Piero Toffanin 8962de8755
Add auto-detect example 2022-02-10 12:46:02 -05:00
Dingedi a13a714b89
Merge pull request #211 from EsmailELBoBDev2/patch-1
added my instance :)
2022-02-10 16:01:55 +01:00
Esmail EL BoB 6932fed0b6
added my instance :) 2022-02-10 06:25:25 +00:00
Piero Toffanin 1df501db7f
Merge pull request #209 from dingedi/feature/keep-selected-langs-in-url
keep selected languages and text in url
2022-02-07 12:39:02 -05:00
Sébastien Thuret 54f5c5ed94
keep selected languages and text in url 2022-02-07 17:58:30 +01:00
Piero Toffanin 61a148d692
Use len 2022-02-07 11:22:08 -05:00
Piero Toffanin 0d122c5d53
Merge pull request #206 from dingedi/feature/set-default-language
set default language instead of raise error
2022-02-07 11:21:20 -05:00
Piero Toffanin 15dcfa12c6
Merge pull request #207 from dingedi/feature/disable-web-ui
Add --disable-web-ui
2022-02-07 11:18:59 -05:00
Piero Toffanin badff01b34
Merge pull request #208 from dingedi/feature/add-python-3.9
add python 3.9
2022-02-07 11:18:19 -05:00
Sébastien Thuret 8eb3644f02
add python 3.9 2022-02-07 11:15:52 +01:00
Sébastien Thuret 6b18b23b46
Add --disable-web-ui 2022-02-07 11:02:32 +01:00
Sébastien Thuret b8df98fdce
set default language instead of raise error 2022-02-07 10:45:31 +01:00
Piero Toffanin f75a294aa0
Merge pull request #204 from dingedi/unescape-html-entity-codes
unescape html entity codes (ex: &apos)
2022-02-06 12:07:39 -05:00
Piero Toffanin c11c8a499a
Merge pull request #205 from dingedi/upgrade-pyicu
Upgrade to pyicu>=2.8
2022-02-06 12:06:45 -05:00
Dingedi cfabcab016
Upgrade to pyicu>=2.8 2022-02-06 15:04:47 +01:00
Dingedi 79e5b0fb50
unescape html entity codes (ex: &apos) 2022-02-06 14:54:52 +01:00
Piero Toffanin 9e77f82470 Fix extra t 2022-01-31 10:39:55 -05:00
Piero Toffanin 7efe0b0c6f Bump version 2022-01-31 10:21:25 -05:00
Piero Toffanin 74e2823658 Fix frontendTimeout 2022-01-31 10:19:14 -05:00
Piero Toffanin 5eccc20daf
Update README.md 2022-01-26 12:25:51 -05:00
Piero Toffanin a35722ea60
Update README.md 2022-01-26 12:23:54 -05:00
Piero Toffanin 85de14fe95
Reference to training video 2022-01-25 18:32:22 -05:00
Dingedi 252adc25f0
Upgrade translatehtml
To have HTML tags exclusions with attribute translate="no"
2022-01-25 14:22:43 +01:00
Piero Toffanin ae9a12f14c
Merge pull request #198 from idotj/main
Closes #197
2022-01-17 15:20:40 -05:00
idotj 8ecf708bdd
Apply a white background main <body> 2022-01-17 21:19:46 +01:00
idotj 7afce9ae2a Improve color contrast for WCAG standards + add underline to links 2022-01-17 20:09:20 +01:00
Piero Toffanin 27d076a1b4
Update README.md 2022-01-13 20:58:01 -05:00
Dingedi 6dd7d6f336
Merge pull request #196 from fushinari/patch-1
README: remove non-working instances
2022-01-06 17:33:41 +01:00
Mufeed Ali f0f4351e71
README: remove non-working instances
Remove instances that don't work anymore
2022-01-06 21:56:03 +05:30
Piero Toffanin 2c2dd99d28
Merge pull request #195 from SethFalco/download-btn
bug: optimize download btn for mobile
2022-01-04 23:07:13 -05:00
Seth Falco 558f58e4b2
bug: optimize download btn for mobile 2022-01-04 21:13:43 +01:00
Piero Toffanin 5176c18625
Merge pull request #194 from SethFalco/translate-type-buttons
bug: fix translate text/file buttons
2022-01-04 14:36:04 -05:00
Seth Falco da36cd77cd
fix translate text/file buttons 2022-01-04 20:20:02 +01:00
Piero Toffanin 27c4c12c1f
Merge pull request #191 from SethFalco/chore
chore: update url to avoid redirect
2021-12-31 10:57:43 -05:00
Piero Toffanin 3c8ef04049
Merge pull request #192 from SethFalco/editorconfig
chore: add editorconfig
2021-12-31 10:57:04 -05:00
Seth Falco 70c86a6903
chore: add editorconfig 2021-12-31 11:52:48 +01:00
Seth Falco 9734852fb5
chore: update url to avoid redirect 2021-12-31 11:35:03 +01:00
Dingedi f19e52a392
Upgrade to argos-translate-files v1.0.5
Fix security issues in lxml
2021-12-26 10:20:41 +00:00
Piero Toffanin 6bb5aa5a75
Merge pull request #190 from dingedi/main
Upgrade to Argos Translate 1.6.1
2021-12-23 18:26:59 -05:00
Dingedi cdefbc75f2
Upgrade to Argos Translate 1.6.1
Remove PyQt5
2021-12-23 21:57:52 +00:00
P.J. Finlay aa5defca22
Upgrade to Argos Translate 1.5.4 2021-12-16 19:17:07 -06:00
Piero Toffanin 714bc0fe8f
Merge pull request #182 from qgustavor/patch-1
Properly escape data in the request code
2021-12-09 09:37:03 -05:00
Gustavo Rodrigues 64ae20e932
Properly escape data in the request code
It was only escaping the first quote, all other quotes and other characters that require to be escaped (like line breaks) were not being escaped. JSON.stringify is a good function to handle this.
2021-12-09 10:31:48 -03:00
Piero Toffanin 94c27e3645 Merge branch 'main' of https://github.com/uav4geo/LibreTranslate into main 2021-12-06 22:15:35 +01:00
Piero Toffanin 0cb437083e Slower forgiveness 2021-12-06 22:15:16 +01:00
Piero Toffanin fe5fbe9cd1
Update README.md 2021-12-04 00:36:46 -05:00
Piero Toffanin 8076183ae8
Merge pull request #180 from destined2fail1990/main
Update README.md
2021-11-28 00:13:21 -05:00
destined2fail1990 1ab1c13e1e
Update README.md
Added Skitzen.com as a API host
2021-11-27 18:15:22 -06:00
Piero Toffanin 66f62efcbb Tweak ban logic, update config description 2021-11-24 12:49:07 -05:00
Piero Toffanin 3a7527c418 Improve banned forgiveness logic 2021-11-24 12:41:12 -05:00
P.J. Finlay cda2d3ed96
Merge pull request #177 from ChillerDragon/pr_zillyhuhn_instance
Add trans.zillyhuhn.com
2021-11-17 18:23:20 -06:00
Chiller Dragon df806e2c5b
Add trans.zillyhuhn.com 2021-11-18 00:37:09 +01:00
Piero Toffanin 6163443d1b
Keep license 2021-11-09 10:14:14 -05:00
Piero Toffanin 264a19c423
Merge pull request #173 from thomas-mc-work/main
Reduce Docker image size
2021-11-09 10:13:38 -05:00
Thomas McWork bdff7c3ff9
reduce Docker image size 2021-11-09 16:08:05 +01:00
Thomas McWork 30ea49e963
reduce Docker image size 2021-11-09 16:00:38 +01:00
Piero Toffanin ffc0c1dcda
Merge pull request #165 from fushinari/key-support-frontend
Expose api_keys in frontend settings
2021-11-07 15:09:47 -05:00
Piero Toffanin 8b0e04c8d1
Merge pull request #169 from dingedi/main
decrease counter if the user wait after the slowdown notice
2021-11-05 11:40:16 -04:00
Sébastien Thuret df0c64450a
remove debug print 2021-11-05 14:59:16 +01:00
Sébastien Thuret adfdc8c9e5
decrease counter if the user wait after the slowdown notice 2021-11-05 14:56:04 +01:00
Piero Toffanin ec382054db
Merge pull request #166 from dingedi/main
Upgrade to Argos Translate 1.5.3
2021-11-04 13:02:18 -04:00
Dingedi a546b8be41
Upgrade to Argos Translate 1.5.3 2021-11-04 17:41:06 +01:00
Mufeed Ali 2375cea3ca
Expose api_keys in frontend settings
This is useful for applications that want to know beforehand if usage of
an API key is supported.
2021-11-03 20:26:04 +05:30
Piero Toffanin 922ba5de40
Merge pull request #164 from fushinari/suggest-req-key
Require API key for submitting suggestions
2021-10-31 12:19:37 -04:00
Mufeed Ali 29eca1fbd4
Forward API key in suggestions client event 2021-10-31 12:57:36 +05:30
Mufeed Ali 3af4ce16e1
Require API key for submitting suggestions
Also removes limiter exemption
2021-10-31 11:23:25 +05:30
Piero Toffanin 56e81856b2
Merge pull request #162 from fushinari/key-req-frontend
Expose require_api_key_origin in frontend settings
2021-10-30 14:36:56 -04:00
Mufeed Ali 915b912c29
Expose require_api_key_origin in frontend settings
This is useful for applications that want to know beforehand if an API
key is necessary before accessing the running instance.
2021-10-30 21:01:50 +05:30
Dingedi 015e77fbf6
Merge pull request #160 from dingedi/main
Upgrade to argos-translate-files v1.0.4
2021-10-27 09:01:23 +02:00
Dingedi 1d3b4424a1
Update image to show new features 2021-10-27 09:00:10 +02:00
Dingedi bbf46aaf5f
Upgrade to argos-translate-files v1.0.4 2021-10-27 08:40:19 +02:00
Dingedi f7a38e2fdb
Upgrade to argos-translate-files v1.0.3 2021-10-27 08:33:08 +02:00
Piero Toffanin f3029d65d5 Remove api_key param from download url 2021-10-26 17:28:59 -04:00
Piero Toffanin c778aa9960 Remove access check for download endpoint 2021-10-26 17:27:33 -04:00
Piero Toffanin 3af5db1db2 Merge branch 'main' of https://github.com/uav4geo/LibreTranslate 2021-10-26 17:13:57 -04:00
Piero Toffanin a82b851a3d Fix API key logic, add some error handling 2021-10-26 17:13:51 -04:00
Piero Toffanin 7727d8ddc3
Merge pull request #157 from dingedi/main
[WIP] Add files translation
2021-10-26 16:06:59 -04:00
Piero Toffanin 93b711aa74 Update spec version 2021-10-26 16:06:12 -04:00
Piero Toffanin 9d95e07d82 Style fix 2021-10-26 16:04:50 -04:00
Piero Toffanin a1244b9e3e Path traversal check 2021-10-26 15:41:14 -04:00
Piero Toffanin d12c81b773 Add VERSION 2021-10-26 15:32:06 -04:00
Sébastien Thuret 42c44a2ba1
fix 2021-10-25 17:24:03 +02:00
Sébastien Thuret b3c089b246
Dont show switch type if files translation disabled 2021-10-25 17:20:57 +02:00
Sébastien Thuret aac45a60ab
remove scheduler if files translation is disabled 2021-10-25 17:12:09 +02:00
Sébastien Thuret 909deccd3f
disable routes 2021-10-25 17:09:23 +02:00
Sébastien Thuret bbc1d61836
Add flag in readme 2021-10-25 17:09:15 +02:00
Dingedi 49f18277f7
Merge branch 'LibreTranslate:main' into main 2021-10-25 17:06:55 +02:00
Sébastien Thuret 5bb8ed7375
Add --disable-files-translation flag 2021-10-25 17:00:44 +02:00
Sébastien Thuret 9e272cb80c
remove uuid and fix downloaded filename 2021-10-25 12:05:39 +02:00
Sébastien Thuret c5f47f0917
add scheduler to remove files after 30 minutes instead of after download 2021-10-25 11:46:49 +02:00
Sébastien Thuret 738dba7476
fix 2021-10-25 11:46:23 +02:00
Sébastien Thuret 5f2d0435f2
change tmp dir 2021-10-25 11:06:39 +02:00
Sébastien Thuret 8d5a418bee
format 2021-10-25 10:56:17 +02:00
Sébastien Thuret bcbaf52777
format 2021-10-25 10:52:55 +02:00
Sébastien Thuret 6a304df2e8
add download link & auto download translated file 2021-10-25 10:50:55 +02:00
Sébastien Thuret b97134ac07
fix 2021-10-25 10:33:49 +02:00
Piero Toffanin 18ea0bae91
Update ISSUE_TEMPLATE.md 2021-10-25 01:40:35 -04:00
Sébastien Thuret 73ebb96171
fix 2021-10-24 19:14:09 +02:00
Sébastien Thuret 4f0d19dbc4
download work 2021-10-24 18:44:35 +02:00
Sébastien Thuret f0d6c92db7
create download_file route 2021-10-24 18:38:35 +02:00
Sébastien Thuret 0b14600199
Add file translation 2021-10-24 18:27:37 +02:00
Sébastien Thuret 82c2f4396d
Add files restriction for input 2021-10-24 17:41:29 +02:00
Sébastien Thuret aaa3c83d4f
add file and translate button display 2021-10-24 17:38:53 +02:00
Sébastien Thuret 50ce3720eb
remove console.log 2021-10-24 17:11:39 +02:00
Sébastien Thuret b6cdc7f35a
Fix missing " = " in requirement 2021-10-24 16:59:09 +02:00
Sébastien Thuret ae5d67d966
Show supported file format and add it to settings 2021-10-24 16:57:45 +02:00
Sébastien Thuret 0da21d96d2
Fix requirement 2021-10-24 16:57:25 +02:00
Sébastien Thuret e0ecf41526
Upgrade to VueJS v2.6.14 2021-10-24 16:57:17 +02:00
Sébastien Thuret 6f63bab8a1
add file input 2021-10-24 13:22:44 +02:00
Sébastien Thuret f906a39f66
make switch type work 2021-10-24 13:15:36 +02:00
Sébastien Thuret 4e1bfd398c
fix background color 2021-10-24 13:13:52 +02:00
Sébastien Thuret e58b8ff97d
Add switch type (text or files ) button 2021-10-24 12:53:52 +02:00
Sébastien Thuret 3e9d4c2c24
Add argos-translate-files in requirements.txt 2021-10-24 12:09:24 +02:00
Piero Toffanin 3c3ff752c6
Merge pull request #156 from rffontenelle/patch-1
Add mention to mobile app in F-Droid store
2021-10-18 14:08:10 -04:00
Rafael Fontenelle 9e25c74ea5
Add mention to mobile app in F-Droid store 2021-10-18 15:03:35 -03:00
Piero Toffanin 59e1be95df
Merge pull request #152 from dingedi/main
Fix display issue on libretranslate.com
2021-10-09 15:31:02 -04:00
Sébastien Thuret 7b3d9f286e
Added version number for assets that may change 2021-10-09 18:25:28 +02:00
Sébastien Thuret 7df304d955
Move the javascript in his own file 2021-10-09 18:16:50 +02:00
Piero Toffanin 2bd7947006
Update README.md 2021-10-09 10:33:21 -04:00
Piero Toffanin c1da77fbeb
Merge pull request #151 from dingedi/main
[WIP] Suggesting corrections to translations
2021-10-09 10:11:11 -04:00
Piero Toffanin 9960baa9c8 Swagger docs definition 2021-10-09 10:04:16 -04:00
Sébastien Thuret 0ff3ca65fb
Disable suggestions by default 2021-10-09 15:45:58 +02:00
Sébastien Thuret 0561deb1b4
Save suggestions in a database 2021-10-09 11:44:07 +02:00
Sébastien Thuret c02658984e
send good parameter 2021-10-09 11:43:22 +02:00
Sébastien Thuret b8f41c8d94
Adding a notification after sending 2021-10-09 11:25:56 +02:00
Sébastien Thuret 130aaecb76
Merge remote-tracking branch 'origin/main' into main 2021-10-09 11:04:58 +02:00
Sébastien Thuret deaa95e3c6
Dont show edit button when loading translations 2021-10-09 11:04:10 +02:00
Dingedi b08cd2cc4c
Merge branch 'LibreTranslate:main' into main 2021-10-09 10:53:22 +02:00
Piero Toffanin 071b1f399b
Update index.html 2021-10-09 00:32:36 -04:00
Sébastien Thuret 5dcb55cad9
fix button state 2021-10-08 19:12:56 +02:00
Sébastien Thuret f5bc2bc3f5
fix 2021-10-08 19:02:30 +02:00
Sébastien Thuret 0214d7bfd6
add buttons 2021-10-08 18:36:24 +02:00
P.J. Finlay cb86d289d3
Merge pull request #150 from dingedi/main
add a mirror that no longer works which works again
2021-10-07 05:59:21 -05:00
Dingedi b2f02dd235
add a mirror that no longer works which works again 2021-10-07 08:50:26 +02:00
Piero Toffanin f9245c56e9
Merge pull request #145 from pierotofy/htmlfix
Fix HTML Translation Formatting, Auto detect HTML in UI
2021-09-24 11:32:28 -04:00
Piero Toffanin a776c21c2a Bump version 2021-09-24 11:31:40 -04:00
Piero Toffanin b73e146baf Fix HTML translation formatting, automatically detect HTML in translation UI 2021-09-24 11:30:19 -04:00
Piero Toffanin d207ed3b88
Merge pull request #142 from dingedi/dingedi-patch-1
patch 1
2021-09-23 11:37:24 -04:00
Dingedi 85b9451a9b
Remove not working mirror 2021-09-23 17:28:09 +02:00
Dingedi 144f60eee3
Upgrade argostranslate to 1.5.2 2021-09-23 17:27:33 +02:00
Dingedi c2b650015b
Avoir useless redirection 2021-09-23 17:24:44 +02:00
181 changed files with 39976 additions and 2226 deletions

View file

@ -1 +1,9 @@
.git*
docker*
.Dockerfile.swp
chart/
.editorconfig
*.yaml
*.md
!README.md

20
.editorconfig Normal file
View file

@ -0,0 +1,20 @@
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
curly_bracket_next_line = false
spaces_around_operators = true
[*.js]
quote_type = double
[*.{js,js.template,py}]
indent_size = 4
[*.{markdown,md}]
trim_trailing_whitespace = false

1
.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
*.py text eol=lf

3
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,3 @@
# These are supported funding model platforms
custom: ['https://portal.libretranslate.com']

9
.github/ISSUE_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,9 @@
****************************************
Please do NOT ask question about LibreTranslate here! We have a forum at https://community.libretranslate.com for questions.
Please open an issue only to report faults and bugs.
For feature requests, please open pull requests directly! We accept all kinds of contributions. If you don't know how to code, you can still provide feedback, but please offer to contribute something (how are you going to help the project develop the feature?)
Remove these lines after reading it
****************************************

7
.github/dependabot.yaml vendored Normal file
View file

@ -0,0 +1,7 @@
---
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: daily

31
.github/workflows/issue-triage.yml vendored Normal file
View file

@ -0,0 +1,31 @@
name: Issue Triage
on:
issues:
types:
- opened
jobs:
issue_triage:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: pierotofy/issuewhiz@v1
with:
ghToken: ${{ secrets.GITHUB_TOKEN }}
openAI: ${{ secrets.OPENAI_TOKEN }}
filter: |
- "#"
variables: |
- Q: "A question about using a software or seeking guidance on doing something?"
- B: "Reporting an issue, an exception, a stack trace, or a software bug?"
- T: "Reporting a problem with an inaccurate, awkward or erroneous translation?"
- E: "Reporting about some missing feature or functionality?"
- SC: "Describes an issue related to compiling or building source code?"
logic: |
- "Q and (not B) and (not E) and (not SC)": [comment: "Could we move this conversation over to the forum at https://community.libretranslate.com? :pray: The forum is the right place to ask questions (we try to keep the GitHub issue tracker for feature requests and bugs only). Thank you! :+1:", close: true, stop: true]
- "B and (not T) and (not E) and (not SC)": [label: "possible bug", stop: true]
- "T and (not E)": [label: "model improvement", stop: true]
- "E": [label: "enhancement", stop: true]
- "SC": [label: "possible bug"]
signature: "p.s. I'm just an automated script, not a human being."

View file

@ -1,73 +0,0 @@
name: Publish to GitHub Container Registry
# To uav4geo GitHub Container Registry
# https://github.com/orgs/uav4geo/packages
on:
push:
# Publish `main` as Docker `latest` image.
branches:
- main
# Publish `v1.2.3` tags as releases.
tags:
- v*
# Run tests for any PRs.
pull_request:
# Enable manual trigger.
workflow_dispatch:
env:
IMAGE_NAME: libretranslate
# The image ID is generated using the GitHub user ID
# In our case IMAGE_ID: ghcr.io/uav4geo/libretranslate
jobs:
# Test if the docker image build successfully
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: |
docker build . --file Dockerfile
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
publish:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push'
steps:
- uses: actions/checkout@v2
- name: Build image
run: docker build . --file Dockerfile --tag $IMAGE_NAME
# Create an access token with `read:packages` and `write:packages` scopes
# https://github.com/settings/tokens
- name: Log into GitHub Container Registry
run: echo "${{ secrets.CONTAINER_REGISTRY_GITHUB_TOKEN }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin
- name: Push image to GitHub Container Registry
run: |
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Use Docker `latest` tag convention
[ "$VERSION" == "main" ] && VERSION=latest
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION

73
.github/workflows/publish-docker.yml vendored Normal file
View file

@ -0,0 +1,73 @@
name: Build and Publish Docker Image
on:
push:
branches:
- main
tags:
- v*
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Get Variables
id: get-variables
run: |
echo ::set-output name=version::${GITHUB_REF#refs/tags/}
echo ::set-output name=gh-username-lower::$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')
- name: Build and push Image
uses: docker/build-push-action@v5
with:
file: ./docker/Dockerfile
platforms: linux/amd64,linux/arm64
tags: ${{ steps.get-variables.outputs.gh-username-lower }}/libretranslate:${{ env.TAG }}
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
env:
TAG: ${{ startsWith(github.ref, 'refs/tags/') && steps.get-variables.outputs.version || 'latest' }}
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- name: Build and push Cuda Image
uses: docker/build-push-action@v5
with:
file: ./docker/cuda.Dockerfile
platforms: linux/amd64
tags: ${{ steps.get-variables.outputs.gh-username-lower }}/libretranslate:${{ env.TAG }}-cuda
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
env:
TAG: ${{ startsWith(github.ref, 'refs/tags/') && steps.get-variables.outputs.version || 'latest' }}

View file

@ -1,31 +0,0 @@
name: Publish to DockerHub
on:
push:
branches: main
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: libretranslate/libretranslate:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

View file

@ -9,34 +9,8 @@ on:
jobs:
tests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest flake8
pip install .
- name: Check code style with flake8 (lint)
run: |
# warnings if there are Python syntax errors or undefined names
# (remove --exit-zero to fail when syntax error)
flake8 . --count --exit-zero --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: pytest
uses: LibreTranslate/LibreTranslate/.github/workflows/run-tests.yml@main
secrets: inherit
publish:
@ -44,21 +18,23 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
python setup.py sdist bdist_wheel
pip install build
- name: Build and publish to PyPI
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
- name: Build
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
pip install Babel==2.11.0
python scripts/compile_locales.py
python -m build
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: ${{ secrets.PYPI_USERNAME }}
password: ${{ secrets.PYPI_PASSWORD }}

View file

@ -2,43 +2,48 @@ name: Run tests
# Run test at each push to main, if changes to package or tests files
on:
workflow_dispatch:
workflow_call:
pull_request:
branches: [ main ]
push:
branches: [ main ]
paths:
- '*.py'
- 'requirements.txt'
- 'app/**'
- 'tests/**'
- 'libretranslate/**'
- '.github/workflows/run-tests.yml'
jobs:
tests:
tests_python:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
python-version: ['3.8', '3.9', '3.10']
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest flake8
pip install .
- name: Check code style with flake8 (lint)
run: |
# warnings if there are Python syntax errors or undefined names
# (remove --exit-zero to fail when syntax error)
flake8 . --count --exit-zero --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
pipx install hatch
hatch run locales
- name: Test with pytest
run: pytest
run: hatch run test
test_docker_build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Docker build
run: docker build -f docker/Dockerfile -t libretranslate .
- name: Docker build with some models
run: docker build -f docker/Dockerfile -t libretranslate --build-arg models=en,es .

4
.gitignore vendored
View file

@ -1,3 +1,6 @@
# Ignore db/sessions/
db/
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
@ -131,3 +134,4 @@ installed_models/
# Misc
api_keys.db
suggestions.db

22
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,22 @@
# See https://pre-commit.com for more information
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
name: " 🐘 Check for added large files"
- id: check-toml
name: " ✔️ Check TOML"
- id: check-json
name: " ✔️ Check JSON"
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.0.277
hooks:
- id: ruff
name: " ⚡️ Formatting code with Ruff"
args:
- --fix
ci:
autofix_commit_msg: 🎨 [pre-commit] Auto format
autoupdate_commit_msg: ⬆ [pre-commit] pre-commit auto update

136
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,136 @@
# Contributing
If you want to make changes to the code, you can build from source, and run the API.
## Build Dependencies
* cmake
### Debian / Ubuntu
```sh
sudo apt-get install cmake
```
### Fedora / RHEL
```sh
sudo dnf install cmake
```
## Getting Started
Install [`hatch`](https://hatch.pypa.io) to manage the projects dependencies and run dev scripts:
```bash
pipx install hatch
```
Clone the repository:
```bash
git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate
```
Hatch will automatically install the required dependencies in a virtual environment, and enable [`pre-commit`](https://pre-commit.com/), which will run before each commit to run formatting. You can ignore `pre-commit` checks when committing if necessary: `git commit --no-verify -m "Fix"`
Run in development:
```bash
hatch run dev --debug
```
Then open a web browser to <http://localhost:5000>
You can also start a new shell in a virtual environment with libretranslate installed:
```bash
hatch shell
libretranslate [args]
# Or
python main.py [args]
```
> You can still use `pip install -e ".[test]"` directly if you don't want to use hatch.
## Run the tests
Run the test suite and linting checks:
```bash
hatch run test
```
To display all `print()` when debugging:
```bash
hatch run test -s
```
You can also run the tests on multiple python versions:
```bash
hatch run all:test
```
You can clean the virtual environment with:
```bash
hatch env prune
```
## Run with Docker
Linux/macOS: `./run.sh [args]`
Windows: `run.bat [args]`
Then open a web browser to <http://localhost:5000>
## Build with Docker
```bash
docker build -f docker/Dockerfile [--build-arg with_models=true] -t libretranslate .
```
If you want to run the Docker image in a complete offline environment, you need to add the `--build-arg with_models=true` parameter. Then the language models are downloaded during the build process of the image. Otherwise, these models get downloaded on the first run of the image/container.
Run the built image:
```bash
docker run -it -p 5000:5000 libretranslate [args]
```
Or build and run using Docker Compose:
```bash
docker compose up -d --build
```
> Feel free to change the [`docker-compose.yml`](https://github.com/LibreTranslate/LibreTranslate/blob/main/docker-compose.yml) file to adapt it to your deployment needs, or use an extra `docker-compose.prod.yml` file for your deployment configuration.
>
> The models are stored inside the container under `/home/libretranslate/.local/share` and `/home/libretranslate/.local/cache`. Feel free to use volumes if you do not want to redownload the models when the container is destroyed. To update the models, use the `--update-models` argument.
## FAQ
### Externally Managed Environment
Some users may encounter the following error while installing packages:
```
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
```
This occurs when your operating system depends on and manages Python for core functionality. In this case, you should install and setup venv (virtual environments) to manage project dependencies.
This prevents pip packages from being installed system-wide. This way, there are no risks of pip packages conflicting between multiple projects or the operating system.
References:
* [Python venv documentation](https://docs.python.org/library/venv.html)

View file

@ -1,23 +0,0 @@
FROM python:3.8
ARG with_models=false
WORKDIR /app
RUN pip install --upgrade pip
COPY . .
# check for offline build
RUN if [ "$with_models" = "true" ]; then \
# install only the dependencies first
pip install -e .; \
# initialize the language models
./install_models.py; \
fi
# Install package from source code
RUN pip install .
EXPOSE 5000
ENTRYPOINT [ "libretranslate", "--host", "0.0.0.0" ]

View file

@ -1,9 +0,0 @@
****************************************
First of all, thank you for taking the time to report an issue.
For installation problems, questions, server configuration problems and feature requests, please open a topic on http://community.libretranslate.com
Please open an issue only to report faults and bugs!
PLEASE REMOVE THIS NOTE AFTER READING IT!
****************************************

599
README.md
View file

@ -2,18 +2,17 @@
[Try it online!](https://libretranslate.com) | [API Docs](https://libretranslate.com/docs) | [Community Forum](https://community.libretranslate.com/)
[![Python versions](https://img.shields.io/pypi/pyversions/libretranslate)](https://pypi.org/project/libretranslate) [![Run tests](https://github.com/uav4geo/LibreTranslate/workflows/Run%20tests/badge.svg)](https://github.com/uav4geo/LibreTranslate/actions?query=workflow%3A%22Run+tests%22) [![Publish to DockerHub](https://github.com/uav4geo/LibreTranslate/workflows/Publish%20to%20DockerHub/badge.svg)](https://hub.docker.com/r/libretranslate/libretranslate) [![Publish to GitHub Container Registry](https://github.com/uav4geo/LibreTranslate/workflows/Publish%20to%20GitHub%20Container%20Registry/badge.svg)](https://github.com/uav4geo/LibreTranslate/actions?query=workflow%3A%22Publish+to+GitHub+Container+Registry%22) [![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech)
[![Python versions](https://img.shields.io/pypi/pyversions/libretranslate)](https://pypi.org/project/libretranslate) [![Run tests](https://github.com/LibreTranslate/LibreTranslate/workflows/Run%20tests/badge.svg)](https://github.com/LibreTranslate/LibreTranslate/actions?query=workflow%3A%22Run+tests%22) [![Build and Publish Docker Image](https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-docker.yml/badge.svg)](https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-docker.yml) [![Publish package](https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-package.yml/badge.svg)](https://github.com/LibreTranslate/LibreTranslate/actions/workflows/publish-package.yml) [![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://codeberg.org/teaserbot-labs/delightful-humane-design)
Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source [Argos Translate][argo] library.
Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source [Argos Translate](https://github.com/argosopentech/argos-translate) library.
![image](https://user-images.githubusercontent.com/1951843/121782367-23f90080-cb77-11eb-87fd-ed23a21b730f.png)
![image](https://user-images.githubusercontent.com/64697405/139015751-279f31ac-36f1-4950-9ea7-87e76bf65f51.png)
[Try it online!](https://libretranslate.com) | [API Docs](https://libretranslate.com/docs)
## API Examples
### Plain Text
### Simple
Request:
@ -39,7 +38,39 @@ Response:
}
```
### HTML (beta)
List of language codes: https://libretranslate.com/languages
### Auto Detect Language
Request:
```javascript
const res = await fetch("https://libretranslate.com/translate", {
method: "POST",
body: JSON.stringify({
q: "Ciao!",
source: "auto",
target: "en"
}),
headers: { "Content-Type": "application/json" }
});
console.log(await res.json());
```
Response:
```javascript
{
"detectedLanguage": {
"confidence": 83,
"language": "it"
},
"translatedText": "Bye!"
}
```
### HTML
Request:
@ -66,111 +97,194 @@ Response:
}
```
### Alternative Translations
Request:
```javascript
const res = await fetch("https://libretranslate.com/translate", {
method: "POST",
body: JSON.stringify({
q: "Hello",
source: "en",
target: "it",
format: "text",
alternatives: 3
}),
headers: { "Content-Type": "application/json" }
});
console.log(await res.json());
```
Response:
```javascript
{
"alternatives": [
"Salve",
"Pronto"
],
"translatedText": "Ciao"
}
```
## Install and Run
You can run your own API server in just a few lines of setup!
You can run your own API server with just a few lines of setup!
Make sure you have installed Python (3.8 or higher is recommended), then simply issue:
Make sure you have Python installed (3.8 or higher is recommended), then simply run:
```bash
pip install libretranslate
libretranslate [args]
```
Then open a web browser to http://localhost:5000
Then open a web browser to <http://localhost:5000>
If you're on Windows, we recommend you [Run with Docker](#run-with-docker) instead.
On Ubuntu 20.04 you can also use the install script available at <https://github.com/argosopentech/LibreTranslate-init>
On Ubuntu 20.04 you can also use the install script available on https://github.com/argosopentech/LibreTranslate-init
## Run with Docker
You can also run the application with [docker](https://docker.com):
### Linux/macOS
```bash
./run.sh [args]
```
### Windows
```bash
run.bat [args]
```
## Build and Run
If you want to make some changes to the code, you can build from source, and run the API:
See [CONTIRBUTING.md](./CONTRIBUTING.md) for information on how to build and run the project yourself.
### CUDA
You can use hardware acceleration to speed up translations on a GPU machine with CUDA 11.2 and [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) installed.
Run this version with:
```bash
git clone https://github.com/uav4geo/LibreTranslate
cd LibreTranslate
pip install -e .
libretranslate [args]
# Or
python main.py [args]
docker compose -f docker-compose.cuda.yml up -d --build
```
Then open a web browser to http://localhost:5000
### Run with Docker
Simply run:
```bash
docker run -ti --rm -p 5000:5000 libretranslate/libretranslate
```
Then open a web browser to http://localhost:5000
### Build with Docker
```bash
docker build [--build-arg with_models=true] -t libretranslate .
```
If you want to run the Docker image in a complete offline environment, you need to add the `--build-arg with_models=true` parameter. Then the language models get downloaded during the build process of the image. Otherwise these models get downloaded on the first run of the image/container.
Run the built image:
```bash
docker run -it -p 5000:5000 libretranslate [args]
```
Or build and run using `docker-compose`:
```bash
docker-compose up -d --build
```
> Feel free to change the [`docker-compose.yml`](https://github.com/uav4geo/LibreTranslate/blob/main/docker-compose.yml) file to adapt it to your deployment needs, or use an extra `docker-compose.prod.yml` file for your deployment configuration.
## Arguments
| Argument | Description | Default | Env. name |
| ------------- | ------------------------------ | -------------------- | ---------------------- |
Arguments passed to the process or set via environment variables are split into two kinds.
- Settings or runtime flags used to toggle specific runmodes or disable parts of the application. These act as toggle when added or removed.
- Configuration parameters to set various limits and configure the application. These require a parameter to be passed to function, if removed the default parameters are used.
### Settings / Flags
| Argument | Description | Default Setting | Env. name |
|-----------------------------|-------------------------------------------------------------------------------------------------------------| -------------------- |------------------------------|
| --debug | Enable debug environment | `Disabled` | LT_DEBUG |
| --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 |
| --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 |
| --suggestions | Allow user suggestions | `Disabled` | LT_SUGGESTIONS |
| --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 |
| --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 |
### Configuration Parameters
| Argument | Description | Default Parameter | Env. name |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | --------------------------- |
| --host | Set host to bind the server to | `127.0.0.1` | LT_HOST |
| --port | Set port to bind the server to | `5000` | LT_PORT |
| --char-limit | Set character limit | `No limit` | LT_CHAR_LIMIT |
| --req-limit | Set maximum number of requests per minute per client | `No limit` | LT_REQ_LIMIT |
| --req-limit | Set maximum number of requests per minute per client (outside of limits set by api keys) | `No limit` | LT_REQ_LIMIT |
| --req-limit-storage | Storage URI to use for request limit data storage. See [Flask Limiter](https://flask-limiter.readthedocs.io/en/stable/configuration.html) | `memory://` | LT_REQ_LIMIT_STORAGE |
| --req-time-cost | Considers a time cost (in seconds) for request limiting purposes. If a request takes 10 seconds and this value is set to 5, the request cost is either 2 or the actual request cost (whichever is greater). | `No time cost` | LT_REQ_TIME_COST |
| --batch-limit | Set maximum number of texts to translate in a batch request | `No limit` | LT_BATCH_LIMIT |
| --ga-id | Enable Google Analytics on the API client page by providing an ID | `No tracking` | LT_GA_ID |
| --debug | Enable debug environment | `False` | LT_DEBUG |
| --ssl | Whether to enable SSL | `False` | LT_SSL |
| --frontend-language-source | Set frontend default language - source | `en` | LT_FRONTEND_LANGUAGE_SOURCE |
| --frontend-language-target | Set frontend default language - target | `es` | LT_FRONTEND_LANGUAGE_TARGET |
| --ga-id | Enable Google Analytics on the API client page by providing an ID | `Empty (no tracking)` | LT_GA_ID |
| --frontend-language-source | Set frontend default language - source | `auto` | LT_FRONTEND_LANGUAGE_SOURCE |
| --frontend-language-target | Set frontend default language - target | `locale` (match site's locale) | LT_FRONTEND_LANGUAGE_TARGET |
| --frontend-timeout | Set frontend translation timeout | `500` | LT_FRONTEND_TIMEOUT |
| --api-keys | Enable API keys database for per-user rate limits lookup | `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 |
| --load-only | Set available languages | `all from argostranslate` | LT_LOAD_ONLY |
| --api-keys-db-path | Use a specific path inside the container for the local database. Can be absolute or relative | `db/api_keys.db` | LT_API_KEYS_DB_PATH |
| --api-keys-remote | Use this remote endpoint to query for valid API keys instead of using the local database | `Empty (use local db instead)` | LT_API_KEYS_REMOTE |
| --get-api-key-link | Show a link in the UI where to direct users to get an API key | `Empty (no link shown on web ui)` | LT_GET_API_KEY_LINK |
| --shared-storage | Shared storage URI to use for multi-process data sharing (e.g. when using gunicorn) | `memory://` | LT_SHARED_STORAGE |
| --load-only | Set available languages | `Empty (use all from argostranslate)` | LT_LOAD_ONLY |
| --threads | Set number of threads | `4` | LT_THREADS |
| --metrics-auth-token | Protect the /metrics endpoint by allowing only clients that have a valid Authorization Bearer token | `Empty (no auth required)` | LT_METRICS_AUTH_TOKEN |
| --url-prefix | Add prefix to URL: example.com:5000/url-prefix/ | `/` | LT_URL_PREFIX |
Note that each argument has an equivalent env. variable that can be used instead. The env. variables overwrite the default values but have lower priority than the command aguments. They are particularly useful if used with Docker. Their name is the upper-snake case of the command arguments' ones, with a `LT` prefix.
### Notes:
## Run with Gunicorn
- Each argument has an equivalent environment variable that can be used instead. The env. variables overwrite the default values but have lower priority than the command arguments and are particularly useful if used with Docker. The environment variable names are the upper-snake-case of the equivalent command argument's name with a `LT` prefix.
```
- To configure requirement for api key to use, set `--req-limit` to `0` and add the `--api-keys` flag. Requests made without a proper api key will be rejected.
- Setting `--update-models` will update models regardless of whether updates are available or not.
## Update
### Software
If you installed with pip:
`pip install -U libretranslate`
If you're using docker:
`docker pull libretranslate/libretranslate`
### Language Models
Start the program with the `--update-models` argument. For example: `libretranslate --update-models` or `./run.sh --update-models`.
Alternatively you can also run the `scripts/install_models.py` script.
## Run with WSGI and Gunicorn
```bash
pip install gunicorn
gunicorn --bind 0.0.0.0:5000 'wsgi:app'
```
You can pass application arguments directly to Gunicorn via:
```
```bash
gunicorn --bind 0.0.0.0:5000 'wsgi:app(api_keys=True)'
```
## Kubernetes Deployment
See [Medium article by JM Robles](https://jmrobles.medium.com/libretranslate-your-own-translation-service-on-kubernetes-b46c3e1af630) and the improved [k8s.yaml](https://github.com/LibreTranslate/LibreTranslate/blob/main/k8s.yaml) by @rasos.
### Helm Chart
Based on @rasos work you can now install LibreTranslate on Kubernetes using Helm.
A Helm chart is now available in the [helm-chart](https://github.com/LibreTranslate/helm-chart/) repository where you can find more details.
You can quickly install LibreTranslate on Kubernetes using Helm with the following command:
```bash
helm repo add libretranslate https://libretranslate.github.io/helm-chart/
helm repo update
helm search repo libretranslate
helm install libretranslate libretranslate/libretranslate --namespace libretranslate --create-namespace
```
## Manage API Keys
LibreTranslate supports per-user limit quotas, e.g. you can issue API keys to users so that they can enjoy higher requests limits per minute (if you also set `--req-limit`). By default all users are rate-limited based on `--req-limit`, but passing an optional `api_key` parameter to the REST endpoints allows a user to enjoy higher request limits.
LibreTranslate supports per-user limit quotas, e.g. you can issue API keys to users so that they can enjoy higher requests limits per minute (if you also set `--req-limit`). By default all users are rate-limited based on `--req-limit`, but passing an optional `api_key` parameter to the REST endpoints allows a user to enjoy higher request limits. You can also specify different character limits that bypass the default `--char-limit` value on a per-key basis.
To use API keys simply start LibreTranslate with the `--api-keys` option.
To use API keys simply start LibreTranslate with the `--api-keys` option. If you modified the API keys database path with the option `--api-keys-db-path`, you must specify the path with the same argument flag when using the `ltmanage keys` command.
### Add New Keys
@ -180,6 +294,18 @@ To issue a new API key with 120 requests per minute limits:
ltmanage keys add 120
```
To issue a new API key with 120 requests per minute and a maximum of 5,000 characters per request:
```bash
ltmanage keys add 120 --char-limit 5000
```
If you changed the API keys database path:
```bash
ltmanage keys --api-keys-db-path path/to/db/dbName.db add 120
```
### Remove Keys
```bash
@ -192,25 +318,71 @@ ltmanage keys remove <api-key>
ltmanage keys
```
## Prometheus Metrics
LibreTranslate has Prometheus [exporter](https://prometheus.io/docs/instrumenting/exporters/) capabilities when you pass the `--metrics` argument at startup (disabled by default). When metrics are enabled, a `/metrics` endpoint is mounted on the instance:
<http://localhost:5000/metrics>
```promql
# HELP libretranslate_http_requests_in_flight Multiprocess metric
# TYPE libretranslate_http_requests_in_flight gauge
libretranslate_http_requests_in_flight{api_key="",endpoint="/translate",request_ip="127.0.0.1"} 0.0
# HELP libretranslate_http_request_duration_seconds Multiprocess metric
# TYPE libretranslate_http_request_duration_seconds summary
libretranslate_http_request_duration_seconds_count{api_key="",endpoint="/translate",request_ip="127.0.0.1",status="200"} 0.0
libretranslate_http_request_duration_seconds_sum{api_key="",endpoint="/translate",request_ip="127.0.0.1",status="200"} 0.0
```
You can then configure `prometheus.yml` to read the metrics:
```yaml
scrape_configs:
- job_name: "libretranslate"
# Needed only if you use --metrics-auth-token
#authorization:
#credentials: "mytoken"
static_configs:
- targets: ["localhost:5000"]
```
To secure the `/metrics` endpoint you can also use `--metrics-auth-token mytoken`.
If you use Gunicorn, make sure to create a directory for storing multiprocess data metrics and set `PROMETHEUS_MULTIPROC_DIR`:
```bash
mkdir -p /tmp/prometheus_data
rm /tmp/prometheus_data/*
export PROMETHEUS_MULTIPROC_DIR=/tmp/prometheus_data
gunicorn -c scripts/gunicorn_conf.py --bind 0.0.0.0:5000 'wsgi:app(metrics=True)'
```
## Language Bindings
You can use the LibreTranslate API using the following bindings:
- Rust: https://github.com/DefunctLizard/libretranslate-rs
- Node.js: https://github.com/franciscop/translate
- .Net: https://github.com/sigaloid/LibreTranslate.Net
- Go: https://github.com/SnakeSel/libretranslate
- Python: https://github.com/argosopentech/LibreTranslate-py
- C++: https://github.com/argosopentech/LibreTranslate-cpp
- Unix: https://github.com/argosopentech/LibreTranslate-sh
More coming soon!
- Rust: <https://github.com/DefunctLizard/libretranslate-rs>
- Node.js: <https://github.com/franciscop/translate>
- TypeScript: <https://github.com/tderflinger/libretranslate-ts>
- .Net: <https://github.com/sigaloid/LibreTranslate.Net>
- Go: <https://github.com/SnakeSel/libretranslate>
- Python: <https://github.com/argosopentech/LibreTranslate-py>
- PHP: <https://github.com/jefs42/libretranslate>
- C++: <https://github.com/argosopentech/LibreTranslate-cpp>
- Swift: <https://github.com/wacumov/libretranslate>
- Unix: <https://github.com/argosopentech/LibreTranslate-sh>
- Shell: <https://github.com/Hayao0819/Hayao-Tools/tree/master/libretranslate-sh>
- Java: <https://github.com/suuft/libretranslate-java>
- Ruby: <https://github.com/noesya/libretranslate>
- R: <https://github.com/myanesp/libretranslateR>
## Discourse Plugin
You can use this [discourse translator plugin](https://github.com/LibreTranslate/discourse-translator) to translate [Discourse](https://discourse.org) topics. To install it simply modify `/var/discourse/containers/app.yml`:
You can use the [official discourse translator plugin](https://github.com/discourse/discourse-translator) to translate [Discourse](https://discourse.org) topics with LibreTranslate. To install it simply modify `/var/discourse/containers/app.yml`:
```
```yaml
## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
@ -219,54 +391,136 @@ hooks:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/LibreTranslate/discourse-translator
- git clone https://github.com/discourse/discourse-translator
...
```
Then issue `./launcher rebuild app`. From the Discourse's admin panel then select "LibreTranslate" as a translation provider and set the relevant endpoint configurations.
See it in action on this [page](https://community.libretranslate.com/t/have-you-considered-adding-the-libretranslate-discourse-translator-multilingual-to-this-forum/766).
## Mobile Apps
- [LibreTranslater](https://gitlab.com/BeowuIf/libretranslater) is an Android app available on the Play Store (https://play.google.com/store/apps/details?id=de.beowulf.libretranslater) that uses the LibreTranslate API.
- [LibreTranslator](https://codeberg.org/BeoCode/LibreTranslator) is an Android app [available on the Play Store](https://play.google.com/store/apps/details?id=de.beowulf.libretranslater) and [in the F-Droid store](https://f-droid.org/packages/de.beowulf.libretranslater/) that uses the LibreTranslate API.
- [LiTranslate](https://github.com/viktorkalyniuk/LiTranslate-iOS) is an iOS app [available on the App Store](https://apps.apple.com/us/app/litranslate/id1644385339) that uses the LibreTranslate API.
## Web browser
- [minbrowser](https://minbrowser.org/) is a web browser with [integrated LibreTranslate support](https://github.com/argosopentech/argos-translate/discussions/158#discussioncomment-1141551).
- A LibreTranslate Firefox addon is [currently a work in progress](https://github.com/LibreTranslate/LibreTranslate/issues/55).
## Mirrors
This is a list of online resources that serve the LibreTranslate API. 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|Contact|Cost
--- | --- | --- | ---
[libretranslate.com](https://libretranslate.com)|:heavy_check_mark:|[UAV4GEO](https://uav4geo.com/contact)| [$9 / month](https://buy.stripe.com/28obLvdgGcIE5AQfYY), 80 requests / minute limit
[libretranslate.de](https://libretranslate.de/)|-|-
[translate.mentality.rip](https://translate.mentality.rip)|-|-
[translate.astian.org](https://translate.astian.org/)|-|-
[translate.argosopentech.com](https://translate.argosopentech.com/)|-|-
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/) ]
[translate.terraprint.co](https://translate.terraprint.co/)|-
[trans.zillyhuhn.com](https://trans.zillyhuhn.com/)|-
[libretranslate.eownerdead.dedyn.io](https://libretranslate.eownerdead.dedyn.io)|-
[translate.lotigara.ru](https://translate.lotigara.ru)|-
## TOR/i2p Mirrors
URL |
--- |
[lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion/)|
[lt.vern.i2p](http://vernf45n7mxwqnp5riaax7p67pwcl7wcefdcnqqvim7ckdx4264a.b32.i2p/)|
## Adding 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))
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)
## Localization
The LibreTranslate Web UI is available in all the languages for which LibreTranslate can translate to. It can also (roughly) [translate itself!](https://github.com/LibreTranslate/LibreTranslate/blob/main/scripts/update_locales.py) Some languages might not appear in the UI since they haven't been reviewed by a human yet. You can enable all languages by turning on `--debug` mode.
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.
- Once all strings have been reviewed/edited, open a pull request and change `libretranslate/locales/{code}/meta.json`:
```json
{
"name": "<Language>",
"reviewed": true <-- Change this from false to true
}
```
### UI Languages
Language | Reviewed | Weblate Link
-------- | -------- | ------------
Arabic | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ar/)
Azerbaijani | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/az/)
Chinese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/zh/)
Chinese (Traditional) | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/zh_Hant/)
Czech | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/cs/)
Danish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/da/)
Dutch | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/nl/)
English | :heavy_check_mark: | [Edit](https://hosted.weblate.org/projects/libretranslate/app/)
Esperanto | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/eo/)
Finnish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fi/)
French | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fr/)
German | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/de/)
Greek | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/el/)
Hebrew | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/he/)
Hindi | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/hi/)
Hungarian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/hu/)
Indonesian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/id/)
Irish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ga/)
Italian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/it/)
Japanese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ja/)
Kabyle | | [Edit](https://hosted.weblate.org/projects/libretranslate/app/kab/)
Korean | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ko/)
Occitan | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/oc/)
Persian | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/fa/)
Polish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/pl/)
Portuguese | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/pt/)
Russian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/ru/)
Slovak | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/sk/)
Spanish | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/es/)
Swedish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/sv/)
Turkish | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/tr/)
Ukranian | :heavy_check_mark: | [Edit](https://hosted.weblate.org/translate/libretranslate/app/uk/)
Vietnamese | | [Edit](https://hosted.weblate.org/translate/libretranslate/app/vi/)
## Roadmap
Help us by opening a pull request!
- [x] A docker image (thanks [@vemonet](https://github.com/vemonet) !)
- [x] Auto-detect input language (thanks [@vemonet](https://github.com/vemonet) !)
- [X] User authentication / tokens
- [ ] Language bindings for every computer language
- [ ] [Improved translations](https://github.com/argosopentech/argos-parallel-corpus)
- [ ] [Improved translations](https://community.libretranslate.com/t/the-best-way-to-train-models/172)
Any other idea is welcome also.
## FAQ
### Can I use your API server at libretranslate.com for my application in production?
The API on libretranslate.com should be used for testing, personal or infrequent use. If you're going to run an application in production, please [get in touch](https://uav4geo.com/contact) to get an API key or discuss other options.
In short, yes, [but only if you buy an API key](https://portal.libretranslate.com). You can always run LibreTranslate for free on your own server of course.
### Can I use this behind a reverse proxy, like Apache2?
### Some translations on libretranslate.com are different than the self-hosted ones. Why?
Yes, here is an example Apache2 config that redirects a subdomain (with HTTPS certificate) to LibreTranslate running on a docker at localhost.
```
By default language models are loaded from the [argos-index](https://github.com/argosopentech/argospm-index). Sometimes we deploy models on libretranslate.com that haven't been added to the argos-index yet, such as those converted from OPUS ([thread](https://community.libretranslate.com/t/opus-mt-language-models-port-thread/757))
### Where are the language models saved?
In `$HOME/.local/share/argos-translate/packages`. On Windows that's `C:\Users\youruser\.local\share\argos-translate\packages`.
### Can I use LibreTranslate behind a reverse proxy, like Apache2 or Caddy?
Yes, here are config examples for Apache2 and Caddy that redirect a subdomain (with HTTPS certificate) to LibreTranslate running on a docker at localhost.
```bash
sudo docker run -ti --rm -p 127.0.0.1:5000:5000 libretranslate/libretranslate
```
You can remove `127.0.0.1` on the above command if you want to be able to access it from `domain.tld:5000`, in addition to `subdomain.domain.tld` (this can be helpful to determine if there is an issue with Apache2 or the docker container).
Add `--restart unless-stopped` if you want this docker to start on boot, unless manually stopped.
@ -296,6 +550,7 @@ Remove `#` on the ErrorLog and CustomLog lines to log requests.
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ProxyPreserveHost On
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/[YOUR_DOMAIN]/fullchain.pem
@ -312,12 +567,152 @@ Add this to an existing site config, or a new file in `/etc/apache2/sites-availa
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>
<summary>Caddy config</summary>
<br>
Replace [YOUR_DOMAIN] with your full domain; for example, `translate.domain.tld` or `libretranslate.domain.tld`.
```Caddyfile
#Libretranslate
[YOUR_DOMAIN] {
reverse_proxy localhost:5000
}
```
Add this to an existing Caddyfile or save it as `Caddyfile` in any directory and run `sudo caddy reload` in that same directory.
</details>
<details>
<summary>NGINX config</summary>
<br>
Replace [YOUR_DOMAIN] with your full domain; for example, `translate.domain.tld` or `libretranslate.domain.tld`.
Remove `#` on the `access_log` and `error_log` lines to disable logging.
```NginxConf
server {
listen 80;
server_name [YOUR_DOMAIN];
return 301 https://$server_name$request_uri;
}
server {
listen 443 http2 ssl;
server_name [YOUR_DOMAIN];
#access_log off;
#error_log off;
# SSL Section
ssl_certificate /etc/letsencrypt/live/[YOUR_DOMAIN]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[YOUR_DOMAIN]/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
# Using the recommended cipher suite from: https://wiki.mozilla.org/Security/Server_Side_TLS
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_session_timeout 10m;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
# Specifies a curve for ECDHE ciphers.
ssl_ecdh_curve prime256v1;
# Server should determine the ciphers, not the client
ssl_prefer_server_ciphers on;
# Header section
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Referrer-Policy "strict-origin" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Robots-Tag "none" always;
add_header Feature-Policy "microphone 'none'; camera 'none'; geolocation 'none';" always;
# Newer header but not everywhere supported
add_header Permissions-Policy "microphone=(), camera=(), geolocation=()" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Do not send nginx server header
server_tokens off;
# GZIP Section
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/xml text/javascript font/ttf font/eot font/otf application/x-javascript application/atom+xml application/javascript application/json application/manifest+json application/rss+xml application/x-web-app-manifest+json application/xhtml+xml application/xml image/svg+xml image/x-icon text/css text/plain;
location / {
proxy_pass http://127.0.0.1:5000/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
}
```
Add this to an existing NGINX config or save it as `libretranslate` in the `/etc/nginx/site-enabled` directory and run `sudo nginx -s reload`.
</details>
### Can I do batch translations?
Yes, pass an array of strings instead of a string to the `q` field:
```javascript
const res = await fetch("https://libretranslate.com/translate", {
method: "POST",
body: JSON.stringify({
q: ["Hello", "world"],
source: "en",
target: "es"
}),
headers: { "Content-Type": "application/json" }
});
console.log(await res.json());
// {
// "translatedText": [
// "Hola",
// "mundo"
// ]
// }
```
## Contributing
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.
* 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.
## Credits
This work is largely possible thanks to [Argos Translate][argo], which powers the translation engine.
This work is largely possible thanks to [Argos Translate](https://github.com/argosopentech/argos-translate), which powers the translation engine.
## License
[GNU Affero General Public License v3](https://www.gnu.org/licenses/agpl-3.0.en.html)
[argo]: https://github.com/argosopentech/argos-translate
## Trademark
See [Trademark Guidelines](https://github.com/LibreTranslate/LibreTranslate/blob/main/TRADEMARK.md)

86
TRADEMARK.md Normal file
View file

@ -0,0 +1,86 @@
# LibreTranslate Trademark Guidelines
LibreTranslate is an open source organization. Because we make our code available to download and modify, proper use of our trademarks is essential to inform users whether or not LibreTranslate stands behind a product or service. When using LibreTranslate trademarks (including some product names that are part of our organization) you must comply with these LibreTranslate Trademark Guidelines.
Some of our trademark names include:
* LibreTranslate
Some of our trademark logos include:
![LibreTranslate](https://avatars.githubusercontent.com/u/77352747?s=200&v=4)
However, this is not a complete list of our names, logos, and brand features, all of which are subject to these guidelines.
If you want to report misuse of an LibreTranslate trademark, please contact us via https://uav4geo.com/contact
## When do I need specific permission to use an LibreTranslate trademark?
Noting that LibreTranslate software combined with, or integrated into, any other software program, including but not limited to automation software for offering LibreTranslate as a cloud service or orchestration software for offering LibreTranslate in containers is considered "modified" LibreTranslate software, you may do the following without receiving specific permission from LibreTranslate (or its affiliates):
* Use LibreTranslate wordmarks and/or logos in unmodified versions of LibreTranslate programs, products, services and technologies.
* Use LibreTranslate wordmarks in text to truthfully refer to and/or link to unmodified LibreTranslate programs, products, services and technologies.
* Use LibreTranslate logos in visuals to truthfully refer to and/or to link to the applicable programs, products, services and technologies hosted on LibreTranslate servers.
* Use LibreTranslate wordmarks to explain that your software is based on LibreTranslate's open source code, or is compatible with LibreTranslate's software.
* Describe a social media account, page, or community in accordance with the [Social Media Guidelines](#social-media-guidelines).
All other uses of an LibreTranslate trademark require our prior written permission. This includes any use of a LibreTranslate trademark in a domain name. Contact us at https://uav4geo.com/contact for more information.
## When allowed, how should I use an LibreTranslate trademark?
### General Guidelines
#### Do:
* Use the LibreTranslate trademark exactly as shown in the list above.
* Use LibreTranslate wordmarks only as an adjective, never as a noun or verb. Do not use them in plural or possessive forms. Instead, use the generic term for the LibreTranslate product or service following the trademark, for example: LibreTranslate translation software.
#### Don't:
* Don't use LibreTranslate trademarks in the name of your business, product, service, app, domain name, publication, or other offering.
* Don't use marks, logos, company names, slogans, domain names, or designs that are confusingly similar to LibreTranslate trademarks.
* Don't use LibreTranslate trademarks in a way that incorrectly implies affiliation with, or sponsorship, endorsement, or approval by LibreTranslate of your products or services.
* Don't display LibreTranslate trademarks more prominently than your product, service, or company name.
* Don't use LibreTranslate trademarks on merchandise for sale (e.g., selling t-shirts, mugs, etc.)
* Don't use LibreTranslate trademarks for any other form of commercial use (e.g. offering technical support services), unless such use is limited to a truthful and descriptive reference (e.g. Independent technical support for LibreTranslate's software).
* Don't modify LibreTranslate's trademarks, abbreviate them, or combine them with any other symbols, words, or images, or incorporate them into a tagline or slogan.
### Social Media Guidelines
In addition to the General Guidelines above, the name and handle of your social media account and any and all pages cannot begin with an LibreTranslate trademark. In addition, LibreTranslate logos cannot be used in a way that might suggest affiliation with LibreTranslate, including, but not limited to, the account, profile, or header images. The only exception to these requirements is if you've received prior permission from LibreTranslate.
For example, you cannot name your account, page, or community "LibreTranslate Representatives" or "LibreTranslate Software". However, it would be acceptable to name your account, page, or community "Fans of LibreTranslate" or "Information about LibreTranslate Software" as long as you do not use the LibreTranslate trademarks or LibreTranslate logos or otherwise suggest any affiliation with LibreTranslate.
### Open Source Project Guidelines
The specific license for each of LibreTranslate's software products and code says what you can and cannot do with the code itself but does not give permission to use LibreTranslate's trademarks. If you choose to build on or modify LibreTranslate's open source code for your own project,
#### You Must:
* Follow the terms of the Open Source License(s) for LibreTranslate software products and code.
* Choose branding, logos, and trademarks that denotes your own unique identity so as to clearly signal to users that there is no affiliation with or endorsement by LibreTranslate.
* Follow the General Guidelines, above.
#### You Must NOT:
* Use any LibreTranslate trademark in connection with the user-facing name or branding of your project.
* Use any LibreTranslate trademark or any part of any LibreTranslate trademark to incorrectly suggest or give the impression your software is actually published by, affiliated with, or endorsed by LibreTranslate.
For example, please do not name your project, [Something]-LibreTranslate, or LibreTranslate-[Something]
#### You May:
* State in words (not using logos or images) that your product "works with" or "is compatible" with certain LibreTranslate software products, if that is true.
* State in words (not using logos or images) that your project is based on LibreTranslate open source technology, if that is true, as long as you also include a statement that your project is not officially associated with LibreTranslate or its products.
For instance, you may state that your project:
"is proudly built from LibreTranslate's open source software"
as long as you also include the statement equally prominently:
"[Brand Name] and [Product Name] are not officially associated with LibreTranslate or its products."
### LibreTranslate Community Guidelines
Various permissions to use LibreTranslate Trademarks have been provided to various members of the LibreTranslate Community, and these LibreTranslate Trademark Guidelines do not alter any such previously granted permissions.

1
VERSION Normal file
View file

@ -0,0 +1 @@
1.6.1

View file

@ -1,13 +0,0 @@
import os
# override polyglot path
import polyglot
from appdirs import user_data_dir
polyglot.polyglot_path = os.path.join(
user_data_dir(appname="LibreTranslate", appauthor="uav4geo"), "polyglot_data"
)
from .main import main
from .manage import manage

View file

@ -1,63 +0,0 @@
import sqlite3
import uuid
from expiringdict import ExpiringDict
DEFAULT_DB_PATH = "api_keys.db"
class Database:
def __init__(self, db_path=DEFAULT_DB_PATH, max_cache_len=1000, max_cache_age=30):
self.db_path = db_path
self.cache = ExpiringDict(max_len=max_cache_len, max_age_seconds=max_cache_age)
# Make sure to do data synchronization on writes!
self.c = sqlite3.connect(db_path, check_same_thread=False)
self.c.execute(
"""CREATE TABLE IF NOT EXISTS api_keys (
"api_key" TEXT NOT NULL,
"req_limit" INTEGER NOT NULL,
PRIMARY KEY("api_key")
);"""
)
def lookup(self, api_key):
req_limit = self.cache.get(api_key)
if req_limit is None:
# DB Lookup
stmt = self.c.execute(
"SELECT req_limit FROM api_keys WHERE api_key = ?", (api_key,)
)
row = stmt.fetchone()
if row is not None:
self.cache[api_key] = row[0]
req_limit = row[0]
else:
self.cache[api_key] = False
req_limit = False
if isinstance(req_limit, bool):
req_limit = None
return req_limit
def add(self, req_limit, api_key="auto"):
if api_key == "auto":
api_key = str(uuid.uuid4())
self.remove(api_key)
self.c.execute(
"INSERT INTO api_keys (api_key, req_limit) VALUES (?, ?)",
(api_key, req_limit),
)
self.c.commit()
return (api_key, req_limit)
def remove(self, api_key):
self.c.execute("DELETE FROM api_keys WHERE api_key = ?", (api_key,))
self.c.commit()
return api_key
def all(self):
row = self.c.execute("SELECT api_key, req_limit FROM api_keys")
return row.fetchall()

View file

@ -1,624 +0,0 @@
import os
from functools import wraps
from flask import Flask, abort, jsonify, render_template, request
from flask_swagger import swagger
from flask_swagger_ui import get_swaggerui_blueprint
from app import flood
from app.language import detect_languages, transliterate
from .api_keys import Database
from translatehtml import translate_html
def get_json_dict(request):
d = request.get_json()
if not isinstance(d, dict):
abort(400, description="Invalid JSON format")
return d
def get_remote_address():
if request.headers.getlist("X-Forwarded-For"):
ip = request.headers.getlist("X-Forwarded-For")[0].split(",")[0]
else:
ip = request.remote_addr or "127.0.0.1"
return ip
def get_req_limits(default_limit, api_keys_db, multiplier = 1):
req_limit = default_limit
if api_keys_db:
if request.is_json:
json = get_json_dict(request)
api_key = json.get("api_key")
else:
api_key = request.values.get("api_key")
if api_key:
db_req_limit = api_keys_db.lookup(api_key)
if db_req_limit is not None:
req_limit = db_req_limit * multiplier
return req_limit
def get_routes_limits(default_req_limit, daily_req_limit, api_keys_db):
if default_req_limit == -1:
# TODO: better way?
default_req_limit = 9999999999999
def minute_limits():
return "%s per minute" % get_req_limits(default_req_limit, api_keys_db)
def daily_limits():
return "%s per day" % get_req_limits(daily_req_limit, api_keys_db, 1440)
res = [minute_limits]
if daily_req_limit > 0:
res.append(daily_limits)
return res
def create_app(args):
from app.init import boot
boot(args.load_only)
from app.language import languages
app = Flask(__name__)
if args.debug:
app.config["TEMPLATES_AUTO_RELOAD"] = True
# Map userdefined frontend languages to argos language object.
if args.frontend_language_source == "auto":
frontend_argos_language_source = type(
"obj", (object,), {"code": "auto", "name": "Auto Detect"}
)
else:
frontend_argos_language_source = next(
iter([l for l in languages if l.code == args.frontend_language_source]),
None,
)
frontend_argos_language_target = next(
iter([l for l in languages if l.code == args.frontend_language_target]), None
)
# Raise AttributeError to prevent app startup if user input is not valid.
if frontend_argos_language_source is None:
raise AttributeError(
f"{args.frontend_language_source} as frontend source language is not supported."
)
if frontend_argos_language_target is None:
raise AttributeError(
f"{args.frontend_language_target} as frontend target language is not supported."
)
api_keys_db = None
if args.req_limit > 0 or args.api_keys or args.daily_req_limit > 0:
api_keys_db = Database() if args.api_keys else None
from flask_limiter import Limiter
limiter = Limiter(
app,
key_func=get_remote_address,
default_limits=get_routes_limits(
args.req_limit, args.daily_req_limit, api_keys_db
),
)
else:
from .no_limiter import Limiter
limiter = Limiter()
if args.req_flood_threshold > 0:
flood.setup(args.req_flood_threshold)
def access_check(f):
@wraps(f)
def func(*a, **kw):
if flood.is_banned(get_remote_address()):
abort(403, description="Too many request limits violations")
if args.api_keys and args.require_api_key_origin:
if request.is_json:
json = get_json_dict(request)
ak = json.get("api_key")
else:
ak = request.values.get("api_key")
if (
api_keys_db.lookup(ak) is None and request.headers.get("Origin") != args.require_api_key_origin
):
abort(
403,
description="Please contact the server operator to obtain an API key",
)
return f(*a, **kw)
return func
@app.errorhandler(400)
def invalid_api(e):
return jsonify({"error": str(e.description)}), 400
@app.errorhandler(500)
def server_error(e):
return jsonify({"error": str(e.description)}), 500
@app.errorhandler(429)
def slow_down_error(e):
flood.report(get_remote_address())
return jsonify({"error": "Slowdown: " + str(e.description)}), 429
@app.errorhandler(403)
def denied(e):
return jsonify({"error": str(e.description)}), 403
@app.route("/")
@limiter.exempt
def index():
return render_template(
"index.html",
gaId=args.ga_id,
frontendTimeout=args.frontend_timeout,
api_keys=args.api_keys,
web_version=os.environ.get("LT_WEB") is not None,
)
@app.route("/javascript-licenses", methods=["GET"])
@limiter.exempt
def javascript_licenses():
return render_template("javascript-licenses.html")
@app.route("/languages", methods=["GET", "POST"])
@limiter.exempt
def langs():
"""
Retrieve list of supported languages
---
tags:
- translate
responses:
200:
description: List of languages
schema:
id: languages
type: array
items:
type: object
properties:
code:
type: string
description: Language code
name:
type: string
description: Human-readable language name (in English)
429:
description: Slow down
schema:
id: error-slow-down
type: object
properties:
error:
type: string
description: Reason for slow down
"""
return jsonify([{"code": l.code, "name": l.name} for l in languages])
# Add cors
@app.after_request
def after_request(response):
response.headers.add("Access-Control-Allow-Origin", "*")
response.headers.add(
"Access-Control-Allow-Headers", "Authorization, Content-Type"
)
response.headers.add("Access-Control-Expose-Headers", "Authorization")
response.headers.add("Access-Control-Allow-Methods", "GET, POST")
response.headers.add("Access-Control-Allow-Credentials", "true")
response.headers.add("Access-Control-Max-Age", 60 * 60 * 24 * 20)
return response
@app.route("/translate", methods=["POST"])
@access_check
def translate():
"""
Translate text from a language to another
---
tags:
- translate
parameters:
- in: formData
name: q
schema:
oneOf:
- type: string
example: Hello world!
- type: array
example: ['Hello world!']
required: true
description: Text(s) to translate
- in: formData
name: source
schema:
type: string
example: en
required: true
description: Source language code
- in: formData
name: target
schema:
type: string
example: es
required: true
description: Target language code
- in: formData
name: format
schema:
type: string
enum: [text, html]
default: text
example: text
required: false
description: >
Format of source text:
* `text` - Plain text
* `html` - HTML markup
- in: formData
name: api_key
schema:
type: string
example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
required: false
description: API key
responses:
200:
description: Translated text
schema:
id: translate
type: object
properties:
translatedText:
oneOf:
- type: string
- type: array
description: Translated text(s)
400:
description: Invalid request
schema:
id: error-response
type: object
properties:
error:
type: string
description: Error message
500:
description: Translation error
schema:
id: error-response
type: object
properties:
error:
type: string
description: Error message
429:
description: Slow down
schema:
id: error-slow-down
type: object
properties:
error:
type: string
description: Reason for slow down
403:
description: Banned
schema:
id: error-response
type: object
properties:
error:
type: string
description: Error message
"""
if request.is_json:
json = get_json_dict(request)
q = json.get("q")
source_lang = json.get("source")
target_lang = json.get("target")
text_format = json.get("format")
else:
q = request.values.get("q")
source_lang = request.values.get("source")
target_lang = request.values.get("target")
text_format = request.values.get("format")
if not q:
abort(400, description="Invalid request: missing q parameter")
if not source_lang:
abort(400, description="Invalid request: missing source parameter")
if not target_lang:
abort(400, description="Invalid request: missing target parameter")
batch = isinstance(q, list)
if batch and args.batch_limit != -1:
batch_size = len(q)
if args.batch_limit < batch_size:
abort(
400,
description="Invalid request: Request (%d) exceeds text limit (%d)"
% (batch_size, args.batch_limit),
)
if args.char_limit != -1:
if batch:
chars = sum([len(text) for text in q])
else:
chars = len(q)
if args.char_limit < chars:
abort(
400,
description="Invalid request: Request (%d) exceeds character limit (%d)"
% (chars, args.char_limit),
)
if source_lang == "auto":
source_langs = []
if batch:
auto_detect_texts = q
else:
auto_detect_texts = [q]
overall_candidates = detect_languages(q)
for text_to_check in auto_detect_texts:
if len(text_to_check) > 40:
candidate_langs = detect_languages(text_to_check)
else:
# Unable to accurately detect languages for short texts
candidate_langs = overall_candidates
source_langs.append(candidate_langs[0]["language"])
if args.debug:
print(text_to_check, candidate_langs)
print("Auto detected: %s" % candidate_langs[0]["language"])
else:
if batch:
source_langs = [source_lang for text in q]
else:
source_langs = [source_lang]
src_langs = [next(iter([l for l in languages if l.code == source_lang]), None) for source_lang in source_langs]
for idx, lang in enumerate(src_langs):
if lang is None:
abort(400, description="%s is not supported" % source_langs[idx])
tgt_lang = next(iter([l for l in languages if l.code == target_lang]), None)
if tgt_lang is None:
abort(400, description="%s is not supported" % target_lang)
if not text_format:
text_format = "text"
if text_format not in ["text", "html"]:
abort(400, description="%s format is not supported" % text_format)
try:
if batch:
results = []
for idx, text in enumerate(q):
translator = src_langs[idx].get_translation(tgt_lang)
if text_format == "html":
translated_text = str(translate_html(translator, transliterate(text, target_lang=source_langs[idx])))
else:
translated_text = translator.translate(transliterate(text, target_lang=source_langs[idx]))
results.append(translated_text)
return jsonify(
{
"translatedText": results
}
)
else:
translator = src_langs[0].get_translation(tgt_lang)
if text_format == "html":
translated_text = str(translate_html(translator, transliterate(q, target_lang=source_langs[0])))
else:
translated_text = translator.translate(transliterate(q, target_lang=source_langs[0]))
return jsonify(
{
"translatedText": translated_text
}
)
except Exception as e:
abort(500, description="Cannot translate text: %s" % str(e))
@app.route("/detect", methods=["POST"])
@access_check
def detect():
"""
Detect the language of a single text
---
tags:
- translate
parameters:
- in: formData
name: q
schema:
type: string
example: Hello world!
required: true
description: Text to detect
- in: formData
name: api_key
schema:
type: string
example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
required: false
description: API key
responses:
200:
description: Detections
schema:
id: detections
type: array
items:
type: object
properties:
confidence:
type: number
format: float
minimum: 0
maximum: 1
description: Confidence value
example: 0.6
language:
type: string
description: Language code
example: en
400:
description: Invalid request
schema:
id: error-response
type: object
properties:
error:
type: string
description: Error message
500:
description: Detection error
schema:
id: error-response
type: object
properties:
error:
type: string
description: Error message
429:
description: Slow down
schema:
id: error-slow-down
type: object
properties:
error:
type: string
description: Reason for slow down
403:
description: Banned
schema:
id: error-response
type: object
properties:
error:
type: string
description: Error message
"""
if flood.is_banned(get_remote_address()):
abort(403, description="Too many request limits violations")
if request.is_json:
json = get_json_dict(request)
q = json.get("q")
else:
q = request.values.get("q")
if not q:
abort(400, description="Invalid request: missing q parameter")
return jsonify(detect_languages(q))
@app.route("/frontend/settings")
@limiter.exempt
def frontend_settings():
"""
Retrieve frontend specific settings
---
tags:
- frontend
responses:
200:
description: frontend settings
schema:
id: frontend-settings
type: object
properties:
charLimit:
type: integer
description: Character input limit for this language (-1 indicates no limit)
frontendTimeout:
type: integer
description: Frontend translation timeout
language:
type: object
properties:
source:
type: object
properties:
code:
type: string
description: Language code
name:
type: string
description: Human-readable language name (in English)
target:
type: object
properties:
code:
type: string
description: Language code
name:
type: string
description: Human-readable language name (in English)
"""
return jsonify(
{
"charLimit": args.char_limit,
"frontendTimeout": args.frontend_timeout,
"language": {
"source": {
"code": frontend_argos_language_source.code,
"name": frontend_argos_language_source.name,
},
"target": {
"code": frontend_argos_language_target.code,
"name": frontend_argos_language_target.name,
},
},
}
)
swag = swagger(app)
swag["info"]["version"] = "1.2"
swag["info"]["title"] = "LibreTranslate"
@app.route("/spec")
@limiter.exempt
def spec():
return jsonify(swag)
SWAGGER_URL = "/docs" # URL for exposing Swagger UI (without trailing '/')
API_URL = "/spec"
# Call factory function to create our blueprint
swaggerui_blueprint = get_swaggerui_blueprint(SWAGGER_URL, API_URL)
app.register_blueprint(swaggerui_blueprint)
return app

View file

@ -1,38 +0,0 @@
import atexit
from apscheduler.schedulers.background import BackgroundScheduler
banned = {}
active = False
threshold = -1
def clear_banned():
global banned
banned = {}
def setup(violations_threshold=100):
global active
global threshold
active = True
threshold = violations_threshold
scheduler = BackgroundScheduler()
scheduler.add_job(func=clear_banned, trigger="interval", weeks=4)
scheduler.start()
# Shut down the scheduler when exiting the app
atexit.register(lambda: scheduler.shutdown())
def report(request_ip):
if active:
banned[request_ip] = banned.get(request_ip, 0)
banned[request_ip] += 1
def is_banned(request_ip):
# More than X offences?
return active and banned.get(request_ip, 0) >= threshold

View file

@ -1,94 +0,0 @@
from pathlib import Path
import polyglot
from argostranslate import package, translate
import app.language
def boot(load_only=None):
try:
check_and_install_models(load_only_lang_codes=load_only)
check_and_install_transliteration()
except Exception as e:
print("Cannot update models (normal if you're offline): %s" % str(e))
def check_and_install_models(force=False, load_only_lang_codes=None):
if len(package.get_installed_packages()) < 2 or force:
# Update package definitions from remote
print("Updating language models")
package.update_package_index()
# Load available packages from local package index
available_packages = package.load_available_packages()
print("Found %s models" % len(available_packages))
if load_only_lang_codes is not None:
# load_only_lang_codes: List[str] (codes)
# Ensure the user does not use any unavailable language code.
unavailable_lang_codes = set(load_only_lang_codes)
for pack in available_packages:
unavailable_lang_codes -= {pack.from_code, pack.to_code}
if unavailable_lang_codes:
raise ValueError(
"Unavailable language codes: %s."
% ",".join(sorted(unavailable_lang_codes))
)
# Keep only the packages that have both from_code and to_code in our list.
available_packages = [
pack
for pack in available_packages
if pack.from_code in load_only_lang_codes and pack.to_code in load_only_lang_codes
]
if not available_packages:
raise ValueError("no available package")
print("Keep %s models" % len(available_packages))
# Download and install all available packages
for available_package in available_packages:
print(
"Downloading %s (%s) ..."
% (available_package, available_package.package_version)
)
download_path = available_package.download()
package.install_from_path(download_path)
# reload installed languages
app.language.languages = translate.load_installed_languages()
print(
"Loaded support for %s languages (%s models total)!"
% (len(translate.load_installed_languages()), len(available_packages))
)
def check_and_install_transliteration(force=False):
# 'en' is not a supported transliteration language
transliteration_languages = [
l.code for l in app.language.languages if l.code != "en"
]
# check installed
install_needed = []
if not force:
t_packages_path = Path(polyglot.polyglot_path) / "transliteration2"
for lang in transliteration_languages:
if not (
t_packages_path / lang / f"transliteration.{lang}.tar.bz2"
).exists():
install_needed.append(lang)
else:
install_needed = transliteration_languages
# install the needed transliteration packages
if install_needed:
print(
f"Installing transliteration models for the following languages: {', '.join(install_needed)}"
)
from polyglot.downloader import Downloader
downloader = Downloader()
for lang in install_needed:
downloader.download(f"transliteration2.{lang}")

View file

@ -1,119 +0,0 @@
import string
from argostranslate import translate
from polyglot.detect.base import Detector, UnknownLanguage
from polyglot.transliteration.base import Transliterator
languages = translate.load_installed_languages()
__lang_codes = [l.code for l in languages]
def detect_languages(text):
# detect batch processing
if isinstance(text, list):
is_batch = True
else:
is_batch = False
text = [text]
# get the candidates
candidates = []
for t in text:
try:
d = Detector(t).languages
for i in range(len(d)):
d[i].text_length = len(t)
candidates.extend(d)
except UnknownLanguage:
pass
# total read bytes of the provided text
text_length_total = sum(c.text_length for c in candidates)
# only use candidates that are supported by argostranslate
candidate_langs = list(
filter(lambda l: l.text_length != 0 and l.code in __lang_codes, candidates)
)
# this happens if no language could be detected
if not candidate_langs:
# use language "en" by default but with zero confidence
return [{"confidence": 0.0, "language": "en"}]
# for multiple occurrences of the same language (can happen on batch detection)
# calculate the average confidence for each language
if is_batch:
temp_average_list = []
for lang_code in __lang_codes:
# get all candidates for a specific language
lc = list(filter(lambda l: l.code == lang_code, candidate_langs))
if len(lc) > 1:
# if more than one is present, calculate the average confidence
lang = lc[0]
lang.confidence = sum(l.confidence for l in lc) / len(lc)
lang.text_length = sum(l.text_length for l in lc)
temp_average_list.append(lang)
elif lc:
# otherwise just add it to the temporary list
temp_average_list.append(lc[0])
if temp_average_list:
# replace the list
candidate_langs = temp_average_list
# sort the candidates descending based on the detected confidence
candidate_langs.sort(
key=lambda l: (l.confidence * l.text_length) / text_length_total, reverse=True
)
return [{"confidence": l.confidence, "language": l.code} for l in candidate_langs]
def __transliterate_line(transliterator, line_text):
new_text = []
# transliteration is done word by word
for orig_word in line_text.split(" "):
# remove any punctuation on the right side
r_word = orig_word.rstrip(string.punctuation)
r_diff = set(char for char in orig_word) - set(char for char in r_word)
# and on the left side
l_word = orig_word.lstrip(string.punctuation)
l_diff = set(char for char in orig_word) - set(char for char in l_word)
# the actual transliteration of the word
t_word = transliterator.transliterate(orig_word.strip(string.punctuation))
# if transliteration fails, default back to the original word
if not t_word:
t_word = orig_word
else:
# add back any stripped punctuation
if r_diff:
t_word = t_word + "".join(r_diff)
if l_diff:
t_word = "".join(l_diff) + t_word
new_text.append(t_word)
# rebuild the text
return " ".join(new_text)
def transliterate(text, target_lang="en"):
# initialize the transliterator from polyglot
transliterator = Transliterator(target_lang=target_lang)
# check for multiline string
if "\n" in text:
lines = []
# process each line separate
for line in text.split("\n"):
lines.append(__transliterate_line(transliterator, line))
# rejoin multiline string
return "\n".join(lines)
else:
return __transliterate_line(transliterator, text)

View file

@ -1,126 +0,0 @@
import argparse
import sys
import operator
from app.app import create_app
from app.default_values import DEFAULT_ARGUMENTS as DEFARGS
def main():
parser = argparse.ArgumentParser(
description="LibreTranslate - Free and Open Source Translation API"
)
parser.add_argument(
"--host", type=str, help="Hostname (%(default)s)", default=DEFARGS['HOST']
)
parser.add_argument("--port", type=int, help="Port (%(default)s)", default=DEFARGS['PORT'])
parser.add_argument(
"--char-limit",
default=DEFARGS['CHAR_LIMIT'],
type=int,
metavar="<number of characters>",
help="Set character limit (%(default)s)",
)
parser.add_argument(
"--req-limit",
default=DEFARGS['REQ_LIMIT'],
type=int,
metavar="<number>",
help="Set the default maximum number of requests per minute per client (%(default)s)",
)
parser.add_argument(
"--daily-req-limit",
default=DEFARGS['DAILY_REQ_LIMIT'],
type=int,
metavar="<number>",
help="Set the default maximum number of requests per day per client, in addition to req-limit. (%(default)s)",
)
parser.add_argument(
"--req-flood-threshold",
default=DEFARGS['REQ_FLOOD_THRESHOLD'],
type=int,
metavar="<number>",
help="Set the maximum number of request limit offences per 4 weeks that a client can exceed before being banned. (%(default)s)",
)
parser.add_argument(
"--batch-limit",
default=DEFARGS['BATCH_LIMIT'],
type=int,
metavar="<number of texts>",
help="Set maximum number of texts to translate in a batch request (%(default)s)",
)
parser.add_argument(
"--ga-id",
type=str,
default=DEFARGS['GA_ID'],
metavar="<GA ID>",
help="Enable Google Analytics on the API client page by providing an ID (%(default)s)",
)
parser.add_argument(
"--debug", default=DEFARGS['DEBUG'], action="store_true", help="Enable debug environment"
)
parser.add_argument(
"--ssl", default=DEFARGS['SSL'], action="store_true", help="Whether to enable SSL"
)
parser.add_argument(
"--frontend-language-source",
type=str,
default=DEFARGS['FRONTEND_LANGUAGE_SOURCE'],
metavar="<language code>",
help="Set frontend default language - source (%(default)s)",
)
parser.add_argument(
"--frontend-language-target",
type=str,
default=DEFARGS['FRONTEND_LANGUAGE_TARGET'],
metavar="<language code>",
help="Set frontend default language - target (%(default)s)",
)
parser.add_argument(
"--frontend-timeout",
type=int,
default=DEFARGS['FRONTEND_TIMEOUT'],
metavar="<milliseconds>",
help="Set frontend translation timeout (%(default)s)",
)
parser.add_argument(
"--api-keys",
default=DEFARGS['API_KEYS'],
action="store_true",
help="Enable API keys database for per-user rate limits lookup",
)
parser.add_argument(
"--require-api-key-origin",
type=str,
default=DEFARGS['REQUIRE_API_KEY_ORIGIN'],
help="Require use of an API key for programmatic access to the API, unless the request origin matches this domain",
)
parser.add_argument(
"--load-only",
type=operator.methodcaller("split", ","),
default=DEFARGS['LOAD_ONLY'],
metavar="<comma-separated language codes>",
help="Set available languages (ar,de,en,es,fr,ga,hi,it,ja,ko,pt,ru,zh)",
)
args = parser.parse_args()
app = create_app(args)
if sys.argv[0] == '--wsgi':
return app
else:
if args.debug:
app.run(host=args.host, port=args.port)
else:
from waitress import serve
serve(
app,
host=args.host,
port=args.port,
url_scheme="https" if args.ssl else "http",
)
if __name__ == "__main__":
main()

View file

@ -1,202 +0,0 @@
/* Custom styles for LibreTranslate page */
html,
body,
select {
font-size: 16px;
font-family: Arial, Helvetica, sans-serif !important;
}
#app {
min-height: 80vh;
}
h3.header {
margin-bottom: 2.5rem;
}
.mb-0 {
margin-bottom: 0 !important;
}
.mt-0 {
margin-top: 0 !important;
}
.position-relative {
position: relative;
}
.language-select {
display: inline-flex;
align-items: center;
justify-content: flex-start;
}
.language-select select {
border: none;
width: auto;
cursor: pointer;
font-weight: 600;
text-decoration: underline;
-webkit-appearance: none;
appearance: none;
background-color: transparent;
padding: 0;
text-indent: 0.01px;
text-overflow: "";
margin: 0;
margin-left: 6px;
height: 2rem;
line-height: inherit;
outline: none;
position: relative;
}
@-moz-document url-prefix() {
.language-select select {
-moz-appearance: none;
text-indent: -2px;
margin-right: -8px;
}
}
.language-select:after {
content: "";
width: 0.5em;
height: 0.5em;
margin: 0 0 0.25rem -0.75rem;
border: solid black;
border-width: 0 2px 2px 0;
display: inline-block;
padding: 3px;
transform: rotate(45deg);
z-index: -1;
}
.btn-switch-language {
color: black;
margin-left: -1.5rem;
margin-right: 1rem;
}
.textarea-container {
margin-top: 0;
position: relative;
}
.btn-delete-text {
position: absolute;
right: 1.5rem;
top: 0.75rem;
border: 0;
background: none;
padding: 0;
cursor: pointer;
color: #777;
}
.btn-delete-text:focus,
.btn-copy-translated:focus {
background: none !important;
}
.characters-limit-container {
position: absolute;
right: 2rem;
bottom: 1rem;
color: #777;
pointer-events: none;
}
.btn-copy-translated {
position: absolute;
right: 2.75rem;
bottom: 1rem;
display: flex;
align-items: center;
color: #777;
font-size: 0.85rem;
background: none;
border: none;
cursor: pointer;
margin-right: -1.5rem;
}
.btn-copy-translated span {
padding-right: 0.5rem;
}
.btn-copy-translated .material-icons {
font-size: 1.35rem;
}
.progress {
background-color: #f3f3f3;
}
.progress.translate {
position: absolute;
}
.progress .indeterminate {
background-color: steelblue;
}
.textarea-container textarea {
font-size: 1.25rem;
resize: none;
border: 1px solid #ccc;
background: #f3f3f3;
padding: 1rem 2rem 1rem 1.5rem;
overflow-y: hidden;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.code {
font-size: 90%;
padding: 1rem 1.5rem;
border: 1px solid #ccc;
background: #fbfbfb;
overflow: auto;
font-family: monospace;
min-height: 280px;
width: 100%;
overflow: auto;
}
.page-footer .footer-copyright {
justify-content: center;
padding: 0.5rem 1rem;
}
#logo-container {
height: 100%;
}
.logo {
height: 32px;
}
@media (max-width: 760px) {
.language-select select {
text-align: center;
margin: auto;
padding: 0;
}
.language-select:after {
content: none;
}
.language-select span {
display: none;
}
}

File diff suppressed because one or more lines are too long

View file

@ -1,500 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LibreTranslate - Free and Open Source Machine Translation API</title>
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
<meta name="description" content="Free and Open Source Machine Translation API. 100% self-hosted, no limits, no ties to proprietary services. Run your own API server in just a few minutes.">
<meta name="keywords" content="translation,api">
<meta property="og:title" content="LibreTranslate - Free and Open Source Machine Translation API" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://libretranslate.com" />
<meta property="og:image" content="https://user-images.githubusercontent.com/1951843/102724116-32a6df00-42db-11eb-8cc0-129ab39cdfb5.png" />
<meta property="og:description" name="description" class="swiftype" content="Free and Open Source Machine Translation API. 100% self-hosted, no limits, no ties to proprietary services. Run your own API server in just a few minutes."/>
<script src="{{ url_for('static', filename='js/vue@2.js') }}"></script>
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="{{ url_for('static', filename='css/materialize.min.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/material-icons.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/prism.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}?t=2" />
{% if gaId %}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ gaId }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ gaId }}');
</script>
{% endif %}
</head>
<body>
<header>
<nav class="blue lighten-1" role="navigation">
<div class="nav-wrapper container">
<a id="logo-container" href="/" class="brand-logo">
<img src="{{ url_for('static', filename='icon.svg') }}" class="logo"> LibreTranslate
</a>
<ul class="right hide-on-med-and-down">
<li><a href="/docs">API Docs</a></li>
<li><a href="https://github.com/LibreTranslate/LibreTranslate" rel="noopener noreferrer">GitHub</a></li>
{% if api_keys %}
<li><a href="javascript:setApiKey()" title="Set API Key"><i class="material-icons">vpn_key</i></a></li>
{% endif %}
</ul>
<ul id="nav-mobile" class="sidenav">
<li><a href="/docs">API Docs</a></li>
<li><a href="https://github.com/LibreTranslate/LibreTranslate" rel="noopener noreferrer">GitHub</a></li>
{% if api_keys %}
<li><a href="javascript:setApiKey()" title="Set API Key"><i class="material-icons">vpn_key</i></a></li>
{% endif %}
</ul>
<a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>
</div>
</nav>
</header>
<main id="app">
<div class="section no-pad-bot center" v-if="loading">
<div class="container">
<div class="row">
<div class="preloader-wrapper active">
<div class="spinner-layer spinner-blue-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-else-if="error">
<div class="section no-pad-bot">
<div class="container">
<div class="row">
<div class="col s12 m7">
<div class="card horizontal">
<div class="card-stacked">
<div class="card-content">
<i class="material-icons">warning</i><p> [[ error ]]</p>
</div>
<div class="card-action">
<a href="#" @click="dismissError">Dismiss</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-else>
<div class="section no-pad-bot">
<div class="container">
<div class="row">
<h3 class="header center">Translation API</h3>
<form class="col s12">
<div class="row mb-0">
<div class="col s6 language-select">
<span>Translate from</span>
<select class="browser-default" v-model="sourceLang" ref="sourceLangDropdown" @change="handleInput">
<template v-for="option in langs">
<option :value="option.code">[[ option.name ]]</option>
</template>
</select>
</div>
<div class="col s6 language-select">
<a href="javascript:void(0)" @click="swapLangs" class="btn-switch-language">
<i class="material-icons">swap_horiz</i>
</a>
<span>Translate into</span>
<select class="browser-default" v-model="targetLang" ref="targetLangDropdown" @change="handleInput">
<template v-for="option in langs">
<option v-if="option.code !== 'auto'" :value="option.code">[[ option.name ]]</option>
</template>
</select>
</div>
</div>
<div class="row">
<div class="input-field textarea-container col s6">
<label for="textarea1" class="sr-only">
Text to translate
</label>
<textarea id="textarea1" v-model="inputText" @input="handleInput" ref="inputTextarea" dir="auto"></textarea>
<button class="btn-delete-text" title="Delete text" @click="deleteText">
<i class="material-icons">close</i>
</button>
<div class="characters-limit-container" v-if="charactersLimit !== -1">
<label>[[ inputText.length ]] / [[ charactersLimit ]]</label>
</div>
</div>
<div class="input-field textarea-container col s6">
<label for="textarea2" class="sr-only">
Translated text
</label>
<textarea id="textarea2" v-model="translatedText" ref="translatedTextarea" dir="auto" readonly></textarea>
<button class="btn-copy-translated" @click="copyText">
<span>[[ copyTextLabel ]]</span> <i class="material-icons">content_copy</i>
</button>
<div class="position-relative">
<div class="progress translate" v-if="loadingTranslation">
<div class="indeterminate"></div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="section no-pad-bot">
<div class="container">
<div class="row center">
<div class="col s12 m12">
<div class="row center">
<div class="col s12 m12 l6 left-align">
<p class="mb-0">Request</p>
<pre class="code mt-0"><code class="language-javascript" v-html="$options.filters.highlight(requestCode)">
</code></pre>
</div>
<div class="col s12 m12 l6 left-align">
<p class="mb-0">Response</p>
<pre class="code mt-0"><code class="language-javascript" v-html="$options.filters.highlight(output)">
</code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
{% if web_version %}
<div class="section no-pad-bot">
<div class="container">
<div class="row center">
<div class="col s12 m12">
<h3 class="header">Open Source Machine Translation</h3>
<h4 class="header">100% Self-Hosted. No Limits. No Ties to Proprietary Services.</h4>
<br/><a class="waves-effect waves-light btn btn-large" href="https://github.com/LibreTranslate/LibreTranslate" rel="noopener noreferrer"><i class="material-icons left">cloud_download</i> Download</a>
<br/><br/><br/>
</div>
</div>
</div>
</div>
{% endif %}
</div>
</main>
<footer class="page-footer blue darken-3">
<div class="container">
<div class="row">
<div class="col l12 s12">
<h5 class="white-text">LibreTranslate</h5>
<p class="grey-text text-lighten-4">Free and Open Source Machine Translation API</p>
<p><a class="grey-text text-lighten-4" href="https://www.gnu.org/licenses/agpl-3.0.en.html" rel="noopener noreferrer">License: AGPLv3</a></p>
<p><a class="grey-text text-lighten-4" href="/javascript-licenses" rel="jslicense">JavaScript license information</a></p>
{% if web_version %}
<p>
This public API should be used for testing, personal or infrequent use. If you're going to run an application in production, please <a href="https://github.com/LibreTranslate/LibreTranslate" class="grey-text text-lighten-4" style="text-decoration: underline;" rel="noopener noreferrer">host your own server</a> or <a class="grey-text text-lighten-4" href="https://github.com/LibreTranslate/LibreTranslate#mirrors" style="text-decoration: underline;" rel="noopener noreferrer">get an API key</a>.
</p>
{% endif %}
</div>
</div>
</div>
<div class="footer-copyright center">
<p>
Made with ❤ by <a class="grey-text text-lighten-3" href="https://github.com/LibreTranslate/LibreTranslate/graphs/contributors" rel="noopener noreferrer">LibreTranslate Contributors</a> and powered by <a class="grey-text text-lighten-3" href="https://github.com/argosopentech/argos-translate/" rel="noopener noreferrer">Argos Translate</a>
</p>
</div>
</footer>
<script src="{{ url_for('static', filename='js/materialize.min.js') }}"></script>
<script>
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
window.Prism = window.Prism || {};
window.Prism.manual = true;
// @license-end
</script>
<script src="{{ url_for('static', filename='js/prism.min.js') }}"></script>
<script>
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
// API host/endpoint
var BaseUrl = window.location.protocol + "//" + window.location.host;
document.addEventListener('DOMContentLoaded', function(){
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems);
var app = new Vue({
el: '#app',
delimiters: ['[[',']]'],
data: {
BaseUrl: BaseUrl,
loading: true,
error: "",
langs: [],
settings: {},
sourceLang: "",
targetLang: "",
loadingTranslation: false,
inputText: "",
inputTextareaHeight: 250,
translatedText: "",
output: "",
charactersLimit: -1,
copyTextLabel: "Copy text"
},
mounted: function(){
var self = this;
var requestSettings = new XMLHttpRequest();
requestSettings.open('GET', BaseUrl + '/frontend/settings', true);
requestSettings.onload = function() {
if (this.status >= 200 && this.status < 400) {
// Success!
self.settings = JSON.parse(this.response);
self.sourceLang = self.settings.language.source.code;
self.targetLang = self.settings.language.target.code;
self.charactersLimit = self.settings.charLimit;
}else {
self.error = "Cannot load /frontend/settings";
self.loading = false;
}
};
requestSettings.onerror = function() {
self.error = "Error while calling /frontend/settings";
self.loading = false;
};
requestSettings.send();
var requestLanguages = new XMLHttpRequest();
requestLanguages.open('GET', BaseUrl + '/languages', true);
requestLanguages.onload = function() {
if (this.status >= 200 && this.status < 400) {
// Success!
self.langs = JSON.parse(this.response);
self.langs.push({ name: 'Auto Detect (Experimental)', code: 'auto' })
if (self.langs.length === 0){
self.loading = false;
self.error = "No languages available. Did you install the models correctly?"
return;
}
self.loading = false;
} else {
self.error = "Cannot load /languages";
self.loading = false;
}
};
requestLanguages.onerror = function() {
self.error = "Error while calling /languages";
self.loading = false;
};
requestLanguages.send();
},
updated: function(){
M.FormSelect.init(this.$refs.sourceLangDropdown);
M.FormSelect.init(this.$refs.targetLangDropdown);
if (this.inputText === ""){
this.$refs.inputTextarea.style.height = this.inputTextareaHeight + "px";
this.$refs.translatedTextarea.style.height = this.inputTextareaHeight + "px";
}else{
this.$refs.inputTextarea.style.height = this.$refs.translatedTextarea.style.height = "1px";
this.$refs.inputTextarea.style.height = Math.max(this.inputTextareaHeight, this.$refs.inputTextarea.scrollHeight + 32) + "px";
this.$refs.translatedTextarea.style.height = Math.max(this.inputTextareaHeight, this.$refs.translatedTextarea.scrollHeight + 32) + "px";
}
if (this.charactersLimit !== -1 && this.inputText.length >= this.charactersLimit){
this.inputText = this.inputText.substring(0, this.charactersLimit);
}
// Update "selected" attribute (to overcome a vue.js limitation)
// but properly display checkmarks on supported browsers.
// Also change the <select> width value depending on the <option> length
for (var i = 0; i < this.$refs.sourceLangDropdown.children.length; i++){
var el = this.$refs.sourceLangDropdown.children[i];
if (el.value === this.sourceLang){
el.setAttribute('selected', '');
this.$refs.sourceLangDropdown.style.width = getTextWidth(el.text) + 24 + 'px';
}else{
el.removeAttribute('selected');
}
}
for (var i = 0; i < this.$refs.targetLangDropdown.children.length; i++){
var el = this.$refs.targetLangDropdown.children[i];
if (el.value === this.targetLang){
el.setAttribute('selected', '');
this.$refs.targetLangDropdown.style.width = getTextWidth(el.text) + 24 + 'px';
}else{
el.removeAttribute('selected');
}
}
},
computed: {
requestCode: function(){
return ['const res = await fetch("' + this.BaseUrl + '/translate", {',
' method: "POST",',
' body: JSON.stringify({',
' q: "' + this.$options.filters.escape(this.inputText) + '",',
' source: "' + this.$options.filters.escape(this.sourceLang) + '",',
' target: "' + this.$options.filters.escape(this.targetLang) + '"',
' }),',
' headers: { "Content-Type": "application/json" }',
'});',
'',
'console.log(await res.json());'].join("\n");
}
},
filters: {
escape: function(v){
return v.replace('"', '\\\"');
},
highlight: function(v){
return Prism.highlight(v, Prism.languages.javascript, 'javascript');
}
},
methods: {
abortPreviousTransRequest: function(){
if (this.transRequest){
this.transRequest.abort();
this.transRequest = null;
}
},
swapLangs: function(){
var t = this.sourceLang;
this.sourceLang = this.targetLang;
this.targetLang = t;
this.inputText = this.translatedText;
this.translatedText = "";
this.handleInput();
},
dismissError: function(){
this.error = '';
},
handleInput: function(e){
if (this.timeout) clearTimeout(this.timeout);
this.timeout = null;
if (this.inputText === ""){
this.translatedText = "";
this.output = "";
this.abortPreviousTransRequest();
this.loadingTranslation = false;
return;
}
var self = this;
self.loadingTranslation = true;
this.timeout = setTimeout(function(){
self.abortPreviousTransRequest();
var request = new XMLHttpRequest();
self.transRequest = request;
var data = new FormData();
data.append("q", self.inputText);
data.append("source", self.sourceLang);
data.append("target", self.targetLang);
data.append("api_key", localStorage.getItem("api_key") || "");
request.open('POST', BaseUrl + '/translate', true);
request.onload = function() {
try{
var res = JSON.parse(this.response);
// Success!
if (res.translatedText !== undefined){
self.translatedText = res.translatedText;
self.loadingTranslation = false;
self.output = JSON.stringify(res, null, 4);
}else{
throw new Error(res.error || "Unknown error");
}
}catch(e){
self.error = e.message;
self.loadingTranslation = false;
}
};
request.onerror = function() {
self.error = "Error while calling /translate";
self.loadingTranslation = false;
};
request.send(data);
}, '{{ frontendTimeout }}');
},
copyText: function(e){
e.preventDefault();
this.$refs.translatedTextarea.select();
this.$refs.translatedTextarea.setSelectionRange(0, 9999999); /* For mobile devices */
document.execCommand("copy");
if (this.copyTextLabel === "Copy text"){
this.copyTextLabel = "Copied";
var self = this;
setTimeout(function(){
self.copyTextLabel = "Copy text";
}, 1500);
}
},
deleteText: function(e){
e.preventDefault();
this.inputText = this.translatedText = this.output = "";
}
}
});
});
function getTextWidth(text) {
var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas"));
var ctx = canvas.getContext("2d");
ctx.font = 'bold 16px sans-serif';
var textWidth = Math.ceil(ctx.measureText(text).width);
return textWidth;
}
function setApiKey(){
var prevKey = localStorage.getItem("api_key") || "";
var newKey = "";
newKey = window.prompt("Type in your API Key. If you need an API key, contact the server operator.", prevKey);
if (newKey === null) newKey = "";
localStorage.setItem("api_key", newKey);
}
// @license-end
</script>
</body>
</html>

View file

@ -1,22 +0,0 @@
<html>
<head>
<title>jslicense-labels1 for LibreTranslate</title>
</head>
<body>
<h3>Weblabels</h3>
<table id="jslicense-labels1" border="1">
<tr>
<td><a href="{{ url_for('static', filename='js/vue@2.js') }}">Vue.js</a></td>
<td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td>
</tr>
<tr>
<td><a href="{{ url_for('static', filename='js/prism.min.js') }}">prism.min.js</a></td>
<td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td>
</tr>
<tr>
<td><a href="{{ url_for('static', filename='js/materialize.min.js') }}">materialize.min.js</a></td>
<td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td>
</tr>
</table>
</body>
</html>

2
babel.cfg Normal file
View file

@ -0,0 +1,2 @@
[python: **.py]
[jinja2: **/templates/**]

View file

18
docker-compose.cuda.yml Normal file
View file

@ -0,0 +1,18 @@
version: "3"
services:
libretranslate-cuda:
container_name: libretranslate-cuda
build:
context: .
dockerfile: docker/cuda.Dockerfile
restart: unless-stopped
ports:
- "5000:5000"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]

View file

@ -3,9 +3,30 @@ version: "3"
services:
libretranslate:
container_name: libretranslate
build: .
build:
context: .
dockerfile: docker/Dockerfile
restart: unless-stopped
ports:
- 5000:5000
- "5000:5000"
## Uncomment this for logging in docker compose logs
# tty: true
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
## Uncomment above command and define your args if necessary
# command: --ssl --ga-id MY-GA-ID --req-limit 100 --char-limit 500
## Uncomment this section and the libretranslate_api_keys volume if you want to backup your API keys
# environment:
# - LT_API_KEYS=true
# - LT_API_KEYS_DB_PATH=/app/db/api_keys.db # Same result as `db/api_keys.db` or `./db/api_keys.db`
## Uncomment these vars and libretranslate_models volume to optimize loading time.
# - LT_UPDATE_MODELS=true
# - LT_LOAD_ONLY=en,fr
# volumes:
# - libretranslate_api_keys:/app/db
# Keep the models in a docker volume, to avoid re-downloading on startup
# - libretranslate_models:/home/libretranslate/.local:rw
# volumes:
# libretranslate_api_keys:
# libretranslate_models:

45
docker/Dockerfile Normal file
View file

@ -0,0 +1,45 @@
FROM python:3.11.9-slim-bullseye as builder
WORKDIR /app
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \
&& apt-get -qqq install --no-install-recommends -y pkg-config gcc g++ \
&& apt-get upgrade --assume-yes \
&& apt-get clean \
&& rm -rf /var/lib/apt
RUN python -mvenv venv && ./venv/bin/pip install --no-cache-dir --upgrade pip
COPY . .
# Install package from source code, compile translations
RUN ./venv/bin/pip install Babel==2.12.1 && ./venv/bin/python scripts/compile_locales.py \
&& ./venv/bin/pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cpu \
&& ./venv/bin/pip install . \
&& ./venv/bin/pip cache purge
FROM python:3.11.9-slim-bullseye
ARG with_models=false
ARG models=""
RUN addgroup --system --gid 1032 libretranslate && adduser --system --uid 1032 libretranslate && mkdir -p /home/libretranslate/.local && chown -R libretranslate:libretranslate /home/libretranslate/.local
USER libretranslate
COPY --from=builder --chown=1032:1032 /app /app
WORKDIR /app
COPY --from=builder --chown=1032:1032 /app/venv/bin/ltmanage /usr/bin/
RUN if [ "$with_models" = "true" ]; then \
# initialize the language models
if [ ! -z "$models" ]; then \
./venv/bin/python scripts/install_models.py --load_only_lang_codes "$models"; \
else \
./venv/bin/python scripts/install_models.py; \
fi \
fi
EXPOSE 5000
ENTRYPOINT [ "./venv/bin/libretranslate", "--host", "*" ]

43
docker/arm.Dockerfile Normal file
View file

@ -0,0 +1,43 @@
FROM arm64v8/python:3.11.9-slim-bullseye as builder
WORKDIR /app
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \
&& apt-get -qqq install --no-install-recommends -y pkg-config gcc g++ \
&& apt-get upgrade --assume-yes \
&& apt-get clean \
&& rm -rf /var/lib/apt
RUN python -mvenv venv && ./venv/bin/pip install --no-cache-dir --upgrade pip
COPY . .
# Install package from source code, compile translations
RUN ./venv/bin/pip install Babel==2.12.1 && ./venv/bin/python scripts/compile_locales.py \
&& ./venv/bin/pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cpu \
&& ./venv/bin/pip install . \
&& ./venv/bin/pip cache purge
FROM arm64v8/python:3.11.9-slim-bullseye
ARG with_models=false
ARG models=""
RUN addgroup --system --gid 1032 libretranslate && adduser --system --uid 1032 libretranslate && mkdir -p /home/libretranslate/.local && chown -R libretranslate:libretranslate /home/libretranslate/.local
USER libretranslate
COPY --from=builder --chown=1032:1032 /app /app
WORKDIR /app
RUN if [ "$with_models" = "true" ]; then \
# initialize the language models
if [ ! -z "$models" ]; then \
./venv/bin/python scripts/install_models.py --load_only_lang_codes "$models"; \
else \
./venv/bin/python scripts/install_models.py; \
fi \
fi
EXPOSE 5000
ENTRYPOINT [ "./venv/bin/libretranslate", "--host", "*" ]

45
docker/cuda.Dockerfile Normal file
View file

@ -0,0 +1,45 @@
FROM nvidia/cuda:12.4.1-devel-ubuntu20.04
ENV ARGOS_DEVICE_TYPE cuda
ARG with_models=false
ARG models=""
WORKDIR /app
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \
&& apt-get -qqq install --no-install-recommends -y libicu-dev libaspell-dev libcairo2 libcairo2-dev pkg-config gcc g++ python3.8-dev python3-pip libpython3.8-dev\
&& apt-get upgrade --assume-yes \
&& apt-get clean \
&& rm -rf /var/lib/apt
RUN pip3 install --no-cache-dir --upgrade pip && apt-get remove python3-pip --assume-yes
RUN ln -s /usr/bin/python3 /usr/bin/python
RUN pip3 install --no-cache-dir torch==1.12.0+cu116 -f https://download.pytorch.org/whl/torch_stable.html
COPY . .
RUN if [ "$with_models" = "true" ]; then \
# install only the dependencies first
pip3 install --no-cache-dir -e .; \
# initialize the language models
if [ ! -z "$models" ]; then \
./scripts/install_models.py --load_only_lang_codes "$models"; \
else \
./scripts/install_models.py; \
fi \
fi
# Install package from source code
RUN pip3 install Babel==2.12.1 && python3 scripts/compile_locales.py \
&& pip3 install . \
&& pip3 cache purge
# Depending on your cuda install you may need to uncomment this line to allow the container to access the cuda libraries
# See: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions
# ENV LD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cuda/lib64
EXPOSE 5000
ENTRYPOINT [ "libretranslate", "--host", "*" ]

View file

@ -1,7 +0,0 @@
#!/usr/bin/env python
from app.init import check_and_install_models, check_and_install_transliteration
if __name__ == "__main__":
check_and_install_models(force=True)
check_and_install_transliteration(force=True)

84
k8s.yaml Normal file
View file

@ -0,0 +1,84 @@
# kubernetes deployment template
# prepare a namespace on your cluster first like libretranslate-prod
apiVersion: v1
kind: ConfigMap
metadata:
name: libretranslate-config
data:
# list loaded languages or leave empty to load all
langs: "es,de,it,en,fr,cs,da,nl,hu,pl,pt,sk,ru,tr,uk,fi,eo"
ltapikey: "yoursecretapikey"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: libretranslate
spec:
selector:
matchLabels:
app: libretranslate
template:
metadata:
labels:
app: libretranslate
spec:
containers:
- name: libretranslate
image: libretranslate/libretranslate:latest
resources:
limits:
memory: "1Gi"
cpu: "500m"
ports:
- containerPort: 5000
env:
- name: "LT_LOAD_ONLY"
valueFrom:
configMapKeyRef:
name: libretranslate-config
key: langs
- name: "TRANSLATE_KEY"
valueFrom:
configMapKeyRef:
name: libretranslate-config
key: ltapikey
---
apiVersion: v1
kind: Service
metadata:
name: libretranslate-svc
namespace: libretranslate-prod
spec:
selector:
app: libretranslate
ports:
- port: 5000
targetPort: 5000
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/proxy-body-size: 5m
name: libretranslate-ingress
namespace: libretranslate-prod
labels:
app: libretranslate
spec:
tls:
- hosts:
- libretranslate.mydomain.net
secretName: libretranslate-mydomain-net
rules:
- host: libretranslate.mydomain.net
http:
paths:
- backend:
service:
name: libretranslate-svc
port:
number: 5000
path: /
pathType: Prefix

View file

@ -0,0 +1,3 @@
import os
from .main import main
from .manage import manage

112
libretranslate/api_keys.py Normal file
View file

@ -0,0 +1,112 @@
import os
import sqlite3
import uuid
import requests
from expiringdict import ExpiringDict
from libretranslate.default_values import DEFAULT_ARGUMENTS as DEFARGS
DEFAULT_DB_PATH = DEFARGS['API_KEYS_DB_PATH']
class Database:
def __init__(self, db_path=DEFAULT_DB_PATH, max_cache_len=1000, max_cache_age=30):
# Legacy check - this can be removed at some point in the near future
if os.path.isfile("api_keys.db") and not os.path.isfile("db/api_keys.db"):
print("Migrating {} to {}".format("api_keys.db", "db/api_keys.db"))
try:
os.rename("api_keys.db", "db/api_keys.db")
except Exception as e:
print(str(e))
db_dir = os.path.dirname(db_path)
if db_dir != '' and not os.path.exists(db_dir):
os.makedirs(db_dir)
self.db_path = db_path
self.cache = ExpiringDict(max_len=max_cache_len, max_age_seconds=max_cache_age)
# Make sure to do data synchronization on writes!
self.c = sqlite3.connect(db_path, check_same_thread=False)
self.c.execute(
"""CREATE TABLE IF NOT EXISTS api_keys (
"api_key" TEXT NOT NULL,
"req_limit" INTEGER NOT NULL,
"char_limit" INTEGER DEFAULT NULL,
PRIMARY KEY("api_key")
);"""
)
# Schema/upgrade checks
schema = self.c.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name='api_keys';").fetchone()[0]
if '"char_limit" INTEGER DEFAULT NULL' not in schema:
self.c.execute('ALTER TABLE api_keys ADD COLUMN "char_limit" INTEGER DEFAULT NULL;')
def lookup(self, api_key):
val = self.cache.get(api_key)
if val is None:
# DB Lookup
stmt = self.c.execute(
"SELECT req_limit, char_limit FROM api_keys WHERE api_key = ?", (api_key,)
)
row = stmt.fetchone()
if row is not None:
self.cache[api_key] = row
val = row
else:
self.cache[api_key] = False
val = False
if isinstance(val, bool):
val = None
return val
def add(self, req_limit, api_key="auto", char_limit=None):
if api_key == "auto":
api_key = str(uuid.uuid4())
if char_limit == 0:
char_limit = None
self.remove(api_key)
self.c.execute(
"INSERT INTO api_keys (api_key, req_limit, char_limit) VALUES (?, ?, ?)",
(api_key, req_limit, char_limit),
)
self.c.commit()
return (api_key, req_limit, char_limit)
def remove(self, api_key):
self.c.execute("DELETE FROM api_keys WHERE api_key = ?", (api_key,))
self.c.commit()
return api_key
def all(self):
row = self.c.execute("SELECT api_key, req_limit, char_limit FROM api_keys")
return row.fetchall()
class RemoteDatabase:
def __init__(self, url, max_cache_len=1000, max_cache_age=600):
self.url = url
self.cache = ExpiringDict(max_len=max_cache_len, max_age_seconds=max_cache_age)
def lookup(self, api_key):
val = self.cache.get(api_key)
if val is None:
try:
r = requests.post(self.url, data={'api_key': api_key}, timeout=60)
res = r.json()
except Exception as e:
print("Cannot authenticate API key: " + str(e))
return None
if res.get('error') is not None:
return None
req_limit = res.get('req_limit', None)
char_limit = res.get('char_limit', None)
self.cache[api_key] = (req_limit, char_limit)
return val

1168
libretranslate/app.py Normal file

File diff suppressed because it is too large Load diff

View file

@ -2,16 +2,19 @@ import os
_prefix = 'LT_'
def _get_value_str(name, default_value):
env_value = os.environ.get(name)
return default_value if env_value is None else env_value
def _get_value_int(name, default_value):
try:
return int(os.environ[name])
except:
return default_value
def _get_value_bool(name, default_value):
env_value = os.environ.get(name)
if env_value in ['FALSE', 'False', 'false', '0']:
@ -20,6 +23,7 @@ def _get_value_bool(name, default_value):
return True
return default_value
def _get_value(name, default_value, value_type):
env_name = _prefix + name
if value_type == 'str':
@ -30,6 +34,7 @@ def _get_value(name, default_value, value_type):
return _get_value_bool(env_name, default_value)
return default_value
_default_options_objects = [
{
'name': 'HOST',
@ -51,6 +56,21 @@ _default_options_objects = [
'default_value': -1,
'value_type': 'int'
},
{
'name': 'REQ_LIMIT_STORAGE',
'default_value': 'memory://',
'value_type': 'str'
},
{
'name': 'HOURLY_REQ_LIMIT',
'default_value': -1,
'value_type': 'int'
},
{
'name': 'HOURLY_REQ_LIMIT_DECAY',
'default_value': 0,
'value_type': 'int'
},
{
'name': 'DAILY_REQ_LIMIT',
'default_value': -1,
@ -61,6 +81,11 @@ _default_options_objects = [
'default_value': -1,
'value_type': 'int'
},
{
'name': 'REQ_TIME_COST',
'default_value': -1,
'value_type': 'int'
},
{
'name': 'BATCH_LIMIT',
'default_value': -1,
@ -83,12 +108,12 @@ _default_options_objects = [
},
{
'name': 'FRONTEND_LANGUAGE_SOURCE',
'default_value': 'en',
'default_value': 'auto',
'value_type': 'str'
},
{
'name': 'FRONTEND_LANGUAGE_TARGET',
'default_value': 'es',
'default_value': 'locale',
'value_type': 'str'
},
{
@ -101,16 +126,91 @@ _default_options_objects = [
'default_value': False,
'value_type': 'bool'
},
{
'name': 'API_KEYS_DB_PATH',
'default_value': 'db/api_keys.db',
'value_type': 'str'
},
{
'name': 'API_KEYS_REMOTE',
'default_value': '',
'value_type': 'str'
},
{
'name': 'GET_API_KEY_LINK',
'default_value': '',
'value_type': 'str'
},
{
'name': 'REQUIRE_API_KEY_ORIGIN',
'default_value': '',
'value_type': 'str'
},
{
'name': 'REQUIRE_API_KEY_SECRET',
'default_value': False,
'value_type': 'bool'
},
{
'name': 'SHARED_STORAGE',
'default_value': 'memory://',
'value_type': 'str'
},
{
'name': 'LOAD_ONLY',
'default_value': None,
'value_type': 'str'
}
},
{
'name': 'ALTERNATIVES_LIMIT',
'default_value': -1,
'value_type': 'int'
},
{
'name': 'THREADS',
'default_value': 4,
'value_type': 'int'
},
{
'name': 'SUGGESTIONS',
'default_value': False,
'value_type': 'bool'
},
{
'name': 'DISABLE_FILES_TRANSLATION',
'default_value': False,
'value_type': 'bool'
},
{
'name': 'DISABLE_WEB_UI',
'default_value': False,
'value_type': 'bool'
},
{
'name': 'UPDATE_MODELS',
'default_value': False,
'value_type': 'bool'
},
{
'name': 'FORCE_UPDATE_MODELS',
'default_value': False,
'value_type': 'bool'
},
{
'name': 'METRICS',
'default_value': False,
'value_type': 'bool'
},
{
'name': 'METRICS_AUTH_TOKEN',
'default_value': '',
'value_type': 'str'
},
{
'name': 'URL_PREFIX',
'default_value': '',
'value_type': 'str'
},
]

45
libretranslate/detect.py Normal file
View file

@ -0,0 +1,45 @@
from langdetect import DetectorFactory
DetectorFactory.seed = 0
from langdetect import detect_langs
from lexilang.detector import detect as lldetect
class Language:
def __init__(self, code, confidence):
self.code = code
self.confidence = float(confidence)
def __str__(self):
return (f"code: {self.code:<9} confidence: {self.confidence:>5.1f} ")
def check_lang(langcodes, lang):
return normalized_lang_code(lang) in langcodes
def normalized_lang_code(lang):
code = lang.lang
# Handle zh-cn
if code.startswith("zh"):
code = "zh"
return code
class Detector:
def __init__(self, langcodes = ()):
self.langcodes = langcodes
def detect(self, text):
if len(text) < 20:
code, conf = lldetect(text, self.langcodes)
if conf > 0:
return [Language(code, round(conf * 100))]
top_3_choices = [lang for lang in detect_langs(text) if check_lang(self.langcodes, lang)][:3]
if not len(top_3_choices):
return [Language("en", 0)]
if top_3_choices[0].prob == 0:
return [Language("en", 0)]
return [Language(normalized_lang_code(lang), round(lang.prob * 100)) for lang in top_3_choices]

47
libretranslate/flood.py Normal file
View file

@ -0,0 +1,47 @@
from libretranslate.storage import get_storage
active = False
threshold = -1
def forgive_banned():
global threshold
clear_list = []
s = get_storage()
banned = s.get_all_hash_int("banned")
for ip in banned:
if banned[ip] <= 0:
clear_list.append(ip)
else:
s.set_hash_int("banned", ip, min(threshold, banned[ip]) - 1)
for ip in clear_list:
s.del_hash("banned", ip)
def setup(args):
global active
global threshold
if args.req_flood_threshold > 0:
active = True
threshold = args.req_flood_threshold
def report(request_ip):
if active:
get_storage().inc_hash_int("banned", request_ip)
def decrease(request_ip):
s = get_storage()
if s.get_hash_int("banned", request_ip) > 0:
s.dec_hash_int("banned", request_ip)
def has_violation(request_ip):
s = get_storage()
return s.get_hash_int("banned", request_ip) > 0
def is_banned(request_ip):
s = get_storage()
# More than X offences?
return active and s.get_hash_int("banned", request_ip) >= threshold

74
libretranslate/init.py Normal file
View file

@ -0,0 +1,74 @@
from argostranslate import package, translate
from packaging import version
import libretranslate.language
def boot(load_only=None, update_models=False, install_models=False):
try:
if update_models:
check_and_install_models(load_only_lang_codes=load_only, update=update_models)
else:
check_and_install_models(force=install_models, load_only_lang_codes=load_only)
except Exception as e:
print("Cannot update models (normal if you're offline): %s" % str(e))
def check_and_install_models(force=False, load_only_lang_codes=None,update=False):
if len(package.get_installed_packages()) < 2 or force or update:
# Update package definitions from remote
print("Updating language models")
package.update_package_index()
# Load available packages from local package index
available_packages = package.get_available_packages()
installed_packages = package.get_installed_packages()
print("Found %s models" % len(available_packages))
if load_only_lang_codes is not None:
# load_only_lang_codes: List[str] (codes)
# Ensure the user does not use any unavailable language code.
unavailable_lang_codes = set(load_only_lang_codes)
for pack in available_packages:
unavailable_lang_codes -= {pack.from_code, pack.to_code}
if unavailable_lang_codes:
raise ValueError(
"Unavailable language codes: %s."
% ",".join(sorted(unavailable_lang_codes))
)
# Keep only the packages that have both from_code and to_code in our list.
available_packages = [
pack
for pack in available_packages
if pack.from_code in load_only_lang_codes and pack.to_code in load_only_lang_codes
]
if not available_packages:
raise ValueError("no available package")
print("Keep %s models" % len(available_packages))
# Download and install all available packages
for available_package in available_packages:
update = False
if not force:
for pack in installed_packages:
if (
pack.from_code == available_package.from_code
and pack.to_code == available_package.to_code
):
update = True
if version.parse(pack.package_version) < version.parse(available_package.package_version):
print(
f"Updating {available_package} ({pack.package_version}->{available_package.package_version}) ..."
)
pack.update()
if not update:
print(
f"Downloading {available_package} ({available_package.package_version}) ..."
)
available_package.install()
# reload installed languages
libretranslate.language.languages = translate.get_installed_languages()
print(
f"Loaded support for {len(translate.get_installed_languages())} languages ({len(available_packages)} models total)!"
)

135
libretranslate/language.py Normal file
View file

@ -0,0 +1,135 @@
from functools import lru_cache
from argostranslate import translate
from libretranslate.detect import Detector
__languages = None
def load_languages():
global __languages
if __languages is None or len(__languages) == 0:
__languages = translate.get_installed_languages()
return __languages
@lru_cache(maxsize=None)
def load_lang_codes():
languages = load_languages()
return tuple(l.code for l in languages)
def detect_languages(text):
# detect batch processing
if isinstance(text, list):
is_batch = True
else:
is_batch = False
text = [text]
lang_codes = load_lang_codes()
# get the candidates
candidates = []
for t in text:
try:
d = Detector(lang_codes).detect(t)
for i in range(len(d)):
d[i].text_length = len(t)
candidates.extend(d)
except Exception as e:
print(str(e))
# total read bytes of the provided text
text_length_total = sum(c.text_length for c in candidates)
# this happens if no language could be detected
if not candidates:
# use language "en" by default but with zero confidence
return [{"confidence": 0.0, "language": "en"}]
# for multiple occurrences of the same language (can happen on batch detection)
# calculate the average confidence for each language
if is_batch:
temp_average_list = []
for lang_code in lang_codes:
# get all candidates for a specific language
lc = list(filter(lambda l: l.code == lang_code, candidates))
if len(lc) > 1:
# if more than one is present, calculate the average confidence
lang = lc[0]
lang.confidence = sum(l.confidence for l in lc) / len(lc)
lang.text_length = sum(l.text_length for l in lc)
temp_average_list.append(lang)
elif lc:
# otherwise just add it to the temporary list
temp_average_list.append(lc[0])
if temp_average_list:
# replace the list
candidates = temp_average_list
# sort the candidates descending based on the detected confidence
candidates.sort(
key=lambda l: (l.confidence * l.text_length) / text_length_total, reverse=True
)
return [{"confidence": l.confidence, "language": l.code} for l in candidates]
def improve_translation_formatting(source, translation, improve_punctuation=True, remove_single_word_duplicates=True):
source = source.strip()
if not len(source):
return ""
if not len(translation):
return source
if improve_punctuation:
source_last_char = source[len(source) - 1]
translation_last_char = translation[len(translation) - 1]
punctuation_chars = ['!', '?', '.', ',', ';', '']
if source_last_char in punctuation_chars:
if translation_last_char != source_last_char:
if translation_last_char in punctuation_chars:
translation = translation[:-1]
translation += source_last_char
elif translation_last_char in punctuation_chars:
translation = translation[:-1]
# A workaround for certain language models that output
# the single word repeated ad-infinitum (the "salad" bug)
# https://github.com/LibreTranslate/LibreTranslate/issues/46
if remove_single_word_duplicates:
if len(source) < 20 and source.count(" ") == 0 and translation.count(" ") > 0:
bow = translation.split()
count = {}
for word in bow:
count[word] = count.get(word, 0) + 1
for word in count:
if count[word] / len(count) >= 2:
translation = bow[0]
break
if source.islower():
return translation.lower()
if source.isupper():
return translation.upper()
if len(translation) == 0:
return source
if source[0].islower():
return translation[0].lower() + translation[1:]
if source[0].isupper():
return translation[0].upper() + translation[1:]
return translation

97
libretranslate/locales.py Normal file
View file

@ -0,0 +1,97 @@
import json
import os
from functools import lru_cache
from flask_babel import gettext as _
from flask_babel import lazy_gettext as _lazy
from markupsafe import Markup, escape
@lru_cache(maxsize=None)
def get_available_locales(only_reviewed=True, sort_by_name=False):
locales_dir = os.path.join(os.path.dirname(__file__), 'locales')
dirs = [os.path.join(locales_dir, d) for d in os.listdir(locales_dir)]
res = [{'code': 'en', 'name': 'English', 'reviewed': True}]
for d in dirs:
if d == 'en':
continue
meta_file = os.path.join(d, 'meta.json')
if os.path.isdir(os.path.join(d, 'LC_MESSAGES')) and os.path.isfile(meta_file):
try:
with open(meta_file) as f:
j = json.loads(f.read())
except Exception as e:
print(e)
continue
if j.get('reviewed') or not only_reviewed:
res.append({'code': os.path.basename(d), 'name': j.get('name', ''), 'reviewed': j.get('reviewed', False)})
if sort_by_name:
res.sort(key=lambda s: s['name'])
return res
@lru_cache(maxsize=None)
def get_available_locale_codes(only_reviewed=True):
return [l['code'] for l in get_available_locales(only_reviewed=only_reviewed)]
@lru_cache(maxsize=None)
def get_alternate_locale_links():
tmpl = os.environ.get("LT_LOCALE_LINK_TEMPLATE")
if tmpl is None:
return []
locales = get_available_locale_codes()
result = []
for l in locales:
link = tmpl.replace("{LANG}", l)
if l == 'en':
link = link.replace("en.", "")
result.append({ 'link': link,'lang': l })
return result
# Javascript code should use _e instead of _
def gettext_escaped(text, **variables):
return json.dumps(_(text, **variables))
# HTML should be escaped using _h instead of _
def gettext_html(text, **variables):
# Translate text without args
s = str(escape(_(text)))
v = {}
if variables:
for k in variables:
if hasattr(variables[k], 'unescape'):
v[k] = variables[k].unescape()
else:
v[k] = Markup(variables[k])
# Variables are assumed to be already escaped and thus safe
return Markup(s if not v else s % v)
def swag_eval(swag, func):
# Traverse the swag spec structure
# and call func on summary and description keys
for k in swag:
if k in ['summary', 'description'] and isinstance(swag[k], str) and swag[k] != "":
swag[k] = func(swag[k])
elif k == 'tags' and isinstance(swag[k], list):
swag[k] = [func(v) for v in swag[k]]
elif isinstance(swag[k], dict):
swag_eval(swag[k], func)
elif isinstance(swag[k], list) and k != 'consumes':
for i in swag[k]:
if isinstance(i, str):
func(i)
elif isinstance(i, dict):
swag_eval(i, func)
return swag
def lazy_swag(swag):
return swag_eval(swag, _lazy)

3
libretranslate/locales/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
**/*.mo
.langs.py
.swag.py

View file

@ -0,0 +1,666 @@
# Arabic translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-11-02 04:00+0000\n"
"Last-Translator: Rex_sa <rex.sa@pm.me>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/libretranslate/"
"app/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5);\n"
"X-Generator: Weblate 5.2-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "تنسيق JSON غير صالح"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "اكتشاف تلقائي"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "غير مصرح به"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "تم تجاوز عدد الطلبات المسموح بها"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "مفتاح API غير صحيح"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "يرجى الاتصال بالسيرفر للحصول على مفتاح API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "زيارة%(url)s للحصول على مفتاح API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "التباطؤ:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "طلب غير صالح: المعامل %(name)s ‮مفقود"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "الطلب خاطئ: الطلب (%(size)s) تتجاوز حدود النص (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s غير مدعوم‬"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s الشكل غير مدعوم"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr "%(tname)s %(tcode)sغير متاحة كلغة هدف من %(sname)s %(scode)s"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "لا يمكن ترجمة النص: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "ترجمة الملفات معطلة على هذا الخادم."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "طلب خاطئ: ملف فارغ"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "طلب غير صحيح: صيغة الملف غير مدعومة"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "اسم الملف غير صالح"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "الاقتراحات معطلة على هذا الخادم."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "الإنجليزية"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "العربية"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "أذربيجان"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "الصينية"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "التشيكية"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "الدنمارك"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "هولندا"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "فنلندا"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "الفرنسية"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "ألمانيا"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "يوناني"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "العبرية"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "الهندية"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "هنغاريا"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "الإندونيسية"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "أيرلندا"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "إيطاليا"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "اليابان"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "كوريا"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Persian"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "بولندا"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "البرتغال"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "الروسية"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "سلوفاكيا"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "الإسبانية"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "السويد"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "تركيا"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "الأوكرانية"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnamese"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "قائمة الاسترجاع باللغات المدعومة"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "قائمة اللغات"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "ترجمة"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "ترجمة النص من لغة إلى أخرى"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "النص المترجمة"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "عدم وجود طلب"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "خطأ الترجمة"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "تمهل"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "تم حظرها"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "مرحبا العالم!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "النص (النصوص) المراد ترجمتها"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "رمز لغة المصدر"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "رمز اللغة الهدف"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "نص"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Format of source text:\n"
"* &quot; النص &quot;\n"
"* html - HTML markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "مفتاح API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "ترجمة ملف من لغة إلى أخرى"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "ملف مراجع"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "ملف للترجمة"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "الكشف عن لغة نص ما"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "الكشف"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "الخطأ"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "النص المراد الكشف عنه"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "استرداد إعدادات محددة للواجهة الأمامية"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "اعدادات الواجهة الأمامية"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "الواجهة"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "تقديم اقتراح لتحسين الترجمة"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "تم بنجاح"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "غيرمرخص به"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "النص الأصلي"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "الترجمة المقترَحة"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "لغة النص الأصلي"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "لغة الترجمة المقترَحة"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "التعليقات"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "رمز اللغة"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "اسم لغة قابلة للقراءة البشرية (باللغة الإنكليزية)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "رموز اللغات المستهدفة المدعومة"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "النص/النثوص المترجمة"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "رسالة خطأ"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "سبب التباطؤ"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "عنوان ملف مترجمة"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "قيمة الثقة"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "الحد الأقصى للمدخلات التعريفية لهذه اللغة (-1 لا يشير إلى حد أقصى)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "وقت واجهة الترجمة"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "ما إذا كانت قاعدة البيانات الرئيسية متاحة."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "ما إذا كان من المطلوب وجود مفتاح."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "وسواء أمكن تقديم الاقتراحات."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "استمارة الملفات المدعومة"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "ما إذا كان التقديم ناجحاً"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "نسخ النص"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "لا يمكن تحميل %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "خطأ غير معروف"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "تم نسخه"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "شكراً على تصحيحك ملاحظة الاقتراح لن يبدأ تطبيقه في الحال."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "لا توجد لغات متاحة. هل قمت بتثبيت النماذج بشكل صحيح؟?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "ادخل مفتاحك إذا كنت بحاجة إلى مفتاح API، %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "اضغط على رابط \"المفاتيح\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "اتصل بمشغل الخادم."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "واجهة برمجة تطبيقات حرة ومفتوحة المصدر للترجمة الآلية"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Free and Open Source Machine Translation API. ذاتي الاستيعاب، غير مباشر "
"قادر وسهل التجهيز أدير خادمك الخاص في غضون دقائق."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "ترجمة"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API مستندات"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "الحصول على مفتاح API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "تعيين مفتاح API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "تغيير اللغة"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "تعديل"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "الظلمة/الضوء"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "تجاهل"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "الترجمة API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "ترجمة النص"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "ترجمة الملفات"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "ترجمة من"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "تبديل المصدر واللغات المستهدفة"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "ترجمة الى"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "نص للترجمة"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "حذف النص"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "اقتراح ترجمة"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "إلغاء"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "أرسل"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "صيغ الملفات المدعومة:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "ملف"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "حذف الملف"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "ترجمة"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "تحميل"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "الطلب"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "الرد"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "api ترجمة آلي مفتوح المصدر"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "استضافة شخصية. غيرمتصل سهل الاعداد."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "ترجمة حرة"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "الرخصة:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"يجب استخدام واجهة برمجة التطبيقات العامة هذه للاختبار أو للاستخدام الشخصي"
" أو غير المتكرر. إذا كنت تريد تشغيل تطبيق إنتاجي ، من فضلك استخدم "
"%(host_server)s أو %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "تستضيف خادمك الخاص"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "الحصول على مفتاح API"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "مصنوعة %(heart)s من قبل %(contributors)s ومدعومة بواسطة %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s المساهمون"
#~ msgid "multipart/form-data"
#~ msgstr "البيانات المتعددة الجوانب/الرسمية"

View file

@ -0,0 +1,4 @@
{
"name": "Arabic",
"reviewed": false
}

View file

@ -0,0 +1,671 @@
# Azerbaijani translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-08-31 07:05+0000\n"
"Last-Translator: Ali Evcil <evcil@proton.me>\n"
"Language: az\n"
"Language-Team: Azerbaijani "
"<https://hosted.weblate.org/projects/libretranslate/app/az/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Invalid JSON format"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Avtomatik simptomlar"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Uşaq"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Ən çox məlumat limitləri"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Invalid API əsas"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Bir API əsas almaq üçün server operatorla əlaqə edin"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Bakı %(url)s Bir API əsas almaq"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Yavaşlama:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Invalid tərəfindən: eksik %(name)s Qeydiyyat"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, fuzzy, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "Invalid tərəfindən: (%(size)s) / (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s Yadda saxla"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s format dəstəkləmir"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, fuzzy, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr "%(tname)s (%(tcode)s Ətraf dili kimi mövcud deyil %(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Qeyd çevirmə: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Bu server üzərində faylları silinir."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Invalid istə: boş fayl"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Invalid tərəfindən: fayl format əlavə etmir"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Ad Soyad"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Proqramlar bu server üzrə dəstəklənir."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "İngilis dili"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Bakı"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Bakı"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Çin"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Çex dili"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Danimarka"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Rusiya"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Qeydiyyat"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Fransız"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Almaniya"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Yunanıstan"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Elan"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Qeydiyyat"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Bakı"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Qeydiyyat"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Rusiya"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Rusiya"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Yapon"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Koreya"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Axtar"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Bakı"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr " Portuguese"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Rusiya"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Qeydiyyat"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "İspaniya"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Bakı"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Türkiyə"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr " U"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr " Vietnamese"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Yadda saxla"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Dillərin siyahısı"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr " translate"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Bir dildən digər məsləhət"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Tarix"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Ad Soyad"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr " Translation error"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Aşağı"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Bakı"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Salam dünya!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Tərcümə ediləcək mətn(lər)"
#: libretranslate/locales/.swag.py:12
#, fuzzy
msgid "Source language code"
msgstr "Dil kodu"
#: libretranslate/locales/.swag.py:13
#, fuzzy
msgid "Target language code"
msgstr "İctimai kodları"
#: libretranslate/locales/.swag.py:14
#, fuzzy
msgid "text"
msgstr "Elanlar"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Məhsulun forması:\n"
"* 'text' - Düz məhsul\n"
"* 'html' - HTML qeydiyyat\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Axtarış"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Bir dildən digər fayl"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Proqram"
#: libretranslate/locales/.swag.py:20
#, fuzzy
msgid "File to translate"
msgstr "Tarix"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Bir məhsul dilinin tanınması"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Axtarış"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "İmtahan"
#: libretranslate/locales/.swag.py:24
#, fuzzy
msgid "Text to detect"
msgstr "Avtomatik simptomlar"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Yadda saxla"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr " front"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr " front"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Müəlliflik hüquququ"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Qeydiyyat"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Qeyd olun"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr " Original"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Qeydiyyat"
#: libretranslate/locales/.swag.py:33
#, fuzzy
msgid "Language of original text"
msgstr "Bir məhsul dilinin tanınması"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Müəlliflik"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr " feedback"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Dil kodu"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Human-readable dil adı (in English)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "İctimai kodları"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Xüsusi məhsullar"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Yadda saxla"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Yavaş aşağı qaldırmaq"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Url url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Konfiqurasiya"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Bu dil üçün simvol giriş limiti (-1 heç bir limit göstərir)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Qeydiyyat vaxtı"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "API əsas verilən veriləndirilməsi."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Bir API əsas tələb olun."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Təkliflərin təklif edilməsi mümkündür."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "E-poçt ünvanı"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Yadda saxla"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Elanlar"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Qeydiyyat %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Xüsusi məlumat"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Elan"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "Sizin düzeltmeniz üçün. Müəlliflik hüququqları qorunur."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Heç bir dil mövcuddur. Siz modelləri düzgün quraşdırdı?"
#: libretranslate/templates/app.js.template:522
#, fuzzy, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "API key növü. Bir API əsas lazım varsa, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "\"Get API Key\" linkini basın."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "server operatoru əlaqə edin."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Pulsuz və Açıq Source Machine Translation API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Pulsuz və Open Source Machine Translation API. Self-səfərli, offline və "
"asan quraşdırmaq. Yalnız bir neçə dərhal öz API server çalışır."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr " translation"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr " a"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "Qeydiyyat"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "API Qeydiyyat"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "Qeydiyyat"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "API Qeydiyyat"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Dil"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Tarix"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Qızıl / iş rejimi"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Qeydiyyat"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Axtarış"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Axtarış"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Proqramlar"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Qeydiyyatdan"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Swap məhsul və hedef dillər"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Axtarış"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Tarix"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Delete"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Qeydiyyat"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Tarix"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "E-poçt"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Dəstəklənən fayl formatları:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Qeydiyyat"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Proqram"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Axtarış"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Pulsuz"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Qeydiyyat"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr " Response"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Open Source Machine Translation API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Self-Hosted. Offline Capable. Avadanlıq."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "Qeydiyyat"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Lisenziya:"
#: libretranslate/templates/index.html:340
#, fuzzy, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Bu ictimai API test üçün istifadə olunmalıdır, xüsusi və ya infrequent "
"istifadə. istehsalda bir proqram işləyirsinizsə, lütfen %(host_server)s "
"ya %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "öz serverinizə baxın"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "bir API əsas almaq"
#: libretranslate/templates/index.html:348
#, fuzzy, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Yaponiya %(heart)s by %(contributors)s və tərəfdaşlıq %(engine)s"
#: libretranslate/templates/index.html:348
#, fuzzy, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Kontributors"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Azerbaijani",
"reviewed": false
}

View file

@ -0,0 +1,666 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.12\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-04-02 23:12+0000\n"
"Last-Translator: rferee <rferee_subs@protonmail.com>\n"
"Language-Team: Belarusian <https://hosted.weblate.org/projects/"
"libretranslate/app/be/>\n"
"Language: be\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.5-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Памылковы JSON-фармат"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Аўтавызначэнне"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Патрэбна аўтарызацыя"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Перавышаны ліміт запытаў"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Памылковы API ключ"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Калі ласка звяжыцеся з аператарам сэрверу каб атрымаць API ключ"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Наведайце %(url)s каб атрымаць API ключ"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Запаволенне:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Памылковы запыт: параметар %(name)s адсутнічае"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Памылковы запыт: запыт (%(size)s) перавышае дазволены ліміт тэксту "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s не падтрымліваецца"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "Фармат %(format)s не падтрымліваеецца"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) не даступная як мова перакладу з %(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Не атрымалася перакласці тэкст: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Переклад файлаў вымкнуты на гэтым сэрвере."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Памылковы запыт: пусты файл"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Памылковы запыт: фармат файла не падтрымліваецца"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Няслушная назва файла"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Прапанаванні выключаны на гэтым сэрверы."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Англійская"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Арабская"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Азербайджанская"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Кітайская"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Чешская"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Дацкая"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Нідэрландская"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Эсперанта"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Фінская"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Французская"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Нямецкая"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Грэчаская"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Іўрыт"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Хіндзі"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Венгерская"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Інданезійская"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Ірландская"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Італьянская"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Японская"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Карэйская"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Персідская"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Польская"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Партугальская"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Руская"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Славацкая"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Іспанская"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Шведская"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Турэцкая"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Украінская"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "В’етнамская"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Атрымаць спіс падтрыманых моў"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Спіс моў"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "пераклад"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Перакласць тэкст з адной мовы на іншую"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Перакладзены тэкст"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Памылковы запыт"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Памылка перакладу"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Запаволенне"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Заблакавана"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Прывітанне, свет!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Тэкст(а) для перакладу"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Код мовы арыгінала"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Код мовы пераклада"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "тэкст"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Фармат выточнага тэксту:\n"
"* `text` - Звычайны тэкст\n"
"* `html` - HTML-разметка\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API ключ"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Перакласць файл з адной мовы на іншую"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Перакладзены файл"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Файл для перакладу"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Вызначыць мову аднаго тэксту"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Вызначэння"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Памылка вызначэння"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Тэкст для вызначэння"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Атрымаць налады для інтэрфэйсу"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "налады інтэрфэйсу"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "інтэрфейс"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Запрапанаваць як палепшыць пераклад"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Поспех"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Не аўтаразаваны"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Арыгінальны тэкст"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Запрапанаваны пераклад"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Мова арыгінальнага тэкста"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Мова прапанаванага перакладу"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "зваротная сувязь"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Код мовы"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Чалавекачытальная назва мовы (па-ангельску)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Коды падтрымліваемых моў"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Перакладзены(-я) тэкст(-а)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Паведамленне пра абмылу"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Прычына запаволення"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL-адрэса перакладзенага файла"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Ровень упэўненасці"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
"Абмежаванне колькаскі знакаў для гэтай мовы (-1 азначае адсутнасць "
"абмежаванняў)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Час перакладу інтэрфэйсу перавышаны"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Ці увамкнёная база дадзеных API ключоў."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Ці патрэбен API ключ."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Ці ўвамкненна магчымасць адпраўляць прапановы."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Падтрымліваемыя фарматы файлаў"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Ці было адсыланне паспяховым"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Скапіяваць тэкст"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Немагчыма спампаваць %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Невядомая памылка"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Скапіявана"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Дзякуй за вашу заўвагу. Прыміце да ўвагі: Ваша прапанова не адразу набудзе "
"моц."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Няма даступных моў. Вы слушна ўсталявалі мадэлі?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Увядзіце ваш API ключ. Калі вам патрэбен API ключ, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "націсніце на спасылку \"Атрымаць API ключ\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "звяжыцеся з аператарам сэрвера."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Бясплатнае API для машыннага перакладу з адкрытым выточным кодам"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
#, fuzzy
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr "Бясплатнае API для машыннага перакладу з адкрытым выточным кодам."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "пераклад"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr ""
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr ""
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr ""
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr ""
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr ""
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr ""
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr ""
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr ""
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr ""
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr ""
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr ""
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr ""
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr ""
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr ""
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr ""
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr ""
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr ""
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr ""
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr ""
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr ""
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr ""
#: libretranslate/templates/index.html:253
msgid "File"
msgstr ""
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr ""
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr ""
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr ""
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr ""
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr ""
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr ""
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr ""
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr ""
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr ""
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr ""

View file

@ -0,0 +1,670 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.12\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-02-17 02:36+0000\n"
"Last-Translator: Salif Mehmed <mail@salif.eu>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/libretranslate/"
"app/bg/>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.4\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Невалиден JSON формат"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Разпознаване"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Неоторизиран"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Твърде много нарушения на ограниченията на заявките"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Невалиден API ключ"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Моля, свържете се с оператора на сървъра, за да получите API ключ"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Посетете %(url)s, за да получите API ключ"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Забавяне:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Невалидна заявка: липсващ %(name)s параметър"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Невалидна заявка: заявката (%(size)s) надвишава ограничението за текст "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s не се поддържа"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "Форматът %(format)s не се поддържа"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) не е наличен като целеви език от %(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Не може да се преведе текстът: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Превеждането на файлове е изключено на този сървър."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Невалидна заявка: празен файл"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Невалидна заявка: файловият формат не се поддържа"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Невалидно име на файла"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Предложенията са изключени на този сървър."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Английски"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Арабски"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Азербайджански"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Китайски"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Чешки"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Датски"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Нидерландски"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Есперанто"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Финландски"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Френски"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Немски"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Гръцки"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Иврит"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Хинди"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Унгарски"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Индонезийски"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Ирландски"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Италиански"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Японски"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Корейски"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Персийски"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Полски"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Португалски"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Руски"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Словашки"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Испански"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Шведски"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Турски"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Украински"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Виетнамски"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Извличане на списък с поддържани езици"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Списък с езици"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "превеждане"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Превеждане на текст от един език на друг"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Преведен текст"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Невалидна заявка"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Грешка при превода"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Забавяне"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Блокиран"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Здравей, свят!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Текст(ове) за превод"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Код на изходния език"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Код на целевия език"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "text"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Формат на изходния текст:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API ключ"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Превеждане на файл от един език на друг"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Преведен файл"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Файл за превод"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Разпознаване на езика на единичен текст"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Разпознавания"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Грешка при разпознаване"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Текст за разпознаване"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Извличане на специфични за клиентска част настройки"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "настройки на клиентската част"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "клиентска част"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Изпрати предложение за подобряване на превода"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Успех"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Не оторизиран"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Оригинален текст"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Предложен превод"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Език на оригиналния текст"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Език на предложения превод"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "обратна връзка"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Езиков код"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Човекоразбираемо име на езика (на английски)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Поддържани целеви езикови кодове"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Преведен(и) текст(ове)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Съобщение за грешка"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Причина за забавяне"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Адрес на преведен файл"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Стойност на увереност"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
"Ограничение за въвеждане на символи за този език (-1 означава, че няма "
"ограничение)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Време за изчакване на превода през клиентската част"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Дали базата данни с API ключове е включена."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Дали API ключ е задължителен."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Дали изпращането на предложения е включено."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Поддържан файлов формат"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Дали подаването е било успешно"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Копиране на текста"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Не може да се зареди %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Неизвестна грешка"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Копиран"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Благодарности за поправката. Имайте предвид, че предложението няма да влезе "
"в сила веднага."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Няма налични езици. Правилно ли инсталирахте моделите?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Въведете своя API ключ. Ако имате нужда от API ключ, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "натиснете връзката „Получаване на API ключ“."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "свържете се с оператора на сървъра."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Свободен API с отворен код за машинен превод"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Свободен API с отворен код за машинен превод. Самостоятелен хостинг, офлайн "
"способност и лесен за настройка. Стартирайте свой собствен API сървър само "
"за няколко минути."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "превод"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API Документация"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Получаване на API ключ"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Задаване на API ключ"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Промяна на езика"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Редактиране"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Превключване на тъмен/светъл режим"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Отхвърляне"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "API за превеждане"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Превод на текст"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Превод на файлове"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Превеждане от"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Размяна на изходния и целевия език"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Превеждане на"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Текст за превод"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Изтриване на текста"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Предлагане на превод"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Отказ"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Изпращане"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Поддържани файлови формати:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Файл"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Премахване на файла"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Превеждане"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Изтегляне"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Заявка"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Отговор"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "API с отворен код за машинен превод"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Самостоятелен хостинг. Офлайн способност. Лесен за настройка."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Лицензия:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Този публичен API трябва да се използва за тестване, лична или рядка "
"употреба. Ако възнамерявате да стартирате приложение в продукция, моля "
"%(host_server)s или %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "хоствайте свой собствен сървър"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "получаване на API ключ"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Направено с %(heart)s от %(contributors)s и задвижвано от %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Сътрудници"

View file

@ -0,0 +1,4 @@
{
"name": "Bulgarian",
"reviewed": true
}

View file

@ -0,0 +1,660 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.12\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-03-07 08:01+0000\n"
"Last-Translator: d <dmanye@gmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/libretranslate/"
"app/ca/>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.5-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Format JSON invàlid"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Detecció automàtica"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "No autoritzat"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Massa violacions de límits de la sol·licitud"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Clau API invàlida"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr ""
"Si us plau, contacta amb l'administrador del servidor per demanar una clau "
"API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Visita %(url)s per demanar una clau API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr ""
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Sol·licitud no vàlida: falta el paràmetre %(name)s"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Sol·licitud no vàlida: la sol·licitud (%(size)s) supera el límit de text "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "El %(lang)s no és compatible"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "El format %(format)s no està implementat"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) no està disponible com a llengua de destí des de "
"%(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "No es pot traduir el text: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "La traducció de fitxers està deshabilitada en aquest servidor."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Sol·licitud no vàlida: fitxer buit"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Sol·licitud no vàlida: el format del fitxer no està implementat"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Nom de fitxer no vàlid"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Els suggeriments estan deshabilitats en aquest servidor."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "anglès"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "àrab"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "àzeri"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "xinès"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "txec"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "danès"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "holandès"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "finès"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "francès"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "alemany"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "grec"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "hebreu"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "hongarès"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "indonesi"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "irlandès"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "italià"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "japonès"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "coreà"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "persa"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "polonès"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "portuguès"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "rus"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "eslovac"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "castellà"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "suec"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "turc"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "ucraïnès"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "vietnamita"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Recupera la llista d'idiomes compatibles"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Llista d'idiomes"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "traduir"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Traduir text d'un idioma a un altre"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Text traduït"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Petició no vàlida"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "S'ha produït un error de traducció"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr ""
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Prohibit"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Hola món!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Text(s) a traduir"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Codi de l'idioma font"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Codi de l'idioma objectiu"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "text"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr ""
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr ""
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr ""
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr ""
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr ""
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr ""
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr ""
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr ""
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr ""
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr ""
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Envia un suggeriment per millorar una traducció"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr ""
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr ""
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Text original"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Traducció suggerida"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Idioma del text original"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr ""
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr ""
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr ""
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr ""
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr ""
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr ""
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr ""
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr ""
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr ""
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr ""
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr ""
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr ""
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr ""
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr ""
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr ""
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr ""
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr ""
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr ""
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr ""
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr ""
#: libretranslate/templates/index.html:11
msgid "api"
msgstr ""
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr ""
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr ""
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr ""
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr ""
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr ""
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr ""
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr ""
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr ""
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr ""
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr ""
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr ""
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr ""
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr ""
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr ""
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr ""
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr ""
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr ""
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr ""
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr ""
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr ""
#: libretranslate/templates/index.html:253
msgid "File"
msgstr ""
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr ""
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr ""
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr ""
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr ""
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr ""
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr ""
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr ""
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr ""
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr ""
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr ""

View file

@ -0,0 +1,669 @@
# Czech translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-01-23 14:01+0000\n"
"Last-Translator: Michal Čihař <michal@weblate.org>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/libretranslate/app/"
"cs/>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.4-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Neplatný formát JSON"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Automaticky rozpoznat"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Neoprávněné"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Příliš mnoho omezení požadavků"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Neplatný API klíč"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Obraťte se na provozovatele serveru pro získání API klíče"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Navštivte %(url)s pro získání API klíče"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Zpomalení:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Neplatný požadavek: chybějící parametr %(name)s"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Neplatná požadavek: požadavek (%(size)s) překračuje limit textu (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s není podporováno"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s formát není podporován"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) není k dispozici jako cílový jazyk od %(sname)s "
"(%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Nelze přeložit text: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Překlady souborů jsou na tomto serveru zakázány."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Neplatný požadavek: prázdný soubor"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Neplatný požadavek: formát souboru není podporován"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Neplatný název souboru"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Návrhy jsou na tomto serveru zakázány."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Angličtina"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Arabština"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Ázerbájdžánština"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Čínština"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Čeština"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Dánština"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Holandština"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finština"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Francouzština"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Němčina"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Řečtina"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Hebrejština"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindština"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Maďarština"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonéština"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irština"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Italština"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Japonština"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Korejština"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Perština"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Polština"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugalština"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Ruština"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Slovenština"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Španělština"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Švédština"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Turečtina"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ukrajinština"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnamština"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Získat seznam podporovaných jazyků"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Seznam jazyků"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "překlady"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Přeložit text do jiného jazyka"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Přeložený text"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Neplatný požadavek"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Chyba překladu"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Zpomalte"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Zablokován"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Ahoj světe!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Text(y) k překladu"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Kód zdojového jazyka"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Kód cílového jazyka"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "text"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Formát zdrojového textu:\n"
"* `text` - prostý text\n"
"* `html` - HTML kód\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API klíč"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Přeložit soubor do jiného jazyka"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Přeložený soubor"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Soubor k překladu"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Rozpozná jazyk jediného textu"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Rozpoznání"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Chyba rozpoznání"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Text pro rozpoznání"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Načíst nastavení specifické pro rozhraní"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "nastavení rozhraní"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "rozhraní"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Odeslat návrh na zlepšení překladu"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Hledat"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Chybí oprávnění"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Původní text"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Navrhovaný překlad"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Jazyk původního textu"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Jazyk navrhovaného překladu"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "zpětná vazba"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Kód jazyka"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Lidsky čitelný název jazyka (v angličtině)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Podporované cílové jazykové kódy"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Přeložený text(y)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Chybová zpráva"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Důvod pro zpomalení"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL přeloženého souboru"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Míra jistoty"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Omezení počtu znaků pro tento jazyk (-1 označuje žádný limit)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Časový limit překladu rozhraní"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Jestli je dostupná databáze API klíčů."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Jestli je vyžadován API klíč."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Jestli je povoleno podání návrhů."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Podporované formáty souborů"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Jestli bylo podání úspěšné"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Kopírovat text"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Nelze načíst %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Neznámá chyba"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Zkopírováno"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "Díky za opravu. Všimněte si, že návrh nebude mít vliv hned."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Žádné jazyky. Nainstalovali jste modely správně?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Zadejte ve svém API klíč. Pokud potřebujete klíč API, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "následujte odkaz „Získejte API klíč“."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "obraťte se na provozovatele serveru."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Zdarma a Open Source API strojového překladu"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Zdarma a Open Source API strojového překladu. Vlastní hostovaní, použitelné "
"bez připojení a snadno nastavitelné. Spusťte si vlastní API server během "
"několika minut."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "překlad"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API dokumentace"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Získejte API klíč"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Nastavit API klíč"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Změnit jazyk"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Editace"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Přepnout tmavý / světlý režim"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Odmítnout"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Překladové API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Přeložit text"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Přeložit soubory"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Přeložit z"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Vyměnit zdroj a cílové jazyky"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Přeložit do"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Text překládat"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Smazat text"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Navrhnout překlad"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Hledat"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Odeslat"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Podporované formáty souborů:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Soubor"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Odebrat soubor"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Přeložit"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Stáhnout"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Požadavek"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Odpoveď"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Open Source API strojového překladu"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Vlastní hostovnání. Použitelné bez připojení. Snadné nastavení."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Licence:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Toto veřejné API by měl být použito jen pro testování, osobní nebo pro "
"občasné použití. Pokud se chystáte spustit aplikaci v ostrém provozu, prosím "
"%(host_server)s nebo %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "hostujte vlastní server"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "získejte API klíč"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Vyrobeno s %(heart)s %(contributors)s a poháněno %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s přispěvateli"
#~ msgid "multipart/form-data"
#~ msgstr "vícepart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Czech",
"reviewed": true
}

View file

@ -0,0 +1,671 @@
# Danish translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-06-09 17:09+0000\n"
"Last-Translator: Luna <social.pvxuu@slmail.me>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/libretranslate/"
"app/da/>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Ugyldigt JSON-format"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Auto-registrer"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Uautoriseret"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "For mange overtrædelser af anmodningsbegrænsninger"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Ugyldig API-nøgle"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Kontakt venligst serveroperatøren for at få en API-nøgle"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Besøg %(url)s for at få en API-nøgle"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Nedsættelse:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Ugyldig anmodning: manglende %(name)s-parameter"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Ugyldig anmodning: anmodningen (%(size)s) overskrider tekstgrænsen "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s understøttes ikke"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s-format understøttes ikke"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) er ikke tilgængelig som målsprog fra %(sname)s "
"(%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Kan ikke oversætte tekst: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Oversættelse af filer er deaktiveret på denne server."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Ugyldig anmodning: tom fil"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Ugyldig anmodning: filformat understøttes ikke"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Ugyldigt filnavn"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Forslag er deaktiveret på denne server."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Engelsk"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Arabisk"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Aserbajdsjan"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Kinesisk"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Tjekkisk"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Dansk"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Hollandsk"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finsk"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Fransk"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Tysk"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Græsk"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Hebræisk"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Ungarsk"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonesisk"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irsk"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Italiensk"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Japansk"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Koreansk"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Persisk"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Polsk"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugisisk"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Russisk"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Slovakisk"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Spansk"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Svensk"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Tyrkisk"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ukrainsk"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnamesisk"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Hent liste over understøttede sprog"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Liste over sprog"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "oversæt"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Oversæt tekst fra et sprog til et andet"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Oversat tekst"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Ugyldig anmodning"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Oversættelsesfejl"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Sænk farten"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Bandlyst"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Hej verden!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Tekst(er) at oversætte"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Kildesprogkode"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Målsprogkode"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "tekst"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Format af kildetekst:\n"
" * `tekst` - Almindelig tekst\n"
" * `html` - HTML-markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API-nøgle"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Oversæt fil fra et sprog til et andet"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Oversat fil"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Fil at oversætte"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Registrer sproget i en enkelt tekst"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Registreringer"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Registreringsfejl"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Tekst at registrere"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Hent frontend-specifikke indstillinger"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "frontend-indstillinger"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "frontend"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Indsend et forslag til forbedring af en oversættelse"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Succes"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Ikke autoriseret"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Original tekst"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Foreslået oversættelse"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Originaltekstens sprog"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Sprog i foreslået oversættelse"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "feedback"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Sprogkode"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Menneskeligt læseligt sprognavn (på engelsk)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Understøttede målsprogkoder"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Oversat tekst(er)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Fejlmeddelelse"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Årsag til nedbremsning"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Oversat fil-URL"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Konfidensværdi"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Grænse for tegninput for dette sprog (-1 angiver ingen grænse)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Timeout for frontend-oversættelse"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Om API-nøgledatabasen er aktiveret."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Om en API-nøgle er påkrævet."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Om indsendelse af forslag er aktiveret."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Understøttede filformater"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Om indsendelse var vellykket"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Kopiér tekst"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Kan ikke indlæse %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Ukendt fejl"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Kopieret"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Tak for din rettelse. Bemærk, at forslaget ikke træder i kraft med det samme."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Ingen tilgængelige sprog. Har du installeret modellerne korrekt?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Indtast din API-nøgle. Hvis du har brug for en API-nøgle, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "tryk på linket \"Get API Key\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "kontakt serveroperatøren."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Gratis og Open Source Maskinoversættelses-API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Gratis og Open Source Maskinoversættelses-API. Selv-hosted, kan bruges "
"offline og er let at opsætte. Kør din egen API-server på blot et par "
"minutter."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "oversættelse"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API-dokumenter"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Få API-nøgle"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Indstil API-nøgle"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Skift sprog"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Rediger"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Skift mellem mørk/lys tilstand"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Afvis"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Oversættelses-API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Oversæt Tekst"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Oversæt Filer"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Oversæt fra"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Byt om på kilde- og målsprog"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Oversæt til"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Tekst at oversætte"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Slet tekst"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Foreslå oversættelse"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Annuller"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Send"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Understøttede filformater:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Fil"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Fjern fil"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Oversæt"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Hent"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Anmod"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Svar"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Open Source Maskinoversættelses-API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Selv-Hosted. Kan bruges offline. Nem at opsætte."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Licens:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Denne offentlige API bør bruges til test, personlig eller sjælden brug. Hvis "
"du har tænkt dig at køre en applikation i produktion, venligst %(host_server)"
"s eller %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "host din egen server"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "få en API-nøgle"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Lavet med %(heart)s af %(contributors)s og drevet af %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Bidragsydere"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Danish",
"reviewed": false
}

View file

@ -0,0 +1,674 @@
# German translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-08-04 17:04+0000\n"
"Last-Translator: Simon Hahne <simonhahne@web.de>\n"
"Language: de\n"
"Language-Team: German "
"<https://hosted.weblate.org/projects/libretranslate/app/de/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Ungültiges JSON-Format"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Auto-Erkennung"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Unbefugt"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Zu viele Verstöße gegen die Anfragelimits"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Ungültiger API-Schlüssel"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr ""
"Bitte kontaktieren Sie den Serverbetreiber, um einen API-Schlüssel zu "
"erhalten"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Besuchen Sie %(url)s, um einen API-Schlüssel zu erhalten"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Verlangsamung:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Ungültige Anfrage: fehlender Parameter %(name)s"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "Ungültige Anfrage: Anfrage (%(size)s) überschreitet Textlimit (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s wird nicht unterstützt"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "„%(format)s“-Format wird nicht unterstützt"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) ist nicht als Zielsprache von %(sname)s (%(scode)s)"
" verfügbar"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Konnte Text nicht übersetzen: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Die Übersetzung von Dateien ist auf diesem Server deaktiviert."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Ungültige Anfrage: leere Datei"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Ungültige Anfrage: Dateiformat nicht unterstützt"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Ungültiger Dateiname"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Vorschläge sind auf diesem Server deaktiviert."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Englisch"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Arabisch"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Aserbaidschanisch"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Chinesisch"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Tschechisch"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Dänisch"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Niederländisch"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finnisch"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Französisch"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Deutsch"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Griechisch"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Hebräisch"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Ungarisch"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonesisch"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irisch"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Italienisch"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Japanisch"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Koreanisch"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Persisch"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Polnisch"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugiesisch"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Russisch"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Slowakisch"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Spanisch"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Schwedisch"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Türkisch"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ukrainisch"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnamesisch"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Liste der unterstützten Sprachen abrufen"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Liste der Sprachen"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "übersetzen"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Übersetzen von Text aus einer Sprache in eine andere"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Übersetzter Text"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Ungültige Anfrage"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Übersetzungsfehler"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Verlangsamen"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Verbannt"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Hallo Welt!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Zu übersetzende(r) Text(e)"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Quellsprachen-Code"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Zielsprachen-Code"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "text"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Format des Ausgangstextes:\n"
" * `text` Einfacher Text\n"
" * `html` HTML-Markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API-Schlüssel"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Datei von einer Sprache in eine andere übersetzen"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Übersetzte Datei"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Datei zum Übersetzen"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Sprache eines einzelnen Textes erkennen"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Erkennungen"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Erkennungsfehler"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Zu erkennender Text"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Abrufen frontendspezifischer Einstellungen"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "Frontend-Einstellungen"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "Frontend"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Einen Vorschlag zur Verbesserung einer Übersetzung einreichen"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Erfolg"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Nicht autorisiert"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Ursprünglicher Text"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Vorgeschlagene Übersetzung"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Sprache des Originaltextes"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Sprache der vorgeschlagenen Übersetzung"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "Feedback"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Sprachencode"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Vom Menschen lesbare Sprachbezeichnung (auf Englisch)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Unterstützte Zielsprachencodes"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Übersetzter Text(e)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Fehlermeldung"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Gründe für die Verlangsamung"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL der übersetzten Datei"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Konfidenzwert"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Zeicheneingabegrenze für diese Sprache (-1 bedeutet unbegrenzt)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Zeitüberschreitung der Frontend-Übersetzung"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Ob die API-Schlüsseldatenbank aktiviert ist."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Ob ein API-Schlüssel erforderlich ist."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Ob die Einreichung von Vorschlägen aktiviert ist."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Unterstütztes Dateiformat"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Ob die Einreichung erfolgreich war"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Text kopieren"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Kann %(url)s nicht laden"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Unbekannter Fehler"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Kopiert"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Danke für Ihre Korrektur. Beachten Sie, dass der Vorschlag nicht sofort "
"wirksam wird."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Keine Sprachen verfügbar. Haben Sie die Modelle richtig installiert?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
"Geben Sie Ihren API-Schlüssel ein. Wenn Sie einen API-Schlüssel "
"benötigen, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "folgen Sie dem Link „API-Schlüssel erhalten“."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "kontaktieren Sie den Serverbetreiber."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Freie und quelloffene API für maschinelle Übersetzung"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Freie und quelloffene API für maschinelle Übersetzung. Selbstgehostet, "
"offline-fähig und einfach einzurichten. Betreiben Sie Ihren eigenen API-"
"Server in nur wenigen Minuten."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "Übersetzung"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "API"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API-Doku"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "API-Schlüssel erhalten"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "API-Schlüssel festlegen"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Sprache ändern"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Bearbeiten"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Dunkler/Lichtmodus"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Ablehnen"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Übersetzungs-API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Text übersetzen"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Dateien übersetzen"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Übersetzen von"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Quell- und Zielsprache vertauschen"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Übersetzen in"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Text zum Übersetzen"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Text löschen"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Übersetzung vorschlagen"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Abbrechen"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Senden"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Unterstützte Dateiformate:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Datei"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Datei entfernen"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Übersetzen"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Herunterladen"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Anfrage"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Antwort"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Open-Source-API für maschinelle Übersetzung"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Selbstgehostet. Offline-fähig. Einfach einzurichten."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Lizenz:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Diese öffentliche API sollte zum Testen, persönlichen oder seltenen "
"Gebrauch verwendet werden. Wenn Sie eine Anwendung produktiv betreiben "
"wollen, bitte %(host_server)s oder %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "hosten Sie Ihren eigenen Server"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "holen Sie sich einen API-Schlüssel"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Mit %(heart)s gemacht von %(contributors)s und betrieben mit %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "den %(libretranslate)s-Mitwirkenden"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "German",
"reviewed": true
}

View file

@ -0,0 +1,674 @@
# Greek translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-09-30 09:00+0000\n"
"Last-Translator: Michael Lewnton <michaellewnton@gmail.com>\n"
"Language: el\n"
"Language-Team: Greek "
"<https://hosted.weblate.org/projects/libretranslate/app/el/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Άκυρη JSON μορφή"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Αυτόματη Ανίχνευση"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Μη εξουσιοδοτημένο"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Υπερβολικά αιτημάτα, περιορισμός παραβιάσεων"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Μη έγκυρο κλειδί API"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Επικοινωνήστε με τον χειριστή server για να πάρετε ένα API κλειδί"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Επισκεφθείτε τον σύνδεσμο %(url)s για να πάρετε ένα κλειδί API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Επιβράδυνση:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Άκυρο αίτημα: ελλιπής παράμετρος %(name)s"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Άκυρο αίτημα: το αίτημα(%(size)s) υπερβαίνει το όριο χαρακτήρων του "
"κειμένου (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "Δεν υποστηρίζoνται %(lang)s"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "Η μορφή %(format)s δεν υποστηρίζεται"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) δεν είναι διαθέσιμη ως γλώσσα-στόχος από %(sname)s "
"(%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Το κείμενο: %(text)s δεν μπορεί να μεταφράστει"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Η μετάφραση αρχείων ειναί απενεργοποιημένη σε αυτόν τον διακομιστή."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Μη έγκυρο αίτημα: Το αρχείο είναι άδειο"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Ακυρωμένη αίτηση: μορφή αρχείου που δεν υποστηρίζεται"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Μη έγκυρο όνομα αρχείου"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Οι προτάσεις απενεργοποιούνται σε αυτόν τον server."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Αγγλικά"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Αραβικά"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Αζερμπαϊτζάν"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Κινέζοι"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Τσεχική"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Δανία"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Ολλανδ Ολλανδία"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Φινλανδός"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Γάλλος"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Γερμανός"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Ελληνικά"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Εβραϊκή εβραϊκή"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Ούγγρος"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Ινδονησία"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Ιρλανδία"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Ιταλός"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Ιάπωνες"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Κορεατική Κορέα"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Πέρσες"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Πολωνία Πολωνίας"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Πορτογαλικά"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Ρώσοι"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Σλοβά"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Ισπανικά ισπανικά"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Σουηδικά"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Το τουρκικό Τουρκ Τουρκίας"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ουκρανίας"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Βιετναμ Βιετνάμ"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Αναγνώριση λίστας υποστηριζόμενων γλωσσών"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Κατάλογος γλωσσών"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "μετέφρασε"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Μεταφράστε κείμενο από γλώσσα σε άλλη"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Μεταφρασμένο κείμενο"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Ακυρωμένο αίτημα"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Σφάλμα μετάφρασης"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Αργά κάτω"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Απαγορεύεται"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Γεια σας κόσμο!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Κείμενο(-α) για μετάφραση"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Κωδικός γλώσσας πηγής"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Κωδικός γλώσσας στόχου"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "Κείμενο"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Μορφή κειμένου προέλευσης:\n"
"* \"text\" - Plain text\n"
"* \"html\" - HTML markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Κλειδί API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Επίπεδο από γλώσσα σε άλλη"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Μεταφρασμένο αρχείο"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Αρχείο για μετάφραση"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Περιγράψτε τη γλώσσα ενός ενιαίου κειμένου"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Ανιχνεύεται"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Ανίχνευση σφάλματος"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Κείμενο για ανίχνευση"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Επανάκτηση συγκεκριμένων ρυθμίσεων"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "ρυθμίσεις frontend"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "πρόσωψη"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Υποβολή πρότασης για βελτίωση της μετάφρασης"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Επιτυχία"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Όχι εξουσιοδοτημένος"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Πρωτότυπο κείμενο"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Προτεινόμενη μετάφραση"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Γλώσσα αρχικού κειμένου"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Γλώσσα προτεινόμενης μετάφρασης"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "ανατροφοδότηση"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Κωδικός γλώσσας"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Ανθρώπινο αναγνώσιμο όνομα γλώσσας (στα αγγλικά)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Υποστηριζόμενη γλώσσα-στόχος"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Μεταφρασμένο κείμενο(s)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Μήνυμα σφάλματος"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Λόγος για επιβράδυνση"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Μεταφρασμένο αρχείο url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Εμπιστοσύνη αξία"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Χαρακτηριστικά όρια εισόδου για αυτή τη γλώσσα (-1 δεν υποδεικνύει όριο)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Frontend μετάφραση timeout"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Είτε η βάση δεδομένων API είναι ενεργοποιημένη."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Είτε απαιτείται κλειδί API."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Είτε η υποβολή προτάσεων είναι ενεργοποιημένη."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Υποστηριζόμενη μορφή αρχείων"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Είτε η υποβολή ήταν επιτυχής"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Αντιγραφή κειμένου"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Δεν μπορεί να φορτώσει φορτίο %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Άγνωστο λάθος"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Συνήγοροι"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Χάρη στη διόρθωση σας. Σημειώστε ότι η πρόταση δεν θα τεθεί σε ισχύ "
"αμέσως."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Δεν υπάρχουν διαθέσιμες γλώσσες. εγκαταστήσετε σωστά τα μοντέλα?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Τύπος στο API Key. Εάν χρειάζεστε ένα API key, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "πατήστε το σύνδεσμο \"Get API Key\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "επικοινωνήστε με τον διαχειριστή server."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Δωρεάν και Open Source Machine μετάφραση API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Δωρεάν και Open Source Machine Translation API. Self-hosted, offline "
"ικανή και εύκολη στη ρύθμιση. Πατήστε το δικό σας διακομιστή API σε λίγα "
"λεπτά."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "μετάφραση"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API Docs"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Λήψη κλειδιού API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Ορισμός κλειδιού API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Αλλαγή γλώσσας"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Επεξεργασία επεξεργασίας"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Toggle dark/light mode"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Απ"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Μετάφραση API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Μετάφραση κειμένου"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Αρχεία μετάφρασης"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Μεταφράστε από"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Η πηγή Swap και οι γλώσσες-στόχος"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Μετάβαση σε"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Κείμενο για μετάφραση"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Διαγράψτε κείμενο"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Πρότεινε μετάφραση"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Ακύρωση"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Αποστολή"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Υποστηριζόμενη μορφή αρχείων:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "File"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Αφαιρέστε αρχείο αρχείων"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Μετάφρασε"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Λήψη"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Αίτηση αιτήματος"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Απάντηση"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Άνοιγμα API Πηγιαίου Μηχανίματος Μετάφρασης"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Αυτο-Hosted. Offline Capable. Εύκολο στη ρύθμιση."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Άδεια:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Αυτό το δημόσιο API θα πρέπει να χρησιμοποιείται για δοκιμές, προσωπική ή"
" σπάνια χρήση. Εάν πρόκειται να εκτελέσετε μια εφαρμογή στην παραγωγή, "
"παρακαλούμε %(host_server)s ή %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "φιλοξενήσει το δικό σας διακομιστή"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "πάρετε ένα API key"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
"Δημιουργήθηκε με %(heart)s από %(contributors)s και τροφοδοτείται από "
"%(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Συμβαλλόμενοι"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Greek",
"reviewed": false
}

View file

@ -0,0 +1,668 @@
# Esperanto translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-05-02 19:52+0000\n"
"Last-Translator: Jorge Maldonado Ventura <jorgesumle@freakspot.net>\n"
"Language: eo\n"
"Language-Team: Esperanto "
"<https://hosted.weblate.org/projects/libretranslate/app/eo/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Nevalida JSON-aranĝo"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Aŭtomata Detekto"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Ne rajtigita"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Tro da petaj limmalobservoj"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Invalid API-ŝlosilo"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Bonvolu kontakti la servilo operatoro por akiri API-ŝlosilon"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Vizitu %(url)s por akiri API-ŝlosilon"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Malrapidiĝo:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Nevalida peto: mankas %(name)s parametro"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "Nevalida peto: peto (%(size)s) superas tekstlimon (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s ne estas subtenata"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s-aranĝo ne estas subtenata"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) ne estas disponebla kiel cellingvo de %(sname)s "
"(%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Ne povas traduki tekston: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Dosier-tradukoj estas malebligitaj en ĉi tiu servilo."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Nevalida peto: malplena dosiero"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Nevalida peto: dosieraranĝo ne subtenata"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Nevalida dosiernomo"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Sugestoj estas malebligitaj en ĉi tiu servilo."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Angla"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Araba"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Azerbajĝana"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Ĉina"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Ĉeĥa"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Dana"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Nederlanda"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finna"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Franca"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Germana"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Greka"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Hebrea"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindia"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Hungara"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonezia"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irlanda"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Itala"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Japana"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Korea"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Persa"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Pola"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugala"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Rusa"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Slovaka"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Hispana"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Sveda"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Turka"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ukraina"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vjetnama"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Ricevi liston de subtenataj lingvoj"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Listo de lingvoj"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "traduki"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Traduki tekston de lingvo al alia"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Tradukita teksto"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Nevalida peto"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Traduka eraro"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Malrapidiĝo"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Forbarita"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Saluton, mondo!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Teksto(j) por traduki"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Fontlingva kodo"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Kodo de la cellingvo"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "teksto"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Aranĝo de fontteksto:\n"
" * `text` - Plata teksto\n"
" * `html` - HTML-markado\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API-ŝlosilo"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Traduki dosieron de lingvo al alia"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Tradukita dosiero"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Dosiero por traduki"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Detekti la lingvon de ununura teksto"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Ekkonoj"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Ekkona eraro"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Ekkonota teksto"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Ricevu agordojn specifajn de la fasado"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "agordoj de la fasado"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "fasado"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Submeti sugeston por plibonigi tradukon"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Sukceso"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Ne rajtigita"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Origina teksto"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Proponita traduko"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Lingvo de la origina teksto"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Lingvo de la proponita traduko"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "prikomentado"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Lingvokodo"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Hom-legebla lingvonomo (en la angla)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Subtenitaj cellingvokodoj"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Tradukita(j) teksto(j)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Erarmesaĝo"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Kaŭzo de malrapido"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL de tradukita dosiero"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Konfidencvaloro"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Limo de signaj enigoj por ĉi tiu lingvo (-1 indikas neniun limon)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Tempolimo de fasada traduko"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Ĉu la datumbazo de la API-ŝlosilo estas ebligita."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Ĉu API-ŝlosilo estas postulata."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Ĉu submeti proponojn estas ebligita."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Aranĝo de subtenataj dosieroj"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Ĉu submetado estis sukcesa"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Kopii tekston"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Ne povas ŝarĝi %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Nekonata eraro"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Kopiita"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "Dankon pro via korekto. Notu, ke la propono ne ekvalidos tuj."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Neniu lingvo disponebla. Ĉu vi ĝuste instalis la modelojn?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Tajpu vian API-ŝlosilon. Se vi bezonas API-ŝlosilon, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "premu la «Akiri API-ŝlosilon» ligilon."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "kontaktu la servilan operatoron."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Libera kaj malfermitkoda API de maŝina tradukado"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Libera kaj malfermitkoda API de maŝina tradukado. Mem-gastigita, "
"senkonekte funkciebla kaj facile instalebla. Rulu vian propran API-"
"servilon en nur kelkaj minutoj."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "traduko"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API-dokumentaro"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Akiri API-ŝlosilon"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Agordi API-ŝlosilon"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Ŝanĝi la lingvon"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Redakti"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Toggle malhela/luma reĝimo"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Malakcepti"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Tradukado-API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Traduki tekston"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Traduki dosierojn"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Tradukita de"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Interŝanĝi fontajn kaj celajn lingvojn"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Traduki al"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Teksto por traduki"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Forigi tekston"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Proponita traduko"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Nuligi"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Sendi"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Subtenitaj dosierformatoj:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Dosiero"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Forigi dosieron"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Traduku"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Elŝuti"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Peto"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Respondo"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "API de malfermitkoda maŝina tradukado"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Mem-gastigita. Senkonekte funkciebla. Facile instalebla."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Permesilo:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Ĉi tiu publika API devus esti uzita por testado, persona aŭ malofta uzo. "
"Se vi rulos apon en produkta medio, bonvolu %(host_server)s aŭ "
"%(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "gastigi vian propran servilon"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "akiri API-ŝlosilon"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Farita per %(heart)s de %(contributors)s kaj funkciigita per %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Kontribuantoj"
#~ msgid "multipart/form-data"
#~ msgstr "multiparta/forma-datumoj"

View file

@ -0,0 +1,4 @@
{
"name": "Esperanto",
"reviewed": true
}

View file

@ -0,0 +1,674 @@
# Spanish translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-01-25 02:06+0000\n"
"Last-Translator: José Alberto Justiniani <justiniani@gmail.com>\n"
"Language: es\n"
"Language-Team: Spanish "
"<https://hosted.weblate.org/projects/libretranslate/app/es/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Formato JSON inválido"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Detección automática"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "No autorizado"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Demasiadas violaciones a los límites de la solicitud"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Clave API inválida"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr ""
"Por favor, contacte con el operador del servidor para obtener una clave "
"API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Visita %(url)s para conseguir una clave API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Ralentización:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Solicitud inválida: falta %(name)s parámetro"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Solicitud inválida: el %(size)s) de la solicitud excede el límite de "
"(%(limit)s) de texto"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "el %(lang)s no es compatible"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "formato(s) %(format)s no compatible(s)"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) no está disponible como idioma de destino para "
"%(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "No se puede traducir el texto: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "La traducción de archivos está deshabilitada en este servidor."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Solicitud inválida: archivo vacío"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Solicitud inválida: formato de archivo no compatible"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Nombre de archivo inválido"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Las sugerencias están deshabilitadas en este servidor."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Inglés"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Árabe"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Azerbaijani"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Chino"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Checo"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Danés"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Holandés"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finlandés"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Francés"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Alemán"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Griego"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Hebreo"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Húngaro"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonesio"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irlandés"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Italiano"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Japonés"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Coreano"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Persa"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Polaco"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugués"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Ruso"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Eslovaco"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Español"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Suecia"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Turco"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ucraniano"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnamita"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Recuperar la lista de idiomas compatibles"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Lista de idiomas"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "traducir"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Traducir texto de un idioma a otro"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Texto traducido"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Solicitud inválida"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Error de traducción"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Despacio"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Prohibido"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "¡Hola mundo!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Texto(s) para traducir"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Código fuente del idioma"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Código del idioma de destino"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "texto"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Formato de texto fuente:\n"
" * `text` - Texto sin formato\n"
" * `html` - HTML markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Clave API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Traducir archivo de un idioma a otro"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Archivo traducido"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Archivo a traducir"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Detectar el idioma de un solo texto"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Detecciones"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Error de detección"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Texto a detectar"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Recuperar configuración específica de la interfaz"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "configuración de la interfaz"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "interfaz"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Presentar una sugerencia para mejorar la traducción"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Todo salió bien"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "No autorizado"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Texto original"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Traducción propuesta"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Idioma del texto original"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Idioma de la traducción sugerida"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "opinión"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Código de idioma"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Nombre del idioma comprensible por el ser humano (en inglés)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Códigos de idiomas de destino compatibles"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Texto(s) traducido(s)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Mensaje de error"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Razón para reducir la velocidad"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Archivo traducido url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Valor de confianza"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Límite de entrada de caracteres para este idioma (-1 indica sin límite)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Tiempo de traducción de interfaz"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Si la base de datos clave API está habilitada."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Si se necesita una clave API."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Si se permite presentar sugerencias."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Formato de archivos compatibles"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Si el envío tuvo éxito"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Copiar texto"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "No se puede cargar %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Error desconocido"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Copiado"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Gracias por tu corrección. Ten en cuenta que la sugerencia no tendrá "
"efecto inmediatamente."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "No hay idiomas disponibles. ¿Instalaste los modelos correctamente?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Introduce tu clave de API. Si necesitas una clave de API, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "presiona el enlace \"Obtener Clave API\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "comunícate con el operador del servidor."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "API de traducción automática gratuita y de código abierto"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"API de traducción automática gratuita y de código abierto. Autónoma, con "
"capacidad para trabajar sin conexión y fácil de configurar. Aloja tu "
"propio servidor API en sólo unos minutos."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "traducción"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API Docs"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Obtener Clave API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Establecer Clave API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Cambiar el idioma"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Editar"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Modo oscuro/ligero"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Desestimar"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "API de Traducción"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Traducir texto"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Traducir archivos"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Traducir del"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Cambiar idioma de origen y destino"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Traducir al"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Texto para traducir"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Borrar el texto"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Sugerir traducción"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Cancelar"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Enviar"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Formatos de archivo compatibles:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Archivo"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Eliminar el archivo"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Traducir"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Descargar"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Solicitud"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Respuesta"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "API de Traducción de Código Abierto"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Autónoma. Funciona Sin Conexión. Fácil de Configurar."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Licencia:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Esta API pública debería ser utilizada sólo para hacer pruebas y para el "
"uso personal o poco frecuente. Si vas a ejecutar una aplicación en "
"producción, por favor %(host_server)s u %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "aloja tu propio servidor"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "obtén una clave API"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Hecho con %(heart)s por %(contributors)s e impulsado por %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "Colaboradores de %(libretranslate)s"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Spanish",
"reviewed": true
}

View file

@ -0,0 +1,675 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.12\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-02-01 18:01+0000\n"
"Last-Translator: Priit Jõerüüt <hwlate@joeruut.com>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/libretranslate/"
"app/et/>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.4-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Vigane JSON-vorming"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Tuvasta keel automaatselt"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Pole lubatud"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Liiga palju päringuid ühes ajaühikus"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Vigane API võti"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Palun küsi serveri haldajalt API võtit"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "API võtme saamiseks palun vaata seda urli - %(url)s"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Võtame nüüd tempot alla:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Vigane päring: puuduv parameeter „%(name)s“"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Vigane päring: päringu (%(size)s) suurus ületab tekstipäringutele lubatud "
"ülempiiri (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s keel ei ole veel tõlgitav"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s vorming ei ole veel toetatud"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s keel (%(tcode)s) ei ole veel kasutatav sihtkeelena kui lähtekeel "
"on %(sname)s keel (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Teksti tõlkimine ei õnnestu: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Failide tõlkimine ei ole selles serveris lubatud."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Vigane päring: tühi fail"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Vigane päring: failivorming pole toetatud"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Vigane failinimi"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Tõlkesoovituste võimalus ei ole selles serveris kasutusel."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "inglise"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "araabia"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "aserbaidžaani"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "hiina"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "tšehhi"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "taani"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "hollandi"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "soome"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "prantsuse"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "saksa"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "kreeka"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "heebrea"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "ungari"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "indoneesia"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "iiri"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "itaalia"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "jaapani"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "korea"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "pärsia"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "poola"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "portugali"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "vene"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "slovaki"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "hispaania"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "rootsi"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "türgi"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "ukraina"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "vietnami"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Laadi kasutatavate keelte loend"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Keelte loend"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "tõlkimine"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Tõlgi tekst ühest keelest teise"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Tõlgitud tekst"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Vigane päring"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Tõlkeviga"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Aeglustame päringuid"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Keelatud"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Tere maailm!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Tõlgitav tekst"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Lähtekeele kood"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Tõlkekeele kood"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "tekst"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Lähteteksti vorming:\n"
" * `text` - vormindamata tekst\n"
" * `html` - HTML-vormingus tekst\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API võti"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Tõlgi fail ühest keelest teise"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Tõlgitud fail"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Tõlgitav fail"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Tuvasta ühe teksti keel"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Tuvastamise tulemused"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Viga tuvastamisel"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Tekst, kust peaksime keele tuvastama"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Päring kasutajaliidese seadistuste vaatamiseks"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "kasutajaliidese seadistused"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "kasutajaliides"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Võimalus ettepanekute saatmiseks tõlke parandamise nimel"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Päring õnnestus"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Päring pole lubatud"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Lähtetekst"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Ettepanek tõlke parandamiseks"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Teksti lähtekeel"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Teksti tõlkekeel"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "tagasiside"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Keelekood"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Inimloetav keele nimi (inglise keeles)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Tõetatud tõlkekeelte koodid"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Tõlgitud tekst(id)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Veateade"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Päringute aeglustamise põhjus"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Tõlgitud faili url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Usaldusväärsuse väärtus"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
"Lähteteksti tähemärkide mahu ülempiir selle keele kohta (-1 märgib ülempiiri "
"puudumist)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Tõlkepäringu aegumine kasutajaliideses"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Kas API võtmete andmebaas on kasutusel."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Kas API võtme kasutamine on nõutav."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Kas tõlkesoovituste saatmine on kasutusel."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Toetatud failivormingud"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Kas tõlkesoovituse saatmine õnnstus"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Kopeeri tekst"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "%(url)s urli laadimine ei õnnestunud"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Tundmatu viga"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Kopeeritud"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Täname tõlke parandusettepaneku eest. Palun arvesta, et ta ei tule koheselt "
"kasutusele."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr ""
"Ühtegi keelt pole saadaval. Kas sa keelemudelid paigaldasid korrektselt?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Sisesta siia oma API võti. Kui sul API võti on puudu, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "klõpsi linki „Osta API võti“."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "võta ühendust serveri haldajaga."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Vaba ja avatud lähtekoodiga masintõlke API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Vaba ja avatud lähtekoodiga masintõlke API. Majutatav oma serveris, toimib "
"ka võrguühenduseta ja on hõlpsasti seadistatav. Võta oma API server "
"kasutusele vaid mõne minutiga."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "tõlge"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API kirjeldus"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Osta API võti"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Lisa API võti"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Vaheta keelt"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Muuda"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Vaheta kujundust: tume/hele"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Loobu"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "TõlkeAPI"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Tõlgi teksti"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Tõlgi faile"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Lähtekeel"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Vaheta lähte- ja tõlkekeeled"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Tõlkekeel"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Tõlgitav tekst"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Kustuta tekst"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Soovita paremat tõlget"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Katkesta"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Saada"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Kasutatavad failivormingud:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Fail"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Eemalda fail"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Tõlgi"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Laadi alla"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Päring"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Vastus"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Avatud lähtekoodiga masintõlke API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr ""
"Majutatav oma serveris. Toimib ka võrguühenduseta. Hõlpsasti seadistatav."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Litsents:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Palun kasuta seda avalikku API't testimiseks, isiklikel eesmärkidel või "
"muudel harvadel juhtudel. Kui tahad kasutada API't mõnes "
"produktsioonirakenduses, siis palun %(host_server)s või %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "pane püsti oma server"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "või osta meie serveri API võti"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
"Tehtud suure %(heart)s'ga, millesse panustasid %(contributors)s ning "
"sisulise töö teeb ära %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s kaasautorid"

View file

@ -0,0 +1,654 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.12\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-12-05 20:06+0000\n"
"Last-Translator: Aitor Salaberria <trslbrr@gmail.com>\n"
"Language-Team: Basque <https://hosted.weblate.org/projects/libretranslate/"
"app/eu/>\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.3-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "JSON formatu baliogabea"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Hautemate automatikoa"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Baimenik gabe"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Eskaera-mugaren urraketa gehiegi"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "API-aren gako baliogabea"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr ""
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr ""
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr ""
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr ""
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr ""
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr ""
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr ""
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr ""
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr ""
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr ""
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr ""
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr ""
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr ""
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr ""
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr ""
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr ""
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr ""
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr ""
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr ""
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr ""
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr ""
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr ""
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr ""
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr ""
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr ""
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr ""
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr ""
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr ""
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr ""
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr ""
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr ""
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr ""
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr ""
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr ""
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr ""
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr ""
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr ""
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr ""
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr ""
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr ""
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr ""
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr ""
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr ""
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr ""
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr ""
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr ""
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr ""
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr ""
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr ""
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr ""
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr ""
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr ""
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr ""
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr ""
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr ""
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr ""
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr ""
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr ""
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr ""
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr ""
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr ""
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr ""
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr ""
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr ""
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr ""
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr ""
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr ""
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr ""
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr ""
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr ""
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr ""
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr ""
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr ""
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr ""
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr ""
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr ""
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr ""
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr ""
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr ""
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr ""
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr ""
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr ""
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr ""
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr ""
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr ""
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr ""
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr ""
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr ""
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr ""
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr ""
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr ""
#: libretranslate/templates/index.html:11
msgid "api"
msgstr ""
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr ""
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr ""
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr ""
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr ""
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr ""
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr ""
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr ""
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr ""
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr ""
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr ""
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr ""
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr ""
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr ""
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr ""
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr ""
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr ""
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr ""
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr ""
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr ""
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr ""
#: libretranslate/templates/index.html:253
msgid "File"
msgstr ""
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr ""
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr ""
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr ""
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr ""
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr ""
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr ""
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr ""
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr ""
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr ""
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr ""

View file

@ -0,0 +1,647 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-01-06 17:52-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ext\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.11.0\n"
#: libretranslate/app.py:60
msgid "Invalid JSON format"
msgstr ""
#: libretranslate/app.py:128 libretranslate/templates/app.js.template:427
msgid "Auto Detect"
msgstr ""
#: libretranslate/app.py:193
msgid "Unauthorized"
msgstr ""
#: libretranslate/app.py:211
msgid "Too many request limits violations"
msgstr ""
#: libretranslate/app.py:220
msgid "Invalid API key"
msgstr ""
#: libretranslate/app.py:227
msgid "Please contact the server operator to get an API key"
msgstr ""
#: libretranslate/app.py:229
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr ""
#: libretranslate/app.py:269
msgid "Slowdown:"
msgstr ""
#: libretranslate/app.py:467 libretranslate/app.py:469
#: libretranslate/app.py:471 libretranslate/app.py:683
#: libretranslate/app.py:685 libretranslate/app.py:687
#: libretranslate/app.py:838 libretranslate/app.py:987
#: libretranslate/app.py:989 libretranslate/app.py:991
#: libretranslate/app.py:993
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr ""
#: libretranslate/app.py:480 libretranslate/app.py:492
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
#: libretranslate/app.py:525 libretranslate/app.py:530
#: libretranslate/app.py:700 libretranslate/app.py:705
#, python-format
msgid "%(lang)s is not supported"
msgstr ""
#: libretranslate/app.py:536
#, python-format
msgid "%(format)s format is not supported"
msgstr ""
#: libretranslate/app.py:544 libretranslate/app.py:568
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
#: libretranslate/app.py:589
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr ""
#: libretranslate/app.py:676 libretranslate/app.py:730
msgid "Files translation are disabled on this server."
msgstr ""
#: libretranslate/app.py:690
msgid "Invalid request: empty file"
msgstr ""
#: libretranslate/app.py:693
msgid "Invalid request: file format not supported"
msgstr ""
#: libretranslate/app.py:738
msgid "Invalid filename"
msgstr ""
#: libretranslate/app.py:979
msgid "Suggestions are disabled on this server."
msgstr ""
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr ""
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr ""
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr ""
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr ""
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr ""
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr ""
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr ""
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr ""
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr ""
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr ""
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr ""
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr ""
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr ""
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr ""
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr ""
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr ""
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr ""
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr ""
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr ""
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr ""
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr ""
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr ""
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr ""
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr ""
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr ""
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr ""
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr ""
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr ""
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr ""
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr ""
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr ""
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr ""
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr ""
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:219
msgid "Translated text"
msgstr ""
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr ""
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr ""
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr ""
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr ""
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr ""
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr ""
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr ""
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr ""
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr ""
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr ""
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr ""
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr ""
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr ""
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr ""
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr ""
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr ""
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr ""
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr ""
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr ""
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr ""
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr ""
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr ""
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr ""
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr ""
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr ""
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr ""
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr ""
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr ""
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr ""
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr ""
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr ""
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr ""
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr ""
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr ""
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr ""
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr ""
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr ""
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr ""
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:275
#: libretranslate/templates/app.js.template:279
msgid "Copy text"
msgstr ""
#: libretranslate/templates/app.js.template:72
#: libretranslate/templates/app.js.template:78
#: libretranslate/templates/app.js.template:83
#: libretranslate/templates/app.js.template:262
#: libretranslate/templates/app.js.template:332
#: libretranslate/templates/app.js.template:402
#: libretranslate/templates/app.js.template:447
#, python-format
msgid "Cannot load %(url)s"
msgstr ""
#: libretranslate/templates/app.js.template:253
#: libretranslate/templates/app.js.template:323
#: libretranslate/templates/app.js.template:385
#: libretranslate/templates/app.js.template:395
msgid "Unknown error"
msgstr ""
#: libretranslate/templates/app.js.template:276
msgid "Copied"
msgstr ""
#: libretranslate/templates/app.js.template:320
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
#: libretranslate/templates/app.js.template:423
msgid "No languages available. Did you install the models correctly?"
msgstr ""
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
#: libretranslate/templates/app.js.template:479
msgid "press the \"Get API Key\" link."
msgstr ""
#: libretranslate/templates/app.js.template:479
msgid "contact the server operator."
msgstr ""
#: libretranslate/templates/index.html:8 libretranslate/templates/index.html:25
#: libretranslate/templates/index.html:333
msgid "Free and Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:29
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr ""
#: libretranslate/templates/index.html:11
msgid "api"
msgstr ""
#: libretranslate/templates/index.html:64
msgid "API Docs"
msgstr ""
#: libretranslate/templates/index.html:66
msgid "Get API Key"
msgstr ""
#: libretranslate/templates/index.html:68
msgid "GitHub"
msgstr ""
#: libretranslate/templates/index.html:70
msgid "Set API Key"
msgstr ""
#: libretranslate/templates/index.html:72
msgid "Change language"
msgstr ""
#: libretranslate/templates/index.html:78
msgid "Edit"
msgstr ""
#: libretranslate/templates/index.html:154
msgid "Dismiss"
msgstr ""
#: libretranslate/templates/index.html:168
msgid "Translation API"
msgstr ""
#: libretranslate/templates/index.html:172
msgid "Translate Text"
msgstr ""
#: libretranslate/templates/index.html:176
msgid "Translate Files"
msgstr ""
#: libretranslate/templates/index.html:182
msgid "Translate from"
msgstr ""
#: libretranslate/templates/index.html:192
msgid "Swap source and target languages"
msgstr ""
#: libretranslate/templates/index.html:195
msgid "Translate into"
msgstr ""
#: libretranslate/templates/index.html:207
msgid "Text to translate"
msgstr ""
#: libretranslate/templates/index.html:210
msgid "Delete text"
msgstr ""
#: libretranslate/templates/index.html:223
msgid "Suggest translation"
msgstr ""
#: libretranslate/templates/index.html:227
msgid "Cancel"
msgstr ""
#: libretranslate/templates/index.html:230
msgid "Send"
msgstr ""
#: libretranslate/templates/index.html:246
msgid "Supported file formats:"
msgstr ""
#: libretranslate/templates/index.html:250
msgid "File"
msgstr ""
#: libretranslate/templates/index.html:265
msgid "Remove file"
msgstr ""
#: libretranslate/templates/index.html:272
msgid "Translate"
msgstr ""
#: libretranslate/templates/index.html:273
#: libretranslate/templates/index.html:317
msgid "Download"
msgstr ""
#: libretranslate/templates/index.html:292
msgid "Request"
msgstr ""
#: libretranslate/templates/index.html:297
msgid "Response"
msgstr ""
#: libretranslate/templates/index.html:312
msgid "Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:313
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr ""
#: libretranslate/templates/index.html:332
msgid "LibreTranslate"
msgstr ""
#: libretranslate/templates/index.html:334
msgid "License:"
msgstr ""
#: libretranslate/templates/index.html:337
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
#: libretranslate/templates/index.html:337
msgid "host your own server"
msgstr ""
#: libretranslate/templates/index.html:337
msgid "get an API key"
msgstr ""
#: libretranslate/templates/index.html:345
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
#: libretranslate/templates/index.html:345
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr ""

View file

@ -0,0 +1,672 @@
# Persian translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-04-07 09:57+0000\n"
"Last-Translator: Ilya <ilyagvc2@gmail.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/libretranslate/"
"app/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.5-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "فرمت JSON نامعتبر است"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "تشخیص خودکار"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "غیرمجاز"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "تعداد درخواست‌ها بیش از حد مجاز است"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "کلید API نامعتبر است"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "لطفاً برای دریافت کلید API با اپراتور سرور تماس بگیرید"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "برای دریافت کلید API از %(url)s بازدید نمایید"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "کاهش سرعت:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "درخواست نامعتبر: پارامتر %(name)s وجود ندارد"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"درخواست نامعتبر: درخواست (%(size)s) از محدودیت متنی (%(limit)s) فراتر رفت"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s پشتیبانی نمی‌شود"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "فرمت %(format)s پشتیبانی نمی‌شود"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"(%(tcode)s) (%(tname)s) از (%(scode)s) (%(sname)s) به عنوان یک زبان هدف در "
"دسترس نیست"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "متن قابل ترجمه نیست: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "ترجمه فایل در این سرور غیرفعال است."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "درخواست نامعتبر: فایل خالی است"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "درخواست نامعتبر: فرمت فایل پشتیبانی نمی‌شود"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "نام فایل نامعتبر است"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "پیشنهادات در این سرور غیرفعال است."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "انگلیسی"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "عربی"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "آذری"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "چینی"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "(کشور) چک"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "دانمارکی"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "هلندی"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "اسپرانتور"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "فنلاندی"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "فرانسوی"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "آلمانی"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "یونانی"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "عبری"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "هندی"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "مجارستانی"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "اندونزیایی"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "ایرلندی"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "ایتالیایی"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "ژاپنی"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "کره‌ای"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "پارسی"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "لهستانی"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "پرتغالی"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "روسی"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "اسلواکی"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "اسپانیایی"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "سوئدی"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "ترکی"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "اوکراینی"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "ویتنامی"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "بازیابی فهرست زبان‌های پشتیبانی شده"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "فهرست زبان‌ها"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "ترجمه"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "ترجمه متن از یک زبان به زبان دیگر"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "متن ترجمه شده"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "درخواست نامعتبر است"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "خطا در ترجمه"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "کاهش سرعت"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "ممنوع شده"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "سلام دنیا!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "متن (ها) برای ترجمه"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "کد زبان منبع"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "کد زبان هدف"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "متن"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"فرمت متن منبع:\n"
"* text - متن ساده\n"
"* html - حالت های html\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "کلید API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "ترجمه فایل از یک زبان به زبان دیگر"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "فایل ترجمه شده"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "فایل برای ترجمه"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "تشخیص زبان یک متن"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "شناسایی ها"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "خطای شناسایی"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "متن برای شناسایی"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "بازیابی تنظیمات ظاهری ویژه"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "تنظیمات ظاهری"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "نما ظاهری"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "پیشنهادی برای بهبود ترجمه ثبت نمایید"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "موفقیت‌آمیز"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "مجاز نیست"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "متن اصلی"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "ترجمه پیشنهادی"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "زبان متن اصلی"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "زبان ترجمه پیشنهادی"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "بازخورد"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "کد زبان"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "نام زبان قابل خواندن برای انسان (به انگلیسی)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "کدهای زبان هدف پشتیبانی شده"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "متن‌(های) ترجمه شده"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "پیام خطا"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "دلیل کاهش سرعت"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "نشانی فایل ترجمه شده"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "ضریب اطمینان"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "محدودیت کاراکتر برای این زبان (-1 یعنی بدون محدودیت)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "محدودیت زمانی ترجمه برای نمای ظاهری"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "اینکه (آیا) پایگاه داده مربوط به کلید API فعال است."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "اینکه (آیا) کلید API مورد نیاز است."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "اینکه (آیا) ارسال پیشنهادات ممکن است."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "فرمت فایل‌های پشتیبانی شده"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "اینکه (آیا) ارسال موفقیت‌آمیز بود"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "کپی متن"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "%(url)s بارگیری نمی‌شود"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "خطای ناشناخته"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "کپی شد"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"از تصحیح شما سپاس‌گزاریم. توجه داشته باشید که این پیشنهاد بلافاصله اجرا "
"نخواهد شد."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "هیچ زبانی در دسترس نیست. آیا مدل‌ها را به‌درستی نصب کرده‌اید؟"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
"کلید API خود را وارد نمایید. اگر به یک کلید API نیاز دارید، "
"%(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "بر روی لینک \"دریافت کلید API\" کلیک کنید."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "با اپراتور سرور تماس بگیرید."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "API ترجمه ماشینی رایگان و متن باز"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"API ترجمه ماشینی رایگان و متن باز. خود میزبان، با قابلیت راه‌اندازی آسان و "
"آفلاین. سرور API خود را تنها در چند دقیقه اجرا کنید."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "ترجمه"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "داکیومنت های API"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "دریافت کلید API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "گیت‌هاب"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "تنظیم کلید API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "تغییر زبان"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "ویرایش"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "تغییر به حالت تیره/روشن"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "انصراف"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "API ترجمه"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "ترجمه متن"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "ترجمه فایل ها"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "ترجمه از"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "جابجایی زبان مبدا و هدف"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "ترجمه به"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "متن برای ترجمه"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "حذف متن"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "پیشنهاد ترجمه"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "لغو"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "ارسال"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "فرمت‌های فایل پشتیبانی شده:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "فایل"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "حذف فایل"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "ترجمه کن"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "بارگیری (دانلود)"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "درخواست"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "پاسخ"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "API ترجمه ماشینی متن باز"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "خود میزبان. قابلیت کار آفلاین. با قابلیت راه‌اندازی آسان."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "لیبر ترنسلیت"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "مجوز:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"این API عمومی باید برای آزمایش، استفاده شخصی یا اختصاصی است. اگر قرار است "
"برنامه‌ای که برای محصول است با آن اجرا کنید، لطفا %(host_server)s یا "
"%(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "در سرور خود میزبانی کنید"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "یک کلید API بگیرید"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "ساخته شده با %(heart)s توسط %(contributors)s و قدرت گرفته از %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "مشارکت‌‌کنندگان %(libretranslate)s"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Persian",
"reviewed": false
}

View file

@ -0,0 +1,666 @@
# Finnish translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-02-27 19:38+0000\n"
"Last-Translator: Marko Korhonen <github@functionalhacker.korhonen.cc>\n"
"Language: fi\n"
"Language-Team: Finnish "
"<https://hosted.weblate.org/projects/libretranslate/app/fi/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Virheellinen JSON formaatti"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Automaattinen havaitseminen"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Luvaton"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Liikaa pyyntöjä rajoittaa rikkomuksia"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Virheellinen API avain"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Ota yhteyttä palvelimen ylläpitäjään saadaksesi API-avaimen"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Vieraile %(url)s hankkiaksesi API avaimen"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Hidasta:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Virheellinen pyyntö: Kadonnut %(name)s parametri"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "Virheellinen pyyntö: pyyntö (%(size)s ylittää tekstin rajan (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s ei ole tuettu"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s formaattia ei tueta"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr "%(tname)s (%(tcode)s) ei ole saatavilla kohdekielenä %(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Ei voi kääntää tekstiä: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Tiedostojen kääntäminen on poistettu käytöstä tällä palvelimella."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Virheellinen pyyntö: tyhjä tiedosto"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Virheellinen pyyntö: tiedostomuotoa ei tueta"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Virheellinen tiedostonimi"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Ehdotukset on poistettu käytöstä tällä palvelimella."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Englanti"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Arabian kieli"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Azerbaidžanin"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Kiina"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Tšekki"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Tanska"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Hollanti"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Suomi"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Ranska"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Saksa"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Kreikka"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Heprea"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Unkari"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonesia"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irlanti"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Italia"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Japani"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Korea"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Persia"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Puola"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugali"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Venäjä"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Slovakia"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Espanja"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Ruotsi"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Turkki"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ukraina"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnami"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Luettelo tuetuista kielistä"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Luettelo kielistä"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "käännökset"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Käännä teksti kielestä toiseen"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Käännetty teksti"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Virheellinen pyyntö"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Käännösvirhe"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Hidasta"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Kielletty"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Hei maailma!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Käännettävä teksti"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Lähdekielikoodi"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Kohdekielen koodi"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "teksti"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Lähdetekstin muoto:\n"
"\"Teksti\" - selkeä teksti\n"
"HTML-merkintä\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API-avain"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Tiedoston kääntäminen kielestä toiseen"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Käännetty tiedosto"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Käännettävä tiedosto"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Tunnista yhden tekstin kieli"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Havainnot"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Tunnistusvirhe"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Tunnistettava teksti"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Etsi rintamakohtaisia asetuksia"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "etusivu asetukset"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "etusivu"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Ehdota parannusta käännökseen"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Onnistui"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Ei todennettu"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Alkuperäinen teksti"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Käännösehdotus"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Alkuperäisen tekstin kieli"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Ehdotetun käännöksen kieli"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "palaute"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Kielikoodi"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Ihmisen luettava kieli (englanniksi)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Tuettu kohdekielikoodi"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Käännetty teksti"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Virheviesti"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Hidastuksen syy"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Käännetyn tiedoston URL"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Luottamusarvo"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Merkkien syöttörajoitus tälle kielelle (-1 = ei rajaa)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Käyttöliittymän käännöksen aikakatkaisu"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Onko API avaintietokanta käytössä."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Tarvitaanko API-avain."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Onko ehdotusten esittäminen mahdollista."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Tuettu tiedostomuoto"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Onnistuiko lähetys"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Kopioi teksti"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Ei voi ladata %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Tuntematon virhe"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Kopioitiin"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "Kiitos korjauksesta. Huomaa, että ehdotus ei tule heti voimaan."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Ei kieliä saatavilla. Oletko asentanut mallit oikein?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Kirjoita API-avaimeesi. Jos tarvitset API-avaimen, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "paina \"Get API Key\" -linkkiä."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "ota yhteyttä palvelimen ylläpitäjään."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Ilmainen ja avoimen lähdekoodin konekäännösrajapinta"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Ilmainen ja avoimen lähdekoodin konekäännösrajapinta. Itseisännöity, "
"offline-tilassa toimiva ja helppo asentaa. Käytä omaa API-palvelintasi "
"muutamassa minuutissa."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "käännös"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API Dokumentaatio"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Hanki API-avain"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Aseta API-avain"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Vaihda kieltä"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Muokkaa"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Tumma/kevyt tila"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Hylkää"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Käännös API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Käännä teksti"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Käännä tiedosto"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Käännökset"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Vaihda lähde ja kohdekielet"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Käännä kielelle"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Käännettävä teksti"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Poista teksti"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Ehdota käännöstä"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Peru"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Lähetä"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Tuetut tiedostomuodot:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Tiedosto"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Poista tiedosto"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Käännökset"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Lataa"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Pyyntö"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Vastaus"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Avoimen lähdekoodin käännös konekäännösrajapinta"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Itseisännöity. Offline-yhteensopiva. Helppo asentaa."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Lisenssi:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Tämä julkinen API on käytettävissä testaamiseen, henkilökohtaiseen tai "
"harvaan käyttöön. Jos aiot käyttää sovellusta tuotannossa, ole hyvä "
"%(host_server)s tai %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "isännöi oma palvelin"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "hanki API-avain"
#: libretranslate/templates/index.html:348
#, fuzzy, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Valmistettu %(heart)s By %(contributors)s ja voimalla %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Osallistujat"
#~ msgid "multipart/form-data"
#~ msgstr "monipuolinen/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Finnish",
"reviewed": false
}

View file

@ -0,0 +1,660 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.12\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-04-03 08:46+0000\n"
"Last-Translator: searinminecraft <114207889+searinminecraft@users.noreply."
"github.com>\n"
"Language-Team: Filipino <https://hosted.weblate.org/projects/libretranslate/"
"app/fil/>\n"
"Language: fil\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 "
"|| n % 10 == 6 || n % 10 == 9);\n"
"X-Generator: Weblate 5.5-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Hindi wastong JSON format"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "I-auto Detect"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Hindi awtorisado"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Masyadong maraming paglalabag sa limitasyon ng hiling"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Hindi wastong API key"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Makipag-ugnayan sa operator ng server para makakuha ng API key"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Bisitahin ang %(url)s para makakuha ng API key"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Slowdown:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Hindi wastong hiling: nawawalang %(name)s na parameter"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Hindi wastong hiling: lumalagpas ang hiling (%(size)s) ang limitasyon ng "
"text (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "Hindi sinusuportahan ang %(lang)s"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "Hindi sinusuportahan ang %(format)s na format"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"Ang %(tname)s (%(tcode)s) ay hindi available bilang target na wika galing sa "
"%(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Hindi masalin ang text: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Ang pagsalin ng file ay naka-disable sa server na ito."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Hindi wastong hiling: walang laman na file"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Hindi wastong hiling: hindi sinusuportahan ang file format"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Hindi wastong filename"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Naka-disable ang mga mungkahi sa server na ito."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr ""
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr ""
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr ""
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr ""
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr ""
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr ""
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr ""
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr ""
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr ""
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr ""
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr ""
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr ""
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr ""
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr ""
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr ""
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr ""
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr ""
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr ""
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr ""
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr ""
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr ""
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr ""
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr ""
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr ""
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr ""
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr ""
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr ""
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr ""
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr ""
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr ""
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Kunin ang listahan ng mga sinusuportahang wika"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Listahan ng mga wika"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr ""
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr ""
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr ""
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr ""
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr ""
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr ""
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr ""
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr ""
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr ""
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr ""
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr ""
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr ""
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr ""
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr ""
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr ""
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr ""
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr ""
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr ""
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr ""
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr ""
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr ""
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr ""
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr ""
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr ""
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr ""
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr ""
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr ""
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr ""
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr ""
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr ""
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr ""
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr ""
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr ""
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr ""
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr ""
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr ""
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr ""
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr ""
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr ""
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr ""
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr ""
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr ""
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr ""
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr ""
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr ""
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr ""
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr ""
#: libretranslate/templates/index.html:11
msgid "api"
msgstr ""
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr ""
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr ""
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr ""
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr ""
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr ""
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr ""
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr ""
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr ""
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr ""
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr ""
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr ""
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr ""
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr ""
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr ""
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr ""
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr ""
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr ""
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr ""
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr ""
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr ""
#: libretranslate/templates/index.html:253
msgid "File"
msgstr ""
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr ""
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr ""
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr ""
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr ""
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr ""
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr ""
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr ""
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr ""
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr ""
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr ""

View file

@ -0,0 +1,673 @@
# French translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-01-04 00:08+0000\n"
"Last-Translator: EGuillemot <Elouen.Guillemot@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/libretranslate/"
"app/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.4-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Format JSON incorrect"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Détection automatique"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Non autorisé"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Dépassement de la limite du nombre de requêtes"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Clé API incorrecte"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Veuillez contacter l'opérateur du serveur pour obtenir une clé API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Visitez %(url)s pour obtenir une clé API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Ralentissement :"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Requête incorrecte: le paramètre %(name)s est manquant"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Requête non valide: la requête (%(size)s) dépasse la limite de texte "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s n'est pas prise en charge"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "le format %(format)s n'est pas pris en charge"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) n'est pas disponible comme langue cible pour "
"%(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Impossible de traduire le texte: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "La traduction de fichiers est désactivée sur ce serveur."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Requête invalide : le fichier est vide"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Requête non valide : le format de ce fichier n'est pas pris en charge"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Nom de fichier invalide"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Les suggestions sont désactivées sur ce serveur."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Anglais"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "arabe"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "azéri"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "chinois"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "tchèque"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "danois"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "néerlandais"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "espéranto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "finnois"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "français"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "allemand"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "grec"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "hébreux"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "hongrois"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "indonésien"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "irlandais"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "italien"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "japonais"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "coréen"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "perse"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "polonais"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "portugais"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "russe"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "slovaque"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "espagnol"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "suédois"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "turque"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "ukrainien"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "vietnamien"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Récupérer la liste des langues prises en charge"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Liste des langues"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "traduction"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Traduire du texte dune langue à l'autre"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Texte traduit"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Requête incorrecte"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Erreur de traduction"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Ralentissement"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Banni"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Bonjour le monde !"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Texte(s) à traduire"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Code de la langue source"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Code de la langue cible"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "texte"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Format du texte source :\n"
" * `text` - Texte brut\n"
" * `html` - Balises HTML\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Clé API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Traduire un fichier d'une langue à une autre"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Fichier traduit"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Fichier à traduire"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Détecter la langue d'un seul texte"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Détections"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Erreur de détection"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Texte à détecter"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Récupérer les paramètres spécifiques à linterface"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "paramètres de linterface"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "interface"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Soumettre une suggestion pour améliorer une traduction"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Succès"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Autorisation manquante"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Texte original"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Traduction proposée"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Langue du texte original"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Langue de la traduction proposée"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "commentaire"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Code de la langue"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Nom de la langue lisible par un humain (en anglais)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Codes de langues cibles pris en charge"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Texte(s) traduit(s)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Message d'erreur"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Raison du ralentissement"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL du fichier traduit"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Valeur de confiance"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Limite de caractères pour cette langue (-1 indique aucune limite)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Expiration du délai d'attente pour l'interface de traduction"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Indique si la base de données de clés API est activée."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Indique si une clé API est requise."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Indique si l'envoi de suggestions est activé."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Formats de fichier pris en charge"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Si l'envoi a réussi"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Copier le texte"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Impossible de charger %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Erreur inconnue"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Copié"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Merci pour votre correction. Notez que la suggestion ne prendra pas effet"
" immédiatement."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Pas de langues disponibles. Avez-vous installé les modèles correctement ?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Entrez votre clé API. Si vous avez besoin d'une clé API, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "appuyez sur le lien « Obtenir une clé d'API »."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "contactez l'opérateur du serveur."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "API de Traduction Automatique libre et ouverte"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"API de Traduction Automatique libre et ouverte. Auto-hébergée, hors ligne"
" et facile à installer. Lancez votre propre serveur API en quelques "
"minutes."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "traduction"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "API"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "Documentation de l'API"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Obtenir une clé d'API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Définir la clé d'API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Changer de langue"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Modifier"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Basculer en mode sombre/clair"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Ignorer"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "API de traduction"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Traduire du texte"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Traduire des fichiers"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Traduire depuis"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Échanger la langue source et la langue cible"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Traduire en"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Texte à traduire"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Supprimer le texte"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Suggérer une traduction"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Annuler"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Envoyer"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Formats de fichiers pris en charge:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Fichier"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Supprimer le fichier"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Traduire"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Télécharger"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Requête"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Réponse"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "API ouverte de traduction automatique"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Auto-hébergé. Mode hors ligne. Facile à configurer."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Licence:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Cette API publique ne devrait être utilisée que pour des tests, de "
"manière personnelle ou occasionnelle. Si vous souhaitez l'utiliser avec "
"une application en production, veuillez %(host_server)s ou "
"%(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "héberger votre propre serveur"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "obtenir une clé d'API"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Conçu avec %(heart)s par %(contributors)s et propulsé par %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "Contributeurs %(libretranslate)s"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "French",
"reviewed": true
}

View file

@ -0,0 +1,684 @@
# Irish translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-01-10 09:57+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language: ga\n"
"Language-Team: Irish "
"<https://hosted.weblate.org/projects/libretranslate/app/ga/>\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 "
":(n>6 && n<11) ? 3 : 4;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Formáid JSON marcáilte"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Déan teagmháil Linn"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Gan údarás"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Go leor sáruithe teorainneacha a iarraidh"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Eochair API luachmhar"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Téigh i dteagmháil leis an oibreoir freastalaí a fháil eochair API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Tabhair cuairt ar %(url)s a fháil eochair API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Slowdown:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, fuzzy, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Iarratas neamhbhailí: ar iarraidh %(name)s paraiméadar"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Iarratas neamhbhailí: iarratas (%(size)s) níos mó ná teorainn téacs "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, fuzzy, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s Níl tacaíocht"
#: libretranslate/app.py:594
#, fuzzy, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s Níl formáid tacaíocht"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) nach bhfuil ar fáil mar sprioctheanga ó %(sname)s "
"(%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Ní féidir téacs a aistriú: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Comhaid aistriúcháin atá faoi mhíchumas ar an bhfreastalaí."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Iarratas neamhbhailí: comhad folamh"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Iarratas neamhbhailí: formáid comhaid nach bhfuil tacaíocht"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Ainm comhaid luachmhar"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Tá moltaí faoi mhíchumas ar an bhfreastalaí."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Gaeilge agus Béarla"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Araibis"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "An Asarbaiseáin"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Sínis"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "An Danmhairgis"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "An Danmhairgis"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "An Ollainnis"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Seirbhís do Chustaiméirí"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Fionlainnis"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Franc na hEilvéise"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Gearmáinis"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Cineál gas: in airde"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Eabhrais"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Déan teagmháil linn"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Foirm duille: oval"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Bláthanna faoi dhíon"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Gaeilge"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Taiseachas aeir: fliuch"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Bláthanna cumhra: cumhráin"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Bláthanna Gairdín"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Cineál gas: in airde"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Cineál gas: in airde"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Bláthanna faoi dhíon"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Bláthanna cumhra: cumhráin"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "An tSlÃ3ivéin"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Riachtanais uisce: measartha"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Sualainnis"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Tuircis"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Cónaidhm na Rúise"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vítneaimis Víneaimis"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Liosta de na teangacha tacaithe"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Liosta teangacha"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "aistriú"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Téacs Translate ó theanga go ceann eile"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Téacs Aistrithe"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Iarratas neamhbhailí"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Earráid aistriúcháin"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Sreabhadh síos"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Inis dúinn, le do thoil.."
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Dia duit domhan!"
#: libretranslate/locales/.swag.py:11
#, fuzzy
msgid "Text(s) to translate"
msgstr "Téacs a aistriú"
#: libretranslate/locales/.swag.py:12
#, fuzzy
msgid "Source language code"
msgstr "Cód teanga"
#: libretranslate/locales/.swag.py:13
#, fuzzy
msgid "Target language code"
msgstr "Tacú le cóid sprioctheanga"
#: libretranslate/locales/.swag.py:14
#, fuzzy
msgid "text"
msgstr "Téacs Cóip"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Formáid téacs foinse:\n"
"* `théacs ` - Cuir téacs\n"
"* html ` - HTML marcóir\n"
#: libretranslate/locales/.swag.py:17
#, fuzzy
msgid "API key"
msgstr "taiseachas aeir: fliuch"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Aistrithe comhad ó theanga go ceann eile"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Aistrithe comhad"
#: libretranslate/locales/.swag.py:20
#, fuzzy
msgid "File to translate"
msgstr "Téacs a aistriú"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "An teanga téacs amháin a bhrath"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Ailtireacht"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Earráid bhrath"
#: libretranslate/locales/.swag.py:24
#, fuzzy
msgid "Text to detect"
msgstr "Déan teagmháil Linn"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Retrive suímh tosaigh ar leith"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "socruithe tosaigh"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "tosaigh"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Cuir moladh chun aistriúchán a fheabhsú"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Rath agus Rath"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Nach bhfuil údaraithe"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Téacs bunaidh"
#: libretranslate/locales/.swag.py:32
#, fuzzy
msgid "Suggested translation"
msgstr "Mol aistriúcháin"
#: libretranslate/locales/.swag.py:33
#, fuzzy
msgid "Language of original text"
msgstr "An teanga téacs amháin a bhrath"
#: libretranslate/locales/.swag.py:34
#, fuzzy
msgid "Language of suggested translation"
msgstr "Mol aistriúcháin"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "aiseolas"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Cód teanga"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Ainm teanga an duine inléite (i mBéarla)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Tacú le cóid sprioctheanga"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Téacs(í) traslatáilte"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Teachtaireacht Earráid"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Cúis le mall síos"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Aistrithe comhad"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Luach minicíochta"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Teorainn ionchuir Carachtar don teanga seo (-1 léiríonn aon teorainn)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Amchlár aistriúcháin Frontend"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Cibé an bhfuil an bunachar sonraí eochair API ar chumas."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Cibé an bhfuil eochair API ag teastáil."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Cibé an bhfuil moltaí a chur isteach ar chumas."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Formáid comhaid Tacaithe"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Cibé an raibh aighneacht rathúil"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Téacs Cóip"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Ní féidir ualach %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Earráid aitheanta"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Copied"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Go raibh maith agat as do cheartú. Tabhair faoi deara nach mbeidh an "
"moladh i bhfeidhm ar shiúl."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Níl aon teangacha ar fáil. An raibh tú a shuiteáil na samhlacha i gceart?"
#: libretranslate/templates/app.js.template:522
#, fuzzy, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Cineál i do API key. Más gá duit eochair API, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "brúigh an nasc \"Get API Key\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "teagmháil a dhéanamh leis an oibreoir freastalaí."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Saor in Aisce agus Oscailte Foinse Meaisín Aistriúchán API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Saor in aisce agus Oscailte Foinse Meaisín API. Féin-óstáil, as líne in "
"ann agus éasca a thus. Rith do fhreastalaí API féin i ach cúpla nóiméad."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "aistriúchán"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "taiseachas aeir: fliuch"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "Docs API"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Faigh API Uisce agus Séarachas"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "Déan teagmháil linn"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Socraigh API Uisce agus Séarachas"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Athraigh teanga"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Inis dúinn, le do thoil.."
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Toggle dorcha / mód éadrom"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Díroghnaigh gach rud"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Aistriúchán API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Translate Téacs"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Aistrithe Comhad"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Translate ó"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Swap foinse agus sprioctheangacha"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Translate isteach"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Téacs a aistriú"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Scrios téacs"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Mol aistriúcháin"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Cealaigh"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Seol do theachtaireacht a chur chugainn"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Formáidí comhaid Tacaithe:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "Déan Teagmháil Linn"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Bain comhad"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Taiseachas aeir: fliuch"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Íoslódáil"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Iarratas a Dhéanamh"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Plandaí faoi dhíon"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Oscailte Foinse Meaisín API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Féin-Hosted. In ann. Éasca le Socrú."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "Déan teagmháil anois"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Ceadúnas:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Ba cheart an API poiblí seo a úsáid le haghaidh tástála, úsáide pearsanta"
" nó go minic. Má tá tú ag dul a reáchtáil iarratas i dtáirgeadh, le do "
"thoil %(host_server)s nó %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "óstach do fhreastalaí féin"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "a fháil eochair API"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
"Déanta le %(heart)s ag an %(contributors)s agus faoi thiomáint ag "
"%(engine)s"
#: libretranslate/templates/index.html:348
#, fuzzy, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Seirbhís do Chustaiméirí"
#~ msgid "multipart/form-data"
#~ msgstr "ilpháirt / form-sonraí"

View file

@ -0,0 +1,4 @@
{
"name": "Irish",
"reviewed": false
}

View file

@ -0,0 +1,666 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-01-06 17:52-0500\n"
"PO-Revision-Date: 2023-01-17 09:47+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/libretranslate/"
"app/gl/>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.15.1-dev\n"
"Generated-By: Babel 2.11.0\n"
#: libretranslate/app.py:60
msgid "Invalid JSON format"
msgstr "Formato JSON non válido"
#: libretranslate/app.py:128 libretranslate/templates/app.js.template:427
msgid "Auto Detect"
msgstr "Auto Detección"
#: libretranslate/app.py:193
msgid "Unauthorized"
msgstr "Non autorizado"
#: libretranslate/app.py:211
msgid "Too many request limits violations"
msgstr "Demasiadas peticións por enriba do límite"
#: libretranslate/app.py:220
msgid "Invalid API key"
msgstr "Chave API non válida"
#: libretranslate/app.py:227
msgid "Please contact the server operator to get an API key"
msgstr "Contacte coa xerencia do servidor para obter unha chave da API"
#: libretranslate/app.py:229
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Visite %(url)s para obter unha chave API"
#: libretranslate/app.py:269
msgid "Slowdown:"
msgstr "Máis amodo:"
#: libretranslate/app.py:467 libretranslate/app.py:469
#: libretranslate/app.py:471 libretranslate/app.py:683
#: libretranslate/app.py:685 libretranslate/app.py:687
#: libretranslate/app.py:838 libretranslate/app.py:987
#: libretranslate/app.py:989 libretranslate/app.py:991
#: libretranslate/app.py:993
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Solicitude non válida: falta o parámetro %(name)s"
#: libretranslate/app.py:480 libretranslate/app.py:492
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Solicitude non válida: solicitude (%(size)s) supera o límite de texto "
"(%(limit)s)"
#: libretranslate/app.py:525 libretranslate/app.py:530
#: libretranslate/app.py:700 libretranslate/app.py:705
#, python-format
msgid "%(lang)s is not supported"
msgstr "Non hai soporte para %(lang)s"
#: libretranslate/app.py:536
#, python-format
msgid "%(format)s format is not supported"
msgstr "Non hai soporte para o formato %(format)s"
#: libretranslate/app.py:544 libretranslate/app.py:568
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s non está dispoñible como idioma a traducir desde "
"%(sname)s (%(scode)s)"
#: libretranslate/app.py:589
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Non se pode traducir: %(text)s"
#: libretranslate/app.py:676 libretranslate/app.py:730
msgid "Files translation are disabled on this server."
msgstr "A tradución de ficheiros está desactivada neste servidor."
#: libretranslate/app.py:690
msgid "Invalid request: empty file"
msgstr "Solicitude non válida: ficheiro baleiro"
#: libretranslate/app.py:693
msgid "Invalid request: file format not supported"
msgstr "Solicitude non válida: o formato do ficheiro non está soportado"
#: libretranslate/app.py:738
msgid "Invalid filename"
msgstr "Nome de ficheiro non válido"
#: libretranslate/app.py:979
msgid "Suggestions are disabled on this server."
msgstr "As suxestións están desactivadas neste servidor."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Inglés"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Árabe"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Acerbaixano"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Chinés"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Checo"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Dinamarqués"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Neerlandés"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finés"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Francés"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Alemán"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Grego"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Hebreo"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Húngaro"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonesio"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irlandés"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Italiano"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Xaponés"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Coreano"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Farsi"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Polaco"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugués"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Ruso"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Eslovaco"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Español"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Sueco"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Turco"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ucraniano"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnamita"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Obter lista dos idiomas soportados"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Lista de idiomas"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "traducir"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Traducir texto dun idioma a outro"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:219
msgid "Translated text"
msgstr "Texto traducido"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Solicitude non válida"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Erro na tradución"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Máis amodo"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Vetado"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Ola mundo!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Texto(s) a traducir"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Código de idioma da fonte"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Código de idioma do obxectivo"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "texto"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Formato do texto fonte:\n"
" * `text`- Texto plano\n"
" * `html`- Marcado HTML\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Chave API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Traducir un ficheiro dun idioma a outro"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Ficheiro traducido"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Ficheiro a traducir"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Detectar idioma dun único texto"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Deteccións"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Erro na detección"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Texto a detectar"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Obter axustes específicos da interface"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "axustes da interface"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "interface"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Enviar unha suxestión para mellorar a tradución"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Correcto"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Non autorizado"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Texto orixinal"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Tradución suxerida"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Idioma do texto orixinal"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Idioma da tradución suxerida"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "opinión"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Código de idioma"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Nome do idioma en formato lexible (en Inglés)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Códigos de idioma obxectivo soportados"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Texto(s) traducido(s)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Mensaxe de erro"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Motivo da ralentización"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL do ficheiro traducido"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Valor de fiabilidade"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
"Límite de caracteres de entrada par este idioma (-1 significa sen límite)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Marxe temporal para a tradución na interface"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Se a base de datos de chaves API está activada."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Se é precisa unha chave API."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Se está activado o envío de suxestións."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Formatos de ficheiro soportados"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Se o envío foi correcto"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:275
#: libretranslate/templates/app.js.template:279
msgid "Copy text"
msgstr "Copiar texto"
#: libretranslate/templates/app.js.template:72
#: libretranslate/templates/app.js.template:78
#: libretranslate/templates/app.js.template:83
#: libretranslate/templates/app.js.template:262
#: libretranslate/templates/app.js.template:332
#: libretranslate/templates/app.js.template:402
#: libretranslate/templates/app.js.template:447
#, python-format
msgid "Cannot load %(url)s"
msgstr "Non se cargou %(url)s"
#: libretranslate/templates/app.js.template:253
#: libretranslate/templates/app.js.template:323
#: libretranslate/templates/app.js.template:385
#: libretranslate/templates/app.js.template:395
msgid "Unknown error"
msgstr "Erro descoñecido"
#: libretranslate/templates/app.js.template:276
msgid "Copied"
msgstr "Copiado"
#: libretranslate/templates/app.js.template:320
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Grazas pola túa corrección. Ten en conta que a suxestión non ten efectos "
"inmediatos."
#: libretranslate/templates/app.js.template:423
msgid "No languages available. Did you install the models correctly?"
msgstr "Sen idiomas dispoñibles. Instalaches os módulos correctamente?"
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Escribe a túa Chave API. Se precisas unha Chave API, %(instructions)s"
#: libretranslate/templates/app.js.template:479
msgid "press the \"Get API Key\" link."
msgstr "preme na ligazón \"Obter Chave API\"."
#: libretranslate/templates/app.js.template:479
msgid "contact the server operator."
msgstr "contacta coa xerencia do servidor."
#: libretranslate/templates/index.html:8 libretranslate/templates/index.html:25
#: libretranslate/templates/index.html:333
msgid "Free and Open Source Machine Translation API"
msgstr "API da Tradución por Máquina de código Libre e Aberto"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:29
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"API da Tradución por Máquina de código Libre e Aberto. Auto-Hospedado, doado "
"de instalar e sen precisar conexión. Executa o teu propio servidor API en só "
"uns minutos."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "tradución"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:64
msgid "API Docs"
msgstr "Docs da API"
#: libretranslate/templates/index.html:66
msgid "Get API Key"
msgstr "Obter Chave API"
#: libretranslate/templates/index.html:68
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:70
msgid "Set API Key"
msgstr "Establecer Chave API"
#: libretranslate/templates/index.html:72
msgid "Change language"
msgstr "Cambiar de Idioma"
#: libretranslate/templates/index.html:78
msgid "Edit"
msgstr "Editar"
#: libretranslate/templates/index.html:154
msgid "Dismiss"
msgstr "Desbotar"
#: libretranslate/templates/index.html:168
msgid "Translation API"
msgstr "API de tradución"
#: libretranslate/templates/index.html:172
msgid "Translate Text"
msgstr "Traducir Texto"
#: libretranslate/templates/index.html:176
msgid "Translate Files"
msgstr "Traducir Ficheiros"
#: libretranslate/templates/index.html:182
msgid "Translate from"
msgstr "Traducir desde"
#: libretranslate/templates/index.html:192
msgid "Swap source and target languages"
msgstr "Intercambiar idiomas de orixe e obxectivo"
#: libretranslate/templates/index.html:195
msgid "Translate into"
msgstr "Traducir ao"
#: libretranslate/templates/index.html:207
msgid "Text to translate"
msgstr "Texto a traducir"
#: libretranslate/templates/index.html:210
msgid "Delete text"
msgstr "Eliminar texto"
#: libretranslate/templates/index.html:223
msgid "Suggest translation"
msgstr "Suxerir tradución"
#: libretranslate/templates/index.html:227
msgid "Cancel"
msgstr "Cancelar"
#: libretranslate/templates/index.html:230
msgid "Send"
msgstr "Enviar"
#: libretranslate/templates/index.html:246
msgid "Supported file formats:"
msgstr "Formatos de ficheiro soportados:"
#: libretranslate/templates/index.html:250
msgid "File"
msgstr "Ficheiro"
#: libretranslate/templates/index.html:265
msgid "Remove file"
msgstr "Eliminar ficheiro"
#: libretranslate/templates/index.html:272
msgid "Translate"
msgstr "Traduce"
#: libretranslate/templates/index.html:273
#: libretranslate/templates/index.html:317
msgid "Download"
msgstr "Descargar"
#: libretranslate/templates/index.html:292
msgid "Request"
msgstr "Solicitar"
#: libretranslate/templates/index.html:297
msgid "Response"
msgstr "Resposta"
#: libretranslate/templates/index.html:312
msgid "Open Source Machine Translation API"
msgstr "API de Tradución por Máquina de Código Aberto"
#: libretranslate/templates/index.html:313
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Auto-Hospedado. Sen Conexión. Doado de Configurar."
#: libretranslate/templates/index.html:332
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:334
msgid "License:"
msgstr "Licenza:"
#: libretranslate/templates/index.html:337
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Esta API pública só debe ser utilizada para probas, de xeito personal e "
"pouco frecuente. Se vas a usar unha aplicación en produción, por favor "
"%(host_server)s ou %(get_api_key)s."
#: libretranslate/templates/index.html:337
msgid "host your own server"
msgstr "instala o teu propio servidor"
#: libretranslate/templates/index.html:337
msgid "get an API key"
msgstr "obtén unha chave API"
#: libretranslate/templates/index.html:345
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Feito con %(heart)s por %(contributors)s e grazas a %(engine)s"
#: libretranslate/templates/index.html:345
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "Colaboradoras de %(libretranslate)s"

View file

@ -0,0 +1,665 @@
# Hebrew translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-05-01 11:52+0000\n"
"Last-Translator: Tamir Ben-Arie <tamirben1@gmail.com>\n"
"Language: he\n"
"Language-Team: Hebrew "
"<https://hosted.weblate.org/projects/libretranslate/app/he/>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "פורמט JSON"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "זיהוי אוטומטי"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "לא מורשה"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "יותר מדי בקשות מגבילות הפרות"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "מפתח API"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "צור קשר עם מפעיל השרת כדי לקבל מפתח API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "בקר ב-%(url)s להשגת מפתח API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "האטה:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "בקשה לא חוקית: פרמטר %(name)s חסר"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "בקשה לא חוקית: בקשה (%(size)s) מעבר למגבלת טקסט (%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s לא נתמך"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "פורמט %(format)s אינו נתמך"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr "(%(tname)s) (%(tcode)s)לא זמינה כשפת מטרה מהשפה %(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "לא ניתן לתרגם טקסט: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "תרגום קבצים מוגבל בשרת זה."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "בקשה לא חוקית: קובץ ריק"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "בקשה לא חוקית: פורמט קובץ לא נתמך"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "שם הקובץ Invalid"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "הצעות מוגבלות בשרת זה."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "אנגלית"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "ערבית"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "אזרבייג'ן"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "סינית"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "צ'כיה צ'כיה"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "דנמרק"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "הולנד הולנדית"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "אספרנטו"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "הפינית"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "צרפתית"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "גרמניה גרמנית"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "יווני"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "עברית"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "הינד"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "הונגריה"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "אינדונזיה"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "אירלנד"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "איטלקי"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "יפן יפנית"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "קוריאה הקוריאנית"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "הפרס"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "פולני"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "פורטוגזית"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "רוסיה"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "סלובקיה"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "ספרדית"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "שוודיה"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "טורקיה"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "אוקראה"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "וייטנאם"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "רשימת השפות הנתמכות"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "רשימת השפות"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "תרגום"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "תרגום טקסט משפה לאחר"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "תרגום הטקסט"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "בקשה בלתי חוקית"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "טעות תרגום"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "להאט"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "חסום"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "שלום עולם!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "טקסט(ים) לתרגום"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "קוד שפת המקור"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "קוד שפת היעד"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "טקסט"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"פורמט טקסט מקור:\n"
"\"טקסט\" - טקסט רגיל\n"
"\"html\" - קוד HTML\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "מפתח API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "תרגום קובץ משפה אחת לאחרת"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "הקובץ המתורגם"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "קובץ לתרגום"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "זהה את השפה של טקסט בודד"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "זיהויים"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "שגיאת זיהוי"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "טקסט לזיהוי"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "אחזר הגדרות frontend"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "הגדרות frontend"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "צד לקוח (frontend)"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "הגשת הצעה לשיפור תרגום"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "הצלחה"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "לא מורשה"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "טקסט מקורי"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "הצעות תרגום"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "שפת הטקסט המקורי"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "שפת התרגום המוצע"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "משוב"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "קוד שפה"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "שם שפה לקריאה אנושית (באנגלית)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "קוד שפת היעד"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "תרגום טקסט(s)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "הודעת שגיאה"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "סיבה להאט"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "קובץ url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "ערך אמון"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "הגבלת קלט תווים לשפה זו (-1 לא מצביעה על גבול)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "זמן תרגום מיידי"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "בין אם מסד הנתונים מפתח API מופעל."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "בין אם נדרש מפתח API."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "בין אם ניתן להגיש הצעות."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "פורמט קבצים נתמך"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "אם ההגשה הייתה מוצלחת"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "העתק טקסט"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "לא ניתן לטעון את %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "טעות לא ידועה"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "שוטרים"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "תודה על התיקון שלך. שימו לב שההצעה לא תיכנס לתוקף מיד."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "אין שפות זמינות. האם התקנת נכון את המודלים?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "הזמן את מפתח ה-API שלך. אם אתה זקוק למפתח API, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "לחצו על הקישור \"Get API Key\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "צור קשר עם מפעיל השרת."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Free and Open Source Machine"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Free and Open Source Machine Translation API עוין עצמי, לא מקוון מסוגל "
"וקל להגדרה. הפעילו את שרת ה- API שלכם תוך מספר דקות בלבד."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "תרגום התרגום"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API Docs"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "קבלת מפתח API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "הגדר מפתח API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "שינוי השפה"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Editעריכה"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "מצב כהה/אור"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "משמעת"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "תרגום API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "תרגום טקסט"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "תרגום קבצים"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "תרגום"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "מקור ושפת היעד"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "לתרגם"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "טקסט לתרגם"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "למחוק טקסט"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "הצעות תרגום"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "ביטול"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "שלח"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "פורמטי קבצים תומכים:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "File"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "הסרת קובץ"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "תרגום"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "הורד Download"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "בקשה"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "תגובה"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "קוד פתוח תרגום API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "מוגן. Offline Capable קל להגדרה."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "רישיון:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"ממשק API ציבורי זה משמש לבדיקה, שימוש אישי או בלתי צפוי בלבד. אם אתה הולך"
" להפעיל יישום בסביבת פעילות מלאה, בבקשה %(host_server)s או "
"%(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "מארח את השרת שלך"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "מפתח API"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "מיוצר עם %(heart)s על ידי %(contributors)s ומופעל על ידי %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "תורמי %(libretranslate)s"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Hebrew",
"reviewed": false
}

View file

@ -0,0 +1,671 @@
# Hindi translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-02-24 17:01+0000\n"
"Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/libretranslate/app/"
"hi/>\n"
"Language: hi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.5-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "अमान्य JSON प्रारूप"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "ऑटो डिटेक्ट करें"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "अनधिकृत"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "बहुत से अनुरोध सीमा उल्लंघन"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "अमान्य API कुंजी"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "API कुंजी प्राप्त करने के लिए कृपया सर्वर ऑपरेटर से संपर्क करें"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "API कुंजी प्राप्त करने के लिए %(url)s पर जाएं"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "गति कम करो:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "अमान्य अनुरोध: %(name)s पैरामीटर अनुपलब्ध है"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "अमान्य अनुरोध: अनुरोध (%(size)s) पाठ सीमा (%(limit)s) से अधिक है"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s समर्थित नहीं है"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s प्रारूप समर्थित नहीं है"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (d)%(tcode)s) से लक्ष्य भाषा के रूप में उपलब्ध नहीं है "
"%(sname)s (d)%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "पाठ का अनुवाद नहीं कर सकते: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "इस सर्वर पर फ़ाइलें अनुवाद अक्षम हैं।."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "अमान्य अनुरोध: खाली फ़ाइल"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "अमान्य अनुरोध: फ़ाइल प्रारूप समर्थित नहीं है"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "अमान्य फ़ाइलनाम"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "इस सर्वर पर सुझाव अक्षम हैं।."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "अंग्रेज़ी"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "अरबी"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "अज़रबैजानी"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "चीनी"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "चेक"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "डैनिश"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "डच"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "एस्पेरांतो"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "फिनिश"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "फ्रेंच"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "जर्मन"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "यूनानी"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "हिब्रू"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "हिन्दी"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "हंगेरियन"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "इंडोनेशिया"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "आयरिश"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "इतालवी"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "जापानी"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "कोरियाई"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "फ़ारसी"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "पोलिश"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "पुर्तगाली"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "रूसी"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "स्लोवाक"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "स्पेनिश"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "स्वीडिश"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "तुर्की"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "यूक्रेनी"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "वियतनामी"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "समर्थित भाषाओं की सूची पुनर्प्राप्त करें"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "भाषाओं की सूची"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "अनुवाद"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "पाठ को एक भाषा से दूसरे में अनुवाद करें"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "अनुवादित पाठ"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "अमान्य अनुरोध"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "अनुवाद त्रुटि"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "गति कम करो"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "प्रतिबंधित"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "नमस्ते दुनिया!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "अनुवाद करने के लिए पाठ"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "स्रोत भाषा का कोड"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "लक्ष्य भाषा का कोड"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "पाठ"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"स्रोत पाठ का प्रारूप:\n"
" * `पाठ` - सादा पाठ\n"
" * `html` - HTML मार्कअप\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API कुंजी"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "किसी भाषा से किसी अन्य भाषा में फ़ाइल ट्रांसलेट करें"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "अनुवादित फाइल"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "अनुवाद करने के लिए फाइल"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "एकल पाठ की भाषा का पता लगाएं"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "जांच"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "जांच त्रुटि"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "डिटेक्ट करने के लिए पाठ"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Frontend विशिष्ट सेटिंग्स पुनर्प्राप्त करें"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "Frontend सेटिंग्स"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "Frontend"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "अनुवाद को बेहतर बनाने के लिए सुझाव देना"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "सफलता"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "अधिकृत नहीं"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "मूल पाठ"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "सुझाया गया अनुवाद"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "मूल पाठ की भाषा"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "सुझाए गए अनुवाद की भाषा"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "प्रतिक्रिया"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "भाषा कोड"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "मानव पठनीय भाषा का नाम (अंग्रेजी में)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "समर्थित लक्ष्य भाषा कोड"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "अनुवादित पाठ(ओं)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "त्रुटि संदेश"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "गति धीमी होने का कारण"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "अनुवादित फ़ाइल url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "आत्मविश्वास मूल्य"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "इस भाषा के लिए चरित्र इनपुट सीमा (-1 इंगित करता है कि कोई सीमा नहीं)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Frontend अनुवाद टाइमआउट"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "क्या API कुंजी डेटाबेस सक्षम है।।"
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "क्या एक API कुंजी की आवश्यकता है।।"
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "क्या सुझाव देना संभव है।."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "समर्थित फाइलें प्रारूप"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "क्या सबमिशन सफल रहा"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "पाठ कॉपी करें"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "%(url)s लोड नहीं किया जा सकता"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "अज्ञात त्रुटि"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "कॉपी किया गया"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "आपके सुधार के लिए धन्यवाद। ध्यान दें कि सुझाव तुरंत प्रभावी नहीं होगा।."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "कोई भाषा उपलब्ध नहीं है। क्या आप मॉडल को सही ढंग से स्थापित कर सकते हैं?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
"अपने API कुंजी में टाइप करें। यदि आपको API कुंजी की आवश्यकता है, "
"%(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "\"API कुंजी प्राप्त करें\" लिंक दबाएं।"
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "सर्वर ऑपरेटर से संपर्क करें।."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "मुफ़्त और मुक्त स्रोत मशीन अनुवाद API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"मुफ़्त और मुक्त स्रोत मशीन अनुवाद एपीआई। स्व-होस्टेड, ऑफ़लाइन सक्षम और सेटअप "
"करने में आसान। कुछ ही मिनटों में अपना स्वयं का API सर्वर चलाएं।"
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "अनुवाद"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API दस्तावेज़"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "API प्राप्त करें कुंजी"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "API सेट कुंजी"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "भाषा बदलें"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "संपादित करें"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "टॉगल डार्क / लाइट मोड"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "खारिज"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "अनुवाद API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "पाठ अनुवाद"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "फ़ाइलें अनुवाद"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "से अनुवाद करें"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "स्रोत और लक्ष्य भाषाओं की अदला-बदली करें"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "में अनुवाद"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "अनुवाद करने के लिए पाठ"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "पाठ हटाएँ"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "अनुवाद सुझाएँ"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "रद्द करें"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "भेजें"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "समर्थित फ़ाइल प्रारूप:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "फ़ाइल"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "फ़ाइल निकालें"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "अनुवाद"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "डाउनलोड"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "अनुरोध"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "जवाब"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "ओपन सोर्स मशीन अनुवाद API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "स्व-होस्टेड। ऑफलाइन सक्षम। सेटअप करने में आसान।."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "लाइसेंस:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"इस सार्वजनिक API का उपयोग परीक्षण, व्यक्तिगत या गलत उपयोग के लिए किया जाना "
"चाहिए। यदि आप उत्पादन में आवेदन चला रहे हैं, तो कृपया ध्यान दें। "
"%(host_server)s या %(get_api_key)s।"
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "अपने सर्वर को होस्ट करें"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "API कुंजी प्राप्त करें"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
"%(contributors)s द्वारा %(heart)s के साथ बनाया गया और %(engine)s द्वारा "
"संचालित"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s योगदानकर्ता"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Hindi",
"reviewed": false
}

View file

@ -0,0 +1,677 @@
# Hungarian translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-04-18 08:04+0000\n"
"Last-Translator: Netesfiu <r4verino@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/libretranslate/"
"app/hu/>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.5-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Érvénytelen JSON formátum"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Automatikus felismerés"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Nincs jogosultsága"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Túl sok kérelem korlátozza a jogsértéseket"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Érvénytelen API kulcs"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr ""
"Kérjük, vegye fel a kapcsolatot a szerver-üzemeltetővel, hogy megkapja az"
" API kulcsot"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Látogasson el a(z) %(url)s címre, API kulcshoz"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Lassulás:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Érvénytelen kérés: hiányzik a(z) %(name)s paraméter"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Érvénytelen kérés: a kérés mérete (%(size)s) meghaladja a szövegkorlátot "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s nyelv nem támogatott"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s formátum nem támogatott"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) nem áll rendelkezésre célnyelvként %(sname)s "
"(%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Nem fordítható szöveg: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Fájlok fordítása kikapcsolva ezen a szerveren."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Érvénytelen kérés: üres fájl"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Érvénytelen kérés: fájlformátum nem támogatott"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Érvénytelen fájlnév"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "A javaslatok kikapcsolva ezen a szerveren."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Angol"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Arab"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Azerbajdzsán"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Kínai"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Cseh"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Dán"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Holland"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Eszperantó"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finn"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Francia"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Német"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Görög"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Héber"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Magyar"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonéz"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Ír"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Olasz"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Japán"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Koreai"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Perzsa"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Lengyel"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugál"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Orosz"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Szlovák"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Spanyol"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Svéd"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Török"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ukrán"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnami"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "A támogatott nyelvek listájának lekérése"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "A nyelvek listája"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "fordítás"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Fordítson szöveget egy nyelvről egy másikra"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Fordított szöveg"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Érvénytelen kérés"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Fordítási hiba"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Lassabban"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Tiltott"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Hello világ!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Lefordítandó szöveg(ek)"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Forrás nyelv kódja"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Cél nyelv kódja"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "szöveg"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Formátum forrás szöveg:\n"
"* `text' - egyszerű szöveg\n"
"* `html' - HTML markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API kulcs"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Fájl fordítása egy nyelvről egy másikra"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Fordított fájl"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Fájl fordítása"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "A szöveg nyelvének észlelése"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Észlelések"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Detection hiba"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Felismerendő szöveg"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Visszakeresni a frontend specifikus beállításokat"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "frontend beállítások"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "frontend"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Küldjön javaslatot a fordítés javításához"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Siker"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Nem engedélyezett"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Eredeti szöveg"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Javasolt fordítás"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Eredeti szöveg nyelve"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "A javasolt fordítás nyelve"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "visszajelzés"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Nyelvkód"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Emberi olvasható nyelv neve (angolul)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Támogatott célnyelvi kódok"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Fordított szöveg(ek)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Hibaüzenet"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "A lelassulás oka"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Fordított fájl url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Bizalmi érték"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Jellemző bemeneti határértéke ennek a nyelvnek (-1 nem jelzi a határt)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Frontend fordítás időtúllépés"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Függetlenül attól, hogy az API kulcs adatbázisa engedélyezett-e."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Szükséges-e API kulcs."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Ha javaslatok benyújtásá engedélyezett."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Támogatott fájlformátum"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Amennyiben a beküldsé sikeres volt"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Szöveg másolása"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Nem tölthető be a(z) %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Ismeretlen hiba"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Másolva"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Köszönöm a korrekciót. Vegye figyelembe, hogy a javaslata nem fog azonnal "
"hatályba lépni."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Nincsenek elérhető nyelvek. Helyesen telepítette a modelleket?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
"Írja be az API kulcsot. Ha szüksége van egy API kulcsra, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "nyomja meg a \"Get API Key\" linket."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "lépjen kapcsolatba a szerver-üzemeltetővel."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "Ingyenes és nyílt forráskódú gépi fordító API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Ingyenes és nyílt forráskódú gépi fordító API. Helyileg telepített, offline "
"működő és könnyen telepíthető. Futtassa saját API szerverét néhány perc "
"alatt."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "fordítás"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API Dokumentáció"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Szerezzen API kucsot"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Állítsa be az API kulcsot"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Nyelv módosítása"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Szerkesztés"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Váltás sötét/világos módra"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "elvetés"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "Fordító API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Szöveg Fordítása"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "File-ok fordítása"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Fordítási ürlap"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Forrás és célnyelv felcserélése"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Fordítsd le ebbe"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Fordítandó szöveg"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "szöveg törlése"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Javasolj fordítást"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "mégse"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Küldés"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Támogatott fájlformátumok:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "File"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "File eltávolítása"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Fordítás"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Letöltés"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Kérés"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Válasz"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "Nyilt Forráskódú Gépi Fordító API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Helyben futtatható, offline működő. Könnyen beállítható."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Licenc:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"Ezt a nyilvános API-t tesztelésre, személyes vagy alkalmi használatra "
"használandó. Amennyiben az alkalmazásod éles környezetben fogod használni "
"úgy használd a %(host_server)s-t vagy %(get_api_key)s-t."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "Hosztold a saját szervered"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "API kulcs szerzése"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
"%(heart)s-el készítve. Közreműködtek %(contributors)s működtetve ezzel: "
"%(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s Közreműködők"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Hungarian",
"reviewed": true
}

View file

@ -0,0 +1,672 @@
# Indonesian translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-06-08 12:27+0000\n"
"Last-Translator: Wahyu Hamdani <mrhamdani0101@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/"
"libretranslate/app/id/>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Format JSON tidak sah"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Mendeteksi Otomatis"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Tidak Diizinkan"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Terlalu banyak pelanggaran batas permintaan"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Kunci API tidak valid"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "Silakan hubungi operator server untuk mendapatkan kunci API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Kunjungi %(url)s untuk mendapatkan kunci API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Pelan-pelan:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Permintaan tidak valid: parameter %(name)s tidak ada"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Permintaan tidak valid: permintaan (%(size)s) melebihi batas teks "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s tidak didukung"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s format tidak didukung"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) tidak tersedia sebagai bahasa target dari %(sname)s"
" (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Tidak dapat menerjemahkan teks: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "Terjemahan file dinonaktifkan di server ini."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Permintaan tidak valid: file kosong"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Permintaan tidak valid: format file tidak didukung"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Nama file tidak valid"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "Saran dinonaktifkan di server ini."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Bahasa Inggris"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Bahasa Arab"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Bahasa Zerbaijani"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Bahasa Cina"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Bahasa Czech"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Bahasa Danish"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Bahasa Belanda"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Bahasa Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Bahasa Suomi"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Bahasa Perancis"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Bahasa Jerman"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Bahasa Yunani"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Bahasa Yahudi"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Bahasa India"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Bahasa Hungaria"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Bahasa Indonesia"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Bahasa Irlandia"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Bahasa Italy"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Bahasa Jepang"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Bahasa Korea"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Bahasa Persia"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Bahasa Polish"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portugis"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Rusia"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Slovak"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Spanyol"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Swedia"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Turki"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ukraina"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnam"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Lihat daftar bahasa yang didukung"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Daftar bahasa"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "terjemahkan"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Terjemahkan teks dari bahasa ke bahasa lain"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Teks yang diterjemahkan"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Permintaan tidak valid"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Kesalahan terjemahan"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Pelan-pelan"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Diblokir"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Halo dunia!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Teks-teks untuk diterjemahkan"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Kode bahasa sumber"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Kode bahasa target"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "teks"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Format teks sumber:\n"
"Sitemap\n"
"* `html` - HTML markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Kunci API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Terjemahkan file dari bahasa ke bahasa lain"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "File yang diterjemahkan"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "File untuk diterjemahkan"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Mendeteksi bahasa teks tunggal"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Deteksi"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Kesalahan deteksi"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Teks untuk dideteksi"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Lihat pengaturan spesifik frontend"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "pengaturan frontend"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "frontend"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Kirim saran untuk meningkatkan terjemahan"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Berhasil"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Tidak sah"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Teks asli"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Terjemahan yang disarankan"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Bahasa teks asli"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Bahasa terjemahan yang disarankan"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "umpan balik"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Bahasa"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Nama bahasa yang dapat dibaca manusia (dalam bahasa Inggris)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Mendukung kode bahasa target"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Teks yang telah diterjemahkan"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Pesan kesalahan"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Alasan untuk memperlambat"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "Diterjemahkan url file"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Nilai kepercayaan"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Batas input karakter untuk bahasa ini (-1 menunjukkan tidak ada batasan)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Sitemap"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Apakah database kunci API diaktifkan."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Apakah kunci API diperlukan."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Apakah pengiriman saran diaktifkan."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Format file yang didukung"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Apakah pengajuan berhasil"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Fotokopi"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Tidak bisa memuat %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Kesalahan tidak diketahui"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Disalin"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
"Terima kasih atas koreksi Anda. Perhatikan saran tidak akan mengambil "
"efek segera."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Tidak ada bahasa yang tersedia. Apakah Anda menginstal model dengan benar?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Ketikkan kunci API. Jika Anda memerlukan kunci API, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "tekan tautan \"Get API Key\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "hubungi operator server."
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "API Translation API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"Gratis dan Open Source Machine Translation API. Secara mandiri, offline "
"mampu dan mudah diatur. Jalankan server API Anda sendiri hanya dalam "
"beberapa menit."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "sitemap"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API Documents"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Dapatkan Kunci API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Tetapkan Kunci API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Mengubah bahasa"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Sunting"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Mode gelap / ringan"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Tutup"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Terjemahkan Teks"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Terjemahkan File"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Terjemahkan dari"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Sumber swap dan bahasa target"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Terjemahkan ke"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Teks untuk diterjemahkan"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Hapus teks"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Sarankan terjemahan"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Batal"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Kirim"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Format file yang didukung:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "File"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Hapus file"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Terjemahkan"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Unduh"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Minta"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Respons"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "API documentation"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Hosting mandiri. Bisa Offline. Mudah Disiapkan."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Lisensi:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"API publik ini harus digunakan untuk pengujian, penggunaan pribadi, atau "
"jarang dipakai. Jika Anda akan menjalankan aplikasi dalam tahap produksi,"
" silakan %(host_server)s atau %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "host server anda sendiri"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "dapatkan kunci API"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Dibuat dengan %(heart)s oleh %(contributors)s dan didukung oleh %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "Kontributor %(libretranslate)s"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Indonesian",
"reviewed": false
}

View file

@ -0,0 +1,673 @@
# Italian translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-01-07 13:03+0000\n"
"Last-Translator: Piero Toffanin <pt@masseranolabs.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/libretranslate/app/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "Formato JSON non valido"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "Rileva Automaticamente"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "Non autorizzato"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "Violazione da troppe richieste"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "Chiave API non valida"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr ""
"Si prega di contattare l'operatore del server per ottenere una chiave API"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Visita %(url)s per ottenere una chiave API"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "Rallenta:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Richiesta non valida: parametro %(name)s mancante"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
"Richiesta non valida: richiesta (%(size)s) supera i limiti di testo "
"(%(limit)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s non è supportato"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "il formato %(format)s non è supportato"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from %(sname)s "
"(%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) non è disponibile come lingua di destinazione da "
"%(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Non è possible tradurre il testo: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "La traduzione dei files è disabilitata su questo server."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "Richiesta non valida: file vuoto"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "Richiesta non valida: formato del file non supportato"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "Nome del file non valido"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "I suggerimenti sono disabilitati su questo server."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Inglese"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Arabo"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Azero"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Cinese"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Ceco"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Danese"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Olandese"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Esperanto"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Finlandese"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Francese"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Tedesco"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Greco"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Ebraico"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Hindi"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Ungherese"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Indonesiano"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Irlandese"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Italiano"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Giapponese"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Coreano"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Persiano"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Polacco"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Portoghese"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Russo"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Slovacco"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Spagnolo"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Svedese"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Turco"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Ucraino"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Vietnamita"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Recupera l'elenco delle lingue supportate"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Elenco delle lingue"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "traduzione"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Traduce testo da una lingua a un'altra"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "Testo tradotto"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Richiesta non valida"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Errore di traduzione"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "Rallenta"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Bannato"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Ciao mondo!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Testo/i da tradurre"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Codice lingua sorgente"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Codice lingua destinazione"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "testo"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Formato del testo sorgente:\n"
" * `text` - Testo normale\n"
" * `html` - HTML markup\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Chiave API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Traduce file da una lingua a un'altra"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "File tradotto"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "File da tradurre"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Rileva la lingua di un singolo testo"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Rilevazioni"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Errore di rilevamento"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Testo da rilevare"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Recupera le impostazioni del frontend"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "impostazioni del frontend"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "frontend"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Invia un suggerimento per migliorare una traduzione"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Successo"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Non autorizzato"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Testo originale"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Traduzione suggerita"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Lingua del testo originale"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Lingua della traduzione suggerita"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "feedback"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Codice lingua"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Nome della lingua (in Inglese)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Codici lingua di destinazione supportati"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Testo/i tradotto/i"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Messaggio di errore"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Ragione del rallentamento"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL del file tradotto"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Valore di confidenza"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Limite di caratteri per questa lingua (-1 indica nessun limite)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Tempo limite di traduzione sul frontend"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Se il database di chiavi API è abilitato."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Se è richiesta una chiave API."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Se l'invio di suggerimenti è abilitato."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Formati files supportati"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Se l'invio è stato di successo"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "Copia testo"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "Non riesco a caricare %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "Errore sconosciuto"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "Copiato"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect right "
"away."
msgstr ""
"Grazie per la tua correzione. Si noti che il suggerimento non avrà effetto "
"subito."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "Nessuna lingua disponibile. Hai installato correttamente i modelli?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
"Digita la tua chiave API. Se hai bisogno di una chiave API, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "premi il link \"Ottieni Chiave API\"."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "contatta l'operatore del server."
#: libretranslate/templates/index.html:9
#: libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "API di traduzione automatica libera e open source"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline capable "
"and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"API di traduzione automatica libera e open source. Self-hosted, funziona "
"anche offline e facile da configurare. Fai girare il tuo server API in pochi"
" minuti."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "traduzione"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "Ottieni Chiave API"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "Imposta Chiave API"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "Cambia lingua"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "Modifica"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "Cambia modalità scura/chiara"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "Chiudi"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "API di Traduzione"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "Traduci Testo"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "Traduci Files"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "Traduci da"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "Scambia lingua sorgente e di destinazione"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "Traduci in"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "Testo da tradurre"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "Elimina testo"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "Suggerisci una traduzione"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "Annulla"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "Invia"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "Formati files supportati:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "File"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "Rimuovi file"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "Traduci"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "Scarica"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "Richiesta"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "Risposta"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "API di Traduzione Automatica Open Source"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Self-Hosted. Funziona anche offline. Facile da Configurare."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "Licenza:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. If "
"you're going to run an application in production, please %(host_server)s or "
"%(get_api_key)s."
msgstr ""
"Questa API pubblica può essere utilizzata per fare prove, per uso personale "
"o infrequente. Se hai intenzione di utilizzarla in produzione, per favore "
"%(host_server)s o %(get_api_key)s."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "hosta un server tuo"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "ottieni una chiave API"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "Realizzato con %(heart)s da %(contributors)s e powered by %(engine)s"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "Contributori di %(libretranslate)s"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form-data"

View file

@ -0,0 +1,4 @@
{
"name": "Italian",
"reviewed": true
}

View file

@ -0,0 +1,667 @@
# Japanese translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2024-02-10 04:01+0000\n"
"Last-Translator: 石丸健太郎 <marudosurdo@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/libretranslate/"
"app/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.4-dev\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "無効なJSON形式"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "自動検出"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "無許可"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "リクエストが多すぎます。"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "無効な API キー"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "サーバ管理者に連絡して、APIキーを取得してください。"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "%(url)sにアクセスして API キーを取得する"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "スローダウン:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "無効な要求: %(name)s パラメータが欠落している"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "無効な要求: 要求(%(size)s)がテキストの制限(%(limit)s)超えている"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s はサポートされていません"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s フォーマットはサポートされていません"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from %(sname)s "
"(%(scode)s)"
msgstr "%(tname)s (%(tcode)s) 対象言語は対象言語として利用できません。 %(sname)s (%(scode)s)"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "テキストを翻訳できません。 %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "このサーバーではファイル翻訳が無効になっています。."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "無効なリクエスト:空のファイル"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "無効なリクエスト: ファイルがサポートされていない形式"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "無効なファイル名"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "このサーバーで提案が無効になっています。."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "日本語"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "アラビア語"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "アゼルバイジャン語"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "中国語(簡体)"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "チェコ語"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "デンマーク語"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "オランダ語"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "エスペラント語"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "フィンランド語"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "フランス語"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "ドイツ語"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "ギリシャ人"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "ヘブライ語"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "ヒンディー語"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "ハンガリー"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "インドネシア"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "アイルランド"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "イタリア"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "日本語 English"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "韓国人"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "ペルシア語"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "ポーランド"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "ポルトガル語"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "ロシア人"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "ログイン"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "スペイン語"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "スウェーデン語"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "トルコ語"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "ウクラニアン"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "ベトナム"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "サポートされている言語のリストを取得する"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "言語リスト"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "ログイン"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "言語から別の言語にテキストを翻訳する"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "翻訳テキスト"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "無効な要求"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "翻訳エラー"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "スローダウン"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "禁止事項"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "こんにちは!"
#: libretranslate/locales/.swag.py:11
#, fuzzy
msgid "Text(s) to translate"
msgstr "翻訳するテキスト"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "ソース言語コード"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "ターゲット言語コード"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "テキスト"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "ツイート"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"ソーステキストの形式:\n"
"* `text` - プレーンテキスト\n"
"* `html` - HTML マークアップ\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "APIキー"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "言語から別の言語にファイルを翻訳する"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "翻訳ファイル"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "翻訳するファイル"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "単一のテキストの言語を検出する"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "検出の検出"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "検出エラー"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "検出するテキスト"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "フロントエンドの特定の設定を取得する"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "フロントエンドの設定"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "フロントエンド"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "翻訳を改善するための提案を提出する"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "成功事例"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "許可されていない"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "オリジナルテキスト"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "提案された翻訳"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "オリジナルテキストの言語"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "提案された翻訳の言語"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "フィードバック"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "言語コード"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "読みやすい言語名(英語)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "ターゲット言語コードをサポート"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "翻訳されたテキスト(s)"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "エラーメッセージ"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "遅くなる理由"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "翻訳されたファイル url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "機密価値"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "この言語の文字入力制限(-1は制限なし)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "フロントエンドの翻訳タイムアウト"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "API キーデータベースが有効になっているかどうか。."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "API キーが要求されるかどうか。."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "提案を提出するかどうかが有効になっています。."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "サポートされているファイル形式"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "投稿が成功したかどうか"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "テキストのコピー"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "負荷無し %(url)s"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "未知のエラー"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "コピッド"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect right "
"away."
msgstr "あなたの修正をありがとう。 提案はすぐに影響しません。."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "多言語対応 モデルを正しくインストールしましたか?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "APIキーを入力します。 API キーが必要な場合は、%(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "「APIキーの取得」リンクを押します。."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "サーバ オペレータに連絡して下さい。."
#: libretranslate/templates/index.html:9
#: libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "オープンソース・マシン・トランスレーション・API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline capable "
"and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"オープンソース・マシン・トランスレーション API の無料およびオープン・ソース・マシン セルフホスト、オフライン対応、セットアップが簡単。 "
"わずか数分で独自の API サーバーを実行します。."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "インフォメーション"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "ログイン"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API ドキュメント"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "API の取得 キーキー"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHubで"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "APIの設定 キーキー"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "言語変更"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "編集"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "ダークモード/ライトモードを切り替える"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "免責事項"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "翻訳 API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "テキストの翻訳"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "ファイル翻訳"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "翻訳から"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "スワップソースとターゲット言語"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "翻訳する"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "翻訳するテキスト"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "テキストの削除"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "翻訳の提案"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "キャンセル"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "お問い合わせ"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "サポートされているファイル形式:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "ファイル"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "ファイルを削除します。"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "ログイン"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "ダウンロード"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "リクエスト"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "ソリューション"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "オープンソース機械翻訳 API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "セルフホスト。 オフライン対応 簡単にセットアップできます。."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "ライブラリ"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "ライセンス:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. If "
"you're going to run an application in production, please %(host_server)s or "
"%(get_api_key)s."
msgstr ""
"この公開API はテストまたは個人的、頻繁でない用途に使用してください。製品のア"
"プリケーションに使用する場合は、%(host_server)s または "
"%(get_api_key)sしてください。"
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "自分のサーバーをホストする"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "aPI キーを取得する"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "%(heart)sと%(contributors)sによって作成され、%(engine)sにより作動しています。"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s 貢献者"
#~ msgid "multipart/form-data"
#~ msgstr "マルチパート/フォームデータ"

View file

@ -0,0 +1,4 @@
{
"name": "Japanese",
"reviewed": false
}

View file

@ -0,0 +1,661 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-01-06 17:52-0500\n"
"PO-Revision-Date: 2023-01-23 15:12+0000\n"
"Last-Translator: Selyan Sliman Amiri <selyan.kab@gmail.com>\n"
"Language-Team: Kabyle <https://hosted.weblate.org/projects/libretranslate/"
"app/kab/>\n"
"Language: kab\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.16-dev\n"
"Generated-By: Babel 2.11.0\n"
#: libretranslate/app.py:60
msgid "Invalid JSON format"
msgstr "Amasal JSON d arameɣtu"
#: libretranslate/app.py:128 libretranslate/templates/app.js.template:427
msgid "Auto Detect"
msgstr "Tifin tawurmant"
#: libretranslate/app.py:193
msgid "Unauthorized"
msgstr "Ur yettusireg ara"
#: libretranslate/app.py:211
msgid "Too many request limits violations"
msgstr "Aṭas n uɛeddi deg tilas n ussuter"
#: libretranslate/app.py:220
msgid "Invalid API key"
msgstr "Tasarut API d tarameɣtut"
#: libretranslate/app.py:227
msgid "Please contact the server operator to get an API key"
msgstr "Ttxil-k·m, nermes amahal n uqeddac i wawway n tsarut API"
#: libretranslate/app.py:229
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "Rzu ɣer %(url)s i wawway n tsarut API"
#: libretranslate/app.py:269
msgid "Slowdown:"
msgstr "Taẓayt:"
#: libretranslate/app.py:467 libretranslate/app.py:469
#: libretranslate/app.py:471 libretranslate/app.py:683
#: libretranslate/app.py:685 libretranslate/app.py:687
#: libretranslate/app.py:838 libretranslate/app.py:987
#: libretranslate/app.py:989 libretranslate/app.py:991
#: libretranslate/app.py:993
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "Assuter arameɣtu: ixuṣṣ uɣewwar %(name)s"
#: libretranslate/app.py:480 libretranslate/app.py:492
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "Assuter d arameɣtu: assuter(%(size)s) iɛedda tilas n uḍris (%(limit)s)"
#: libretranslate/app.py:525 libretranslate/app.py:530
#: libretranslate/app.py:700 libretranslate/app.py:705
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s ur yettusefrak ara"
#: libretranslate/app.py:536
#, python-format
msgid "%(format)s format is not supported"
msgstr "Amasal %(format)s ur yettusefrak ara"
#: libretranslate/app.py:544 libretranslate/app.py:568
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
"%(tname)s (%(tcode)s) ur yelli ara am tutlayt tasaḍast n %(sname)s "
"(%(scode)s)"
#: libretranslate/app.py:589
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "Ur yizmir asuqel n uḍṛis: %(text)s"
#: libretranslate/app.py:676 libretranslate/app.py:730
msgid "Files translation are disabled on this server."
msgstr "Asuqqel n yifuyla yensa ɣef uqeddac-a."
#: libretranslate/app.py:690
msgid "Invalid request: empty file"
msgstr "Assuter arameɣtu: afaylu d ilem"
#: libretranslate/app.py:693
msgid "Invalid request: file format not supported"
msgstr "Assuter d arameɣtu: amasal n ufaylu ur yettusefrak ara"
#: libretranslate/app.py:738
msgid "Invalid filename"
msgstr "Isem n ufaylu d armeɣtu"
#: libretranslate/app.py:979
msgid "Suggestions are disabled on this server."
msgstr "Isumar nsan ɣef uqeddac-a."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "Taglizit"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "Taɛrabt"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "Tazerbiǧanit"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "Tacinwatt"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "Tačikit"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "Tadanit"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "Tahulandit"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "Taspirantit"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "Tafinit"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "Tafṛansist"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "Talmanit"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "Tagrigit"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "Taɛebranit"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "Tahendit"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "Tahungaṛit"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "Tandunizit"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "Tirlandit"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "Taṭelyanit"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "Tajapunit"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "Takurit"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "Tafarsit"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "Tapulunit"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "Tapurtugit"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "Tarusit"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "Tasluvakt"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "Taspenyulit"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "Taswidit"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "Taṭurkit"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "Takrinit"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "Tavyiṭnamit"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "Tabdart n tutlayin yettwasefraken"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "Tabdart n tutlayin"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "suqel"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "Asuqqel n uḍris seg tutlayt ɣer tayeḍ"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:219
msgid "Translated text"
msgstr "Aḍris yettwasuqqlen"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "Assuter arameɣtu"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "Tuccḍa deg tsuqilt"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "S ttawil"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "Yettwagdel"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "Azul !"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "Aḍris(iḍrisen) ara yettwasuqqlen"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "Tangalt n tutlayt taɣbalut"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "Tangalt n tutlayt tasaḍast"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "aḍṛis"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"Amasal n uḍris aɣbalu:\n"
" * `text` - Aḍris aččaran\n"
" * `html` - Taṛekkazt HTML\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "Tasarutt API"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "Asuqqel n ufaylu seg tutlayt ɣer tayeḍ"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "Afaylu yettwasuqqlen"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "Afaylu ara yettwasuqqlen"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "Tifin n tutlayt n kra n uḍris"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "Tifin"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "Tuccḍa deg tifin"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "Aḍris ara yettwafen"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "Err-d iɣewwaren imaẓlayen n ugrudem"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "iɣewwaren n ugrudem"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "agrudem"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "Azen asumer i usnerni n tsuqqilt"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "Awwaḍ"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "Ur yettusireg ara"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "Aḍris aɣbalu"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "Tasuqqilt i d-yettwasumren"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "Tutlayt n uḍris aɣbalu"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "Tutlayt n tsuqqilt i d-yettwasumren"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "tamawt"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "Tangalt n tutlayt"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "Isem n tutlayt igezzu umdan (s teglizit)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "Tingalin n tutlayin tisaḍasin i yettwasefraken"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "Aḍris(iḍrisen) yettwasuqqlen"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "Izen n tuccḍa"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "Ssebba n taẓayt"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "URL n ufaylu i yettwasuqqlen"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "Azal n teflest"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "Talast n unekcum n yisekkilen i tutlayt-a (-1 ur d-iskan kra n talast)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "Akud n tsuqqilt ɣef ugrudem"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "Yeskan ma yella taffa n yisefka n tsura API termed."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "Yeskan-d ma tettwasra tasarut n API."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "Yeskan ma yella tuzna n yisumar termed."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "Imasalen n yifuyla i yettwasefraken"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "Ma yella tuzna tɛedda"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:275
#: libretranslate/templates/app.js.template:279
msgid "Copy text"
msgstr "Nɣel aḍris"
#: libretranslate/templates/app.js.template:72
#: libretranslate/templates/app.js.template:78
#: libretranslate/templates/app.js.template:83
#: libretranslate/templates/app.js.template:262
#: libretranslate/templates/app.js.template:332
#: libretranslate/templates/app.js.template:402
#: libretranslate/templates/app.js.template:447
#, python-format
msgid "Cannot load %(url)s"
msgstr "D awezɣi asali n %(url)s"
#: libretranslate/templates/app.js.template:253
#: libretranslate/templates/app.js.template:323
#: libretranslate/templates/app.js.template:385
#: libretranslate/templates/app.js.template:395
msgid "Unknown error"
msgstr "Tuccḍa d tarussint"
#: libretranslate/templates/app.js.template:276
msgid "Copied"
msgstr "Yettwanɣel"
#: libretranslate/templates/app.js.template:320
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr "Tanemmirt ɣef useɣti. Ẓer belli asumer ur iteṭṭef ara imir kan."
#: libretranslate/templates/app.js.template:423
msgid "No languages available. Did you install the models correctly?"
msgstr "Ulac tutlayin i yellan. Tesbeddeḍ tineɣrufin akken iwata?"
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "Sekcem tasarut-ik•im API. Ma yella tesriḍ tasarut API, %(instructions)s"
#: libretranslate/templates/app.js.template:479
msgid "press the \"Get API Key\" link."
msgstr "sit ɣef useɣwen \"Awi tasarut API\"."
#: libretranslate/templates/app.js.template:479
msgid "contact the server operator."
msgstr "nermes amahal n uqeddac."
#: libretranslate/templates/index.html:8 libretranslate/templates/index.html:25
#: libretranslate/templates/index.html:333
msgid "Free and Open Source Machine Translation API"
msgstr "API n tsuqqilt tawurmant tilellit, n uɣbalu yeldin"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:29
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"API n tsuqqilt tawurmant tilellit, n uɣbalu yeldin. Yezdeɣ i yiman-is, s war "
"tuqqna, fessus i usebded. Senker aqeddac-ik•im API deg kra n tesdatin."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "tasuqqilt"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:64
msgid "API Docs"
msgstr "Tasemlit API"
#: libretranslate/templates/index.html:66
msgid "Get API Key"
msgstr "Awi tasarut API"
#: libretranslate/templates/index.html:68
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:70
msgid "Set API Key"
msgstr "Sbadu tasarut API"
#: libretranslate/templates/index.html:72
msgid "Change language"
msgstr "Beddel tutlayt"
#: libretranslate/templates/index.html:78
msgid "Edit"
msgstr "Ẓreg"
#: libretranslate/templates/index.html:154
msgid "Dismiss"
msgstr "Zgel"
#: libretranslate/templates/index.html:168
msgid "Translation API"
msgstr "API n usuqqel"
#: libretranslate/templates/index.html:172
msgid "Translate Text"
msgstr "Suqqel aḍris"
#: libretranslate/templates/index.html:176
msgid "Translate Files"
msgstr "Suqqel ifuyla"
#: libretranslate/templates/index.html:182
msgid "Translate from"
msgstr "Suqqel seg"
#: libretranslate/templates/index.html:192
msgid "Swap source and target languages"
msgstr "Semmeskel aɣbalu d tutlayt tasaḍast"
#: libretranslate/templates/index.html:195
msgid "Translate into"
msgstr "Suqqel deg"
#: libretranslate/templates/index.html:207
msgid "Text to translate"
msgstr "Aḍris ara yettwasuqqlen"
#: libretranslate/templates/index.html:210
msgid "Delete text"
msgstr "Kkes aḍris"
#: libretranslate/templates/index.html:223
msgid "Suggest translation"
msgstr "Sumer tasuqqilt"
#: libretranslate/templates/index.html:227
msgid "Cancel"
msgstr "Sefsex"
#: libretranslate/templates/index.html:230
msgid "Send"
msgstr "Azen"
#: libretranslate/templates/index.html:246
msgid "Supported file formats:"
msgstr "Imasalen n ufaylu i yettwasefraken:"
#: libretranslate/templates/index.html:250
msgid "File"
msgstr "Afaylu"
#: libretranslate/templates/index.html:265
msgid "Remove file"
msgstr "Kkes afaylu"
#: libretranslate/templates/index.html:272
msgid "Translate"
msgstr "Suqqel"
#: libretranslate/templates/index.html:273
#: libretranslate/templates/index.html:317
msgid "Download"
msgstr "Sader"
#: libretranslate/templates/index.html:292
msgid "Request"
msgstr "Assuter"
#: libretranslate/templates/index.html:297
msgid "Response"
msgstr "Tiririt"
#: libretranslate/templates/index.html:312
msgid "Open Source Machine Translation API"
msgstr "API n usuqqel awurman n uɣbalu yeldin"
#: libretranslate/templates/index.html:313
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "Yettwasezdeɣ i yiman-is. Iteddu s war tuqqna. Fessus i usesteb."
#: libretranslate/templates/index.html:332
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:334
msgid "License:"
msgstr "Turagt:"
#: libretranslate/templates/index.html:337
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
"API-a azayaz ilaq ad yettuseqdec i usekyed, i useqdec uslig neɣ i useqdec ur "
"negzi. Ma yella tesnekkreḍ asnas id-yettfarasen , ttxil-k·m seqdec "
"%(host_server)s neɣ %(get_api_key)s."
#: libretranslate/templates/index.html:337
msgid "host your own server"
msgstr "Sezdeɣ aqeddac inek•inem"
#: libretranslate/templates/index.html:337
msgid "get an API key"
msgstr "Awi tasarut API"
#: libretranslate/templates/index.html:345
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
"Yettufeṣṣel s %(heart)s s %(contributors)s, yella-d s lmendad n %(engine)s"
#: libretranslate/templates/index.html:345
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "Imttekkiyen n %(libretranslate)s"

View file

@ -0,0 +1,4 @@
{
"name": "Kabyle",
"reviewed": true
}

View file

@ -0,0 +1,663 @@
# Korean translations for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.9\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: 2023-06-19 20:49+0000\n"
"Last-Translator: Sungjoon Moon <sumoon@seoulsaram.org>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/libretranslate/app/ko/>\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr "잘못된 JSON 형식"
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr "자동 감지"
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr "인증되지 않음"
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr "요청이 너무 많음"
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr "잘못된 API 키"
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr "API 키를 얻기 위해 서버 연산자에 문의하시기 바랍니다"
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr "%(url)s 에서 API 키 받기"
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr "속도가 느림:"
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr "잘못된 요청: %(name)s 파라미터 누락"
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr "잘못된 요청: 텍스트 제한 (%(limit)s) 초과하는 요청 (%(size)s)"
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr "%(lang)s 지원되지 않음"
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr "%(format)s 형식은 지원되지 않습니다"
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from %(sname)s "
"(%(scode)s)"
msgstr "%(sname)s (%(scode)s)에서 %(tname)s (%(tcode)s)로 번역할 수 없습니다"
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr "텍스트를 번역할 수 없습니다: %(text)s"
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr "현재 서버에서 파일 번역이 비활성화 되어 있습니다."
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr "잘못된 요청: 빈 파일"
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr "잘못된 요청: 파일 형식 지원되지 않음"
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr "잘못된 파일명"
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr "현재 서버에서 제안이 비활성화 되어 있습니다."
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr "영어"
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr "아랍어"
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr "아제르바이잔어"
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr "중국어"
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr "체코어"
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr "덴마크어"
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr "네덜란드어"
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr "에스페란토"
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr "핀란드어"
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr "프랑스어"
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr "독일어"
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr "그리스어"
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr "히브리어"
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr "힌디어"
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr "헝가리어"
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr "인도네시아어"
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr "아일랜드어"
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr "이탈리아어"
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr "일본어"
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr "한국어"
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr "페르시아어"
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr "폴란드어"
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr "포르투칼어"
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr "러시아어"
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr "슬로바키아어"
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr "스패인어"
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr "스웨덴어"
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr "터키어"
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr "우크라이나어"
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr "베트남어"
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr "지원되는 언어 목록 검색"
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr "언어 목록"
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr "번역"
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr "다른 언어로 텍스트를 번역"
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr "번역된 텍스트"
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr "잘못된 요청"
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr "번역 오류"
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr "속도가 느림"
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr "금지됨"
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr "안녕하세요!"
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr "번역할 테스트"
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr "출발 언어 코드"
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr "도착 언어 코드"
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr "텍스트"
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr "html"
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
"출발 텍스트의 형식 :\n"
"* `text` - 평문 텍스트\n"
"* `html` - HTML 마크 업\n"
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr "API 키"
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr "다른 언어로 파일을 번역"
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr "번역된 파일"
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr "번역할 파일"
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr "단일 텍스트의 언어를 감지"
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr "감지 내용"
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr "감지 오류"
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr "감지할 텍스트"
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr "프론트엔드의 특정 설정을 검색"
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr "프론트엔드 설정"
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr "프론트엔드"
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr "번역을 개선하기 위해 제안을 제출"
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr "성공"
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr "권한 없음"
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr "원문"
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr "제안된 번역"
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr "원문의 언어"
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr "제안된 번역의 언어"
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr "피드백"
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr "언어 코드"
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr "사람이 읽을 수 있는 언어 이름 (영어로)"
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr "지원하는 언어 코드"
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr "번역된 텍스트"
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr "오류 메시지"
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr "느려지는 이유"
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr "번역된 파일 url"
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr "신뢰치"
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr "이 언어의 문자 입력 제한 (-1은 제한이 없음을 의미)"
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr "프론트엔드 번역 시간 초과"
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr "API 키 데이터베이스가 활성화되었는지 여부."
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr "API 키가 필요하든."
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr "자주 묻는 질문."
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr "지원된 파일 형식"
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr "제출이 성공했는지 여부"
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr "텍스트 복사"
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr "%(url)s를 읽어들일 수 없음"
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr "알려지지 않은 오류"
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr "복사됨"
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect right "
"away."
msgstr "수정해 주셔서 감사합니다. 제안은 즉시 반영되지 않을 수 있습니다."
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr "가능한 언어가 없음. 언어 모델을 제대로 설치하셨나요?"
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr "API 키 입력. API 키가 필요한 경우, %(instructions)s"
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr "\"Get API Key\" 링크를 누릅니다."
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr "서버 운영자에게 문의하세요."
#: libretranslate/templates/index.html:9
#: libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr "자유 오픈 소스 기계 번역 API"
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline capable "
"and easy to setup. Run your own API server in just a few minutes."
msgstr ""
"자유 오픈 소스 기계 번역 API. 셀프 호스팅, 오프라인에서 사용이 가능하며, 설치가 쉽습니다. 단 몇 분 만 투자하여 자신의 API "
"서버를 돌려보세요."
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr "번역"
#: libretranslate/templates/index.html:11
msgid "api"
msgstr "api"
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr "API 문서"
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr "API 키 획득"
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr "GitHub"
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr "API 키 설정"
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr "언어 선택"
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr "수정"
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr "어두운 색/빛 모드"
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr "닫기"
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr "번역 API"
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr "텍스트 번역하기"
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr "파일 번역하기"
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr "~로 부터 번역하기"
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr "출발 언어, 도착 언어 서로 바꾸기"
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr "~로 번역하기"
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr "번역할 텍스트"
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr "텍스트 삭제"
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr "번역 제안하기"
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr "취소"
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr "보내기"
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr "지원되는 파일 형식:"
#: libretranslate/templates/index.html:253
msgid "File"
msgstr "파일"
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr "파일 삭제"
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr "번역"
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr "다운로드"
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr "요청"
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr "응답"
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr "오픈 소스 기계 번역 API"
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr "셀프 호스팅. 오프라인 이용 가능. 설정하기 쉬움."
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr "LibreTranslate"
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr "라이센스:"
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. If "
"you're going to run an application in production, please %(host_server)s or "
"%(get_api_key)s."
msgstr ""
"이 공개 API는 테스트 또는 개인적인 용도로만 사용되어야 하며, 잦은 요청을 지양합니다. 운영 환경에서 응용 프로그램을 실행할 경우, "
"%(host_server)s 또는 %(get_api_key)s을 참조하십시오."
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr "자신만의 서버 호스팅"
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr "API 키 획득"
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr "%(contributors)s의 손으로 %(heart)s와 함께 만들었으며, %(engine)s에 의해 제공됨"
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr "%(libretranslate)s 기여자"
#~ msgid "multipart/form-data"
#~ msgstr "multipart/form 자료"

View file

@ -0,0 +1,4 @@
{
"name": "Korean",
"reviewed": true
}

View file

@ -0,0 +1,652 @@
# Translations template for LibreTranslate.
# Copyright (C) 2023 LibreTranslate Authors
# This file is distributed under the same license as the LibreTranslate
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: LibreTranslate 1.3.12\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-10-09 15:17-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: libretranslate/app.py:79
msgid "Invalid JSON format"
msgstr ""
#: libretranslate/app.py:149 libretranslate/templates/app.js.template:459
msgid "Auto Detect"
msgstr ""
#: libretranslate/app.py:232
msgid "Unauthorized"
msgstr ""
#: libretranslate/app.py:250
msgid "Too many request limits violations"
msgstr ""
#: libretranslate/app.py:257
msgid "Invalid API key"
msgstr ""
#: libretranslate/app.py:276
msgid "Please contact the server operator to get an API key"
msgstr ""
#: libretranslate/app.py:278
#, python-format
msgid "Visit %(url)s to get an API key"
msgstr ""
#: libretranslate/app.py:318
msgid "Slowdown:"
msgstr ""
#: libretranslate/app.py:525 libretranslate/app.py:527
#: libretranslate/app.py:529 libretranslate/app.py:741
#: libretranslate/app.py:743 libretranslate/app.py:745
#: libretranslate/app.py:896 libretranslate/app.py:1053
#: libretranslate/app.py:1055 libretranslate/app.py:1057
#: libretranslate/app.py:1059
#, python-format
msgid "Invalid request: missing %(name)s parameter"
msgstr ""
#: libretranslate/app.py:544 libretranslate/app.py:553
#, python-format
msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)"
msgstr ""
#: libretranslate/app.py:583 libretranslate/app.py:588
#: libretranslate/app.py:758 libretranslate/app.py:763
#, python-format
msgid "%(lang)s is not supported"
msgstr ""
#: libretranslate/app.py:594
#, python-format
msgid "%(format)s format is not supported"
msgstr ""
#: libretranslate/app.py:602 libretranslate/app.py:626
#, python-format
msgid ""
"%(tname)s (%(tcode)s) is not available as a target language from "
"%(sname)s (%(scode)s)"
msgstr ""
#: libretranslate/app.py:647
#, python-format
msgid "Cannot translate text: %(text)s"
msgstr ""
#: libretranslate/app.py:734 libretranslate/app.py:788
msgid "Files translation are disabled on this server."
msgstr ""
#: libretranslate/app.py:748
msgid "Invalid request: empty file"
msgstr ""
#: libretranslate/app.py:751
msgid "Invalid request: file format not supported"
msgstr ""
#: libretranslate/app.py:796
msgid "Invalid filename"
msgstr ""
#: libretranslate/app.py:1038
msgid "Suggestions are disabled on this server."
msgstr ""
#: libretranslate/locales/.langs.py:1
msgid "English"
msgstr ""
#: libretranslate/locales/.langs.py:2
msgid "Arabic"
msgstr ""
#: libretranslate/locales/.langs.py:3
msgid "Azerbaijani"
msgstr ""
#: libretranslate/locales/.langs.py:4
msgid "Chinese"
msgstr ""
#: libretranslate/locales/.langs.py:5
msgid "Czech"
msgstr ""
#: libretranslate/locales/.langs.py:6
msgid "Danish"
msgstr ""
#: libretranslate/locales/.langs.py:7
msgid "Dutch"
msgstr ""
#: libretranslate/locales/.langs.py:8
msgid "Esperanto"
msgstr ""
#: libretranslate/locales/.langs.py:9
msgid "Finnish"
msgstr ""
#: libretranslate/locales/.langs.py:10
msgid "French"
msgstr ""
#: libretranslate/locales/.langs.py:11
msgid "German"
msgstr ""
#: libretranslate/locales/.langs.py:12
msgid "Greek"
msgstr ""
#: libretranslate/locales/.langs.py:13
msgid "Hebrew"
msgstr ""
#: libretranslate/locales/.langs.py:14
msgid "Hindi"
msgstr ""
#: libretranslate/locales/.langs.py:15
msgid "Hungarian"
msgstr ""
#: libretranslate/locales/.langs.py:16
msgid "Indonesian"
msgstr ""
#: libretranslate/locales/.langs.py:17
msgid "Irish"
msgstr ""
#: libretranslate/locales/.langs.py:18
msgid "Italian"
msgstr ""
#: libretranslate/locales/.langs.py:19
msgid "Japanese"
msgstr ""
#: libretranslate/locales/.langs.py:20
msgid "Korean"
msgstr ""
#: libretranslate/locales/.langs.py:21
msgid "Persian"
msgstr ""
#: libretranslate/locales/.langs.py:22
msgid "Polish"
msgstr ""
#: libretranslate/locales/.langs.py:23
msgid "Portuguese"
msgstr ""
#: libretranslate/locales/.langs.py:24
msgid "Russian"
msgstr ""
#: libretranslate/locales/.langs.py:25
msgid "Slovak"
msgstr ""
#: libretranslate/locales/.langs.py:26
msgid "Spanish"
msgstr ""
#: libretranslate/locales/.langs.py:27
msgid "Swedish"
msgstr ""
#: libretranslate/locales/.langs.py:28
msgid "Turkish"
msgstr ""
#: libretranslate/locales/.langs.py:29
msgid "Ukranian"
msgstr ""
#: libretranslate/locales/.langs.py:30
msgid "Vietnamese"
msgstr ""
#: libretranslate/locales/.swag.py:1
msgid "Retrieve list of supported languages"
msgstr ""
#: libretranslate/locales/.swag.py:2
msgid "List of languages"
msgstr ""
#: libretranslate/locales/.swag.py:3
msgid "translate"
msgstr ""
#: libretranslate/locales/.swag.py:4
msgid "Translate text from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:222
msgid "Translated text"
msgstr ""
#: libretranslate/locales/.swag.py:6
msgid "Invalid request"
msgstr ""
#: libretranslate/locales/.swag.py:7
msgid "Translation error"
msgstr ""
#: libretranslate/locales/.swag.py:8
msgid "Slow down"
msgstr ""
#: libretranslate/locales/.swag.py:9
msgid "Banned"
msgstr ""
#: libretranslate/locales/.swag.py:10
msgid "Hello world!"
msgstr ""
#: libretranslate/locales/.swag.py:11
msgid "Text(s) to translate"
msgstr ""
#: libretranslate/locales/.swag.py:12
msgid "Source language code"
msgstr ""
#: libretranslate/locales/.swag.py:13
msgid "Target language code"
msgstr ""
#: libretranslate/locales/.swag.py:14
msgid "text"
msgstr ""
#: libretranslate/locales/.swag.py:15
msgid "html"
msgstr ""
#: libretranslate/locales/.swag.py:16
msgid ""
"Format of source text:\n"
" * `text` - Plain text\n"
" * `html` - HTML markup\n"
msgstr ""
#: libretranslate/locales/.swag.py:17
msgid "API key"
msgstr ""
#: libretranslate/locales/.swag.py:18
msgid "Translate file from a language to another"
msgstr ""
#: libretranslate/locales/.swag.py:19
msgid "Translated file"
msgstr ""
#: libretranslate/locales/.swag.py:20
msgid "File to translate"
msgstr ""
#: libretranslate/locales/.swag.py:21
msgid "Detect the language of a single text"
msgstr ""
#: libretranslate/locales/.swag.py:22
msgid "Detections"
msgstr ""
#: libretranslate/locales/.swag.py:23
msgid "Detection error"
msgstr ""
#: libretranslate/locales/.swag.py:24
msgid "Text to detect"
msgstr ""
#: libretranslate/locales/.swag.py:25
msgid "Retrieve frontend specific settings"
msgstr ""
#: libretranslate/locales/.swag.py:26
msgid "frontend settings"
msgstr ""
#: libretranslate/locales/.swag.py:27
msgid "frontend"
msgstr ""
#: libretranslate/locales/.swag.py:28
msgid "Submit a suggestion to improve a translation"
msgstr ""
#: libretranslate/locales/.swag.py:29
msgid "Success"
msgstr ""
#: libretranslate/locales/.swag.py:30
msgid "Not authorized"
msgstr ""
#: libretranslate/locales/.swag.py:31
msgid "Original text"
msgstr ""
#: libretranslate/locales/.swag.py:32
msgid "Suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:33
msgid "Language of original text"
msgstr ""
#: libretranslate/locales/.swag.py:34
msgid "Language of suggested translation"
msgstr ""
#: libretranslate/locales/.swag.py:35
msgid "feedback"
msgstr ""
#: libretranslate/locales/.swag.py:36
msgid "Language code"
msgstr ""
#: libretranslate/locales/.swag.py:37
msgid "Human-readable language name (in English)"
msgstr ""
#: libretranslate/locales/.swag.py:38
msgid "Supported target language codes"
msgstr ""
#: libretranslate/locales/.swag.py:39
msgid "Translated text(s)"
msgstr ""
#: libretranslate/locales/.swag.py:40
msgid "Error message"
msgstr ""
#: libretranslate/locales/.swag.py:41
msgid "Reason for slow down"
msgstr ""
#: libretranslate/locales/.swag.py:42
msgid "Translated file url"
msgstr ""
#: libretranslate/locales/.swag.py:43
msgid "Confidence value"
msgstr ""
#: libretranslate/locales/.swag.py:44
msgid "Character input limit for this language (-1 indicates no limit)"
msgstr ""
#: libretranslate/locales/.swag.py:45
msgid "Frontend translation timeout"
msgstr ""
#: libretranslate/locales/.swag.py:46
msgid "Whether the API key database is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:47
msgid "Whether an API key is required."
msgstr ""
#: libretranslate/locales/.swag.py:48
msgid "Whether submitting suggestions is enabled."
msgstr ""
#: libretranslate/locales/.swag.py:49
msgid "Supported files format"
msgstr ""
#: libretranslate/locales/.swag.py:50
msgid "Whether submission was successful"
msgstr ""
#: libretranslate/templates/app.js.template:31
#: libretranslate/templates/app.js.template:286
#: libretranslate/templates/app.js.template:290
msgid "Copy text"
msgstr ""
#: libretranslate/templates/app.js.template:80
#: libretranslate/templates/app.js.template:86
#: libretranslate/templates/app.js.template:91
#: libretranslate/templates/app.js.template:273
#: libretranslate/templates/app.js.template:343
#: libretranslate/templates/app.js.template:431
#: libretranslate/templates/app.js.template:479
#, python-format
msgid "Cannot load %(url)s"
msgstr ""
#: libretranslate/templates/app.js.template:264
#: libretranslate/templates/app.js.template:334
#: libretranslate/templates/app.js.template:412
#: libretranslate/templates/app.js.template:423
msgid "Unknown error"
msgstr ""
#: libretranslate/templates/app.js.template:287
msgid "Copied"
msgstr ""
#: libretranslate/templates/app.js.template:331
msgid ""
"Thanks for your correction. Note the suggestion will not take effect "
"right away."
msgstr ""
#: libretranslate/templates/app.js.template:455
msgid "No languages available. Did you install the models correctly?"
msgstr ""
#: libretranslate/templates/app.js.template:522
#, python-format
msgid "Type in your API Key. If you need an API key, %(instructions)s"
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "press the \"Get API Key\" link."
msgstr ""
#: libretranslate/templates/app.js.template:522
msgid "contact the server operator."
msgstr ""
#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27
#: libretranslate/templates/index.html:336
msgid "Free and Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:10
#: libretranslate/templates/index.html:31
msgid ""
"Free and Open Source Machine Translation API. Self-hosted, offline "
"capable and easy to setup. Run your own API server in just a few minutes."
msgstr ""
#: libretranslate/templates/index.html:11
msgid "translation"
msgstr ""
#: libretranslate/templates/index.html:11
msgid "api"
msgstr ""
#: libretranslate/templates/index.html:65
msgid "API Docs"
msgstr ""
#: libretranslate/templates/index.html:67
msgid "Get API Key"
msgstr ""
#: libretranslate/templates/index.html:69
msgid "GitHub"
msgstr ""
#: libretranslate/templates/index.html:71
msgid "Set API Key"
msgstr ""
#: libretranslate/templates/index.html:73
msgid "Change language"
msgstr ""
#: libretranslate/templates/index.html:79
msgid "Edit"
msgstr ""
#: libretranslate/templates/index.html:81
msgid "Toggle dark/light mode"
msgstr ""
#: libretranslate/templates/index.html:157
msgid "Dismiss"
msgstr ""
#: libretranslate/templates/index.html:171
msgid "Translation API"
msgstr ""
#: libretranslate/templates/index.html:175
msgid "Translate Text"
msgstr ""
#: libretranslate/templates/index.html:179
msgid "Translate Files"
msgstr ""
#: libretranslate/templates/index.html:185
msgid "Translate from"
msgstr ""
#: libretranslate/templates/index.html:195
msgid "Swap source and target languages"
msgstr ""
#: libretranslate/templates/index.html:198
msgid "Translate into"
msgstr ""
#: libretranslate/templates/index.html:210
msgid "Text to translate"
msgstr ""
#: libretranslate/templates/index.html:213
msgid "Delete text"
msgstr ""
#: libretranslate/templates/index.html:226
msgid "Suggest translation"
msgstr ""
#: libretranslate/templates/index.html:230
msgid "Cancel"
msgstr ""
#: libretranslate/templates/index.html:233
msgid "Send"
msgstr ""
#: libretranslate/templates/index.html:249
msgid "Supported file formats:"
msgstr ""
#: libretranslate/templates/index.html:253
msgid "File"
msgstr ""
#: libretranslate/templates/index.html:268
msgid "Remove file"
msgstr ""
#: libretranslate/templates/index.html:275
msgid "Translate"
msgstr ""
#: libretranslate/templates/index.html:276
#: libretranslate/templates/index.html:320
msgid "Download"
msgstr ""
#: libretranslate/templates/index.html:295
msgid "Request"
msgstr ""
#: libretranslate/templates/index.html:300
msgid "Response"
msgstr ""
#: libretranslate/templates/index.html:315
msgid "Open Source Machine Translation API"
msgstr ""
#: libretranslate/templates/index.html:316
msgid "Self-Hosted. Offline Capable. Easy to Setup."
msgstr ""
#: libretranslate/templates/index.html:335
msgid "LibreTranslate"
msgstr ""
#: libretranslate/templates/index.html:337
msgid "License:"
msgstr ""
#: libretranslate/templates/index.html:340
#, python-format
msgid ""
"This public API should be used for testing, personal or infrequent use. "
"If you're going to run an application in production, please "
"%(host_server)s or %(get_api_key)s."
msgstr ""
#: libretranslate/templates/index.html:340
msgid "host your own server"
msgstr ""
#: libretranslate/templates/index.html:340
msgid "get an API key"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s"
msgstr ""
#: libretranslate/templates/index.html:348
#, python-format
msgid "%(libretranslate)s Contributors"
msgstr ""

Some files were not shown because too many files have changed in this diff Show more