Skip to content

Commit f8f5750

Browse files
committed
Fix lang reference data is modified
1 parent 2e42cd5 commit f8f5750

File tree

6 files changed

+312
-154
lines changed

6 files changed

+312
-154
lines changed

src/main/java/com/airsaid/localization/services/AndroidStringsService.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.airsaid.localization.model.AndroidString;
44
import com.airsaid.localization.translate.lang.Lang;
5+
import com.airsaid.localization.translate.lang.Languages;
56
import com.intellij.openapi.application.ApplicationManager;
67
import com.intellij.openapi.components.Service;
78
import com.intellij.openapi.components.ServiceManager;
@@ -202,19 +203,18 @@ public File getStringsFile(@NotNull VirtualFile resourceDir, @NotNull Lang lang)
202203

203204
private String getValuesDirectoryName(@NotNull Lang lang) {
204205
String suffix;
205-
String langCode = lang.getCode();
206-
if (langCode.equals(Lang.CHINESE_SIMPLIFIED.getCode())) {
206+
if (lang == Languages.CHINESE_SIMPLIFIED) {
207207
suffix = "zh-rCN";
208-
} else if (langCode.equals(Lang.CHINESE_TRADITIONAL.getCode())) {
208+
} else if (lang == Languages.CHINESE_TRADITIONAL) {
209209
suffix = "zh-rTW";
210-
} else if (langCode.equals(Lang.FILIPINO.getCode())) {
210+
} else if (lang == Languages.FILIPINO) {
211211
suffix = "fil";
212-
} else if (langCode.equals(Lang.INDONESIAN.getCode())) {
212+
} else if (lang == Languages.INDONESIAN) {
213213
suffix = "in-rID";
214-
} else if (langCode.equals(Lang.JAVANESE.getCode())) {
214+
} else if (lang == Languages.JAVANESE) {
215215
suffix = "jv";
216216
} else {
217-
suffix = langCode;
217+
suffix = lang.getCode();
218218
}
219219
return "values-".concat(suffix);
220220
}

src/main/java/com/airsaid/localization/task/TranslateTask.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.airsaid.localization.model.AndroidString;
2121
import com.airsaid.localization.services.AndroidStringsService;
2222
import com.airsaid.localization.translate.lang.Lang;
23+
import com.airsaid.localization.translate.lang.Languages;
2324
import com.airsaid.localization.translate.services.TranslatorService;
2425
import com.airsaid.localization.utils.TextUtil;
2526
import com.intellij.ide.util.PropertiesComponent;
@@ -134,7 +135,7 @@ private List<AndroidString> doTranslate(@NotNull ProgressIndicator progressIndic
134135
if (content.isIgnore()) continue;
135136
if (TextUtil.isEmptyOrSpacesLineBreak(content.getText())) continue;
136137

137-
String translatedText = mTranslatorService.doTranslate(Lang.AUTO, toLanguage, content.getText());
138+
String translatedText = mTranslatorService.doTranslate(Languages.AUTO, toLanguage, content.getText());
138139
content.setText(translatedText);
139140
}
140141
translatedStrings.add(translatedString);

src/main/java/com/airsaid/localization/translate/impl/baidu/BaiduTranslator.java

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.airsaid.localization.translate.AbstractTranslator;
44
import com.airsaid.localization.translate.TranslationException;
55
import com.airsaid.localization.translate.lang.Lang;
6+
import com.airsaid.localization.translate.lang.Languages;
67
import com.airsaid.localization.translate.util.GsonUtil;
78
import com.airsaid.localization.translate.util.MD5;
89
import com.airsaid.localization.translate.util.UrlBuilder;
@@ -26,6 +27,8 @@ public class BaiduTranslator extends AbstractTranslator {
2627
private static final String TRANSLATE_URL = HOST_URL.concat("/api/trans/vip/translate");
2728
private static final String APPLY_APP_ID_URL = "http://api.fanyi.baidu.com/api/trans/product/desktop?req=developer";
2829

30+
private List<Lang> supportedLanguages;
31+
2932
@Override
3033
public @NotNull String getKey() {
3134
return KEY;
@@ -43,34 +46,36 @@ public class BaiduTranslator extends AbstractTranslator {
4346

4447
@Override
4548
public @NotNull List<Lang> getSupportedLanguages() {
46-
List<Lang> result = new ArrayList<>();
47-
result.add(Lang.CHINESE_SIMPLIFIED.setCode("zh"));
48-
result.add(Lang.ENGLISH);
49-
result.add(Lang.JAPANESE.setCode("jp"));
50-
result.add(Lang.KOREAN.setCode("kor"));
51-
result.add(Lang.FRENCH.setCode("fra"));
52-
result.add(Lang.SPANISH.setCode("spa"));
53-
result.add(Lang.THAI);
54-
result.add(Lang.ARABIC.setCode("ara"));
55-
result.add(Lang.RUSSIAN);
56-
result.add(Lang.PORTUGUESE);
57-
result.add(Lang.GERMAN);
58-
result.add(Lang.ITALIAN);
59-
result.add(Lang.GREEK);
60-
result.add(Lang.DUTCH);
61-
result.add(Lang.POLISH);
62-
result.add(Lang.BULGARIAN.setCode("bul"));
63-
result.add(Lang.ESTONIAN.setCode("est"));
64-
result.add(Lang.DANISH.setCode("dan"));
65-
result.add(Lang.FINNISH.setCode("fin"));
66-
result.add(Lang.CZECH);
67-
result.add(Lang.ROMANIAN.setCode("rom"));
68-
result.add(Lang.SLOVENIAN.setCode("slo"));
69-
result.add(Lang.SWEDISH.setCode("swe"));
70-
result.add(Lang.HUNGARIAN);
71-
result.add(Lang.CHINESE_TRADITIONAL.setCode("cht"));
72-
result.add(Lang.VIETNAMESE.setCode("vie"));
73-
return result;
49+
if (supportedLanguages == null) {
50+
supportedLanguages = new ArrayList<>();
51+
supportedLanguages.add(Languages.CHINESE_SIMPLIFIED.clone().setCode("zh"));
52+
supportedLanguages.add(Languages.ENGLISH);
53+
supportedLanguages.add(Languages.JAPANESE.clone().setCode("jp"));
54+
supportedLanguages.add(Languages.KOREAN.clone().setCode("kor"));
55+
supportedLanguages.add(Languages.FRENCH.clone().setCode("fra"));
56+
supportedLanguages.add(Languages.SPANISH.clone().setCode("spa"));
57+
supportedLanguages.add(Languages.THAI);
58+
supportedLanguages.add(Languages.ARABIC.clone().setCode("ara"));
59+
supportedLanguages.add(Languages.RUSSIAN);
60+
supportedLanguages.add(Languages.PORTUGUESE);
61+
supportedLanguages.add(Languages.GERMAN);
62+
supportedLanguages.add(Languages.ITALIAN);
63+
supportedLanguages.add(Languages.GREEK);
64+
supportedLanguages.add(Languages.DUTCH);
65+
supportedLanguages.add(Languages.POLISH);
66+
supportedLanguages.add(Languages.BULGARIAN.clone().setCode("bul"));
67+
supportedLanguages.add(Languages.ESTONIAN.clone().setCode("est"));
68+
supportedLanguages.add(Languages.DANISH.clone().setCode("dan"));
69+
supportedLanguages.add(Languages.FINNISH.clone().setCode("fin"));
70+
supportedLanguages.add(Languages.CZECH);
71+
supportedLanguages.add(Languages.ROMANIAN.clone().setCode("rom"));
72+
supportedLanguages.add(Languages.SLOVENIAN.clone().setCode("slo"));
73+
supportedLanguages.add(Languages.SWEDISH.clone().setCode("swe"));
74+
supportedLanguages.add(Languages.HUNGARIAN);
75+
supportedLanguages.add(Languages.CHINESE_TRADITIONAL.clone().setCode("cht"));
76+
supportedLanguages.add(Languages.VIETNAMESE.clone().setCode("vie"));
77+
}
78+
return supportedLanguages;
7479
}
7580

7681
@Override

src/main/java/com/airsaid/localization/translate/impl/google/GoogleTranslator.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.airsaid.localization.translate.AbstractTranslator;
44
import com.airsaid.localization.translate.lang.Lang;
5+
import com.airsaid.localization.translate.lang.Languages;
56
import com.airsaid.localization.translate.util.AgentUtil;
67
import com.airsaid.localization.translate.util.GsonUtil;
78
import com.airsaid.localization.translate.util.UrlBuilder;
@@ -24,6 +25,8 @@ public class GoogleTranslator extends AbstractTranslator {
2425
public static final String HOST_URL = "https://translate.google.cn";
2526
public static final String BASE_URL = HOST_URL.concat("/translate_a/single");
2627

28+
private List<Lang> supportedLanguages;
29+
2730
@Override
2831
public @NotNull String getKey() {
2932
return KEY;
@@ -42,14 +45,16 @@ public class GoogleTranslator extends AbstractTranslator {
4245
@Override
4346
@NotNull
4447
public List<Lang> getSupportedLanguages() {
45-
Lang[] values = Lang.values();
46-
List<Lang> result = new ArrayList<>(values.length - 1);
47-
for (Lang lang : values) {
48-
if (lang != Lang.AUTO) {
49-
result.add(lang);
48+
if (supportedLanguages == null) {
49+
List<Lang> languages = Languages.getLanguages();
50+
supportedLanguages = new ArrayList<>(languages.size() - 1);
51+
for (Lang lang : languages) {
52+
if (lang != Languages.AUTO) {
53+
supportedLanguages.add(lang);
54+
}
5055
}
5156
}
52-
return result;
57+
return supportedLanguages;
5358
}
5459

5560
@Override

src/main/java/com/airsaid/localization/translate/lang/Lang.java

Lines changed: 27 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,125 +1,17 @@
11
package com.airsaid.localization.translate.lang;
22

3+
import java.util.Objects;
4+
35
/**
4-
* All supported languages.
5-
*
66
* @author airsaid
77
*/
8-
// Some language codes and names cannot pass the compiler check
9-
@SuppressWarnings(value = {"SpellCheckingInspection", "unused"})
10-
public enum Lang {
11-
AUTO(0, "auto", "Auto", "Auto"),
12-
ALBANIAN(1, "sq", "Shqiptar", "Albanian"),
13-
ARABIC(2, "ar", "العربية", "Arabic"),
14-
AMHARIC(3, "am", "አማርኛ", "Amharic"),
15-
AZERBAIJANI(4, "az", "Azərbaycan", "Azerbaijani"),
16-
IRISH(5, "ga", "Irish", "Irish"),
17-
ESTONIAN(6, "et", "Eesti keel", "Estonian"),
18-
BASQUE(7, "eu", "Euskal", "Basque"),
19-
BELARUSIAN(8, "be", "беларускі", "Belarusian"),
20-
BULGARIAN(9, "bg", "Български", "Bulgarian"),
21-
ICELANDIC(10, "is", "Íslensku", "Icelandic"),
22-
POLISH(11, "pl", "Polski", "Polish"),
23-
BOSNIAN(12, "bs", "Bosanski", "Bosnian"),
24-
PERSIAN(13, "fa", "فارسی", "Persian"),
25-
AFRIKAANS(14, "af", "Afrikaans", "Afrikaans"),
26-
DANISH(15, "da", "Dansk", "Danish"),
27-
GERMAN(16, "de", "Deutsch", "German"),
28-
RUSSIAN(17, "ru", "Русский", "Russian"),
29-
FRENCH(18, "fr", "Français", "French"),
30-
FILIPINO(19, "tl", "Pilipino", "Filipino"),
31-
FINNISH(20, "fi", "Suomalainen", "Finnish"),
32-
FRISIAN(21, "fy", "Frysk", "Frisian"),
33-
KHMER(22, "km", "ភាសាខ្មែរ", "Khmer"),
34-
GEORGIAN(23, "ka", "ქართული", "Georgian"),
35-
GUJARATI(24, "gu", "ગુજરાતી", "Gujarati"),
36-
KAZAKH(25, "kk", "Қазақша", "Kazakh"),
37-
HAITIAN_CREOLE(26, "ht", "Kreyòl Ayisyen", "Haitian Creole"),
38-
KOREAN(27, "ko", "한국어", "Korean"),
39-
HAUSA(28, "ha", "Hausa", "Hausa"),
40-
DUTCH(29, "nl", "Nederlands", "Dutch"),
41-
KYRGYZ(30, "ky", "Кыргыз тили", "Kyrgyz"),
42-
GALICIAN(31, "gl", "Galego", "Galician"),
43-
CATALAN(32, "ca", "Català", "Catalan"),
44-
CZECH(33, "cs", "Česky", "Czech"),
45-
KANNADA(34, "kn", "ಕನ್ನಡ", "Kannada"),
46-
CORSICAN(35, "co", "Corsa", "Corsican"),
47-
CROATIAN(36, "hr", "hrvatski", "Croatian"),
48-
KURDISH(37, "ku", "Kurdî", "Kurdish"),
49-
LATIN(38, "la", "Latina", "Latin"),
50-
LATVIAN(39, "lv", "Latviešu", "Latvian"),
51-
LAOTIAN(40, "lo", "Laotian", "Laotian"),
52-
LITHUANIAN(41, "lt", "Lietuviškai", "Lithuanian"),
53-
LUXEMBOURGISH(42, "lb", "Lëtzebuergesch", "Luxembourgish"),
54-
ROMANIAN(43, "ro", "Românesc", "Romanian"),
55-
MALAGASY(44, "mg", "Malagasy", "Malagasy"),
56-
MALTESE(45, "mt", "Malti", "Maltese"),
57-
MARATHI(46, "mr", "मराठी", "Marathi"),
58-
MALAYALAM(47, "ml", "മലയാളം", "Malayalam"),
59-
MALAY(48, "ms", "Melayu", "Malay"),
60-
MACEDONIAN(49, "mk", "Македонски", "Macedonian"),
61-
MAORI(50, "mi", "Maori", "Maori"),
62-
MONGOLIAN(51, "mn", "Монгол хэл", "Mongolian"),
63-
BENGALI(52, "bn", "বাংলা ভাষার", "Bengali"),
64-
BURMESE(53, "my", "မြန်မာ", "Burmese"),
65-
HMONG(54, "hmn", "Hmoob", "Hmong"),
66-
XHOSA(55, "xh", "IsiXhosa", "Xhosa"),
67-
ZULU(56, "zu", "Zulu", "Zulu"),
68-
NEPALI(57, "ne", "नेपाली", "Nepali"),
69-
NORWEGIAN(58, "no", "Norsk språk", "Norwegian"),
70-
PUNJABI(59, "pa", "ਪੰਜਾਬੀ", "Punjabi"),
71-
PORTUGUESE(60, "pt", "Português", "Portuguese"),
72-
PASHTO(61, "ps", "پښتو", "Pashto"),
73-
CHICHEWA(62, "ny", "Chichewa", "Chichewa"),
74-
JAPANESE(63, "ja", "日本語", "Japanese"),
75-
SWEDISH(64, "sv", "Svenska", "Swedish"),
76-
SAMOAN(65, "sm", "Samoa", "Samoan"),
77-
SERBIAN(66, "sr", "Српски", "Serbian"),
78-
SOTHO(67, "st", "Sesotho", "Sotho"),
79-
SINHALA(68, "si", "සිංහල", "Sinhala"),
80-
ESPERANTO(69, "eo", "Esperanta", "Esperanto"),
81-
SLOVAK(70, "sk", "Slovenčina", "Slovak"),
82-
SLOVENIAN(71, "sl", "Slovenščina", "Slovenian"),
83-
SWAHILI_SWAHILI(72, "sw", "Kiswahili", "Swahili"),
84-
SCOTTISH_GAELIC(73, "gd", "Gàidhlig na h-Alba", "Scottish Gaelic"),
85-
CEBUANO(74, "ceb", "Cebuano", "Cebuano"),
86-
SOMALI(75, "so", "Somali", "Somali"),
87-
TAJIK(76, "tg", "Тоҷикӣ", "Tajik"),
88-
TELUGU(77, "te", "తెలుగు", "Telugu"),
89-
TAMIL(78, "ta", "தமிழ்", "Tamil"),
90-
THAI(79, "th", "ไทย", "Thai"),
91-
TURKISH(80, "tr", "Türk", "Turkish"),
92-
WELSH(81, "cy", "Cymraeg", "Welsh"),
93-
URDU(82, "ur", "اردو", "Urdu"),
94-
UKRAINIAN(83, "uk", "Український", "Ukrainian"),
95-
UZBEK(84, "uz", "O'zbek", "Uzbek"),
96-
SPANISH(85, "es", "Español", "Spanish"),
97-
HEBREW(86, "iw", "עברית", "Hebrew"),
98-
GREEK(87, "el", "Ελληνικά", "Greek"),
99-
HAWAIIAN(88, "haw", "Hawaiian", "Hawaiian"),
100-
SINDHI(89, "sd", "سنڌي", "Sindhi"),
101-
HUNGARIAN(90, "hu", "Magyar", "Hungarian"),
102-
SHONA(91, "sn", "Shona", "Shona"),
103-
ARMENIAN(92, "hy", "Հայերեն", "Armenian"),
104-
IGBO(93, "ig", "Igbo", "Igbo"),
105-
ITALIAN(94, "it", "Italiano", "Italian"),
106-
YIDDISH(95, "yi", "ייִדיש", "Yiddish"),
107-
HINDI(96, "hi", "हिंदी", "Hindi"),
108-
SUNDANESE(97, "su", "Sunda", "Sundanese"),
109-
INDONESIAN(98, "id", "Indonesia", "Indonesian"),
110-
JAVANESE(99, "jw", "Wong Jawa", "Javanese"),
111-
ENGLISH(100, "en", "English", "English"),
112-
YORUBA(101, "yo", "Yorùbá", "Yoruba"),
113-
VIETNAMESE(102, "vi", "Tiếng Việt", "Vietnamese"),
114-
CHINESE_TRADITIONAL(103, "zh-TW", "正體中文", "Chinese Traditional"),
115-
CHINESE_SIMPLIFIED(104, "zh-CN", "简体中文", "Chinese Simplified");
116-
8+
public class Lang implements Cloneable {
1179
private final int id;
11810
private String code;
11911
private String name;
12012
private String englishName;
12113

122-
Lang(int id, String code, String name, String englishName) {
14+
public Lang(int id, String code, String name, String englishName) {
12315
this.id = id;
12416
this.code = code;
12517
this.name = name;
@@ -157,6 +49,29 @@ public Lang setEnglishName(String englishName) {
15749
return this;
15850
}
15951

52+
@Override
53+
public boolean equals(Object o) {
54+
if (this == o) return true;
55+
if (o == null || getClass() != o.getClass()) return false;
56+
Lang language = (Lang) o;
57+
return id == language.id;
58+
}
59+
60+
@Override
61+
public int hashCode() {
62+
return Objects.hash(id);
63+
}
64+
65+
@Override
66+
public Lang clone() {
67+
try {
68+
return (Lang) super.clone();
69+
} catch (CloneNotSupportedException e) {
70+
e.printStackTrace();
71+
}
72+
return null;
73+
}
74+
16075
@Override
16176
public String toString() {
16277
return "Lang{" +

0 commit comments

Comments
 (0)