diff --git a/README.md b/README.md index b621e57..f9c61b7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,51 @@ # 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 diff --git a/app/app.py b/app/app.py index 18c88d6..30239ae 100644 --- a/app/app.py +++ b/app/app.py @@ -6,7 +6,7 @@ from flask_swagger_ui import get_swaggerui_blueprint 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() app = Flask(__name__) @@ -35,7 +35,7 @@ def create_app(char_limit=-1, req_limit=-1, google_analytics=None, debug=False): @app.route("/") def index(): - return render_template('index.html', gaId=google_analytics) + return render_template('index.html', gaId=ga_id) @app.route("/languages") def langs(): diff --git a/app/templates/index.html b/app/templates/index.html index cc50423..0a4a99a 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -292,6 +292,7 @@ document.addEventListener('DOMContentLoaded', function(){ this.$refs.inputTextarea.style.height = 150 + "px"; this.$refs.translatedTextarea.style.height = 150 + "px"; }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.translatedTextarea.style.height = Math.max(150, this.$refs.translatedTextarea.scrollHeight) + "px"; } diff --git a/main.py b/main.py index b524dbc..168b983 100644 --- a/main.py +++ b/main.py @@ -10,7 +10,7 @@ parser.add_argument('--char-limit', default=-1, metavar="" help='Set character limit (%(default)s)') parser.add_argument('--req-limit', default=-1, type=int, metavar="", help='Set maximum number of requests per minute per client (%(default)s)') -parser.add_argument('--google-analytics', type=str, default=None, metavar="", +parser.add_argument('--ga-id', type=str, default=None, metavar="", help='Enable Google Analytics on the API client page by providing an ID (%(default)s)') parser.add_argument('--debug', default=False, action="store_true", help="Enable debug environment") @@ -23,7 +23,7 @@ args = parser.parse_args() if __name__ == "__main__": app = create_app(char_limit=args.char_limit, req_limit=args.req_limit, - google_analytics=args.google_analytics, + ga_id=args.ga_id, debug=args.debug) if args.debug: app.run(host=args.host, port=args.port)