mymemory_translate 2.0.0 copy "mymemory_translate: ^2.0.0" to clipboard
mymemory_translate: ^2.0.0 copied to clipboard

An API to get and manage translations from the MyMemory translate REST API

mymemory_translate #

A simple API to get and manage translations from the MyMemory translation REST API.

A full specification for the API can be found here.

Getting started #

In your Flutter project add the dependency:

dependencies:
    mymemory_translate: ^2.0.0

or run flutter pub add mymemory_translate.

Usage Examples #

Translating #

void main() async {
  
  // Create a new translator without a key or email
  var translator = MyMemoryTranslator(http.Client);
  
  // Translate "Hello" from English to German
  var result = await translator.translate('Hello', 'en-us', 'de');
  
  // Prints "Hallo"
  print(result.responseData.translatedText);
  
  // You can set your email to get 50,000 characters per day
  // instead of only 5,000.
  translator.email = "email@email.com";
}

Generating an API Key #

void main() async {

  // Create a new translator without a key or email
  var translator = MyMemoryTranslator(http.Client);
  
  // Generate the API key with my username and password
  await translator.generateKey('myusername', 'mypassword');
  print(translator.key);
  
  // Now you can access your private glossary
  // For example, to get translations only from your private glossary
  var result = await translator.translate('Hello', 'en-us', 'de', private: true);

  // Or to set a translation in your private glossary
  await translator.setTranslation('Hello', 'Hallo', 'en-us', 'de', private: true);
}

Setting Translations #

void main() async {

  // Create a new translator without a key or email
  var translator = MyMemoryTranslator(http.Client);
  
  // Set "Hello" to "Hallo" from English to German
  await translator.setTranslation('Hello', 'Hallo', 'en-us', 'de');
}

Languages #

Currently accepted languages are as follows:

