A Python package for translating large texts with advanced features.
Project description
OctoLingo
OctoLingo is a powerful and versatile Python package designed to simplify text translation and language processing tasks. Built with developers in mind, OctoLingo provides a seamless interface for translating text, detecting languages, and handling large-scale translation tasks efficiently. Whether you're building a multilingual application, analyzing global content, or automating translation workflows, OctoLingo has you covered.
Key Features
🌍 Multi-Language Support
- Translate text between 100+ languages with high accuracy.
- Automatically detect the language of input text.
🚀 Efficient Large-Text Handling
- Split large texts into manageable chunks to overcome API limitations.
- Translate large documents or datasets without hassle.
- Batch translation for large-scale projects.
⚡ Asynchronous Translation
- Perform non-blocking translations using async/await for improved performance.
📚 Custom Glossaries
- Define custom terms and their translations for domain-specific use cases.
- Ensure consistent translations for specialized vocabulary.
📂 Bulk File Translation
- Translate entire text files (e.g.,
.txt,.csv) with a single command.
📜 Translation History
- Log and retrieve translation history for auditing and analysis.
🛠️ Developer-Friendly
- Easy-to-use API with comprehensive documentation.
- Modular design for seamless integration into existing projects.
Installation
Install OctoLingo via pip:
pip install octolingo
Usage
Language Validation
from OctoLingo.translator import OctoLingo
translator = OctoLingo()
print(translator.validate_language('es')) # Should return True
try:
print(translator.validate_language('xx')) # Should raise TranslationError
except Exception as e:
print(e)
Translating Text
from OctoLingo.translator import OctoLingo
translator = OctoLingo()
translated_text, confidence = translator.translate("Hello, world!", 'es')
print(f"Translated Text: {translated_text}, Confidence: {confidence}")
Batch Translation
from OctoLingo.translator import OctoLingo
translator = OctoLingo()
texts = ["Hello", "Goodbye"]
results = translator.translate_batch(texts, 'es')
for translated_text, confidence in results:
print(f"Translated Text: {translated_text}, Confidence: {confidence}")
Asynchronous Translation
import asyncio
from OctoLingo.translator import OctoLingo
async def translate_async():
translator = OctoLingo()
translated_text, confidence = await translator.translate_async("Hello, world!", 'es')
print(translated_text) # Output: "¡Hola, mundo!"
# Check if there's an existing event loop before running it
if __name__ == "__main__":
try:
# Get the current event loop
loop = asyncio.get_event_loop()
if loop.is_running():
# In a running loop (like Jupyter), directly await the function
await translate_async()
else:
# If no loop is running, use asyncio.run to start the event loop
asyncio.run(translate_async())
except RuntimeError as e:
print("Error: ", e)
Detecting Language
from OctoLingo.translator import OctoLingo
translator = OctoLingo()
lang, confidence = translator.detect_language("Hola, cómo estás?")
print(f"Detected Language: {lang}, Confidence: {confidence}")
Custom Glossaries
from OctoLingo.glossary import Glossary
glossary = Glossary()
glossary.add_term("Hello", "Hola")
result = glossary.apply_glossary("Hello, world!")
print(result) # Should print "Hola, world!"
Bulk File Translation
from OctoLingo.translator import OctoLingo
from OctoLingo.file_handler import FileHandler
# Write test content to a file
FileHandler.write_file('input.txt', "Hello, world!")
# Translate the file content
translator = OctoLingo()
text = FileHandler.read_file('input.txt')
translated_text, _ = translator.translate(text, 'es')
FileHandler.write_file('output.txt', translated_text)
# Read and print the translated content
print(FileHandler.read_file('output.txt')) # Should print the translated text
Translation History
from OctoLingo.history import TranslationHistory
history = TranslationHistory()
history.log_translation("Hello", "Hola", "en", "es")
print(history.get_history()) # Should print the logged translation
Contributing
- OctoLingo is an open-source project, and contributions are welcome! If you'd like to contribute, please check out my GitHub repository for guidelines.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file octolingo-0.1.8.tar.gz.
File metadata
- Download URL: octolingo-0.1.8.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
412a7f9c2846c2b2da88aa48fcf8bbd3b6e7774658a229a46d477819acc83ee3
|
|
| MD5 |
76269078465f0aaef43fb3722ab03109
|
|
| BLAKE2b-256 |
25f2a97cb01a8e755023b19d983314ffa2b0aba6ca7c28de06e65198e47b9f24
|
File details
Details for the file octolingo-0.1.8-py3-none-any.whl.
File metadata
- Download URL: octolingo-0.1.8-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0b0802a1de428fef1c89cc4cd12462bc51621a8e2814026b0f1d9db751dc43e
|
|
| MD5 |
9835b35ffc13e7737026b7ec6cd06f22
|
|
| BLAKE2b-256 |
c9025e3c727640659d34c5087bf92bb3aabe4502fe7713166e97758d7690ebca
|