예제 #1
0
 private static void Add_itm_many(Ordered_hash translated, int... langs) {
   int langs_len = langs.length;
   for (int i = 0; i < langs_len; i++) {
     Xol_lang_stub itm = Xol_lang_stub_.Get_by_id(langs[i]);
     translated.Add_if_dupe_use_nth(itm.Key(), itm);
   }
 }
예제 #2
0
  public static Keyval[] new_() {
    Ordered_hash translated = Ordered_hash_.New_bry();
    List_adp untranslated = List_adp_.New();
    Add_itm_many(
        translated,
        Xol_lang_stub_.Id_en,
        Xol_lang_stub_.Id_de,
        Xol_lang_stub_.Id_pl,
        Xol_lang_stub_.Id_zh_hans,
        Xol_lang_stub_
            .Id_zh_hant); // add langs with translations first, so they alphabetize to top of list
    int len = Xol_lang_stub_.Id__max;
    for (int i = 0; i < len; i++) { // add rest of langs, but sort by code
      Xol_lang_stub itm = Xol_lang_stub_.Get_by_id(i);
      if (translated.Has(itm.Key())) continue;
      untranslated.Add(itm);
    }
    untranslated.Sort_by(Xol_lang_stub_.Comparer_key);

    Keyval[] rv = new Keyval[len];
    int translated_max = translated.Count();
    for (int i = 0; i < translated_max; i++) rv[i] = new_itm((Xol_lang_stub) translated.Get_at(i));

    for (int i = translated_max; i < len; i++)
      rv[i] = new_itm((Xol_lang_stub) untranslated.Get_at(i - translated_max));
    return rv;
  }
예제 #3
0
 private static Keyval new_itm(Xol_lang_stub itm) {
   String key_str = String_.new_u8(itm.Key());
   String name_str = String_.new_u8(itm.Canonical_name());
   return Keyval_.new_(key_str, name_str + " [" + key_str + "]");
 }