Skip to content

Commit 97cf732

Browse files
committed
Add google.com host setting
1 parent 316e69e commit 97cf732

File tree

6 files changed

+57
-6
lines changed

6 files changed

+57
-6
lines changed

src/main/java/com/airsaid/localization/config/SettingsComponent.form

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
<grid id="27dc6" binding="contentJPanel" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
44
<margin top="0" left="0" bottom="0" right="0"/>
55
<constraints>
6-
<xy x="20" y="20" width="539" height="400"/>
6+
<xy x="20" y="20" width="558" height="400"/>
77
</constraints>
88
<properties/>
99
<border type="none"/>
1010
<children>
11-
<grid id="c2e63" layout-manager="GridLayoutManager" row-count="4" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
11+
<grid id="c2e63" layout-manager="GridLayoutManager" row-count="4" column-count="5" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
1212
<margin top="0" left="0" bottom="0" right="0"/>
1313
<constraints>
1414
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
@@ -77,7 +77,7 @@
7777
</component>
7878
<hspacer id="b8e2f">
7979
<constraints>
80-
<grid row="0" column="3" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
80+
<grid row="0" column="4" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
8181
</constraints>
8282
</hspacer>
8383
<component id="4ef73" class="com.airsaid.localization.ui.FixedLinkLabel" binding="applyLink">
@@ -88,6 +88,14 @@
8888
<text value="Apply..."/>
8989
</properties>
9090
</component>
91+
<component id="2c115" class="javax.swing.JCheckBox" binding="useGoogleComCheckBox" default-binding="true">
92+
<constraints>
93+
<grid row="0" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
94+
</constraints>
95+
<properties>
96+
<text value="Use google.com"/>
97+
</properties>
98+
</component>
9199
</children>
92100
</grid>
93101
<grid id="b866e" layout-manager="GridLayoutManager" row-count="2" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">

src/main/java/com/airsaid/localization/config/SettingsComponent.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.airsaid.localization.config;
22

33
import com.airsaid.localization.translate.AbstractTranslator;
4+
import com.airsaid.localization.translate.impl.google.GoogleTranslator;
45
import com.airsaid.localization.translate.services.TranslatorService;
56
import com.airsaid.localization.ui.FixedLinkLabel;
67
import com.airsaid.localization.ui.SupportLanguagesDialog;
@@ -40,6 +41,7 @@ public class SettingsComponent {
4041
private JLabel maxCacheSizeLabel;
4142
private JBCheckBox enableCacheCheckBox;
4243
private ComboBox<String> maxCacheSizeComboBox;
44+
private JCheckBox useGoogleComCheckBox;
4345

4446
public SettingsComponent() {
4547
initTranslatorComponents();
@@ -108,6 +110,8 @@ public void setSelectedTranslator(@NotNull AbstractTranslator selected) {
108110
LOG.info("setSelectedTranslator: " + selected);
109111
translatorsComboBox.setSelectedItem(selected);
110112

113+
useGoogleComCheckBox.setVisible(selected.getClass() == GoogleTranslator.class);
114+
111115
boolean isNeedAppId = selected.isNeedAppId();
112116
appIdLabel.setVisible(isNeedAppId);
113117
appIdField.setVisible(isNeedAppId);
@@ -137,6 +141,14 @@ private boolean isSelectedDefaultTranslator(@NotNull AbstractTranslator selected
137141
return selected == TranslatorService.getInstance().getDefaultTranslator();
138142
}
139143

144+
public boolean isUseGoogleCom() {
145+
return useGoogleComCheckBox.isSelected();
146+
}
147+
148+
public void setUseGoogleCom(boolean useGoogleCom) {
149+
useGoogleComCheckBox.setSelected(useGoogleCom);
150+
}
151+
140152
@NotNull
141153
public String getAppId() {
142154
String appId = appIdField.getText();

src/main/java/com/airsaid/localization/config/SettingsConfigurable.java

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

33
import com.airsaid.localization.constant.Constants;
44
import com.airsaid.localization.translate.AbstractTranslator;
5+
import com.airsaid.localization.translate.impl.google.GoogleTranslator;
56
import com.airsaid.localization.translate.services.TranslatorService;
67
import com.intellij.openapi.diagnostic.Logger;
78
import com.intellij.openapi.options.Configurable;
@@ -40,6 +41,7 @@ private void initComponents() {
4041
SettingsState settingsState = SettingsState.getInstance();
4142
Map<String, AbstractTranslator> translators = TranslatorService.getInstance().getTranslators();
4243
settingsComponent.setTranslators(translators);
44+
settingsComponent.setUseGoogleCom(settingsState.isUseGoogleCom());
4345
settingsComponent.setSelectedTranslator(translators.get(settingsState.getSelectedTranslator().getKey()));
4446
settingsComponent.setEnableCache(settingsState.isEnableCache());
4547
settingsComponent.setMaxCacheSize(settingsState.getMaxCacheSize());
@@ -50,6 +52,7 @@ public boolean isModified() {
5052
SettingsState settingsState = SettingsState.getInstance();
5153
AbstractTranslator selectedTranslator = settingsComponent.getSelectedTranslator();
5254
boolean isChanged = settingsState.getSelectedTranslator() == selectedTranslator;
55+
isChanged |= settingsState.isUseGoogleCom() == settingsComponent.isUseGoogleCom();
5356
isChanged |= settingsState.getAppId(selectedTranslator.getKey()).equals(selectedTranslator.getAppId());
5457
isChanged |= settingsState.getAppKey(selectedTranslator.getKey()).equals(selectedTranslator.getAppKey());
5558
isChanged |= settingsState.isEnableCache() == settingsComponent.isEnableCache();
@@ -64,15 +67,21 @@ public void apply() {
6467
AbstractTranslator selectedTranslator = settingsComponent.getSelectedTranslator();
6568
LOG.info("apply selectedTranslator: " + selectedTranslator.getName());
6669
settingsState.setSelectedTranslator(selectedTranslator);
67-
if (!settingsComponent.isSelectedDefaultTranslator()) {
70+
if (selectedTranslator.getClass() == GoogleTranslator.class) {
71+
settingsState.setUseGoogleCom(settingsComponent.isUseGoogleCom());
72+
}
73+
if (selectedTranslator.isNeedAppId()) {
6874
settingsState.setAppId(selectedTranslator.getKey(), settingsComponent.getAppId());
75+
}
76+
if (selectedTranslator.isNeedAppKey()) {
6977
settingsState.setAppKey(selectedTranslator.getKey(), settingsComponent.getAppKey());
7078
}
7179
settingsState.setEnableCache(settingsComponent.isEnableCache());
7280
settingsState.setMaxCacheSize(settingsComponent.getMaxCacheSize());
7381

7482
TranslatorService translatorService = TranslatorService.getInstance();
7583
translatorService.setSelectedTranslator(selectedTranslator);
84+
translatorService.setUseGoogleComHost(settingsComponent.isUseGoogleCom());
7685
translatorService.setEnableCache(settingsComponent.isEnableCache());
7786
translatorService.setMaxCacheSize(settingsComponent.getMaxCacheSize());
7887
}
@@ -83,6 +92,7 @@ public void reset() {
8392
SettingsState settingsState = SettingsState.getInstance();
8493
AbstractTranslator selectedTranslator = settingsState.getSelectedTranslator();
8594
settingsComponent.setSelectedTranslator(selectedTranslator);
95+
settingsComponent.setUseGoogleCom(settingsState.isUseGoogleCom());
8696
settingsComponent.setAppId(settingsState.getAppId(selectedTranslator.getKey()));
8797
settingsComponent.setAppKey(settingsState.getAppKey(selectedTranslator.getKey()));
8898
settingsComponent.setEnableCache(settingsState.isEnableCache());

src/main/java/com/airsaid/localization/config/SettingsState.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public static SettingsState getInstance() {
4646

4747
public void initSetting() {
4848
TranslatorService translatorService = TranslatorService.getInstance();
49+
translatorService.setUseGoogleComHost(isUseGoogleCom());
4950
AbstractTranslator selectedTranslator = translatorService.getSelectedTranslator();
5051
if (selectedTranslator == null) {
5152
LOG.info("initSetting");
@@ -64,6 +65,14 @@ public void setSelectedTranslator(AbstractTranslator translator) {
6465
this.state.selectedTranslatorKey = translator.getKey();
6566
}
6667

68+
public boolean isUseGoogleCom() {
69+
return state.isUseGoogleCom;
70+
}
71+
72+
public void setUseGoogleCom(boolean useGoogleCom) {
73+
state.isUseGoogleCom = useGoogleCom;
74+
}
75+
6776
public void setAppId(@NotNull String translatorKey, @NotNull String appId) {
6877
state.appIds.put(translatorKey, appId);
6978
}
@@ -118,5 +127,6 @@ static class State {
118127
public Map<String, String> appIds = new HashMap<>();
119128
public boolean isEnableCache = true;
120129
public int maxCacheSize = 100;
130+
public boolean isUseGoogleCom;
121131
}
122132
}

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,18 @@
2222
public class GoogleTranslator extends AbstractTranslator {
2323
private static final String KEY = "Google";
2424

25-
public static final String HOST_URL = "https://translate.google.cn";
26-
public static final String BASE_URL = HOST_URL.concat("/translate_a/single");
25+
private static final String HOST_URL_CN = "https://translate.google.cn";
26+
private static final String HOST_URL_COM = "https://translate.google.com";
27+
public static String HOST_URL = HOST_URL_CN;
28+
private static String BASE_URL = HOST_URL.concat("/translate_a/single");
2729

2830
private List<Lang> supportedLanguages;
2931

32+
public static void setUseComHost(boolean useComHost) {
33+
HOST_URL = useComHost ? HOST_URL_COM : HOST_URL_CN;
34+
BASE_URL = HOST_URL.concat("/translate_a/single");
35+
}
36+
3037
@Override
3138
public @NotNull String getKey() {
3239
return KEY;

src/main/java/com/airsaid/localization/translate/services/TranslatorService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ public String doTranslate(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull
100100
return result;
101101
}
102102

103+
public void setUseGoogleComHost(boolean isUseGoogleComHost) {
104+
GoogleTranslator.setUseComHost(isUseGoogleComHost);
105+
}
106+
103107
public void setEnableCache(boolean isEnableCache) {
104108
this.isEnableCache = isEnableCache;
105109
}

0 commit comments

Comments
 (0)