{"id":19555433,"url":"https://github.com/muzabol2/translator","last_synced_at":"2026-04-30T11:33:39.333Z","repository":{"id":162855397,"uuid":"632048975","full_name":"muzabol2/translator","owner":"muzabol2","description":"Some-like google translator :)","archived":false,"fork":false,"pushed_at":"2023-08-06T15:13:49.000Z","size":517,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T21:16:44.271Z","etag":null,"topics":["cypress","cypress-tests","react","styled-components","typescript","vite","youtube-tutorial"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muzabol2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-24T15:48:52.000Z","updated_at":"2024-09-03T11:20:03.000Z","dependencies_parsed_at":"2024-11-11T04:44:15.274Z","dependency_job_id":null,"html_url":"https://github.com/muzabol2/translator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muzabol2%2Ftranslator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muzabol2%2Ftranslator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muzabol2%2Ftranslator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muzabol2%2Ftranslator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muzabol2","download_url":"https://codeload.github.com/muzabol2/translator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240814837,"owners_count":19861955,"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":["cypress","cypress-tests","react","styled-components","typescript","vite","youtube-tutorial"],"created_at":"2024-11-11T04:33:55.519Z","updated_at":"2025-10-26T11:34:13.993Z","avatar_url":"https://github.com/muzabol2.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# translator\nTranslator is a small frontend application for the [LibreTranslate API](https://libretranslate.com/docs/) made from youtube tutorial for educational purposes only.\n\n\u003cimg width=\"602\" alt=\"image\" src=\"https://user-images.githubusercontent.com/109333068/236662593-9e4d0a60-3afd-4589-bb26-1871a4523534.png\"\u003e\n\n## Technologies\n* Set up the app with [Vite](https://vitejs.dev/) (before mostly use [Create React App](https://create-react-app.dev/))\n* [TypeScript](https://www.typescriptlang.org/)\n* libraries:\n  * [React](https://legacy.reactjs.org/)\n  * [use-debounce](https://www.npmjs.com/package/use-debounce)\n  * [styled-components](https://styled-components.com/)\n* test libraries:\n  * [react-testing-library](https://testing-library.com/docs/react-testing-library/intro/)\n  * [jest](https://jestjs.io/docs/tutorial-react) \n  * [vitest](https://vitest.dev/guide/)\n  * [cypress](https://www.cypress.io/)\n\n## Setup\nTo use LibreTranslate API you need to pay but you can run it locally and then it is free. [Here](https://github.com/muzabol2/translator/blob/main/src/lib/config/config.ts#L6) is a config line that you can change. \nTo run the api locally you need to download an image [libretranslate/libretranslate](https://hub.docker.com/r/libretranslate/libretranslate) and run it in a docker container. Do that: \n1. Make sure you have [Docker](https://www.docker.com/products/docker-desktop/) installed on your machine.\n2. In a `docker-compose.yml` file of the project choose languages you want to have:\n```yaml\nversion: \"3\"\nservices:\n  translator:\n    image: libretranslate/libretranslate\n    restart: always\n    ports:\n      - 3001:5000\n    environment:\n      LT_LOAD_ONLY: \"zh,de,pl,en,es\" // here change\n```\n3. In a terminal navigate to the root directory of your project where the `docker-compose.yml` file is located and run the command:\n```bash\ndocker-compose up\n```\n4. Once the container is up and running, your frontend translate app can communicate with it. You can check if api works by opening your web browser and navigating to `http://localhost:3001`.\n\n## Inspiration\n[Jacek Pudysz](https://github.com/jpudysz) - this repo is just a result of watching his tutorial on [YouTube](https://www.youtube.com/playlist?list=PLe9Nvh2XoKC0TPd5I5WMHtFsOTW1IGPy-). I just added a few little changes myself. The course helped me a lot to organize my knowledge. I also caught some good practices. Thank you. You are the best!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuzabol2%2Ftranslator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuzabol2%2Ftranslator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuzabol2%2Ftranslator/lists"}