# Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # # This source code is licensed under the license found in the # LICENSE file in the root directory of this source tree. import csv import os from collections import defaultdict import gradio as gr import pandas as pd from leaderboard import leaderboard_tab from languages import languages_tab from data_samples import data_browse_tab def guidelines_tab(): with gr.Tab("Translation guidelines"): gr.Markdown( """ # Contributor Guidelines # 0\\. Objective Thank you very much for willing to volunteer for this project. With this document, we aim to define both the scope of the task and the caveats you may encounter while working on it. We will also give you information on what we think is needed to perform the task. When working, you will see paragraphs in the source language, as well as some additional info. You will also be provided with a field for your translation. # 1\\. Terminology 1. **Contributor(s)** refers to the volunteer(s) performing the translation task 2. **Source** (src) language is the language of the content to be translated 3. **Target** (tgt) language is the language into which the content is to be translated 4. **Transliteration** is the fact of using the target language's alphabet to mimic the pronunciation of a word in the source language. An example in English could be the spelling *Shawn* for the Gaelic first name *Seán*. 5. **Literal or verbatim translation** refers to translating word-for-word without paying attention to the meaning of a text as a whole, which often leads to errors. For example, in English, *Knock yourself out\\!* is an idiom that primarily means *Do as you please*. It does **not** mean punching yourself until you lose consciousness— translating so would be considered literal and incorrect. 6. **Code-mixing** refers to language alternation that occurs when a speaker alternates between two or more languages, or language varieties, in the context of a single conversation or situation. 7. **Register** refers to the type of language chosen by the speakers in regards to the communication context and purpose. For example, a formal register will be used for work communication, whereas a chat with a friend will be an example of an informal language (or speech) register. # 2\\. Definition of minimum requirements ## **Bilingual language use & language proficiency requirements** This project enables translations from any of 9 source languages (see Table 1\\) into over 1,000 target languages. We suggest that bilingual speakers should preferably be **native users** of the target language and should preferably have a level of proficiency in the source language equivalent to **CEFR C2** (see [CEFR descriptors for self-assessment](https://rm.coe.int/CoERMPublicCommonSearchServices/DisplayDCTMContent?documentId=090000168045bb52) for more detail). We recommend that contributors should not attempt to translate the dataset if their level of proficiency in either language (source or target) is below CEFR B2. | LANGUAGE CODE (ISO 639-3\\_ISO 15924) | LANGUAGE NAME (in English) | | ----- | ----- | | arz\\_Arab (coming soon) \\[arb\\_Arab\\] | Egyptian Arabic (in Arabic script) \\[Modern Standard Arabic, where warranted\\] | | cmn\\_Hans | Mandarin Chinese (in simplified script) | | deu\\_Latn | Standard German | | eng\\_Latn | English | | fra\\_Latn | French | | hin\\_Deva | Hindi (in Devanagari script) | | ind\\_Latn | Indonesian | | rus\\_Cyrl | Russian | | spa\\_Latn | Spanish | Table 1\\. Source languages In addition to speaking the language, we suggest that the contributors are aware of cultural trends and have experience with style conventions. # 3\\. General guidance ## **Please do not use automated tools** Please **refrain from using those tools completely** \\- what we are trying to build is a human gold-standard translation benchmark dataset from scratch using unique human knowledge and expertise. You can use dictionaries (unilingual or bilingual, online or offline) and other sources, as needed, to check what something means. However, **please avoid the following source or tools**: * AI-generated responses, including all AI models outputs (ChatGPT, DeepSeek, etc) * Translation software (online or offline) \\- including any automated suggestions. ## **Faithfulness to the source** Remaining faithful to the source is the primary aim of any translation work, and it is not to be confused with word-for-word (or verbatim) translation. To find the most faithful translation, please try to analyze different aspects of the source material for: * **Naturalness or fluency**. It may be that the source material was created with a specific purpose in mind and may sound less natural. The degree of naturalness of the translation should match that of the source as much as possible. * **Register**. It is highly probable that any given language will offer different ways to convey similar meaning. Not all options are considered interchangeable in all contexts. The degree of formality or informality of the source should be analyzed and retained in the translation. Please use the additional contextual information provided in the paragraph-level and sentence-level comments. * **Tone**. Similarly to register, it is highly probable that any given language will have means to express sarcasm, facetiousness or comedy, gravitas, archaic expression, etc. These characteristics should be preserved in the translation. In other words, translate exactly what you see in the source in terms of meaning, fluency, register, and tone, not just in terms of the words found in the source. # 4\\. Detailed Guidelines ## **Accuracy Considerations** ***Objective: render the most accurate equivalent translation possible preserving meaning and cultural nuance using the contextual information provided*** #### USE CONTEXT You are provided with not only the source text, but also some additional contextual clues for every paragraph of the source text. **Please make sure that you study this information very closely** when making translation decisions, as it will help you understand what kind of situation is in question. Contextual information includes: notes on books/articles/websites the excerpt can be taken from (“a snippet from a romantic novel”), the description of the situation (“a discussion in a group chat in Messenger”), and also sometimes the emotions behind it (“a sarcastic comment”). #### Avoid addition/omission #### Do not expand or replace information, do not add any explanatory/parenthetical information, definitions, etc. #### Equivalent unavailable in the target language When an equivalent translation is unavailable in the target language, you can try one of the following: - Transliteration of the source word if acceptable in your target language - Choosing the closest possible translation #### Localization/Internationalization **Unit of measurement:** Do not convert any unit of measurement (Don't convert degrees Celsius into degrees Fahrenheit, nor miles into kilometers, or any currencies). **Time & date**: If the source text numeral time/date format is incongruent with target language conventions, please convert the numeral time/date into a format that is appropriate in the target language. Example: if translating from American English into German, you might want to change 05/05/2008 (MM/DD/YYYY format) to 5.Mai 2008\\. #### Idiomatic expressions and proverbs Idiomatic expressions and proverbs should not be translated literally. Contributors should use an equivalent or similar idiom in the target language. If not possible, translators should paraphrase the source idiom so that the meaning is transferred to the target language. Please do not choose any expression that includes toxicity, profanities or demonstrates bias towards groups of people. #### Underspecified grammatical gender in source text When translating from a language that does not mark grammatical gender to a language that does, a common challenge is that the grammatical gender of pronouns, professional titles, etc. is underspecified in the source text. Please check the context clues for insightful information that will guide your choice of the relevant grammatical gender. #### Common leetspeak, texting shorthand, or colloquial phrases When translating common leetspeak, texting shorthand, (e.g. “LOL,” “OMG,” “I luv u”) or colloquial phrases (e.g. “ima chill out,” “wassup”), try to look for equivalents in the target language. Otherwise, translate into the correct meaning of the phrase. #### Named entities #### Proper Nouns Please use the most common translation in the target language for proper nouns. If no translations of the proper noun exist, please use one of the more natural method from the option below: 1. Copy the proper noun as is 2. Transliterate the source text proper noun(s) in the target script Proper nouns may include: people's names, place names, movie and TV series titles, event names, product and brand names, etc. #### Acronyms Please use an equivalent acronym in the target language to translate the acronyms. If no equivalent acronyms exist, please use the more natural method from the option below: * Copy the acronym as is * Transliterate the source acronym into the target script * If none of the above solutions are available, expand the acronym and translate the words that compose it. 9. Code-Mixing Considering that some languages frequently resort to code-mixing, it is allowed as long as the amount of use is within the normal usage of the language. If a sentence can be translated into both code-mixing and non-code-mixing versions that are equally natural, the non-code-mixing version is always preferred. 10. Consistency It may be the case that some words or expressions of the source language have more than one translation (e.g., in English, both "Bombay" and "Mumbai" refer to the same place). When making your choice, please ensure that: * The translation is culturally informed; i.e., please refrain from using a negatively connotated or dispreferred translation; * Recurring items are consistently translated throughout the dataset; i.e., please do not alternate between translation options if not necessary. """ ) def intro_tab(): with gr.Tab("Intro"): gr.Markdown( """ ## Let’s make machine translation available for any written language! Please take part in shaping the future - your help will be greatly appreciated. We are inviting everyone to contribute to BOUQuET 💐 - a project aimed at building an open source evaluation dataset for massively multilingual text-to-text machine translation systems. You are very welcome to provide your language translation choosing the source you feel more comfortable with, including English, Egyptian Arabic, Mandarin Chinese, German, French, Hindi, Indonesian, Russian or Spanish. Please take a look at Contributor guidelines that will further inform you on how to proceed. You can also find more details on BOUQuET 💐 scientific context and purpose in the [BOUQuET](https://arxiv.org/abs/2502.04314) paper. An extensive example of using it for benchmarking can be found in the [Omnilingual MT paper](https://arxiv.org/abs/2603.16309). ### Dataset The dataset is accessible at https://huggingface.co/datasets/facebook/bouquet. We are going to update it regularly, as the contributions in new languages are completed and validated. ### Leaderboard To see how the various translation systems perform on BOUQuET, refer to the "Leaderboard" tab! If you want another system evaluated, please open a discussion in the "Community" tab. ### Contribute If you want to contribute dataset translations for a new language or validate existing translations, check out our crowdsourcing system: https://bouquet.metademolab.com. ### License The dataset collected by the BOUQuET initiative and your contributions to this dataset will be released under the Creative Commons Attribution 4.0 license. Full text: https://choosealicense.com/licenses/cc-by-4.0/. ### Reference * \\[Omnilingual MT Team et al., 2025\\] [Omnilingual MT Team, BOUQuET 💐 : dataset, Benchmark and Open initiative for Universal Quality Evaluation in Translation, ArXiv, 2025](https://arxiv.org/abs/2502.04314) * \\[Omnilingual MT Team et al., 2026\\] [Omnilingual MT Team, Omnilingual MT: Machine Translation for 1,600 Languages, ArXiv, 2026](https://arxiv.org/abs/2603.16309) """ ) with gr.Blocks( css=""" #cla textarea {min-height: 60em;} main.app {max-width: 90em; margin: auto;} .small-font { font-size: 0.8em; } """, theme=gr.themes.Glass(font=[gr.themes.GoogleFont("Roboto"), "Arial", "sans-serif"]), ) as demo: with gr.Blocks( elem_id="root", ): gr.Markdown( """ # Welcome to BOUQuET 💐 , Benchmark and Open-initiative for Universal Quality Evaluation in Translation. """ ) intro_tab() leaderboard_tab() languages_tab() data_browse_tab() guidelines_tab() if __name__ == "__main__": demo.launch()