Extract getting translation texts to CardTranslation

This commit is contained in:
Peter
2019-07-31 11:59:54 +02:00
parent 4dc08e04c7
commit 00899ff4ce
4 changed files with 24 additions and 29 deletions

View File

@@ -520,25 +520,25 @@ public class CardView extends GameEntityView {
public String getText() {
return getText(getCurrentState(), null);
}
public String getText(CardStateView state, String[] translationsText) {
public String getText(CardStateView state, HashMap<String, String> translationsText) {
final StringBuilder sb = new StringBuilder();
//final boolean isSplitCard = (state.getState() == CardStateName.LeftSplit);
String tname = "", toracle = "", taltname = "", taltoracle = "";
if (translationsText == null) {
tname = state.getName();
toracle = state.getOracleText();
if (translationsText != null) {
tname = translationsText.get("name");
toracle = translationsText.get("oracle");
taltname = translationsText.get("altname");
taltoracle = translationsText.get("altoracle");
}
tname = tname.isEmpty() ? state.getName() : tname;
toracle = toracle.isEmpty() ? state.getOracleText() : toracle;
if (isSplitCard()) {
taltname = getAlternateState().getName();
taltoracle = getAlternateState().getOracleText();
}
} else {
if (!translationsText[0].isEmpty()) tname = translationsText[0];
if (!translationsText[1].isEmpty()) toracle = translationsText[1];
if (!translationsText[2].isEmpty()) taltname = translationsText[2];
if (!translationsText[3].isEmpty()) taltoracle = translationsText[3];
}
if (getId() < 0) {
if (isSplitCard()) {

View File

@@ -260,13 +260,7 @@ public class CardImageRenderer {
g.drawImage(image, x + (w - iconSize) / 2, y + (h - iconSize) / 2, iconSize, iconSize);
}
else {
String[] translationTexts = {
card.getName(),
CardTranslation.getTranslatedOracle(card.getName()),
card.isSplitCard() ? card.getAlternateState().getName() : "",
card.isSplitCard() ? CardTranslation.getTranslatedOracle(card.getAlternateState().getName()) : "",
};
final String text = card.getText(state, translationTexts);
final String text = card.getText(state, CardTranslation.getTranslationTexts(state.getName(), ""));
if (StringUtils.isEmpty(text)) { return; }
float padding = TEXT_FONT.getCapHeight() * 0.75f;

View File

@@ -279,15 +279,7 @@ public class CardDetailUtil {
area.append("\n");
}
String[] translationTexts = {
card.getName(),
CardTranslation.getTranslatedOracle(card.getName()),
card.isSplitCard() ? card.getAlternateState().getName() : "",
card.isSplitCard() ? CardTranslation.getTranslatedOracle(card.getAlternateState().getName()) : "",
};
String text = card.getText(state, translationTexts);
String text = card.getText(state, CardTranslation.getTranslationTexts(state.getName(), ""));
// LEVEL [0-9]+-[0-9]+
// LEVEL [0-9]+\+

View File

@@ -65,6 +65,15 @@ public class CardTranslation {
return "";
}
public static HashMap<String, String> getTranslationTexts(String cardname, String altcardname) {
HashMap<String, String> translations = new HashMap<String, String>();
translations.put("name", getTranslatedName(cardname));
translations.put("oracle", getTranslatedOracle(cardname));
translations.put("altname", getTranslatedName(altcardname));
translations.put("altoracle", getTranslatedOracle(altcardname));
return translations;
}
private static boolean needsTranslation() {
return !languageSelected.equals("en-US");
}