forked from mirrors/LibreTranslate
Minor changes, updated README
This commit is contained in:
parent
094b650be5
commit
f6bd993b38
4 changed files with 55 additions and 5 deletions
51
README.md
51
README.md
|
@ -1,2 +1,51 @@
|
||||||
# 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)
|
|
@ -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):
|
||||||
|
|
||||||
@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(){
|
||||||
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";
|
||||||
}
|
}
|
||||||
|
|
4
main.py
4
main.py
|
@ -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()
|
||||||
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)
|
||||||
|
|
Loading…
Reference in a new issue