fix(parcel-sync): replace Unicode escapes with actual Romanian diacritics
The \u0103, \u00ee etc. escape sequences were rendering literally in JSX text nodes instead of displaying ă, î, ț, ș characters. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -123,7 +123,7 @@ export function SearchTab({
|
||||
setSearchError("");
|
||||
}
|
||||
} catch {
|
||||
setSearchError("Eroare de re\u021bea.");
|
||||
setSearchError("Eroare de rețea.");
|
||||
}
|
||||
setLoadingFeatures(false);
|
||||
}, [siruta, featuresSearch, workspacePk]);
|
||||
@@ -178,12 +178,12 @@ export function SearchTab({
|
||||
if (data.eterraNote) notes.push(data.eterraNote);
|
||||
setOwnerNote(
|
||||
notes.length > 0
|
||||
? `Surse: ${notes.join(" + ")}${data.total ? ` \u00b7 ${data.total} rezultate` : ""}`
|
||||
? `Surse: ${notes.join(" + ")}${data.total ? ` · ${data.total} rezultate` : ""}`
|
||||
: "",
|
||||
);
|
||||
}
|
||||
} catch {
|
||||
setOwnerError("Eroare de re\u021bea.");
|
||||
setOwnerError("Eroare de rețea.");
|
||||
}
|
||||
setOwnerLoading(false);
|
||||
}, [siruta, ownerSearch, workspacePk]);
|
||||
@@ -596,7 +596,7 @@ export function SearchTab({
|
||||
<Card>
|
||||
<CardContent className="py-12 text-center text-muted-foreground">
|
||||
<Search className="h-10 w-10 mx-auto mb-3 opacity-30" />
|
||||
<p>Selecteaz\u0103 un UAT mai sus pentru a c\u0103uta parcele.</p>
|
||||
<p>Selectează un UAT mai sus pentru a căuta parcele.</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
);
|
||||
@@ -640,7 +640,7 @@ export function SearchTab({
|
||||
<div className="flex gap-3 items-end">
|
||||
<div className="space-y-1 flex-1">
|
||||
<Label className="text-xs">
|
||||
Numere cadastrale (separate prin virgul\u0103 sau Enter)
|
||||
Numere cadastrale (separate prin virgulă sau Enter)
|
||||
</Label>
|
||||
<div className="relative">
|
||||
<Search className="absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" />
|
||||
@@ -655,8 +655,8 @@ export function SearchTab({
|
||||
</div>
|
||||
{!session.connected && (
|
||||
<p className="text-xs text-muted-foreground">
|
||||
Necesit\u0103 conexiune eTerra. Folose\u0219te modul Proprietar
|
||||
pentru a c\u0103uta offline \u00een DB.
|
||||
Necesită conexiune eTerra. Folosește modul Proprietar
|
||||
pentru a căuta offline în DB.
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
@@ -673,7 +673,7 @@ export function SearchTab({
|
||||
) : (
|
||||
<Search className="mr-2 h-4 w-4" />
|
||||
)}
|
||||
Caut\u0103
|
||||
Caută
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
@@ -683,7 +683,7 @@ export function SearchTab({
|
||||
<div className="flex gap-3 items-end">
|
||||
<div className="space-y-1 flex-1">
|
||||
<Label className="text-xs">
|
||||
Nume proprietar (caut\u0103 \u00een DB local + eTerra)
|
||||
Nume proprietar (caută în DB local + eTerra)
|
||||
</Label>
|
||||
<div className="relative">
|
||||
<User className="absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" />
|
||||
@@ -705,7 +705,7 @@ export function SearchTab({
|
||||
) : (
|
||||
<Search className="mr-2 h-4 w-4" />
|
||||
)}
|
||||
Caut\u0103
|
||||
Caută
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
@@ -729,10 +729,10 @@ export function SearchTab({
|
||||
<Card>
|
||||
<CardContent className="py-12 text-center text-muted-foreground">
|
||||
<Loader2 className="h-10 w-10 mx-auto mb-3 animate-spin opacity-50" />
|
||||
<p>Se caut\u0103 \u00een eTerra...</p>
|
||||
<p>Se caută în eTerra...</p>
|
||||
<p className="text-xs mt-1 opacity-60">
|
||||
Prima c\u0103utare pe un UAT nou poate dura ~10-30s (se
|
||||
\u00eencarc\u0103 lista de jude\u021be).
|
||||
Prima căutare pe un UAT nou poate dura ~10-30s (se
|
||||
încarcă lista de județe).
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
@@ -747,7 +747,7 @@ export function SearchTab({
|
||||
{searchResults.length > 1 ? "e" : ""}
|
||||
{searchList.length > 0 && (
|
||||
<span className="ml-2">
|
||||
· <strong>{searchList.length}</strong> \u00een list\u0103
|
||||
· <strong>{searchList.length}</strong> în listă
|
||||
</span>
|
||||
)}
|
||||
</span>
|
||||
@@ -761,7 +761,7 @@ export function SearchTab({
|
||||
}}
|
||||
>
|
||||
<Plus className="mr-1 h-3.5 w-3.5" />
|
||||
Adaug\u0103 toate \u00een list\u0103
|
||||
Adaugă toate în listă
|
||||
</Button>
|
||||
)}
|
||||
<Button
|
||||
@@ -773,7 +773,7 @@ export function SearchTab({
|
||||
}
|
||||
>
|
||||
<FileDown className="mr-1 h-3.5 w-3.5" />
|
||||
Descarc\u0103 CSV
|
||||
Descarcă CSV
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -796,7 +796,7 @@ export function SearchTab({
|
||||
</h3>
|
||||
{!p.immovablePk && (
|
||||
<p className="text-xs text-destructive">
|
||||
Parcela nu a fost g\u0103sit\u0103 \u00een eTerra.
|
||||
Parcela nu a fost găsită în eTerra.
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
@@ -805,7 +805,7 @@ export function SearchTab({
|
||||
size="sm"
|
||||
variant="ghost"
|
||||
className="h-7 w-7 p-0"
|
||||
title="Adaug\u0103 \u00een list\u0103"
|
||||
title="Adaugă în listă"
|
||||
onClick={() => addToList(p)}
|
||||
disabled={!p.immovablePk}
|
||||
>
|
||||
@@ -819,7 +819,7 @@ export function SearchTab({
|
||||
onClick={() => {
|
||||
const text = [
|
||||
`Nr. Cad: ${p.nrCad}`,
|
||||
`Nr. CF: ${p.nrCF || "\u2014"}`,
|
||||
`Nr. CF: ${p.nrCF || "—"}`,
|
||||
p.nrCFVechi
|
||||
? `CF vechi: ${p.nrCFVechi}`
|
||||
: null,
|
||||
@@ -829,7 +829,7 @@ export function SearchTab({
|
||||
p.suprafata != null
|
||||
? `Suprafata: ${p.suprafata.toLocaleString("ro-RO")} mp`
|
||||
: null,
|
||||
`Intravilan: ${p.intravilan || "\u2014"}`,
|
||||
`Intravilan: ${p.intravilan || "—"}`,
|
||||
p.categorieFolosinta
|
||||
? `Categorie: ${p.categorieFolosinta}`
|
||||
: null,
|
||||
@@ -870,7 +870,7 @@ export function SearchTab({
|
||||
Nr. CF
|
||||
</span>
|
||||
<span className="font-medium">
|
||||
{p.nrCF || "\u2014"}
|
||||
{p.nrCF || "—"}
|
||||
</span>
|
||||
</div>
|
||||
{p.nrCFVechi && (
|
||||
@@ -885,16 +885,16 @@ export function SearchTab({
|
||||
<span className="text-xs text-muted-foreground block">
|
||||
Nr. Topo
|
||||
</span>
|
||||
<span>{p.nrTopo || "\u2014"}</span>
|
||||
<span>{p.nrTopo || "—"}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span className="text-xs text-muted-foreground block">
|
||||
Suprafa\u021b\u0103
|
||||
Suprafață
|
||||
</span>
|
||||
<span className="tabular-nums">
|
||||
{p.suprafata != null
|
||||
? formatArea(p.suprafata)
|
||||
: "\u2014"}
|
||||
: "—"}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
@@ -911,13 +911,13 @@ export function SearchTab({
|
||||
}
|
||||
className="text-[11px]"
|
||||
>
|
||||
{p.intravilan || "\u2014"}
|
||||
{p.intravilan || "—"}
|
||||
</Badge>
|
||||
</div>
|
||||
{p.categorieFolosinta && (
|
||||
<div className="col-span-2">
|
||||
<span className="text-xs text-muted-foreground block">
|
||||
Categorii folosin\u021b\u0103
|
||||
Categorii folosință
|
||||
</span>
|
||||
<span className="text-xs">
|
||||
{p.categorieFolosinta}
|
||||
@@ -927,7 +927,7 @@ export function SearchTab({
|
||||
{p.adresa && (
|
||||
<div className="col-span-2">
|
||||
<span className="text-xs text-muted-foreground block">
|
||||
Adres\u0103
|
||||
Adresă
|
||||
</span>
|
||||
<span>{p.adresa}</span>
|
||||
</div>
|
||||
@@ -991,10 +991,10 @@ export function SearchTab({
|
||||
<Card>
|
||||
<CardContent className="py-12 text-center text-muted-foreground">
|
||||
<Search className="h-10 w-10 mx-auto mb-3 opacity-30" />
|
||||
<p>Introdu un num\u0103r cadastral \u0219i apas\u0103 Caut\u0103.</p>
|
||||
<p>Introdu un număr cadastral și apasă Caută.</p>
|
||||
<p className="text-xs mt-1 opacity-60">
|
||||
Po\u021bi c\u0103uta mai multe parcele simultan, separate prin
|
||||
virgul\u0103.
|
||||
Poți căuta mai multe parcele simultan, separate prin
|
||||
virgulă.
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
@@ -1009,9 +1009,9 @@ export function SearchTab({
|
||||
<Card>
|
||||
<CardContent className="py-12 text-center text-muted-foreground">
|
||||
<Loader2 className="h-10 w-10 mx-auto mb-3 animate-spin opacity-50" />
|
||||
<p>Se caut\u0103 proprietar...</p>
|
||||
<p>Se caută proprietar...</p>
|
||||
<p className="text-xs mt-1 opacity-60">
|
||||
Caut\u0103 mai \u00eent\u00e2i \u00een DB local (date \u00eembog\u0103\u021bite), apoi pe
|
||||
Caută mai întâi în DB local (date îmbogățite), apoi pe
|
||||
eTerra.
|
||||
</p>
|
||||
</CardContent>
|
||||
@@ -1036,7 +1036,7 @@ export function SearchTab({
|
||||
}}
|
||||
>
|
||||
<Plus className="mr-1 h-3.5 w-3.5" />
|
||||
Adaug\u0103 toate \u00een list\u0103
|
||||
Adaugă toate în listă
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
@@ -1047,7 +1047,7 @@ export function SearchTab({
|
||||
}
|
||||
>
|
||||
<FileDown className="mr-1 h-3.5 w-3.5" />
|
||||
Descarc\u0103 CSV
|
||||
Descarcă CSV
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1075,7 +1075,7 @@ export function SearchTab({
|
||||
size="sm"
|
||||
variant="ghost"
|
||||
className="h-7 w-7 p-0"
|
||||
title="Adaug\u0103 \u00een list\u0103"
|
||||
title="Adaugă în listă"
|
||||
onClick={() =>
|
||||
addToList(ownerResultToParcelDetail(r))
|
||||
}
|
||||
@@ -1128,7 +1128,7 @@ export function SearchTab({
|
||||
{r.suprafata && (
|
||||
<div>
|
||||
<span className="text-xs text-muted-foreground block">
|
||||
Suprafa\u021b\u0103
|
||||
Suprafață
|
||||
</span>
|
||||
<span className="tabular-nums">
|
||||
{typeof r.suprafata === "number"
|
||||
@@ -1159,7 +1159,7 @@ export function SearchTab({
|
||||
{r.categorieFolosinta && (
|
||||
<div className="col-span-2">
|
||||
<span className="text-xs text-muted-foreground block">
|
||||
Categorii folosin\u021b\u0103
|
||||
Categorii folosință
|
||||
</span>
|
||||
<span className="text-xs">
|
||||
{r.categorieFolosinta}
|
||||
@@ -1169,7 +1169,7 @@ export function SearchTab({
|
||||
{r.adresa && (
|
||||
<div className="col-span-2">
|
||||
<span className="text-xs text-muted-foreground block">
|
||||
Adres\u0103
|
||||
Adresă
|
||||
</span>
|
||||
<span>{r.adresa}</span>
|
||||
</div>
|
||||
@@ -1206,12 +1206,12 @@ export function SearchTab({
|
||||
<Card>
|
||||
<CardContent className="py-12 text-center text-muted-foreground">
|
||||
<User className="h-10 w-10 mx-auto mb-3 opacity-30" />
|
||||
<p>Introdu numele proprietarului \u0219i apas\u0103 Caut\u0103.</p>
|
||||
<p>Introdu numele proprietarului și apasă Caută.</p>
|
||||
<p className="text-xs mt-1 opacity-60">
|
||||
Caut\u0103 \u00een datele \u00eembog\u0103\u021bite (DB local) \u0219i pe eTerra.
|
||||
Caută în datele îmbogățite (DB local) și pe eTerra.
|
||||
<br />
|
||||
Pentru rezultate complete, lanseaz\u0103 "Sync fundal \u2014
|
||||
Magic" \u00een tab-ul Export.
|
||||
Pentru rezultate complete, lansează "Sync fundal —
|
||||
Magic" în tab-ul Export.
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
@@ -1377,15 +1377,15 @@ export function SearchTab({
|
||||
{p.nrCad}
|
||||
</td>
|
||||
<td className="px-3 py-2 text-xs">
|
||||
{p.nrCF || "\u2014"}
|
||||
{p.nrCF || "—"}
|
||||
</td>
|
||||
<td className="px-3 py-2 text-right hidden sm:table-cell tabular-nums text-xs">
|
||||
{p.suprafata != null
|
||||
? formatArea(p.suprafata)
|
||||
: "\u2014"}
|
||||
: "—"}
|
||||
</td>
|
||||
<td className="px-3 py-2 hidden md:table-cell text-xs truncate max-w-[300px]">
|
||||
{p.proprietari || "\u2014"}
|
||||
{p.proprietari || "—"}
|
||||
</td>
|
||||
<td className="px-3 py-2 text-center">
|
||||
<TooltipProvider>
|
||||
|
||||
Reference in New Issue
Block a user