/*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); }
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); }