blob: b87848b6ecb8326e7c78c70ec8884b7e274ccd60 [file] [log] [blame]
package org.unicode.cldr.icu;
import org.unicode.cldr.util.CLDRPaths;
import org.unicode.cldr.util.Iso639Data;
import org.unicode.cldr.util.SupplementalDataInfo;
public class GenerateISO639LanguageTables {
private static SupplementalDataInfo sdi = SupplementalDataInfo
.getInstance(CLDRPaths.DEFAULT_SUPPLEMENTAL_DIRECTORY);
private static void generateLanguageTable(int size) {
String tag = "LANGUAGES";
System.out.println("/* Generated using org.unicode.cldr.icu.GenerateISO639LanguageTables */");
if (size == 3) {
tag = "LANGUAGES_3";
}
System.out.println("static const char * const " + tag + "[] = {");
System.out.print(" ");
String currentStartingLetter = "a";
int languagesOnThisLine = 0;
for (String language : sdi.getCLDRLanguageCodes()) {
if (!language.startsWith(currentStartingLetter) || languagesOnThisLine > 7) {
System.out.println();
System.out.print(" ");
currentStartingLetter = language.substring(0, 1);
languagesOnThisLine = 0;
}
if (size == 2) {
System.out.print("\"" + language + "\", ");
} else {
System.out.print("\""
+ (Iso639Data.toAlpha3(language) != null ? Iso639Data.toAlpha3(language) : language) + "\", ");
}
if (language.length() == 2 && size == 2) {
System.out.print(" ");
}
languagesOnThisLine++;
}
}
private static void generateStructLocaleTxt() {
System.out.println(" Languages{");
for (String language : sdi.getCLDRLanguageCodes()) {
System.out.println(" " + language + "{\"\"}");
}
System.out.println(" }");
}
public static void main(String[] args) {
generateLanguageTable(2);
System.out.println();
generateLanguageTable(3);
System.out.println();
generateStructLocaleTxt();
}
}