{
  "Autodetect": "Autodetect",
  "Afrikaans": "af-ZA",
  "Albanian": "sq-AL",
  "Amharic": "am-ET",
  "Arabic": "ar-SA",
  "Armenian": "hy-AM",
  "Azerbaijani": "az-AZ",
  "Bajan": "bjs-BB",
  "Balkan Gipsy": "rm-RO",
  "Basque": "eu-ES",
  "Bemba": "bem-ZM",
  "Bengali": "bn-IN",
  "Bielarus": "be-BY",
  "Bislama": "bi-VU",
  "Bosnian": "bs-BA",
  "Breton": "br-FR",
  "Bulgarian": "bg-BG",
  "Burmese": "my-MM",
  "Catalan": "ca-ES",
  "Cebuano": "ceb-PH",
  "Chamorro": "ch-GU",
  "Chinese (Simplified)": "zh-CN",
  "Chinese Traditional": "zh-TW",
  "Comorian (Ngazidja)": "zdj-KM",
  "Coptic": "cop-EG",
  "Creole English (Antigua and Barbuda)": "aig-AG",
  "Creole English (Bahamas)": "bah-BS",
  "Creole English (Grenadian)": "gcl-GD",
  "Creole English (Guyanese)": "gyn-GY",
  "Creole English (Jamaican)": "jam-JM",
  "Creole English (Vincentian)": "svc-VC",
  "Creole English (Virgin Islands)": "vic-US",
  "Creole French (Haitian)": "ht-HT",
  "Creole French (Saint Lucian)": "acf-LC",
  "Creole French (Seselwa)": "crs-SC",
  "Creole Portuguese (Upper Guinea)": "pov-GW",
  "Croatian": "hr-HR",
  "Czech": "cs-CZ",
  "Danish": "da-DK",
  "Dutch": "nl-NL",
  "Dzongkha": "dz-BT",
  "English (UK)": "en-GB",
  "English (US)": "en-US",
  "Esperanto": "eo-EU",
  "Estonian": "et-EE",
  "Fanagalo": "fn-FNG",
  "Faroese": "fo-FO",
  "Finnish": "fi-FI",
  "French": "fr-FR",
  "Galician": "gl-ES",
  "Georgian": "ka-GE",
  "German": "de-DE",
  "Greek": "el-GR",
  "Greek (Classical)": "grc-GR",
  "Gujarati": "gu-IN",
  "Hausa": "ha-NE",
  "Hawaiian": "haw-US",
  "Hebrew": "he-IL",
  "Hindi": "hi-IN",
  "Hungarian": "hu-HU",
  "Icelandic": "is-IS",
  "Indonesian": "id-ID",
  "Inuktitut (Greenlandic)": "kl-GL",
  "Irish Gaelic": "ga-IE",
  "Italian": "it-IT",
  "Japanese": "ja-JP",
  "Javanese": "jv-ID",
  "Kabuverdianu": "kea-CV",
  "Kabylian": "kab-DZ",
  "Kannada": "kn-IN",
  "Kazakh": "kk-KZ",
  "Khmer": "km-KM",
  "Kinyarwanda": "rw-RW",
  "Kirundi": "rn-BI",
  "Korean": "ko-KR",
  "Kurdish": "ku-TR",
  "Kurdish Sorani": "ckb-IQ",
  "Kyrgyz": "ky-KG",
  "Lao": "lo-LA",
  "Latin": "la-VA",
  "Latvian": "lv-LV",
  "Lithuanian": "lt-LT",
  "Luxembourgish": "lb-LU",
  "Macedonian": "mk-MK",
  "Malagasy": "mg-MG",
  "Malay": "ms-MY",
  "Maldivian": "dv-MV",
  "Maltese": "mt-MT",
  "Manx Gaelic": "gv-IM",
  "Maori": "mi-NZ",
  "Marshallese": "mh-MH",
  "Mende": "men-SL",
  "Mongolian": "mn-MN",
  "Morisyen": "mfe-MU",
  "Nepali": "ne-NP",
  "Niuean": "niu-NU",
  "Norwegian": "no-NO",
  "Nyanja": "ny-MW",
  "Pakistani": "ur-PK",
  "Palauan": "pau-PW",
  "Panjabi": "pa-IN",
  "Papiamentu": "pap-CW",
  "Pashto": "ps-PK",
  "Persian": "fa-IR",
  "Pijin": "pis-SB",
  "Polish": "pl-PL",
  "Portuguese": "pt-PT",
  "Potawatomi": "pot-US",
  "Quechua": "qu-PE",
  "Romanian": "ro-RO",
  "Russian": "ru-RU",
  "Samoan": "sm-WS",
  "Sango": "sg-CF",
  "Scots Gaelic": "gd-GB",
  "Serbian": "sr-RS",
  "Shona": "sn-ZW",
  "Sinhala": "si-LK",
  "Slovak": "sk-SK",
  "Slovenian": "sl-SI",
  "Somali": "so-SO",
  "Sotho, Southern": "st-ST",
  "Spanish": "es-ES",
  "Sranan Tongo": "srn-SR",
  "Swahili": "sw-SZ",
  "Swedish": "sv-SE",
  "Swiss German": "de-CH",
  "Syriac (Aramaic)": "syc-TR",
  "Tagalog": "tl-PH",
  "Tajik": "tg-TJ",
  "Tamashek (Tuareg)": "tmh-DZ",
  "Tamil": "ta-LK",
  "Telugu": "te-IN",
  "Tetum": "tet-TL",
  "Thai": "th-TH",
  "Tibetan": "bo-CN",
  "Tigrinya": "ti-TI",
  "Tok Pisin": "tpi-PG",
  "Tokelauan": "tkl-TK",
  "Tongan": "to-TO",
  "Tswana": "tn-BW",
  "Turkish": "tr-TR",
  "Turkmen": "tk-TM",
  "Tuvaluan": "tvl-TV",
  "Ukrainian": "uk-UA",
  "Uma": "ppk-ID",
  "Uzbek": "uz-UZ",
  "Vietnamese": "vi-VN",
  "Wallisian": "wls-WF",
  "Welsh": "cy-GB",
  "Wolof": "wo-SN",
  "Xhosa": "xh-ZA",
  "Yiddish": "yi-YD",
  "Zulu": "zu-ZA"
}

Current Issues #

  • The subjects endpoint seems to be missing from the API so there is no way to get the list of allowed subjects at the moment.
  • The v2/tmx/import endpoint doesn't appear to work. I have tested it with a HTML/JavaScript application and the result is always that the TMX file is missing. I have left the code in in-case anyone notices a mistake I I have made.
3
likes
160
points
45
downloads

Publisher

unverified uploader

Weekly Downloads

An API to get and manage translations from the MyMemory translate REST API

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

http

More

Packages that depend on mymemory_translate