示例#1
0
文件: Localize.cs 项目: PavelPZ/REW
 /*public static bool dumpResx(TextWriter wr, List<string> keys, List<string> values)
 {
   if (keys.Count <= 0) return false;
   for (int i = 0; i < keys.Count; i++)
     wr.AddResource(keys[i], values[i]);
   return true;
 }*/
 /// <summary>
 /// Vytvoreni ResX z LMData.
 /// </summary>
 public static bool LMData2ResX(lm_scorm root, processStringsEvent onProcessString) {
   List<string> keys = new List<string>();
   List<string> values = new List<string>();
   TranslateInfo buf = new TranslateInfo();
   foreach (TranslateInfo info in toTranslate(root, buf))
     switch (info.Typ) {
       case LocalizeType.string2string:
         string valStr = (string)info.Value;
         if (string.IsNullOrEmpty(valStr) || !valStr.StartsWith(localizeStringPrefix)) continue;
         keys.Add(ResxFilesManager.resxId(info.Obj.varName, info.Field.Name.Substring(localizePrefix.Length)));
         //string.Format("Ui{0}_{1}", info.Obj.UniqueId, info.Field.Name.Substring(localizePrefix.Length)));
         values.Add(valStr.Substring(localizeStringPrefix.Length));
         break;
       case LocalizeType.items2string:
       case LocalizeType.items2items:
         object[] objs = (object[])info.Value;
         foreach (LMScormObj item in objs)
           if (item is trans) {
             string txt;
             if (!tryTransText((trans)item, out txt)) continue;
             keys.Add(ResxFilesManager.resxId(item.varName, null));
             values.Add(txt);
           }
         break;
     }
   return onProcessString(keys, values);
   //return createResx(fileName, keys, values);
 }
示例#2
0
文件: Localize.cs 项目: PavelPZ/REW
 public static bool LMap2ResX(Markers markers, processStringsEvent onProcessString) {
   string txt = null; Dictionary<string, object> props = new Dictionary<string, object>();
   List<string> keys = new List<string>();
   List<string> values = new List<string>();
   for (int i = 0; i < markers.Count; i++) {
     Marker mark = markers[i];
     props.Clear();
     Marker.decodeText(mark.RawTitle, ref txt, ref props);
     if (props.Count == 0) continue;
     foreach (KeyValuePair<string, object> kv in props) {
       if (kv.Key[0] != 't') continue;
       keys.Add(string.Format("{0}_{1}", kv.Key, i));
       values.Add((string)kv.Value);
     }
   }
   return onProcessString(keys, values);
   //return createResx(fileName, keys, values);
 }