Commit a1a6732b authored by fallenstardust's avatar fallenstardust

设置可切换西班牙语

传参按languageenum.code进行
parent 91bca30b
package cn.garymb.ygomobile;
import static cn.garymb.ygomobile.Constants.ASSETS_EN;
import static cn.garymb.ygomobile.Constants.ASSETS_ES;
import static cn.garymb.ygomobile.Constants.ASSETS_KOR;
import static cn.garymb.ygomobile.Constants.BOT_CONF;
import static cn.garymb.ygomobile.Constants.CORE_BOT_CONF_PATH;
......@@ -743,7 +744,8 @@ public class AppsSettings {
//todo 逐步将设置语言的代码都更改为languageEnum
Chinese(0, "zh"),
Korean(1, "ko"),
English(2, "en");
English(2, "en"),
Spanish(3, "es");
public Integer code;
public String name;
......@@ -779,11 +781,8 @@ public class AppsSettings {
IOUtils.copyFilesFromAssets(context, korStringConf, getResourcePath(), true);
IOUtils.copyFilesFromAssets(context, korBotConf, getResourcePath(), true);
//替换换行符
String stringConfPath = new File(getResourcePath(), CORE_STRING_PATH).getAbsolutePath();
String botConfPath = new File(getResourcePath(), BOT_CONF).getAbsolutePath();
fixString(stringConfPath);
fixString(botConfPath);
//设置语言为1=???
replaceLineFeed();
//设置语言为1=Korean
setDataLanguage(languageEnum.Korean.code);
}
......@@ -798,13 +797,34 @@ public class AppsSettings {
//复制游戏配置文件
IOUtils.copyFilesFromAssets(context, enStringConf, getResourcePath(), true);
IOUtils.copyFilesFromAssets(context, enBotConf, getResourcePath(), true);
replaceLineFeed();
//设置语言为2=English
setDataLanguage(languageEnum.English.code);
}
public void copyEsData() throws IOException {
String esStringConf = ASSETS_ES + getDatapath("conf") + "/" + CORE_STRING_PATH;
String esBotConf = ASSETS_ES + getDatapath("conf") + "/" + CORE_BOT_CONF_PATH;
String esCdb = ASSETS_ES + getDatapath(DATABASE_NAME);
//复制数据库
copyCdbFile(esCdb);
//复制人机资源
IOUtils.copyFilesFromAssets(context, getDatapath(Constants.WINDBOT_PATH), getResourcePath(), true);
//复制游戏配置文件
IOUtils.copyFilesFromAssets(context, esStringConf, getResourcePath(), true);
IOUtils.copyFilesFromAssets(context, esBotConf, getResourcePath(), true);
//替换换行符
replaceLineFeed();
//设置语言为3=Spanish
setDataLanguage(languageEnum.Spanish.code);
}
private void replaceLineFeed(){
//替换换行符
String stringConfPath = new File(getResourcePath(), CORE_STRING_PATH).getAbsolutePath();
String botConfPath = new File(getResourcePath(), BOT_CONF).getAbsolutePath();
fixString(stringConfPath);
fixString(botConfPath);
//设置语言为2=English
setDataLanguage(languageEnum.English.code);
}
public void fixString(String stringPath) {
......
......@@ -58,6 +58,7 @@ public interface Constants {
String SETTINGS_CARD_BG = "settings_game_diy_card_bg";
String ASSETS_EN = "en/";
String ASSETS_KOR = "kor/";
String ASSETS_ES = "es/";
String ASSETS_PATH = "data/";
String ASSET_SERVER_LIST = "serverlist.xml";
String ASSET_LIMIT_PNG = ASSETS_PATH + "textures/lim.png";
......
......@@ -164,11 +164,13 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
/* 将先行服务器信息添加到服务器列表中 */
String servername = "";
if (AppsSettings.get().getDataLanguage() == 0)
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.Chinese.code)
servername = "23333先行服务器";
if (AppsSettings.get().getDataLanguage() == 1)
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.Korean.code)
servername = "YGOPRO ?? ?? ????";
if (AppsSettings.get().getDataLanguage() == 2)
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.English.code)
servername = "Mercury23333 OCG/TCG Pre-release";
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.Spanish.code)
servername = "Mercury23333 OCG/TCG Pre-release";
AddServer(getActivity(), servername, "s1.ygo233.com", 23333, "Knight of Hanoi");
//changeDownloadButton();在下载完成后,通过EventBus通知下载完成(加入用户点击下载后临时切出本fragment,又在下载完成后切回,通过eventbus能保证按钮样式正确更新
......
......@@ -100,11 +100,13 @@ public class WebActivity extends BaseActivity implements View.OnClickListener {
Toast.makeText(getContext(), R.string.ypk_installed, Toast.LENGTH_LONG).show();
}
String servername = "";
if (AppsSettings.get().getDataLanguage() == 0)
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.Chinese.code)
servername = "23333先行服务器";
if (AppsSettings.get().getDataLanguage() == 1)
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.Korean.code)
servername = "YGOPRO 사전 게시 중국서버";
if (AppsSettings.get().getDataLanguage() == 2)
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.English.code)
servername = "Mercury23333 OCG/TCG Pre-release";
if (AppsSettings.get().getDataLanguage() == AppsSettings.languageEnum.Spanish.code)
servername = "Mercury23333 OCG/TCG Pre-release";
AddServer(getActivity(), servername, "s1.ygo233.com", 23333, "Knight of Hanoi");
btn_download.setVisibility(View.GONE);
......
package cn.garymb.ygomobile.ui.home;
import static cn.garymb.ygomobile.Constants.ASSETS_EN;
import static cn.garymb.ygomobile.Constants.ASSETS_ES;
import static cn.garymb.ygomobile.Constants.ASSETS_KOR;
import static cn.garymb.ygomobile.Constants.ASSETS_PATH;
import static cn.garymb.ygomobile.Constants.BOT_CONF;
......@@ -48,10 +49,12 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
public static final int ERROR_COPY = -2;
public static final int ERROR_CORE_CONFIG_LOST = -3;
private static final String TAG = "ResCheckTask";
protected int mError = ERROR_NONE;
MessageReceiver mReceiver = new MessageReceiver();
private final AppsSettings mSettings;
private final Context mContext;
private final ResCheckListener mListener;
private final Handler handler;
protected int mError = ERROR_NONE;
MessageReceiver mReceiver = new MessageReceiver();
Handler han = new Handler() {
@Override
......@@ -64,9 +67,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
}
}
};
private final ResCheckListener mListener;
private DialogPlus dialog = null;
private final Handler handler;
private boolean isNewVersion;
@SuppressWarnings("deprecation")
......@@ -294,14 +295,16 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
copyCnData(true);
} else if (language.equals(languageEnum.Korean.name)) {
copyKorData(true);
} else if (language.equals(languageEnum.Spanish.name)) {
copyEsData(true);
} else {
copyEnData(true);
}
} else {
if (mSettings.getDataLanguage() == languageEnum.Chinese.code)
copyCnData(true);
if (mSettings.getDataLanguage() == languageEnum.Chinese.code) copyCnData(true);
if (mSettings.getDataLanguage() == languageEnum.Korean.code) copyKorData(true);
if (mSettings.getDataLanguage() == languageEnum.English.code) copyEnData(true);
if (mSettings.getDataLanguage() == languageEnum.Spanish.code) copyEsData(true);
}
}
han.sendEmptyMessage(0);
......@@ -324,7 +327,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
copyCoreConfig(getDatapath("conf") + "/" + CORE_STRING_PATH,
getDatapath("conf") + "/" + BOT_CONF,
mSettings.getResourcePath(), needsUpdate);
mSettings.setDataLanguage(0);
mSettings.setDataLanguage(languageEnum.Chinese.code);
return ERROR_NONE;
}
......@@ -340,7 +343,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
IOUtils.copyFilesFromAssets(mContext, enSingle, mSettings.getSingleDir(), needsUpdate);
//复制游戏配置文件
copyCoreConfig(enStringConf, enBotConf, mSettings.getResourcePath(), needsUpdate);
mSettings.setDataLanguage(2);
mSettings.setDataLanguage(languageEnum.English.code);
return ERROR_NONE;
}
......@@ -356,7 +359,23 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
IOUtils.copyFilesFromAssets(mContext, korSingle, mSettings.getSingleDir(), needsUpdate);
//复制游戏配置文件
copyCoreConfig(korStringConf, korBotConf, mSettings.getResourcePath(), needsUpdate);
mSettings.setDataLanguage(1);
mSettings.setDataLanguage(languageEnum.Korean.code);
return ERROR_NONE;
}
public int copyEsData(Boolean needsUpdate) throws IOException {
String esStringConf = ASSETS_ES + getDatapath("conf") + "/" + CORE_STRING_PATH;
String esBotConf = ASSETS_ES + getDatapath("conf") + "/" + CORE_BOT_CONF_PATH;
String esCdb = ASSETS_ES + getDatapath(DATABASE_NAME);
String enSingle = ASSETS_EN + getDatapath(CORE_SINGLE_PATH);
//复制数据库
copyCdbFile(esCdb, true);
//复制残局
setMessage(mContext.getString(R.string.check_things, mContext.getString(R.string.single_lua)));
IOUtils.copyFilesFromAssets(mContext, enSingle, mSettings.getSingleDir(), needsUpdate);
//复制游戏配置文件
copyCoreConfig(esStringConf, esBotConf, mSettings.getResourcePath(), needsUpdate);
mSettings.setDataLanguage(languageEnum.Spanish.code);
return ERROR_NONE;
}
......
......@@ -235,6 +235,13 @@ public class SettingFragment extends PreferenceFragmentPlus {
e.printStackTrace();
}
}
if (listPreference.getValue().equals("3")) {
try {
mSettings.copyEsData();
} catch (IOException e) {
e.printStackTrace();
}
}
mSettings.setDataLanguage(Integer.valueOf(listPreference.getValue()));
Toast.makeText(getContext(), R.string.restart_app, Toast.LENGTH_LONG).show();
DataManager.get().load(true);
......@@ -626,13 +633,16 @@ public class SettingFragment extends PreferenceFragmentPlus {
mSettings.copyCnData();
} else if (language.equals("ko")) {
mSettings.copyKorData();
}else if (language.equals("es")) {
mSettings.copyEsData();
} else {
mSettings.copyEnData();
}
} else {
if (mSettings.getDataLanguage() == 0) mSettings.copyCnData();
if (mSettings.getDataLanguage() == 1) mSettings.copyKorData();
if (mSettings.getDataLanguage() == 2) mSettings.copyEnData();
if (mSettings.getDataLanguage() == AppsSettings.languageEnum.Chinese.code) mSettings.copyCnData();
if (mSettings.getDataLanguage() == AppsSettings.languageEnum.Korean.code) mSettings.copyKorData();
if (mSettings.getDataLanguage() == AppsSettings.languageEnum.English.code) mSettings.copyEnData();
if (mSettings.getDataLanguage() == AppsSettings.languageEnum.Spanish.code) mSettings.copyEsData();
}
}
/*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment