示例#1
0
        public static ResourceRow Parse(string csvLine, char separator)
        {
            var cells = csvLine.Split(separator);
            var key = cells[0];
            var noLang = cells[1];
            var assemblyName = cells[cells.Length - 2];
            var resourceFileName = cells[cells.Length - 1];
            var row = new ResourceRow(assemblyName, resourceFileName, key,  noLang);

            row.AddTranslation("fr", cells[2]);
            row.AddTranslation("it", cells[3]);

            return row;
        }
示例#2
0
        private void exportRowsToTranslateToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var folderBrowser = new FolderBrowserDialog();
            if (Directory.Exists(_exportPath))
            {
                folderBrowser.SelectedPath = _exportPath;
            }
            var result = folderBrowser.ShowDialog();
            if (result == DialogResult.OK)
            {
                try
                {
                    // create sortable list
                    var rows = new SortedList<string, string>();
                    foreach (var resource in this.Resources.Values)
                    {
                        // export
                        foreach (DataRow dr in resource.StringsTable.Rows)
                        {
                            var row = new ResourceRow(resource.DisplayFolder, resource.Filename, dr["Key"].ToString(), dr["NoLanguageValue"].ToString());
                            foreach (var culture in resource.Languages)
                            {
                                row.AddTranslation(culture.Key, dr[culture.Key].ToString());
                            }
                            if (row.HasOpenTranslations())
                            {
                                var key = CreateTranslationKey(dr, resource);
                                rows.Add(key, row.ToString());
                            }
                        }
                    }

                    var exportFilePath = Path.Combine(folderBrowser.SelectedPath, "translationExport.csv");
                    if (File.Exists(exportFilePath))
                    {
                        File.Delete(exportFilePath);
                    }
                    using (var textStream = new FileStream(exportFilePath, FileMode.CreateNew, FileAccess.Write))
                    {
                        using (var tw = new StreamWriter(textStream, Encoding.UTF8))
                        {
                            // headers
                            tw.WriteLine(ResourceRow.GetHeaderNames());
                            // write values
                            foreach (var key in rows.Keys)
                            {
                                tw.WriteLine(rows[key]);
                            }
                            tw.Close();
                        }

                    }
                    _exportPath = folderBrowser.SelectedPath;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(String.Format("Error: {0}", ex.GetBaseException().Message));
                }
            }
        }