Skip to content

Commit 95992db

Browse files
committed
Fix CSV parsing
1 parent 03a9069 commit 95992db

19 files changed

Lines changed: 10523 additions & 10778 deletions

addons/learn_pot_extractor/LearnCSVExtractor.gd renamed to addons/learn_pot_extractor/CSVTranslationParser.gd

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -20,52 +20,17 @@ func _parse_file(path: String) -> Array[PackedStringArray]:
2020

2121
var extraction_data: ExtractionData = _extraction_data[path]
2222

23-
var csv_text := FileAccess.open(path, FileAccess.READ).get_as_text()
24-
25-
var lines := csv_text.split("\n")
23+
var csv_file := FileAccess.open(path, FileAccess.READ)
2624
var blocks := []
27-
for l in range(1 if extraction_data._has_header else 0, lines.size()):
28-
var line_text := lines[l]
29-
var column_texts := PackedStringArray()
30-
31-
var total_columns := extraction_data._total_columns
32-
column_texts.resize(total_columns)
33-
34-
for i in total_columns:
35-
var start_idx := 0
36-
var next_comma_idx := -1
37-
var next_entry_idx := -1
38-
39-
if line_text.begins_with('"'):
40-
start_idx = 1
41-
if i < total_columns-1:
42-
next_comma_idx = line_text.find('",')
43-
next_entry_idx = next_comma_idx+2
44-
else:
45-
next_comma_idx = line_text.length()-start_idx
46-
next_entry_idx = 0
47-
else:
48-
if i < total_columns-1:
49-
next_comma_idx = line_text.find(",")
50-
next_entry_idx = next_comma_idx+1
51-
else:
52-
next_comma_idx = line_text.length()-start_idx
53-
next_entry_idx = 0
54-
55-
column_texts[i] = line_text.substr(start_idx, next_comma_idx - start_idx)
56-
line_text = line_text.substr(next_entry_idx)
57-
58-
blocks.push_back(column_texts)
25+
while not csv_file.eof_reached():
26+
blocks.append_array(csv_file.get_csv_line())
5927

60-
var ret: Array[PackedStringArray]
61-
62-
for block: PackedStringArray in blocks:
28+
var ret: Array[PackedStringArray] = []
29+
for l in range(0, blocks.size(), extraction_data._total_columns):
6330
for data: ExtractionTranslationData in extraction_data._translations:
64-
var prefix := ""
65-
if extraction_data._prefix_column >= 0:
66-
prefix = block[0]
67-
ret.push_back(PackedStringArray([block[data._column]]))
68-
31+
if l + data._column < blocks.size():
32+
ret.push_back(PackedStringArray([blocks[l + data._column]]))
33+
6934
return ret
7035

7136

File renamed without changes.

addons/learn_pot_extractor/LearnPOTExtractor.gd

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const DOCUMENTATION_PATH := "res://course/documentation.csv"
1212
const SUPPLEMENTARY_POT_PATH := "res://i18n/supplementary.pot"
1313

1414
const BBCODE_TRANSLATION_PARSER := preload("BBCodeTranslationParser.gd")
15-
const CSV_TRANSLATION_PARSER := preload("LearnCSVExtractor.gd")
15+
const CSV_TRANSLATION_PARSER := preload("CSVTranslationParser.gd")
1616
const LESSON_BUILDER := preload("TranslatedLessonBuilder.gd")
1717
const ENGINE_CALLER := preload("EngineCaller.gd")
1818
const SHARED := preload("Shared.gd")
@@ -55,6 +55,7 @@ func _generate_all_pot_files() -> void:
5555
await _generate_course_pot()
5656
await _generate_application_pot()
5757
await _generate_supplemantary_pots()
58+
await _slipstream_and_clean()
5859

5960

6061
# ⚠ Only use if you know what you're doing ⚠

i18n/cs/supplementary.po

Lines changed: 625 additions & 663 deletions
Large diffs are not rendered by default.

i18n/da/supplementary.po

Lines changed: 677 additions & 676 deletions
Large diffs are not rendered by default.

i18n/de/supplementary.po

Lines changed: 625 additions & 663 deletions
Large diffs are not rendered by default.

i18n/es/supplementary.po

Lines changed: 678 additions & 677 deletions
Large diffs are not rendered by default.

i18n/fr/supplementary.po

Lines changed: 632 additions & 667 deletions
Large diffs are not rendered by default.

i18n/it/supplementary.po

Lines changed: 625 additions & 663 deletions
Large diffs are not rendered by default.

i18n/ja/supplementary.po

Lines changed: 665 additions & 671 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)