public TranslationModuleDiff SyncWith(TranslationModule tp)
        {
            var diff = Diff(tp);

            Patch(diff);

            return(diff);
        }
        public TranslationModuleDiff Diff(TranslationModule tp)
        {
            var allSync = new Dictionary <string, DictDiff>();

            foreach (var l in Languages)
            {
                if (!Dicts.ContainsKey(l) || !tp.Dicts.ContainsKey(l))
                {
                    continue;
                }
                allSync.Add(l, DictDiff.Diff(Dicts[l], tp.Dicts[l]));
            }

            return(new TranslationModuleDiff(this, allSync));
        }