Opsdroid is an open-source chatbot framework written in Python that allows developers to create, deploy, and manage conversational bots. The framework provides:
- Connectors to integrate bots with various messaging platforms like Slack, Telegram, Matrix, and Microsoft Teams.
- Modules to add functionality, including integration with external APIs (e.g., weather services) and natural language processing (NLP) tools like Rasa NLU or Dialogflow.
- Flexibility to extend bots for handling tasks like interacting with databases (MySQL), CMS systems (WordPress), and custom APIs.
Opsdroid's modular architecture and welcoming community made it a perfect choice for my first open-source contribution.
## Why I Chose Opsdroid
I chose Opsdroid because:
- Ease of Extensibility: It offers modular design, making it easy to add new skills or connectors.
- Well-Documented: The project includes extensive documentation and tutorials, which simplified the onboarding process.
- Community: The maintainers are responsive and open to new contributors.
Additionally, Opsdroid provides a practical environment for experimenting with Python and APIs, a combination I was eager to explore.
## Exploring Opsdroid Locally
I began by cloning the Opsdroid repository and setting up the project locally.
Following the official documentation, I installed the necessary dependencies and ran Opsdroid locally. This allowed me to experiment with various skills and connectors:
- Weather API Skill: I added a skill to fetch weather updates using the OpenWeatherMap API.
- Currency Conversion API: Another skill I added provided real-time currency exchange rates.
These experiments helped me understand how Opsdroid interacts with APIs and responds to user inputs.
## Contribution: Improving French Translations
### Identifying Translation Issues
While exploring Opsdroid, I noticed that some French translations were either missing or incorrect in the opsdroid.po file located in locale/fr/LC_MESSAGES/.
Examples:
- Incorrect translations of technical terms.
- Missing translations for newly added features.
- Outdated line references in the .po file.
### Tools Used
- Poedit: A user-friendly software that simplifies managing and updating .po files.
- Gettext: I used this tool to extract translatable strings and generate updated .pot templates.