Add localization test project, fix empty rows in general

This commit is contained in:
Lucien Greathouse 2019-04-04 11:38:34 -07:00
parent 147545e2f8
commit 1b749176fc
6 changed files with 114 additions and 9 deletions

View file

@ -520,12 +520,32 @@ struct LocalizationEntryCsv {
impl LocalizationEntryCsv {
fn to_json(self) -> LocalizationEntryJson {
fn none_if_empty(value: String) -> Option<String> {
if value.is_empty() {
None
} else {
Some(value)
}
}
let key = none_if_empty(self.key);
let context = none_if_empty(self.context);
let example = none_if_empty(self.example);
let source = none_if_empty(self.source);
let mut values = HashMap::with_capacity(self.values.len());
for (key, value) in self.values.into_iter() {
if !key.is_empty() {
values.insert(key, value);
}
}
LocalizationEntryJson {
key: self.key,
context: self.context,
example: self.example,
source: self.source,
values: self.values,
key,
context,
example,
source,
values,
}
}
}
@ -533,10 +553,18 @@ impl LocalizationEntryCsv {
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
struct LocalizationEntryJson {
key: String,
context: String,
example: String,
source: String,
#[serde(skip_serializing_if = "Option::is_none")]
key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
context: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
example: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
source: Option<String>,
values: HashMap<String, String>,
}

View file

@ -33,6 +33,7 @@ macro_rules! generate_snapshot_tests {
generate_snapshot_tests!(
empty,
localization,
multi_partition_game,
nested_partitions,
single_partition_game,

View file

@ -0,0 +1,6 @@
{
"name": "localization",
"tree": {
"$path": "src"
}
}

View file

@ -0,0 +1,53 @@
{
"name": "localization",
"class_name": "Folder",
"properties": {},
"children": [
{
"name": "empty-column-bug-147",
"class_name": "LocalizationTable",
"properties": {
"Contents": {
"Type": "String",
"Value": "[{\"key\":\"Language.Name\",\"source\":\"English\",\"values\":{}},{\"key\":\"Language.Region\",\"source\":\"United States\",\"values\":{}},{\"key\":\"Label.Thickness\",\"source\":\"Thickness\",\"values\":{}},{\"key\":\"Label.Opacity\",\"source\":\"Opacity\",\"values\":{}},{\"key\":\"Toolbar.Undo\",\"source\":\"Undo\",\"values\":{}},{\"key\":\"Toolbar.Redo\",\"source\":\"Redo\",\"values\":{}},{\"key\":\"Toolbar.Camera\",\"source\":\"Top-down camera\",\"values\":{}},{\"key\":\"Toolbar.Saves\",\"source\":\"Saved drawings\",\"values\":{}},{\"key\":\"Toolbar.Preferences\",\"source\":\"Settings\",\"values\":{}},{\"key\":\"Toolbar.Mode.Vector\",\"source\":\"Vector mode\",\"values\":{}},{\"key\":\"Toolbar.Mode.Pixel\",\"source\":\"Pixel mode\",\"values\":{}}]"
}
},
"children": [],
"metadata": {
"ignore_unknown_instances": false,
"source_path": "src/empty-column-bug-147.csv",
"project_definition": null
}
},
{
"name": "normal",
"class_name": "LocalizationTable",
"properties": {
"Contents": {
"Type": "String",
"Value": "[]"
}
},
"children": [],
"metadata": {
"ignore_unknown_instances": false,
"source_path": "src/normal.csv",
"project_definition": null
}
}
],
"metadata": {
"ignore_unknown_instances": false,
"source_path": "src",
"project_definition": [
"localization",
{
"class_name": null,
"children": {},
"properties": {},
"ignore_unknown_instances": null,
"path": "src"
}
]
}
}

View file

@ -0,0 +1,17 @@
,Key,Source,Context,Example
,,,,
Metadata,Language.Name,English,,
,Language.Region,United States,,
,,,,
Options,Label.Thickness,Thickness,,
,Label.Opacity,Opacity,,
,,,,
Toolbar,Toolbar.Undo,Undo,,
,Toolbar.Redo,Redo,,
,,,,
,Toolbar.Camera,Top-down camera,,
,Toolbar.Saves,Saved drawings,,
,Toolbar.Preferences,Settings,,
,,,,
,Toolbar.Mode.Vector,Vector mode,,
,Toolbar.Mode.Pixel,Pixel mode,,
1 Key Source Context Example
2
3 Metadata Language.Name English
4 Language.Region United States
5
6 Options Label.Thickness Thickness
7 Label.Opacity Opacity
8
9 Toolbar Toolbar.Undo Undo
10 Toolbar.Redo Redo
11
12 Toolbar.Camera Top-down camera
13 Toolbar.Saves Saved drawings
14 Toolbar.Preferences Settings
15
16 Toolbar.Mode.Vector Vector mode
17 Toolbar.Mode.Pixel Pixel mode