feat(i18n): canonical strings, data extraction and validation (phase 2)
Implement Phase 2 of i18n spec: - Extract UI interface strings to messages/pt.json across 15 namespaces - Extract canonical data files to data/pt/ (series, frameworks, conexoes) - Create lib/data/pt/ modules (glossario, diagnostico, componentes, topicos) - Implement lib/data/index.js async data loaders by locale - Add automated check:i18n script to validate key parity and enforce no-book rules Co-Authored-By: Antigravity <noreply@google.com>
This commit is contained in:
1 parent
83c0ba3e74
commit
fb59015fca
22 files changed
+12766
-2
No files matched your search
@@ -0,0 +1,64 @@
|
||||
/**
|
||||
* Carregadores de dados organizados por locale (seção 6.2 da spec).
|
||||
* Suporta pt, en, es, fr, de, zh-CN com fallback para pt.
|
||||
*/
|
||||
|
||||
export async function getSeries(locale = "pt") {
|
||||
try {
|
||||
return (await import(`@/data/${locale}/series.json`)).default;
|
||||
} catch {
|
||||
return (await import("@/data/pt/series.json")).default;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getFrameworks(locale = "pt") {
|
||||
try {
|
||||
return (await import(`@/data/${locale}/frameworks.json`)).default;
|
||||
} catch {
|
||||
return (await import("@/data/pt/frameworks.json")).default;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getConexoes(key, locale = "pt") {
|
||||
try {
|
||||
return (await import(`@/data/${locale}/conexoes/${key}.json`)).default;
|
||||
} catch {
|
||||
try {
|
||||
return (await import(`@/data/pt/conexoes/${key}.json`)).default;
|
||||
} catch {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function getGlossario(locale = "pt") {
|
||||
try {
|
||||
return await import(`@/lib/data/${locale}/glossario.js`);
|
||||
} catch {
|
||||
return await import("@/lib/data/pt/glossario.js");
|
||||
}
|
||||
}
|
||||
|
||||
export async function getDiagnostico(locale = "pt") {
|
||||
try {
|
||||
return await import(`@/lib/data/${locale}/diagnostico.js`);
|
||||
} catch {
|
||||
return await import("@/lib/data/pt/diagnostico.js");
|
||||
}
|
||||
}
|
||||
|
||||
export async function getComponentes(locale = "pt") {
|
||||
try {
|
||||
return await import(`@/lib/data/${locale}/componentes.js`);
|
||||
} catch {
|
||||
return await import("@/lib/data/pt/componentes.js");
|
||||
}
|
||||
}
|
||||
|
||||
export async function getTopicos(locale = "pt") {
|
||||
try {
|
||||
return await import(`@/lib/data/${locale}/topicos.js`);
|
||||
} catch {
|
||||
return await import("@/lib/data/pt/topicos.js");
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user