Skip to content

Commit d7bc60c

Browse files
authored
Merge pull request #831 from lowcoder-org/translation
Translation small bugfixes
2 parents f52e17a + 0804e69 commit d7bc60c

File tree

6 files changed

+101
-24
lines changed

6 files changed

+101
-24
lines changed

client/packages/lowcoder-core/lib/index.cjs

Lines changed: 71 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// this is used in Node.js ??
2+
13
'use strict';
24

35
Object.defineProperty(exports, '__esModule', { value: true });
@@ -7589,15 +7591,62 @@ function requireReactJsxRuntime_development () {
75897591
} (jsxRuntime));
75907592

75917593
var en = {};
7592-
75937594
var zh = {};
7595+
var de = {};
7596+
var fr = {};
7597+
var es = {};
7598+
var it = {};
7599+
var ar = {};
7600+
var th = {};
7601+
var vi = {};
7602+
var ms = {};
7603+
var id = {};
7604+
var hi = {};
7605+
var ta = {};
7606+
var kn = {};
7607+
var ml = {};
7608+
var ru = {};
7609+
var pl = {};
7610+
var cs = {};
7611+
var uk = {};
7612+
var bg = {};
7613+
var sr = {};
7614+
var hr = {};
7615+
var sk = {};
7616+
var sl = {};
7617+
var mk = {};
7618+
var pt = {};
75947619

75957620
// file examples: en, enGB, zh, zhHK
75967621

75977622
var localeData = /*#__PURE__*/Object.freeze({
75987623
__proto__: null,
75997624
en: en,
7600-
zh: zh
7625+
zh: zh,
7626+
de: de,
7627+
fr: fr,
7628+
es: es,
7629+
it: it,
7630+
ar: ar,
7631+
th: th,
7632+
vi: vi,
7633+
ms: ms,
7634+
id: id,
7635+
hi: hi,
7636+
ta: ta,
7637+
kn: kn,
7638+
ml: ml,
7639+
ru: ru,
7640+
pl: pl,
7641+
cs: cs,
7642+
uk: uk,
7643+
bg: bg,
7644+
sr: sr,
7645+
hr: hr,
7646+
sk: sk,
7647+
sl: sl,
7648+
mk: mk,
7649+
pt: pt
76017650
});
76027651

