{"id":13534088,"url":"https://github.com/fabasoad/translation-action","last_synced_at":"2026-04-12T00:02:09.681Z","repository":{"id":39182939,"uuid":"247280797","full_name":"fabasoad/translation-action","owner":"fabasoad","description":"GitHub action that translates any text to any language supported by chosen provider.","archived":false,"fork":false,"pushed_at":"2025-04-11T22:03:46.000Z","size":15495,"stargazers_count":41,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T08:18:32.554Z","etag":null,"topics":["deepl-translator","funtranslation-api","github-action","github-actions","google-translate","libretranslate","linguatools","microsoft-translator","mymemorytranslator","translate","translation","translation-action"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabasoad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["https://www.bitcoinqrcodemaker.com/?style=bitcoin\u0026address=145HwyQAcv4vrzUumJhu7nWGAVBysX9jJH\u0026prefix=on","https://paypal.me/fabasoad"],"github":["fabasoad"],"ko_fi":"fabasoad","liberapay":"fabasoad"}},"created_at":"2020-03-14T13:22:31.000Z","updated_at":"2025-04-11T22:03:50.000Z","dependencies_parsed_at":"2023-01-04T12:18:21.473Z","dependency_job_id":"e0a3aa83-74b0-4053-8859-0134a864557d","html_url":"https://github.com/fabasoad/translation-action","commit_stats":{"total_commits":196,"total_committers":5,"mean_commits":39.2,"dds":0.4642857142857143,"last_synced_commit":"7994df0e3b406e0b7e9c60c31248b306a603730d"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabasoad%2Ftranslation-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabasoad%2Ftranslation-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabasoad%2Ftranslation-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabasoad%2Ftranslation-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabasoad","download_url":"https://codeload.github.com/fabasoad/translation-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248681552,"owners_count":21144705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deepl-translator","funtranslation-api","github-action","github-actions","google-translate","libretranslate","linguatools","microsoft-translator","mymemorytranslator","translate","translation","translation-action"],"created_at":"2024-08-01T07:01:26.240Z","updated_at":"2026-04-12T00:02:09.670Z","avatar_url":"https://github.com/fabasoad.png","language":"TypeScript","funding_links":["https://www.bitcoinqrcodemaker.com/?style=bitcoin\u0026address=145HwyQAcv4vrzUumJhu7nWGAVBysX9jJH\u0026prefix=on","https://paypal.me/fabasoad","https://github.com/sponsors/fabasoad","https://ko-fi.com/fabasoad","https://liberapay.com/fabasoad"],"categories":["Community Resources","Uncategorized"],"sub_categories":["Localization","Uncategorized"],"readme":"# Translation action\n\n[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)\n![Releases](https://img.shields.io/github/v/release/fabasoad/translation-action?include_prereleases)\n![unit-tests](https://github.com/fabasoad/translation-action/actions/workflows/unit-tests.yml/badge.svg)\n![test-providers](https://github.com/fabasoad/translation-action/actions/workflows/test-providers.yml/badge.svg)\n![test-source](https://github.com/fabasoad/translation-action/actions/workflows/test-source.yml/badge.svg)\n![security](https://github.com/fabasoad/translation-action/actions/workflows/security.yml/badge.svg)\n![linting](https://github.com/fabasoad/translation-action/actions/workflows/linting.yml/badge.svg)\n[![codecov](https://codecov.io/gh/fabasoad/translation-action/branch/main/graph/badge.svg?token=X0W90WW07U)](https://codecov.io/gh/fabasoad/translation-action)\n\nThis action translates any text to any language supported by chosen provider.\nThere is a list of providers that can be used for text translation. Please find\nmore details for each provider below.\n\n## Contents\n\n\u003c!-- TOC --\u003e\n* [Translation action](#translation-action)\n  * [Contents](#contents)\n  * [Inputs](#inputs)\n  * [Outputs](#outputs)\n  * [Providers](#providers)\n    * [AWS](#aws)\n    * [DeepL](#deepl)\n    * [Google](#google)\n    * [LibreTranslate](#libretranslate)\n    * [Linguatools](#linguatools)\n    * [Microsoft](#microsoft)\n    * [MyMemory](#mymemory)\n    * [FunTranslations](#funtranslations)\n  * [Contributions](#contributions)\n\u003c!-- TOC --\u003e\n\n## Inputs\n\n| Name                     | Required | Description                                                                                      | Default | Possible values                                                                                                                                                                         |\n|--------------------------|----------|--------------------------------------------------------------------------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| source                   | Yes      | Can be text or path to the file for translation                                                  |         | _\u0026lt;Path\u0026gt;_,_\u0026lt;String\u0026gt;_                                                                                                                                                         |\n| provider                 | Yes      | Provider identifier                                                                              |         | [deepl](#deepl), [google](#google), [libretranslate](#libretranslate), [linguatools](#linguatools), [microsoft](#microsoft), [mymemory](#mymemory), [funtranslations](#funtranslations) |\n| api_key                  | No       | API key that should be used for chosen [provider](#providers)                                    | `\"\"`    | _\u0026lt;String\u0026gt;_                                                                                                                                                                        |\n| api_additional_parameter | No       | Additional parameter for the API, e.g. the region for Microsoft: `canadacentral`                 | `\"\"`    | _\u0026lt;String\u0026gt;_                                                                                                                                                                        |\n| lang                     | Yes      | The translation direction. Should be one of the option proposed by chosen [provider](#providers) |         | _\u0026lt;String\u0026gt;_                                                                                                                                                                        |\n\n## Outputs\n\n| Name | Required | Description     |\n|------|----------|-----------------|\n| text | Yes      | Translated text |\n\n## Providers\n\n### AWS\n\n* Identifier is `aws`.\n* [Supported translation directions](https://docs.aws.amazon.com/translate/latest/dg/what-is-languages.html)\n* How to get API key: Please follow the steps described in [this](https://docs.aws.amazon.com/keyspaces/latest/devguide/create.keypair.html)\n  article.\n* How to use:\n  * You will need to define Access Key ID and Secret Access Key in `api_key` parameter\n    separated by `|` (pipe) character.\n  * You will also need to provide the region of the key using the `api_additional_parameter`.\n\n```YAML\nwith:\n  api_key: \"${{ secrets.ACCESS_KEY_ID }}|${{ secrets.SECRET_ACCESS_KEY }}\"\n  api_additional_parameter: \"ap-northeast-1\" # AWS region\n```\n\n### DeepL\n\n* Identifier is `deepl`.\n* See [supported translation directions](https://www.deepl.com/docs-api/general/get-languages/)\n  for more details.\n  * Be aware that source and target languages should be separated by `-` (hyphen)\n  character while using them in `lang` input. For example, `en-uk` should be used\n  in case you want to translate text from English into Ukrainian. See example\n  below for more details.\n* How to get API key:\n  * Sign up to [DeepL](https://www.deepl.com) (free plan is fine).\n  * Go to `Account -\u003e Account -\u003e Authentication Key for DeepL API` section\n\nExample of translating \"Love\" word from English into Ukrainian:\n\n```yaml\njobs:\n  deepl:\n    name: DeepL\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: fabasoad/translation-action@v4\n        id: deepl-step\n        with:\n          provider: deepl\n          lang: en-uk\n          source: Love\n          api_key: ${{ secrets.DEEPL_API_KEY }}\n      - name: Print the result\n        run: echo \"Translation is '${{ steps.deepl-step.outputs.text }}'\"\n        shell: sh\n```\n\nOutput is the following:\n\n```text\n\u003e echo \"Translation is 'Любов'\"\nTranslation is 'Любов'\n```\n\n### Google\n\n* Identifier is `google`.\n* See [supported translation directions](https://github.com/AidanWelch/google-translate-api/blob/v10.7.2/index.d.ts#L123)\n  for more details.\n  * Be aware that source and target languages should be separated by `|` (pipe)\n  character while using them in `lang` input. For example, `ms|en` should be used\n  in case you want to translate text from Malay into English. See example below\n  for more details.\n\nExample of translating \"Victory\" word from Malay into English:\n\n```yaml\njobs:\n  google:\n    name: Google\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: fabasoad/translation-action@v4\n        id: google-step\n        with:\n          provider: google\n          lang: ms|en\n          source: Kemenangan\n      - name: Print the result\n        run: echo \"Translation is '${{ steps.google-step.outputs.text }}'\"\n        shell: sh\n```\n\nOutput is the following:\n\n```text\n\u003e echo \"Translation is 'Victory'\"\nTranslation is 'Victory'\n```\n\n### LibreTranslate\n\n* Identifier is `libretranslate`.\n* See [supported translation directions](https://libretranslate.com/languages)\n  for more details.\n  * Be aware that source and target languages should be separated by `-` (hyphen)\n    character while using them in `lang` input. For example, `en-es` should be used\n    in case you want to translate text from English into Spanish. See example\n    below for more details.\n* How to get API key:\n  * Sign up to [LibreTranslate](https://portal.libretranslate.com/).\n  * Go to `Home -\u003e Get API Key` section\n\nExample of translating \"Victory\" word from English into Ukrainian:\n\n```yaml\njobs:\n  libretranslate:\n    name: LibreTranslate\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: fabasoad/translation-action@v4\n        id: libretranslate-step\n        with:\n          provider: libretranslate\n          lang: en-uk\n          source: Victory\n          api_key: ${{ secrets.LIBRETRANSLATE_API_KEY }}\n      - name: Print the result\n        run: echo \"Translation is '${{ steps.libretranslate-step.outputs.text }}'\"\n        shell: sh\n```\n\nOutput is the following:\n\n```text\n\u003e echo \"Translation is 'Перемога'\"\nTranslation is 'Перемога'\n```\n\n### Linguatools\n\n* Identifier is `linguatools`. API Key is not needed for this provider.\n* Supported translation directions:\n\n```text\n\"de-en\",\"de-es\",\"de-nl\",\"de-pl\",\"de-it\",\"de-cs\",\"en-de\",\"es-de\",\"nl-de\",\"pl-de\",\"it-de\",\"cs-de\"\n```\n\n### Microsoft\n\n* Identifier is `microsoft`.\n* Supported translation directions:\n\n```text\n\"af\",\"ar\",\"bg\",\"bn\",\"bs\",\"ca\",\"cs\",\"cy\",\"da\",\"de\",\"el\",\"en\",\"es\",\"et\",\"fa\",\"fi\",\"fr\",\"he\",\"hi\",\"hr\",\"ht\",\"hu\",\"id\",\"is\",\"it\",\"ja\",\"ko\",\"lt\",\"lv\",\"ms\",\"mt\",\"mww\",\"nb\",\"nl\",\"pl\",\"pt\",\"ro\",\"ru\",\"sk\",\"sl\",\"sr-Latn\",\"sv\",\"sw\",\"ta\",\"th\",\"tlh-Latn\",\"tr\",\"uk\",\"ur\",\"vi\",\"zh-Hans\"\n```\n\n* How to get API key:\n\nPlease follow the steps described in [this](https://docs.microsoft.com/en-us/azure/cognitive-services/translator/translator-text-how-to-signup)\narticle.\n\nYou will also need to provide the region of the key using the\n`api_additional_parameter`, e.g.:\n\n```YAML\nwith:\n  api_additional_parameter: \"canadacentral\"\n```\n\n### MyMemory\n\n* Identifier is `mymemory`.\n* [Supported translation directions](https://mymemory.translated.net/doc/spec.php):\n\nLanguage direction should be separated by `|` character. For example, `en|it`\n(from English to Italian).\n\n* How to get API key:\n\nAPI Key is _optional_. Visit [Usage Limit Page](https://mymemory.translated.net/doc/usagelimits.php)\nto see the usage limit for free accounts. In case you want to use your API KEY,\nyou should go to [Registration Page](https://www.translated.net/top/) and\nregister a new account. Then go to [API Key Generator Page](https://mymemory.translated.net/doc/keygen.php)\nand generate a new key.\n\n### FunTranslations\n\n* Identifier is `funtranslations`.\n* [Supported translation directions](https://funtranslations.com/api/):\n\n\u003e `from` direction is English only at this moment.\n\nExample:\n\n```yaml\n- uses: fabasoad/translation-action@v4\n  with:\n    provider: \"funtranslations\"\n    lang: \"klingon\"\n    source: \"Who are you\"\n    api_key: \"${{ secrets.FUNTRANSLATIONS_API_KEY }}\"\n```\n\n## Contributions\n\n![Alt](https://repobeats.axiom.co/api/embed/666b4ed5b82273f6ecae26db931e5c9dd71b65b1.svg \"Repobeats analytics image\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabasoad%2Ftranslation-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabasoad%2Ftranslation-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabasoad%2Ftranslation-action/lists"}