载入中...
搜索中...
未找到
LocalizationDocument.cpp
浏览该文件的文档.
11 for (size_t start = text.find('{'); start != std::string::npos; start = text.find('{', start + 1)) {
21void issue(LocalizationAnalysis& result, const char* rule, DiagnosticSeverity severity, const std::string& key,
38Result<void> LocalizationDocument::addRow(std::string key, std::string sourceText, std::string context) {
40 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.localization.invalid-source"),
43 return eve::editing::failed<void>(EditorStatus::Conflict, RuleId("editor.localization.duplicate-key"),
56 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.localization.key-not-found"),
66 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.localization.key-not-found"),
69 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.localization.invalid-variant"),
73 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.localization.invalid-voice-status"),
90LocalizationAnalysis LocalizationDocument::analyze(const std::vector<std::string>& requiredLocales,
106 issue(result, "editor.localization.missing-translation", DiagnosticSeverity::Error, key, locale,
113 issue(result, "editor.localization.placeholder-mismatch", DiagnosticSeverity::Error, key, locale,
118 issue(result, "editor.localization.orphan-voice-duration", DiagnosticSeverity::Warning, key, locale,
121 issue(result, "editor.localization.missing-voice-duration", DiagnosticSeverity::Warning, key, locale,
142 {"key", key}, {"context", row.context}, {"sourceText", row.sourceText}, {"variants", std::move(variants)}});
153 return eve::editing::failed<void>(EditorStatus::Unsupported, RuleId("editor.localization.invalid-snapshot"),
165 if (!key || !source || !context || !variants || !candidate.addRow(*key, *source, *context).ok())
166 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.localization.invalid-row"),
179 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.localization.invalid-variant"),
bool ok() const noexcept
Whether this result represents a non-failure outcome.
Definition Result.h:480
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
UI-neutral localization table with deterministic persistence and QA.
Definition LocalizationDocument.h:57
Result< void > loadSnapshot(const EditorValue &snapshot)
Atomically replace data from a validated persisted snapshot.
Definition LocalizationDocument.cpp:147
Result< void > setVariant(const std::string &key, std::string locale, LocalizationVariant variant)
Replace one locale variant, validating production metadata.
Definition LocalizationDocument.cpp:62
LocalizationAnalysis analyze(const std::vector< std::string > &requiredLocales, bool requireVoice=false) const
Analyze locale coverage, placeholders and optional voice requirements.
Definition LocalizationDocument.cpp:90
Result< void > removeRow(const std::string &key)
Remove a source key and all translated variants.
Definition LocalizationDocument.cpp:54
EditorValue snapshotValue() const
Capture deterministic data for conflict-safe document persistence.
Definition LocalizationDocument.cpp:132
std::vector< LocalizationRow > rows() const
Return rows in deterministic key order.
Definition LocalizationDocument.cpp:80
Result< void > addRow(std::string key, std::string sourceText, std::string context={})
Insert a unique source key.
Definition LocalizationDocument.cpp:38
Diagnostic ruleDiagnostic(eve::DiagnosticCode code, RuleId rule, DiagnosticSeverity severity, std::string message)
Build a common diagnostic carrying an open editing rule identity.
Definition EditingResult.h:25
@ InvalidArgument
Completeness analysis result with key/locale-scoped diagnostics.
Definition LocalizationDocument.h:50
std::vector< EditorDiagnostic > diagnostics
Definition LocalizationDocument.h:53
EditorStatus status
Definition LocalizationDocument.h:51
std::vector< LocalizationLocaleCoverage > locales
Definition LocalizationDocument.h:52
Aggregate production coverage for one locale.
Definition LocalizationDocument.h:41
int approved
Definition LocalizationDocument.h:46
std::string locale
Definition LocalizationDocument.h:42
int total
Definition LocalizationDocument.h:43
int voiced
Definition LocalizationDocument.h:45
int translated
Definition LocalizationDocument.h:44
One stable localization key and all locale variants.
Definition LocalizationDocument.h:33
One locale's editable translation and voice-production metadata.
Definition LocalizationDocument.h:25