mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Changed oracle translation using the original getText function (before we lost the getText additional hints when translating).
Needs more translation fixes. Splitted cards (e.g. Grizzled Outcasts) don't update the translated oracle text.
This commit is contained in:
@@ -518,27 +518,45 @@ public class CardView extends GameEntityView {
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return getText(getCurrentState());
|
||||
return getText(getCurrentState(), null);
|
||||
}
|
||||
public String getText(CardStateView state) {
|
||||
public String getText(CardStateView state, 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 (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()) {
|
||||
sb.append("(").append(state.getName()).append(") ");
|
||||
sb.append(state.getOracleText());
|
||||
sb.append("(").append(tname).append(") ");
|
||||
sb.append(toracle);
|
||||
sb.append("\r\n\r\n");
|
||||
sb.append("(").append(getAlternateState().getName()).append(") ");
|
||||
sb.append(getAlternateState().getOracleText());
|
||||
sb.append("(").append(taltname).append(") ");
|
||||
sb.append(taltoracle);
|
||||
return sb.toString().trim();
|
||||
} else {
|
||||
return state.getOracleText();
|
||||
return toracle;
|
||||
}
|
||||
}
|
||||
|
||||
final String rulesText = state.getRulesText();
|
||||
if (!rulesText.isEmpty()) {
|
||||
if (!toracle.isEmpty()) {
|
||||
sb.append(toracle).append("\r\n\r\n");
|
||||
} else if (!rulesText.isEmpty()) {
|
||||
sb.append(rulesText).append("\r\n\r\n");
|
||||
}
|
||||
if (isCommander()) {
|
||||
@@ -547,6 +565,7 @@ public class CardView extends GameEntityView {
|
||||
}
|
||||
|
||||
if (isSplitCard() && !isFaceDown()) {
|
||||
// TODO: Translation?
|
||||
CardStateView view = state.getState() == CardStateName.LeftSplit ? state : getAlternateState();
|
||||
if (getZone() != ZoneType.Stack) {
|
||||
sb.append("(");
|
||||
@@ -555,12 +574,12 @@ public class CardView extends GameEntityView {
|
||||
}
|
||||
sb.append(view.getAbilityText());
|
||||
} else {
|
||||
sb.append(state.getAbilityText());
|
||||
if (toracle.isEmpty()) sb.append(state.getAbilityText());
|
||||
}
|
||||
|
||||
if (isSplitCard() && !isFaceDown() && getZone() != ZoneType.Stack) {
|
||||
//ensure ability text for right half of split card is included unless spell is on stack
|
||||
sb.append("\r\n\r\n").append("(").append(getAlternateState().getName()).append(") ").append(getAlternateState().getOracleText());
|
||||
sb.append("\r\n\r\n").append("(").append(taltname).append(") ").append(taltoracle);
|
||||
}
|
||||
|
||||
String nonAbilityText = get(TrackableProperty.NonAbilityText);
|
||||
|
||||
@@ -278,7 +278,17 @@ public class CardDetailUtil {
|
||||
if (area.length() != 0) {
|
||||
area.append("\n");
|
||||
}
|
||||
String text = CardTranslation.getTranslatedOracle(card.getName(), card.getText(state));
|
||||
|
||||
|
||||
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);
|
||||
|
||||
// LEVEL [0-9]+-[0-9]+
|
||||
// LEVEL [0-9]+\+
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ public class CardTranslation {
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.error("Error reading translated file. Language: " + language);
|
||||
Log.error("Error reading translation file: cardnames-" + language + ".txt");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,13 +56,13 @@ public class CardTranslation {
|
||||
return originaltype;
|
||||
}
|
||||
|
||||
public static String getTranslatedOracle(String name, String originaloracle) {
|
||||
public static String getTranslatedOracle(String name) {
|
||||
if (needsTranslation()) {
|
||||
String toracle = translatedoracles.get(name);
|
||||
return toracle == null ? originaloracle : toracle;
|
||||
return toracle == null ? "" : toracle;
|
||||
}
|
||||
|
||||
return originaloracle;
|
||||
return "";
|
||||
}
|
||||
|
||||
private static boolean needsTranslation() {
|
||||
|
||||
Reference in New Issue
Block a user