Webbplatsen på alla tio språken

Sajten var hårdkodad engelska medan diagnostikytan redan talade tio
språk. Nu hämtar hela den publika webben — startsidan, ansökan,
inloggningen, språksidan, navigationen och sidfoten — sin text ur
samma katalog som resten av produkten, under nytt prefix webb.
(153 nycklar × 10 språk).

Språkval på webben: besökarens eget val (väljare i sidfoten, sparat i
localStorage med minnesfallback för privat läge) → webbläsarens språk
→ engelska. Rangordningen bor kvar i valjSprak; ny modul
alva/webbsprak.ts bär bara lagring och React-kroken. Portalens länkar
står medvetet kvar på engelska — portalen är produkten och styrs av
konto och organisation, inte av ett besöksval i en sidfot.

Gränsen håller: ordmärket, utläsningen och fasnamnen är ALVA:s
struktur och står likadant i varje språk; lang-attributet följer
valet; språksidans förhandsvisning behåller egen väljare och utgår
från besökarens språk.

Test: startsidans hjälterad och faskort låses mot systemdefinitionen
(två källor för samma mening driver isär tyst), webbnycklarna krävs i
varje språk, och designtesterna jämför nu katalognycklar i stället för
strängar — starkare, eftersom samma nyckel är samma ord på alla språk.
Ny språkrunda mot den bakade artefakten: väljare, sidbyte,
webbläsarspråk och engelsk fallback, 11/11.

