コード例 #1
0
ファイル: TranslateTask.cs プロジェクト: zpzgone/Jumony
 private static void SaveDictionary(string path, TranslateDictionary dictionary)
 {
     using (var stream = File.Create(path))
     {
         var serializer = new BinaryFormatter();
         serializer.Serialize(stream, dictionary);
     }
 }
コード例 #2
0
ファイル: TranslateTask.cs プロジェクト: zpzgone/Jumony
        public void Initialize()
        {
            var uri = _document.DocumentUri;

            if (!uri.IsFile)
            {
                throw new InvalidOperationException();
            }


            _documentPath = uri.LocalPath;

            {
                var path = _documentPath + ".dictionary";
                Dictionary = LoadDictionary(path) ?? new TranslateDictionary();
            }


            {
                var path = _documentPath + ".translation";

                var terms = LoadTerms(path);

                if (!ValidateTerms(_document, terms))
                {
                    Dictionary = TranslateDictionary.Merge(Dictionary, CreateDictionary(terms));
                    terms      = ExtractTerms(_document);

                    foreach (var t in terms)
                    {
                        var condidateTerms = Dictionary[t.SourceTerm];

                        string translatedResult;
                        if (condidateTerms.IsSingle(out translatedResult))
                        {
                            t.TranslatedTerm = translatedResult;
                        }

                        else
                        {
                            t.TranslatedTerm = "";
                        }
                    }

                    SaveTerms(path, terms);
                }

                Terms = terms;
            }
        }
コード例 #3
0
ファイル: TranslateTask.cs プロジェクト: zpzgone/Jumony
        private static TranslateDictionary CreateDictionary(TranslationTerm[] terms)
        {
            if (terms == null)
            {
                return(null);
            }

            var dictionary = new TranslateDictionary();

            foreach (var t in terms)
            {
                dictionary.AddTerm(t);
            }

            return(dictionary);
        }
コード例 #4
0
ファイル: TranslateDictionary.cs プロジェクト: ajayumi/Jumony
    public static TranslateDictionary Merge( TranslateDictionary dictionary1, TranslateDictionary dictionary2 )
    {

      var dictionary = new TranslateDictionary();

      if ( dictionary1 != null )
      {
        foreach ( var term in dictionary1.SourceTerms )
          dictionary.AddTerm( term, dictionary1[term] );
      }

      if ( dictionary2 != null )
      {
        foreach ( var term in dictionary2.SourceTerms )
          dictionary.AddTerm( term, dictionary2[term] );
      }

      return dictionary;
    }
コード例 #5
0
ファイル: TranslateDictionary.cs プロジェクト: zpzgone/Jumony
        public static TranslateDictionary Merge(TranslateDictionary dictionary1, TranslateDictionary dictionary2)
        {
            var dictionary = new TranslateDictionary();

            if (dictionary1 != null)
            {
                foreach (var term in dictionary1.SourceTerms)
                {
                    dictionary.AddTerm(term, dictionary1[term]);
                }
            }

            if (dictionary2 != null)
            {
                foreach (var term in dictionary2.SourceTerms)
                {
                    dictionary.AddTerm(term, dictionary2[term]);
                }
            }

            return(dictionary);
        }
コード例 #6
0
ファイル: TranslateTask.cs プロジェクト: ajayumi/Jumony
    private static TranslateDictionary CreateDictionary( TranslationTerm[] terms )
    {

      if ( terms == null )
        return null;

      var dictionary = new TranslateDictionary();

      foreach ( var t in terms )
        dictionary.AddTerm( t );

      return dictionary;
    }
コード例 #7
0
ファイル: TranslateTask.cs プロジェクト: ajayumi/Jumony
 private static void SaveDictionary( string path, TranslateDictionary dictionary )
 {
   using ( var stream = File.Create( path ) )
   {
     var serializer = new BinaryFormatter();
     serializer.Serialize( stream, dictionary );
   }
 }