76037652
var ErrorKind;
@@ -11156,8 +11205,14 @@ originalMessage) {
1115611205
}
1115711206
var varName = el.value;
1115811207
// Enforce that all required values are provided by the caller.
11208+
var value = "";
1115911209
if (!(values && varName in values)) {
11160-
throw new MissingValueError(varName, originalMessage);
11210+
// throw new MissingValueError(varName, originalMessage);
11211+
console.log("No value provided for the variable \"" + varName + "\". " + originalMessage);
11212+
value = varName;
11213+
}
11214+
else {
11215+
value = values[varName];
1116111216
}
1116211217
var value = values[varName];
1116311218
if (isArgumentElement(el)) {
@@ -11511,11 +11566,18 @@ See the accompanying LICENSE file for terms.
1151111566
*/
1151211567
var IntlMessageFormat = IntlMessageFormat$1;
1151311568

11514-
var defaultLocale = "en";
11569+
var defaultLocale = "en";
1151511570
var locales = [defaultLocale];
1151611571

11572+
// Falk - Adapted the central translator to check if a localStorage key is existing.
11573+
11574+
const uiLanguage = localStorage.getItem('lowcoder_uiLanguage');
11575+
1151711576
if (globalThis.navigator) {
11518-
if (navigator.languages && navigator.languages.length > 0) {
11577+
if (uiLanguage) {
11578+
locales = [uiLanguage];
11579+
}
11580+
else if (navigator.languages && navigator.languages.length > 0) {
1151911581
locales = __spreadArray([], navigator.languages, true);
1152011582
}
1152111583
else {
@@ -11582,7 +11644,9 @@ function getDataByLocale(fileData, suffix, filterLocales, targetLocales) {
1158211644
return { data: data, language: name_1.slice(0, 2) };
1158311645
}
1158411646
}
11585-
throw new Error("Not found ".concat(names));
11647+
console.error("Not found ".concat(names));
11648+
// better to continue the app without crashing
11649+
// throw new Error("Not found ".concat(names));
1158611650
}
1158711651
var globalMessageKeyPrefix = "@";
1158811652
var globalMessages = Object.fromEntries(Object.entries(getDataByLocale(localeData, "").data).map(function (_a) {
@@ -11628,7 +11692,7 @@ var Translator = /** @class */ (function () {
1162811692
return Translator;
1162911693
}());
1163011694
function getI18nObjects(fileData, filterLocales) {
11631-
return getDataByLocale(fileData, "Obj", filterLocales).data;
11695+
return getDataByLocale(fileData, "Obj", filterLocales)?.data;
1163211696
}
1163311697

1163411698
exports.AbstractComp = AbstractComp;

client/packages/lowcoder-core/lib/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// this is the tpyes file next to index.js
2+
13
/// <reference types="react" />
24
import React, { ReactNode } from 'react';
35

client/packages/lowcoder-core/lib/index.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11194,11 +11194,16 @@ originalMessage) {
1119411194
continue;
1119511195
}
1119611196
var varName = el.value;
11197+
var value = "";
1119711198
// Enforce that all required values are provided by the caller.
1119811199
if (!(values && varName in values)) {
11199-
throw new MissingValueError(varName, originalMessage);
11200+
console.log("No value provided for the variable \"" + varName + "\". " + originalMessage);
11201+
// throw new MissingValueError(varName, originalMessage);
11202+
value = varName;
11203+
}
11204+
else {
11205+
value = values[varName];
1120011206
}
11201-
var value = values[varName];
1120211207
if (isArgumentElement(el)) {
1120311208
if (!value || typeof value === 'string' || typeof value === 'number') {
1120411209
value =

client/packages/lowcoder-core/src/i18n/index.tsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,20 @@ import IntlMessageFormat from "intl-messageformat";
33
import log from "loglevel";
44
import { Fragment } from "react";
55

6+
// this is a copy of the translator from ../../lib/index.js
7+
// TODO: check if this file is used at all
8+
69
const defaultLocale = "en";
710

811
let locales = [defaultLocale];
912

13+
// Falk - Adapted the central translator to check if a localStorage key is existing.
14+
const uiLanguage = localStorage.getItem('lowcoder_uiLanguage');
1015
if (globalThis.navigator) {
11-
if (navigator.languages && navigator.languages.length > 0) {
16+
if (uiLanguage) {
17+
locales = [uiLanguage];
18+
}
19+
else if (navigator.languages && navigator.languages.length > 0) {
1220
locales = [...navigator.languages];
1321
} else {
1422
locales = [navigator.language || ((navigator as any).userLanguage as string) || defaultLocale];
@@ -69,8 +77,6 @@ function getDataByLocale<T>(
6977
targetLocales?: string[]
7078
) {
7179

72-
console.log("Überraschung", fileData);
73-
7480
let localeInfos = [...fallbackLocaleInfos];
7581

7682
const targetLocaleInfo = parseLocales(targetLocales || []);
@@ -99,8 +105,8 @@ function getDataByLocale<T>(
99105
return { data: data as T, language: name.slice(0, 2) };
100106
}
101107
}
102-
103-
throw new Error(`Not found ${names}`);
108+
console.error(`Not found ${names}`);
109+
// throw new Error(`Not found ${names}`);
104110
}
105111

106112
type AddDot<T extends string> = T extends "" ? "" : `.${T}`;
@@ -190,5 +196,5 @@ export class Translator<Messages extends object> {
190196
}
191197

192198
export function getI18nObjects<I18nObjects>(fileData: object, filterLocales?: string) {
193-
return getDataByLocale<I18nObjects>(fileData, "Obj", filterLocales).data;
199+
return getDataByLocale<I18nObjects>(fileData, "Obj", filterLocales)?.data;
194200
}

client/packages/lowcoder/src/i18n/locales/de.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1960,18 +1960,18 @@ export const de: typeof en = {
19601960
"temporaryState": {
19611961
...en.temporaryState,
19621962
"value": "Anfangswert",
1963-
"valueTooltip": "Der Anfangswert, der im temporären Status gespeichert wird, kann ein beliebiger gültiger JSON-Wert sein.",
1964-
"docLink": "Lies mehr über temporäre Staaten...",
1963+
"valueTooltip": "Der Anfangswert, der im temporären Zustand gespeichert wird, kann ein beliebiger gültiger JSON-Wert sein.",
1964+
"docLink": "Lies mehr über temporäre Zustände...",
19651965
"pathTypeError": "Pfad muss entweder ein String oder ein Array von Werten sein",
19661966
"unStructuredError": "Unstrukturierte Daten {prev} können nicht von {path} aktualisiert werden",
19671967
"valueDesc": "Vorläufiger Zustandswert",
1968-
"deleteMessage": "Der temporäre Status wurde erfolgreich gelöscht. Du kannst {undoKey} zum Rückgängigmachen verwenden.",
1968+
"deleteMessage": "Der temporäre Zustand wurde erfolgreich gelöscht. Du kannst {undoKey} zum Rückgängigmachen verwenden.",
19691969
"documentationText": "Temporäre Zustände in Lowcoder sind eine leistungsstarke Funktion zur Verwaltung komplexer Variablen, die den Zustand von Komponenten in deiner Anwendung dynamisch aktualisieren. Diese Zustände dienen als Zwischenspeicher für Daten, die sich im Laufe der Zeit aufgrund von Benutzerinteraktionen oder anderen Prozessen ändern können."
19701970
},
19711971
"dataResponder": {
19721972
...en.dataResponder,
19731973
"data": "Daten",
1974-
"dataDesc": "Daten des aktuellen Datenresponders",
1974+
"dataDesc": "Daten des aktuellen Data Responders",
19751975
"dataTooltip": "Wenn diese Daten geändert werden, lösen sie nachfolgende Aktionen aus.",
19761976
"docLink": "Lies mehr über die Data Responders...",
19771977
"deleteMessage": "Der Data Responder wurde erfolgreich gelöscht. Du kannst {undoKey} zum Rückgängigmachen verwenden.",
@@ -2295,7 +2295,7 @@ export const de: typeof en = {
22952295
"update": "Was gibt's Neues?",
22962296
"version": "Version",
22972297
"versionWithColon": "Version: ",
2298-
"submitIssue": "Ausgabe einreichen"
2298+
"submitIssue": "Problem melden"
22992299
},
23002300
"header": {
23012301
...en.header,
@@ -2304,11 +2304,11 @@ export const de: typeof en = {
23042304
"recoverAppSnapshotTitle": "Diese Version wiederherstellen?",
23052305
"recoverAppSnapshotContent": "Stelle die aktuelle App auf die Version wieder her, die zum Zeitpunkt {time} erstellt wurde.",
23062306
"recoverAppSnapshotMessage": "Diese Version wiederherstellen",
2307-
"returnEdit": "Zurück zur Redaktion",
2307+
"returnEdit": "Zurück zum Bearbeiten",
23082308
"deploy": "Veröffentlichen",
23092309
"export": "Exportieren nach JSON",
23102310
"editName": "Name bearbeiten",
2311-
"duplicate": "Duplizieren {type}",
2311+
"duplicate": "{type} Duplizieren",
23122312
"snapshot": "Bearbeitungs-Historie",
23132313
"scriptsAndStyles": "Skripte und Stil",
23142314
"appSettings": "App-Einstellungen",

client/packages/lowcoder/src/util/localStorageUtil.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,11 @@ export function getMainCompValue(): object {
106106
export type HomeLayoutType = "list" | "card";
107107

108108
export function saveHomeLayout(layout: HomeLayoutType) {
109-
localStorage.setItem("home_layout", layout);
109+
localStorage.setItem("lowcoder_home_layout", layout);
110110
}
111111

112112
export function getHomeLayout(): HomeLayoutType {
113-
const layout = localStorage.getItem("home_layout");
113+
const layout = localStorage.getItem("lowcoder_home_layout");
114114
return layout === "list" || layout === "card" ? layout : "card";
115115
}
116116

0 commit comments

Comments
 (0)