diff --git a/.gitignore b/.gitignore
index aececac..814a185 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,6 @@
-~*
\ No newline at end of file
+~*
+/TranslationsBuilder/obj
+/.vs
+/TranslationsBuilder/bin
+/TranslationsBuilder/TranslationsBuilder.csproj.user
+/.gitignore
diff --git a/README.md b/README.md
index 7a2f6e7..91c51bf 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,17 @@
+# This fork
+
+**Excel Export/Import**
+- Translation Builder always use comma as a separator which is not convenient for Canadien French computers (where semicolon is used because comma is a decimal separator).
+- This version use the ClosedXml open source libray to Export and Import Excel files. When exporting it creates a real table that is autosized by column content and can be sorted/filtered.
+
+**Display Folder support**
+- Fixed DisplayFolder bugs : import from CSV and directly in the UI grid.
+
+**UI changes**
+- Changed default shortcut keys to avoid Ctrl+C and Ctrl+S which are usually associated with Copy and Save.
+- A wait cursor is shown when importing translations from Excel
+- Always show descriptions for Tables, Columns, Measures and Hierarchies
+
# Translations Builder
Translations Builder is an external tool created for Power BI Desktop
@@ -17,4 +31,4 @@ Here are the primary links for learning how to build multi-language reports for
- [**Multi-language Report Live Demo**](https://multilanguagereportdemo.azurewebsites.net)
- [**Installation Guide**](Docs/Installation%20Guide.md)
- [**User Guide**](Docs/User%20Guide.md)
- - [**Developer Guide**](Docs/Developer%20Guide.md)
\ No newline at end of file
+ - [**Developer Guide**](Docs/Developer%20Guide.md)
diff --git a/SetupFiles/TranslationsBuilderInstaller.msi b/SetupFiles/TranslationsBuilderInstaller.msi
new file mode 100644
index 0000000..dbda0ba
Binary files /dev/null and b/SetupFiles/TranslationsBuilderInstaller.msi differ
diff --git a/SetupFiles/TranslationsBuilderSetup.msi b/SetupFiles/TranslationsBuilderSetup.msi
deleted file mode 100644
index 1907734..0000000
Binary files a/SetupFiles/TranslationsBuilderSetup.msi and /dev/null differ
diff --git a/SetupFiles/setup.exe b/SetupFiles/setup.exe
index ad4aea9..207c95b 100644
Binary files a/SetupFiles/setup.exe and b/SetupFiles/setup.exe differ
diff --git a/TranslationsBuilder/DeployExternalTool/translationsbuilder.pbitool.json b/TranslationsBuilder/DeployExternalTool/translationsbuilder.pbitool.json
index 0e8c0db..be5347b 100644
--- a/TranslationsBuilder/DeployExternalTool/translationsbuilder.pbitool.json
+++ b/TranslationsBuilder/DeployExternalTool/translationsbuilder.pbitool.json
@@ -2,7 +2,7 @@
"version": "1.0",
"name": "Translations Builder",
"description": "Launch Translations Builder to add translations to yout data model.",
- "path": "c:\\Program Files\\Translations Builder\\TranslationsBuilder.exe",
+ "path": "c:\\Program Files\\Power BI Translations Builder\\TranslationsBuilder.exe",
"arguments": "\"%server%\" \"%database%\"",
"iconData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAABSJJREFUaIHtmctzU1Ucxz/33qRN8+ojpEkTqrVAS1JApAwzAiICioLgiC50ZOPGP8EZV+6YYevKhQtlxkFxgXREhQXgDKDYDlWqQ2sL1cbSpk1bCKZ53+siJWloknvzaqczfFdJzjm/8/2e8z2/8wiscggAH39y6pTD3uRZ7s5j0TgTU9MnTn74wdlSY+gAHPYmz/G3Dm+vHDVtmPAH+Pz0uTXlxBArRWal8ETASkNXTuP+gUEAWt1O1jQ1VIRQsShLwA+XrgHw2r5dKyZg1Vto1QsoaKHA7H16LlxRDXKt9zf6/xjMWda5ro1dO7aWRE4LCgqIxxNMTs2oBgk+DBF8GMpZ5mwua59SRUEBxjoDWzd1FhXw3uQ0U4FZALZ4O2h1OUtnpwEFBdRbzRzav1tzMEVR+OzL1LFmrcvB6y+/UB47DdC8iH3jk/x195+CdYbvjjE9MwfAts3LczbUtA/cHBjkwuXr6CSJd948mNMWiWSSy9d6AWist+LpeKZgzERSpm8ogG/euufoR+eLJp6U5cD5k0fOahLgdtrR63TE4nG+PneRY4f20/60O6vO1Rv9zMw9AGDvru1IYv7JTSRlPv12gGDSSrt353HgeLECRkbu9AHaBDjsNt4+coAzPReJxeKc6bnI3p3d7HhuM6IoMPK3j5/7fgdgXVsrG9e3qZKPSDZsDZZieachLgyQ5jXQ1urivWOHqDMYkGWZS1d7+eJMDzdv3ebs95dQFDCbjBw+sBtBEFTJWyylk88SUkxld0sz7797lLUuB5C6kPx4+TrxeAKArs513H/wEFmWl7StBnko4SjRYLXwxqt7aahfSuLGzQFOffMdsqxk/V4t8qAxCymKQiQaxXfPz+DwKLeHR0kmU6PcYLXQbG/CNz5JOBJFkkQkKTMu1SSvKsA/PUvPhSvMhyOE5sNZZaIosm3zRl58vpva2hoURSE0HyYSiS4beVUBiiKnN6ZHMJuMeDva2f6sN8tGgiBgNhkxm4zA8pAHFQEmYx3dWzwYDLU01ltwNq/BbmvMm2UeQY380a1GNjiyu/7q1xDjc8nKCrCYTRx8aWdRAdXIG/QC7XbdkkHwuvQlCajohUaLbTqdenTS0hnscOiRSmBTMQFaPd/l1qc/D/vjKEoq5dbViLTbi7+iV0SAVvKNRpGWein9vXc0ij+YsY2npabovssWUEy28br1ae//F5GZuJ9k2J9Il7c366jVFU4Qj6MsAcWmyi5XZoRHpuIoZNtIJwp0OvV5WueGDhZeif2BohoC9A0FCCatmk6VrU0SFkNmdB+N/GxIZjYkYzOnrOV16bn1b0wzBx3AxNT0iVJeiX3z1j0L53lVdLlq0vaJxGV8sxnrDPvjaQHuRglrnUAwrOSM8zh0AKW+zy/cpFQF6CXYsMgawbDCpkXZaHFaFQQBb0sNv9yNogVlPS1qxXqHPmtxNlslXtlkzFvf49JrFrAsL3NdruIWZpNJxGGV1CuyDALMBoGnbMVNtCAIeDWKrrqFvC01iIvOPT8NhRmbyX3mOdZtxFSbGtONLXquDEVQVNZy9QUsWqwJWeGWL0Y0kbvunakEW1pTe4WpVqTNpmM0kKfyAqpqIYdVwmbKdOGbSeQlD6l0uhgeDTaq6gy4GiT8wcwF/8/xeIHaMDaTYHwugSSmLGcxiIgCyAVsVFUB/WMx+se076pJBU7fyP3KnQ+r/g+OJwJWGqteQFmLOCnLgZGRO31igZfoaiEUCuX+U2614X/iVOfIxR9TaAAAAABJRU5ErkJggg=="
}
diff --git a/TranslationsBuilder/Forms/FormEditDefaultTranslation.cs b/TranslationsBuilder/Forms/FormEditDefaultTranslation.cs
index 156fd11..bbd9660 100644
--- a/TranslationsBuilder/Forms/FormEditDefaultTranslation.cs
+++ b/TranslationsBuilder/Forms/FormEditDefaultTranslation.cs
@@ -35,7 +35,7 @@ public FormEditDefaultTranslation(string objectType, string propertyName, string
}
private void btnUpdate_Click(object sender, EventArgs e) {
- TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, txtTranslation.Text);
+ TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, txtTranslation.Text, saveModel:true);
this.DialogResult = DialogResult.OK;
this.Close();
}
@@ -48,7 +48,7 @@ private void btnCancel_Click(object sender, EventArgs e) {
private void btnRevertToDefault_Click(object sender, EventArgs e) {
txtTranslation.Text = DefaultTranslationFromObjectName;
- TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, DefaultTranslationFromObjectName);
+ TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, DefaultTranslationFromObjectName, saveModel:true);
}
}
diff --git a/TranslationsBuilder/Forms/FormEditTranslation.cs b/TranslationsBuilder/Forms/FormEditTranslation.cs
index 576b4f3..7a83d0c 100644
--- a/TranslationsBuilder/Forms/FormEditTranslation.cs
+++ b/TranslationsBuilder/Forms/FormEditTranslation.cs
@@ -35,7 +35,7 @@ public FormEditTranslation(string objectType, string propertyName, string object
}
private void btnUpdate_Click(object sender, EventArgs e) {
- TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, txtTranslation.Text);
+ TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, txtTranslation.Text, saveModel: true);
this.DialogResult = DialogResult.OK;
this.Close();
}
diff --git a/TranslationsBuilder/Forms/FormMain.Designer.cs b/TranslationsBuilder/Forms/FormMain.Designer.cs
index 43de8ca..9b93cb0 100644
--- a/TranslationsBuilder/Forms/FormMain.Designer.cs
+++ b/TranslationsBuilder/Forms/FormMain.Designer.cs
@@ -20,646 +20,675 @@ protected override void Dispose(bool disposing) {
base.Dispose(disposing);
}
- #region Windows Form Designer generated code
+ #region Windows Form Designer generated code
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent() {
- components = new System.ComponentModel.Container();
- DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
- gridTranslations = new DataGridView();
- dialogOpenFile = new OpenFileDialog();
- groupDatasetProperties = new GroupBox();
- lbldefaultLanguageNameLabel = new Label();
- txtdefaultLanguage = new TextBox();
- txtCompatibilityLevel = new TextBox();
- lblCompatibilityLevel = new Label();
- txtDatasetName = new TextBox();
- txtServerConnection = new TextBox();
- lblDatasetName = new Label();
- lblServerConnection = new Label();
- panel2 = new Panel();
- grpMachineTranslationsAllLanguages = new GroupBox();
- btnFillAllEmptyTranslations = new Button();
- btnGenenrateAllMachineTranslations = new Button();
- grpImportExportTranslations = new GroupBox();
- btnExportAllTranslationSheets = new Button();
- chkOpenExportInExcel = new CheckBox();
- listLanguageForTransation = new ComboBox();
- btnExportTranslations = new Button();
- btnImportTranslations = new Button();
- btnExportTranslationsSheet = new Button();
- grpMachineTranslationsSingleLanguage = new GroupBox();
- btnFillEmptyTranslations = new Button();
- btnGenenrateMachineTranslations = new Button();
- listCultureToPopulate = new ComboBox();
- grpSecondaryCultures = new GroupBox();
- btnAddSecondaryLanguage = new Button();
- listSecondaryLanguages = new ListBox();
- menuStrip = new MenuStrip();
- menuConnection = new ToolStripMenuItem();
- menuConnect = new ToolStripMenuItem();
- menuDisconnect = new ToolStripMenuItem();
- toolStripSeparator2 = new ToolStripSeparator();
- menuConfigureSettings = new ToolStripMenuItem();
- toolStripSeparator1 = new ToolStripSeparator();
- exportModelAsJson = new ToolStripMenuItem();
- menuTranslatedTables = new ToolStripMenuItem();
- menuCreateLocalizedLabelsTable = new ToolStripMenuItem();
- menuAddLabelsToLocalizedLabelsTable = new ToolStripMenuItem();
- menuGenerateTranslatedLocalizedLabelsTable = new ToolStripMenuItem();
- menuGenerateTranslatedDatasetObjectNamesTable = new ToolStripMenuItem();
- menuSyncDataModel = new ToolStripMenuItem();
- statusStrip1 = new StatusStrip();
- labelStatusBar = new ToolStripStatusLabel();
- toolStripStatusLabel1 = new ToolStripStatusLabel();
- toolStripStatusLabel2 = new ToolStripStatusLabel();
- tooltipDatasetName = new ToolTip(components);
- tooltipServiceConnection = new ToolTip(components);
- contextMenuSecondaryLanguageHeader = new ContextMenuStrip(components);
- toolStripSeparator5 = new ToolStripSeparator();
- menuCommandDuplicateSecondaryLanguage = new ToolStripMenuItem();
- menuCommandCopyToSecondaryLanguage = new ToolStripMenuItem();
- toolStripSeparator3 = new ToolStripSeparator();
- menuCommandExportLanguageToTranslationSheet = new ToolStripMenuItem();
- toolStripSeparator4 = new ToolStripSeparator();
- menuCommandDeleteSecondaryLanguage = new ToolStripMenuItem();
- toolStripSeparator6 = new ToolStripSeparator();
- ((System.ComponentModel.ISupportInitialize)gridTranslations).BeginInit();
- groupDatasetProperties.SuspendLayout();
- panel2.SuspendLayout();
- grpMachineTranslationsAllLanguages.SuspendLayout();
- grpImportExportTranslations.SuspendLayout();
- grpMachineTranslationsSingleLanguage.SuspendLayout();
- grpSecondaryCultures.SuspendLayout();
- menuStrip.SuspendLayout();
- statusStrip1.SuspendLayout();
- contextMenuSecondaryLanguageHeader.SuspendLayout();
- SuspendLayout();
- //
- // gridTranslations
- //
- gridTranslations.AllowUserToAddRows = false;
- gridTranslations.AllowUserToDeleteRows = false;
- gridTranslations.AllowUserToResizeColumns = false;
- gridTranslations.AllowUserToResizeRows = false;
- dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle1.BackColor = Color.Black;
- dataGridViewCellStyle1.Font = new Font("Arial Black", 7F, FontStyle.Bold, GraphicsUnit.Point);
- dataGridViewCellStyle1.ForeColor = SystemColors.WindowText;
- dataGridViewCellStyle1.SelectionBackColor = SystemColors.Highlight;
- dataGridViewCellStyle1.SelectionForeColor = SystemColors.HighlightText;
- dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True;
- gridTranslations.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
- gridTranslations.ColumnHeadersHeight = 29;
- gridTranslations.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
- gridTranslations.Dock = DockStyle.Fill;
- gridTranslations.EditMode = DataGridViewEditMode.EditProgrammatically;
- gridTranslations.EnableHeadersVisualStyles = false;
- gridTranslations.Location = new Point(0, 323);
- gridTranslations.MultiSelect = false;
- gridTranslations.Name = "gridTranslations";
- gridTranslations.RowHeadersWidth = 24;
- gridTranslations.RowTemplate.Height = 28;
- gridTranslations.Size = new Size(1519, 394);
- gridTranslations.TabIndex = 0;
- gridTranslations.TabStop = false;
- gridTranslations.CellBeginEdit += gridTranslations_CellBeginEdit;
- gridTranslations.CellDoubleClick += gridTranslations_CellDoubleClick;
- gridTranslations.CellEndEdit += gridTranslations_CellEndEdit;
- //
- // groupDatasetProperties
- //
- groupDatasetProperties.Controls.Add(lbldefaultLanguageNameLabel);
- groupDatasetProperties.Controls.Add(txtdefaultLanguage);
- groupDatasetProperties.Controls.Add(txtCompatibilityLevel);
- groupDatasetProperties.Controls.Add(lblCompatibilityLevel);
- groupDatasetProperties.Controls.Add(txtDatasetName);
- groupDatasetProperties.Controls.Add(txtServerConnection);
- groupDatasetProperties.Controls.Add(lblDatasetName);
- groupDatasetProperties.Controls.Add(lblServerConnection);
- groupDatasetProperties.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
- groupDatasetProperties.Location = new Point(9, 47);
- groupDatasetProperties.Name = "groupDatasetProperties";
- groupDatasetProperties.Size = new Size(472, 269);
- groupDatasetProperties.TabIndex = 0;
- groupDatasetProperties.TabStop = false;
- groupDatasetProperties.Text = "Dataset Properties";
- //
- // lbldefaultLanguageNameLabel
- //
- lbldefaultLanguageNameLabel.AutoSize = true;
- lbldefaultLanguageNameLabel.Location = new Point(6, 115);
- lbldefaultLanguageNameLabel.Name = "lbldefaultLanguageNameLabel";
- lbldefaultLanguageNameLabel.Size = new Size(130, 20);
- lbldefaultLanguageNameLabel.TabIndex = 33;
- lbldefaultLanguageNameLabel.Text = "Default Language:";
- //
- // txtdefaultLanguage
- //
- txtdefaultLanguage.Location = new Point(141, 112);
- txtdefaultLanguage.Name = "txtdefaultLanguage";
- txtdefaultLanguage.Size = new Size(307, 27);
- txtdefaultLanguage.TabIndex = 32;
- txtdefaultLanguage.TabStop = false;
- //
- // txtCompatibilityLevel
- //
- txtCompatibilityLevel.Location = new Point(141, 152);
- txtCompatibilityLevel.Name = "txtCompatibilityLevel";
- txtCompatibilityLevel.ReadOnly = true;
- txtCompatibilityLevel.Size = new Size(307, 27);
- txtCompatibilityLevel.TabIndex = 22;
- txtCompatibilityLevel.TabStop = false;
- //
- // lblCompatibilityLevel
- //
- lblCompatibilityLevel.AutoSize = true;
- lblCompatibilityLevel.Location = new Point(33, 153);
- lblCompatibilityLevel.Name = "lblCompatibilityLevel";
- lblCompatibilityLevel.Size = new Size(103, 20);
- lblCompatibilityLevel.TabIndex = 21;
- lblCompatibilityLevel.Text = "Compat Level:";
- lblCompatibilityLevel.TextAlign = ContentAlignment.MiddleRight;
- //
- // txtDatasetName
- //
- txtDatasetName.Location = new Point(141, 72);
- txtDatasetName.Name = "txtDatasetName";
- txtDatasetName.ReadOnly = true;
- txtDatasetName.Size = new Size(307, 27);
- txtDatasetName.TabIndex = 20;
- txtDatasetName.TabStop = false;
- //
- // txtServerConnection
- //
- txtServerConnection.Location = new Point(141, 32);
- txtServerConnection.Margin = new Padding(10, 3, 3, 3);
- txtServerConnection.Name = "txtServerConnection";
- txtServerConnection.ReadOnly = true;
- txtServerConnection.Size = new Size(307, 27);
- txtServerConnection.TabIndex = 0;
- txtServerConnection.TabStop = false;
- //
- // lblDatasetName
- //
- lblDatasetName.AutoSize = true;
- lblDatasetName.Location = new Point(29, 75);
- lblDatasetName.Name = "lblDatasetName";
- lblDatasetName.Size = new Size(107, 20);
- lblDatasetName.TabIndex = 18;
- lblDatasetName.Text = "Dataset Name:";
- lblDatasetName.TextAlign = ContentAlignment.MiddleRight;
- //
- // lblServerConnection
- //
- lblServerConnection.AutoSize = true;
- lblServerConnection.Location = new Point(49, 36);
- lblServerConnection.Name = "lblServerConnection";
- lblServerConnection.Size = new Size(87, 20);
- lblServerConnection.TabIndex = 17;
- lblServerConnection.Text = "Connection:";
- lblServerConnection.TextAlign = ContentAlignment.MiddleRight;
- //
- // panel2
- //
- panel2.BackColor = SystemColors.ActiveCaption;
- panel2.Controls.Add(grpMachineTranslationsAllLanguages);
- panel2.Controls.Add(grpImportExportTranslations);
- panel2.Controls.Add(grpMachineTranslationsSingleLanguage);
- panel2.Controls.Add(grpSecondaryCultures);
- panel2.Controls.Add(groupDatasetProperties);
- panel2.Controls.Add(menuStrip);
- panel2.Dock = DockStyle.Top;
- panel2.Location = new Point(0, 0);
- panel2.Name = "panel2";
- panel2.Size = new Size(1519, 323);
- panel2.TabIndex = 8;
- //
- // grpMachineTranslationsAllLanguages
- //
- grpMachineTranslationsAllLanguages.Controls.Add(btnFillAllEmptyTranslations);
- grpMachineTranslationsAllLanguages.Controls.Add(btnGenenrateAllMachineTranslations);
- grpMachineTranslationsAllLanguages.Location = new Point(981, 191);
- grpMachineTranslationsAllLanguages.Name = "grpMachineTranslationsAllLanguages";
- grpMachineTranslationsAllLanguages.Size = new Size(294, 125);
- grpMachineTranslationsAllLanguages.TabIndex = 10;
- grpMachineTranslationsAllLanguages.TabStop = false;
- grpMachineTranslationsAllLanguages.Text = "Machine Translations - All Languages";
- //
- // btnFillAllEmptyTranslations
- //
- btnFillAllEmptyTranslations.BackColor = SystemColors.ControlLight;
- btnFillAllEmptyTranslations.Location = new Point(11, 72);
- btnFillAllEmptyTranslations.Name = "btnFillAllEmptyTranslations";
- btnFillAllEmptyTranslations.Size = new Size(267, 37);
- btnFillAllEmptyTranslations.TabIndex = 15;
- btnFillAllEmptyTranslations.Text = "Fill All Empty Translations";
- btnFillAllEmptyTranslations.UseVisualStyleBackColor = false;
- btnFillAllEmptyTranslations.Click += FillAllEmptyTranslations;
- //
- // btnGenenrateAllMachineTranslations
- //
- btnGenenrateAllMachineTranslations.BackColor = SystemColors.ControlLight;
- btnGenenrateAllMachineTranslations.Location = new Point(10, 28);
- btnGenenrateAllMachineTranslations.Name = "btnGenenrateAllMachineTranslations";
- btnGenenrateAllMachineTranslations.Size = new Size(269, 36);
- btnGenenrateAllMachineTranslations.TabIndex = 14;
- btnGenenrateAllMachineTranslations.Text = "Generate All Translations";
- btnGenenrateAllMachineTranslations.UseVisualStyleBackColor = false;
- btnGenenrateAllMachineTranslations.Click += GenenrateAllMachineTranslations;
- //
- // grpImportExportTranslations
- //
- grpImportExportTranslations.Controls.Add(btnExportAllTranslationSheets);
- grpImportExportTranslations.Controls.Add(chkOpenExportInExcel);
- grpImportExportTranslations.Controls.Add(listLanguageForTransation);
- grpImportExportTranslations.Controls.Add(btnExportTranslations);
- grpImportExportTranslations.Controls.Add(btnImportTranslations);
- grpImportExportTranslations.Controls.Add(btnExportTranslationsSheet);
- grpImportExportTranslations.Location = new Point(730, 47);
- grpImportExportTranslations.Name = "grpImportExportTranslations";
- grpImportExportTranslations.Size = new Size(235, 269);
- grpImportExportTranslations.TabIndex = 4;
- grpImportExportTranslations.TabStop = false;
- grpImportExportTranslations.Text = "Export/Import Translations";
- //
- // btnExportAllTranslationSheets
- //
- btnExportAllTranslationSheets.BackColor = SystemColors.ControlLight;
- btnExportAllTranslationSheets.Location = new Point(13, 144);
- btnExportAllTranslationSheets.Name = "btnExportAllTranslationSheets";
- btnExportAllTranslationSheets.Size = new Size(209, 36);
- btnExportAllTranslationSheets.TabIndex = 10;
- btnExportAllTranslationSheets.Text = "Export All Translation Sheets";
- btnExportAllTranslationSheets.UseVisualStyleBackColor = false;
- btnExportAllTranslationSheets.Click += ExportAllTranslationSheets;
- //
- // chkOpenExportInExcel
- //
- chkOpenExportInExcel.AutoSize = true;
- chkOpenExportInExcel.Checked = true;
- chkOpenExportInExcel.CheckState = CheckState.Checked;
- chkOpenExportInExcel.Location = new Point(31, 187);
- chkOpenExportInExcel.Name = "chkOpenExportInExcel";
- chkOpenExportInExcel.Size = new Size(168, 24);
- chkOpenExportInExcel.TabIndex = 9;
- chkOpenExportInExcel.Text = "Open Export in Excel";
- chkOpenExportInExcel.UseVisualStyleBackColor = true;
- //
- // listLanguageForTransation
- //
- listLanguageForTransation.BackColor = SystemColors.Window;
- listLanguageForTransation.FormattingEnabled = true;
- listLanguageForTransation.Location = new Point(13, 68);
- listLanguageForTransation.Name = "listLanguageForTransation";
- listLanguageForTransation.Size = new Size(207, 28);
- listLanguageForTransation.TabIndex = 6;
- //
- // btnExportTranslations
- //
- btnExportTranslations.BackColor = SystemColors.ControlLight;
- btnExportTranslations.Location = new Point(11, 101);
- btnExportTranslations.Name = "btnExportTranslations";
- btnExportTranslations.Size = new Size(210, 36);
- btnExportTranslations.TabIndex = 7;
- btnExportTranslations.Text = "Export All Translations";
- btnExportTranslations.UseVisualStyleBackColor = false;
- btnExportTranslations.Click += ExportAllTranslations;
- //
- // btnImportTranslations
- //
- btnImportTranslations.BackColor = SystemColors.ControlLight;
- btnImportTranslations.Location = new Point(11, 216);
- btnImportTranslations.Name = "btnImportTranslations";
- btnImportTranslations.Size = new Size(210, 36);
- btnImportTranslations.TabIndex = 8;
- btnImportTranslations.Text = "Import Translations";
- btnImportTranslations.UseVisualStyleBackColor = false;
- btnImportTranslations.Click += ImportTranslations;
- //
- // btnExportTranslationsSheet
- //
- btnExportTranslationsSheet.AutoSizeMode = AutoSizeMode.GrowAndShrink;
- btnExportTranslationsSheet.BackColor = SystemColors.ControlLight;
- btnExportTranslationsSheet.Location = new Point(11, 27);
- btnExportTranslationsSheet.Name = "btnExportTranslationsSheet";
- btnExportTranslationsSheet.Size = new Size(210, 36);
- btnExportTranslationsSheet.TabIndex = 5;
- btnExportTranslationsSheet.Text = "Export Translations Sheet";
- btnExportTranslationsSheet.UseVisualStyleBackColor = false;
- btnExportTranslationsSheet.Click += ExportTranslationsSheet;
- //
- // grpMachineTranslationsSingleLanguage
- //
- grpMachineTranslationsSingleLanguage.Controls.Add(btnFillEmptyTranslations);
- grpMachineTranslationsSingleLanguage.Controls.Add(btnGenenrateMachineTranslations);
- grpMachineTranslationsSingleLanguage.Controls.Add(listCultureToPopulate);
- grpMachineTranslationsSingleLanguage.Location = new Point(978, 47);
- grpMachineTranslationsSingleLanguage.Name = "grpMachineTranslationsSingleLanguage";
- grpMachineTranslationsSingleLanguage.Size = new Size(294, 140);
- grpMachineTranslationsSingleLanguage.TabIndex = 9;
- grpMachineTranslationsSingleLanguage.TabStop = false;
- grpMachineTranslationsSingleLanguage.Text = "Machine Translations - Single Language";
- //
- // btnFillEmptyTranslations
- //
- btnFillEmptyTranslations.BackColor = SystemColors.ControlLight;
- btnFillEmptyTranslations.ForeColor = SystemColors.ControlText;
- btnFillEmptyTranslations.Location = new Point(8, 99);
- btnFillEmptyTranslations.Name = "btnFillEmptyTranslations";
- btnFillEmptyTranslations.Size = new Size(271, 36);
- btnFillEmptyTranslations.TabIndex = 14;
- btnFillEmptyTranslations.Text = "Fill Empty Translations";
- btnFillEmptyTranslations.UseVisualStyleBackColor = false;
- btnFillEmptyTranslations.Click += FillEmptyTranslations;
- //
- // btnGenenrateMachineTranslations
- //
- btnGenenrateMachineTranslations.BackColor = SystemColors.ControlLight;
- btnGenenrateMachineTranslations.ForeColor = SystemColors.ControlText;
- btnGenenrateMachineTranslations.Location = new Point(8, 27);
- btnGenenrateMachineTranslations.Name = "btnGenenrateMachineTranslations";
- btnGenenrateMachineTranslations.Size = new Size(271, 36);
- btnGenenrateMachineTranslations.TabIndex = 10;
- btnGenenrateMachineTranslations.Text = "Generate Translations";
- btnGenenrateMachineTranslations.UseVisualStyleBackColor = false;
- btnGenenrateMachineTranslations.Click += GenenrateMachineTranslations;
- //
- // listCultureToPopulate
- //
- listCultureToPopulate.FormattingEnabled = true;
- listCultureToPopulate.Location = new Point(8, 67);
- listCultureToPopulate.Name = "listCultureToPopulate";
- listCultureToPopulate.Size = new Size(271, 28);
- listCultureToPopulate.TabIndex = 11;
- //
- // grpSecondaryCultures
- //
- grpSecondaryCultures.Controls.Add(btnAddSecondaryLanguage);
- grpSecondaryCultures.Controls.Add(listSecondaryLanguages);
- grpSecondaryCultures.Location = new Point(494, 45);
- grpSecondaryCultures.Name = "grpSecondaryCultures";
- grpSecondaryCultures.Size = new Size(224, 269);
- grpSecondaryCultures.TabIndex = 2;
- grpSecondaryCultures.TabStop = false;
- grpSecondaryCultures.Text = "Secondary Languages";
- //
- // btnAddSecondaryLanguage
- //
- btnAddSecondaryLanguage.Location = new Point(8, 27);
- btnAddSecondaryLanguage.Name = "btnAddSecondaryLanguage";
- btnAddSecondaryLanguage.Size = new Size(200, 36);
- btnAddSecondaryLanguage.TabIndex = 3;
- btnAddSecondaryLanguage.Text = "Add Language";
- btnAddSecondaryLanguage.UseVisualStyleBackColor = true;
- btnAddSecondaryLanguage.Click += AddSecondaryLanguage;
- //
- // listSecondaryLanguages
- //
- listSecondaryLanguages.FormattingEnabled = true;
- listSecondaryLanguages.ItemHeight = 20;
- listSecondaryLanguages.Location = new Point(9, 69);
- listSecondaryLanguages.Name = "listSecondaryLanguages";
- listSecondaryLanguages.Size = new Size(201, 184);
- listSecondaryLanguages.TabIndex = 0;
- listSecondaryLanguages.TabStop = false;
- listSecondaryLanguages.UseTabStops = false;
- //
- // menuStrip
- //
- menuStrip.BackColor = Color.FromArgb(221, 221, 221);
- menuStrip.ImageScalingSize = new Size(20, 20);
- menuStrip.Items.AddRange(new ToolStripItem[] { menuConnection, menuTranslatedTables, menuSyncDataModel });
- menuStrip.Location = new Point(0, 0);
- menuStrip.Name = "menuStrip";
- menuStrip.Padding = new Padding(6, 3, 6, 3);
- menuStrip.Size = new Size(1519, 38);
- menuStrip.TabIndex = 1;
- menuStrip.Text = "menuMain";
- //
- // menuConnection
- //
- menuConnection.DropDownItems.AddRange(new ToolStripItem[] { menuConnect, menuDisconnect, toolStripSeparator2, menuConfigureSettings, toolStripSeparator1, exportModelAsJson });
- menuConnection.Name = "menuConnection";
- menuConnection.ShortcutKeys = Keys.Control | Keys.Shift | Keys.S;
- menuConnection.Size = new Size(153, 32);
- menuConnection.Text = "Dataset Connection";
- //
- // menuConnect
- //
- menuConnect.Name = "menuConnect";
- menuConnect.ShortcutKeys = Keys.Control | Keys.Shift | Keys.C;
- menuConnect.Size = new Size(281, 26);
- menuConnect.Text = "Connect...";
- menuConnect.Click += menuConnect_Click;
- //
- // menuDisconnect
- //
- menuDisconnect.Name = "menuDisconnect";
- menuDisconnect.ShortcutKeys = Keys.Control | Keys.Shift | Keys.D;
- menuDisconnect.Size = new Size(281, 26);
- menuDisconnect.Text = "Disconnect";
- menuDisconnect.Click += menuDisconnect_Click;
- //
- // toolStripSeparator2
- //
- toolStripSeparator2.Name = "toolStripSeparator2";
- toolStripSeparator2.Size = new Size(278, 6);
- //
- // menuConfigureSettings
- //
- menuConfigureSettings.Name = "menuConfigureSettings";
- menuConfigureSettings.ShortcutKeys = Keys.Control | Keys.S;
- menuConfigureSettings.Size = new Size(281, 26);
- menuConfigureSettings.Text = "Configure Settings...";
- menuConfigureSettings.Click += ConfigureSettings;
- //
- // toolStripSeparator1
- //
- toolStripSeparator1.Name = "toolStripSeparator1";
- toolStripSeparator1.Size = new Size(278, 6);
- //
- // exportModelAsJson
- //
- exportModelAsJson.Name = "exportModelAsJson";
- exportModelAsJson.ShortcutKeys = Keys.Control | Keys.E;
- exportModelAsJson.Size = new Size(281, 26);
- exportModelAsJson.Text = "Export As Model.bim";
- exportModelAsJson.Click += exportModelAsJson_Click;
- //
- // menuTranslatedTables
- //
- menuTranslatedTables.DropDownItems.AddRange(new ToolStripItem[] { menuCreateLocalizedLabelsTable, menuAddLabelsToLocalizedLabelsTable, menuGenerateTranslatedLocalizedLabelsTable, menuGenerateTranslatedDatasetObjectNamesTable });
- menuTranslatedTables.Name = "menuTranslatedTables";
- menuTranslatedTables.ShortcutKeys = Keys.Control | Keys.Shift | Keys.T;
- menuTranslatedTables.Size = new Size(200, 32);
- menuTranslatedTables.Text = "Generate Translated Tables";
- //
- // menuCreateLocalizedLabelsTable
- //
- menuCreateLocalizedLabelsTable.Name = "menuCreateLocalizedLabelsTable";
- menuCreateLocalizedLabelsTable.ShortcutKeys = Keys.Control | Keys.C;
- menuCreateLocalizedLabelsTable.Size = new Size(469, 26);
- menuCreateLocalizedLabelsTable.Text = "Create Localized Labels Table";
- menuCreateLocalizedLabelsTable.Click += CreateLocalizedLabelsTable;
- //
- // menuAddLabelsToLocalizedLabelsTable
- //
- menuAddLabelsToLocalizedLabelsTable.Name = "menuAddLabelsToLocalizedLabelsTable";
- menuAddLabelsToLocalizedLabelsTable.ShortcutKeys = Keys.Control | Keys.A;
- menuAddLabelsToLocalizedLabelsTable.Size = new Size(469, 26);
- menuAddLabelsToLocalizedLabelsTable.Text = "Add Labels to Localized Labels Table...";
- menuAddLabelsToLocalizedLabelsTable.Click += AddLocalizedLabels;
- //
- // menuGenerateTranslatedLocalizedLabelsTable
- //
- menuGenerateTranslatedLocalizedLabelsTable.Name = "menuGenerateTranslatedLocalizedLabelsTable";
- menuGenerateTranslatedLocalizedLabelsTable.ShortcutKeys = Keys.Control | Keys.L;
- menuGenerateTranslatedLocalizedLabelsTable.Size = new Size(469, 26);
- menuGenerateTranslatedLocalizedLabelsTable.Text = "Generate Translated Localized Labels Table";
- menuGenerateTranslatedLocalizedLabelsTable.Click += GenerateTranslatedLocalizedLabelsTable;
- //
- // menuGenerateTranslatedDatasetObjectNamesTable
- //
- menuGenerateTranslatedDatasetObjectNamesTable.Name = "menuGenerateTranslatedDatasetObjectNamesTable";
- menuGenerateTranslatedDatasetObjectNamesTable.ShortcutKeys = Keys.Control | Keys.D;
- menuGenerateTranslatedDatasetObjectNamesTable.Size = new Size(469, 26);
- menuGenerateTranslatedDatasetObjectNamesTable.Text = "Generate Translated Dataset Object Names Table";
- menuGenerateTranslatedDatasetObjectNamesTable.Click += GenerateTranslatedDatasetObjectNamesTable;
- //
- // menuSyncDataModel
- //
- menuSyncDataModel.Alignment = ToolStripItemAlignment.Right;
- menuSyncDataModel.BackColor = Color.LemonChiffon;
- menuSyncDataModel.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
- menuSyncDataModel.ForeColor = Color.DarkRed;
- menuSyncDataModel.Margin = new Padding(4);
- menuSyncDataModel.Name = "menuSyncDataModel";
- menuSyncDataModel.Size = new Size(140, 24);
- menuSyncDataModel.Text = "Sync Data Model";
- menuSyncDataModel.Click += SyncDataModel;
- //
- // statusStrip1
- //
- statusStrip1.ImageScalingSize = new Size(20, 20);
- statusStrip1.Items.AddRange(new ToolStripItem[] { labelStatusBar, toolStripStatusLabel1, toolStripStatusLabel2 });
- statusStrip1.Location = new Point(0, 717);
- statusStrip1.Name = "statusStrip1";
- statusStrip1.Padding = new Padding(1, 0, 16, 0);
- statusStrip1.Size = new Size(1519, 22);
- statusStrip1.TabIndex = 9;
- statusStrip1.Text = "statusStrip1";
- //
- // labelStatusBar
- //
- labelStatusBar.Name = "labelStatusBar";
- labelStatusBar.Size = new Size(0, 16);
- //
- // toolStripStatusLabel1
- //
- toolStripStatusLabel1.Name = "toolStripStatusLabel1";
- toolStripStatusLabel1.Size = new Size(0, 16);
- //
- // toolStripStatusLabel2
- //
- toolStripStatusLabel2.Name = "toolStripStatusLabel2";
- toolStripStatusLabel2.Size = new Size(0, 16);
- //
- // contextMenuSecondaryLanguageHeader
- //
- contextMenuSecondaryLanguageHeader.ImageScalingSize = new Size(20, 20);
- contextMenuSecondaryLanguageHeader.Items.AddRange(new ToolStripItem[] { toolStripSeparator5, menuCommandDuplicateSecondaryLanguage, menuCommandCopyToSecondaryLanguage, toolStripSeparator3, menuCommandExportLanguageToTranslationSheet, toolStripSeparator4, menuCommandDeleteSecondaryLanguage, toolStripSeparator6 });
- contextMenuSecondaryLanguageHeader.Name = "contextMenuSecondaryLanguageHeader";
- contextMenuSecondaryLanguageHeader.Size = new Size(341, 124);
- contextMenuSecondaryLanguageHeader.Text = "Actions on This Language";
- //
- // toolStripSeparator5
- //
- toolStripSeparator5.Name = "toolStripSeparator5";
- toolStripSeparator5.Size = new Size(337, 6);
- //
- // menuCommandDuplicateSecondaryLanguage
- //
- menuCommandDuplicateSecondaryLanguage.Name = "menuCommandDuplicateSecondaryLanguage";
- menuCommandDuplicateSecondaryLanguage.Size = new Size(340, 24);
- menuCommandDuplicateSecondaryLanguage.Text = "Copy Translations to New Language";
- menuCommandDuplicateSecondaryLanguage.MouseDown += menuCommandDuplicateSecondaryLanguage_MouseDown;
- //
- // menuCommandCopyToSecondaryLanguage
- //
- menuCommandCopyToSecondaryLanguage.Name = "menuCommandCopyToSecondaryLanguage";
- menuCommandCopyToSecondaryLanguage.Size = new Size(340, 24);
- menuCommandCopyToSecondaryLanguage.Text = "Copy Translations to Existing Language";
- menuCommandCopyToSecondaryLanguage.MouseDown += menuCommandCopyToSecondaryLanguage_MouseDown;
- //
- // toolStripSeparator3
- //
- toolStripSeparator3.Name = "toolStripSeparator3";
- toolStripSeparator3.Size = new Size(337, 6);
- //
- // menuCommandExportLanguageToTranslationSheet
- //
- menuCommandExportLanguageToTranslationSheet.Name = "menuCommandExportLanguageToTranslationSheet";
- menuCommandExportLanguageToTranslationSheet.Size = new Size(340, 24);
- menuCommandExportLanguageToTranslationSheet.Text = "Export Language to Translation Sheet";
- menuCommandExportLanguageToTranslationSheet.MouseDown += menuCommandExportLanguageToTranslationSheet_MouseDown;
- //
- // toolStripSeparator4
- //
- toolStripSeparator4.Name = "toolStripSeparator4";
- toolStripSeparator4.Size = new Size(337, 6);
- //
- // menuCommandDeleteSecondaryLanguage
- //
- menuCommandDeleteSecondaryLanguage.Name = "menuCommandDeleteSecondaryLanguage";
- menuCommandDeleteSecondaryLanguage.Size = new Size(340, 24);
- menuCommandDeleteSecondaryLanguage.Text = "Delete This Language from Data Model";
- menuCommandDeleteSecondaryLanguage.MouseDown += menuCommandDeleteSecondaryLanguage_MouseDown;
- //
- // toolStripSeparator6
- //
- toolStripSeparator6.Name = "toolStripSeparator6";
- toolStripSeparator6.Size = new Size(337, 6);
- //
- // FormMain
- //
- AutoScaleDimensions = new SizeF(8F, 20F);
- AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(1519, 739);
- Controls.Add(gridTranslations);
- Controls.Add(statusStrip1);
- Controls.Add(panel2);
- Icon = (Icon)resources.GetObject("$this.Icon");
- MainMenuStrip = menuStrip;
- Name = "FormMain";
- StartPosition = FormStartPosition.CenterScreen;
- Text = "Translations Builder";
- Load += onLoad;
- ((System.ComponentModel.ISupportInitialize)gridTranslations).EndInit();
- groupDatasetProperties.ResumeLayout(false);
- groupDatasetProperties.PerformLayout();
- panel2.ResumeLayout(false);
- panel2.PerformLayout();
- grpMachineTranslationsAllLanguages.ResumeLayout(false);
- grpImportExportTranslations.ResumeLayout(false);
- grpImportExportTranslations.PerformLayout();
- grpMachineTranslationsSingleLanguage.ResumeLayout(false);
- grpSecondaryCultures.ResumeLayout(false);
- menuStrip.ResumeLayout(false);
- menuStrip.PerformLayout();
- statusStrip1.ResumeLayout(false);
- statusStrip1.PerformLayout();
- contextMenuSecondaryLanguageHeader.ResumeLayout(false);
- ResumeLayout(false);
- PerformLayout();
- }
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
+ gridTranslations = new DataGridView();
+ dialogOpenFile = new OpenFileDialog();
+ groupDatasetProperties = new GroupBox();
+ lbldefaultLanguageNameLabel = new Label();
+ txtdefaultLanguage = new TextBox();
+ txtCompatibilityLevel = new TextBox();
+ lblCompatibilityLevel = new Label();
+ txtDatasetName = new TextBox();
+ txtServerConnection = new TextBox();
+ lblDatasetName = new Label();
+ lblServerConnection = new Label();
+ panel2 = new Panel();
+ grpMachineTranslationsAllLanguages = new GroupBox();
+ btnFillAllEmptyTranslations = new Button();
+ btnGenenrateAllMachineTranslations = new Button();
+ grpImportExportTranslations = new GroupBox();
+ btnExportAllTranslationSheets = new Button();
+ chkOpenExportInExcel = new CheckBox();
+ listLanguageForTransation = new ComboBox();
+ btnExportTranslations = new Button();
+ btnImportTranslations = new Button();
+ btnExportTranslationsSheet = new Button();
+ grpMachineTranslationsSingleLanguage = new GroupBox();
+ btnFillEmptyTranslations = new Button();
+ btnGenenrateMachineTranslations = new Button();
+ listCultureToPopulate = new ComboBox();
+ grpSecondaryCultures = new GroupBox();
+ btnAddSecondaryLanguage = new Button();
+ listSecondaryLanguages = new ListBox();
+ menuStrip = new MenuStrip();
+ menuConnection = new ToolStripMenuItem();
+ menuConnect = new ToolStripMenuItem();
+ menuDisconnect = new ToolStripMenuItem();
+ toolStripSeparator2 = new ToolStripSeparator();
+ menuConfigureSettings = new ToolStripMenuItem();
+ toolStripSeparator1 = new ToolStripSeparator();
+ exportModelAsJson = new ToolStripMenuItem();
+ menuTranslatedTables = new ToolStripMenuItem();
+ menuCreateLocalizedLabelsTable = new ToolStripMenuItem();
+ menuAddLabelsToLocalizedLabelsTable = new ToolStripMenuItem();
+ menuGenerateTranslatedLocalizedLabelsTable = new ToolStripMenuItem();
+ menuGenerateTranslatedDatasetObjectNamesTable = new ToolStripMenuItem();
+ menuSyncDataModel = new ToolStripMenuItem();
+ statusStrip1 = new StatusStrip();
+ labelStatusBar = new ToolStripStatusLabel();
+ toolStripStatusLabel1 = new ToolStripStatusLabel();
+ toolStripStatusLabel2 = new ToolStripStatusLabel();
+ tooltipDatasetName = new ToolTip(components);
+ tooltipServiceConnection = new ToolTip(components);
+ contextMenuSecondaryLanguageHeader = new ContextMenuStrip(components);
+ toolStripSeparator5 = new ToolStripSeparator();
+ menuCommandDuplicateSecondaryLanguage = new ToolStripMenuItem();
+ menuCommandCopyToSecondaryLanguage = new ToolStripMenuItem();
+ toolStripSeparator3 = new ToolStripSeparator();
+ menuCommandExportLanguageToTranslationSheet = new ToolStripMenuItem();
+ toolStripSeparator4 = new ToolStripSeparator();
+ menuCommandDeleteSecondaryLanguage = new ToolStripMenuItem();
+ toolStripSeparator6 = new ToolStripSeparator();
+ ((System.ComponentModel.ISupportInitialize)gridTranslations).BeginInit();
+ groupDatasetProperties.SuspendLayout();
+ panel2.SuspendLayout();
+ grpMachineTranslationsAllLanguages.SuspendLayout();
+ grpImportExportTranslations.SuspendLayout();
+ grpMachineTranslationsSingleLanguage.SuspendLayout();
+ grpSecondaryCultures.SuspendLayout();
+ menuStrip.SuspendLayout();
+ statusStrip1.SuspendLayout();
+ contextMenuSecondaryLanguageHeader.SuspendLayout();
+ SuspendLayout();
+ //
+ // gridTranslations
+ //
+ gridTranslations.AllowUserToAddRows = false;
+ gridTranslations.AllowUserToDeleteRows = false;
+ gridTranslations.AllowUserToResizeColumns = false;
+ gridTranslations.AllowUserToResizeRows = false;
+ dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle1.BackColor = Color.Black;
+ dataGridViewCellStyle1.Font = new Font("Arial Black", 7F, FontStyle.Bold, GraphicsUnit.Point);
+ dataGridViewCellStyle1.ForeColor = SystemColors.WindowText;
+ dataGridViewCellStyle1.SelectionBackColor = SystemColors.Highlight;
+ dataGridViewCellStyle1.SelectionForeColor = SystemColors.HighlightText;
+ dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True;
+ gridTranslations.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
+ gridTranslations.ColumnHeadersHeight = 29;
+ gridTranslations.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
+ gridTranslations.Dock = DockStyle.Fill;
+ gridTranslations.EditMode = DataGridViewEditMode.EditProgrammatically;
+ gridTranslations.EnableHeadersVisualStyles = false;
+ gridTranslations.Location = new Point(0, 242);
+ gridTranslations.Margin = new Padding(3, 2, 3, 2);
+ gridTranslations.MultiSelect = false;
+ gridTranslations.Name = "gridTranslations";
+ gridTranslations.RowHeadersWidth = 24;
+ gridTranslations.RowTemplate.Height = 28;
+ gridTranslations.Size = new Size(1329, 290);
+ gridTranslations.TabIndex = 0;
+ gridTranslations.TabStop = false;
+ gridTranslations.CellBeginEdit += gridTranslations_CellBeginEdit;
+ gridTranslations.CellDoubleClick += gridTranslations_CellDoubleClick;
+ gridTranslations.CellEndEdit += gridTranslations_CellEndEdit;
+ //
+ // groupDatasetProperties
+ //
+ groupDatasetProperties.Controls.Add(lbldefaultLanguageNameLabel);
+ groupDatasetProperties.Controls.Add(txtdefaultLanguage);
+ groupDatasetProperties.Controls.Add(txtCompatibilityLevel);
+ groupDatasetProperties.Controls.Add(lblCompatibilityLevel);
+ groupDatasetProperties.Controls.Add(txtDatasetName);
+ groupDatasetProperties.Controls.Add(txtServerConnection);
+ groupDatasetProperties.Controls.Add(lblDatasetName);
+ groupDatasetProperties.Controls.Add(lblServerConnection);
+ groupDatasetProperties.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
+ groupDatasetProperties.Location = new Point(8, 35);
+ groupDatasetProperties.Margin = new Padding(3, 2, 3, 2);
+ groupDatasetProperties.Name = "groupDatasetProperties";
+ groupDatasetProperties.Padding = new Padding(3, 2, 3, 2);
+ groupDatasetProperties.Size = new Size(413, 202);
+ groupDatasetProperties.TabIndex = 0;
+ groupDatasetProperties.TabStop = false;
+ groupDatasetProperties.Text = "Dataset Properties";
+ //
+ // lbldefaultLanguageNameLabel
+ //
+ lbldefaultLanguageNameLabel.AutoSize = true;
+ lbldefaultLanguageNameLabel.Location = new Point(5, 86);
+ lbldefaultLanguageNameLabel.Name = "lbldefaultLanguageNameLabel";
+ lbldefaultLanguageNameLabel.Size = new Size(103, 15);
+ lbldefaultLanguageNameLabel.TabIndex = 33;
+ lbldefaultLanguageNameLabel.Text = "Default Language:";
+ //
+ // txtdefaultLanguage
+ //
+ txtdefaultLanguage.Location = new Point(123, 84);
+ txtdefaultLanguage.Margin = new Padding(3, 2, 3, 2);
+ txtdefaultLanguage.Name = "txtdefaultLanguage";
+ txtdefaultLanguage.Size = new Size(269, 23);
+ txtdefaultLanguage.TabIndex = 32;
+ txtdefaultLanguage.TabStop = false;
+ //
+ // txtCompatibilityLevel
+ //
+ txtCompatibilityLevel.Location = new Point(123, 114);
+ txtCompatibilityLevel.Margin = new Padding(3, 2, 3, 2);
+ txtCompatibilityLevel.Name = "txtCompatibilityLevel";
+ txtCompatibilityLevel.ReadOnly = true;
+ txtCompatibilityLevel.Size = new Size(269, 23);
+ txtCompatibilityLevel.TabIndex = 22;
+ txtCompatibilityLevel.TabStop = false;
+ //
+ // lblCompatibilityLevel
+ //
+ lblCompatibilityLevel.AutoSize = true;
+ lblCompatibilityLevel.Location = new Point(29, 115);
+ lblCompatibilityLevel.Name = "lblCompatibilityLevel";
+ lblCompatibilityLevel.Size = new Size(83, 15);
+ lblCompatibilityLevel.TabIndex = 21;
+ lblCompatibilityLevel.Text = "Compat Level:";
+ lblCompatibilityLevel.TextAlign = ContentAlignment.MiddleRight;
+ //
+ // txtDatasetName
+ //
+ txtDatasetName.Location = new Point(123, 54);
+ txtDatasetName.Margin = new Padding(3, 2, 3, 2);
+ txtDatasetName.Name = "txtDatasetName";
+ txtDatasetName.ReadOnly = true;
+ txtDatasetName.Size = new Size(269, 23);
+ txtDatasetName.TabIndex = 20;
+ txtDatasetName.TabStop = false;
+ //
+ // txtServerConnection
+ //
+ txtServerConnection.Location = new Point(123, 24);
+ txtServerConnection.Margin = new Padding(9, 2, 3, 2);
+ txtServerConnection.Name = "txtServerConnection";
+ txtServerConnection.ReadOnly = true;
+ txtServerConnection.Size = new Size(269, 23);
+ txtServerConnection.TabIndex = 0;
+ txtServerConnection.TabStop = false;
+ //
+ // lblDatasetName
+ //
+ lblDatasetName.AutoSize = true;
+ lblDatasetName.Location = new Point(25, 56);
+ lblDatasetName.Name = "lblDatasetName";
+ lblDatasetName.Size = new Size(84, 15);
+ lblDatasetName.TabIndex = 18;
+ lblDatasetName.Text = "Dataset Name:";
+ lblDatasetName.TextAlign = ContentAlignment.MiddleRight;
+ //
+ // lblServerConnection
+ //
+ lblServerConnection.AutoSize = true;
+ lblServerConnection.Location = new Point(43, 27);
+ lblServerConnection.Name = "lblServerConnection";
+ lblServerConnection.Size = new Size(72, 15);
+ lblServerConnection.TabIndex = 17;
+ lblServerConnection.Text = "Connection:";
+ lblServerConnection.TextAlign = ContentAlignment.MiddleRight;
+ //
+ // panel2
+ //
+ panel2.BackColor = SystemColors.ActiveCaption;
+ panel2.Controls.Add(grpMachineTranslationsAllLanguages);
+ panel2.Controls.Add(grpImportExportTranslations);
+ panel2.Controls.Add(grpMachineTranslationsSingleLanguage);
+ panel2.Controls.Add(grpSecondaryCultures);
+ panel2.Controls.Add(groupDatasetProperties);
+ panel2.Controls.Add(menuStrip);
+ panel2.Dock = DockStyle.Top;
+ panel2.Location = new Point(0, 0);
+ panel2.Margin = new Padding(3, 2, 3, 2);
+ panel2.Name = "panel2";
+ panel2.Size = new Size(1329, 242);
+ panel2.TabIndex = 8;
+ //
+ // grpMachineTranslationsAllLanguages
+ //
+ grpMachineTranslationsAllLanguages.Controls.Add(btnFillAllEmptyTranslations);
+ grpMachineTranslationsAllLanguages.Controls.Add(btnGenenrateAllMachineTranslations);
+ grpMachineTranslationsAllLanguages.Location = new Point(858, 143);
+ grpMachineTranslationsAllLanguages.Margin = new Padding(3, 2, 3, 2);
+ grpMachineTranslationsAllLanguages.Name = "grpMachineTranslationsAllLanguages";
+ grpMachineTranslationsAllLanguages.Padding = new Padding(3, 2, 3, 2);
+ grpMachineTranslationsAllLanguages.Size = new Size(257, 94);
+ grpMachineTranslationsAllLanguages.TabIndex = 10;
+ grpMachineTranslationsAllLanguages.TabStop = false;
+ grpMachineTranslationsAllLanguages.Text = "Machine Translations - All Languages";
+ //
+ // btnFillAllEmptyTranslations
+ //
+ btnFillAllEmptyTranslations.BackColor = SystemColors.ControlLight;
+ btnFillAllEmptyTranslations.Location = new Point(10, 54);
+ btnFillAllEmptyTranslations.Margin = new Padding(3, 2, 3, 2);
+ btnFillAllEmptyTranslations.Name = "btnFillAllEmptyTranslations";
+ btnFillAllEmptyTranslations.Size = new Size(234, 28);
+ btnFillAllEmptyTranslations.TabIndex = 15;
+ btnFillAllEmptyTranslations.Text = "Fill All Empty Translations";
+ btnFillAllEmptyTranslations.UseVisualStyleBackColor = false;
+ btnFillAllEmptyTranslations.Click += FillAllEmptyTranslations;
+ //
+ // btnGenenrateAllMachineTranslations
+ //
+ btnGenenrateAllMachineTranslations.BackColor = SystemColors.ControlLight;
+ btnGenenrateAllMachineTranslations.Location = new Point(9, 21);
+ btnGenenrateAllMachineTranslations.Margin = new Padding(3, 2, 3, 2);
+ btnGenenrateAllMachineTranslations.Name = "btnGenenrateAllMachineTranslations";
+ btnGenenrateAllMachineTranslations.Size = new Size(235, 27);
+ btnGenenrateAllMachineTranslations.TabIndex = 14;
+ btnGenenrateAllMachineTranslations.Text = "Generate All Translations";
+ btnGenenrateAllMachineTranslations.UseVisualStyleBackColor = false;
+ btnGenenrateAllMachineTranslations.Click += GenenrateAllMachineTranslations;
+ //
+ // grpImportExportTranslations
+ //
+ grpImportExportTranslations.Controls.Add(btnExportAllTranslationSheets);
+ grpImportExportTranslations.Controls.Add(chkOpenExportInExcel);
+ grpImportExportTranslations.Controls.Add(listLanguageForTransation);
+ grpImportExportTranslations.Controls.Add(btnExportTranslations);
+ grpImportExportTranslations.Controls.Add(btnImportTranslations);
+ grpImportExportTranslations.Controls.Add(btnExportTranslationsSheet);
+ grpImportExportTranslations.Location = new Point(639, 35);
+ grpImportExportTranslations.Margin = new Padding(3, 2, 3, 2);
+ grpImportExportTranslations.Name = "grpImportExportTranslations";
+ grpImportExportTranslations.Padding = new Padding(3, 2, 3, 2);
+ grpImportExportTranslations.Size = new Size(206, 202);
+ grpImportExportTranslations.TabIndex = 4;
+ grpImportExportTranslations.TabStop = false;
+ grpImportExportTranslations.Text = "Export/Import Translations";
+ //
+ // btnExportAllTranslationSheets
+ //
+ btnExportAllTranslationSheets.BackColor = SystemColors.ControlLight;
+ btnExportAllTranslationSheets.Location = new Point(11, 108);
+ btnExportAllTranslationSheets.Margin = new Padding(3, 2, 3, 2);
+ btnExportAllTranslationSheets.Name = "btnExportAllTranslationSheets";
+ btnExportAllTranslationSheets.Size = new Size(183, 27);
+ btnExportAllTranslationSheets.TabIndex = 10;
+ btnExportAllTranslationSheets.Text = "Export All Translation Sheets";
+ btnExportAllTranslationSheets.UseVisualStyleBackColor = false;
+ btnExportAllTranslationSheets.Click += ExportAllTranslationSheets;
+ //
+ // chkOpenExportInExcel
+ //
+ chkOpenExportInExcel.AutoSize = true;
+ chkOpenExportInExcel.Checked = true;
+ chkOpenExportInExcel.CheckState = CheckState.Checked;
+ chkOpenExportInExcel.Location = new Point(27, 140);
+ chkOpenExportInExcel.Margin = new Padding(3, 2, 3, 2);
+ chkOpenExportInExcel.Name = "chkOpenExportInExcel";
+ chkOpenExportInExcel.Size = new Size(135, 19);
+ chkOpenExportInExcel.TabIndex = 9;
+ chkOpenExportInExcel.Text = "Open Export in Excel";
+ chkOpenExportInExcel.UseVisualStyleBackColor = true;
+ //
+ // listLanguageForTransation
+ //
+ listLanguageForTransation.BackColor = SystemColors.Window;
+ listLanguageForTransation.FormattingEnabled = true;
+ listLanguageForTransation.Location = new Point(11, 51);
+ listLanguageForTransation.Margin = new Padding(3, 2, 3, 2);
+ listLanguageForTransation.Name = "listLanguageForTransation";
+ listLanguageForTransation.Size = new Size(182, 23);
+ listLanguageForTransation.TabIndex = 6;
+ //
+ // btnExportTranslations
+ //
+ btnExportTranslations.BackColor = SystemColors.ControlLight;
+ btnExportTranslations.Location = new Point(10, 76);
+ btnExportTranslations.Margin = new Padding(3, 2, 3, 2);
+ btnExportTranslations.Name = "btnExportTranslations";
+ btnExportTranslations.Size = new Size(184, 27);
+ btnExportTranslations.TabIndex = 7;
+ btnExportTranslations.Text = "Export All Translations";
+ btnExportTranslations.UseVisualStyleBackColor = false;
+ btnExportTranslations.Click += ExportAllTranslations;
+ //
+ // btnImportTranslations
+ //
+ btnImportTranslations.BackColor = SystemColors.ControlLight;
+ btnImportTranslations.Location = new Point(10, 162);
+ btnImportTranslations.Margin = new Padding(3, 2, 3, 2);
+ btnImportTranslations.Name = "btnImportTranslations";
+ btnImportTranslations.Size = new Size(184, 27);
+ btnImportTranslations.TabIndex = 8;
+ btnImportTranslations.Text = "Import Translations";
+ btnImportTranslations.UseVisualStyleBackColor = false;
+ btnImportTranslations.Click += ImportTranslations;
+ //
+ // btnExportTranslationsSheet
+ //
+ btnExportTranslationsSheet.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ btnExportTranslationsSheet.BackColor = SystemColors.ControlLight;
+ btnExportTranslationsSheet.Location = new Point(10, 20);
+ btnExportTranslationsSheet.Margin = new Padding(3, 2, 3, 2);
+ btnExportTranslationsSheet.Name = "btnExportTranslationsSheet";
+ btnExportTranslationsSheet.Size = new Size(184, 27);
+ btnExportTranslationsSheet.TabIndex = 5;
+ btnExportTranslationsSheet.Text = "Export Translations Sheet";
+ btnExportTranslationsSheet.UseVisualStyleBackColor = false;
+ btnExportTranslationsSheet.Click += ExportTranslationsSheet;
+ //
+ // grpMachineTranslationsSingleLanguage
+ //
+ grpMachineTranslationsSingleLanguage.Controls.Add(btnFillEmptyTranslations);
+ grpMachineTranslationsSingleLanguage.Controls.Add(btnGenenrateMachineTranslations);
+ grpMachineTranslationsSingleLanguage.Controls.Add(listCultureToPopulate);
+ grpMachineTranslationsSingleLanguage.Location = new Point(856, 35);
+ grpMachineTranslationsSingleLanguage.Margin = new Padding(3, 2, 3, 2);
+ grpMachineTranslationsSingleLanguage.Name = "grpMachineTranslationsSingleLanguage";
+ grpMachineTranslationsSingleLanguage.Padding = new Padding(3, 2, 3, 2);
+ grpMachineTranslationsSingleLanguage.Size = new Size(257, 105);
+ grpMachineTranslationsSingleLanguage.TabIndex = 9;
+ grpMachineTranslationsSingleLanguage.TabStop = false;
+ grpMachineTranslationsSingleLanguage.Text = "Machine Translations - Single Language";
+ //
+ // btnFillEmptyTranslations
+ //
+ btnFillEmptyTranslations.BackColor = SystemColors.ControlLight;
+ btnFillEmptyTranslations.ForeColor = SystemColors.ControlText;
+ btnFillEmptyTranslations.Location = new Point(7, 74);
+ btnFillEmptyTranslations.Margin = new Padding(3, 2, 3, 2);
+ btnFillEmptyTranslations.Name = "btnFillEmptyTranslations";
+ btnFillEmptyTranslations.Size = new Size(237, 27);
+ btnFillEmptyTranslations.TabIndex = 14;
+ btnFillEmptyTranslations.Text = "Fill Empty Translations";
+ btnFillEmptyTranslations.UseVisualStyleBackColor = false;
+ btnFillEmptyTranslations.Click += FillEmptyTranslations;
+ //
+ // btnGenenrateMachineTranslations
+ //
+ btnGenenrateMachineTranslations.BackColor = SystemColors.ControlLight;
+ btnGenenrateMachineTranslations.ForeColor = SystemColors.ControlText;
+ btnGenenrateMachineTranslations.Location = new Point(7, 20);
+ btnGenenrateMachineTranslations.Margin = new Padding(3, 2, 3, 2);
+ btnGenenrateMachineTranslations.Name = "btnGenenrateMachineTranslations";
+ btnGenenrateMachineTranslations.Size = new Size(237, 27);
+ btnGenenrateMachineTranslations.TabIndex = 10;
+ btnGenenrateMachineTranslations.Text = "Generate Translations";
+ btnGenenrateMachineTranslations.UseVisualStyleBackColor = false;
+ btnGenenrateMachineTranslations.Click += GenenrateMachineTranslations;
+ //
+ // listCultureToPopulate
+ //
+ listCultureToPopulate.FormattingEnabled = true;
+ listCultureToPopulate.Location = new Point(7, 50);
+ listCultureToPopulate.Margin = new Padding(3, 2, 3, 2);
+ listCultureToPopulate.Name = "listCultureToPopulate";
+ listCultureToPopulate.Size = new Size(238, 23);
+ listCultureToPopulate.TabIndex = 11;
+ //
+ // grpSecondaryCultures
+ //
+ grpSecondaryCultures.Controls.Add(btnAddSecondaryLanguage);
+ grpSecondaryCultures.Controls.Add(listSecondaryLanguages);
+ grpSecondaryCultures.Location = new Point(432, 34);
+ grpSecondaryCultures.Margin = new Padding(3, 2, 3, 2);
+ grpSecondaryCultures.Name = "grpSecondaryCultures";
+ grpSecondaryCultures.Padding = new Padding(3, 2, 3, 2);
+ grpSecondaryCultures.Size = new Size(196, 202);
+ grpSecondaryCultures.TabIndex = 2;
+ grpSecondaryCultures.TabStop = false;
+ grpSecondaryCultures.Text = "Secondary Languages";
+ //
+ // btnAddSecondaryLanguage
+ //
+ btnAddSecondaryLanguage.Location = new Point(7, 20);
+ btnAddSecondaryLanguage.Margin = new Padding(3, 2, 3, 2);
+ btnAddSecondaryLanguage.Name = "btnAddSecondaryLanguage";
+ btnAddSecondaryLanguage.Size = new Size(175, 27);
+ btnAddSecondaryLanguage.TabIndex = 3;
+ btnAddSecondaryLanguage.Text = "Add Language";
+ btnAddSecondaryLanguage.UseVisualStyleBackColor = true;
+ btnAddSecondaryLanguage.Click += AddSecondaryLanguage;
+ //
+ // listSecondaryLanguages
+ //
+ listSecondaryLanguages.FormattingEnabled = true;
+ listSecondaryLanguages.ItemHeight = 15;
+ listSecondaryLanguages.Location = new Point(8, 52);
+ listSecondaryLanguages.Margin = new Padding(3, 2, 3, 2);
+ listSecondaryLanguages.Name = "listSecondaryLanguages";
+ listSecondaryLanguages.Size = new Size(176, 139);
+ listSecondaryLanguages.TabIndex = 0;
+ listSecondaryLanguages.TabStop = false;
+ listSecondaryLanguages.UseTabStops = false;
+ //
+ // menuStrip
+ //
+ menuStrip.BackColor = Color.FromArgb(221, 221, 221);
+ menuStrip.ImageScalingSize = new Size(20, 20);
+ menuStrip.Items.AddRange(new ToolStripItem[] { menuConnection, menuTranslatedTables, menuSyncDataModel });
+ menuStrip.Location = new Point(0, 0);
+ menuStrip.Name = "menuStrip";
+ menuStrip.Padding = new Padding(5, 2, 5, 2);
+ menuStrip.Size = new Size(1329, 31);
+ menuStrip.TabIndex = 1;
+ menuStrip.Text = "menuMain";
+ //
+ // menuConnection
+ //
+ menuConnection.DropDownItems.AddRange(new ToolStripItem[] { menuConnect, menuDisconnect, toolStripSeparator2, menuConfigureSettings, toolStripSeparator1, exportModelAsJson });
+ menuConnection.Name = "menuConnection";
+ menuConnection.ShortcutKeys = Keys.Control | Keys.Shift | Keys.S;
+ menuConnection.Size = new Size(123, 27);
+ menuConnection.Text = "Dataset Connection";
+ //
+ // menuConnect
+ //
+ menuConnect.Name = "menuConnect";
+ menuConnect.ShortcutKeys = Keys.Control | Keys.Shift | Keys.C;
+ menuConnect.Size = new Size(253, 22);
+ menuConnect.Text = "Connect...";
+ menuConnect.Click += menuConnect_Click;
+ //
+ // menuDisconnect
+ //
+ menuDisconnect.Name = "menuDisconnect";
+ menuDisconnect.ShortcutKeys = Keys.Control | Keys.Shift | Keys.D;
+ menuDisconnect.Size = new Size(253, 22);
+ menuDisconnect.Text = "Disconnect";
+ menuDisconnect.Click += menuDisconnect_Click;
+ //
+ // toolStripSeparator2
+ //
+ toolStripSeparator2.Name = "toolStripSeparator2";
+ toolStripSeparator2.Size = new Size(250, 6);
+ //
+ // menuConfigureSettings
+ //
+ menuConfigureSettings.Name = "menuConfigureSettings";
+ menuConfigureSettings.ShortcutKeys = Keys.Control | Keys.Shift | Keys.S;
+ menuConfigureSettings.Size = new Size(253, 22);
+ menuConfigureSettings.Text = "Configure Settings...";
+ menuConfigureSettings.Click += ConfigureSettings;
+ //
+ // toolStripSeparator1
+ //
+ toolStripSeparator1.Name = "toolStripSeparator1";
+ toolStripSeparator1.Size = new Size(250, 6);
+ //
+ // exportModelAsJson
+ //
+ exportModelAsJson.Name = "exportModelAsJson";
+ exportModelAsJson.ShortcutKeys = Keys.Control | Keys.E;
+ exportModelAsJson.Size = new Size(253, 22);
+ exportModelAsJson.Text = "Export As Model.bim";
+ exportModelAsJson.Click += exportModelAsJson_Click;
+ //
+ // menuTranslatedTables
+ //
+ menuTranslatedTables.DropDownItems.AddRange(new ToolStripItem[] { menuCreateLocalizedLabelsTable, menuAddLabelsToLocalizedLabelsTable, menuGenerateTranslatedLocalizedLabelsTable, menuGenerateTranslatedDatasetObjectNamesTable });
+ menuTranslatedTables.Name = "menuTranslatedTables";
+ menuTranslatedTables.ShortcutKeys = Keys.Control | Keys.Shift | Keys.T;
+ menuTranslatedTables.Size = new Size(157, 27);
+ menuTranslatedTables.Text = "Generate Translated Tables";
+ //
+ // menuCreateLocalizedLabelsTable
+ //
+ menuCreateLocalizedLabelsTable.Name = "menuCreateLocalizedLabelsTable";
+ menuCreateLocalizedLabelsTable.ShortcutKeys = Keys.Control | Keys.T;
+ menuCreateLocalizedLabelsTable.Size = new Size(369, 22);
+ menuCreateLocalizedLabelsTable.Text = "Create Localized Labels Table";
+ menuCreateLocalizedLabelsTable.Click += CreateLocalizedLabelsTable;
+ //
+ // menuAddLabelsToLocalizedLabelsTable
+ //
+ menuAddLabelsToLocalizedLabelsTable.Name = "menuAddLabelsToLocalizedLabelsTable";
+ menuAddLabelsToLocalizedLabelsTable.ShortcutKeys = Keys.Control | Keys.A;
+ menuAddLabelsToLocalizedLabelsTable.Size = new Size(369, 22);
+ menuAddLabelsToLocalizedLabelsTable.Text = "Add Labels to Localized Labels Table...";
+ menuAddLabelsToLocalizedLabelsTable.Click += AddLocalizedLabels;
+ //
+ // menuGenerateTranslatedLocalizedLabelsTable
+ //
+ menuGenerateTranslatedLocalizedLabelsTable.Name = "menuGenerateTranslatedLocalizedLabelsTable";
+ menuGenerateTranslatedLocalizedLabelsTable.ShortcutKeys = Keys.Control | Keys.L;
+ menuGenerateTranslatedLocalizedLabelsTable.Size = new Size(369, 22);
+ menuGenerateTranslatedLocalizedLabelsTable.Text = "Generate Translated Localized Labels Table";
+ menuGenerateTranslatedLocalizedLabelsTable.Click += GenerateTranslatedLocalizedLabelsTable;
+ //
+ // menuGenerateTranslatedDatasetObjectNamesTable
+ //
+ menuGenerateTranslatedDatasetObjectNamesTable.Name = "menuGenerateTranslatedDatasetObjectNamesTable";
+ menuGenerateTranslatedDatasetObjectNamesTable.ShortcutKeys = Keys.Control | Keys.D;
+ menuGenerateTranslatedDatasetObjectNamesTable.Size = new Size(369, 22);
+ menuGenerateTranslatedDatasetObjectNamesTable.Text = "Generate Translated Dataset Object Names Table";
+ menuGenerateTranslatedDatasetObjectNamesTable.Click += GenerateTranslatedDatasetObjectNamesTable;
+ //
+ // menuSyncDataModel
+ //
+ menuSyncDataModel.Alignment = ToolStripItemAlignment.Right;
+ menuSyncDataModel.BackColor = Color.LemonChiffon;
+ menuSyncDataModel.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
+ menuSyncDataModel.ForeColor = Color.DarkRed;
+ menuSyncDataModel.Margin = new Padding(4);
+ menuSyncDataModel.Name = "menuSyncDataModel";
+ menuSyncDataModel.Size = new Size(112, 19);
+ menuSyncDataModel.Text = "Sync Data Model";
+ menuSyncDataModel.Click += SyncDataModel;
+ //
+ // statusStrip1
+ //
+ statusStrip1.ImageScalingSize = new Size(20, 20);
+ statusStrip1.Items.AddRange(new ToolStripItem[] { labelStatusBar, toolStripStatusLabel1, toolStripStatusLabel2 });
+ statusStrip1.Location = new Point(0, 532);
+ statusStrip1.Name = "statusStrip1";
+ statusStrip1.Size = new Size(1329, 22);
+ statusStrip1.TabIndex = 9;
+ statusStrip1.Text = "statusStrip1";
+ //
+ // labelStatusBar
+ //
+ labelStatusBar.Name = "labelStatusBar";
+ labelStatusBar.Size = new Size(0, 17);
+ //
+ // toolStripStatusLabel1
+ //
+ toolStripStatusLabel1.Name = "toolStripStatusLabel1";
+ toolStripStatusLabel1.Size = new Size(0, 17);
+ //
+ // toolStripStatusLabel2
+ //
+ toolStripStatusLabel2.Name = "toolStripStatusLabel2";
+ toolStripStatusLabel2.Size = new Size(0, 17);
+ //
+ // contextMenuSecondaryLanguageHeader
+ //
+ contextMenuSecondaryLanguageHeader.ImageScalingSize = new Size(20, 20);
+ contextMenuSecondaryLanguageHeader.Items.AddRange(new ToolStripItem[] { toolStripSeparator5, menuCommandDuplicateSecondaryLanguage, menuCommandCopyToSecondaryLanguage, toolStripSeparator3, menuCommandExportLanguageToTranslationSheet, toolStripSeparator4, menuCommandDeleteSecondaryLanguage, toolStripSeparator6 });
+ contextMenuSecondaryLanguageHeader.Name = "contextMenuSecondaryLanguageHeader";
+ contextMenuSecondaryLanguageHeader.Size = new Size(281, 116);
+ contextMenuSecondaryLanguageHeader.Text = "Actions on This Language";
+ //
+ // toolStripSeparator5
+ //
+ toolStripSeparator5.Name = "toolStripSeparator5";
+ toolStripSeparator5.Size = new Size(277, 6);
+ //
+ // menuCommandDuplicateSecondaryLanguage
+ //
+ menuCommandDuplicateSecondaryLanguage.Name = "menuCommandDuplicateSecondaryLanguage";
+ menuCommandDuplicateSecondaryLanguage.Size = new Size(280, 22);
+ menuCommandDuplicateSecondaryLanguage.Text = "Copy Translations to New Language";
+ menuCommandDuplicateSecondaryLanguage.MouseDown += menuCommandDuplicateSecondaryLanguage_MouseDown;
+ //
+ // menuCommandCopyToSecondaryLanguage
+ //
+ menuCommandCopyToSecondaryLanguage.Name = "menuCommandCopyToSecondaryLanguage";
+ menuCommandCopyToSecondaryLanguage.Size = new Size(280, 22);
+ menuCommandCopyToSecondaryLanguage.Text = "Copy Translations to Existing Language";
+ menuCommandCopyToSecondaryLanguage.MouseDown += menuCommandCopyToSecondaryLanguage_MouseDown;
+ //
+ // toolStripSeparator3
+ //
+ toolStripSeparator3.Name = "toolStripSeparator3";
+ toolStripSeparator3.Size = new Size(277, 6);
+ //
+ // menuCommandExportLanguageToTranslationSheet
+ //
+ menuCommandExportLanguageToTranslationSheet.Name = "menuCommandExportLanguageToTranslationSheet";
+ menuCommandExportLanguageToTranslationSheet.Size = new Size(280, 22);
+ menuCommandExportLanguageToTranslationSheet.Text = "Export Language to Translation Sheet";
+ menuCommandExportLanguageToTranslationSheet.MouseDown += menuCommandExportLanguageToTranslationSheet_MouseDown;
+ //
+ // toolStripSeparator4
+ //
+ toolStripSeparator4.Name = "toolStripSeparator4";
+ toolStripSeparator4.Size = new Size(277, 6);
+ //
+ // menuCommandDeleteSecondaryLanguage
+ //
+ menuCommandDeleteSecondaryLanguage.Name = "menuCommandDeleteSecondaryLanguage";
+ menuCommandDeleteSecondaryLanguage.Size = new Size(280, 22);
+ menuCommandDeleteSecondaryLanguage.Text = "Delete This Language from Data Model";
+ menuCommandDeleteSecondaryLanguage.MouseDown += menuCommandDeleteSecondaryLanguage_MouseDown;
+ //
+ // toolStripSeparator6
+ //
+ toolStripSeparator6.Name = "toolStripSeparator6";
+ toolStripSeparator6.Size = new Size(277, 6);
+ //
+ // FormMain
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(1329, 554);
+ Controls.Add(gridTranslations);
+ Controls.Add(statusStrip1);
+ Controls.Add(panel2);
+ Icon = (Icon)resources.GetObject("$this.Icon");
+ MainMenuStrip = menuStrip;
+ Margin = new Padding(3, 2, 3, 2);
+ Name = "FormMain";
+ StartPosition = FormStartPosition.CenterScreen;
+ Text = "Customized Translations Builder";
+ Load += onLoad;
+ ((System.ComponentModel.ISupportInitialize)gridTranslations).EndInit();
+ groupDatasetProperties.ResumeLayout(false);
+ groupDatasetProperties.PerformLayout();
+ panel2.ResumeLayout(false);
+ panel2.PerformLayout();
+ grpMachineTranslationsAllLanguages.ResumeLayout(false);
+ grpImportExportTranslations.ResumeLayout(false);
+ grpImportExportTranslations.PerformLayout();
+ grpMachineTranslationsSingleLanguage.ResumeLayout(false);
+ grpSecondaryCultures.ResumeLayout(false);
+ menuStrip.ResumeLayout(false);
+ menuStrip.PerformLayout();
+ statusStrip1.ResumeLayout(false);
+ statusStrip1.PerformLayout();
+ contextMenuSecondaryLanguageHeader.ResumeLayout(false);
+ ResumeLayout(false);
+ PerformLayout();
+ }
- #endregion
- private System.Windows.Forms.DataGridView gridTranslations;
+ #endregion
+ private System.Windows.Forms.DataGridView gridTranslations;
private OpenFileDialog dialogOpenFile;
private GroupBox groupDatasetProperties;
private Panel panel2;
diff --git a/TranslationsBuilder/Forms/FormMain.cs b/TranslationsBuilder/Forms/FormMain.cs
index d3ffbd1..c6577aa 100644
--- a/TranslationsBuilder/Forms/FormMain.cs
+++ b/TranslationsBuilder/Forms/FormMain.cs
@@ -228,7 +228,7 @@ private void ExportAllTranslationSheets(object sender, EventArgs e) {
private void ImportTranslations(object sender, EventArgs e) {
dialogOpenFile.InitialDirectory = AppSettings.TranslationsInboxFolderPath;
- dialogOpenFile.Filter = "CSV files (*.csv)|*.csv";
+ dialogOpenFile.Filter = "Excel files (*.xlsx)|*.xlsx";
dialogOpenFile.FilterIndex = 1;
dialogOpenFile.RestoreDirectory = true;
@@ -481,7 +481,7 @@ private void gridTranslations_CellEndEdit(object sender, DataGridViewCellEventAr
var ObjectName = gridTranslations.Rows[e.RowIndex].Cells[2].Value.ToString();
var Language = SupportedLanguages.GetLanguageFromFullName(gridTranslations.Columns[e.ColumnIndex].HeaderText).LanguageId;
string Translation = (cell.Value != null) ? cell.Value.ToString() : "";
- TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, Translation);
+ TranslationsManager.SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, Language, Translation, saveModel: true);
cell.Style.BackColor = System.Drawing.Color.White;
}
diff --git a/TranslationsBuilder/Forms/FormMain.resx b/TranslationsBuilder/Forms/FormMain.resx
index d2d7d06..ea7b050 100644
--- a/TranslationsBuilder/Forms/FormMain.resx
+++ b/TranslationsBuilder/Forms/FormMain.resx
@@ -1,4 +1,64 @@
-
+
+
+
diff --git a/TranslationsBuilder/GlobalConstants.cs b/TranslationsBuilder/GlobalConstants.cs
index 576aacd..982b286 100644
--- a/TranslationsBuilder/GlobalConstants.cs
+++ b/TranslationsBuilder/GlobalConstants.cs
@@ -9,8 +9,8 @@ namespace TranslationsBuilder {
class GlobalConstants {
- public const string VersionNumber = "2.2";
- public const string ApplicationName = "Translations Builder";
+ public const string VersionNumber = "2.5";
+ public const string ApplicationName = "Power BI Translations Builder";
public const string ApplicationTitle = ApplicationName + " | Version " + VersionNumber;
}
diff --git a/TranslationsBuilder/Models/SupportedLanguages.cs b/TranslationsBuilder/Models/SupportedLanguages.cs
index 7b6b4ab..4d8120b 100644
--- a/TranslationsBuilder/Models/SupportedLanguages.cs
+++ b/TranslationsBuilder/Models/SupportedLanguages.cs
@@ -386,7 +386,7 @@ static public Dictionary GetCommonLangauges() {
}
static public Language GetLanguageFromFullName(string FullName) {
- return AllLanguages.First(languageEntry => languageEntry.Value.FullName == FullName).Value;
+ return AllLanguages.FirstOrDefault(languageEntry => languageEntry.Value.FullName == FullName).Value;
}
static public string[] GetLanguageGroups() {
diff --git a/TranslationsBuilder/Services/ExcelUtilities.cs b/TranslationsBuilder/Services/ExcelUtilities.cs
index 14e8c72..a02957d 100644
--- a/TranslationsBuilder/Services/ExcelUtilities.cs
+++ b/TranslationsBuilder/Services/ExcelUtilities.cs
@@ -7,7 +7,7 @@ namespace TranslationsBuilder.Services {
class ExcelUtilities {
- public static void OpenCsvInExcel(string FilePath) {
+ public static void OpenInExcel(string FilePath) {
ProcessStartInfo startInfo = new ProcessStartInfo();
diff --git a/TranslationsBuilder/Services/TranslationsManager.cs b/TranslationsBuilder/Services/TranslationsManager.cs
index 9051b3f..e0a29c6 100644
--- a/TranslationsBuilder/Services/TranslationsManager.cs
+++ b/TranslationsBuilder/Services/TranslationsManager.cs
@@ -16,6 +16,7 @@
using System.Diagnostics;
using System.Linq;
using Newtonsoft.Json.Linq;
+using ClosedXML.Excel;
namespace TranslationsBuilder.Services {
@@ -251,18 +252,19 @@ public static List GetTableRows(Table table, Culture defaultLanguage,
}
rows.Add(captionRowValues.ToArray());
- if (!string.IsNullOrEmpty(table.Description)) {
- List descriptionRowValues = new List {
- "Table",
- "Description",
- table.Name,
- defaultLanguage.ObjectTranslations[table, TranslatedProperty.Description]?.Value ?? table.Name
- };
- foreach (var language in translationSet.SecondaryLanguages) {
- descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[table, TranslatedProperty.Description]?.Value);
- }
- rows.Add(descriptionRowValues.ToArray());
+ // Always add row for Description
+
+ List descriptionRowValues = new List {
+ "Table",
+ "Description",
+ table.Name,
+ defaultLanguage.ObjectTranslations[table, TranslatedProperty.Description]?.Value ?? table.Name
+ };
+ foreach (var language in translationSet.SecondaryLanguages) {
+ descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[table, TranslatedProperty.Description]?.Value);
}
+ rows.Add(descriptionRowValues.ToArray());
+
return rows;
}
@@ -292,14 +294,14 @@ public static List GetColumnRows(Table table, Column column, Culture d
displayFoldersForTable.Add(column.DisplayFolder);
}
- if (!string.IsNullOrEmpty(column.Description)) {
- List descriptionRowValues = new List { "Column", "Description", $"{table.Name}[{column.Name}]", defaultLanguage.ObjectTranslations[column, TranslatedProperty.Description]?.Value };
- foreach (var language in translationSet.SecondaryLanguages) {
- descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[column, TranslatedProperty.Description]?.Value);
- }
- rows.Add(descriptionRowValues.ToArray());
+ // Always add row for Description
+
+ List descriptionRowValues = new List { "Column", "Description", $"{table.Name}[{column.Name}]", defaultLanguage.ObjectTranslations[column, TranslatedProperty.Description]?.Value };
+ foreach (var language in translationSet.SecondaryLanguages) {
+ descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[column, TranslatedProperty.Description]?.Value);
}
-
+ rows.Add(descriptionRowValues.ToArray());
+
return rows;
}
@@ -328,14 +330,14 @@ public static List GetMeasureRows(Table table, Measure measure, Cultur
displayFoldersForTable.Add(measure.DisplayFolder);
}
- if (!string.IsNullOrEmpty(measure.Description)) {
- List descriptionRowValues = new List { "Measure", "Description", $"{table.Name}[{measure.Name}]{measure.Name}", defaultLanguage.ObjectTranslations[measure, TranslatedProperty.Description]?.Value };
- foreach (var language in translationSet.SecondaryLanguages) {
- descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[measure, TranslatedProperty.Description]?.Value);
- }
- rows.Add(descriptionRowValues.ToArray());
+ // Always add row for Description
+
+ List descriptionRowValues = new List { "Measure", "Description", $"{table.Name}[{measure.Name}]{measure.Name}", defaultLanguage.ObjectTranslations[measure, TranslatedProperty.Description]?.Value };
+ foreach (var language in translationSet.SecondaryLanguages) {
+ descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[measure, TranslatedProperty.Description]?.Value);
}
-
+ rows.Add(descriptionRowValues.ToArray());
+
return rows;
}
@@ -381,16 +383,14 @@ public static List GetHierarchyRows(Table table, Hierarchy hierarchy,
rows.Add(levelCaptionRowValues.ToArray());
}
-
-
- if (!string.IsNullOrEmpty(hierarchy.Description)) {
- List descriptionRowValues = new List { "Hierarchy", "Description", $"{table.Name}[{hierarchy.Name}]", defaultLanguage.ObjectTranslations[hierarchy, TranslatedProperty.Description]?.Value };
- foreach (var language in translationSet.SecondaryLanguages) {
- descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[hierarchy, TranslatedProperty.Description]?.Value);
- }
- rows.Add(descriptionRowValues.ToArray());
+ // Always add row for Description
+
+ List descriptionRowValues = new List { "Hierarchy", "Description", $"{table.Name}[{hierarchy.Name}]", defaultLanguage.ObjectTranslations[hierarchy, TranslatedProperty.Description]?.Value };
+ foreach (var language in translationSet.SecondaryLanguages) {
+ descriptionRowValues.Add(model.Cultures[language.LanguageId].ObjectTranslations[hierarchy, TranslatedProperty.Description]?.Value);
}
-
+ rows.Add(descriptionRowValues.ToArray());
+
return rows;
}
@@ -544,7 +544,7 @@ public static void PopulateDatasetObjectWithMachineTranslations(string ObjectTyp
MetadataObject DatasetObject = GetMetadataObject(ObjectType, PropertyName, ObjectName);
var DefaultTranslation = GetDefaultTranslation(ObjectName, ObjectType, PropertyName);
- SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, model.Culture, DefaultTranslation);
+ SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, model.Culture, DefaultTranslation, saveModel:true);
UpdateStatus(StatusCalback, model.Culture, ObjectName, DefaultTranslation, DefaultTranslation);
@@ -559,13 +559,13 @@ public static void PopulateDatasetObjectWithMachineTranslations(string ObjectTyp
foreach (string language in secondaryLanguages) {
var translation = TranslateContent(DefaultTranslation, language);
Culture culture = model.Cultures[language];
- SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, language, translation);
+ SetDatasetObjectTranslation(ObjectType, PropertyName, ObjectName, language, translation, saveModel:true);
UpdateStatus(StatusCalback, language, ObjectName, DefaultTranslation, translation);
}
}
- public static void PopulateEmptyTranslations(string CultureName, IStatusCalback StatusCalback = null) {
+ public static void PopulateEmptyTranslations(string CultureName, IStatusCalback StatusCalback = null) {
// add culture to data model if it doesn't already exist
if (!model.Cultures.ContainsName(CultureName)) {
@@ -704,101 +704,100 @@ public static void ExportModelAsBim() {
startInfo.FileName = "Notepad.exe";
startInfo.Arguments = filePath;
Process.Start(startInfo);
-
-
}
public static void ExportTranslations(string targetLanguage = null, bool OpenInExcel = true) {
- try {
- var translationsTable = GetTranslationsTable(targetLanguage);
-
- string linebreak = "\r\n";
-
- // set csv file headers
- string csv = string.Join(",", translationsTable.Headers) + linebreak;
-
- // add line for each row
- foreach (var row in translationsTable.Rows) {
- csv += string.Join(",", row) + linebreak;
- }
+ try
+ {
+ // Build output file path
DirectoryInfo path = Directory.CreateDirectory(AppSettings.TranslationsOutboxFolderPath);
string filePath;
- if (targetLanguage == null) {
- filePath = path + @"/" + DatasetName + "-Translations-Master.csv";
+ if (targetLanguage == null)
+ {
+ filePath = path + @"/" + DatasetName + "-Translations-Master.xlsx";
}
- else {
+ else
+ {
string targetLanguageDisplayName = SupportedLanguages.AllLanguages[targetLanguage].DisplayName;
- filePath = path + @"/" + DatasetName + "-Translations-" + targetLanguageDisplayName + ".csv";
+ filePath = path + @"/" + DatasetName + "-Translations-" + targetLanguageDisplayName + ".xlsx";
}
- StreamWriter writer = new StreamWriter(File.Open(filePath, FileMode.Create), Encoding.UTF8);
- writer.Write(csv);
- writer.Flush();
- writer.Dispose();
+ // Save to Excel
- //StreamWriter writerJson = new StreamWriter(File.Open(filePath.Replace(".csv", ".json"), FileMode.Create), Encoding.UTF8);
- //writerJson.Write(System.Text.Json.JsonSerializer.Serialize(translationsTable));
- //writerJson.Flush();
- //writerJson.Dispose();
+ TranslationsTable translationsTable = GetTranslationsTable(targetLanguage);
- if (OpenInExcel) {
+ WriteTranslationsTableToExcel(filePath, translationsTable);
+
+ if (OpenInExcel)
+ {
string excelFilePath = @"""" + filePath + @"""";
- ExcelUtilities.OpenCsvInExcel(excelFilePath);
+ ExcelUtilities.OpenInExcel(excelFilePath);
}
-
}
catch (Exception ex) {
UserInteraction.PromptUserWithError(ex);
}
-
-
}
-
+
public static void ExportAllTranslationSheets(bool OpenInExcel = false) {
try {
-
- string linebreak = "\r\n";
-
+ DirectoryInfo path = Directory.CreateDirectory(AppSettings.TranslationsOutboxFolderPath);
+
foreach (var culture in model.Cultures) {
if (culture.Name != model.Culture) {
string targetLanguage = culture.Name;
var translationsTable = GetTranslationsTable(targetLanguage);
- string csv = string.Join(",", translationsTable.Headers) + linebreak;
-
- // add line for each row
- foreach (var row in translationsTable.Rows) {
- csv += string.Join(",", row) + linebreak;
- }
-
- DirectoryInfo path = Directory.CreateDirectory(AppSettings.TranslationsOutboxFolderPath);
string targetLanguageDisplayName = SupportedLanguages.AllLanguages[targetLanguage].DisplayName;
- string filePath = path + @"/" + DatasetName + "-Translations-" + targetLanguageDisplayName + ".csv";
-
- StreamWriter writer = new StreamWriter(File.Open(filePath, FileMode.Create), Encoding.UTF8);
- writer.Write(csv);
- writer.Flush();
- writer.Dispose();
+ string filePath = path + @"/" + DatasetName + "-Translations-" + targetLanguageDisplayName + ".xlsx";
+ WriteTranslationsTableToExcel(filePath, translationsTable);
+
if (OpenInExcel) {
string excelFilePath = @"""" + filePath + @"""";
- ExcelUtilities.OpenCsvInExcel(excelFilePath);
+ ExcelUtilities.OpenInExcel(excelFilePath);
}
-
}
}
-
}
catch (Exception ex) {
UserInteraction.PromptUserWithError(ex);
}
+ }
+
+ private static void WriteTranslationsTableToExcel(string filePath, TranslationsTable translationsTable)
+ {
+ using (var workbook = new XLWorkbook())
+ {
+ var worksheet = workbook.Worksheets.Add("Translations");
+
+ for (int col = 0; col < translationsTable.Headers.Length; ++col)
+ {
+ worksheet.Cell(1, col + 1).Value = translationsTable.Headers[col];
+ }
+
+ for (int row = 0; row < translationsTable.Rows.Count; ++row)
+ {
+ string[] curRow = translationsTable.Rows[row];
+
+ for (int col = 0; col < curRow.Length; ++col)
+ {
+ worksheet.Cell(row + 2, col + 1).Value = curRow[col];
+ }
+ }
+
+ var range = worksheet.Range(1, 1, translationsTable.Rows.Count + 1, translationsTable.Headers.Length);
+ var table = range.CreateTable();
+ worksheet.Columns().AdjustToContents();
+ workbook.SaveAs(filePath);
+ }
}
private static string GetTableName(string ObjectName) {
@@ -809,6 +808,10 @@ private static string GetChildName(string ObjectName) {
return ObjectName.Substring(ObjectName.IndexOf("[") + 1, (ObjectName.IndexOf("]") - ObjectName.IndexOf("[") - 1));
}
+ private static string GetDisplayFolder(string ObjectName) {
+ return ObjectName.Substring(ObjectName.IndexOf("]") + 1, ObjectName.Length - ObjectName.IndexOf("]") - 1);
+ }
+
private static string GetLevelName(string ObjectName) {
return ObjectName.Substring(ObjectName.IndexOf("]") + 1, ObjectName.Length - ObjectName.IndexOf("]") - 1);
}
@@ -819,7 +822,7 @@ public static MetadataObject GetMetadataObject(string ObjectType, string Propert
// display folder translations for child columns, measures and hierchies
if (ObjectType.Equals("Table") && PropertyName.Equals("DisplayFolder")) { return null; }
- if (ObjectType.Equals("Table") && PropertyName.Equals("Caption")) {
+ if (ObjectType.Equals("Table") && (PropertyName.Equals("Caption") || PropertyName.Equals("Description"))) {
return model.Tables[ObjectName];
}
else {
@@ -845,7 +848,8 @@ public static MetadataObject GetMetadataObject(string ObjectType, string Propert
public static bool EnsureMetadataObjectExists(string ObjectType, string ObjectName) {
if (ObjectType.Equals("Table")) {
- return model.Tables.Contains(ObjectName);
+ string useTableName = ObjectName.IndexOf("[") != -1 ? GetTableName(ObjectName) : ObjectName; // Display Folder ObjectName format: D_TEMPS[ID_DATE]Date
+ return model.Tables.Contains(useTableName);
}
else {
string tableName = GetTableName(ObjectName);
@@ -888,7 +892,7 @@ public static bool EnsureMetadataObjectExists(string ObjectType, string ObjectNa
}
}
- public static void SetDatasetObjectTranslation(string ObjectType, string PropertyName, string ObjectName, string TargetLanguage, string TranslatedValue) {
+ public static void SetDatasetObjectTranslation(string ObjectType, string PropertyName, string ObjectName, string TargetLanguage, string TranslatedValue, bool saveModel) {
MetadataObject targetObject = TranslationsManager.GetMetadataObject(ObjectType, PropertyName, ObjectName);
@@ -910,19 +914,20 @@ public static void SetDatasetObjectTranslation(string ObjectType, string Propert
}
- model.SaveChanges();
-
+ if (saveModel) {
+ model.SaveChanges();
+ }
}
public static void UpdateDisplayFolderForTable(string ObjectName, string TargetLanguage, string TranslatedValue) {
string tableName = GetTableName(ObjectName);
- string folderName = GetChildName(ObjectName);
+ string folderName = GetDisplayFolder(ObjectName);
Table table = model.Tables[tableName];
- foreach (Column column in table.Columns) {
+ foreach (Column column in table.Columns.Where(c => c.Type != ColumnType.RowNumber)) { // Important : Skip RowNumber columns or it will fail
if (column.DisplayFolder.Equals(folderName)) {
model.Cultures[TargetLanguage].ObjectTranslations.SetTranslation(column, TranslatedProperty.DisplayFolder, TranslatedValue);
}
@@ -957,7 +962,11 @@ public static string GetDefaultTranslation(string FullObjectName, string ObjectT
break;
};
- var customizedDefaultTranslation = model.Cultures[model.Culture].ObjectTranslations[targetObject, PropertyType]?.Value;
+ string customizedDefaultTranslation = null;
+
+ if (targetObject != null) { // FS: Always null for DisplayFolder
+ customizedDefaultTranslation = model.Cultures[model.Culture].ObjectTranslations[targetObject, PropertyType]?.Value;
+ }
if (!string.IsNullOrEmpty(customizedDefaultTranslation)) {
return customizedDefaultTranslation;
@@ -995,54 +1004,75 @@ public static string GetDefaultTranslationFromObjectName(string FullObjectName,
public static void ImportTranslations(string filePath) {
try {
-
- string linebreak = "\r\n";
-
- FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
- StreamReader reader = new StreamReader(stream);
- var lines = reader.ReadToEnd().Trim().Split(linebreak);
- var headers = lines[0].Split(",");
-
- var cultureCount = headers.Length - 3;
- var culturesList = new List();
-
- for (int columnNumber = 3; (columnNumber < headers.Length); columnNumber++) {
- var language = SupportedLanguages.GetLanguageFromFullName(headers[columnNumber]);
- culturesList.Add(language.LanguageId);
- }
-
- foreach (string cultureName in culturesList) {
- if (!model.Cultures.Contains(cultureName)) {
- model.Cultures.Add(new Culture { Name = cultureName });
- }
- }
-
- // enumerate through lines in CSV data
- for (int lineNumber = 1; lineNumber <= lines.Length - 1; lineNumber++) {
- var row = lines[lineNumber];
- var rowValues = row.Split(",");
- string objectType = rowValues[0];
- string propertyName = rowValues[1];
- string objectName = rowValues[2];
- // enumerate across language columns
- for (int columnNumber = 3; (columnNumber < headers.Length); columnNumber++) {
- string targetLanguage = SupportedLanguages.GetLanguageFromFullName(headers[columnNumber]).LanguageId;
- string translatedValue = rowValues[columnNumber];
- if (!string.IsNullOrEmpty(translatedValue) && TranslationsManager.EnsureMetadataObjectExists(objectType, objectName)) {
- TranslationsManager.SetDatasetObjectTranslation(objectType, propertyName, objectName, targetLanguage, translatedValue);
+ Cursor.Current = Cursors.WaitCursor;
+
+ using (var workbook = new XLWorkbook(filePath))
+ {
+ var worksheet = workbook.Worksheets.FirstOrDefault();
+
+ if (worksheet != null)
+ {
+ // Make sure cultures are defined in the model
+
+ int columnCount = worksheet.CellsUsed().Max(cell => cell.Address.ColumnNumber);
+
+ var cultureCount = columnCount - 3;
+
+ for (int col = 3; col < columnCount; ++col)
+ {
+ string curLanguage = worksheet.Cell(1, col + 1).Value.GetText();
+ var language = SupportedLanguages.GetLanguageFromFullName(curLanguage);
+
+ if (language != null)
+ {
+ if (!model.Cultures.Contains(language.LanguageId))
+ {
+ model.Cultures.Add(new Culture { Name = language.LanguageId });
+ }
+ }
}
+
+ // Scan rows
+
+ int rowCount = worksheet.CellsUsed().Max(cell => cell.Address.RowNumber);
+
+ for (int row = 1; row < rowCount; ++row)
+ {
+ string objectType = worksheet.Cell(row + 1, 1).Value.GetText();
+ string propertyName = worksheet.Cell(row + 1, 2).Value.GetText();
+ string objectName = worksheet.Cell(row + 1, 3).Value.GetText();
+
+ for (int columnNumber = 3; columnNumber < columnCount; ++columnNumber)
+ {
+ string curLanguage = worksheet.Cell(1, columnNumber + 1).Value.GetText();
+ var language = SupportedLanguages.GetLanguageFromFullName(curLanguage);
+
+ if (language != null)
+ {
+ string targetLanguage = language.LanguageId;
+ var curValue = worksheet.Cell(row + 1, columnNumber + 1).Value;
+
+ string translatedValue = !curValue.IsBlank ? curValue.GetText() : String.Empty;
+
+ if (!string.IsNullOrEmpty(translatedValue) && TranslationsManager.EnsureMetadataObjectExists(objectType, objectName))
+ {
+ TranslationsManager.SetDatasetObjectTranslation(objectType, propertyName, objectName, targetLanguage, translatedValue, saveModel:false);
+ }
+ }
+ }
+ }
+
+ model.SaveChanges();
}
}
-
- // close file and release resources
- reader.Close();
- stream.Close();
-
}
catch (Exception ex) {
UserInteraction.PromptUserWithError(ex);
}
-
+ finally
+ {
+ Cursor.Current = Cursors.Default;
+ }
}
public static void ImportLocalizedLabels(string filePath) {
diff --git a/TranslationsBuilder/TranslationsBuilder.csproj b/TranslationsBuilder/TranslationsBuilder.csproj
index 7eb4281..80b17e3 100644
--- a/TranslationsBuilder/TranslationsBuilder.csproj
+++ b/TranslationsBuilder/TranslationsBuilder.csproj
@@ -2,7 +2,7 @@
WinExe
- net6.0-windows
+ net8.0-windows7.0
true
Translations Builder
Resources\TranslationsBuilder.ico
@@ -14,6 +14,7 @@
+
diff --git a/TranslationsBuilderInstaller/TranslationsBuilderInstaller.vdproj b/TranslationsBuilderInstaller/TranslationsBuilderInstaller.vdproj
index ec39d33..414a9b1 100644
--- a/TranslationsBuilderInstaller/TranslationsBuilderInstaller.vdproj
+++ b/TranslationsBuilderInstaller/TranslationsBuilderInstaller.vdproj
@@ -95,10 +95,10 @@
"Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
"ProductCode" = "8:.NETFramework,Version=v4.7.2"
}
- "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.NetCore.DesktopRuntime.6.0.x64"
+ "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.NetCore.DesktopRuntime.8.0.x64"
{
- "Name" = "8:.NET Desktop Runtime 6.0.11 (x64)"
- "ProductCode" = "8:Microsoft.NetCore.DesktopRuntime.6.0.x64"
+ "Name" = "8:.NET Desktop Runtime 8.0.3 (x64)"
+ "ProductCode" = "8:Microsoft.NetCore.DesktopRuntime.8.0.x64"
}
}
}
@@ -225,7 +225,7 @@
}
"{3C67513D-01DD-4637-8A68-80971EB9504F}:_7CBF58AB6A584CE8AD83661C46AFB597"
{
- "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]"
+ "DefaultLocation" = "8:[ProgramFiles64Folder]\\[ProductName]"
"Name" = "8:#1925"
"AlwaysCreate" = "11:FALSE"
"Condition" = "8:"
@@ -250,25 +250,25 @@
"Product"
{
"Name" = "8:Microsoft Visual Studio"
- "ProductName" = "8:Translations Builder"
- "ProductCode" = "8:{9738FFA7-A9B3-4F1B-A82C-1C35DBB1A7AE}"
- "PackageCode" = "8:{04BFABB6-F527-4F47-B55B-D8337BAA4145}"
+ "ProductName" = "8:Power BI Translations Builder"
+ "ProductCode" = "8:{1D5AAC9B-98A6-48D6-BD12-2981837710A5}"
+ "PackageCode" = "8:{523FCE49-2881-4AE8-ACBA-794615B08C5A}"
"UpgradeCode" = "8:{3024AE64-35C9-44A9-B343-EB1849B294C8}"
"AspNetVersion" = "8:"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:2.0"
- "Manufacturer" = "8:Power BI Dev Camp"
+ "ProductVersion" = "8:2.5"
+ "Manufacturer" = "8:samsonfr"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
- "Title" = "8:Translations Builder Installer"
+ "Title" = "8:Power BI Translations Builder Installer"
"Subject" = "8:"
- "ARPCONTACT" = "8:Power BI Dev Camp"
+ "ARPCONTACT" = "8:samsonfr"
"Keywords" = "8:"
"ARPCOMMENTS" = "8:"
- "ARPURLINFOABOUT" = "8:https://www.powerbidevcamp.net"
+ "ARPURLINFOABOUT" = "8:https://github.com/samsonfr/TranslationsBuilder"
"ARPPRODUCTICON" = "8:_AC6C2C4CCE8249D1B985C0B00D412695"
"ARPIconIndex" = "3:0"
"SearchPath" = "8:"
@@ -773,7 +773,7 @@
{
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_87A722ED67EE4E37AAA9168D104167BC"
{
- "SourcePath" = "8:..\\TranslationsBuilder\\obj\\Release\\net6.0-windows\\apphost.exe"
+ "SourcePath" = "8:..\\TranslationsBuilder\\obj\\Release\\net8.0-windows7.0\\apphost.exe"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_7CBF58AB6A584CE8AD83661C46AFB597"