Skip to content
Snippets Groups Projects
Commit f6bd993b authored by Piero Toffanin's avatar Piero Toffanin
Browse files

Minor changes, updated README

parent 094b650b
No related branches found
No related tags found
No related merge requests found
# LibreTranslate # LibreTranslate
Free and Open Source Translation API
Free and Open Source Translation API.
Entirely self-hosted and can work in offline environments. Unlike other APIs, it doesn't rely on a commercial provider such as Google or Azure to perform translations.
![image](https://user-images.githubusercontent.com/1951843/102724116-32a6df00-42db-11eb-8cc0-129ab39cdfb5.png)
[Try it online](https://libretranslate.com) | [API Docs](https://libretranslate.com/docs)
https://libretranslate.com
## Build and Run
Make sure you have installed Python (3.8 or higher), then simply issue:
```bash
git clone https://github.com/uav4geo/LibreTranslate --recurse-submodules
cd LibreTranslate
pip install -r requirements.txt
python main.py [args]
```
## Arguments
| Argument | Description | Default |
| ------------- | ------------------------------ | -------------------- |
| --host | Set host to bind the server to | `127.0.0.1` |
| --port | Set port to bind the server to | `5000` |
| --char-limit | Set character limit | `No limit` |
| --req-limit | Set maximum number of requests per minute per client | `No limit` |
| --ga-id | Enable Google Analytics on the API client page by providing an ID | `No tracking` |
| --debug | Enable debug environment | `False` |
| --ssl | Whether to enable SSL | `5000` |
## Roadmap
Help us by opening a pull request!
- [ ] A docker image
- [ ] Auto-detect input language
- [ ] User authentication / tokens
## Credits
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)
\ No newline at end of file
...@@ -6,7 +6,7 @@ from flask_swagger_ui import get_swaggerui_blueprint ...@@ -6,7 +6,7 @@ from flask_swagger_ui import get_swaggerui_blueprint
from flask_limiter.util import get_remote_address from flask_limiter.util import get_remote_address
def create_app(char_limit=-1, req_limit=-1, google_analytics=None, debug=False): def create_app(char_limit=-1, req_limit=-1, ga_id=None, debug=False):
boot() boot()
app = Flask(__name__) app = Flask(__name__)
...@@ -35,7 +35,7 @@ def create_app(char_limit=-1, req_limit=-1, google_analytics=None, debug=False): ...@@ -35,7 +35,7 @@ def create_app(char_limit=-1, req_limit=-1, google_analytics=None, debug=False):
@app.route("/") @app.route("/")
def index(): def index():
return render_template('index.html', gaId=google_analytics) return render_template('index.html', gaId=ga_id)
@app.route("/languages") @app.route("/languages")
def langs(): def langs():
......
...@@ -292,6 +292,7 @@ document.addEventListener('DOMContentLoaded', function(){ ...@@ -292,6 +292,7 @@ document.addEventListener('DOMContentLoaded', function(){
this.$refs.inputTextarea.style.height = 150 + "px"; this.$refs.inputTextarea.style.height = 150 + "px";
this.$refs.translatedTextarea.style.height = 150 + "px"; this.$refs.translatedTextarea.style.height = 150 + "px";
}else{ }else{
this.$refs.inputTextarea.style.height = this.$refs.translatedTextarea.style.height = "1px";
this.$refs.inputTextarea.style.height = Math.max(150, this.$refs.inputTextarea.scrollHeight) + "px"; this.$refs.inputTextarea.style.height = Math.max(150, this.$refs.inputTextarea.scrollHeight) + "px";
this.$refs.translatedTextarea.style.height = Math.max(150, this.$refs.translatedTextarea.scrollHeight) + "px"; this.$refs.translatedTextarea.style.height = Math.max(150, this.$refs.translatedTextarea.scrollHeight) + "px";
} }
......
...@@ -10,7 +10,7 @@ parser.add_argument('--char-limit', default=-1, metavar="<number of characters>" ...@@ -10,7 +10,7 @@ parser.add_argument('--char-limit', default=-1, metavar="<number of characters>"
help='Set character limit (%(default)s)') help='Set character limit (%(default)s)')
parser.add_argument('--req-limit', default=-1, type=int, metavar="<number>", parser.add_argument('--req-limit', default=-1, type=int, metavar="<number>",
help='Set maximum number of requests per minute per client (%(default)s)') help='Set maximum number of requests per minute per client (%(default)s)')
parser.add_argument('--google-analytics', type=str, default=None, metavar="<GA ID>", parser.add_argument('--ga-id', type=str, default=None, metavar="<GA ID>",
help='Enable Google Analytics on the API client page by providing an ID (%(default)s)') help='Enable Google Analytics on the API client page by providing an ID (%(default)s)')
parser.add_argument('--debug', default=False, action="store_true", parser.add_argument('--debug', default=False, action="store_true",
help="Enable debug environment") help="Enable debug environment")
...@@ -23,7 +23,7 @@ args = parser.parse_args() ...@@ -23,7 +23,7 @@ args = parser.parse_args()
if __name__ == "__main__": if __name__ == "__main__":
app = create_app(char_limit=args.char_limit, app = create_app(char_limit=args.char_limit,
req_limit=args.req_limit, req_limit=args.req_limit,
google_analytics=args.google_analytics, ga_id=args.ga_id,
debug=args.debug) debug=args.debug)
if args.debug: if args.debug:
app.run(host=args.host, port=args.port) app.run(host=args.host, port=args.port)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment