Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octolingo-0.1.5.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

octolingo-0.1.5-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file octolingo-0.1.5.tar.gz.

File metadata

  • Download URL: octolingo-0.1.5.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for octolingo-0.1.5.tar.gz
Algorithm Hash digest
SHA256 36eb2e60a782adb627fea38022ce598f9f9927f9e426d78422e2c3ad1c1ddd0e
MD5 a57e4b11ed1ddeb68269196c30a27dff
BLAKE2b-256 e98a5fe25356cb0f5a6a46c177a7db07ef94daa76da69f51118b1f73785c6cd8

See more details on using hashes here.

File details

Details for the file octolingo-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: octolingo-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for octolingo-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4c531ab4a44ad13560f23c8dc6ccad3146fa9d7fb3d6a724a0b4c9a00e6dedfd
MD5 313363565a2df871f88463ffffa1f406
BLAKE2b-256 793c313d61b7e49e616e6fb9d3f7af00aae19be4dc1b2b0d043201efc566baad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page