mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Update Lang.java so it can support other languages.
Also translated phase/step names
This commit is contained in:
@@ -6,6 +6,8 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import forge.util.lang.*;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
@@ -13,12 +15,39 @@ import com.google.common.collect.Lists;
|
||||
/**
|
||||
* Static library containing language-related utility methods.
|
||||
*/
|
||||
public final class Lang {
|
||||
public abstract class Lang {
|
||||
|
||||
/**
|
||||
* Private constructor to prevent instantiation.
|
||||
*/
|
||||
private Lang() {
|
||||
private static Lang instance;
|
||||
|
||||
protected String languageCode;
|
||||
protected String countryCode;
|
||||
|
||||
public static void createInstance(String localeID) {
|
||||
String[] splitLocale = localeID.split("-");
|
||||
String language = splitLocale[0];
|
||||
String country = splitLocale[1];
|
||||
if (language.equals("de")) {
|
||||
instance = new LangGerman();
|
||||
} else if (language.equals("es")) {
|
||||
instance = new LangSpanish();
|
||||
} else if (language.equals("it")) {
|
||||
instance = new LangItalian();
|
||||
} else if (language.equals("zh")) {
|
||||
instance = new LangChinese();
|
||||
} else if (language.equals("ja")) {
|
||||
instance = new LangJapanese();
|
||||
} else { // default is English
|
||||
instance = new LangEnglish();
|
||||
}
|
||||
instance.languageCode = language;
|
||||
instance.countryCode = country;
|
||||
}
|
||||
|
||||
public static Lang getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
protected Lang() {
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,17 +58,7 @@ public final class Lang {
|
||||
* the number to get the ordinal suffix for.
|
||||
* @return a string containing two characters.
|
||||
*/
|
||||
public static String getOrdinal(final int position) {
|
||||
final String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
|
||||
switch (position % 100) {
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
return position + "th";
|
||||
default:
|
||||
return position + sufixes[position % 10];
|
||||
}
|
||||
}
|
||||
public abstract String getOrdinal(final int position);
|
||||
|
||||
public static String joinHomogenous(final String s1, final String s2) {
|
||||
final boolean has1 = StringUtils.isNotBlank(s1);
|
||||
@@ -121,16 +140,8 @@ public final class Lang {
|
||||
}
|
||||
}
|
||||
|
||||
public static String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
public static String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
public abstract String getPossesive(final String name);
|
||||
public abstract String getPossessedObject(final String owner, final String object);
|
||||
|
||||
public static boolean startsWithVowel(final String word) {
|
||||
return isVowel(word.trim().charAt(0));
|
||||
|
||||
22
forge-core/src/main/java/forge/util/lang/LangChinese.java
Normal file
22
forge-core/src/main/java/forge/util/lang/LangChinese.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangChinese extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return "第" + position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
return name + "的";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + object;
|
||||
}
|
||||
|
||||
}
|
||||
33
forge-core/src/main/java/forge/util/lang/LangEnglish.java
Normal file
33
forge-core/src/main/java/forge/util/lang/LangEnglish.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangEnglish extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
final String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
|
||||
switch (position % 100) {
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
return position + "th";
|
||||
default:
|
||||
return position + sufixes[position % 10];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
29
forge-core/src/main/java/forge/util/lang/LangGerman.java
Normal file
29
forge-core/src/main/java/forge/util/lang/LangGerman.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangGerman extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
if (position < 20) {
|
||||
return position + "te";
|
||||
}
|
||||
return position + "ste";
|
||||
}
|
||||
|
||||
// TODO: Please update this when you modified lblYou in de-DE.properties
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
26
forge-core/src/main/java/forge/util/lang/LangItalian.java
Normal file
26
forge-core/src/main/java/forge/util/lang/LangItalian.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangItalian extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return position + "º";
|
||||
}
|
||||
|
||||
// TODO: Please update this when you modified lblYou in it-IT.properties
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
22
forge-core/src/main/java/forge/util/lang/LangJapanese.java
Normal file
22
forge-core/src/main/java/forge/util/lang/LangJapanese.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangJapanese extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return position + "番";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
return name + "の";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + object;
|
||||
}
|
||||
|
||||
}
|
||||
26
forge-core/src/main/java/forge/util/lang/LangSpanish.java
Normal file
26
forge-core/src/main/java/forge/util/lang/LangSpanish.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangSpanish extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return position + "º";
|
||||
}
|
||||
|
||||
// TODO: Please update this when you modified lblYou in es-ES.properties
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user