fix(i18n): localize application workflows

Use stable checklist and interview keys for system copy while preserving user-authored content. Localize creation-tab errors, language selectors, match bands, dates, and selected-CV context.
This commit is contained in:
cesnimda
2026-08-29 16:51:59 +02:00
parent 9edcbfc5de
commit a704c75440
11 changed files with 173 additions and 37 deletions
@@ -420,4 +420,27 @@ public sealed class ApplicationIntelligenceTests
Assert.Contains("C#", match.MatchedSkills);
Assert.DoesNotContain(match.MissingSkills, value => value.Equals("utvikler", StringComparison.OrdinalIgnoreCase));
}
[Fact]
public async Task Match_reports_language_mismatch_when_no_translation_is_available()
{
var (db, intelligence, _) = New("user-1");
await using var _d = db;
var job = await SeedJobAsync(db, "user-1", j =>
{
j.Description = "Vi søker en utvikler som kan bygge robuste systemer og gode tjenester.";
j.DescriptionLanguage = null; // Exercise detector fallback for manually created jobs.
j.TranslatedDescription = null;
});
await SeedProfileAsync(db, "user-1");
await AttachCvAsync(db, "user-1", job.Id, new CvVariantSettings { Language = "en" });
var match = await intelligence.MatchAsync("user-1", job.Id, default);
Assert.NotNull(match);
Assert.Equal("nb", match!.JobLanguage);
Assert.Equal("en", match.CvLanguage);
Assert.True(match.LanguageMismatch);
Assert.False(match.UsedTranslatedJobDescription);
}
}