Inspiration
The inspiration for this project came from the thrill and challenges of exploring new countries, where language barriers can often stand in the way of fully experiencing a culture. We wanted to create a tool that would empower travellers to connect more meaningfully with the places they visit. With smart suggestions and accurate translations, Globingo not only helps travellers communicate effectively but also enhances their confidence and ease in navigating unfamiliar environments. Guided by the theme of travel, our goal was to simplify interactions and make the world more accessible, allowing adventurers to focus on the joy of discovery.
What it does
Globingo is designed to assist travellers in overcoming language barriers by providing instant translations of phrases into the local language of their destination. The tool contains a dictionary that maps various countries to their primary languages and corresponding language codes. This data is used to determine the language for translation based on the user’s destination. To handle variations in user input, the tool normalizes country names by trimming spaces and capitalizing letters. If the input country is not directly found, it uses fuzzy matching to suggest the closest country name, allowing for better user interaction. Using the Google Translate API, the tool translates user-provided phrases into the local language of the chosen country. The translation is then enhanced with a simplified pronunciation using the Unidecode library, making it easier for travellers to communicate.Users input their destination country, receive the primary language spoken there, and can then enter a phrase to be translated into the local language. It is also able to speak the translated text out loud for the user to hear. Another feature of the project is that if the translation involves English, the tool notes that no translation is needed.
How we built it
We built the backend of our application using a combination of data structures, libraries, and functions to handle translation and user interactions effectively. We began by creating a comprehensive dictionary, country_languages, mapping countries to their primary languages and language codes. To ensure consistent matching, we implemented the normalize_country_name function, which standardizes user inputs by trimming spaces and capitalizing names. For handling variations and errors in user input, we developed the suggest_country function using the fuzzywuzzy library, which provides close matches to country names. Translation functionality is managed by the translate_phrase function, which utilizes the googletrans library to translate phrases into the target language and the unidecode library to provide ASCII-based pronunciation. We included error handling to manage unsupported countries and languages, offering suggestions for close matches where appropriate. The main function features a loop that continuously prompts the user until valid input is received, guiding them through the translation process and providing real-time feedback. This backend setup ensures accurate translations and smooth user interactions, forming the core functionality of our translation tool. We also designed a simple and intuitive frontend using HTML templates. The main page (index.html) includes an input form for users to enter their destination country and the phrase they wish to translate along with a section to display the translation result or any error messages. Users input their country and phrase, which are sent to the backend via a POST request to the /translate route. The backend processes the input, performs translation if necessary, and returns the result, which is then rendered on the webpage. We also configured Flask to run in debug mode for local development, allowing real-time testing and adjustments. By combining the front end and the back end, we created a user-friendly tool that helps travellers communicate with locals by providing accurate translations in a web-based format.
Challenges we ran into
For all of us, it was our first time utilizing these libraries, so we all had to do lots of research on the commands of the libraries, how the libraries work, and whether they would be of use to us. Another challenge we faced was developing the Phonetic Variations feature for the Globingo App. This required numerous hours of research to find the subsequent libraries needed, as well as understanding the implementation process, and the multiple rounds of feature testing to see whether the feature worked properly. This was a tedious task that took a lot of time, research and testing.
Accomplishments that we're proud of
The accomplishments that we gained from this project are plentiful, here are some of the accomplishments that we are most proud of: 1) Successfully creating a language translation app that can accurately translate phrases from English to the language of your choice. The multitude of language options is something we are very proud of as it makes the app more useful to people travelling to a variety of countries. 2) Adding in features such as detecting Spelling and Capitalisation Errors and providing real-time autocorrection functionality to enhance user experience. Another feature is a phonetic version feature, allowing users to see the pronunciation of translated words and phrases, making it easier to learn and communicate in new languages. 3) Creating a seamless and engaging user interface where users can very easily be able to navigate through the page, as well as adding a voice output feature that can help users understand how the translation sounds.
What we learned
The biggest lessons that we were able to take away from this project is Time Management, User Input Handling, and Code Documentation. Learning to balance such a big and ambitious project in 48 hours was challenging, especially taking into consideration the different time zones our team members were in. User Input Handling was also quite difficult as covering the vast amount of English phrases, as well as the different languages covered was a difficult process and needed ample code testing to make sure that all languages were implemented correctly, and error-free. Last but not least, code documentation was something that sounded simple, yet was difficult. Being able to understand code from four different members, each of who had different styles of writing code, as well as communicating with all the team members was difficult, yet was an enriching experience that is sure to help us in our future endeavours.
What's next for Globingo
The next steps for Globingo include expanding its capabilities to allow translations between any two languages, not just English to another language. This will involve upgrading the translation engine and user interface to accommodate a broader range of language pairs. Additionally, integrating features like real-time conversation translation and language-learning tools will enhance the app's utility. Finally, optimizing performance and adding offline translation capabilities will make Globingo more accessible and reliable for travellers.

Log in or sign up for Devpost to join the conversation.