-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathMetadataImport_Translations.cs
59 lines (49 loc) · 2.34 KB
/
MetadataImport_Translations.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var folderName = @"C:\Users\mikova\Desktop\Metadata"; //Update this to the folder that contains the Metadata Export text files
var fileName = @"\Translations.txt";
var Metadata = ReadFile(folderName+fileName);
// Split the file into rows by CR and LF characters:
var tsvRows = Metadata.Split(new[] {'\r','\n'},StringSplitOptions.RemoveEmptyEntries);
// Loop through all rows but skip the first one:
foreach(var row in tsvRows.Skip(1))
{
var tsvColumns = row.Split('\t'); // Assume file uses tabs as column separator
var objectName = tsvColumns[0];
var objectType = tsvColumns[1];
var tableName = tsvColumns[2];
var lang = tsvColumns[3];
var transobj = tsvColumns[4];
var transobjdesc = tsvColumns[5];
var transobjdf = tsvColumns[6];
// Add new translation language if it does not already exist
if (Model.Cultures.Where(a => a.Name == lang).Count() == 0)
{
Model.AddTranslation(lang);
}
// Add the translations for tables
if (objectType == "Table")
{
Model.Tables[tableName].TranslatedNames[lang] = transobj;
Model.Tables[tableName].TranslatedDescriptions[lang] = transobjdesc;
}
// Add the translations for columns
else if (objectType == "Column")
{
Model.Tables[tableName].Columns[objectName].TranslatedNames[lang] = transobj;
Model.Tables[tableName].Columns[objectName].TranslatedDescriptions[lang] = transobjdesc;
Model.Tables[tableName].Columns[objectName].TranslatedDisplayFolders[lang] = transobjdf;
}
// Add the translations for measures
else if (objectType == "Measure")
{
Model.Tables[tableName].Measures[objectName].TranslatedNames[lang] = transobj;
Model.Tables[tableName].Measures[objectName].TranslatedDescriptions[lang] = transobjdesc;
Model.Tables[tableName].Measures[objectName].TranslatedDisplayFolders[lang] = transobjdf;
}
// Add the translations for hierarchies
else if (objectType == "Hierarchy")
{
Model.Tables[tableName].Hierarchies[objectName].TranslatedNames[lang] = transobj;
Model.Tables[tableName].Hierarchies[objectName].TranslatedDescriptions[lang] = transobjdesc;
Model.Tables[tableName].Hierarchies[objectName].TranslatedDisplayFolders[lang] = transobjdf;
}
}