/* * Carrot2 project. * * Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński. * All rights reserved. * * Refer to the full license file "carrot2.LICENSE" * in the root folder of the repository checkout or at: * http://www.carrot2.org/carrot2.LICENSE */ package org.carrot2.source.microsoft.v5; import java.util.Collections; import java.util.Map; import org.carrot2.core.LanguageCode; import org.carrot2.shaded.guava.common.collect.Maps; /** * Language and country/region information for {@link Bing5DocumentSource}. */ public enum MarketOption { ARABIC_ARABIA ("ar-XA", "Arabic – Arabia"), BULGARIAN_BULGARIA ("bg-BG", "Bulgarian – Bulgaria"), CHINESE_CHINA ("zh-CN", "Chinese – China"), CHINESE_HONG_KONG_SAR ("zh-HK", "Chinese – Hong Kong SAR"), CHINESE_TAIWAN ("zh-TW", "Chinese – Taiwan"), CROATIAN_CROATIA ("hr-HR", "Croatian – Croatia"), CZECH_CZECH_REPUBLIC ("cs-CZ", "Czech – Czech Republic"), DANISH_DENMARK ("da-DK", "Danish – Denmark"), DUTCH_BELGIUM ("nl-BE", "Dutch – Belgium"), DUTCH_NETHERLANDS ("nl-NL", "Dutch – Netherlands"), ENGLISH_AUSTRALIA ("en-AU", "English – Australia"), ENGLISH_ARABIA ("en-XA", "English – Arabia"), ENGLISH_CANADA ("en-CA", "English – Canada"), ENGLISH_INDIA ("en-IN", "English – India"), ENGLISH_INDONESIA ("en-ID", "English – Indonesia"), ENGLISH_IRELAND ("en-IE", "English – Ireland"), ENGLISH_MALAYSIA ("en-MY", "English – Malaysia"), ENGLISH_NEW_ZEALAND ("en-NZ", "English – New Zealand"), ENGLISH_PHILIPPINES ("en-PH", "English – Philippines"), ENGLISH_SINGAPORE ("en-SG", "English – Singapore"), ENGLISH_SOUTH_AFRICA ("en-ZA", "English – South Africa"), ENGLISH_UNITED_KINGDOM ("en-GB", "English – United Kingdom"), ENGLISH_UNITED_STATES ("en-US", "English – United States"), ESTONIAN_ESTONIA ("et-EE", "Estonian – Estonia"), FINNISH_FINLAND ("fi-FI", "Finnish – Finland"), FRENCH_BELGIUM ("fr-BE", "French – Belgium"), FRENCH_FRANCE ("fr-FR", "French – France"), FRENCH_CANADA ("fr-CA", "French – Canada"), FRENCH_SWITZERLAND ("fr-CH", "French – Switzerland"), GERMAN_AUSTRIA ("de-AT", "German – Austria"), GERMAN_GERMANY ("de-DE", "German – Germany"), GERMAN_SWITZERLAND ("de-CH", "German – Switzerland"), GREEK_GREECE ("el-GR", "Greek – Greece"), HEBREW_ISRAEL ("he-IL", "Hebrew – Israel"), HUNGARIAN_HUNGARY ("hu-HU", "Hungarian – Hungary"), ITALIAN_ITALY ("it-IT", "Italian – Italy"), JAPANESE_JAPAN ("ja-JP", "Japanese – Japan"), KOREAN_KOREA ("ko-KR", "Korean – Korea"), LATVIAN_LATVIA ("lv-LV", "Latvian – Latvia"), LITHUANIAN_LITHUANIA ("lt-LT", "Lithuanian – Lithuania"), NORWEGIAN_NORWAY ("nb-NO", "Norwegian – Norway"), POLISH_POLAND ("pl-PL", "Polish – Poland"), PORTUGUESE_BRAZIL ("pt-BR", "Portuguese – Brazil"), PORTUGUESE_PORTUGAL ("pt-PT", "Portuguese – Portugal"), ROMANIAN_ROMANIA ("ro-RO", "Romanian – Romania"), RUSSIAN_RUSSIA ("ru-RU", "Russian – Russia"), SLOVAK_SLOVAK_REPUBLIC ("sk-SK", "Slovak – Slovak Republic"), SLOVENIAN_SLOVENIA ("sl-SL", "Slovenian – Slovenia"), SPANISH_ARGENTINA ("es-AR", "Spanish – Argentina"), SPANISH_CHILE ("es-CL", "Spanish – Chile"), SPANISH_LATIN_AMERICA ("es-XL", "Spanish – Latin America"), SPANISH_MEXICO ("es-MX", "Spanish – Mexico"), SPANISH_SPAIN ("es-ES", "Spanish – Spain"), SPANISH_UNITED_STATES ("es-US", "Spanish – United States"), SWEDISH_SWEDEN ("sv-SE", "Swedish – Sweden"), THAI_THAILAND ("th-TH", "Thai – Thailand"), TURKISH_TURKEY ("tr-TR", "Turkish – Turkey"), UKRAINIAN_UKRAINE ("uk-UA", "Ukrainian – Ukraine"); /** * Maps <b>some</b> of the values of this enum to {@link LanguageCode}s. */ public static final Map<MarketOption, LanguageCode> TO_LANGUAGE_CODE; static { final Map<MarketOption, LanguageCode> map = Maps.newEnumMap(MarketOption.class); map.put(ARABIC_ARABIA, LanguageCode.ARABIC); map.put(CHINESE_CHINA, LanguageCode.CHINESE_SIMPLIFIED); // TODO: Hong Kong uses traditional Chinese I believe. map.put(CHINESE_HONG_KONG_SAR, LanguageCode.CHINESE_SIMPLIFIED); map.put(CHINESE_TAIWAN, LanguageCode.CHINESE_SIMPLIFIED); map.put(CROATIAN_CROATIA, LanguageCode.CROATIAN); map.put(DANISH_DENMARK, LanguageCode.DANISH); map.put(DUTCH_BELGIUM, LanguageCode.DUTCH); map.put(DUTCH_NETHERLANDS, LanguageCode.DUTCH); map.put(ENGLISH_AUSTRALIA, LanguageCode.ENGLISH); map.put(ENGLISH_ARABIA, LanguageCode.ENGLISH); map.put(ENGLISH_CANADA, LanguageCode.ENGLISH); map.put(ENGLISH_INDIA, LanguageCode.ENGLISH); map.put(ENGLISH_INDONESIA, LanguageCode.ENGLISH); map.put(ENGLISH_IRELAND, LanguageCode.ENGLISH); map.put(ENGLISH_MALAYSIA, LanguageCode.ENGLISH); map.put(ENGLISH_NEW_ZEALAND, LanguageCode.ENGLISH); map.put(ENGLISH_PHILIPPINES, LanguageCode.ENGLISH); map.put(ENGLISH_SOUTH_AFRICA, LanguageCode.ENGLISH); map.put(ENGLISH_UNITED_KINGDOM, LanguageCode.ENGLISH); map.put(ENGLISH_UNITED_STATES, LanguageCode.ENGLISH); map.put(FINNISH_FINLAND, LanguageCode.FINNISH); map.put(FRENCH_BELGIUM, LanguageCode.FRENCH); map.put(FRENCH_FRANCE, LanguageCode.FRENCH); map.put(FRENCH_CANADA, LanguageCode.FRENCH); map.put(FRENCH_SWITZERLAND, LanguageCode.FRENCH); map.put(GERMAN_AUSTRIA, LanguageCode.GERMAN); map.put(GERMAN_GERMANY, LanguageCode.GERMAN); map.put(GERMAN_SWITZERLAND, LanguageCode.GERMAN); map.put(HUNGARIAN_HUNGARY, LanguageCode.HUNGARIAN); map.put(ITALIAN_ITALY, LanguageCode.ITALIAN); map.put(KOREAN_KOREA, LanguageCode.KOREAN); map.put(NORWEGIAN_NORWAY, LanguageCode.NORWEGIAN); map.put(POLISH_POLAND, LanguageCode.POLISH); map.put(PORTUGUESE_BRAZIL, LanguageCode.PORTUGUESE); map.put(PORTUGUESE_PORTUGAL, LanguageCode.PORTUGUESE); map.put(ROMANIAN_ROMANIA, LanguageCode.ROMANIAN); map.put(RUSSIAN_RUSSIA, LanguageCode.RUSSIAN); map.put(SPANISH_ARGENTINA, LanguageCode.SPANISH); map.put(SPANISH_CHILE, LanguageCode.SPANISH); map.put(SPANISH_LATIN_AMERICA, LanguageCode.SPANISH); map.put(SPANISH_MEXICO, LanguageCode.SPANISH); map.put(SPANISH_SPAIN, LanguageCode.SPANISH); map.put(SPANISH_UNITED_STATES, LanguageCode.SPANISH); map.put(SWEDISH_SWEDEN, LanguageCode.SWEDISH); map.put(TURKISH_TURKEY, LanguageCode.TURKISH); map.put(THAI_THAILAND, LanguageCode.THAI); TO_LANGUAGE_CODE = Collections.unmodifiableMap(map); } /** * Culture info code for Live API. */ public final String marketCode; /** * Culture info description. */ public final String description; private MarketOption(String cultureInfo, String description) { this.marketCode = cultureInfo; this.description = description; } /** * Return human-readable description. */ @Override public String toString() { return description; } /** * Returns a corresponding {@link LanguageCode} or <code>null</code> if no * {@link LanguageCode} corresponds to this {@link MarketOption} constant. */ public LanguageCode toLanguageCode() { return TO_LANGUAGE_CODE.get(this); } }