VALID_WORDS EnglishImportFileReader.WordResult(rows=[EnglishImportFileReader.WordRow(rowNo=2, word=a, wordNormalized=a), EnglishImportFileReader.WordRow(rowNo=2, word=an, wordNormalized=an), EnglishImportFileReader.WordRow(rowNo=4, word=China, wordNormalized=china), EnglishImportFileReader.WordRow(rowNo=6, word=be, wordNormalized=be)], invalid=[EnglishImportFileReader.InvalidItem(rowNo=3, identifier=an, reason=文件内与第 2 行归一化后重复，跳过), EnglishImportFileReader.InvalidItem(rowNo=5, identifier=china, reason=文件内与第 4 行归一化后重复，跳过)])
VALID_PHRASES EnglishImportFileReader.PhraseResult(rows=[EnglishImportFileReader.PhraseRow(rowNo=3, phrase=look up, phraseNormalized=look up, translation=查找
抬头, verb=look, variants=[looks up, looked up], variantsNormalized=[looks up, looked up]), EnglishImportFileReader.PhraseRow(rowNo=4, phrase=get up, phraseNormalized=get up, translation=起床, verb=get, variants=[got up, gotten up], variantsNormalized=[got up, gotten up])], invalid=[])
UNCLOSED_QUOTE EnglishImportFileReader.PhraseResult(rows=[EnglishImportFileReader.PhraseRow(rowNo=4, phrase=look up, phraseNormalized=look up, translation=查找
get up,起床, verb=, variants=[], variantsNormalized=[])], invalid=[])
MIXED_INVALID_VARIANT EnglishImportFileReader.PhraseResult(rows=[EnglishImportFileReader.PhraseRow(rowNo=2, phrase=look up, phraseNormalized=look up, translation=查找, verb=, variants=[looks up, looked up], variantsNormalized=[looks up, looked up]), EnglishImportFileReader.PhraseRow(rowNo=3, phrase=get up, phraseNormalized=get up, translation=起床, verb=, variants=[got up], variantsNormalized=[got up])], invalid=[EnglishImportFileReader.InvalidItem(rowNo=3, identifier=get up, reason=变形非法：起床)])
PARAM {"fileUri":"https://example.invalid/a.csv","limit":0} => fileUri=https://example.invalid/a.csv, dryRun=false, limit=0, appliesLimit=false
PARAM {"fileUri":"https://example.invalid/a.csv","limit":-1} => fileUri=https://example.invalid/a.csv, dryRun=false, limit=-1, appliesLimit=false
PARAM {"fileUri":"https://example.invalid/a.csv","limit":10001} => fileUri=https://example.invalid/a.csv, dryRun=false, limit=10001, appliesLimit=true
PARAM {"fileUri":"https://example.invalid/a.csv","limit":20} => fileUri=https://example.invalid/a.csv, dryRun=false, limit=20, appliesLimit=true
SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
