예제 #1
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// writes the contents of the LDS file.
		/// </summary>
		/// <param name="ldsFileName">name of the Paratext LDS to be saved.</param>
		/// <param name="normalStyle">The normal style.</param>
		/// <param name="ws">The HVO of the writing system for the current export.</param>
		/// <param name="fileWriterLds">file writer for the Paratext LDS file</param>
		/// ------------------------------------------------------------------------------------
		private void WriteLdsFileContents(string ldsFileName, UsfmStyEntry normalStyle, int ws,
			FileWriter fileWriterLds)
		{
			Debug.Assert(fileWriterLds != null);
			fileWriterLds.Open(ldsFileName);

			ComputeSettings(normalStyle, ws);

			fileWriterLds.WriteLine("[General]");
			fileWriterLds.WriteLine("codepage=65001");
			fileWriterLds.WriteLine("RTL=" + m_RtoL);
			fileWriterLds.WriteLine("font=" + m_fontName);
			fileWriterLds.WriteLine("name=" + m_wsName);
			fileWriterLds.WriteLine("size=" + m_fontSize);
			fileWriterLds.WriteLine(string.Empty, true);
			fileWriterLds.WriteLine("[Checking]");
			fileWriterLds.WriteLine(string.Empty, true);
			fileWriterLds.WriteLine("[Characters]");
			fileWriterLds.WriteLine(string.Empty, true);
			fileWriterLds.WriteLine("[Punctuation]");
		}
예제 #2
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Updates the lds file which describes the writing system in Paratext.
		/// </summary>
		/// <param name="ldsFileName">Name of the LDS file.</param>
		/// <param name="normalStyle">The normal style.</param>
		/// <param name="ws">The HVO of the writing system for the current export.</param>
		/// <param name="fileWriterLDS">file writer for updating the Paratext LDS file</param>
		/// ------------------------------------------------------------------------------------
		public bool UpdateLdsFile(string ldsFileName, UsfmStyEntry normalStyle, int ws,
			FileWriter fileWriterLDS)
		{
			try
			{
				string ldsContents;
				using (StreamReader sr = new StreamReader(ldsFileName))
				{
					ldsContents = sr.ReadToEnd();
				}

				// Make backup of language file, if it doesn't exist.
				if (!File.Exists(ldsFileName + ".bak"))
					File.Copy(ldsFileName, ldsFileName + ".bak");
				// REVIEW: Best way to handle if the file cannot be copied?

				fileWriterLDS.Open(ldsFileName);
				UpdateLdsContents(ldsContents, normalStyle, ws, fileWriterLDS);
			}
			catch
			{
				return false;
			}
			return true;
		}
예제 #3
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Open the file. This is virtual so it can be replaced in testing with an
		/// in-memory file writer.
		/// </summary>
		/// <param name="fileName"></param>
		/// <returns></returns>
		/// ------------------------------------------------------------------------------------
		protected virtual FileWriter OpenFile(string fileName)
		{
			FileWriter writer = new FileWriter();
			writer.Open(fileName);
			return writer;
		}