775 enhetstester, genomgång 4/4, portalspärr, integrationstest,
artefaktmätning, typkontroll och lint gröna.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
Claude
2026-08-06 22:38:18 +00:00
parent 83944f4962
commit 0068ef9844
18 changed files with 2168 additions and 223 deletions
+56
View File
@@ -0,0 +1,56 @@
// ALVA-SPEC-060 · Webbplatsens språk.
//
// Plattformen väljer språk ur konto → organisation → webbläsare. Den
// publika webbplatsen har inget konto och ingen organisation — där är
// kedjan besökarens eget val (sparat lokalt) → webbläsaren → engelska.
// Rangordningen ligger kvar i `valjSprak`, så att "hur språk väljs" bara
// finns implementerat på ett ställe.
//
// Valet lagras i localStorage men hålls också i minnet: en webbläsare i
// privat läge kan neka lagring, och då ska väljaren ändå fungera för
// sidvisningen i stället för att tyst göra ingenting.
import { useSyncExternalStore } from "react";
import { STANDARD, valjSprak } from "../../../services/gemensam/sprak/index.mjs";
const NYCKEL = "alva.webbsprak";
const lyssnare = new Set<() => void>();
let minne: string | undefined;
function lagratVal(): string | undefined {
try {
return localStorage.getItem(NYCKEL) ?? minne;
} catch {
return minne;
}
}
/** Webbplatsens språk just nu: eget val → webbläsare → engelska. */
export function webbSprak(): string {
const webblasare =
typeof navigator === "undefined" ? [] : (navigator.languages ?? [navigator.language]);
return valjSprak({ anvandare: lagratVal(), webblasare }) as string;
}
/** Sätter besökarens val och meddelar alla vyer som lyssnar. */
export function sattWebbSprak(kod: string): void {
minne = kod;
try {
localStorage.setItem(NYCKEL, kod);
} catch {
// Se filhuvudet: minnesvärdet bär valet när lagringen nekar.
}
for (const meddela of lyssnare) meddela();
}
/** React-krok: webbplatsens språk, med omritning vid byte. */
export function useWebbSprak(): string {
return useSyncExternalStore(
(meddela) => {
lyssnare.add(meddela);
return () => lyssnare.delete(meddela);
},
webbSprak,
() => STANDARD as string,
);
}
@@ -339,22 +339,30 @@ describe("ytor utan verklig funktion är märkta som demonstration", () => {
// En märkning som inte går att missförstå säger två saker: att ingenting
// sker, och vad läsaren ska göra i stället.
describe("demonstrationsmärkningen är entydig", () => {
// Texterna bor sedan flerspråkigheten i katalogen. Garantin är därför
// tvådelad: källtexten säger det som ska sägas, OCH sidan hämtar just
// den nyckeln — annars kan en riktig text stå oanvänd i katalogen.
const sida = (namn: string) => filer.find(([n]) => n.endsWith(`pages/alva/${namn}`))![1];
it("inloggningen säger vad besökaren ska göra", () => {
const kod = sida("LoggaIn.tsx");
expect(kod).toContain("Type anything");
expect(kod).toContain("no account is needed");
it("inloggningen säger vad besökaren ska göra", async () => {
const { EN } = await import("../../../../services/gemensam/sprak/en.mjs");
expect(EN["webb.login.demo"]).toContain("Type anything");
expect(EN["webb.login.demo"]).toContain("no account is needed");
expect(sida("LoggaIn.tsx")).toContain('t("webb.login.demo")');
});
it("ansökan säger att det inte finns någon mottagning", () => {
expect(sida("Ansokan.tsx")).toContain("there is no intake behind it yet");
it("ansökan säger att det inte finns någon mottagning", async () => {
const { EN } = await import("../../../../services/gemensam/sprak/en.mjs");
expect(EN["webb.ansokan.demo"]).toContain("there is no intake behind it yet");
expect(sida("Ansokan.tsx")).toContain('t("webb.ansokan.demo")');
});
it("beskrivningen av avsedd drift är märkt som avsedd, inte som gällande", () => {
it("beskrivningen av avsedd drift är märkt som avsedd, inte som gällande", async () => {
// Två meningar bredvid varandra, där den ena säger att inget händer
// och den andra beskriver en handläggningsprocess, upphäver varandra.
expect(sida("Ansokan.tsx")).toContain("Intended operation:");
const { EN } = await import("../../../../services/gemensam/sprak/en.mjs");
expect(EN["webb.ansokan.avsikt"]).toContain("Intended operation:");
expect(sida("Ansokan.tsx")).toContain('t("webb.ansokan.avsikt")');
});
it("ingen märkning hänvisar till något som läsaren inte kan nå", () => {
@@ -432,7 +440,7 @@ describe("portalen är stängd, eller uttryckligen en demonstration", () => {
expect(loggaIn).toContain("loggaInPlattform");
// Och skylten står kvar exakt när den ska: bara i det läge där
// inloggningen inte prövar något.
expect(loggaIn).toMatch(/!skarpt && \(\s*<Demonstration>/);
expect(loggaIn).toMatch(/!skarpt && (\(\s*)?<Demonstration>/);
});
it("fakturavyn visar organisationens egna fakturor mot en plattform", () => {
@@ -465,18 +473,22 @@ describe("inloggningen heter samma sak överallt", () => {
const start = readFileSync("src/pages/alva/Start.tsx", "utf8");
it("navigationens namn på inloggningen är det som används", () => {
const namn = ram.match(/\{ till: "\/alva\/logga-in", text: "([^"]+)" \}/)?.[1];
expect(namn).toBeTruthy();
// Varje länk till inloggningen på startsidan bär samma text.
// Sedan flerspråkigheten jämförs KATALOGNYCKLAR, inte strängar — det
// är starkare: samma nyckel är samma ord på vartenda språk, medan två
// nycklar med samma engelska text hade kunnat glida isär i en enda
// översättning.
const nyckel = ram.match(/\{ till: "\/alva\/logga-in", nyckel: "([^"]+)" \}/)?.[1];
expect(nyckel).toBeTruthy();
// Varje länk till inloggningen på startsidan bär samma nyckel.
//
// Mönstret tål attribut på länken. Första versionen gjorde inte det,
// och när <Link> fick en className matchade den noll knappar — testet
// slutade mäta i stället för att falla. Det enda som avslöjade det var
// kravet nedan på att den ska hitta NÅGOT, vilket är därför det står
// där och inte som en självklarhet.
const knappar = [...start.matchAll(/to="\/alva\/logga-in"[^>]*>\s*<Knapp[^>]*>([^<]+)<\/Knapp>/g)];
const knappar = [...start.matchAll(/to="\/alva\/logga-in"[^>]*>\s*<Knapp[^>]*>\{t\("([^"]+)"\)\}<\/Knapp>/g)];
expect(knappar.length).toBeGreaterThan(0);
for (const [, text] of knappar) expect(text.trim()).toBe(namn);
for (const [, n] of knappar) expect(n).toBe(nyckel);
});
it("ingen ingång kallar verkstaden för kund", () => {
@@ -194,6 +194,31 @@ describe("metodikvarningen", () => {
});
});
describe("webbplatsens källtext", () => {
// Hjälteraden och metodkorten på startsidan hämtas ur katalogen, men
// systemdefinitionen i @/alva/system är normen. Två källor för samma
// mening driver isär tyst — testet gör skillnaden till ett byggfel.
it("hjälteraden och faskorten säger samma sak som systemdefinitionen", async () => {
const { ALVA, FASER } = await import("../../alva/system");
expect(EN["webb.hero.position"]).toBe(ALVA.position);
expect(EN["webb.hero.definition"]).toBe(ALVA.definition);
for (const f of FASER) {
expect(EN[`webb.fas.${f.id}.syfte`], f.id).toBe(f.syfte);
expect(EN[`webb.fas.${f.id}.avgransning`], f.id).toBe(f.avgransning);
}
});
it("webbnycklarna finns i varje språk — sajten är inte engelska med undantag", () => {
const webb = NYCKLAR.filter((n) => n.startsWith("webb."));
expect(webb.length).toBeGreaterThan(140);
for (const kod of OVRIGA) {
for (const n of webb) {
expect(KATALOGER[kod][n], `${kod}: ${n}`).toBeTruthy();
}
}
});
});
function egetNamn(kod: string): string {
return SPRAK.find((s) => s.kod === kod)!.egetNamn;
}
+29 -36
View File
@@ -7,29 +7,32 @@
import { type FormEvent, useState } from "react";
import { Demonstration, Block, Etikett, FARG, Knapp, Rubrik, Statusmärke } from "@/alva/komponenter";
import { useWebbSprak } from "@/alva/webbsprak";
import { oversattare } from "../../../../services/gemensam/sprak/index.mjs";
import { Ram } from "./Ram";
interface Falt {
namn: string;
etikett: string;
nyckel: string;
typ?: string;
kravs?: boolean;
hjalp?: string;
}
const FALT: Falt[] = [
{ namn: "foretag", etikett: "Company", kravs: true },
{ namn: "orgnummer", etikett: "Organization number", kravs: true },
{ namn: "kontakt", etikett: "Contact person", kravs: true },
{ namn: "epost", etikett: "Email", typ: "email", kravs: true },
{ namn: "telefon", etikett: "Phone", typ: "tel", kravs: true },
{ namn: "tekniker", etikett: "Number of technicians", typ: "number", kravs: true },
{ namn: "bransch", etikett: "Industry", kravs: true },
{ namn: "land", etikett: "Country", kravs: true },
{ namn: "anvandare", etikett: "Expected number of users", typ: "number" },
{ namn: "foretag", nyckel: "webb.falt.foretag", kravs: true },
{ namn: "orgnummer", nyckel: "webb.falt.orgnummer", kravs: true },
{ namn: "kontakt", nyckel: "webb.falt.kontakt", kravs: true },
{ namn: "epost", nyckel: "webb.falt.epost", typ: "email", kravs: true },
{ namn: "telefon", nyckel: "webb.falt.telefon", typ: "tel", kravs: true },
{ namn: "tekniker", nyckel: "webb.falt.tekniker", typ: "number", kravs: true },
{ namn: "bransch", nyckel: "webb.falt.bransch", kravs: true },
{ namn: "land", nyckel: "webb.falt.land", kravs: true },
{ namn: "anvandare", nyckel: "webb.falt.anvandare", typ: "number" },
];
export default function Ansokan() {
const sprak = useWebbSprak();
const t = oversattare(sprak) as (nyckel: string) => string;
const [skickad, setSkickad] = useState(false);
const [referens, setReferens] = useState("");
@@ -47,31 +50,26 @@ export default function Ansokan() {
return (
<Ram>
<div className="mx-auto max-w-[680px] px-6 py-16">
<Etikett>Application</Etikett>
<Etikett>{t("webb.ansokan.mottagen.etikett")}</Etikett>
<div className="mt-2 mb-8">
<Rubrik niva={1}>Submitted</Rubrik>
<Rubrik niva={1}>{t("webb.ansokan.mottagen")}</Rubrik>
</div>
<Demonstration>
Nothing was submitted and no one was notified. The reference below was computed in your
browser from what you typed, and exists nowhere else it will be gone when you close
this page.
</Demonstration>
<Block rubrik="Registration" beteckning={referens}>
<Demonstration>{t("webb.ansokan.mottagen.demo")}</Demonstration>
<Block rubrik={t("webb.ansokan.etikett")} beteckning={referens}>
<dl className="text-[14px] leading-[24px]">
<div className="flex justify-between border-b py-2" style={{ borderColor: FARG.lightSteel }}>
<dt style={{ color: FARG.steel }}>Status</dt>
<dt style={{ color: FARG.steel }}>{t("webb.ansokan.status")}</dt>
<dd>
<Statusmärke status="pending" />
</dd>
</div>
<div className="flex justify-between py-2">
<dt style={{ color: FARG.steel }}>Reference</dt>
<dt style={{ color: FARG.steel }}>{t("webb.ansokan.referens")}</dt>
<dd className="font-mono">{referens}</dd>
</div>
</dl>
<p className="mt-4 border-t pt-4 text-[13px] leading-[20px]" style={{ borderColor: FARG.lightSteel, color: FARG.steel }}>
Applications are reviewed manually. An invoice is issued on approval. The organization is activated
once payment is registered.
{t("webb.ansokan.granskning")}
</p>
</Block>
</div>
@@ -82,18 +80,13 @@ export default function Ansokan() {
return (
<Ram>
<div className="mx-auto max-w-[680px] px-6 py-16">
<Etikett>Registration</Etikett>
<Etikett>{t("webb.ansokan.etikett")}</Etikett>
<div className="mt-2 mb-2">
<Rubrik niva={1}>Request account</Rubrik>
<Rubrik niva={1}>{t("webb.ansok")}</Rubrik>
</div>
<Demonstration>
Nothing is sent. Submitting this form stores nothing, notifies no one, and creates no
application there is no intake behind it yet. The description below states how
registration is intended to work, not what happens today.
</Demonstration>
<Demonstration>{t("webb.ansokan.demo")}</Demonstration>
<p className="mb-8 text-[14px] leading-[22px]" style={{ color: FARG.steel }}>
Intended operation: applications are reviewed manually and no payment is taken at this
stage.
{t("webb.ansokan.avsikt")}
</p>
<form onSubmit={skicka} noValidate={false}>
@@ -101,9 +94,9 @@ export default function Ansokan() {
{FALT.map((f) => (
<div key={f.namn} className="border-t py-2 first:border-t-0" style={{ borderColor: FARG.lightSteel }}>
<label htmlFor={f.namn} className="block text-[11px] font-semibold uppercase tracking-[0.08em]" style={{ color: FARG.steel }}>
{f.etikett}
{t(f.nyckel)}
{f.kravs && <span aria-hidden="true"> ·</span>}
{f.kravs && <span className="sr-only"> (required)</span>}
{f.kravs && <span className="sr-only"> {t("webb.falt.kravs")}</span>}
</label>
<input
id={f.namn}
@@ -117,7 +110,7 @@ export default function Ansokan() {
))}
<div className="border-t py-2" style={{ borderColor: FARG.lightSteel }}>
<label htmlFor="noteringar" className="block text-[11px] font-semibold uppercase tracking-[0.08em]" style={{ color: FARG.steel }}>
Notes
{t("webb.falt.noteringar")}
</label>
<textarea
id="noteringar"
@@ -129,7 +122,7 @@ export default function Ansokan() {
</div>
</Block>
<Knapp type="submit">Submit application</Knapp>
<Knapp type="submit">{t("webb.ansokan.skicka")}</Knapp>
</form>
</div>
</Ram>
+14 -17
View File
@@ -20,15 +20,19 @@ import { type FormEvent, useState } from "react";
import { useNavigate } from "react-router-dom";
import { loggaInPlattform, plattformAktiv } from "@/felsokning/plattform";
import { Demonstration, Block, Etikett, FARG, Knapp, Rubrik } from "@/alva/komponenter";
import { useWebbSprak } from "@/alva/webbsprak";
import { oversattare } from "../../../../services/gemensam/sprak/index.mjs";
import { Ram } from "./Ram";
const FALT = [
{ namn: "epost", etikett: "Email", typ: "email", komplettering: "username" },
{ namn: "losenord", etikett: "Password", typ: "password", komplettering: "current-password" },
{ namn: "epost", nyckel: "webb.falt.epost", typ: "email", komplettering: "username" },
{ namn: "losenord", nyckel: "webb.login.losenord", typ: "password", komplettering: "current-password" },
];
export default function LoggaIn() {
const navigera = useNavigate();
const sprak = useWebbSprak();
const t = oversattare(sprak) as (nyckel: string) => string;
const [fel, setFel] = useState("");
const [arbetar, setArbetar] = useState(false);
const skarpt = plattformAktiv();
@@ -47,7 +51,7 @@ export default function LoggaIn() {
if (!epost || !losenord) {
// Statusspråket gäller även fel: ett konstaterande, inte en ursäkt.
setFel("Authentication incomplete. Email and password required.");
setFel(t("webb.login.ofullstandigt"));
return;
}
@@ -60,7 +64,7 @@ export default function LoggaIn() {
// Serverns egen text visas oförändrad. Den vet vad som hände —
// avstängt konto, spärrat efter för många försök, fel uppgifter —
// och en omskrivning här skulle bara göra beskedet vagare.
setFel(orsak instanceof Error ? orsak.message : "Authentication failed.");
setFel(orsak instanceof Error ? orsak.message : t("webb.login.misslyckades"));
} finally {
setArbetar(false);
}
@@ -69,18 +73,11 @@ export default function LoggaIn() {
return (
<Ram>
<div className="mx-auto max-w-[440px] px-6 py-24">
<Etikett>Access</Etikett>
<Etikett>{t("webb.login.etikett")}</Etikett>
<div className="mt-2 mb-8">
<Rubrik niva={1}>Login</Rubrik>
<Rubrik niva={1}>{t("webb.loggain")}</Rubrik>
</div>
{!skarpt && (
<Demonstration>
This login authenticates nothing. Type anything into Email and Password and press Sign in
no account is needed, and the portal behind it presents fixed example data. Connected to
a platform instance this page authenticates against it, and the portal is closed without a
valid session.
</Demonstration>
)}
{!skarpt && <Demonstration>{t("webb.login.demo")}</Demonstration>}
<form onSubmit={skicka}>
<Block>
@@ -91,7 +88,7 @@ export default function LoggaIn() {
className="block text-[11px] font-semibold uppercase tracking-[0.08em]"
style={{ color: FARG.steel }}
>
{f.etikett}
{t(f.nyckel)}
</label>
<input
id={f.namn}
@@ -113,10 +110,10 @@ export default function LoggaIn() {
<div className="flex items-center justify-between">
<Knapp type="submit" disabled={arbetar}>
{arbetar ? "Signing in" : "Sign in"}
{arbetar ? t("webb.login.loggar_in") : t("webb.login.logga_in")}
</Knapp>
<a href="/alva/ansokan" className="text-[12px] uppercase tracking-[0.08em]" style={{ color: FARG.steel }}>
Forgot password
{t("webb.login.glomt")}
</a>
</div>
</form>
+64 -21
View File
@@ -3,17 +3,29 @@
//
// Navigationen är en rad text, inte en meny med ikoner. Den som söker
// något i ett industrisystem vet vad det heter.
//
// ---- Språket -----------------------------------------------------------
//
// Den publika navigationen och sidfoten talar besökarens språk (val i
// sidfoten → webbläsare → engelska). Portalens länkar står MEDVETET kvar
// på engelska: portalen är produkten, och dess språk styrs av konto och
// organisation (ALVA-SPEC-060) — inte av ett besöksval i en sidfot.
import type { ReactNode } from "react";
import { Link, useLocation, useNavigate } from "react-router-dom";
import { loggaUtPlattform, plattformKonto } from "@/felsokning/plattform";
import { ALVA, PLATTFORMSVERSION } from "@/alva/system";
import { FARG } from "@/alva/komponenter";
import { useWebbSprak, sattWebbSprak } from "@/alva/webbsprak";
import { SPRAK, oversattare } from "../../../../services/gemensam/sprak/index.mjs";
type Sprakpost = { kod: string; namn: string; egetNamn: string; granskat: boolean };
const SPRAKEN = SPRAK as Sprakpost[];
const PUBLIKT = [
{ till: "/alva", text: "Overview" },
{ till: "/alva/ansokan", text: "Request account" },
{ till: "/alva/logga-in", text: "Login" },
{ till: "/alva", nyckel: "webb.nav.oversikt" },
{ till: "/alva/ansokan", nyckel: "webb.ansok" },
{ till: "/alva/logga-in", nyckel: "webb.loggain" },
];
const PORTAL = [
@@ -29,10 +41,20 @@ const PORTAL = [
{ till: "/felsokning", text: "Diagnostics" },
];
const FOT = [
["/alva/impressum", "webb.fot.impressum"],
["/alva/dataskydd", "webb.fot.dataskydd"],
["/alva/villkor", "webb.fot.villkor"],
["/alva/tillganglighet", "webb.fot.tillganglighet"],
["/alva/sprak", "webb.fot.sprak"],
["/alva/utgavor", "webb.fot.utgavor"],
] as const;
export function Ram({ children, portal = false }: { children: ReactNode; portal?: boolean }) {
const plats = useLocation();
const navigera = useNavigate();
const lankar = portal ? PORTAL : PUBLIKT;
const sprak = useWebbSprak();
const t = oversattare(sprak) as (nyckel: string) => string;
// Finns en riktig session ska den gå att avsluta. Utan konfigurerad
// plattform finns ingen, och då visas ingen utloggning heller — en
// knapp som inte loggar ut något är samma sorts sken som m-9 gällde.
@@ -41,7 +63,7 @@ export function Ram({ children, portal = false }: { children: ReactNode; portal?
return (
// `alva-yta` bär typografin ur ALVA-SPEC-001 och håller den skild
// från värdapplikationens antikva. Se src/index.css.
<div className="alva-yta min-h-screen" style={{ background: FARG.background, color: FARG.graphite }}>
<div lang={sprak} className="alva-yta min-h-screen" style={{ background: FARG.background, color: FARG.graphite }}>
<header className="border-b" style={{ borderColor: FARG.lightSteel, background: FARG.white }}>
<div className="mx-auto flex max-w-[1040px] flex-wrap items-center justify-between gap-4 px-6 py-4">
<Link to={portal ? "/alva/portal" : "/alva"} className="flex items-baseline gap-4">
@@ -63,8 +85,9 @@ export function Ram({ children, portal = false }: { children: ReactNode; portal?
av marginalerna, inte av att posterna klumpas ihop. */}
<nav aria-label={portal ? "Portal" : "Site"} className="w-full sm:w-auto">
<ul className="flex flex-wrap justify-between gap-x-4 gap-y-2 sm:justify-end sm:gap-6">
{lankar.map((l) => {
{(portal ? PORTAL : PUBLIKT).map((l) => {
const aktiv = plats.pathname === l.till;
const text = "nyckel" in l ? t(l.nyckel) : l.text;
return (
<li key={l.till}>
<Link
@@ -73,7 +96,7 @@ export function Ram({ children, portal = false }: { children: ReactNode; portal?
className="text-[12px] font-semibold uppercase tracking-[0.08em]"
style={{ color: aktiv ? FARG.blue : FARG.steel }}
>
{l.text}
{text}
</Link>
</li>
);
@@ -122,30 +145,50 @@ export function Ram({ children, portal = false }: { children: ReactNode; portal?
<div className="mx-auto max-w-[1040px] px-6 py-6">
<nav aria-label="Legal">
<ul className="flex flex-wrap gap-x-6 gap-y-2 text-[12px]">
{[
["/alva/impressum", "Impressum"],
["/alva/dataskydd", "Privacy"],
["/alva/villkor", "Terms"],
["/alva/tillganglighet", "Accessibility"],
["/alva/sprak", "Languages"],
["/alva/utgavor", "Release notes"],
].map(([till, text]) => (
{FOT.map(([till, nyckel]) => (
<li key={till}>
<Link to={till} style={{ color: FARG.steel }}>
{text}
{t(nyckel)}
</Link>
</li>
))}
</ul>
</nav>
<div
className="mt-6 flex flex-wrap justify-between gap-4 border-t pt-6 font-mono text-[11px]"
className="mt-6 flex flex-wrap items-center justify-between gap-4 border-t pt-6"
style={{ borderColor: FARG.lightSteel, color: FARG.steel }}
>
<Link to="/alva/utgavor" style={{ color: FARG.steel }}>
{PLATTFORMSVERSION}
</Link>
<span>{ALVA.position}</span>
{/* Väljaren sätter besökarens val, som väger tyngre än
webbläsarens språk men aldrig rör plattformens eget
språkval — se filhuvudet. */}
<div className="flex items-center gap-4">
<label
htmlFor="webbsprak"
className="text-[11px] font-semibold uppercase tracking-[0.08em]"
style={{ color: FARG.steel }}
>
{t("sprak.valj")}
</label>
<select
id="webbsprak"
value={sprak}
onChange={(h) => sattWebbSprak(h.target.value)}
className="border px-4 py-2 text-[12px]"
style={{ borderColor: FARG.lightSteel, background: FARG.white, color: FARG.graphite }}
>
{SPRAKEN.map((s) => (
<option key={s.kod} value={s.kod}>
{s.egetNamn}
</option>
))}
</select>
</div>
<div className="flex flex-wrap gap-x-6 gap-y-2 font-mono text-[11px]">
<Link to="/alva/utgavor" style={{ color: FARG.steel }}>
{PLATTFORMSVERSION}
</Link>
<span>{t("webb.hero.position")}</span>
</div>
</div>
</div>
</footer>
+45 -50
View File
@@ -19,10 +19,15 @@
// inte är fackgranskad på rumänska kan planera för det. Samma chef som
// får veta det av en tekniker som missförstått en säkerhetsinstruktion
// kan inte.
//
// Sidans egen text står på besökarens språk (webb.sprak.-nycklarna).
// Förhandsvisningen har en EGEN väljare: den visar hur grindens hinder
// ser ut på ett språk man granskar, inte det språk man läser sidan på.
import { useState } from "react";
import { SPRAK, metodikvarning, oversattare, tackning } from "../../../../services/gemensam/sprak/index.mjs";
import { Block, Etikett, FARG, Rubrik, Tabell } from "@/alva/komponenter";
import { useWebbSprak } from "@/alva/webbsprak";
import { Ram } from "./Ram";
type Sprakpost = { kod: string; namn: string; egetNamn: string; granskat: boolean };
@@ -54,8 +59,14 @@ function Sektion({ etikett, rubrik, children }: { etikett: string; rubrik: strin
}
export default function Sprak() {
const [valt, setValt] = useState("de");
const t = oversattare(valt) as (nyckel: string) => string;
const sprak = useWebbSprak();
const t = oversattare(sprak) as (nyckel: string, variabler?: Record<string, string>) => string;
// Förhandsvisningens språk är inte sidans. Den som läser på engelska
// ska kunna granska den polska översättningen — utgångsvalet är därför
// besökarens eget språk när det inte är källspråket, annars tyska.
const [valt, setValt] = useState(sprak !== "en" ? sprak : "de");
const prov = oversattare(valt) as (nyckel: string) => string;
const post = SPRAKEN.find((s) => s.kod === valt)!;
const varning = metodikvarning(valt) as string | null;
@@ -63,56 +74,49 @@ export default function Sprak() {
<Ram>
<section className="border-b" style={{ borderColor: FARG.lightSteel, background: FARG.white }}>
<div className="mx-auto max-w-[1040px] px-6 py-16">
<Etikett>Localization</Etikett>
<Etikett>{t("webb.sprak.etikett")}</Etikett>
<div className="mt-2">
<Rubrik niva={1}>Languages</Rubrik>
<Rubrik niva={1}>{t("webb.sprak.rubrik")}</Rubrik>
</div>
<p className="mt-6 max-w-[680px] text-[16px] leading-[26px]" style={{ color: FARG.graphite }}>
English is the default and the source language. Nine translations follow. What the platform does
not do is claim that a translated interface means a translated method.
{t("webb.sprak.ingress")}
</p>
</div>
</section>
{/* ---- Den avgränsning som styr allt annat ---- */}
<Sektion etikett="Principle" rubrik="Two kinds of text">
<Sektion etikett={t("webb.sprak.princip.etikett")} rubrik={t("webb.sprak.princip.rubrik")}>
<div className="grid gap-8 md:grid-cols-2">
<Block rubrik="Interface text" beteckning="Falls back silently">
<Block rubrik={t("webb.sprak.granssnitt.rubrik")} beteckning={t("webb.sprak.granssnitt.beteckning")}>
<p className="text-[14px] leading-[22px]" style={{ color: FARG.graphite }}>
Labels, buttons, statuses. Finite, rarely changed. An English string reaching a German user is
an irritation, not a hazard so a missing translation falls back to English without comment.
{t("webb.sprak.granssnitt.text")}
</p>
</Block>
<Block rubrik="Procedure text" beteckning="Never falls back silently">
<Block rubrik={t("webb.sprak.metodik.rubrik")} beteckning={t("webb.sprak.metodik.beteckning")}>
<p className="text-[14px] leading-[22px]" style={{ color: FARG.graphite }}>
Instructions for work on a vehicle. Here an unreviewed translation is worse than a foreign
language one because English <em>looks</em> foreign, while a bad translation looks like an
instruction. It is shown in English and marked, with the language named.
{t("webb.sprak.metodik.text")}
</p>
</Block>
</div>
<p className="mt-8 max-w-[760px] border-l-2 pl-6 text-[15px] leading-[24px]"
style={{ borderColor: FARG.lightSteel, color: FARG.steel }}>
The method itself is never translated. Phase names and status words are ALVA&rsquo;s structure and
read identically in every country, so an auditor can read a Romanian and a German case record
without knowing which language the workshop works in.
{t("webb.sprak.invariant")}
</p>
</Sektion>
{/* ---- Redovisningen ---- */}
<Sektion etikett="Coverage" rubrik="What is translated, and what is reviewed">
<Sektion etikett={t("webb.sprak.tackning.etikett")} rubrik={t("webb.sprak.tackning.rubrik")}>
<Tabell
kolumner={["Language", "Interface", "Method reviewed by a specialist"]}
kolumner={[t("webb.sprak.kolumn.sprak"), t("webb.sprak.kolumn.granssnitt"), t("webb.sprak.kolumn.granskat")]}
rader={SPRAKEN.map((s) => [
`${s.namn}${s.egetNamn}`,
`${Math.round((tackning(s.kod) as number) * 100)} %`,
s.granskat ? "Yes" : "No — procedure text shown in English",
s.granskat ? t("webb.sprak.granskat.ja") : t("webb.sprak.granskat.nej"),
])}
/>
<p className="mt-6 max-w-[680px] text-[13px] leading-[20px]" style={{ color: FARG.steel }}>
Interface coverage is measured, not estimated: a test fails the build if any key is missing from
any language. Review status is a statement about people, not about files, and is set by hand.
{t("webb.sprak.matt")}
</p>
{/* Att engelska är källspråket betyder inte att den engelska
metodiktexten är fackgranskad. Den är översatt från svenska,
@@ -120,22 +124,19 @@ export default function Sprak() {
varnar för på de andra nio språken. */}
<p className="mt-4 max-w-[680px] border-l-2 pl-6 text-[13px] leading-[20px]"
style={{ borderColor: FARG.varning, color: FARG.graphite }}>
The English procedure text is a translation of the Swedish source and has not yet been read by a
specialist working in the trade. It is held to the same standard as the other nine languages, and
the same statement is made about it here rather than quietly excepted because it is the source.
{t("webb.sprak.kallsprak")}
</p>
</Sektion>
{/* ---- Beviset ---- */}
<Sektion etikett="Verification" rubrik="The strings that stop a case">
<Sektion etikett={t("webb.sprak.bevis.etikett")} rubrik={t("webb.sprak.bevis.rubrik")}>
<p className="mb-8 max-w-[680px] text-[15px] leading-[24px]" style={{ color: FARG.steel }}>
These are the sentences that refuse to let a technician close a case. A refusal nobody understands
is a refusal with no way through so they are the right strings to judge a translation by.
{t("webb.sprak.bevis.ingress")}
</p>
{/* Rutnät, inte flexradbrytning. Tio språk bryts av flex till nio
plus ett ensamt, och den ensamma knappen läser sig som en
eftertanke i stället för som ett språk bland tio. Fem kolumner
eftertanke i stället för som ett språk bland tio. Fem kolonner
och två gör tio jämnt i båda riktningarna. */}
<div className="mb-8 grid grid-cols-2 gap-2 sm:grid-cols-5">
{SPRAKEN.map((s) => (
@@ -162,8 +163,8 @@ export default function Sprak() {
<div className="font-mono text-[11px]" style={{ color: FARG.steel }}>
{nyckel}
</div>
<div className="mt-2 text-[15px] leading-[24px]" style={{ color: FARG.graphite }}>
{t(nyckel)}
<div className="mt-2 text-[15px] leading-[24px]" lang={valt} style={{ color: FARG.graphite }}>
{prov(nyckel)}
</div>
</li>
))}
@@ -172,54 +173,48 @@ export default function Sprak() {
{/* Varningen står under provet, inte över det. Den som just läst
fem meningar på sitt eget språk ska mötas av vad de INTE
garanterar — inte varnas i förväg och sedan lugnas av att
texten ser bra ut. */}
texten ser bra ut. Varningen själv står på PROVSPRÅKET,
precis som i drift: den riktar sig till den som skulle
arbeta på det språket. */}
{varning && (
<div className="mt-8 border-l-2 p-6" style={{ borderColor: FARG.varning, background: FARG.white }}>
<Etikett>Not reviewed {post.egetNamn}</Etikett>
<p className="mt-2 max-w-[760px] text-[14px] leading-[22px]" style={{ color: FARG.graphite }}>
<Etikett>{t("webb.sprak.ej_granskad")} {post.egetNamn}</Etikett>
<p className="mt-2 max-w-[760px] text-[14px] leading-[22px]" lang={valt} style={{ color: FARG.graphite }}>
{varning}
</p>
</div>
)}
{!varning && (
<div className="mt-8 border-l-2 p-6" style={{ borderColor: FARG.blue, background: FARG.white }}>
<Etikett>Reviewed {post.egetNamn}</Etikett>
<Etikett>{t("webb.sprak.granskad")} {post.egetNamn}</Etikett>
<p className="mt-2 max-w-[760px] text-[14px] leading-[22px]" style={{ color: FARG.graphite }}>
Procedure text in {post.egetNamn} has been read by a specialist working in the trade. Steps and
checks are shown in {post.egetNamn} throughout.
{t("webb.sprak.granskad.text", { sprak: post.egetNamn })}
</p>
</div>
)}
</Sektion>
{/* ---- Hur språket väljs ---- */}
<Sektion etikett="Operation" rubrik="How the language is chosen">
<Sektion etikett={t("webb.sprak.val.etikett")} rubrik={t("webb.sprak.val.rubrik")}>
<ol className="max-w-[680px]">
{[
["User preference", "What the individual has selected."],
["Organization setting", "The workshop's documentation language."],
["Browser language", "The first language the platform recognises."],
["English", "The default, and the source."],
].map(([rubrik, text], i) => (
<li key={rubrik} className="flex gap-6 border-t py-6" style={{ borderColor: FARG.lightSteel }}>
{[1, 2, 3, 4].map((steg, i) => (
<li key={steg} className="flex gap-6 border-t py-6" style={{ borderColor: FARG.lightSteel }}>
<span className="font-mono text-[13px] leading-[20px]" style={{ color: FARG.steel }}>
{String(i + 1).padStart(2, "0")}
</span>
<div>
<div className="text-[15px] font-semibold" style={{ color: FARG.graphite }}>
{rubrik}
{t(`webb.sprak.val.s${steg}.rubrik`)}
</div>
<div className="mt-2 text-[14px] leading-[20px]" style={{ color: FARG.steel }}>
{text}
{t(`webb.sprak.val.s${steg}.text`)}
</div>
</div>
</li>
))}
</ol>
<p className="mt-8 max-w-[680px] text-[14px] leading-[22px]" style={{ color: FARG.steel }}>
The organization ranks above the browser deliberately. A workshop in Germany with a Polish
technician needs one documentation language the case record must not change language depending on
who happened to write the line.
{t("webb.sprak.val.notering")}
</p>
</Sektion>
</Ram>
+53 -85
View File
@@ -9,10 +9,16 @@
// uppmaning att boka demo. En sida som försöker övertyga läser som
// marknadsföring; en sida som redovisar läser som dokumentation. Den
// senare är vad en teknisk chef fattar beslut utifrån.
//
// Texten hämtas ur språkkatalogen (webb.-nycklarna) på besökarens språk.
// Ordmärket och utläsningen är ALVA:s struktur och står kvar på engelska
// i varje språk — precis som fasnamnen i metodkorten nedan.
import { Link } from "react-router-dom";
import { ALVA, FASER, PLATTFORMSVERSION } from "@/alva/system";
import { Block, Etikett, FARG, Knapp, Rubrik, Symbol, Tabell } from "@/alva/komponenter";
import { useWebbSprak } from "@/alva/webbsprak";
import { oversattare } from "../../../../services/gemensam/sprak/index.mjs";
import { Ram } from "./Ram";
function Sektion({ etikett, rubrik, children }: { etikett: string; rubrik?: string; children: React.ReactNode }) {
@@ -32,6 +38,9 @@ function Sektion({ etikett, rubrik, children }: { etikett: string; rubrik?: stri
}
export default function Start() {
const sprak = useWebbSprak();
const t = oversattare(sprak) as (nyckel: string) => string;
return (
<Ram>
{/* ---- Hero. En mening. Ingen slogan. ---- */}
@@ -44,11 +53,11 @@ export default function Start() {
{ALVA.utlast}
</p>
<p className="mt-2 text-[13px] uppercase tracking-[0.08em]" style={{ color: FARG.steel }}>
{ALVA.position}
{t("webb.hero.position")}
</p>
<p className="mt-10 max-w-[620px] text-[18px] leading-[28px]" style={{ color: FARG.graphite }}>
{ALVA.definition}
{t("webb.hero.definition")}
</p>
{/* Lika breda, inte innehållsbreda. Två knappar bredvid varandra
@@ -58,20 +67,20 @@ export default function Start() {
fyllning mot kontur, som resten av systemet gör. */}
<div className="mt-10 grid max-w-[420px] grid-cols-2 gap-4">
<Link to="/alva/ansokan" className="block h-full">
<Knapp bred>Request account</Knapp>
<Knapp bred>{t("webb.ansok")}</Knapp>
</Link>
<Link to="/alva/logga-in" className="block h-full">
<Knapp bred variant="sekundar">Login</Knapp>
<Knapp bred variant="sekundar">{t("webb.loggain")}</Knapp>
</Link>
</div>
</div>
</section>
{/* ---- Metoden ---- */}
<Sektion etikett="Methodology" rubrik="The ALVA model">
{/* ---- Metoden. Fasnamnen är invarianta; syfte och avgränsning
är webbtext och följer besökarens språk. ---- */}
<Sektion etikett={t("webb.metod.etikett")} rubrik={t("webb.metod.rubrik")}>
<p className="mb-8 max-w-[680px] text-[15px] leading-[24px]" style={{ color: FARG.steel }}>
ALVA is a standardized method for systematic analysis, localization, verification and action. Every
decision is traceable, every conclusion verifiable, every action reproducible.
{t("webb.metod.ingress")}
</p>
<div className="grid gap-px md:grid-cols-4" style={{ background: FARG.lightSteel }}>
@@ -89,10 +98,10 @@ export default function Start() {
{f.namn}
</div>
<p className="mt-2 text-[14px] leading-[20px]" style={{ color: FARG.graphite }}>
{f.syfte}
{t(`webb.fas.${f.id}.syfte`)}
</p>
<p className="mt-4 border-t pt-4 text-[12px] leading-[18px]" style={{ borderColor: FARG.lightSteel, color: FARG.steel }}>
{f.avgransning}
{t(`webb.fas.${f.id}.avgransning`)}
</p>
</div>
))}
@@ -100,26 +109,19 @@ export default function Start() {
</Sektion>
{/* ---- Arbetsgång. Numrerad, inte illustrerad. ---- */}
<Sektion etikett="Operation" rubrik="How it works">
<Sektion etikett={t("webb.drift.etikett")} rubrik={t("webb.drift.rubrik")}>
<ol className="max-w-[680px]">
{[
["Create organization", "Registration is submitted and reviewed."],
["Users receive accounts", "Roles are assigned by the organization administrator."],
["Guided diagnostic procedures", "Each case follows a defined procedure."],
["Verification", "Root cause is confirmed before corrective action."],
["Documentation", "The record is generated from the case log."],
["Continuous improvement", "Verified outcomes refine subsequent procedures."],
].map(([rubrik, text], i) => (
<li key={rubrik} className="flex gap-6 border-t py-6" style={{ borderColor: FARG.lightSteel }}>
{[1, 2, 3, 4, 5, 6].map((steg, i) => (
<li key={steg} className="flex gap-6 border-t py-6" style={{ borderColor: FARG.lightSteel }}>
<span className="font-mono text-[13px] leading-[20px]" style={{ color: FARG.steel }}>
{String(i + 1).padStart(2, "0")}
</span>
<div>
<div className="text-[15px] font-semibold" style={{ color: FARG.graphite }}>
{rubrik}
{t(`webb.drift.s${steg}.rubrik`)}
</div>
<div className="mt-2 text-[14px] leading-[20px]" style={{ color: FARG.steel }}>
{text}
{t(`webb.drift.s${steg}.text`)}
</div>
</div>
</li>
@@ -128,34 +130,25 @@ export default function Start() {
</Sektion>
{/* ---- Organisationens eget lärande ---- */}
<Sektion etikett="Capability" rubrik="Enterprise learning">
<Sektion etikett={t("webb.larande.etikett")} rubrik={t("webb.larande.rubrik")}>
<div className="grid gap-8 md:grid-cols-2">
<div>
<p className="text-[15px] leading-[24px]" style={{ color: FARG.graphite }}>
The platform continuously refines diagnostic procedures using verified operational experience from
your own organization.
{t("webb.larande.p1")}
</p>
<p className="mt-4 text-[14px] leading-[22px]" style={{ color: FARG.steel }}>
Every completed diagnostic contributes to subsequent guidance. Only verified outcomes are used
a case closed without confirmed root cause contributes nothing, by design.
{t("webb.larande.p2")}
</p>
<p className="mt-4 text-[14px] leading-[22px]" style={{ color: FARG.steel }}>
The knowledge base belongs to the organization. It is derived from your cases, your procedures and
your documentation, and it is not aggregated across customers.
{t("webb.larande.p3")}
</p>
</div>
<Block rubrik="Derived from" beteckning="ALVA-SPEC-004">
<Block rubrik={t("webb.larande.block")} beteckning="ALVA-SPEC-004">
<ul className="text-[14px] leading-[24px]" style={{ color: FARG.graphite }}>
{[
"Verified root causes",
"Confirmed corrective actions",
"Recurring fault categories",
"Procedure completion records",
"Organization documentation",
].map((rad) => (
{[1, 2, 3, 4, 5].map((rad) => (
<li key={rad} className="flex gap-4">
<Symbol ikon="klar" />
{rad}
{t(`webb.larande.k${rad}`)}
</li>
))}
</ul>
@@ -171,62 +164,47 @@ export default function Start() {
Nu står frågorna i stället. En verkstadschef känner igen sina
egna frågor; ingen känner igen en innehållsförteckning. */}
<Sektion etikett="Reporting" rubrik="Quarterly improvement report">
<Sektion etikett={t("webb.rapport.etikett")} rubrik={t("webb.rapport.rubrik")}>
<p className="mb-8 max-w-[680px] text-[15px] leading-[24px]" style={{ color: FARG.steel }}>
Once a quarter, the platform answers six questions about the workshop&rsquo;s own work. Every
answer is derived from the case log nothing is estimated, and nothing is asked of anyone.
{t("webb.rapport.ingress")}
</p>
<ul className="grid max-w-[760px] gap-4">
{[
"Which faults are we now diagnosing correctly the first time?",
"How often does a suspected cause turn out to be the actual one?",
"Which faults keep coming back across the fleet?",
"Which procedure steps are being skipped, and why?",
"What does the workshop know now that it did not know last quarter?",
"Are cases being completed, verified and documented — or only completed?",
].map((fraga) => (
{[1, 2, 3, 4, 5, 6].map((fraga) => (
<li
key={fraga}
className="border-l-2 pl-6 text-[15px] leading-[24px]"
style={{ borderColor: FARG.lightSteel, color: FARG.graphite }}
>
{fraga}
{t(`webb.rapport.f${fraga}`)}
</li>
))}
</ul>
</Sektion>
{/* ---- Pris. Ingen onlinebetalning. ---- */}
<Sektion etikett="Commercial" rubrik="Licensing">
<Sektion etikett={t("webb.pris.etikett")} rubrik={t("webb.pris.rubrik")}>
<div className="grid gap-8 md:grid-cols-2">
<div>
<Tabell
kolumner={["Component", "Basis"]}
kolumner={[t("webb.pris.komponent"), t("webb.pris.grund")]}
rader={[
["Platform license", "Per organization, annually"],
["User licenses", "Per active user, monthly"],
["Enterprise modules", "Optional, per module"],
[t("webb.pris.plattform"), t("webb.pris.plattform.grund")],
[t("webb.pris.anvandare"), t("webb.pris.anvandare.grund")],
[t("webb.pris.moduler"), t("webb.pris.moduler.grund")],
]}
/>
<p className="mt-6 text-[13px] leading-[20px]" style={{ color: FARG.steel }}>
No online payment. No subscription sign-up. Invoicing follows review of the application.
{t("webb.pris.betalning")}
</p>
</div>
<Block rubrik="Activation sequence" beteckning="ALVA-PROC-0001">
<Block rubrik={t("webb.pris.aktivering")} beteckning="ALVA-PROC-0001">
<ol className="text-[14px] leading-[26px]" style={{ color: FARG.graphite }}>
{[
"Organization submits registration.",
"Application is reviewed.",
"Invoice is issued.",
"Payment is registered.",
"Organization is activated.",
"Additional users are billed monthly.",
].map((rad, i) => (
<li key={rad} className="flex gap-4">
{[1, 2, 3, 4, 5, 6].map((steg, i) => (
<li key={steg} className="flex gap-4">
<span className="font-mono text-[12px]" style={{ color: FARG.steel }}>
{String(i + 1).padStart(2, "0")}
</span>
{rad}
{t(`webb.pris.a${steg}`)}
</li>
))}
</ol>
@@ -235,34 +213,24 @@ export default function Start() {
</Sektion>
{/* ---- Kunskapskällor ---- */}
<Sektion etikett="Infrastructure" rubrik="Operational Knowledge Infrastructure">
<Sektion etikett={t("webb.kallor.etikett")} rubrik={t("webb.kallor.rubrik")}>
<div className="grid gap-8 md:grid-cols-2">
<div>
<p className="text-[15px] leading-[24px]" style={{ color: FARG.graphite }}>
ALVA uses the organization&rsquo;s own authorized knowledge sources. The architecture is
provider-agnostic: every source implements the same interface, and no provider is assumed.
{t("webb.kallor.p1")}
</p>
<p className="mt-4 text-[14px] leading-[22px]" style={{ color: FARG.steel }}>
A beta installation operates on internal documentation alone. External providers are enabled later
through separate connectors, without change to the platform core.
{t("webb.kallor.p2")}
</p>
</div>
<Block rubrik="Source resolution order" beteckning="ALVA-SPEC-011">
<Block rubrik={t("webb.kallor.block")} beteckning="ALVA-SPEC-011">
<ol className="text-[14px] leading-[24px]" style={{ color: FARG.graphite }}>
{[
"Internal company procedures",
"OEM documentation",
"Technical bulletins",
"Warranty information",
"Service manuals",
"Historical verified diagnostics",
"Organization best practices",
].map((rad, i) => (
{[1, 2, 3, 4, 5, 6, 7].map((rad, i) => (
<li key={rad} className="flex gap-4">
<span className="font-mono text-[12px]" style={{ color: FARG.steel }}>
{i + 1}
</span>
{rad}
{t(`webb.kallor.k${rad}`)}
</li>
))}
</ol>
@@ -277,10 +245,10 @@ export default function Start() {
</div>
<div className="grid max-w-[420px] grid-cols-2 gap-4">
<Link to="/alva/ansokan" className="block h-full">
<Knapp bred>Request account</Knapp>
<Knapp bred>{t("webb.ansok")}</Knapp>
</Link>
<Link to="/alva/logga-in" className="block h-full">
<Knapp bred variant="sekundar">Login</Knapp>
<Knapp bred variant="sekundar">{t("webb.loggain")}</Knapp>
</Link>
</div>
</div>
+185
View File
@@ -139,4 +139,189 @@ export const DE = {
"metodik.ogranskad":
"Der Verfahrenstext wurde nicht von einer Fachkraft auf {sprak} geprüft. Schritte und Prüfpunkte werden auf Englisch angezeigt, wo keine geprüfte Übersetzung vorliegt — eine ungeprüfte Übersetzung einer Sicherheitsanweisung ist schlechter als eine fremdsprachige, weil sie nicht fremd aussieht.",
"metodik.pa_engelska": "Auf Englisch angezeigt — keine geprüfte Übersetzung auf {sprak}",
// ---- Öffentliche Website (webb.) ---------------------------------------
"webb.nav.oversikt": "Überblick",
"webb.ansok": "Konto beantragen",
"webb.loggain": "Anmeldung",
"webb.fot.impressum": "Impressum",
"webb.fot.dataskydd": "Datenschutz",
"webb.fot.villkor": "Bedingungen",
"webb.fot.tillganglighet": "Barrierefreiheit",
"webb.fot.sprak": "Sprachen",
"webb.fot.utgavor": "Versionshinweise",
"webb.hero.position": "Geführte Diagnoseplattform",
"webb.hero.definition": "Standardisierte Diagnoseprozeduren für wiederholbare und verifizierbare Fehlersuche.",
"webb.metod.etikett": "Methodik",
"webb.metod.rubrik": "Das ALVA-Modell",
"webb.metod.ingress":
"ALVA ist eine standardisierte Methode für systematische Analyse, Lokalisierung, Verifikation und Maßnahme. Jede Entscheidung ist nachvollziehbar, jede Schlussfolgerung verifizierbar, jede Maßnahme reproduzierbar.",
"webb.fas.analysis.syfte": "Evidenz sammeln.",
"webb.fas.analysis.avgransning": "Nur Fakten. Hypothesen werden in dieser Phase nicht erfasst.",
"webb.fas.localization.syfte": "Den Fehler eingrenzen.",
"webb.fas.localization.avgransning": "Den Bereich einengen. Die Ursache ist noch nicht festgestellt.",
"webb.fas.verification.syfte": "Grundursache bestätigen.",
"webb.fas.verification.avgransning": "Verifiziert wird die Ursache — nicht das Symptom.",
"webb.fas.action.syfte": "Korrekturmaßnahme durchführen.",
"webb.fas.action.avgransning": "Ergebnis verifiziert und dokumentiert. Andernfalls ist die Phase unvollständig.",
"webb.drift.etikett": "Betrieb",
"webb.drift.rubrik": "So funktioniert es",
"webb.drift.s1.rubrik": "Organisation anlegen",
"webb.drift.s1.text": "Die Registrierung wird eingereicht und geprüft.",
"webb.drift.s2.rubrik": "Benutzer erhalten Konten",
"webb.drift.s2.text": "Rollen werden vom Administrator der Organisation vergeben.",
"webb.drift.s3.rubrik": "Geführte Diagnoseprozeduren",
"webb.drift.s3.text": "Jeder Fall folgt einer definierten Prozedur.",
"webb.drift.s4.rubrik": "Verifikation",
"webb.drift.s4.text": "Die Grundursache wird vor der Korrekturmaßnahme bestätigt.",
"webb.drift.s5.rubrik": "Dokumentation",
"webb.drift.s5.text": "Der Bericht wird aus dem Fallprotokoll erzeugt.",
"webb.drift.s6.rubrik": "Kontinuierliche Verbesserung",
"webb.drift.s6.text": "Verifizierte Ergebnisse verfeinern nachfolgende Prozeduren.",
"webb.larande.etikett": "Fähigkeit",
"webb.larande.rubrik": "Lernende Organisation",
"webb.larande.p1":
"Die Plattform verfeinert Diagnoseprozeduren fortlaufend mit verifizierter Betriebserfahrung aus der eigenen Organisation.",
"webb.larande.p2":
"Jede abgeschlossene Diagnose fließt in die nachfolgende Führung ein. Nur verifizierte Ergebnisse werden verwendet — ein Fall, der ohne bestätigte Grundursache geschlossen wurde, trägt bewusst nichts bei.",
"webb.larande.p3":
"Die Wissensbasis gehört der Organisation. Sie wird aus Ihren Fällen, Ihren Prozeduren und Ihrer Dokumentation abgeleitet und nicht über Kunden hinweg zusammengeführt.",
"webb.larande.block": "Abgeleitet aus",
"webb.larande.k1": "Verifizierte Grundursachen",
"webb.larande.k2": "Bestätigte Korrekturmaßnahmen",
"webb.larande.k3": "Wiederkehrende Fehlerkategorien",
"webb.larande.k4": "Nachweise abgeschlossener Prozeduren",
"webb.larande.k5": "Dokumentation der Organisation",
"webb.rapport.etikett": "Berichtswesen",
"webb.rapport.rubrik": "Vierteljährlicher Verbesserungsbericht",
"webb.rapport.ingress":
"Einmal im Quartal beantwortet die Plattform sechs Fragen zur eigenen Arbeit des Betriebs. Jede Antwort wird aus dem Fallprotokoll abgeleitet — nichts wird geschätzt, und niemand wird befragt.",
"webb.rapport.f1": "Welche Fehler diagnostizieren wir jetzt beim ersten Mal richtig?",
"webb.rapport.f2": "Wie oft erweist sich eine vermutete Ursache als die tatsächliche?",
"webb.rapport.f3": "Welche Fehler kehren in der Flotte immer wieder?",
"webb.rapport.f4": "Welche Prozedurschritte werden übersprungen, und warum?",
"webb.rapport.f5": "Was weiß der Betrieb jetzt, was er im letzten Quartal nicht wusste?",
"webb.rapport.f6": "Werden Fälle abgeschlossen, verifiziert und dokumentiert — oder nur abgeschlossen?",
"webb.pris.etikett": "Kommerzielles",
"webb.pris.rubrik": "Lizenzierung",
"webb.pris.komponent": "Komponente",
"webb.pris.grund": "Grundlage",
"webb.pris.plattform": "Plattformlizenz",
"webb.pris.plattform.grund": "Je Organisation, jährlich",
"webb.pris.anvandare": "Benutzerlizenzen",
"webb.pris.anvandare.grund": "Je aktivem Benutzer, monatlich",
"webb.pris.moduler": "Unternehmensmodule",
"webb.pris.moduler.grund": "Optional, je Modul",
"webb.pris.betalning": "Keine Online-Zahlung. Keine Abo-Anmeldung. Die Rechnungsstellung folgt auf die Prüfung des Antrags.",
"webb.pris.aktivering": "Aktivierungsablauf",
"webb.pris.a1": "Die Organisation reicht die Registrierung ein.",
"webb.pris.a2": "Der Antrag wird geprüft.",
"webb.pris.a3": "Die Rechnung wird gestellt.",
"webb.pris.a4": "Die Zahlung wird verbucht.",
"webb.pris.a5": "Die Organisation wird aktiviert.",
"webb.pris.a6": "Weitere Benutzer werden monatlich abgerechnet.",
"webb.kallor.etikett": "Infrastruktur",
"webb.kallor.rubrik": "Operative Wissensinfrastruktur",
"webb.kallor.p1":
"ALVA nutzt die eigenen autorisierten Wissensquellen der Organisation. Die Architektur ist anbieterneutral: Jede Quelle implementiert dieselbe Schnittstelle, und kein Anbieter wird vorausgesetzt.",
"webb.kallor.p2":
"Eine Beta-Installation arbeitet allein mit interner Dokumentation. Externe Anbieter werden später über separate Konnektoren angebunden, ohne Änderung am Plattformkern.",
"webb.kallor.block": "Auflösungsreihenfolge der Quellen",
"webb.kallor.k1": "Interne Unternehmensprozeduren",
"webb.kallor.k2": "OEM-Dokumentation",
"webb.kallor.k3": "Technische Bulletins",
"webb.kallor.k4": "Garantieinformationen",
"webb.kallor.k5": "Werkstatthandbücher",
"webb.kallor.k6": "Historische verifizierte Diagnosen",
"webb.kallor.k7": "Bewährte Praxis der Organisation",
"webb.login.etikett": "Zugang",
"webb.login.demo":
"Diese Anmeldung authentifiziert nichts. Geben Sie Beliebiges in E-Mail und Passwort ein und drücken Sie Anmelden — kein Konto ist nötig, und das Portal dahinter zeigt feste Beispieldaten. Mit einer Plattforminstanz verbunden authentifiziert sich diese Seite gegen sie, und ohne gültige Sitzung ist das Portal geschlossen.",
"webb.login.losenord": "Passwort",
"webb.login.ofullstandigt": "Authentifizierung unvollständig. E-Mail und Passwort erforderlich.",
"webb.login.misslyckades": "Authentifizierung fehlgeschlagen.",
"webb.login.logga_in": "Anmelden",
"webb.login.loggar_in": "Anmeldung läuft",
"webb.login.glomt": "Passwort vergessen",
"webb.ansokan.etikett": "Registrierung",
"webb.ansokan.demo":
"Nichts wird gesendet. Das Absenden dieses Formulars speichert nichts, benachrichtigt niemanden und erzeugt keinen Antrag — dahinter steht noch keine Annahme. Die Beschreibung unten sagt, wie die Registrierung arbeiten soll, nicht was heute geschieht.",
"webb.ansokan.avsikt": "Vorgesehener Betrieb: Anträge werden manuell geprüft, und in diesem Schritt wird keine Zahlung erhoben.",
"webb.falt.foretag": "Unternehmen",
"webb.falt.orgnummer": "Handelsregisternummer",
"webb.falt.kontakt": "Ansprechpartner",
"webb.falt.epost": "E-Mail",
"webb.falt.telefon": "Telefon",
"webb.falt.tekniker": "Anzahl Techniker",
"webb.falt.bransch": "Branche",
"webb.falt.land": "Land",
"webb.falt.anvandare": "Erwartete Benutzerzahl",
"webb.falt.noteringar": "Anmerkungen",
"webb.falt.kravs": "(erforderlich)",
"webb.ansokan.skicka": "Antrag absenden",
"webb.ansokan.mottagen.etikett": "Antrag",
"webb.ansokan.mottagen": "Eingereicht",
"webb.ansokan.mottagen.demo":
"Nichts wurde übermittelt, und niemand wurde benachrichtigt. Die Referenz unten wurde in Ihrem Browser aus Ihren Eingaben berechnet und existiert nirgendwo sonst — sie ist weg, wenn Sie diese Seite schließen.",
"webb.ansokan.status": "Status",
"webb.ansokan.referens": "Referenz",
"webb.ansokan.granskning":
"Anträge werden manuell geprüft. Bei Genehmigung wird eine Rechnung gestellt. Die Organisation wird aktiviert, sobald die Zahlung verbucht ist.",
"webb.sprak.etikett": "Lokalisierung",
"webb.sprak.rubrik": "Sprachen",
"webb.sprak.ingress":
"Englisch ist Standard- und Quellsprache. Neun Übersetzungen folgen. Was die Plattform nicht tut: behaupten, dass eine übersetzte Oberfläche eine übersetzte Methode bedeutet.",
"webb.sprak.princip.etikett": "Prinzip",
"webb.sprak.princip.rubrik": "Zwei Arten von Text",
"webb.sprak.granssnitt.rubrik": "Oberflächentext",
"webb.sprak.granssnitt.beteckning": "Fällt still zurück",
"webb.sprak.granssnitt.text":
"Beschriftungen, Schaltflächen, Status. Endlich, selten geändert. Eine englische Zeichenkette bei einem deutschen Benutzer ist ein Ärgernis, keine Gefahr — eine fehlende Übersetzung fällt daher kommentarlos auf Englisch zurück.",
"webb.sprak.metodik.rubrik": "Verfahrenstext",
"webb.sprak.metodik.beteckning": "Fällt nie still zurück",
"webb.sprak.metodik.text":
"Anweisungen für Arbeiten an einem Fahrzeug. Hier ist eine ungeprüfte Übersetzung schlimmer als eine fremdsprachige — denn Englisch sieht fremd aus, während eine schlechte Übersetzung wie eine Anweisung aussieht. Sie wird auf Englisch gezeigt und gekennzeichnet, mit benannter Sprache.",
"webb.sprak.invariant":
"Die Methode selbst wird nie übersetzt. Phasennamen und Statusworte sind ALVAs Struktur und lesen sich in jedem Land gleich, sodass ein Prüfer eine rumänische und eine deutsche Fallakte lesen kann, ohne zu wissen, in welcher Sprache der Betrieb arbeitet.",
"webb.sprak.tackning.etikett": "Abdeckung",
"webb.sprak.tackning.rubrik": "Was übersetzt ist, und was geprüft ist",
"webb.sprak.kolumn.sprak": "Sprache",
"webb.sprak.kolumn.granssnitt": "Oberfläche",
"webb.sprak.kolumn.granskat": "Methodik von einer Fachkraft geprüft",
"webb.sprak.granskat.ja": "Ja",
"webb.sprak.granskat.nej": "Nein — Verfahrenstext auf Englisch",
"webb.sprak.matt":
"Die Abdeckung der Oberfläche wird gemessen, nicht geschätzt: Ein Test lässt den Build scheitern, wenn irgendein Schlüssel in irgendeiner Sprache fehlt. Der Prüfstatus ist eine Aussage über Menschen, nicht über Dateien, und wird von Hand gesetzt.",
"webb.sprak.kallsprak":
"Der englische Verfahrenstext ist eine Übersetzung der schwedischen Quelle und wurde noch nicht von einer im Handwerk tätigen Fachkraft gelesen. Er wird am selben Maßstab gemessen wie die anderen neun Sprachen, und dieselbe Aussage steht hier über ihn, statt ihn still auszunehmen, weil er die Quelle ist.",
"webb.sprak.bevis.etikett": "Verifikation",
"webb.sprak.bevis.rubrik": "Die Sätze, die einen Fall stoppen",
"webb.sprak.bevis.ingress":
"Dies sind die Sätze, die einem Techniker den Abschluss eines Falls verweigern. Eine Verweigerung, die niemand versteht, ist eine Verweigerung ohne Ausweg — also sind es die richtigen Sätze, um eine Übersetzung zu beurteilen.",
"webb.sprak.ej_granskad": "Nicht geprüft",
"webb.sprak.granskad": "Geprüft",
"webb.sprak.granskad.text":
"Der Verfahrenstext auf {sprak} wurde von einer im Handwerk tätigen Fachkraft gelesen. Schritte und Prüfpunkte werden durchgehend auf {sprak} angezeigt.",
"webb.sprak.val.etikett": "Betrieb",
"webb.sprak.val.rubrik": "Wie die Sprache gewählt wird",
"webb.sprak.val.s1.rubrik": "Wahl des Benutzers",
"webb.sprak.val.s1.text": "Was die einzelne Person gewählt hat.",
"webb.sprak.val.s2.rubrik": "Einstellung der Organisation",
"webb.sprak.val.s2.text": "Die Dokumentationssprache des Betriebs.",
"webb.sprak.val.s3.rubrik": "Browsersprache",
"webb.sprak.val.s3.text": "Die erste Sprache, die die Plattform erkennt.",
"webb.sprak.val.s4.rubrik": "Englisch",
"webb.sprak.val.s4.text": "Der Standard, und die Quelle.",
"webb.sprak.val.notering":
"Die Organisation steht bewusst über dem Browser. Ein Betrieb in Deutschland mit einem polnischen Techniker braucht eine gemeinsame Dokumentationssprache — die Fallakte darf die Sprache nicht danach wechseln, wer die Zeile gerade geschrieben hat.",
};
+191
View File
@@ -166,4 +166,195 @@ export const EN = {
"metodik.ogranskad":
"Procedure text has not been reviewed by a technical specialist in {sprak}. Steps and checks are shown in English where no reviewed translation exists — an unreviewed translation of a safety instruction is worse than a foreign-language one, because it does not look foreign.",
"metodik.pa_engelska": "Shown in English — no reviewed translation in {sprak}",
// ---- Public website (webb.) ---------------------------------------------
//
// The marketing site and the platform are the same system, so the site
// speaks through the same catalogue. Keys follow the page order. The
// portal chrome is deliberately absent: the portal is the product, and
// its language is governed by account and organization, not by the
// visitor's footer choice.
"webb.nav.oversikt": "Overview",
"webb.ansok": "Request account",
"webb.loggain": "Login",
"webb.fot.impressum": "Impressum",
"webb.fot.dataskydd": "Privacy",
"webb.fot.villkor": "Terms",
"webb.fot.tillganglighet": "Accessibility",
"webb.fot.sprak": "Languages",
"webb.fot.utgavor": "Release notes",
"webb.hero.position": "Guided Diagnostic Platform",
"webb.hero.definition": "Standardized diagnostic procedures for repeatable and verifiable troubleshooting.",
"webb.metod.etikett": "Methodology",
"webb.metod.rubrik": "The ALVA model",
"webb.metod.ingress":
"ALVA is a standardized method for systematic analysis, localization, verification and action. Every decision is traceable, every conclusion verifiable, every action reproducible.",
"webb.fas.analysis.syfte": "Collect evidence.",
"webb.fas.analysis.avgransning": "Facts only. Hypotheses are not collected in this phase.",
"webb.fas.localization.syfte": "Isolate the fault.",
"webb.fas.localization.avgransning": "Narrow the area. The cause is not yet established.",
"webb.fas.verification.syfte": "Confirm root cause.",
"webb.fas.verification.avgransning": "The cause is verified — not the symptom.",
"webb.fas.action.syfte": "Execute corrective action.",
"webb.fas.action.avgransning": "Result verified and documented. Otherwise the phase is incomplete.",
"webb.drift.etikett": "Operation",
"webb.drift.rubrik": "How it works",
"webb.drift.s1.rubrik": "Create organization",
"webb.drift.s1.text": "Registration is submitted and reviewed.",
"webb.drift.s2.rubrik": "Users receive accounts",
"webb.drift.s2.text": "Roles are assigned by the organization administrator.",
"webb.drift.s3.rubrik": "Guided diagnostic procedures",
"webb.drift.s3.text": "Each case follows a defined procedure.",
"webb.drift.s4.rubrik": "Verification",
"webb.drift.s4.text": "Root cause is confirmed before corrective action.",
"webb.drift.s5.rubrik": "Documentation",
"webb.drift.s5.text": "The record is generated from the case log.",
"webb.drift.s6.rubrik": "Continuous improvement",
"webb.drift.s6.text": "Verified outcomes refine subsequent procedures.",
"webb.larande.etikett": "Capability",
"webb.larande.rubrik": "Enterprise learning",
"webb.larande.p1":
"The platform continuously refines diagnostic procedures using verified operational experience from your own organization.",
"webb.larande.p2":
"Every completed diagnostic contributes to subsequent guidance. Only verified outcomes are used — a case closed without confirmed root cause contributes nothing, by design.",
"webb.larande.p3":
"The knowledge base belongs to the organization. It is derived from your cases, your procedures and your documentation, and it is not aggregated across customers.",
"webb.larande.block": "Derived from",
"webb.larande.k1": "Verified root causes",
"webb.larande.k2": "Confirmed corrective actions",
"webb.larande.k3": "Recurring fault categories",
"webb.larande.k4": "Procedure completion records",
"webb.larande.k5": "Organization documentation",
"webb.rapport.etikett": "Reporting",
"webb.rapport.rubrik": "Quarterly improvement report",
"webb.rapport.ingress":
"Once a quarter, the platform answers six questions about the workshops own work. Every answer is derived from the case log — nothing is estimated, and nothing is asked of anyone.",
"webb.rapport.f1": "Which faults are we now diagnosing correctly the first time?",
"webb.rapport.f2": "How often does a suspected cause turn out to be the actual one?",
"webb.rapport.f3": "Which faults keep coming back across the fleet?",
"webb.rapport.f4": "Which procedure steps are being skipped, and why?",
"webb.rapport.f5": "What does the workshop know now that it did not know last quarter?",
"webb.rapport.f6": "Are cases being completed, verified and documented — or only completed?",
"webb.pris.etikett": "Commercial",
"webb.pris.rubrik": "Licensing",
"webb.pris.komponent": "Component",
"webb.pris.grund": "Basis",
"webb.pris.plattform": "Platform license",
"webb.pris.plattform.grund": "Per organization, annually",
"webb.pris.anvandare": "User licenses",
"webb.pris.anvandare.grund": "Per active user, monthly",
"webb.pris.moduler": "Enterprise modules",
"webb.pris.moduler.grund": "Optional, per module",
"webb.pris.betalning": "No online payment. No subscription sign-up. Invoicing follows review of the application.",
"webb.pris.aktivering": "Activation sequence",
"webb.pris.a1": "Organization submits registration.",
"webb.pris.a2": "Application is reviewed.",
"webb.pris.a3": "Invoice is issued.",
"webb.pris.a4": "Payment is registered.",
"webb.pris.a5": "Organization is activated.",
"webb.pris.a6": "Additional users are billed monthly.",
"webb.kallor.etikett": "Infrastructure",
"webb.kallor.rubrik": "Operational Knowledge Infrastructure",
"webb.kallor.p1":
"ALVA uses the organizations own authorized knowledge sources. The architecture is provider-agnostic: every source implements the same interface, and no provider is assumed.",
"webb.kallor.p2":
"A beta installation operates on internal documentation alone. External providers are enabled later through separate connectors, without change to the platform core.",
"webb.kallor.block": "Source resolution order",
"webb.kallor.k1": "Internal company procedures",
"webb.kallor.k2": "OEM documentation",
"webb.kallor.k3": "Technical bulletins",
"webb.kallor.k4": "Warranty information",
"webb.kallor.k5": "Service manuals",
"webb.kallor.k6": "Historical verified diagnostics",
"webb.kallor.k7": "Organization best practices",
"webb.login.etikett": "Access",
"webb.login.demo":
"This login authenticates nothing. Type anything into Email and Password and press Sign in — no account is needed, and the portal behind it presents fixed example data. Connected to a platform instance this page authenticates against it, and the portal is closed without a valid session.",
"webb.login.losenord": "Password",
"webb.login.ofullstandigt": "Authentication incomplete. Email and password required.",
"webb.login.misslyckades": "Authentication failed.",
"webb.login.logga_in": "Sign in",
"webb.login.loggar_in": "Signing in",
"webb.login.glomt": "Forgot password",
"webb.ansokan.etikett": "Registration",
"webb.ansokan.demo":
"Nothing is sent. Submitting this form stores nothing, notifies no one, and creates no application — there is no intake behind it yet. The description below states how registration is intended to work, not what happens today.",
"webb.ansokan.avsikt": "Intended operation: applications are reviewed manually and no payment is taken at this stage.",
"webb.falt.foretag": "Company",
"webb.falt.orgnummer": "Organization number",
"webb.falt.kontakt": "Contact person",
"webb.falt.epost": "Email",
"webb.falt.telefon": "Phone",
"webb.falt.tekniker": "Number of technicians",
"webb.falt.bransch": "Industry",
"webb.falt.land": "Country",
"webb.falt.anvandare": "Expected number of users",
"webb.falt.noteringar": "Notes",
"webb.falt.kravs": "(required)",
"webb.ansokan.skicka": "Submit application",
"webb.ansokan.mottagen.etikett": "Application",
"webb.ansokan.mottagen": "Submitted",
"webb.ansokan.mottagen.demo":
"Nothing was submitted and no one was notified. The reference below was computed in your browser from what you typed, and exists nowhere else — it will be gone when you close this page.",
"webb.ansokan.status": "Status",
"webb.ansokan.referens": "Reference",
"webb.ansokan.granskning":
"Applications are reviewed manually. An invoice is issued on approval. The organization is activated once payment is registered.",
"webb.sprak.etikett": "Localization",
"webb.sprak.rubrik": "Languages",
"webb.sprak.ingress":
"English is the default and the source language. Nine translations follow. What the platform does not do is claim that a translated interface means a translated method.",
"webb.sprak.princip.etikett": "Principle",
"webb.sprak.princip.rubrik": "Two kinds of text",
"webb.sprak.granssnitt.rubrik": "Interface text",
"webb.sprak.granssnitt.beteckning": "Falls back silently",
"webb.sprak.granssnitt.text":
"Labels, buttons, statuses. Finite, rarely changed. An English string reaching a German user is an irritation, not a hazard — so a missing translation falls back to English without comment.",
"webb.sprak.metodik.rubrik": "Procedure text",
"webb.sprak.metodik.beteckning": "Never falls back silently",
"webb.sprak.metodik.text":
"Instructions for work on a vehicle. Here an unreviewed translation is worse than a foreign language one — because English looks foreign, while a bad translation looks like an instruction. It is shown in English and marked, with the language named.",
"webb.sprak.invariant":
"The method itself is never translated. Phase names and status words are ALVAs structure and read identically in every country, so an auditor can read a Romanian and a German case record without knowing which language the workshop works in.",
"webb.sprak.tackning.etikett": "Coverage",
"webb.sprak.tackning.rubrik": "What is translated, and what is reviewed",
"webb.sprak.kolumn.sprak": "Language",
"webb.sprak.kolumn.granssnitt": "Interface",
"webb.sprak.kolumn.granskat": "Method reviewed by a specialist",
"webb.sprak.granskat.ja": "Yes",
"webb.sprak.granskat.nej": "No — procedure text shown in English",
"webb.sprak.matt":
"Interface coverage is measured, not estimated: a test fails the build if any key is missing from any language. Review status is a statement about people, not about files, and is set by hand.",
"webb.sprak.kallsprak":
"The English procedure text is a translation of the Swedish source and has not yet been read by a specialist working in the trade. It is held to the same standard as the other nine languages, and the same statement is made about it here rather than quietly excepted because it is the source.",
"webb.sprak.bevis.etikett": "Verification",
"webb.sprak.bevis.rubrik": "The strings that stop a case",
"webb.sprak.bevis.ingress":
"These are the sentences that refuse to let a technician close a case. A refusal nobody understands is a refusal with no way through — so they are the right strings to judge a translation by.",
"webb.sprak.ej_granskad": "Not reviewed",
"webb.sprak.granskad": "Reviewed",
"webb.sprak.granskad.text":
"Procedure text in {sprak} has been read by a specialist working in the trade. Steps and checks are shown in {sprak} throughout.",
"webb.sprak.val.etikett": "Operation",
"webb.sprak.val.rubrik": "How the language is chosen",
"webb.sprak.val.s1.rubrik": "User preference",
"webb.sprak.val.s1.text": "What the individual has selected.",
"webb.sprak.val.s2.rubrik": "Organization setting",
"webb.sprak.val.s2.text": "The workshops documentation language.",
"webb.sprak.val.s3.rubrik": "Browser language",
"webb.sprak.val.s3.text": "The first language the platform recognises.",
"webb.sprak.val.s4.rubrik": "English",
"webb.sprak.val.s4.text": "The default, and the source.",
"webb.sprak.val.notering":
"The organization ranks above the browser deliberately. A workshop in Germany with a Polish technician needs one documentation language — the case record must not change language depending on who happened to write the line.",
};
+185
View File
@@ -137,4 +137,189 @@ export const ES = {
"metodik.ogranskad":
"El texto de procedimiento no ha sido revisado por un especialista técnico en {sprak}. Los pasos y los puntos de control se muestran en inglés cuando no existe una traducción revisada — una traducción sin revisar de una instrucción de seguridad es peor que una en lengua extranjera, porque no parece extranjera.",
"metodik.pa_engelska": "Mostrado en inglés — no hay traducción revisada en {sprak}",
// ---- Sitio público (webb.) ---------------------------------------------
"webb.nav.oversikt": "Visión general",
"webb.ansok": "Solicitar cuenta",
"webb.loggain": "Iniciar sesión",
"webb.fot.impressum": "Aviso legal",
"webb.fot.dataskydd": "Privacidad",
"webb.fot.villkor": "Condiciones",
"webb.fot.tillganglighet": "Accesibilidad",
"webb.fot.sprak": "Idiomas",
"webb.fot.utgavor": "Notas de versión",
"webb.hero.position": "Plataforma de diagnóstico guiado",
"webb.hero.definition": "Procedimientos de diagnóstico estandarizados para una localización de averías repetible y verificable.",
"webb.metod.etikett": "Metodología",
"webb.metod.rubrik": "El modelo ALVA",
"webb.metod.ingress":
"ALVA es un método estandarizado de análisis, localización, verificación y acción sistemáticos. Cada decisión es trazable, cada conclusión verificable, cada acción reproducible.",
"webb.fas.analysis.syfte": "Reunir evidencia.",
"webb.fas.analysis.avgransning": "Solo hechos. En esta fase no se recogen hipótesis.",
"webb.fas.localization.syfte": "Acotar la avería.",
"webb.fas.localization.avgransning": "Delimitar la zona. La causa aún no está establecida.",
"webb.fas.verification.syfte": "Confirmar la causa raíz.",
"webb.fas.verification.avgransning": "Se verifica la causa — no el síntoma.",
"webb.fas.action.syfte": "Ejecutar la acción correctiva.",
"webb.fas.action.avgransning": "Resultado verificado y documentado. De lo contrario, la fase está incompleta.",
"webb.drift.etikett": "Operativa",
"webb.drift.rubrik": "Cómo funciona",
"webb.drift.s1.rubrik": "Crear la organización",
"webb.drift.s1.text": "El registro se envía y se revisa.",
"webb.drift.s2.rubrik": "Los usuarios reciben cuentas",
"webb.drift.s2.text": "El administrador de la organización asigna los roles.",
"webb.drift.s3.rubrik": "Procedimientos de diagnóstico guiados",
"webb.drift.s3.text": "Cada caso sigue un procedimiento definido.",
"webb.drift.s4.rubrik": "Verificación",
"webb.drift.s4.text": "La causa raíz se confirma antes de la acción correctiva.",
"webb.drift.s5.rubrik": "Documentación",
"webb.drift.s5.text": "El informe se genera a partir del registro del caso.",
"webb.drift.s6.rubrik": "Mejora continua",
"webb.drift.s6.text": "Los resultados verificados refinan los procedimientos posteriores.",
"webb.larande.etikett": "Capacidad",
"webb.larande.rubrik": "Aprendizaje de la organización",
"webb.larande.p1":
"La plataforma refina continuamente los procedimientos de diagnóstico con la experiencia operativa verificada de su propia organización.",
"webb.larande.p2":
"Cada diagnóstico completado alimenta la guía posterior. Solo se usan resultados verificados — un caso cerrado sin causa raíz confirmada no aporta nada, por diseño.",
"webb.larande.p3":
"La base de conocimiento pertenece a la organización. Se deriva de sus casos, sus procedimientos y su documentación, y no se agrega entre clientes.",
"webb.larande.block": "Derivada de",
"webb.larande.k1": "Causas raíz verificadas",
"webb.larande.k2": "Acciones correctivas confirmadas",
"webb.larande.k3": "Categorías de averías recurrentes",
"webb.larande.k4": "Procedimientos completados",
"webb.larande.k5": "Documentación de la organización",
"webb.rapport.etikett": "Informes",
"webb.rapport.rubrik": "Informe trimestral de mejora",
"webb.rapport.ingress":
"Una vez al trimestre, la plataforma responde seis preguntas sobre el propio trabajo del taller. Cada respuesta se deriva del registro de casos — nada se estima y no se pregunta a nadie.",
"webb.rapport.f1": "¿Qué averías diagnosticamos ahora bien a la primera?",
"webb.rapport.f2": "¿Con qué frecuencia la causa sospechada resulta ser la real?",
"webb.rapport.f3": "¿Qué averías vuelven una y otra vez en la flota?",
"webb.rapport.f4": "¿Qué pasos del procedimiento se omiten, y por qué?",
"webb.rapport.f5": "¿Qué sabe el taller ahora que no sabía el trimestre pasado?",
"webb.rapport.f6": "¿Se cierran, verifican y documentan los casos — o solo se cierran?",
"webb.pris.etikett": "Comercial",
"webb.pris.rubrik": "Licencias",
"webb.pris.komponent": "Componente",
"webb.pris.grund": "Base",
"webb.pris.plattform": "Licencia de plataforma",
"webb.pris.plattform.grund": "Por organización, anual",
"webb.pris.anvandare": "Licencias de usuario",
"webb.pris.anvandare.grund": "Por usuario activo, mensual",
"webb.pris.moduler": "Módulos de empresa",
"webb.pris.moduler.grund": "Opcionales, por módulo",
"webb.pris.betalning": "Sin pago en línea. Sin alta de suscripción. La facturación sigue a la revisión de la solicitud.",
"webb.pris.aktivering": "Secuencia de activación",
"webb.pris.a1": "La organización envía el registro.",
"webb.pris.a2": "La solicitud se revisa.",
"webb.pris.a3": "Se emite la factura.",
"webb.pris.a4": "Se registra el pago.",
"webb.pris.a5": "La organización se activa.",
"webb.pris.a6": "Los usuarios adicionales se facturan mensualmente.",
"webb.kallor.etikett": "Infraestructura",
"webb.kallor.rubrik": "Infraestructura operativa de conocimiento",
"webb.kallor.p1":
"ALVA usa las fuentes de conocimiento autorizadas propias de la organización. La arquitectura es neutral respecto al proveedor: cada fuente implementa la misma interfaz y no se presupone ningún proveedor.",
"webb.kallor.p2":
"Una instalación beta trabaja solo con documentación interna. Los proveedores externos se habilitan más adelante mediante conectores separados, sin cambios en el núcleo de la plataforma.",
"webb.kallor.block": "Orden de resolución de fuentes",
"webb.kallor.k1": "Procedimientos internos de la empresa",
"webb.kallor.k2": "Documentación OEM",
"webb.kallor.k3": "Boletines técnicos",
"webb.kallor.k4": "Información de garantía",
"webb.kallor.k5": "Manuales de taller",
"webb.kallor.k6": "Diagnósticos verificados históricos",
"webb.kallor.k7": "Buenas prácticas de la organización",
"webb.login.etikett": "Acceso",
"webb.login.demo":
"Este acceso no autentica nada. Escriba cualquier cosa en Correo y Contraseña y pulse Iniciar sesión — no hace falta cuenta, y el portal detrás presenta datos de ejemplo fijos. Conectada a una instancia de la plataforma, esta página se autentica contra ella, y el portal queda cerrado sin una sesión válida.",
"webb.login.losenord": "Contraseña",
"webb.login.ofullstandigt": "Autenticación incompleta. Se requieren correo y contraseña.",
"webb.login.misslyckades": "Autenticación fallida.",
"webb.login.logga_in": "Iniciar sesión",
"webb.login.loggar_in": "Iniciando sesión",
"webb.login.glomt": "Contraseña olvidada",
"webb.ansokan.etikett": "Registro",
"webb.ansokan.demo":
"No se envía nada. Enviar este formulario no guarda nada, no avisa a nadie y no crea ninguna solicitud — todavía no hay recepción detrás. La descripción de abajo indica cómo está previsto que funcione el registro, no lo que ocurre hoy.",
"webb.ansokan.avsikt": "Funcionamiento previsto: las solicitudes se revisan manualmente y en esta fase no se cobra ningún pago.",
"webb.falt.foretag": "Empresa",
"webb.falt.orgnummer": "Número de registro mercantil",
"webb.falt.kontakt": "Persona de contacto",
"webb.falt.epost": "Correo electrónico",
"webb.falt.telefon": "Teléfono",
"webb.falt.tekniker": "Número de técnicos",
"webb.falt.bransch": "Sector",
"webb.falt.land": "País",
"webb.falt.anvandare": "Número previsto de usuarios",
"webb.falt.noteringar": "Observaciones",
"webb.falt.kravs": "(obligatorio)",
"webb.ansokan.skicka": "Enviar la solicitud",
"webb.ansokan.mottagen.etikett": "Solicitud",
"webb.ansokan.mottagen": "Enviada",
"webb.ansokan.mottagen.demo":
"No se transmitió nada y no se avisó a nadie. La referencia de abajo se calculó en su navegador a partir de lo que escribió y no existe en ningún otro lugar — desaparecerá al cerrar esta página.",
"webb.ansokan.status": "Estado",
"webb.ansokan.referens": "Referencia",
"webb.ansokan.granskning":
"Las solicitudes se revisan manualmente. La factura se emite al aprobarse. La organización se activa cuando se registra el pago.",
"webb.sprak.etikett": "Localización",
"webb.sprak.rubrik": "Idiomas",
"webb.sprak.ingress":
"El inglés es el idioma predeterminado y el idioma fuente. Le siguen nueve traducciones. Lo que la plataforma no hace es afirmar que una interfaz traducida signifique un método traducido.",
"webb.sprak.princip.etikett": "Principio",
"webb.sprak.princip.rubrik": "Dos clases de texto",
"webb.sprak.granssnitt.rubrik": "Texto de interfaz",
"webb.sprak.granssnitt.beteckning": "Recurre al inglés en silencio",
"webb.sprak.granssnitt.text":
"Etiquetas, botones, estados. Finito, rara vez cambia. Una cadena en inglés que llega a un usuario alemán es una molestia, no un peligro — así que una traducción ausente recurre al inglés sin comentario.",
"webb.sprak.metodik.rubrik": "Texto de procedimiento",
"webb.sprak.metodik.beteckning": "Nunca recurre al inglés en silencio",
"webb.sprak.metodik.text":
"Instrucciones para trabajar en un vehículo. Aquí una traducción sin revisar es peor que una en lengua extranjera — porque el inglés parece extranjero, mientras que una mala traducción parece una instrucción. Se muestra en inglés y se marca, con el idioma nombrado.",
"webb.sprak.invariant":
"El método en sí nunca se traduce. Los nombres de fase y las palabras de estado son la estructura de ALVA y se leen igual en todos los países, de modo que un auditor puede leer un expediente rumano y uno alemán sin saber en qué idioma trabaja el taller.",
"webb.sprak.tackning.etikett": "Cobertura",
"webb.sprak.tackning.rubrik": "Qué está traducido, y qué está revisado",
"webb.sprak.kolumn.sprak": "Idioma",
"webb.sprak.kolumn.granssnitt": "Interfaz",
"webb.sprak.kolumn.granskat": "Método revisado por un especialista",
"webb.sprak.granskat.ja": "Sí",
"webb.sprak.granskat.nej": "No — texto de procedimiento en inglés",
"webb.sprak.matt":
"La cobertura de la interfaz se mide, no se estima: una prueba hace fallar la compilación si falta alguna clave en algún idioma. El estado de revisión es una afirmación sobre personas, no sobre archivos, y se fija a mano.",
"webb.sprak.kallsprak":
"El texto de procedimiento en inglés es una traducción de la fuente sueca y aún no ha sido leído por un especialista que ejerza el oficio. Se le exige lo mismo que a los otros nueve idiomas, y aquí se hace sobre él la misma declaración en lugar de exceptuarlo en silencio por ser la fuente.",
"webb.sprak.bevis.etikett": "Verificación",
"webb.sprak.bevis.rubrik": "Las frases que detienen un caso",
"webb.sprak.bevis.ingress":
"Estas son las frases que niegan a un técnico cerrar un caso. Una negativa que nadie entiende es una negativa sin salida — por eso son las frases correctas para juzgar una traducción.",
"webb.sprak.ej_granskad": "Sin revisar",
"webb.sprak.granskad": "Revisado",
"webb.sprak.granskad.text":
"El texto de procedimiento en {sprak} ha sido leído por un especialista que ejerce el oficio. Los pasos y los puntos de control se muestran en {sprak} en todo momento.",
"webb.sprak.val.etikett": "Operativa",
"webb.sprak.val.rubrik": "Cómo se elige el idioma",
"webb.sprak.val.s1.rubrik": "Preferencia del usuario",
"webb.sprak.val.s1.text": "Lo que la persona ha seleccionado.",
"webb.sprak.val.s2.rubrik": "Configuración de la organización",
"webb.sprak.val.s2.text": "El idioma de documentación del taller.",
"webb.sprak.val.s3.rubrik": "Idioma del navegador",
"webb.sprak.val.s3.text": "El primer idioma que la plataforma reconoce.",
"webb.sprak.val.s4.rubrik": "Inglés",
"webb.sprak.val.s4.text": "El predeterminado, y la fuente.",
"webb.sprak.val.notering":
"La organización va deliberadamente por delante del navegador. Un taller en Alemania con un técnico polaco necesita un solo idioma de documentación — el expediente no debe cambiar de idioma según quién escribiera la línea.",
};
+185
View File
@@ -138,4 +138,189 @@ export const FR = {
"metodik.ogranskad":
"Le texte de procédure n'a pas été relu par un spécialiste technique en {sprak}. Les étapes et les points de contrôle sont affichés en anglais lorsqu'aucune traduction relue n'existe — une traduction non relue d'une consigne de sécurité est pire qu'une consigne en langue étrangère, parce qu'elle n'a pas l'air étrangère.",
"metodik.pa_engelska": "Affiché en anglais — aucune traduction relue en {sprak}",
// ---- Site public (webb.) -----------------------------------------------
"webb.nav.oversikt": "Aperçu",
"webb.ansok": "Demander un compte",
"webb.loggain": "Connexion",
"webb.fot.impressum": "Mentions légales",
"webb.fot.dataskydd": "Confidentialité",
"webb.fot.villkor": "Conditions",
"webb.fot.tillganglighet": "Accessibilité",
"webb.fot.sprak": "Langues",
"webb.fot.utgavor": "Notes de version",
"webb.hero.position": "Plateforme de diagnostic guidé",
"webb.hero.definition": "Des procédures de diagnostic normalisées pour un dépannage répétable et vérifiable.",
"webb.metod.etikett": "Méthodologie",
"webb.metod.rubrik": "Le modèle ALVA",
"webb.metod.ingress":
"ALVA est une méthode normalisée danalyse, de localisation, de vérification et daction systématiques. Chaque décision est traçable, chaque conclusion vérifiable, chaque action reproductible.",
"webb.fas.analysis.syfte": "Recueillir les preuves.",
"webb.fas.analysis.avgransning": "Des faits uniquement. Les hypothèses ne sont pas recueillies dans cette phase.",
"webb.fas.localization.syfte": "Circonscrire le défaut.",
"webb.fas.localization.avgransning": "Restreindre la zone. La cause nest pas encore établie.",
"webb.fas.verification.syfte": "Confirmer la cause racine.",
"webb.fas.verification.avgransning": "Cest la cause qui est vérifiée — pas le symptôme.",
"webb.fas.action.syfte": "Exécuter laction corrective.",
"webb.fas.action.avgransning": "Résultat vérifié et documenté. Sinon la phase est incomplète.",
"webb.drift.etikett": "Fonctionnement",
"webb.drift.rubrik": "Comment ça fonctionne",
"webb.drift.s1.rubrik": "Créer lorganisation",
"webb.drift.s1.text": "Linscription est soumise puis examinée.",
"webb.drift.s2.rubrik": "Les utilisateurs reçoivent leurs comptes",
"webb.drift.s2.text": "Les rôles sont attribués par ladministrateur de lorganisation.",
"webb.drift.s3.rubrik": "Procédures de diagnostic guidées",
"webb.drift.s3.text": "Chaque dossier suit une procédure définie.",
"webb.drift.s4.rubrik": "Vérification",
"webb.drift.s4.text": "La cause racine est confirmée avant laction corrective.",
"webb.drift.s5.rubrik": "Documentation",
"webb.drift.s5.text": "Le rapport est généré à partir du journal du dossier.",
"webb.drift.s6.rubrik": "Amélioration continue",
"webb.drift.s6.text": "Les résultats vérifiés affinent les procédures suivantes.",
"webb.larande.etikett": "Capacité",
"webb.larande.rubrik": "Apprentissage de lorganisation",
"webb.larande.p1":
"La plateforme affine en continu les procédures de diagnostic à partir de lexpérience opérationnelle vérifiée de votre propre organisation.",
"webb.larande.p2":
"Chaque diagnostic achevé nourrit le guidage suivant. Seuls les résultats vérifiés sont utilisés — un dossier clos sans cause racine confirmée napporte rien, à dessein.",
"webb.larande.p3":
"La base de connaissances appartient à lorganisation. Elle est dérivée de vos dossiers, de vos procédures et de votre documentation, et elle nest pas agrégée entre clients.",
"webb.larande.block": "Dérivée de",
"webb.larande.k1": "Causes racines vérifiées",
"webb.larande.k2": "Actions correctives confirmées",
"webb.larande.k3": "Catégories de défauts récurrents",
"webb.larande.k4": "Procédures menées à terme",
"webb.larande.k5": "Documentation de lorganisation",
"webb.rapport.etikett": "Rapports",
"webb.rapport.rubrik": "Rapport trimestriel damélioration",
"webb.rapport.ingress":
"Une fois par trimestre, la plateforme répond à six questions sur le travail de latelier lui-même. Chaque réponse est dérivée du journal des dossiers — rien nest estimé, et rien nest demandé à personne.",
"webb.rapport.f1": "Quels défauts diagnostiquons-nous désormais correctement du premier coup ?",
"webb.rapport.f2": "À quelle fréquence une cause soupçonnée se révèle-t-elle être la vraie ?",
"webb.rapport.f3": "Quels défauts reviennent sans cesse dans le parc ?",
"webb.rapport.f4": "Quelles étapes de procédure sont sautées, et pourquoi ?",
"webb.rapport.f5": "Que sait latelier aujourdhui quil ne savait pas au trimestre dernier ?",
"webb.rapport.f6": "Les dossiers sont-ils clos, vérifiés et documentés — ou seulement clos ?",
"webb.pris.etikett": "Commercial",
"webb.pris.rubrik": "Licences",
"webb.pris.komponent": "Composant",
"webb.pris.grund": "Base",
"webb.pris.plattform": "Licence de plateforme",
"webb.pris.plattform.grund": "Par organisation, annuelle",
"webb.pris.anvandare": "Licences utilisateur",
"webb.pris.anvandare.grund": "Par utilisateur actif, mensuelle",
"webb.pris.moduler": "Modules dentreprise",
"webb.pris.moduler.grund": "Optionnels, par module",
"webb.pris.betalning": "Aucun paiement en ligne. Aucune souscription dabonnement. La facturation suit lexamen de la demande.",
"webb.pris.aktivering": "Séquence dactivation",
"webb.pris.a1": "Lorganisation soumet son inscription.",
"webb.pris.a2": "La demande est examinée.",
"webb.pris.a3": "La facture est émise.",
"webb.pris.a4": "Le paiement est enregistré.",
"webb.pris.a5": "Lorganisation est activée.",
"webb.pris.a6": "Les utilisateurs supplémentaires sont facturés mensuellement.",
"webb.kallor.etikett": "Infrastructure",
"webb.kallor.rubrik": "Infrastructure de connaissances opérationnelle",
"webb.kallor.p1":
"ALVA utilise les sources de connaissances autorisées propres à lorganisation. Larchitecture est neutre vis-à-vis des fournisseurs : chaque source implémente la même interface, et aucun fournisseur nest présupposé.",
"webb.kallor.p2":
"Une installation bêta fonctionne sur la seule documentation interne. Les fournisseurs externes sont activés plus tard par des connecteurs séparés, sans modification du cœur de la plateforme.",
"webb.kallor.block": "Ordre de résolution des sources",
"webb.kallor.k1": "Procédures internes de lentreprise",
"webb.kallor.k2": "Documentation OEM",
"webb.kallor.k3": "Bulletins techniques",
"webb.kallor.k4": "Informations de garantie",
"webb.kallor.k5": "Manuels datelier",
"webb.kallor.k6": "Diagnostics vérifiés historiques",
"webb.kallor.k7": "Bonnes pratiques de lorganisation",
"webb.login.etikett": "Accès",
"webb.login.demo":
"Cette connexion nauthentifie rien. Saisissez nimporte quoi dans E-mail et Mot de passe et appuyez sur Se connecter — aucun compte nest nécessaire, et le portail derrière présente des données dexemple figées. Reliée à une instance de la plateforme, cette page sauthentifie auprès delle, et le portail est fermé sans session valide.",
"webb.login.losenord": "Mot de passe",
"webb.login.ofullstandigt": "Authentification incomplète. E-mail et mot de passe requis.",
"webb.login.misslyckades": "Échec de lauthentification.",
"webb.login.logga_in": "Se connecter",
"webb.login.loggar_in": "Connexion en cours",
"webb.login.glomt": "Mot de passe oublié",
"webb.ansokan.etikett": "Inscription",
"webb.ansokan.demo":
"Rien nest envoyé. Soumettre ce formulaire nenregistre rien, ne notifie personne et ne crée aucune demande — il ny a pas encore de réception derrière. La description ci-dessous indique comment linscription est censée fonctionner, pas ce qui se passe aujourdhui.",
"webb.ansokan.avsikt": "Fonctionnement prévu : les demandes sont examinées manuellement et aucun paiement nest perçu à ce stade.",
"webb.falt.foretag": "Entreprise",
"webb.falt.orgnummer": "Numéro dimmatriculation",
"webb.falt.kontakt": "Personne de contact",
"webb.falt.epost": "E-mail",
"webb.falt.telefon": "Téléphone",
"webb.falt.tekniker": "Nombre de techniciens",
"webb.falt.bransch": "Secteur",
"webb.falt.land": "Pays",
"webb.falt.anvandare": "Nombre dutilisateurs attendu",
"webb.falt.noteringar": "Remarques",
"webb.falt.kravs": "(obligatoire)",
"webb.ansokan.skicka": "Soumettre la demande",
"webb.ansokan.mottagen.etikett": "Demande",
"webb.ansokan.mottagen": "Soumise",
"webb.ansokan.mottagen.demo":
"Rien na été transmis et personne na été notifié. La référence ci-dessous a été calculée dans votre navigateur à partir de votre saisie et nexiste nulle part ailleurs — elle disparaîtra à la fermeture de cette page.",
"webb.ansokan.status": "Statut",
"webb.ansokan.referens": "Référence",
"webb.ansokan.granskning":
"Les demandes sont examinées manuellement. Une facture est émise à lapprobation. Lorganisation est activée une fois le paiement enregistré.",
"webb.sprak.etikett": "Localisation",
"webb.sprak.rubrik": "Langues",
"webb.sprak.ingress":
"Langlais est la langue par défaut et la langue source. Neuf traductions suivent. Ce que la plateforme ne fait pas : prétendre quune interface traduite signifie une méthode traduite.",
"webb.sprak.princip.etikett": "Principe",
"webb.sprak.princip.rubrik": "Deux sortes de texte",
"webb.sprak.granssnitt.rubrik": "Texte dinterface",
"webb.sprak.granssnitt.beteckning": "Retombe silencieusement",
"webb.sprak.granssnitt.text":
"Étiquettes, boutons, statuts. Fini, rarement modifié. Une chaîne anglaise qui atteint un utilisateur allemand est un agacement, pas un danger — une traduction manquante retombe donc sur langlais sans commentaire.",
"webb.sprak.metodik.rubrik": "Texte de procédure",
"webb.sprak.metodik.beteckning": "Ne retombe jamais silencieusement",
"webb.sprak.metodik.text":
"Des instructions pour travailler sur un véhicule. Ici, une traduction non relue est pire quune version en langue étrangère — parce que langlais a lair étranger, tandis quune mauvaise traduction a lair dune instruction. Elle est affichée en anglais et signalée, avec la langue nommée.",
"webb.sprak.invariant":
"La méthode elle-même nest jamais traduite. Les noms de phase et les mots de statut sont la structure dALVA et se lisent à lidentique dans chaque pays, si bien quun auditeur peut lire un dossier roumain et un dossier allemand sans savoir dans quelle langue latelier travaille.",
"webb.sprak.tackning.etikett": "Couverture",
"webb.sprak.tackning.rubrik": "Ce qui est traduit, et ce qui est relu",
"webb.sprak.kolumn.sprak": "Langue",
"webb.sprak.kolumn.granssnitt": "Interface",
"webb.sprak.kolumn.granskat": "Méthode relue par un spécialiste",
"webb.sprak.granskat.ja": "Oui",
"webb.sprak.granskat.nej": "Non — texte de procédure affiché en anglais",
"webb.sprak.matt":
"La couverture de linterface est mesurée, pas estimée : un test fait échouer la compilation si une clé manque dans une langue. Le statut de relecture est une affirmation sur des personnes, pas sur des fichiers, et il est fixé à la main.",
"webb.sprak.kallsprak":
"Le texte de procédure anglais est une traduction de la source suédoise et na pas encore été lu par un spécialiste exerçant le métier. Il est tenu au même niveau dexigence que les neuf autres langues, et la même déclaration est faite ici à son sujet au lieu de lexcepter discrètement parce quil est la source.",
"webb.sprak.bevis.etikett": "Vérification",
"webb.sprak.bevis.rubrik": "Les phrases qui arrêtent un dossier",
"webb.sprak.bevis.ingress":
"Ce sont les phrases qui refusent à un technicien de clore un dossier. Un refus que personne ne comprend est un refus sans issue — ce sont donc les bonnes phrases pour juger une traduction.",
"webb.sprak.ej_granskad": "Non relu",
"webb.sprak.granskad": "Relu",
"webb.sprak.granskad.text":
"Le texte de procédure en {sprak} a été lu par un spécialiste exerçant le métier. Les étapes et les points de contrôle sont affichés en {sprak} partout.",
"webb.sprak.val.etikett": "Fonctionnement",
"webb.sprak.val.rubrik": "Comment la langue est choisie",
"webb.sprak.val.s1.rubrik": "Préférence de lutilisateur",
"webb.sprak.val.s1.text": "Ce que la personne a choisi.",
"webb.sprak.val.s2.rubrik": "Réglage de lorganisation",
"webb.sprak.val.s2.text": "La langue de documentation de latelier.",
"webb.sprak.val.s3.rubrik": "Langue du navigateur",
"webb.sprak.val.s3.text": "La première langue que la plateforme reconnaît.",
"webb.sprak.val.s4.rubrik": "Anglais",
"webb.sprak.val.s4.text": "La langue par défaut, et la source.",
"webb.sprak.val.notering":
"Lorganisation passe délibérément avant le navigateur. Un atelier en Allemagne avec un technicien polonais a besoin dune seule langue de documentation — le dossier ne doit pas changer de langue selon qui a écrit la ligne.",
};
+185
View File
@@ -138,4 +138,189 @@ export const IT = {
"metodik.ogranskad":
"Il testo delle procedure non è stato revisionato da uno specialista tecnico in {sprak}. I passaggi e i punti di controllo sono mostrati in inglese dove non esiste una traduzione revisionata — una traduzione non revisionata di un'istruzione di sicurezza è peggiore di una in lingua straniera, perché non sembra straniera.",
"metodik.pa_engelska": "Mostrato in inglese — nessuna traduzione revisionata in {sprak}",
// ---- Sito pubblico (webb.) ---------------------------------------------
"webb.nav.oversikt": "Panoramica",
"webb.ansok": "Richiedi un account",
"webb.loggain": "Accesso",
"webb.fot.impressum": "Note legali",
"webb.fot.dataskydd": "Riservatezza",
"webb.fot.villkor": "Condizioni",
"webb.fot.tillganglighet": "Accessibilità",
"webb.fot.sprak": "Lingue",
"webb.fot.utgavor": "Note di rilascio",
"webb.hero.position": "Piattaforma di diagnosi guidata",
"webb.hero.definition": "Procedure diagnostiche standardizzate per una ricerca guasti ripetibile e verificabile.",
"webb.metod.etikett": "Metodologia",
"webb.metod.rubrik": "Il modello ALVA",
"webb.metod.ingress":
"ALVA è un metodo standardizzato di analisi, localizzazione, verifica e azione sistematiche. Ogni decisione è tracciabile, ogni conclusione verificabile, ogni azione riproducibile.",
"webb.fas.analysis.syfte": "Raccogliere le evidenze.",
"webb.fas.analysis.avgransning": "Solo fatti. In questa fase non si raccolgono ipotesi.",
"webb.fas.localization.syfte": "Circoscrivere il guasto.",
"webb.fas.localization.avgransning": "Restringere larea. La causa non è ancora stabilita.",
"webb.fas.verification.syfte": "Confermare la causa radice.",
"webb.fas.verification.avgransning": "Si verifica la causa — non il sintomo.",
"webb.fas.action.syfte": "Eseguire lazione correttiva.",
"webb.fas.action.avgransning": "Risultato verificato e documentato. Altrimenti la fase è incompleta.",
"webb.drift.etikett": "Funzionamento",
"webb.drift.rubrik": "Come funziona",
"webb.drift.s1.rubrik": "Creare lorganizzazione",
"webb.drift.s1.text": "La registrazione viene inviata ed esaminata.",
"webb.drift.s2.rubrik": "Gli utenti ricevono gli account",
"webb.drift.s2.text": "I ruoli sono assegnati dallamministratore dellorganizzazione.",
"webb.drift.s3.rubrik": "Procedure diagnostiche guidate",
"webb.drift.s3.text": "Ogni caso segue una procedura definita.",
"webb.drift.s4.rubrik": "Verifica",
"webb.drift.s4.text": "La causa radice viene confermata prima dellazione correttiva.",
"webb.drift.s5.rubrik": "Documentazione",
"webb.drift.s5.text": "Il rapporto è generato dal registro del caso.",
"webb.drift.s6.rubrik": "Miglioramento continuo",
"webb.drift.s6.text": "Gli esiti verificati affinano le procedure successive.",
"webb.larande.etikett": "Capacità",
"webb.larande.rubrik": "Apprendimento dellorganizzazione",
"webb.larande.p1":
"La piattaforma affina di continuo le procedure diagnostiche con lesperienza operativa verificata della vostra stessa organizzazione.",
"webb.larande.p2":
"Ogni diagnosi completata alimenta la guida successiva. Si usano solo esiti verificati — un caso chiuso senza causa radice confermata non apporta nulla, per costruzione.",
"webb.larande.p3":
"La base di conoscenza appartiene allorganizzazione. È derivata dai vostri casi, dalle vostre procedure e dalla vostra documentazione, e non viene aggregata tra clienti.",
"webb.larande.block": "Derivata da",
"webb.larande.k1": "Cause radice verificate",
"webb.larande.k2": "Azioni correttive confermate",
"webb.larande.k3": "Categorie di guasti ricorrenti",
"webb.larande.k4": "Procedure portate a termine",
"webb.larande.k5": "Documentazione dellorganizzazione",
"webb.rapport.etikett": "Rendicontazione",
"webb.rapport.rubrik": "Rapporto trimestrale di miglioramento",
"webb.rapport.ingress":
"Una volta a trimestre la piattaforma risponde a sei domande sul lavoro dellofficina stessa. Ogni risposta è derivata dal registro dei casi — nulla è stimato, e a nessuno viene chiesto nulla.",
"webb.rapport.f1": "Quali guasti diagnostichiamo ora correttamente al primo tentativo?",
"webb.rapport.f2": "Quanto spesso una causa sospetta si rivela quella reale?",
"webb.rapport.f3": "Quali guasti continuano a ripresentarsi nella flotta?",
"webb.rapport.f4": "Quali passi della procedura vengono saltati, e perché?",
"webb.rapport.f5": "Cosa sa oggi lofficina che non sapeva il trimestre scorso?",
"webb.rapport.f6": "I casi vengono chiusi, verificati e documentati — o soltanto chiusi?",
"webb.pris.etikett": "Commerciale",
"webb.pris.rubrik": "Licenze",
"webb.pris.komponent": "Componente",
"webb.pris.grund": "Base",
"webb.pris.plattform": "Licenza di piattaforma",
"webb.pris.plattform.grund": "Per organizzazione, annuale",
"webb.pris.anvandare": "Licenze utente",
"webb.pris.anvandare.grund": "Per utente attivo, mensile",
"webb.pris.moduler": "Moduli enterprise",
"webb.pris.moduler.grund": "Facoltativi, per modulo",
"webb.pris.betalning": "Nessun pagamento online. Nessuna sottoscrizione di abbonamento. La fatturazione segue lesame della richiesta.",
"webb.pris.aktivering": "Sequenza di attivazione",
"webb.pris.a1": "Lorganizzazione invia la registrazione.",
"webb.pris.a2": "La richiesta viene esaminata.",
"webb.pris.a3": "Viene emessa la fattura.",
"webb.pris.a4": "Il pagamento viene registrato.",
"webb.pris.a5": "Lorganizzazione viene attivata.",
"webb.pris.a6": "Gli utenti aggiuntivi sono fatturati mensilmente.",
"webb.kallor.etikett": "Infrastruttura",
"webb.kallor.rubrik": "Infrastruttura operativa della conoscenza",
"webb.kallor.p1":
"ALVA usa le fonti di conoscenza autorizzate proprie dellorganizzazione. Larchitettura è neutrale rispetto al fornitore: ogni fonte implementa la stessa interfaccia, e nessun fornitore è presupposto.",
"webb.kallor.p2":
"Uninstallazione beta lavora sulla sola documentazione interna. I fornitori esterni si abilitano in seguito tramite connettori separati, senza modifiche al nucleo della piattaforma.",
"webb.kallor.block": "Ordine di risoluzione delle fonti",
"webb.kallor.k1": "Procedure interne dellazienda",
"webb.kallor.k2": "Documentazione OEM",
"webb.kallor.k3": "Bollettini tecnici",
"webb.kallor.k4": "Informazioni di garanzia",
"webb.kallor.k5": "Manuali di officina",
"webb.kallor.k6": "Diagnosi verificate storiche",
"webb.kallor.k7": "Buone pratiche dellorganizzazione",
"webb.login.etikett": "Accesso",
"webb.login.demo":
"Questo accesso non autentica nulla. Scrivete qualsiasi cosa in E-mail e Password e premete Accedi — non serve alcun account, e il portale dietro presenta dati di esempio fissi. Collegata a unistanza della piattaforma, questa pagina si autentica presso di essa, e senza una sessione valida il portale è chiuso.",
"webb.login.losenord": "Password",
"webb.login.ofullstandigt": "Autenticazione incompleta. E-mail e password sono richieste.",
"webb.login.misslyckades": "Autenticazione non riuscita.",
"webb.login.logga_in": "Accedi",
"webb.login.loggar_in": "Accesso in corso",
"webb.login.glomt": "Password dimenticata",
"webb.ansokan.etikett": "Registrazione",
"webb.ansokan.demo":
"Non viene inviato nulla. Inviare questo modulo non salva nulla, non avvisa nessuno e non crea alcuna richiesta — dietro non c’è ancora una ricezione. La descrizione qui sotto dice come la registrazione è pensata per funzionare, non cosa accade oggi.",
"webb.ansokan.avsikt": "Funzionamento previsto: le richieste sono esaminate manualmente e in questa fase non viene riscosso alcun pagamento.",
"webb.falt.foretag": "Azienda",
"webb.falt.orgnummer": "Numero di registro delle imprese",
"webb.falt.kontakt": "Referente",
"webb.falt.epost": "E-mail",
"webb.falt.telefon": "Telefono",
"webb.falt.tekniker": "Numero di tecnici",
"webb.falt.bransch": "Settore",
"webb.falt.land": "Paese",
"webb.falt.anvandare": "Numero previsto di utenti",
"webb.falt.noteringar": "Note",
"webb.falt.kravs": "(obbligatorio)",
"webb.ansokan.skicka": "Invia la richiesta",
"webb.ansokan.mottagen.etikett": "Richiesta",
"webb.ansokan.mottagen": "Inviata",
"webb.ansokan.mottagen.demo":
"Nulla è stato trasmesso e nessuno è stato avvisato. Il riferimento qui sotto è stato calcolato nel vostro browser da ciò che avete digitato e non esiste altrove — sparirà alla chiusura di questa pagina.",
"webb.ansokan.status": "Stato",
"webb.ansokan.referens": "Riferimento",
"webb.ansokan.granskning":
"Le richieste sono esaminate manualmente. Allapprovazione viene emessa una fattura. Lorganizzazione viene attivata alla registrazione del pagamento.",
"webb.sprak.etikett": "Localizzazione",
"webb.sprak.rubrik": "Lingue",
"webb.sprak.ingress":
"Linglese è la lingua predefinita e la lingua di origine. Seguono nove traduzioni. Ciò che la piattaforma non fa è affermare che uninterfaccia tradotta significhi un metodo tradotto.",
"webb.sprak.princip.etikett": "Principio",
"webb.sprak.princip.rubrik": "Due tipi di testo",
"webb.sprak.granssnitt.rubrik": "Testo dinterfaccia",
"webb.sprak.granssnitt.beteckning": "Ripiega in silenzio",
"webb.sprak.granssnitt.text":
"Etichette, pulsanti, stati. Finito, cambia di rado. Una stringa inglese che raggiunge un utente tedesco è un fastidio, non un pericolo — una traduzione mancante ripiega quindi sullinglese senza commento.",
"webb.sprak.metodik.rubrik": "Testo di procedura",
"webb.sprak.metodik.beteckning": "Non ripiega mai in silenzio",
"webb.sprak.metodik.text":
"Istruzioni per lavorare su un veicolo. Qui una traduzione non revisionata è peggiore di una in lingua straniera — perché linglese sembra straniero, mentre una cattiva traduzione sembra unistruzione. Viene mostrata in inglese e contrassegnata, con la lingua nominata.",
"webb.sprak.invariant":
"Il metodo in sé non viene mai tradotto. I nomi delle fasi e le parole di stato sono la struttura di ALVA e si leggono identici in ogni paese, così un revisore può leggere un fascicolo rumeno e uno tedesco senza sapere in quale lingua lavora lofficina.",
"webb.sprak.tackning.etikett": "Copertura",
"webb.sprak.tackning.rubrik": "Cosa è tradotto, e cosa è revisionato",
"webb.sprak.kolumn.sprak": "Lingua",
"webb.sprak.kolumn.granssnitt": "Interfaccia",
"webb.sprak.kolumn.granskat": "Metodo revisionato da uno specialista",
"webb.sprak.granskat.ja": "Sì",
"webb.sprak.granskat.nej": "No — testo di procedura in inglese",
"webb.sprak.matt":
"La copertura dellinterfaccia è misurata, non stimata: un test fa fallire la build se una chiave manca in una lingua. Lo stato di revisione è unaffermazione su persone, non su file, e si imposta a mano.",
"webb.sprak.kallsprak":
"Il testo di procedura inglese è una traduzione della fonte svedese e non è ancora stato letto da uno specialista che esercita il mestiere. È tenuto allo stesso standard delle altre nove lingue, e qui se ne fa la stessa dichiarazione invece di esentarlo in silenzio perché è la fonte.",
"webb.sprak.bevis.etikett": "Verifica",
"webb.sprak.bevis.rubrik": "Le frasi che fermano un caso",
"webb.sprak.bevis.ingress":
"Queste sono le frasi che negano a un tecnico la chiusura di un caso. Un rifiuto che nessuno capisce è un rifiuto senza via duscita — sono quindi le frasi giuste per giudicare una traduzione.",
"webb.sprak.ej_granskad": "Non revisionato",
"webb.sprak.granskad": "Revisionato",
"webb.sprak.granskad.text":
"Il testo di procedura in {sprak} è stato letto da uno specialista che esercita il mestiere. Passi e punti di controllo sono mostrati in {sprak} ovunque.",
"webb.sprak.val.etikett": "Funzionamento",
"webb.sprak.val.rubrik": "Come viene scelta la lingua",
"webb.sprak.val.s1.rubrik": "Preferenza dellutente",
"webb.sprak.val.s1.text": "Ciò che la singola persona ha selezionato.",
"webb.sprak.val.s2.rubrik": "Impostazione dellorganizzazione",
"webb.sprak.val.s2.text": "La lingua di documentazione dellofficina.",
"webb.sprak.val.s3.rubrik": "Lingua del browser",
"webb.sprak.val.s3.text": "La prima lingua che la piattaforma riconosce.",
"webb.sprak.val.s4.rubrik": "Inglese",
"webb.sprak.val.s4.text": "La predefinita, e la fonte.",
"webb.sprak.val.notering":
"Lorganizzazione precede deliberatamente il browser. Unofficina in Germania con un tecnico polacco ha bisogno di ununica lingua di documentazione — il fascicolo non deve cambiare lingua a seconda di chi ha scritto la riga.",
};
+185
View File
@@ -137,4 +137,189 @@ export const NL = {
"metodik.ogranskad":
"De proceduretekst is niet gecontroleerd door een technisch specialist in het {sprak}. Stappen en controlepunten worden in het Engels weergegeven waar geen gecontroleerde vertaling bestaat — een ongecontroleerde vertaling van een veiligheidsinstructie is slechter dan een anderstalige, omdat die er niet anderstalig uitziet.",
"metodik.pa_engelska": "Weergegeven in het Engels — geen gecontroleerde vertaling in het {sprak}",
// ---- Publieke website (webb.) ------------------------------------------
"webb.nav.oversikt": "Overzicht",
"webb.ansok": "Account aanvragen",
"webb.loggain": "Inloggen",
"webb.fot.impressum": "Colofon",
"webb.fot.dataskydd": "Privacybeleid",
"webb.fot.villkor": "Voorwaarden",
"webb.fot.tillganglighet": "Toegankelijkheid",
"webb.fot.sprak": "Talen",
"webb.fot.utgavor": "Release-informatie",
"webb.hero.position": "Geleid diagnoseplatform",
"webb.hero.definition": "Gestandaardiseerde diagnoseprocedures voor herhaalbaar en verifieerbaar storingzoeken.",
"webb.metod.etikett": "Methodiek",
"webb.metod.rubrik": "Het ALVA-model",
"webb.metod.ingress":
"ALVA is een gestandaardiseerde methode voor systematische analyse, lokalisatie, verificatie en actie. Elke beslissing is traceerbaar, elke conclusie verifieerbaar, elke actie reproduceerbaar.",
"webb.fas.analysis.syfte": "Bewijs verzamelen.",
"webb.fas.analysis.avgransning": "Alleen feiten. Hypothesen worden in deze fase niet verzameld.",
"webb.fas.localization.syfte": "De storing insluiten.",
"webb.fas.localization.avgransning": "Het gebied verkleinen. De oorzaak staat nog niet vast.",
"webb.fas.verification.syfte": "De grondoorzaak bevestigen.",
"webb.fas.verification.avgransning": "De oorzaak wordt geverifieerd — niet het symptoom.",
"webb.fas.action.syfte": "De corrigerende actie uitvoeren.",
"webb.fas.action.avgransning": "Resultaat geverifieerd en gedocumenteerd. Anders is de fase onvolledig.",
"webb.drift.etikett": "Werking",
"webb.drift.rubrik": "Zo werkt het",
"webb.drift.s1.rubrik": "Organisatie aanmaken",
"webb.drift.s1.text": "De registratie wordt ingediend en beoordeeld.",
"webb.drift.s2.rubrik": "Gebruikers krijgen accounts",
"webb.drift.s2.text": "Rollen worden toegekend door de beheerder van de organisatie.",
"webb.drift.s3.rubrik": "Geleide diagnoseprocedures",
"webb.drift.s3.text": "Elke zaak volgt een gedefinieerde procedure.",
"webb.drift.s4.rubrik": "Verificatie",
"webb.drift.s4.text": "De grondoorzaak wordt bevestigd vóór de corrigerende actie.",
"webb.drift.s5.rubrik": "Documentatie",
"webb.drift.s5.text": "Het rapport wordt gegenereerd uit het zaaklogboek.",
"webb.drift.s6.rubrik": "Continue verbetering",
"webb.drift.s6.text": "Geverifieerde uitkomsten verfijnen volgende procedures.",
"webb.larande.etikett": "Vermogen",
"webb.larande.rubrik": "Lerende organisatie",
"webb.larande.p1":
"Het platform verfijnt diagnoseprocedures voortdurend met geverifieerde praktijkervaring uit de eigen organisatie.",
"webb.larande.p2":
"Elke afgeronde diagnose voedt de volgende begeleiding. Alleen geverifieerde uitkomsten worden gebruikt — een zaak die zonder bevestigde grondoorzaak is gesloten draagt bewust niets bij.",
"webb.larande.p3":
"De kennisbank is van de organisatie. Ze wordt afgeleid uit uw zaken, uw procedures en uw documentatie, en wordt niet over klanten heen samengevoegd.",
"webb.larande.block": "Afgeleid uit",
"webb.larande.k1": "Geverifieerde grondoorzaken",
"webb.larande.k2": "Bevestigde corrigerende acties",
"webb.larande.k3": "Terugkerende storingscategorieën",
"webb.larande.k4": "Afgeronde procedures",
"webb.larande.k5": "Documentatie van de organisatie",
"webb.rapport.etikett": "Rapportage",
"webb.rapport.rubrik": "Kwartaalrapport verbetering",
"webb.rapport.ingress":
"Eén keer per kwartaal beantwoordt het platform zes vragen over het eigen werk van de werkplaats. Elk antwoord wordt afgeleid uit het zaaklogboek — niets wordt geschat, en niemand wordt iets gevraagd.",
"webb.rapport.f1": "Welke storingen stellen we nu in één keer goed vast?",
"webb.rapport.f2": "Hoe vaak blijkt een vermoede oorzaak de werkelijke te zijn?",
"webb.rapport.f3": "Welke storingen blijven in het wagenpark terugkomen?",
"webb.rapport.f4": "Welke procedurestappen worden overgeslagen, en waarom?",
"webb.rapport.f5": "Wat weet de werkplaats nu dat ze vorig kwartaal niet wist?",
"webb.rapport.f6": "Worden zaken afgerond, geverifieerd en gedocumenteerd — of alleen afgerond?",
"webb.pris.etikett": "Commercieel",
"webb.pris.rubrik": "Licenties",
"webb.pris.komponent": "Onderdeel",
"webb.pris.grund": "Grondslag",
"webb.pris.plattform": "Platformlicentie",
"webb.pris.plattform.grund": "Per organisatie, jaarlijks",
"webb.pris.anvandare": "Gebruikerslicenties",
"webb.pris.anvandare.grund": "Per actieve gebruiker, maandelijks",
"webb.pris.moduler": "Bedrijfsmodules",
"webb.pris.moduler.grund": "Optioneel, per module",
"webb.pris.betalning": "Geen onlinebetaling. Geen abonnementsregistratie. Facturering volgt op beoordeling van de aanvraag.",
"webb.pris.aktivering": "Activeringsvolgorde",
"webb.pris.a1": "De organisatie dient de registratie in.",
"webb.pris.a2": "De aanvraag wordt beoordeeld.",
"webb.pris.a3": "De factuur wordt opgesteld.",
"webb.pris.a4": "De betaling wordt geregistreerd.",
"webb.pris.a5": "De organisatie wordt geactiveerd.",
"webb.pris.a6": "Extra gebruikers worden maandelijks gefactureerd.",
"webb.kallor.etikett": "Infrastructuur",
"webb.kallor.rubrik": "Operationele kennisinfrastructuur",
"webb.kallor.p1":
"ALVA gebruikt de eigen geautoriseerde kennisbronnen van de organisatie. De architectuur is leveranciersneutraal: elke bron implementeert dezelfde interface, en geen leverancier wordt verondersteld.",
"webb.kallor.p2":
"Een bèta-installatie werkt uitsluitend met interne documentatie. Externe leveranciers worden later via aparte koppelingen ingeschakeld, zonder wijziging aan de platformkern.",
"webb.kallor.block": "Volgorde van bronraadpleging",
"webb.kallor.k1": "Interne bedrijfsprocedures",
"webb.kallor.k2": "OEM-documentatie",
"webb.kallor.k3": "Technische bulletins",
"webb.kallor.k4": "Garantie-informatie",
"webb.kallor.k5": "Werkplaatshandboeken",
"webb.kallor.k6": "Historische geverifieerde diagnoses",
"webb.kallor.k7": "Beste praktijken van de organisatie",
"webb.login.etikett": "Toegang",
"webb.login.demo":
"Deze aanmelding authenticeert niets. Typ wat dan ook in E-mail en Wachtwoord en druk op Aanmelden — er is geen account nodig, en het portaal erachter toont vaste voorbeeldgegevens. Verbonden met een platforminstantie authenticeert deze pagina zich daartegen, en zonder geldige sessie is het portaal gesloten.",
"webb.login.losenord": "Wachtwoord",
"webb.login.ofullstandigt": "Authenticatie onvolledig. E-mail en wachtwoord vereist.",
"webb.login.misslyckades": "Authenticatie mislukt.",
"webb.login.logga_in": "Aanmelden",
"webb.login.loggar_in": "Bezig met aanmelden",
"webb.login.glomt": "Wachtwoord vergeten",
"webb.ansokan.etikett": "Registratie",
"webb.ansokan.demo":
"Er wordt niets verzonden. Dit formulier indienen slaat niets op, meldt niemand iets en maakt geen aanvraag aan — er zit nog geen ontvangst achter. De beschrijving hieronder zegt hoe de registratie bedoeld is te werken, niet wat er vandaag gebeurt.",
"webb.ansokan.avsikt": "Beoogde werking: aanvragen worden handmatig beoordeeld en in dit stadium wordt geen betaling geïnd.",
"webb.falt.foretag": "Bedrijf",
"webb.falt.orgnummer": "Registratienummer",
"webb.falt.kontakt": "Contactpersoon",
"webb.falt.epost": "E-mail",
"webb.falt.telefon": "Telefoon",
"webb.falt.tekniker": "Aantal technici",
"webb.falt.bransch": "Branche",
"webb.falt.land": "Land",
"webb.falt.anvandare": "Verwacht aantal gebruikers",
"webb.falt.noteringar": "Opmerkingen",
"webb.falt.kravs": "(verplicht)",
"webb.ansokan.skicka": "Aanvraag indienen",
"webb.ansokan.mottagen.etikett": "Aanvraag",
"webb.ansokan.mottagen": "Ingediend",
"webb.ansokan.mottagen.demo":
"Er is niets verzonden en niemand is op de hoogte gebracht. De referentie hieronder is in uw browser berekend uit wat u typte en bestaat nergens anders — ze is weg zodra u deze pagina sluit.",
"webb.ansokan.status": "Status",
"webb.ansokan.referens": "Referentie",
"webb.ansokan.granskning":
"Aanvragen worden handmatig beoordeeld. Bij goedkeuring wordt een factuur opgesteld. De organisatie wordt geactiveerd zodra de betaling is geregistreerd.",
"webb.sprak.etikett": "Lokalisatie",
"webb.sprak.rubrik": "Talen",
"webb.sprak.ingress":
"Engels is de standaard en de brontaal. Negen vertalingen volgen. Wat het platform niet doet, is beweren dat een vertaalde interface een vertaalde methode betekent.",
"webb.sprak.princip.etikett": "Principe",
"webb.sprak.princip.rubrik": "Twee soorten tekst",
"webb.sprak.granssnitt.rubrik": "Interfacetekst",
"webb.sprak.granssnitt.beteckning": "Valt stil terug",
"webb.sprak.granssnitt.text":
"Labels, knoppen, statussen. Eindig, zelden gewijzigd. Een Engelse tekst die een Duitse gebruiker bereikt is een ergernis, geen gevaar — een ontbrekende vertaling valt dus zonder commentaar terug op het Engels.",
"webb.sprak.metodik.rubrik": "Proceduretekst",
"webb.sprak.metodik.beteckning": "Valt nooit stil terug",
"webb.sprak.metodik.text":
"Instructies voor werk aan een voertuig. Hier is een ongecontroleerde vertaling erger dan een anderstalige — want Engels ziet er vreemd uit, terwijl een slechte vertaling eruitziet als een instructie. Ze wordt in het Engels getoond en gemarkeerd, met de taal benoemd.",
"webb.sprak.invariant":
"De methode zelf wordt nooit vertaald. Fasenamen en statuswoorden zijn de structuur van ALVA en lezen in elk land hetzelfde, zodat een auditor een Roemeens en een Duits dossier kan lezen zonder te weten in welke taal de werkplaats werkt.",
"webb.sprak.tackning.etikett": "Dekking",
"webb.sprak.tackning.rubrik": "Wat vertaald is, en wat gecontroleerd is",
"webb.sprak.kolumn.sprak": "Taal",
"webb.sprak.kolumn.granssnitt": "Interface",
"webb.sprak.kolumn.granskat": "Methode gecontroleerd door een specialist",
"webb.sprak.granskat.ja": "Ja",
"webb.sprak.granskat.nej": "Nee — proceduretekst in het Engels",
"webb.sprak.matt":
"De dekking van de interface wordt gemeten, niet geschat: een test laat de build falen als een sleutel in een taal ontbreekt. De controlestatus is een uitspraak over mensen, niet over bestanden, en wordt met de hand gezet.",
"webb.sprak.kallsprak":
"De Engelse proceduretekst is een vertaling van de Zweedse bron en is nog niet gelezen door een specialist die het vak uitoefent. Hij wordt aan dezelfde maatstaf gehouden als de andere negen talen, en hier wordt over hem dezelfde uitspraak gedaan in plaats van hem stilletjes uit te zonderen omdat hij de bron is.",
"webb.sprak.bevis.etikett": "Verificatie",
"webb.sprak.bevis.rubrik": "De zinnen die een zaak stoppen",
"webb.sprak.bevis.ingress":
"Dit zijn de zinnen die een technicus weigeren een zaak te sluiten. Een weigering die niemand begrijpt is een weigering zonder uitweg — dus zijn dit de juiste zinnen om een vertaling op te beoordelen.",
"webb.sprak.ej_granskad": "Niet gecontroleerd",
"webb.sprak.granskad": "Gecontroleerd",
"webb.sprak.granskad.text":
"De proceduretekst in het {sprak} is gelezen door een specialist die het vak uitoefent. Stappen en controlepunten worden overal in het {sprak} getoond.",
"webb.sprak.val.etikett": "Werking",
"webb.sprak.val.rubrik": "Hoe de taal wordt gekozen",
"webb.sprak.val.s1.rubrik": "Voorkeur van de gebruiker",
"webb.sprak.val.s1.text": "Wat de persoon zelf heeft geselecteerd.",
"webb.sprak.val.s2.rubrik": "Instelling van de organisatie",
"webb.sprak.val.s2.text": "De documentatietaal van de werkplaats.",
"webb.sprak.val.s3.rubrik": "Browsertaal",
"webb.sprak.val.s3.text": "De eerste taal die het platform herkent.",
"webb.sprak.val.s4.rubrik": "Engels",
"webb.sprak.val.s4.text": "De standaard, en de bron.",
"webb.sprak.val.notering":
"De organisatie gaat bewust vóór de browser. Een werkplaats in Duitsland met een Poolse technicus heeft één documentatietaal nodig — het dossier mag niet van taal wisselen afhankelijk van wie de regel toevallig schreef.",
};
+185
View File
@@ -139,4 +139,189 @@ export const PL = {
"metodik.ogranskad":
"Tekst procedur nie został sprawdzony przez specjalistę technicznego w tym języku ({sprak}). Kroki i punkty kontrolne są wyświetlane po angielsku tam, gdzie nie ma sprawdzonego tłumaczenia — niesprawdzone tłumaczenie instrukcji bezpieczeństwa jest gorsze niż instrukcja w obcym języku, ponieważ nie wygląda obco.",
"metodik.pa_engelska": "Wyświetlane po angielsku — brak sprawdzonego tłumaczenia w tym języku ({sprak})",
// ---- Publiczna witryna (webb.) -----------------------------------------
"webb.nav.oversikt": "Przegląd",
"webb.ansok": "Wniosek o konto",
"webb.loggain": "Logowanie",
"webb.fot.impressum": "Nota prawna",
"webb.fot.dataskydd": "Prywatność",
"webb.fot.villkor": "Warunki",
"webb.fot.tillganglighet": "Dostępność",
"webb.fot.sprak": "Języki",
"webb.fot.utgavor": "Informacje o wydaniach",
"webb.hero.position": "Platforma diagnostyki prowadzonej",
"webb.hero.definition": "Znormalizowane procedury diagnostyczne dla powtarzalnego i weryfikowalnego wykrywania usterek.",
"webb.metod.etikett": "Metodyka",
"webb.metod.rubrik": "Model ALVA",
"webb.metod.ingress":
"ALVA to znormalizowana metoda systematycznej analizy, lokalizacji, weryfikacji i działania. Każda decyzja jest identyfikowalna, każdy wniosek weryfikowalny, każde działanie powtarzalne.",
"webb.fas.analysis.syfte": "Zebrać dowody.",
"webb.fas.analysis.avgransning": "Wyłącznie fakty. W tej fazie nie zbiera się hipotez.",
"webb.fas.localization.syfte": "Zawęzić usterkę.",
"webb.fas.localization.avgransning": "Ograniczyć obszar. Przyczyna nie jest jeszcze ustalona.",
"webb.fas.verification.syfte": "Potwierdzić przyczynę źródłową.",
"webb.fas.verification.avgransning": "Weryfikowana jest przyczyna — nie objaw.",
"webb.fas.action.syfte": "Wykonać działanie naprawcze.",
"webb.fas.action.avgransning": "Wynik zweryfikowany i udokumentowany. Inaczej faza jest niezakończona.",
"webb.drift.etikett": "Działanie",
"webb.drift.rubrik": "Jak to działa",
"webb.drift.s1.rubrik": "Utworzenie organizacji",
"webb.drift.s1.text": "Rejestracja zostaje złożona i rozpatrzona.",
"webb.drift.s2.rubrik": "Użytkownicy otrzymują konta",
"webb.drift.s2.text": "Role przydziela administrator organizacji.",
"webb.drift.s3.rubrik": "Prowadzone procedury diagnostyczne",
"webb.drift.s3.text": "Każda sprawa przebiega według zdefiniowanej procedury.",
"webb.drift.s4.rubrik": "Weryfikacja",
"webb.drift.s4.text": "Przyczyna źródłowa jest potwierdzana przed działaniem naprawczym.",
"webb.drift.s5.rubrik": "Dokumentacja",
"webb.drift.s5.text": "Raport powstaje z dziennika sprawy.",
"webb.drift.s6.rubrik": "Ciągłe doskonalenie",
"webb.drift.s6.text": "Zweryfikowane wyniki udoskonalają kolejne procedury.",
"webb.larande.etikett": "Zdolność",
"webb.larande.rubrik": "Uczenie się organizacji",
"webb.larande.p1":
"Platforma stale udoskonala procedury diagnostyczne na podstawie zweryfikowanego doświadczenia operacyjnego własnej organizacji.",
"webb.larande.p2":
"Każda ukończona diagnoza zasila kolejne wskazówki. Używane są wyłącznie zweryfikowane wyniki — sprawa zamknięta bez potwierdzonej przyczyny źródłowej celowo nie wnosi nic.",
"webb.larande.p3":
"Baza wiedzy należy do organizacji. Powstaje z waszych spraw, waszych procedur i waszej dokumentacji i nie jest agregowana między klientami.",
"webb.larande.block": "Pochodzi z",
"webb.larande.k1": "Zweryfikowane przyczyny źródłowe",
"webb.larande.k2": "Potwierdzone działania naprawcze",
"webb.larande.k3": "Powtarzające się kategorie usterek",
"webb.larande.k4": "Zapisy ukończonych procedur",
"webb.larande.k5": "Dokumentacja organizacji",
"webb.rapport.etikett": "Raportowanie",
"webb.rapport.rubrik": "Kwartalny raport doskonalenia",
"webb.rapport.ingress":
"Raz na kwartał platforma odpowiada na sześć pytań o pracę samego warsztatu. Każda odpowiedź pochodzi z dziennika spraw — niczego się nie szacuje i nikogo o nic nie pyta.",
"webb.rapport.f1": "Które usterki diagnozujemy teraz poprawnie za pierwszym razem?",
"webb.rapport.f2": "Jak często podejrzewana przyczyna okazuje się rzeczywistą?",
"webb.rapport.f3": "Które usterki wciąż wracają we flocie?",
"webb.rapport.f4": "Które kroki procedury są pomijane i dlaczego?",
"webb.rapport.f5": "Co warsztat wie teraz, czego nie wiedział w zeszłym kwartale?",
"webb.rapport.f6": "Czy sprawy są zamykane, weryfikowane i dokumentowane — czy tylko zamykane?",
"webb.pris.etikett": "Warunki handlowe",
"webb.pris.rubrik": "Licencjonowanie",
"webb.pris.komponent": "Składnik",
"webb.pris.grund": "Podstawa",
"webb.pris.plattform": "Licencja platformy",
"webb.pris.plattform.grund": "Na organizację, rocznie",
"webb.pris.anvandare": "Licencje użytkowników",
"webb.pris.anvandare.grund": "Na aktywnego użytkownika, miesięcznie",
"webb.pris.moduler": "Moduły korporacyjne",
"webb.pris.moduler.grund": "Opcjonalne, na moduł",
"webb.pris.betalning": "Bez płatności online. Bez samodzielnej subskrypcji. Fakturowanie następuje po rozpatrzeniu wniosku.",
"webb.pris.aktivering": "Kolejność aktywacji",
"webb.pris.a1": "Organizacja składa rejestrację.",
"webb.pris.a2": "Wniosek jest rozpatrywany.",
"webb.pris.a3": "Wystawiana jest faktura.",
"webb.pris.a4": "Płatność zostaje zaksięgowana.",
"webb.pris.a5": "Organizacja zostaje aktywowana.",
"webb.pris.a6": "Kolejni użytkownicy są rozliczani miesięcznie.",
"webb.kallor.etikett": "Infrastruktura",
"webb.kallor.rubrik": "Operacyjna infrastruktura wiedzy",
"webb.kallor.p1":
"ALVA korzysta z własnych, autoryzowanych źródeł wiedzy organizacji. Architektura jest neutralna wobec dostawców: każde źródło implementuje ten sam interfejs i żaden dostawca nie jest zakładany.",
"webb.kallor.p2":
"Instalacja beta pracuje wyłącznie na dokumentacji wewnętrznej. Zewnętrzni dostawcy są włączani później przez osobne łączniki, bez zmian w rdzeniu platformy.",
"webb.kallor.block": "Kolejność rozstrzygania źródeł",
"webb.kallor.k1": "Wewnętrzne procedury firmy",
"webb.kallor.k2": "Dokumentacja OEM",
"webb.kallor.k3": "Biuletyny techniczne",
"webb.kallor.k4": "Informacje gwarancyjne",
"webb.kallor.k5": "Podręczniki serwisowe",
"webb.kallor.k6": "Historyczne zweryfikowane diagnozy",
"webb.kallor.k7": "Dobre praktyki organizacji",
"webb.login.etikett": "Dostęp",
"webb.login.demo":
"To logowanie niczego nie uwierzytelnia. Wpisz cokolwiek w polach E-mail i Hasło i naciśnij Zaloguj — konto nie jest potrzebne, a portal za nim pokazuje stałe dane przykładowe. Połączona z instancją platformy strona uwierzytelnia się wobec niej, a bez ważnej sesji portal jest zamknięty.",
"webb.login.losenord": "Hasło",
"webb.login.ofullstandigt": "Uwierzytelnianie niekompletne. Wymagane są e-mail i hasło.",
"webb.login.misslyckades": "Uwierzytelnianie nie powiodło się.",
"webb.login.logga_in": "Zaloguj",
"webb.login.loggar_in": "Logowanie w toku",
"webb.login.glomt": "Nie pamiętam hasła",
"webb.ansokan.etikett": "Rejestracja",
"webb.ansokan.demo":
"Nic nie jest wysyłane. Wysłanie formularza niczego nie zapisuje, nikogo nie powiadamia i nie tworzy wniosku — nie ma za nim jeszcze punktu przyjęć. Opis poniżej mówi, jak rejestracja ma działać, a nie co dzieje się dziś.",
"webb.ansokan.avsikt": "Zamierzone działanie: wnioski są rozpatrywane ręcznie i na tym etapie nie jest pobierana żadna płatność.",
"webb.falt.foretag": "Firma",
"webb.falt.orgnummer": "Numer rejestrowy",
"webb.falt.kontakt": "Osoba kontaktowa",
"webb.falt.epost": "E-mail",
"webb.falt.telefon": "Telefon",
"webb.falt.tekniker": "Liczba techników",
"webb.falt.bransch": "Branża",
"webb.falt.land": "Kraj",
"webb.falt.anvandare": "Przewidywana liczba użytkowników",
"webb.falt.noteringar": "Uwagi",
"webb.falt.kravs": "(wymagane)",
"webb.ansokan.skicka": "Wyślij wniosek",
"webb.ansokan.mottagen.etikett": "Wniosek",
"webb.ansokan.mottagen": "Złożono",
"webb.ansokan.mottagen.demo":
"Nic nie zostało przekazane i nikt nie został powiadomiony. Poniższy numer referencyjny obliczono w twojej przeglądarce z tego, co wpisano, i nie istnieje nigdzie indziej — zniknie po zamknięciu tej strony.",
"webb.ansokan.status": "Status",
"webb.ansokan.referens": "Numer referencyjny",
"webb.ansokan.granskning":
"Wnioski są rozpatrywane ręcznie. Po zatwierdzeniu wystawiana jest faktura. Organizacja zostaje aktywowana po zaksięgowaniu płatności.",
"webb.sprak.etikett": "Lokalizacja",
"webb.sprak.rubrik": "Języki",
"webb.sprak.ingress":
"Angielski jest językiem domyślnym i źródłowym. Po nim następuje dziewięć tłumaczeń. Czego platforma nie robi: nie twierdzi, że przetłumaczony interfejs oznacza przetłumaczoną metodę.",
"webb.sprak.princip.etikett": "Zasada",
"webb.sprak.princip.rubrik": "Dwa rodzaje tekstu",
"webb.sprak.granssnitt.rubrik": "Tekst interfejsu",
"webb.sprak.granssnitt.beteckning": "Cofa się po cichu",
"webb.sprak.granssnitt.text":
"Etykiety, przyciski, statusy. Skończony, rzadko zmieniany. Angielski napis, który trafi do niemieckiego użytkownika, to irytacja, nie zagrożenie — brakujące tłumaczenie cofa się więc do angielskiego bez komentarza.",
"webb.sprak.metodik.rubrik": "Tekst procedur",
"webb.sprak.metodik.beteckning": "Nigdy nie cofa się po cichu",
"webb.sprak.metodik.text":
"Instrukcje pracy przy pojeździe. Tu niesprawdzone tłumaczenie jest gorsze niż tekst w obcym języku — bo angielski wygląda obco, a złe tłumaczenie wygląda jak instrukcja. Jest pokazywany po angielsku i oznaczany, z nazwanym językiem.",
"webb.sprak.invariant":
"Sama metoda nigdy nie jest tłumaczona. Nazwy faz i słowa statusów to struktura ALVA i czyta się je identycznie w każdym kraju, więc audytor może przeczytać rumuńskie i niemieckie akta sprawy, nie wiedząc, w jakim języku pracuje warsztat.",
"webb.sprak.tackning.etikett": "Pokrycie",
"webb.sprak.tackning.rubrik": "Co jest przetłumaczone, a co sprawdzone",
"webb.sprak.kolumn.sprak": "Język",
"webb.sprak.kolumn.granssnitt": "Interfejs",
"webb.sprak.kolumn.granskat": "Metodyka sprawdzona przez specjalistę",
"webb.sprak.granskat.ja": "Tak",
"webb.sprak.granskat.nej": "Nie — tekst procedur po angielsku",
"webb.sprak.matt":
"Pokrycie interfejsu jest mierzone, nie szacowane: test wywraca kompilację, jeśli jakikolwiek klucz brakuje w jakimkolwiek języku. Status sprawdzenia to stwierdzenie o ludziach, nie o plikach, i ustawia się go ręcznie.",
"webb.sprak.kallsprak":
"Angielski tekst procedur jest tłumaczeniem szwedzkiego źródła i nie został jeszcze przeczytany przez specjalistę pracującego w zawodzie. Obowiązuje go ten sam standard co pozostałe dziewięć języków i tutaj pada o nim to samo stwierdzenie, zamiast po cichu robić wyjątek dlatego, że jest źródłem.",
"webb.sprak.bevis.etikett": "Weryfikacja",
"webb.sprak.bevis.rubrik": "Zdania, które zatrzymują sprawę",
"webb.sprak.bevis.ingress":
"To zdania, które odmawiają technikowi zamknięcia sprawy. Odmowa, której nikt nie rozumie, to odmowa bez wyjścia — dlatego to właściwe zdania do oceny tłumaczenia.",
"webb.sprak.ej_granskad": "Niesprawdzone",
"webb.sprak.granskad": "Sprawdzone",
"webb.sprak.granskad.text":
"Tekst procedur w języku {sprak} został przeczytany przez specjalistę pracującego w zawodzie. Kroki i punkty kontrolne są wszędzie pokazywane w języku {sprak}.",
"webb.sprak.val.etikett": "Działanie",
"webb.sprak.val.rubrik": "Jak wybierany jest język",
"webb.sprak.val.s1.rubrik": "Wybór użytkownika",
"webb.sprak.val.s1.text": "To, co wybrała dana osoba.",
"webb.sprak.val.s2.rubrik": "Ustawienie organizacji",
"webb.sprak.val.s2.text": "Język dokumentacji warsztatu.",
"webb.sprak.val.s3.rubrik": "Język przeglądarki",
"webb.sprak.val.s3.text": "Pierwszy język, który platforma rozpoznaje.",
"webb.sprak.val.s4.rubrik": "Angielski",
"webb.sprak.val.s4.text": "Domyślny, i źródłowy.",
"webb.sprak.val.notering":
"Organizacja celowo stoi wyżej niż przeglądarka. Warsztat w Niemczech z polskim technikiem potrzebuje jednego języka dokumentacji — akta sprawy nie mogą zmieniać języka w zależności od tego, kto akurat napisał wiersz.",
};
+185
View File
@@ -137,4 +137,189 @@ export const PT = {
"metodik.ogranskad":
"O texto dos procedimentos não foi revisto por um especialista técnico em {sprak}. Os passos e os pontos de controlo são apresentados em inglês onde não existe tradução revista — uma tradução não revista de uma instrução de segurança é pior do que uma em língua estrangeira, porque não parece estrangeira.",
"metodik.pa_engelska": "Apresentado em inglês — sem tradução revista em {sprak}",
// ---- Site público (webb.) ----------------------------------------------
"webb.nav.oversikt": "Visão geral",
"webb.ansok": "Pedir conta",
"webb.loggain": "Iniciar sessão",
"webb.fot.impressum": "Informação legal",
"webb.fot.dataskydd": "Privacidade",
"webb.fot.villkor": "Condições",
"webb.fot.tillganglighet": "Acessibilidade",
"webb.fot.sprak": "Idiomas",
"webb.fot.utgavor": "Notas de versão",
"webb.hero.position": "Plataforma de diagnóstico guiado",
"webb.hero.definition": "Procedimentos de diagnóstico padronizados para uma deteção de avarias repetível e verificável.",
"webb.metod.etikett": "Metodologia",
"webb.metod.rubrik": "O modelo ALVA",
"webb.metod.ingress":
"O ALVA é um método padronizado de análise, localização, verificação e ação sistemáticas. Cada decisão é rastreável, cada conclusão verificável, cada ação reproduzível.",
"webb.fas.analysis.syfte": "Reunir evidências.",
"webb.fas.analysis.avgransning": "Apenas factos. Nesta fase não se recolhem hipóteses.",
"webb.fas.localization.syfte": "Circunscrever a avaria.",
"webb.fas.localization.avgransning": "Estreitar a área. A causa ainda não está estabelecida.",
"webb.fas.verification.syfte": "Confirmar a causa raiz.",
"webb.fas.verification.avgransning": "Verifica-se a causa — não o sintoma.",
"webb.fas.action.syfte": "Executar a ação corretiva.",
"webb.fas.action.avgransning": "Resultado verificado e documentado. Caso contrário, a fase está incompleta.",
"webb.drift.etikett": "Funcionamento",
"webb.drift.rubrik": "Como funciona",
"webb.drift.s1.rubrik": "Criar a organização",
"webb.drift.s1.text": "O registo é submetido e analisado.",
"webb.drift.s2.rubrik": "Os utilizadores recebem contas",
"webb.drift.s2.text": "Os papéis são atribuídos pelo administrador da organização.",
"webb.drift.s3.rubrik": "Procedimentos de diagnóstico guiados",
"webb.drift.s3.text": "Cada caso segue um procedimento definido.",
"webb.drift.s4.rubrik": "Verificação",
"webb.drift.s4.text": "A causa raiz é confirmada antes da ação corretiva.",
"webb.drift.s5.rubrik": "Documentação",
"webb.drift.s5.text": "O relatório é gerado a partir do registo do caso.",
"webb.drift.s6.rubrik": "Melhoria contínua",
"webb.drift.s6.text": "Resultados verificados refinam os procedimentos seguintes.",
"webb.larande.etikett": "Capacidade",
"webb.larande.rubrik": "Aprendizagem da organização",
"webb.larande.p1":
"A plataforma refina continuamente os procedimentos de diagnóstico com a experiência operacional verificada da vossa própria organização.",
"webb.larande.p2":
"Cada diagnóstico concluído alimenta a orientação seguinte. Só se usam resultados verificados — um caso fechado sem causa raiz confirmada não contribui com nada, por conceção.",
"webb.larande.p3":
"A base de conhecimento pertence à organização. É derivada dos vossos casos, dos vossos procedimentos e da vossa documentação, e não é agregada entre clientes.",
"webb.larande.block": "Derivada de",
"webb.larande.k1": "Causas raiz verificadas",
"webb.larande.k2": "Ações corretivas confirmadas",
"webb.larande.k3": "Categorias de avarias recorrentes",
"webb.larande.k4": "Procedimentos concluídos",
"webb.larande.k5": "Documentação da organização",
"webb.rapport.etikett": "Relatórios",
"webb.rapport.rubrik": "Relatório trimestral de melhoria",
"webb.rapport.ingress":
"Uma vez por trimestre, a plataforma responde a seis perguntas sobre o próprio trabalho da oficina. Cada resposta é derivada do registo de casos — nada é estimado e nada é perguntado a ninguém.",
"webb.rapport.f1": "Que avarias diagnosticamos agora corretamente à primeira?",
"webb.rapport.f2": "Com que frequência uma causa suspeita se revela a verdadeira?",
"webb.rapport.f3": "Que avarias continuam a voltar na frota?",
"webb.rapport.f4": "Que passos do procedimento são saltados, e porquê?",
"webb.rapport.f5": "O que sabe a oficina agora que não sabia no trimestre passado?",
"webb.rapport.f6": "Os casos são concluídos, verificados e documentados — ou apenas concluídos?",
"webb.pris.etikett": "Comercial",
"webb.pris.rubrik": "Licenciamento",
"webb.pris.komponent": "Componente",
"webb.pris.grund": "Base",
"webb.pris.plattform": "Licença de plataforma",
"webb.pris.plattform.grund": "Por organização, anual",
"webb.pris.anvandare": "Licenças de utilizador",
"webb.pris.anvandare.grund": "Por utilizador ativo, mensal",
"webb.pris.moduler": "Módulos empresariais",
"webb.pris.moduler.grund": "Opcionais, por módulo",
"webb.pris.betalning": "Sem pagamento online. Sem adesão a subscrição. A faturação segue-se à análise do pedido.",
"webb.pris.aktivering": "Sequência de ativação",
"webb.pris.a1": "A organização submete o registo.",
"webb.pris.a2": "O pedido é analisado.",
"webb.pris.a3": "A fatura é emitida.",
"webb.pris.a4": "O pagamento é registado.",
"webb.pris.a5": "A organização é ativada.",
"webb.pris.a6": "Os utilizadores adicionais são faturados mensalmente.",
"webb.kallor.etikett": "Infraestrutura",
"webb.kallor.rubrik": "Infraestrutura operacional de conhecimento",
"webb.kallor.p1":
"O ALVA usa as fontes de conhecimento autorizadas da própria organização. A arquitetura é neutra quanto ao fornecedor: cada fonte implementa a mesma interface e nenhum fornecedor é pressuposto.",
"webb.kallor.p2":
"Uma instalação beta trabalha apenas com documentação interna. Fornecedores externos são ativados mais tarde através de conectores separados, sem alteração do núcleo da plataforma.",
"webb.kallor.block": "Ordem de resolução das fontes",
"webb.kallor.k1": "Procedimentos internos da empresa",
"webb.kallor.k2": "Documentação OEM",
"webb.kallor.k3": "Boletins técnicos",
"webb.kallor.k4": "Informação de garantia",
"webb.kallor.k5": "Manuais de oficina",
"webb.kallor.k6": "Diagnósticos verificados históricos",
"webb.kallor.k7": "Boas práticas da organização",
"webb.login.etikett": "Acesso",
"webb.login.demo":
"Este início de sessão não autentica nada. Escreva qualquer coisa em E-mail e Palavra-passe e prima Entrar — não é preciso conta, e o portal por trás apresenta dados de exemplo fixos. Ligada a uma instância da plataforma, esta página autentica-se junto dela, e sem sessão válida o portal está fechado.",
"webb.login.losenord": "Palavra-passe",
"webb.login.ofullstandigt": "Autenticação incompleta. E-mail e palavra-passe são obrigatórios.",
"webb.login.misslyckades": "A autenticação falhou.",
"webb.login.logga_in": "Entrar",
"webb.login.loggar_in": "A entrar",
"webb.login.glomt": "Esqueci a palavra-passe",
"webb.ansokan.etikett": "Registo",
"webb.ansokan.demo":
"Nada é enviado. Submeter este formulário não guarda nada, não notifica ninguém e não cria nenhum pedido — ainda não há receção por trás. A descrição abaixo diz como o registo deve funcionar, não o que acontece hoje.",
"webb.ansokan.avsikt": "Funcionamento previsto: os pedidos são analisados manualmente e nesta fase não é cobrado qualquer pagamento.",
"webb.falt.foretag": "Empresa",
"webb.falt.orgnummer": "Número de registo comercial",
"webb.falt.kontakt": "Pessoa de contacto",
"webb.falt.epost": "E-mail",
"webb.falt.telefon": "Telefone",
"webb.falt.tekniker": "Número de técnicos",
"webb.falt.bransch": "Setor",
"webb.falt.land": "País",
"webb.falt.anvandare": "Número previsto de utilizadores",
"webb.falt.noteringar": "Notas",
"webb.falt.kravs": "(obrigatório)",
"webb.ansokan.skicka": "Submeter o pedido",
"webb.ansokan.mottagen.etikett": "Pedido",
"webb.ansokan.mottagen": "Submetido",
"webb.ansokan.mottagen.demo":
"Nada foi transmitido e ninguém foi notificado. A referência abaixo foi calculada no seu navegador a partir do que escreveu e não existe em mais lado nenhum — desaparecerá quando fechar esta página.",
"webb.ansokan.status": "Estado",
"webb.ansokan.referens": "Referência",
"webb.ansokan.granskning":
"Os pedidos são analisados manualmente. A fatura é emitida na aprovação. A organização é ativada quando o pagamento é registado.",
"webb.sprak.etikett": "Localização",
"webb.sprak.rubrik": "Idiomas",
"webb.sprak.ingress":
"O inglês é o idioma predefinido e o idioma de origem. Seguem-se nove traduções. O que a plataforma não faz é afirmar que uma interface traduzida significa um método traduzido.",
"webb.sprak.princip.etikett": "Princípio",
"webb.sprak.princip.rubrik": "Dois tipos de texto",
"webb.sprak.granssnitt.rubrik": "Texto de interface",
"webb.sprak.granssnitt.beteckning": "Recua em silêncio",
"webb.sprak.granssnitt.text":
"Etiquetas, botões, estados. Finito, raramente alterado. Uma cadeia em inglês que chega a um utilizador alemão é uma irritação, não um perigo — por isso uma tradução em falta recua para o inglês sem comentário.",
"webb.sprak.metodik.rubrik": "Texto de procedimento",
"webb.sprak.metodik.beteckning": "Nunca recua em silêncio",
"webb.sprak.metodik.text":
"Instruções para trabalhar num veículo. Aqui uma tradução não revista é pior do que uma em língua estrangeira — porque o inglês parece estrangeiro, enquanto uma má tradução parece uma instrução. É mostrada em inglês e assinalada, com o idioma nomeado.",
"webb.sprak.invariant":
"O método em si nunca é traduzido. Os nomes das fases e as palavras de estado são a estrutura do ALVA e leem-se de forma idêntica em todos os países, para que um auditor possa ler um processo romeno e um alemão sem saber em que idioma a oficina trabalha.",
"webb.sprak.tackning.etikett": "Cobertura",
"webb.sprak.tackning.rubrik": "O que está traduzido, e o que está revisto",
"webb.sprak.kolumn.sprak": "Idioma",
"webb.sprak.kolumn.granssnitt": "Interface",
"webb.sprak.kolumn.granskat": "Método revisto por um especialista",
"webb.sprak.granskat.ja": "Sim",
"webb.sprak.granskat.nej": "Não — texto de procedimento em inglês",
"webb.sprak.matt":
"A cobertura da interface é medida, não estimada: um teste faz falhar a compilação se faltar alguma chave em algum idioma. O estado de revisão é uma afirmação sobre pessoas, não sobre ficheiros, e é definido à mão.",
"webb.sprak.kallsprak":
"O texto de procedimento em inglês é uma tradução da fonte sueca e ainda não foi lido por um especialista que exerce o ofício. É sujeito ao mesmo padrão dos outros nove idiomas, e aqui faz-se sobre ele a mesma declaração em vez de o excetuar em silêncio por ser a fonte.",
"webb.sprak.bevis.etikett": "Verificação",
"webb.sprak.bevis.rubrik": "As frases que param um caso",
"webb.sprak.bevis.ingress":
"Estas são as frases que recusam a um técnico o fecho de um caso. Uma recusa que ninguém entende é uma recusa sem saída — por isso são as frases certas para julgar uma tradução.",
"webb.sprak.ej_granskad": "Não revisto",
"webb.sprak.granskad": "Revisto",
"webb.sprak.granskad.text":
"O texto de procedimento em {sprak} foi lido por um especialista que exerce o ofício. Os passos e os pontos de controlo são mostrados em {sprak} em todo o lado.",
"webb.sprak.val.etikett": "Funcionamento",
"webb.sprak.val.rubrik": "Como o idioma é escolhido",
"webb.sprak.val.s1.rubrik": "Preferência do utilizador",
"webb.sprak.val.s1.text": "O que a pessoa selecionou.",
"webb.sprak.val.s2.rubrik": "Definição da organização",
"webb.sprak.val.s2.text": "O idioma de documentação da oficina.",
"webb.sprak.val.s3.rubrik": "Idioma do navegador",
"webb.sprak.val.s3.text": "O primeiro idioma que a plataforma reconhece.",
"webb.sprak.val.s4.rubrik": "Inglês",
"webb.sprak.val.s4.text": "O predefinido, e a origem.",
"webb.sprak.val.notering":
"A organização vem deliberadamente antes do navegador. Uma oficina na Alemanha com um técnico polaco precisa de um único idioma de documentação — o processo não pode mudar de idioma conforme quem escreveu a linha.",
};
+185
View File
@@ -143,4 +143,189 @@ export const RO = {
"metodik.ogranskad":
"Textul procedurilor nu a fost verificat de un specialist tehnic în limba {sprak}. Pașii și punctele de control sunt afișate în engleză acolo unde nu există o traducere verificată — o traducere neverificată a unei instrucțiuni de siguranță este mai gravă decât una într-o limbă străină, pentru că nu arată ca fiind străină.",
"metodik.pa_engelska": "Afișat în engleză — nicio traducere verificată în limba {sprak}",
// ---- Site-ul public (webb.) --------------------------------------------
"webb.nav.oversikt": "Prezentare generală",
"webb.ansok": "Solicitați un cont",
"webb.loggain": "Autentificare",
"webb.fot.impressum": "Informații legale",
"webb.fot.dataskydd": "Confidențialitate",
"webb.fot.villkor": "Condiții",
"webb.fot.tillganglighet": "Accesibilitate",
"webb.fot.sprak": "Limbi",
"webb.fot.utgavor": "Note de versiune",
"webb.hero.position": "Platformă de diagnosticare ghidată",
"webb.hero.definition": "Proceduri de diagnosticare standardizate pentru o depanare repetabilă și verificabilă.",
"webb.metod.etikett": "Metodologie",
"webb.metod.rubrik": "Modelul ALVA",
"webb.metod.ingress":
"ALVA este o metodă standardizată de analiză, localizare, verificare și acțiune sistematice. Fiecare decizie este trasabilă, fiecare concluzie verificabilă, fiecare acțiune reproductibilă.",
"webb.fas.analysis.syfte": "Strângeți dovezile.",
"webb.fas.analysis.avgransning": "Doar fapte. În această fază nu se adună ipoteze.",
"webb.fas.localization.syfte": "Delimitați defectul.",
"webb.fas.localization.avgransning": "Restrângeți zona. Cauza nu este încă stabilită.",
"webb.fas.verification.syfte": "Confirmați cauza rădăcină.",
"webb.fas.verification.avgransning": "Se verifică cauza — nu simptomul.",
"webb.fas.action.syfte": "Executați acțiunea corectivă.",
"webb.fas.action.avgransning": "Rezultat verificat și documentat. Altfel faza este incompletă.",
"webb.drift.etikett": "Funcționare",
"webb.drift.rubrik": "Cum funcționează",
"webb.drift.s1.rubrik": "Crearea organizației",
"webb.drift.s1.text": "Înregistrarea este depusă și examinată.",
"webb.drift.s2.rubrik": "Utilizatorii primesc conturi",
"webb.drift.s2.text": "Rolurile sunt atribuite de administratorul organizației.",
"webb.drift.s3.rubrik": "Proceduri de diagnosticare ghidate",
"webb.drift.s3.text": "Fiecare caz urmează o procedură definită.",
"webb.drift.s4.rubrik": "Verificare",
"webb.drift.s4.text": "Cauza rădăcină este confirmată înaintea acțiunii corective.",
"webb.drift.s5.rubrik": "Documentare",
"webb.drift.s5.text": "Raportul este generat din jurnalul cazului.",
"webb.drift.s6.rubrik": "Îmbunătățire continuă",
"webb.drift.s6.text": "Rezultatele verificate rafinează procedurile următoare.",
"webb.larande.etikett": "Capacitate",
"webb.larande.rubrik": "Învățarea organizației",
"webb.larande.p1":
"Platforma rafinează continuu procedurile de diagnosticare cu experiența operațională verificată a propriei organizații.",
"webb.larande.p2":
"Fiecare diagnostic încheiat alimentează ghidarea următoare. Se folosesc doar rezultate verificate — un caz închis fără cauză rădăcină confirmată nu aduce nimic, în mod intenționat.",
"webb.larande.p3":
"Baza de cunoștințe aparține organizației. Este derivată din cazurile, procedurile și documentația voastră și nu este agregată între clienți.",
"webb.larande.block": "Derivată din",
"webb.larande.k1": "Cauze rădăcină verificate",
"webb.larande.k2": "Acțiuni corective confirmate",
"webb.larande.k3": "Categorii de defecte recurente",
"webb.larande.k4": "Proceduri duse la capăt",
"webb.larande.k5": "Documentația organizației",
"webb.rapport.etikett": "Raportare",
"webb.rapport.rubrik": "Raport trimestrial de îmbunătățire",
"webb.rapport.ingress":
"O dată pe trimestru, platforma răspunde la șase întrebări despre munca atelierului însuși. Fiecare răspuns este derivat din jurnalul cazurilor — nimic nu se estimează și nimeni nu este întrebat nimic.",
"webb.rapport.f1": "Ce defecte diagnosticăm acum corect din prima?",
"webb.rapport.f2": "Cât de des o cauză bănuită se dovedește a fi cea reală?",
"webb.rapport.f3": "Ce defecte revin mereu în flotă?",
"webb.rapport.f4": "Ce pași de procedură sunt săriți, și de ce?",
"webb.rapport.f5": "Ce știe atelierul acum și nu știa trimestrul trecut?",
"webb.rapport.f6": "Cazurile sunt încheiate, verificate și documentate — sau doar încheiate?",
"webb.pris.etikett": "Comercial",
"webb.pris.rubrik": "Licențiere",
"webb.pris.komponent": "Componentă",
"webb.pris.grund": "Bază",
"webb.pris.plattform": "Licență de platformă",
"webb.pris.plattform.grund": "Per organizație, anual",
"webb.pris.anvandare": "Licențe de utilizator",
"webb.pris.anvandare.grund": "Per utilizator activ, lunar",
"webb.pris.moduler": "Module pentru întreprinderi",
"webb.pris.moduler.grund": "Opționale, per modul",
"webb.pris.betalning": "Fără plată online. Fără abonare directă. Facturarea urmează examinării cererii.",
"webb.pris.aktivering": "Secvența de activare",
"webb.pris.a1": "Organizația depune înregistrarea.",
"webb.pris.a2": "Cererea este examinată.",
"webb.pris.a3": "Se emite factura.",
"webb.pris.a4": "Plata este înregistrată.",
"webb.pris.a5": "Organizația este activată.",
"webb.pris.a6": "Utilizatorii suplimentari sunt facturați lunar.",
"webb.kallor.etikett": "Infrastructură",
"webb.kallor.rubrik": "Infrastructură operațională de cunoștințe",
"webb.kallor.p1":
"ALVA folosește sursele de cunoștințe autorizate ale organizației. Arhitectura este neutră față de furnizor: fiecare sursă implementează aceeași interfață și niciun furnizor nu este presupus.",
"webb.kallor.p2":
"O instalare beta lucrează doar cu documentația internă. Furnizorii externi sunt activați mai târziu prin conectori separați, fără modificarea nucleului platformei.",
"webb.kallor.block": "Ordinea de rezolvare a surselor",
"webb.kallor.k1": "Proceduri interne ale firmei",
"webb.kallor.k2": "Documentație OEM",
"webb.kallor.k3": "Buletine tehnice",
"webb.kallor.k4": "Informații de garanție",
"webb.kallor.k5": "Manuale de atelier",
"webb.kallor.k6": "Diagnostice verificate istorice",
"webb.kallor.k7": "Bune practici ale organizației",
"webb.login.etikett": "Acces",
"webb.login.demo":
"Această autentificare nu autentifică nimic. Scrieți orice în E-mail și Parolă și apăsați Conectare — nu este nevoie de cont, iar portalul din spate prezintă date de exemplu fixe. Conectată la o instanță a platformei, această pagină se autentifică față de ea, iar fără o sesiune validă portalul este închis.",
"webb.login.losenord": "Parolă",
"webb.login.ofullstandigt": "Autentificare incompletă. E-mailul și parola sunt obligatorii.",
"webb.login.misslyckades": "Autentificarea a eșuat.",
"webb.login.logga_in": "Conectare",
"webb.login.loggar_in": "Se conectează",
"webb.login.glomt": "Parolă uitată",
"webb.ansokan.etikett": "Înregistrare",
"webb.ansokan.demo":
"Nu se trimite nimic. Trimiterea formularului nu salvează nimic, nu anunță pe nimeni și nu creează nicio cerere — încă nu există o recepție în spate. Descrierea de mai jos spune cum este gândită înregistrarea să funcționeze, nu ce se întâmplă azi.",
"webb.ansokan.avsikt": "Funcționare prevăzută: cererile sunt examinate manual și în această etapă nu se percepe nicio plată.",
"webb.falt.foretag": "Firmă",
"webb.falt.orgnummer": "Număr de înregistrare",
"webb.falt.kontakt": "Persoană de contact",
"webb.falt.epost": "E-mail",
"webb.falt.telefon": "Telefon",
"webb.falt.tekniker": "Număr de tehnicieni",
"webb.falt.bransch": "Domeniu",
"webb.falt.land": "Țară",
"webb.falt.anvandare": "Număr estimat de utilizatori",
"webb.falt.noteringar": "Observații",
"webb.falt.kravs": "(obligatoriu)",
"webb.ansokan.skicka": "Trimiteți cererea",
"webb.ansokan.mottagen.etikett": "Cerere",
"webb.ansokan.mottagen": "Depusă",
"webb.ansokan.mottagen.demo":
"Nimic nu a fost transmis și nimeni nu a fost anunțat. Referința de mai jos a fost calculată în browserul dumneavoastră din ce ați scris și nu există nicăieri altundeva — va dispărea la închiderea acestei pagini.",
"webb.ansokan.status": "Stare",
"webb.ansokan.referens": "Referință",
"webb.ansokan.granskning":
"Cererile sunt examinate manual. La aprobare se emite o factură. Organizația este activată după înregistrarea plății.",
"webb.sprak.etikett": "Localizare",
"webb.sprak.rubrik": "Limbi",
"webb.sprak.ingress":
"Engleza este limba implicită și limba sursă. Urmează nouă traduceri. Ce nu face platforma: nu pretinde că o interfață tradusă înseamnă o metodă tradusă.",
"webb.sprak.princip.etikett": "Principiu",
"webb.sprak.princip.rubrik": "Două feluri de text",
"webb.sprak.granssnitt.rubrik": "Text de interfață",
"webb.sprak.granssnitt.beteckning": "Revine în tăcere",
"webb.sprak.granssnitt.text":
"Etichete, butoane, stări. Finit, rar schimbat. Un șir englezesc care ajunge la un utilizator german este o iritare, nu un pericol — o traducere lipsă revine deci la engleză fără comentariu.",
"webb.sprak.metodik.rubrik": "Text de procedură",
"webb.sprak.metodik.beteckning": "Nu revine niciodată în tăcere",
"webb.sprak.metodik.text":
"Instrucțiuni pentru lucrul la un vehicul. Aici o traducere neverificată este mai rea decât una într-o limbă străină — pentru că engleza pare străină, în timp ce o traducere proastă pare o instrucțiune. Este afișat în engleză și marcat, cu limba numită.",
"webb.sprak.invariant":
"Metoda în sine nu se traduce niciodată. Numele fazelor și cuvintele de stare sunt structura ALVA și se citesc identic în fiecare țară, astfel încât un auditor poate citi un dosar românesc și unul german fără să știe în ce limbă lucrează atelierul.",
"webb.sprak.tackning.etikett": "Acoperire",
"webb.sprak.tackning.rubrik": "Ce este tradus, și ce este verificat",
"webb.sprak.kolumn.sprak": "Limbă",
"webb.sprak.kolumn.granssnitt": "Interfață",
"webb.sprak.kolumn.granskat": "Metodă verificată de un specialist",
"webb.sprak.granskat.ja": "Da",
"webb.sprak.granskat.nej": "Nu — textul de procedură afișat în engleză",
"webb.sprak.matt":
"Acoperirea interfeței se măsoară, nu se estimează: un test oprește compilarea dacă vreo cheie lipsește din vreo limbă. Starea de verificare este o afirmație despre oameni, nu despre fișiere, și se stabilește manual.",
"webb.sprak.kallsprak":
"Textul de procedură în engleză este o traducere a sursei suedeze și nu a fost încă citit de un specialist care practică meseria. I se aplică același standard ca celorlalte nouă limbi, iar aici se face despre el aceeași declarație în loc să fie exceptat în tăcere pentru că este sursa.",
"webb.sprak.bevis.etikett": "Verificare",
"webb.sprak.bevis.rubrik": "Frazele care opresc un caz",
"webb.sprak.bevis.ingress":
"Acestea sunt frazele care refuză unui tehnician închiderea unui caz. Un refuz pe care nimeni nu îl înțelege este un refuz fără ieșire — deci sunt frazele potrivite pentru a judeca o traducere.",
"webb.sprak.ej_granskad": "Neverificat",
"webb.sprak.granskad": "Verificat",
"webb.sprak.granskad.text":
"Textul de procedură în limba {sprak} a fost citit de un specialist care practică meseria. Pașii și punctele de control sunt afișate peste tot în limba {sprak}.",
"webb.sprak.val.etikett": "Funcționare",
"webb.sprak.val.rubrik": "Cum se alege limba",
"webb.sprak.val.s1.rubrik": "Preferința utilizatorului",
"webb.sprak.val.s1.text": "Ce a selectat persoana.",
"webb.sprak.val.s2.rubrik": "Setarea organizației",
"webb.sprak.val.s2.text": "Limba de documentare a atelierului.",
"webb.sprak.val.s3.rubrik": "Limba browserului",
"webb.sprak.val.s3.text": "Prima limbă pe care platforma o recunoaște.",
"webb.sprak.val.s4.rubrik": "Engleza",
"webb.sprak.val.s4.text": "Implicit, și sursa.",
"webb.sprak.val.notering":
"Organizația trece intenționat înaintea browserului. Un atelier din Germania cu un tehnician polonez are nevoie de o singură limbă de documentare — dosarul nu trebuie să schimbe limba în funcție de cine a scris rândul.",
};
+185
View File
@@ -135,4 +135,189 @@ export const SV = {
"metodik.ogranskad":
"Metodiktexten är inte granskad av en fackman på {sprak}. Steg och kontrollpunkter visas på engelska där ingen granskad översättning finns — en ogranskad översättning av en säkerhetsinstruktion är sämre än en på främmande språk, därför att den inte ser främmande ut.",
"metodik.pa_engelska": "Visas på engelska — ingen granskad översättning på {sprak}",
// ---- Publika webbplatsen (webb.) ---------------------------------------
"webb.nav.oversikt": "Översikt",
"webb.ansok": "Ansök om konto",
"webb.loggain": "Logga in",
"webb.fot.impressum": "Impressum",
"webb.fot.dataskydd": "Dataskydd",
"webb.fot.villkor": "Villkor",
"webb.fot.tillganglighet": "Tillgänglighet",
"webb.fot.sprak": "Språk",
"webb.fot.utgavor": "Utgåvor",
"webb.hero.position": "Guidad diagnostikplattform",
"webb.hero.definition": "Standardiserade diagnosprocedurer för repeterbar och verifierbar felsökning.",
"webb.metod.etikett": "Metodik",
"webb.metod.rubrik": "ALVA-modellen",
"webb.metod.ingress":
"ALVA är en standardiserad metod för systematisk analys, lokalisering, verifiering och åtgärd. Varje beslut är spårbart, varje slutsats verifierbar, varje åtgärd reproducerbar.",
"webb.fas.analysis.syfte": "Samla evidens.",
"webb.fas.analysis.avgransning": "Enbart fakta. Hypoteser samlas inte i denna fas.",
"webb.fas.localization.syfte": "Ringa in felet.",
"webb.fas.localization.avgransning": "Avgränsa området. Orsaken är ännu inte fastställd.",
"webb.fas.verification.syfte": "Bekräfta grundorsaken.",
"webb.fas.verification.avgransning": "Orsaken verifieras — inte symtomet.",
"webb.fas.action.syfte": "Utför åtgärden.",
"webb.fas.action.avgransning": "Resultatet verifierat och dokumenterat. Annars är fasen inte avslutad.",
"webb.drift.etikett": "Drift",
"webb.drift.rubrik": "Så fungerar det",
"webb.drift.s1.rubrik": "Skapa organisation",
"webb.drift.s1.text": "Registreringen skickas in och granskas.",
"webb.drift.s2.rubrik": "Användarna får konton",
"webb.drift.s2.text": "Roller tilldelas av organisationens administratör.",
"webb.drift.s3.rubrik": "Guidade diagnosprocedurer",
"webb.drift.s3.text": "Varje ärende följer en definierad procedur.",
"webb.drift.s4.rubrik": "Verifiering",
"webb.drift.s4.text": "Grundorsaken bekräftas före åtgärd.",
"webb.drift.s5.rubrik": "Dokumentation",
"webb.drift.s5.text": "Rapporten genereras ur ärendeloggen.",
"webb.drift.s6.rubrik": "Ständig förbättring",
"webb.drift.s6.text": "Verifierade utfall förfinar kommande procedurer.",
"webb.larande.etikett": "Förmåga",
"webb.larande.rubrik": "Organisationens lärande",
"webb.larande.p1":
"Plattformen förfinar löpande diagnosprocedurerna med verifierad drifterfarenhet från den egna organisationen.",
"webb.larande.p2":
"Varje slutförd diagnos bidrar till kommande vägledning. Endast verifierade utfall används — ett ärende som stängts utan bekräftad grundorsak bidrar med ingenting, avsiktligt.",
"webb.larande.p3":
"Kunskapsbasen tillhör organisationen. Den härleds ur era ärenden, era procedurer och er dokumentation, och den aggregeras inte över kunder.",
"webb.larande.block": "Härledd ur",
"webb.larande.k1": "Verifierade grundorsaker",
"webb.larande.k2": "Bekräftade åtgärder",
"webb.larande.k3": "Återkommande felkategorier",
"webb.larande.k4": "Genomförda procedurer",
"webb.larande.k5": "Organisationens dokumentation",
"webb.rapport.etikett": "Rapportering",
"webb.rapport.rubrik": "Kvartalsvis förbättringsrapport",
"webb.rapport.ingress":
"En gång i kvartalet besvarar plattformen sex frågor om verkstadens eget arbete. Varje svar härleds ur ärendeloggen — ingenting uppskattas, och ingen tillfrågas.",
"webb.rapport.f1": "Vilka fel diagnostiserar vi nu rätt på första försöket?",
"webb.rapport.f2": "Hur ofta visar sig en misstänkt orsak vara den verkliga?",
"webb.rapport.f3": "Vilka fel återkommer i flottan?",
"webb.rapport.f4": "Vilka procedursteg hoppas över, och varför?",
"webb.rapport.f5": "Vad vet verkstaden nu som den inte visste förra kvartalet?",
"webb.rapport.f6": "Avslutas, verifieras och dokumenteras ärendena — eller avslutas de bara?",
"webb.pris.etikett": "Kommersiellt",
"webb.pris.rubrik": "Licensiering",
"webb.pris.komponent": "Komponent",
"webb.pris.grund": "Grund",
"webb.pris.plattform": "Plattformslicens",
"webb.pris.plattform.grund": "Per organisation, årsvis",
"webb.pris.anvandare": "Användarlicenser",
"webb.pris.anvandare.grund": "Per aktiv användare, månadsvis",
"webb.pris.moduler": "Företagsmoduler",
"webb.pris.moduler.grund": "Valfria, per modul",
"webb.pris.betalning": "Ingen onlinebetalning. Ingen prenumerationsregistrering. Fakturering följer på granskning av ansökan.",
"webb.pris.aktivering": "Aktiveringssekvens",
"webb.pris.a1": "Organisationen skickar in registreringen.",
"webb.pris.a2": "Ansökan granskas.",
"webb.pris.a3": "Faktura ställs ut.",
"webb.pris.a4": "Betalningen registreras.",
"webb.pris.a5": "Organisationen aktiveras.",
"webb.pris.a6": "Ytterligare användare faktureras månadsvis.",
"webb.kallor.etikett": "Infrastruktur",
"webb.kallor.rubrik": "Operativ kunskapsinfrastruktur",
"webb.kallor.p1":
"ALVA använder organisationens egna auktoriserade kunskapskällor. Arkitekturen är leverantörsneutral: varje källa implementerar samma gränssnitt, och ingen leverantör förutsätts.",
"webb.kallor.p2":
"En betainstallation arbetar enbart mot intern dokumentation. Externa leverantörer aktiveras senare via separata anslutningar, utan ändring i plattformskärnan.",
"webb.kallor.block": "Källornas upplösningsordning",
"webb.kallor.k1": "Interna företagsprocedurer",
"webb.kallor.k2": "OEM-dokumentation",
"webb.kallor.k3": "Tekniska bulletiner",
"webb.kallor.k4": "Garantiinformation",
"webb.kallor.k5": "Verkstadshandböcker",
"webb.kallor.k6": "Historiska verifierade diagnoser",
"webb.kallor.k7": "Organisationens bästa praxis",
"webb.login.etikett": "Åtkomst",
"webb.login.demo":
"Den här inloggningen autentiserar ingenting. Skriv vad som helst i E-post och Lösenord och tryck Logga in — inget konto behövs, och portalen bakom visar fasta exempeldata. Ansluten till en plattformsinstans autentiserar sidan mot den, och portalen är stängd utan giltig session.",
"webb.login.losenord": "Lösenord",
"webb.login.ofullstandigt": "Autentisering ofullständig. E-post och lösenord krävs.",
"webb.login.misslyckades": "Autentisering misslyckades.",
"webb.login.logga_in": "Logga in",
"webb.login.loggar_in": "Loggar in",
"webb.login.glomt": "Glömt lösenord",
"webb.ansokan.etikett": "Registrering",
"webb.ansokan.demo":
"Ingenting skickas. Att skicka formuläret lagrar ingenting, meddelar ingen och skapar ingen ansökan — det finns ännu inget mottag bakom det. Beskrivningen nedan anger hur registreringen är avsedd att fungera, inte vad som sker i dag.",
"webb.ansokan.avsikt": "Avsedd drift: ansökningar granskas manuellt och ingen betalning tas i detta skede.",
"webb.falt.foretag": "Företag",
"webb.falt.orgnummer": "Organisationsnummer",
"webb.falt.kontakt": "Kontaktperson",
"webb.falt.epost": "E-post",
"webb.falt.telefon": "Telefon",
"webb.falt.tekniker": "Antal tekniker",
"webb.falt.bransch": "Bransch",
"webb.falt.land": "Land",
"webb.falt.anvandare": "Förväntat antal användare",
"webb.falt.noteringar": "Noteringar",
"webb.falt.kravs": "(obligatoriskt)",
"webb.ansokan.skicka": "Skicka ansökan",
"webb.ansokan.mottagen.etikett": "Ansökan",
"webb.ansokan.mottagen": "Inskickad",
"webb.ansokan.mottagen.demo":
"Ingenting skickades och ingen underrättades. Referensen nedan beräknades i din webbläsare ur det du skrev och finns ingen annanstans — den är borta när du stänger sidan.",
"webb.ansokan.status": "Status",
"webb.ansokan.referens": "Referens",
"webb.ansokan.granskning":
"Ansökningar granskas manuellt. Faktura ställs ut vid godkännande. Organisationen aktiveras när betalningen registrerats.",
"webb.sprak.etikett": "Lokalisering",
"webb.sprak.rubrik": "Språk",
"webb.sprak.ingress":
"Engelska är standard och källspråk. Nio översättningar följer. Vad plattformen inte gör är att påstå att ett översatt gränssnitt betyder en översatt metod.",
"webb.sprak.princip.etikett": "Princip",
"webb.sprak.princip.rubrik": "Två sorters text",
"webb.sprak.granssnitt.rubrik": "Gränssnittstext",
"webb.sprak.granssnitt.beteckning": "Faller tillbaka tyst",
"webb.sprak.granssnitt.text":
"Etiketter, knappar, statusar. Ändlig, sällan ändrad. En engelsk sträng som når en tysk användare är en irritation, inte en fara — så en saknad översättning faller tillbaka på engelska utan kommentar.",
"webb.sprak.metodik.rubrik": "Metodiktext",
"webb.sprak.metodik.beteckning": "Faller aldrig tillbaka tyst",
"webb.sprak.metodik.text":
"Instruktioner för arbete på ett fordon. Här är en ogranskad översättning sämre än en på främmande språk — därför att engelska ser främmande ut, medan en dålig översättning ser ut som en instruktion. Den visas på engelska och märks, med språket namngivet.",
"webb.sprak.invariant":
"Metoden själv översätts aldrig. Fasnamn och statusord är ALVA:s struktur och läses likadant i varje land, så att en revisor kan läsa en rumänsk och en tysk ärendejournal utan att veta vilket språk verkstaden arbetar på.",
"webb.sprak.tackning.etikett": "Täckning",
"webb.sprak.tackning.rubrik": "Vad som är översatt, och vad som är granskat",
"webb.sprak.kolumn.sprak": "Språk",
"webb.sprak.kolumn.granssnitt": "Gränssnitt",
"webb.sprak.kolumn.granskat": "Metodik granskad av fackman",
"webb.sprak.granskat.ja": "Ja",
"webb.sprak.granskat.nej": "Nej — metodiktext visas på engelska",
"webb.sprak.matt":
"Gränssnittstäckningen mäts, inte uppskattas: ett test fäller bygget om någon nyckel saknas i något språk. Granskningsstatus är ett påstående om människor, inte om filer, och sätts för hand.",
"webb.sprak.kallsprak":
"Den engelska metodiktexten är en översättning av den svenska källan och har ännu inte lästs av en fackman i yrket. Den hålls till samma standard som de andra nio språken, och samma besked lämnas om den här i stället för att tyst undantas för att den är källan.",
"webb.sprak.bevis.etikett": "Verifiering",
"webb.sprak.bevis.rubrik": "Strängarna som stoppar ett ärende",
"webb.sprak.bevis.ingress":
"Detta är meningarna som nekar en tekniker att avsluta ett ärende. En nekan ingen förstår är en nekan utan väg igenom — så det är rätt strängar att bedöma en översättning på.",
"webb.sprak.ej_granskad": "Ej granskad",
"webb.sprak.granskad": "Granskad",
"webb.sprak.granskad.text":
"Metodiktext på {sprak} har lästs av en fackman i yrket. Steg och kontrollpunkter visas på {sprak} genomgående.",
"webb.sprak.val.etikett": "Drift",
"webb.sprak.val.rubrik": "Hur språket väljs",
"webb.sprak.val.s1.rubrik": "Användarens val",
"webb.sprak.val.s1.text": "Vad den enskilda har valt.",
"webb.sprak.val.s2.rubrik": "Organisationens inställning",
"webb.sprak.val.s2.text": "Verkstadens dokumentationsspråk.",
"webb.sprak.val.s3.rubrik": "Webbläsarens språk",
"webb.sprak.val.s3.text": "Det första språk plattformen känner igen.",
"webb.sprak.val.s4.rubrik": "Engelska",
"webb.sprak.val.s4.text": "Standarden, och källan.",
"webb.sprak.val.notering":
"Organisationen går före webbläsaren avsiktligt. En verkstad i Tyskland med en polsk tekniker behöver ett gemensamt dokumentationsspråk — journalen får inte byta språk beroende på vem som råkade skriva raden.",
};