fix to the translation of the webUI in Polish.

Everything visible should already be translated into Polish. However, I was not able to check how the translations of all errors are displayed (because how to display them if there is no error?), so I'm not sure that they are ok.
BTW, there are still many error messages hardcoded (e.g. "Local IP is required"). I think we should translate them as well.
This commit is contained in:
pswid
2022-11-03 12:34:32 +01:00
parent bdce4ee9f9
commit 069df92dbf
17 changed files with 359 additions and 173 deletions

View File

@@ -41,7 +41,7 @@ const SignIn: FC = () => {
const validateAndSignIn = async () => {
setProcessing(true);
SIGN_IN_REQUEST_VALIDATOR.messages({
required: '%s ' + LL.IS_REQUIRED()
required: LL.IS_REQUIRED('%s')
});
try {
await validate(SIGN_IN_REQUEST_VALIDATOR, signInRequest);
@@ -139,7 +139,7 @@ const SignIn: FC = () => {
fieldErrors={fieldErrors}
disabled={processing}
name="username"
label={LL.USERNAME()}
label={LL.USERNAME(0)}
value={signInRequest.username}
onChange={updateLoginRequestValue}
margin="normal"

View File

@@ -57,7 +57,7 @@ const MqttSettingsForm: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="host"
label="Host"
label={LL.ADDRESS_OF(LL.BROKER())}
fullWidth
variant="outlined"
value={data.host}
@@ -84,7 +84,7 @@ const MqttSettingsForm: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="base"
label="Base"
label={LL.BASE_TOPIC()}
fullWidth
variant="outlined"
value={data.base}
@@ -95,7 +95,7 @@ const MqttSettingsForm: FC = () => {
<Grid item xs={6}>
<ValidatedTextField
name="client_id"
label={'Client ID (' + LL.OPTIONAL() + ')'}
label={LL.ID_OF(LL.CLIENT()) + ' (' + LL.OPTIONAL() + ')'}
fullWidth
variant="outlined"
value={data.client_id}
@@ -108,7 +108,7 @@ const MqttSettingsForm: FC = () => {
<Grid item xs={6}>
<ValidatedTextField
name="username"
label={LL.USERNAME()}
label={LL.USERNAME(0)}
fullWidth
variant="outlined"
value={data.username}
@@ -175,7 +175,7 @@ const MqttSettingsForm: FC = () => {
</Typography>
<ValidatedTextField
name="nested_format"
label={'Topic/Payload ' + LL.FORMAT()}
label={LL.MQTT_FORMAT()}
value={data.nested_format}
fullWidth
variant="outlined"
@@ -324,7 +324,7 @@ const MqttSettingsForm: FC = () => {
InputProps={{
endAdornment: <InputAdornment position="end">{LL.SECONDS()}</InputAdornment>
}}
label={LL.DEFAULT()}
label={LL.DEFAULT(0)}
fullWidth
variant="outlined"
value={numberValue(data.publish_time_other)}

View File

@@ -103,7 +103,7 @@ const MqttStatusForm: FC = () => {
<ListItemAvatar>
<Avatar>#</Avatar>
</ListItemAvatar>
<ListItemText primary="Client ID" secondary={data.client_id} />
<ListItemText primary={LL.ID_OF(LL.CLIENT())} secondary={data.client_id} />
</ListItem>
<Divider variant="inset" component="li" />
<ListItem>

View File

@@ -196,7 +196,7 @@ const WiFiSettingsForm: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="local_ip"
label="Local IP"
label={LL.AP_LOCAL_IP()}
fullWidth
variant="outlined"
value={data.local_ip}
@@ -206,7 +206,7 @@ const WiFiSettingsForm: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="gateway_ip"
label="Gateway"
label={LL.NETWORK_GATEWAY()}
fullWidth
variant="outlined"
value={data.gateway_ip}
@@ -216,7 +216,7 @@ const WiFiSettingsForm: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="subnet_mask"
label="Subnet"
label={LL.NETWORK_SUBNET()}
fullWidth
variant="outlined"
value={data.subnet_mask}
@@ -226,7 +226,7 @@ const WiFiSettingsForm: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="dns_ip_1"
label="DNS IP #1"
label="DNS #1"
fullWidth
variant="outlined"
value={data.dns_ip_1}
@@ -236,7 +236,7 @@ const WiFiSettingsForm: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="dns_ip_2"
label="DNS IP #2"
label="DNS #2"
fullWidth
variant="outlined"
value={data.dns_ip_2}

View File

@@ -72,7 +72,7 @@ const NTPStatusForm: FC = () => {
const ntpStatus = ({ status }: NTPStatus) => {
switch (status) {
case NTPSyncStatus.NTP_DISABLED:
return LL.DISABLED();
return LL.DISABLED(0);
case NTPSyncStatus.NTP_INACTIVE:
return LL.INACTIVE();
case NTPSyncStatus.NTP_ACTIVE:

View File

@@ -40,7 +40,7 @@ const ManageUsersForm: FC = () => {
const table_theme = useTheme({
Table: `
--data-table-library_grid-template-columns: repeat(1, minmax(0, 1fr)) 120px 120px;
--data-table-library_grid-template-columns: repeat(1, minmax(0, 1fr)) minmax(120px, max-content) 120px;
`,
BaseRow: `
font-size: 14px;
@@ -140,7 +140,7 @@ const ManageUsersForm: FC = () => {
<>
<Header>
<HeaderRow>
<HeaderCell resize>{LL.USERNAME()}</HeaderCell>
<HeaderCell resize>{LL.USERNAME(1)}</HeaderCell>
<HeaderCell stiff>{LL.IS_ADMIN(0)}</HeaderCell>
<HeaderCell stiff />
</HeaderRow>

View File

@@ -60,7 +60,7 @@ const UserForm: FC<UserFormProps> = ({ creating, validator, user, setUser, onDon
<ValidatedTextField
fieldErrors={fieldErrors}
name="username"
label={LL.USERNAME()}
label={LL.USERNAME(1)}
fullWidth
variant="outlined"
value={user.username}

View File

@@ -4,7 +4,7 @@ const de: Translation = {
LANGUAGE: 'Sprache',
RETRY: 'Neuer Versuch',
LOADING: 'Laden',
IS_REQUIRED: 'ist erforderlich',
IS_REQUIRED: '{0} ist erforderlich',
SIGN_IN: 'Einloggen',
SIGN_OUT: 'Ausloggen',
USERNAME: 'Nutzername',
@@ -30,6 +30,10 @@ const de: Translation = {
EXPORT: 'Exportieren',
DEVICE_DETAILS: 'Geräte Details',
BRAND: 'Marke',
ID_OF: '{0} ID',
DEVICE: 'Geräte',
PRODUCT: 'Produkt',
VERSION: 'Version',
ENTITY_NAME: 'Entitätsname',
VALUE: '{{Wert||wert}}',
SHOW_FAV: 'nur Favoriten anzeigen',
@@ -60,7 +64,7 @@ const de: Translation = {
STARTVALUE: 'Startwert',
WARN_GPIO: 'Warnung: Vorsicht bei der korrekten Wahl des GPIO!',
EDIT: 'Editiere',
TEMP_SENSOR: 'Temperatursensor',
TEMP_SENSOR: '{{Sensor|Temperatursensor}}',
TEMP_SENSORS: 'Temperatursensoren',
WRITE_COMMAND: 'Befehl schreiben {cmd}',
EMS_BUS_WARNING:
@@ -103,11 +107,15 @@ const de: Translation = {
BOARD_PROFILE_TEXT:
'Wählen Sie ein vorkonfiguriertes Platinenprofil aus der Liste unten aus oder wählen Sie "Custom", um Ihre eigenen Hardwareeinstellungen zu konfigurieren',
BOARD_PROFILE: 'Platinenprofil',
CUSTOM: 'Custom',
GPIO_OF: '{0} GPIO',
BUTTON: 'Taste',
TEMPERATURE: 'Temperatur',
PHY_TYPE: 'Eth PHY Typ',
DISABLED: 'deaktiviert',
TX_MODE: 'Tx Mode',
HARDWARE: 'Hardware',
EMS_BUS: '{{BUS|EMS BUS}}',
GENERAL_OPTIONS: 'Allgemeine Optionen',
LANGUAGE_ENTITIES: 'Sprache (für Geräteentitäten)',
HIDE_LED: 'LED ausblenden',
@@ -224,9 +232,12 @@ const de: Translation = {
ERRORS_OF: '{0} Fehler',
DISCONNECT_REASON: 'Grund der Verbindungsunterbrechung',
ENABLE_MQTT: 'MQTT aktivieren',
BROKER: 'Broker',
CLIENT: 'Client',
BASE_TOPIC: 'Base',
OPTIONAL: 'Optional',
FORMATTING: 'Formattierung',
FORMAT: 'Format',
MQTT_FORMAT: 'Topic/Payload Format',
MQTT_NEST_1: 'Als Nester in in einem Gesamttopic',
MQTT_NEST_2: 'Als einzelne Topics',
MQTT_RESPONSE: 'Veröffentliche die Kommandoantwort als `response` Topic',
@@ -285,8 +296,10 @@ const de: Translation = {
ADMIN: 'Administrator',
GUEST: 'Gast',
NEW: 'Neuer',
RENAME: 'Ändere',
ENTITY: 'Entität'
NEW_NAME_OF: 'Ändere {0}',
ENTITY: 'Entität',
MIN: 'min',
MAX: 'max'
};
export default de;

View File

@@ -4,10 +4,10 @@ const en: BaseTranslation = {
LANGUAGE: 'Language',
RETRY: 'Retry',
LOADING: 'Loading',
IS_REQUIRED: 'is required',
IS_REQUIRED: '{0} is required',
SIGN_IN: 'Sign In',
SIGN_OUT: 'Sign Out',
USERNAME: 'Username',
USERNAME: '{{Username}}',
PASSWORD: 'Password',
SU_PASSWORD: 'su Password',
DASHBOARD: 'Dashboard',
@@ -16,8 +16,8 @@ const en: BaseTranslation = {
HELP_OF: '{0} Help',
LOGGED_IN: 'Logged in as {name}',
PLEASE_SIGNIN: 'Please sign in to continue',
UPLOAD_SUCCESSFUL: 'Upload successful',
DOWNLOAD_SUCCESSFUL: 'Download successful',
UPLOAD_SUCCESSFUL: 'Upload finished',
DOWNLOAD_SUCCESSFUL: 'Download finished',
INVALID_LOGIN: 'Invalid login details',
NETWORK: '{{Network}}',
SECURITY: '{{Security}}',
@@ -29,6 +29,10 @@ const en: BaseTranslation = {
REFRESH: 'Refresh',
EXPORT: 'Export',
DEVICE_DETAILS: 'Device Details',
ID_OF: '{0} ID',
DEVICE: 'Device',
PRODUCT: 'Product',
VERSION: 'Version',
BRAND: 'Brand',
ENTITY_NAME: 'Entity Name',
VALUE: '{{Value|value}}',
@@ -60,7 +64,7 @@ const en: BaseTranslation = {
STARTVALUE: 'Start value',
WARN_GPIO: 'Warning: be careful when assigning a GPIO!',
EDIT: 'Edit',
TEMP_SENSOR: 'Temperature Sensor',
TEMP_SENSOR: '{{|Temperature}} Sensor',
TEMP_SENSORS: 'Temperature Sensors',
WRITE_COMMAND: 'Write command {cmd}',
EMS_BUS_WARNING:
@@ -103,11 +107,15 @@ const en: BaseTranslation = {
BOARD_PROFILE_TEXT:
'Select a pre-configured interface board profile from the list below or choose Custom to configure your own hardware settings',
BOARD_PROFILE: 'Board Profile',
CUSTOM: 'Custom',
GPIO_OF: '{0} GPIO',
BUTTON: 'Button',
TEMPERATURE: 'Temperature',
PHY_TYPE: 'Eth PHY Type',
DISABLED: 'disabled',
DISABLED: '{{disabled}}',
TX_MODE: 'Tx Mode',
HARDWARE: 'Hardware',
EMS_BUS: '{{BUS|EMS BUS}}',
GENERAL_OPTIONS: 'General Options',
LANGUAGE_ENTITIES: 'Language (for device entities)',
HIDE_LED: 'Hide LED',
@@ -150,7 +158,7 @@ const en: BaseTranslation = {
SELECT_DEVICE: 'Select a device',
SET_ALL: 'set all',
OPTIONS: 'Options',
NAME: 'Name',
NAME: '{{Name}}',
CUSTOMIZATIONS_RESET:
'Are you sure you want remove all customizations including the custom settings of the Temperature and Analog sensors?',
DEVICE_ENTITIES: 'Device Entities',
@@ -225,9 +233,12 @@ const en: BaseTranslation = {
ERRORS_OF: '{0} Errors',
DISCONNECT_REASON: 'Disconnect Reason',
ENABLE_MQTT: 'Enable MQTT',
BROKER: 'Broker',
CLIENT: 'Client',
BASE_TOPIC: 'Base',
OPTIONAL: 'Optional',
FORMATTING: 'Formatting',
FORMAT: 'Format',
MQTT_FORMAT: 'Topic/Payload Format',
MQTT_NEST_1: 'Nested in a single topic',
MQTT_NEST_2: 'As individual topics',
MQTT_RESPONSE: 'Publish command output to a `response` topic',
@@ -241,7 +252,7 @@ const en: BaseTranslation = {
MQTT_INT_SOLAR: 'Solar Modules',
MQTT_INT_MIXER: 'Mixer Modules',
MQTT_QUEUE: 'MQTT Queue',
DEFAULT: 'Default',
DEFAULT: '{{Default}}',
MQTT_CLEAN_SESSION: 'Set Clean Session',
MQTT_RETAIN_FLAG: 'Always set Retain flag',
INACTIVE: 'Inactive',
@@ -279,15 +290,17 @@ const en: BaseTranslation = {
NETWORK_USE_DNS: 'Enable mDNS Service',
NETWORK_ENABLE_IPV6: 'Enable IPv6 support',
NETWORK_FIXED_IP: 'Use Fixed IP address',
NETWORK_GATEWAY: 'Getaway',
NETWORK_GATEWAY: 'Gateway',
NETWORK_SUBNET: 'Subnet Mask',
NETWORK_DNS: 'DNS Servers',
ADDRESS_OF: '{0} Address',
ADMIN: 'Admin',
GUEST: 'Guest',
NEW: 'New',
RENAME: 'Rename',
ENTITY: 'Entity'
NEW_NAME_OF: 'New {0} name',
ENTITY: 'entity',
MIN: 'min',
MAX: 'max'
};
export default en;

View File

@@ -31,9 +31,10 @@ type RootTranslation = {
*/
LOADING: string
/**
* is required
* {0} is required
* @param {unknown} 0
*/
IS_REQUIRED: string
IS_REQUIRED: RequiredParams<'0'>
/**
* Sign In
*/
@@ -43,7 +44,7 @@ type RootTranslation = {
*/
SIGN_OUT: string
/**
* Username
* {{Username}}
*/
USERNAME: string
/**
@@ -82,11 +83,11 @@ type RootTranslation = {
*/
PLEASE_SIGNIN: string
/**
* Upload successful
* Upload finished
*/
UPLOAD_SUCCESSFUL: string
/**
* Download successful
* Download finished
*/
DOWNLOAD_SUCCESSFUL: string
/**
@@ -133,6 +134,23 @@ type RootTranslation = {
* Device Details
*/
DEVICE_DETAILS: string
/**
* {0} ID
* @param {unknown} 0
*/
ID_OF: RequiredParams<'0'>
/**
* Device
*/
DEVICE: string
/**
* Product
*/
PRODUCT: string
/**
* Version
*/
VERSION: string
/**
* Brand
*/
@@ -142,7 +160,7 @@ type RootTranslation = {
*/
ENTITY_NAME: string
/**
* {{Value}}
* {{Value|value}}
*/
VALUE: string
/**
@@ -262,7 +280,7 @@ type RootTranslation = {
*/
EDIT: string
/**
* Temperature Sensor
* {{|Temperature}} Sensor
*/
TEMP_SENSOR: string
/**
@@ -427,6 +445,15 @@ type RootTranslation = {
* Board Profile
*/
BOARD_PROFILE: string
/**
* Custom
*/
CUSTOM: string
/**
* {0} GPIO
* @param {unknown} 0
*/
GPIO_OF: RequiredParams<'0'>
/**
* Button
*/
@@ -440,13 +467,21 @@ type RootTranslation = {
*/
PHY_TYPE: string
/**
* disabled
* {{disabled}}
*/
DISABLED: string
/**
* Tx Mode
*/
TX_MODE: string
/**
* Hardware
*/
HARDWARE: string
/**
* {{BUS|EMS BUS}}
*/
EMS_BUS: string
/**
* General Options
*/
@@ -616,7 +651,7 @@ type RootTranslation = {
*/
OPTIONS: string
/**
* Name
* {{Name}}
*/
NAME: string
/**
@@ -891,6 +926,18 @@ type RootTranslation = {
* Enable MQTT
*/
ENABLE_MQTT: string
/**
* Broker
*/
BROKER: string
/**
* Client
*/
CLIENT: string
/**
* Base
*/
BASE_TOPIC: string
/**
* Optional
*/
@@ -900,9 +947,9 @@ type RootTranslation = {
*/
FORMATTING: string
/**
* Format
* Topic/Payload Format
*/
FORMAT: string
MQTT_FORMAT: string
/**
* Nested in a single topic
*/
@@ -956,7 +1003,7 @@ type RootTranslation = {
*/
MQTT_QUEUE: string
/**
* Default
* {{Default}}
*/
DEFAULT: string
/**
@@ -1108,7 +1155,7 @@ type RootTranslation = {
*/
NETWORK_FIXED_IP: string
/**
* Getaway
* Gateway
*/
NETWORK_GATEWAY: string
/**
@@ -1137,13 +1184,22 @@ type RootTranslation = {
*/
NEW: string
/**
* Rename
* New {0} name
* @param {unknown} 0
*/
RENAME: string
NEW_NAME_OF: RequiredParams<'0'>
/**
* Entity
* entity
*/
ENTITY: string
/**
* min
*/
MIN: string
/**
* max
*/
MAX: string
}
export type TranslationFunctions = {
@@ -1160,9 +1216,9 @@ export type TranslationFunctions = {
*/
LOADING: () => LocalizedString
/**
* is required
* {0} is required
*/
IS_REQUIRED: () => LocalizedString
IS_REQUIRED: (arg0: unknown) => LocalizedString
/**
* Sign In
*/
@@ -1172,9 +1228,9 @@ export type TranslationFunctions = {
*/
SIGN_OUT: () => LocalizedString
/**
* Username
* {{Username}}
*/
USERNAME: () => LocalizedString
USERNAME: (arg0: string | number | boolean) => LocalizedString
/**
* Password
*/
@@ -1208,11 +1264,11 @@ export type TranslationFunctions = {
*/
PLEASE_SIGNIN: () => LocalizedString
/**
* Upload successful
* Upload finished
*/
UPLOAD_SUCCESSFUL: () => LocalizedString
/**
* Download successful
* Download finished
*/
DOWNLOAD_SUCCESSFUL: () => LocalizedString
/**
@@ -1259,6 +1315,22 @@ export type TranslationFunctions = {
* Device Details
*/
DEVICE_DETAILS: () => LocalizedString
/**
* {0} ID
*/
ID_OF: (arg0: unknown) => LocalizedString
/**
* Device
*/
DEVICE: () => LocalizedString
/**
* Product
*/
PRODUCT: () => LocalizedString
/**
* Version
*/
VERSION: () => LocalizedString
/**
* Brand
*/
@@ -1268,7 +1340,7 @@ export type TranslationFunctions = {
*/
ENTITY_NAME: () => LocalizedString
/**
* {{Value}}
* {{Value|value}}
*/
VALUE: (arg0: string | number | boolean) => LocalizedString
/**
@@ -1384,9 +1456,9 @@ export type TranslationFunctions = {
*/
EDIT: () => LocalizedString
/**
* Temperature Sensor
* {{|Temperature}} Sensor
*/
TEMP_SENSOR: () => LocalizedString
TEMP_SENSOR: (arg0: string | number | boolean) => LocalizedString
/**
* Temperature Sensors
*/
@@ -1541,6 +1613,14 @@ export type TranslationFunctions = {
* Board Profile
*/
BOARD_PROFILE: () => LocalizedString
/**
* Custom
*/
CUSTOM: () => LocalizedString
/**
* {0} GPIO
*/
GPIO_OF: (arg0: unknown) => LocalizedString
/**
* Button
*/
@@ -1554,13 +1634,21 @@ export type TranslationFunctions = {
*/
PHY_TYPE: () => LocalizedString
/**
* disabled
* {{disabled}}
*/
DISABLED: () => LocalizedString
DISABLED: (arg0: string | number | boolean) => LocalizedString
/**
* Tx Mode
*/
TX_MODE: () => LocalizedString
/**
* Hardware
*/
HARDWARE: () => LocalizedString
/**
* {{BUS|EMS BUS}}
*/
EMS_BUS: (arg0: string | number | boolean) => LocalizedString
/**
* General Options
*/
@@ -1730,9 +1818,9 @@ export type TranslationFunctions = {
*/
OPTIONS: () => LocalizedString
/**
* Name
* {{Name}}
*/
NAME: () => LocalizedString
NAME: (arg0: string | number | boolean) => LocalizedString
/**
* Are you sure you want remove all customizations including the custom settings of the Temperature and Analog sensors?
*/
@@ -2001,6 +2089,18 @@ export type TranslationFunctions = {
* Enable MQTT
*/
ENABLE_MQTT: () => LocalizedString
/**
* Broker
*/
BROKER: () => LocalizedString
/**
* Client
*/
CLIENT: () => LocalizedString
/**
* Base
*/
BASE_TOPIC: () => LocalizedString
/**
* Optional
*/
@@ -2010,9 +2110,9 @@ export type TranslationFunctions = {
*/
FORMATTING: () => LocalizedString
/**
* Format
* Topic/Payload Format
*/
FORMAT: () => LocalizedString
MQTT_FORMAT: () => LocalizedString
/**
* Nested in a single topic
*/
@@ -2066,9 +2166,9 @@ export type TranslationFunctions = {
*/
MQTT_QUEUE: () => LocalizedString
/**
* Default
* {{Default}}
*/
DEFAULT: () => LocalizedString
DEFAULT: (arg0: string | number | boolean) => LocalizedString
/**
* Set Clean Session
*/
@@ -2218,7 +2318,7 @@ export type TranslationFunctions = {
*/
NETWORK_FIXED_IP: () => LocalizedString
/**
* Getaway
* Gateway
*/
NETWORK_GATEWAY: () => LocalizedString
/**
@@ -2246,13 +2346,21 @@ export type TranslationFunctions = {
*/
NEW: () => LocalizedString
/**
* Rename
* New {0} name
*/
RENAME: () => LocalizedString
NEW_NAME_OF: (arg0: unknown) => LocalizedString
/**
* Entity
* entity
*/
ENTITY: () => LocalizedString
/**
* min
*/
MIN: () => LocalizedString
/**
* max
*/
MAX: () => LocalizedString
}
export type Formatters = {}

View File

@@ -4,7 +4,7 @@ const nl: Translation = {
LANGUAGE: 'Taal',
RETRY: 'Opnieuw proberen',
LOADING: 'Laden',
IS_REQUIRED: 'is verplicht',
IS_REQUIRED: '{0} is verplicht',
SIGN_IN: 'Inloggen',
SIGN_OUT: 'Uitloggen',
USERNAME: 'Gebruikersnaam',
@@ -29,6 +29,10 @@ const nl: Translation = {
REFRESH: 'Ververs',
EXPORT: 'Export',
DEVICE_DETAILS: 'Device Gegevens',
ID_OF: '{0} ID',
DEVICE: 'Apparaat',
PRODUCT: 'Product',
VERSION: 'Versie',
BRAND: 'Merk',
ENTITY_NAME: 'Entiteit',
VALUE: '{{Waarde|waarde}}',
@@ -60,7 +64,7 @@ const nl: Translation = {
STARTVALUE: 'Startwaarde',
WARN_GPIO: 'Waarschuwing: let op met het koppelen van de juiste GPIO pin!',
EDIT: 'Wijzigen',
TEMP_SENSOR: 'Temperatuur sensor',
TEMP_SENSOR: '{{Sensor|Temperatuur sensor}}',
TEMP_SENSORS: 'Temperatuur Sensoren',
WRITE_COMMAND: 'Schrijf commando {cmd}',
EMS_BUS_WARNING:
@@ -103,10 +107,14 @@ const nl: Translation = {
BOARD_PROFILE_TEXT:
'Selecteer een vooraf ingesteld apparaat profiel uit de lijst of kies Eigen om zelf uw hardware te configureren',
BOARD_PROFILE: 'Apparaatprofiel',
CUSTOM: 'Custom',
GPIO_OF: '{0} GPIO',
BUTTON: 'Toets',
TEMPERATURE: 'Temperatuur',
PHY_TYPE: 'Eth PHY Type',
TX_MODE: 'Tx Mode',
HARDWARE: 'Hardware',
EMS_BUS: '{{BUS|EMS BUS}}',
DISABLED: 'Uitgeschakeld',
GENERAL_OPTIONS: 'Algemene Opties',
LANGUAGE_ENTITIES: 'Taal (voor apparaat entiteiten)',
@@ -222,9 +230,12 @@ const nl: Translation = {
ERRORS_OF: '{0} Foutmeldingen',
DISCONNECT_REASON: 'Verbinding verbroken vanwege',
ENABLE_MQTT: 'Activeer MQTT',
BROKER: 'Broker',
CLIENT: 'Client',
BASE_TOPIC: 'Base',
OPTIONAL: 'Optioneel',
FORMATTING: 'Formatteren',
FORMAT: 'Formattering',
MQTT_FORMAT: 'Topic/Payload Formattering',
MQTT_NEST_1: 'Genest in 1 topic',
MQTT_NEST_2: 'Als individuele topics',
MQTT_RESPONSE: 'Publiceer commando output naar een `response` topic',
@@ -276,15 +287,17 @@ const nl: Translation = {
NETWORK_USE_DNS: 'Activeer mDNS Service',
NETWORK_ENABLE_IPV6: 'Activeer IPv6 support',
NETWORK_FIXED_IP: 'Gebruik vast IP addres',
NETWORK_GATEWAY: 'Getaway',
NETWORK_SUBNET: 'Subnet Mask',
NETWORK_GATEWAY: 'Gateway',
NETWORK_SUBNET: 'Subnetmasker',
NETWORK_DNS: 'DNS Servers',
ADDRESS_OF: '{0} Address',
ADMIN: 'Admin',
GUEST: 'Gast',
NEW: 'Nieuwe',
RENAME: 'Hernoem',
ENTITY: 'Entiteit'
NEW_NAME_OF: 'Hernoem {0}',
ENTITY: 'Entiteit',
MIN: 'min',
MAX: 'max'
};
export default nl;

View File

@@ -4,7 +4,7 @@ const no: Translation = {
LANGUAGE: 'Språk',
RETRY: 'Forsøk igjen',
LOADING: 'Laster',
IS_REQUIRED: 'er nødvendig',
IS_REQUIRED: '{0} er nødvendig',
SIGN_IN: 'Logg inn',
SIGN_OUT: 'Logg ut',
USERNAME: 'Brukernavn',
@@ -29,6 +29,10 @@ const no: Translation = {
REFRESH: 'Oppdater',
EXPORT: 'Eksport',
DEVICE_DETAILS: 'Enhetsdetaljer',
ID_OF: '{0}-ID',
DEVICE: 'Enhets',
PRODUCT: 'Produkt',
VERSION: 'Versjon',
BRAND: 'Fabrikat',
ENTITY_NAME: 'Objektsnavn',
VALUE: '{{Verdi|verdi}}',
@@ -60,7 +64,7 @@ const no: Translation = {
STARTVALUE: 'Startverdi',
WARN_GPIO: 'Advarsel: vær forsiktig ved aktivering av GPIO!',
EDIT: 'Endre',
TEMP_SENSOR: 'Temperatursensor',
TEMP_SENSOR: '{{Sensor|Temperatursensor}}',
TEMP_SENSORS: 'Temperaturesensorer',
WRITE_COMMAND: 'Skriv kommando {cmd}',
EMS_BUS_WARNING:
@@ -103,11 +107,15 @@ const no: Translation = {
BOARD_PROFILE_TEXT:
'Velg en pre-konfigurert prosessor profil fra listen under eller velg Tilpasset for å konfigurere dine egne innstillinger',
BOARD_PROFILE: 'Prosessor Profil',
CUSTOM: 'Custom',
GPIO_OF: '{0} GPIO',
BUTTON: 'Knapp',
TEMPERATURE: 'Temperatur',
PHY_TYPE: 'Eth PHY Type',
DISABLED: 'avslått',
TX_MODE: 'Tx Mode',
HARDWARE: 'Hardware',
EMS_BUS: '{{BUS|EMS BUS}}',
GENERAL_OPTIONS: 'Generelle Innstillinger',
LANGUAGE_ENTITIES: 'Språk (for objekter)',
HIDE_LED: 'Skjul LED',
@@ -223,9 +231,12 @@ const no: Translation = {
ERRORS_OF: '{0} Feil',
DISCONNECT_REASON: 'Årsak til nedkobling',
ENABLE_MQTT: 'Aktiver MQTT',
BROKER: 'Broker',
CLIENT: 'Client',
BASE_TOPIC: 'Base',
OPTIONAL: 'Valgfritt',
FORMATTING: 'Formatering',
FORMAT: 'Format',
MQTT_FORMAT: 'Topic/Payload Format',
MQTT_NEST_1: 'Nestet i en topic',
MQTT_NEST_2: 'Som individuelle topics',
MQTT_RESPONSE: 'Publiser kommandoer til en `response` topic',
@@ -277,15 +288,17 @@ const no: Translation = {
NETWORK_USE_DNS: 'Aktiviser mDNS Service',
NETWORK_ENABLE_IPV6: 'Aktiviser IPv6 støtte',
NETWORK_FIXED_IP: 'Benytt statisk IP adresse',
NETWORK_GATEWAY: 'Getaway',
NETWORK_SUBNET: 'Subnet Mask',
NETWORK_GATEWAY: 'Gateway',
NETWORK_SUBNET: 'Nettverksmaske',
NETWORK_DNS: 'DNS Servers',
ADDRESS_OF: '{0} Address',
ADMIN: 'Admin',
GUEST: 'Gjest',
NEW: 'Ny',
RENAME: 'Bytt navn',
ENTITY: 'Entitet'
NEW_NAME_OF: 'Bytt navn {0}',
ENTITY: 'Entitet',
MIN: 'min',
MAX: 'max'
};
export default no;

View File

@@ -4,21 +4,21 @@ const pl: Translation = {
LANGUAGE: 'Język',
RETRY: 'Ponów',
LOADING: 'Ładowanie',
IS_REQUIRED: 'Czy wymagany?',
SIGN_IN: 'Zaloguj',
SIGN_OUT: 'Wyloguj',
USERNAME: 'Nazwa użytkownika',
IS_REQUIRED: 'Pole {0} nie może być puste!',
SIGN_IN: 'Zaloguj się',
SIGN_OUT: 'Wyloguj się',
USERNAME: '{{Użytkownik|Nazwa użytkownika|}}',
PASSWORD: 'Hasło',
SU_PASSWORD: 'Hasło "su"',
DASHBOARD: 'Pulpit',
SETTINGS_OF: 'Ustawienia {0}',
SAVED: 'zostały zapisane.',
HELP_OF: 'Pomoc {0}',
LOGGED_IN: 'Zalogowany jako {name}.',
LOGGED_IN: 'Zalogowano użytkownika {name}.',
PLEASE_SIGNIN: 'Zaloguj się aby kontynuować.',
UPLOAD_SUCCESSFUL: 'Wysyłanie zakończone.',
DOWNLOAD_SUCCESSFUL: 'Pobieranie zakończone.',
INVALID_LOGIN: 'Niepoprawny login!',
INVALID_LOGIN: 'Nieprawidłowy użytkownik lub hasło!',
NETWORK: '{{Sieć|sieci|}}',
SECURITY: '{{B|b|}}ezpieczeństw{{o|a|}}',
ONOFF_CAP: 'wł./wył.',
@@ -29,9 +29,13 @@ const pl: Translation = {
REFRESH: 'Odśwież',
EXPORT: 'Eksportuj',
DEVICE_DETAILS: 'Szczegóły urządzenia',
ID_OF: 'ID {0}',
DEVICE: 'urządzenia',
PRODUCT: 'produktu',
BRAND: 'Marka',
VERSION: 'Wersja',
ENTITY_NAME: 'Nazwa encji',
VALUE: '{{Wartość|wartość|}}',
VALUE: '{{W|w|}}artość',
SHOW_FAV: 'Pokaż tylko "ulubione"',
DEVICE_SENSOR_DATA: 'Dane z urządzeń i czujników',
DEVICES_SENSORS: 'Urządzenia i czujniki',
@@ -39,7 +43,7 @@ const pl: Translation = {
RUN_COMMAND: 'Wykonaj komendę',
CHANGE_VALUE: 'Zmień wartość',
CANCEL: 'Anuluj',
RESET: '{{Resetuj|Resetowanie|}}',
RESET: 'Reset{{uj|owanie|}}',
SEND: 'Wyślij',
SAVE: 'Zapisz',
REMOVE: 'Usuń',
@@ -52,23 +56,23 @@ const pl: Translation = {
UPDATE_OF: 'Aktualizacja {0}',
REMOVED_OF: 'Usunięto ustawienia {0}.',
DELETION_OF: 'Kasowanie {0}',
OFFSET: 'Korekta +/-',
OFFSET: 'Korekta ±',
FACTOR: 'Mnożnik',
FREQ: 'Częstotliwość',
DUTY_CYCLE: 'Wypełnienie',
UNIT: 'J.m.',
STARTVALUE: 'Wartość początkowa',
WARN_GPIO: 'Uwaga! Bądź ostrożny przypisując GPIO do czujnika!',
WARN_GPIO: 'Uwaga! Zachowaj ostrożność przypisując GPIO do urządzenia!',
EDIT: 'Edycja',
TEMP_SENSOR: 'czujnika temperatury',
TEMP_SENSOR: '{{czujnika temperatury|czujnika|}}',
TEMP_SENSORS: 'Czujniki temperatury 1-Wire®',
WRITE_COMMAND: 'Wyślij komendę {cmd}',
EMS_BUS_WARNING:
'Brak połączenia z magistralą EMS. Jeśli ten błąd występuje dłużej niż kilka sekund, sprawdź ustawienia oraz profil płytki interfejsu.',
EMS_BUS_SCANNING: 'Trwa skanowanie magistrali EMS w poszukiwaniu urządzeń...',
EMS_BUS_SCANNING: 'Trwa skanowanie urządzeń na magistrali EMS...',
CONNECTED: '{{połączono|połączenie|}}',
TX_ISSUES: 'Problem z zapisem na magistralę EMS. Spróbuj wybrać inny "Sposób transmisji (Tx)".',
DISCONNECTED: 'zostało rozłączone',
TX_ISSUES: 'Problem z zapisem na magistralę EMS. Spróbuj wybrać inny "Tryb transmisji (Tx)".',
DISCONNECTED: 'brak połączenia',
EMS_SCAN: 'Czy na pewno wykonać pełne skanowanie magistrali EMS?',
EMS_BUS_STATUS: 'Status magistrali EMS',
ACTIVE_DEVICES: 'Aktywne urządzenia i czujniki',
@@ -87,11 +91,11 @@ const pl: Translation = {
'Odczyty czujników analogowych i cyfrowych',
'Publikacje MQTT',
'Wywołania API',
'Wpisy w logu systemowym'
'Wpisy w SysLog'
],
NUM_DEVICES: '{num} urządze{{ń|nie|nia|nia|ń}} EMS',
NUM_TEMP_SENSORS: '{num} czujni{{ków|k|ki|ki|ków}} temperatury',
NUM_ANALOG_SENSORS: '{num} czujni{{ków|k|ki(two)|ki|ków}} analogow{{ych|y|e|e|ych}}',
NUM_ANALOG_SENSORS: '{num} inn{{ych|e|e|e|ych}} urządze{{ń|nie|nia(two)|nia|ń}} podłączon{{ych|e|e|e|ych}} do EMS-ESP',
NUM_DAYS: '{num} {{dni|dzień|dni|dni|dni}}',
NUM_SECONDS: '{num} sekun{{d|da|dy|dy|d}}',
NUM_HOURS: '{num} godzi{{n|na|ny|ny|n}}',
@@ -100,13 +104,17 @@ const pl: Translation = {
CUSTOMIZATION: 'Personalizacja',
APPLICATION_RESTARTING: 'Trwa ponowne uruchamianie...',
INTERFACE_BOARD_PROFILE: 'Profil płytki interfejsu',
BOARD_PROFILE_TEXT: 'Wybierz z listy wstępną konfigurację płytki interfejsu lub stwórz własną konfigurację.',
BOARD_PROFILE_TEXT: 'Wybierz z listy gotowy profil płytki interfejsu lub wybierając "własny..." skonfiguruj posiadany sprzęt samodzielnie.',
BOARD_PROFILE: 'Profil płytki',
BUTTON: 'Przycisk',
CUSTOM: 'własny',
GPIO_OF: 'GPIO {0}',
BUTTON: 'przycisku',
TEMPERATURE: '1-Wire®',
PHY_TYPE: 'Typ układu ethernetowego (PHY)',
DISABLED: 'wyłączony',
TX_MODE: 'Sposób transmisji (Tx)',
DISABLED: '{{wyłączono|brak|}}',
TX_MODE: 'Tryb transmisji (Tx)',
EMS_BUS: '{{magistrali EMS|na magistrali|}}',
HARDWARE: 'sprzętowy',
GENERAL_OPTIONS: 'Opcje podstawowe',
LANGUAGE_ENTITIES: 'Język encji',
HIDE_LED: 'Wyłącz LED',
@@ -121,9 +129,9 @@ const pl: Translation = {
TRIGGER_TIME: 'Wyzwalaj po czasie',
COLD_SHOT_DURATION: 'Czas trwania tryśnięcia zimnej wody',
FORMATTING_OPTIONS: 'Opcje formatowania',
BOOLEAN_FORMAT_DASHBOARD: 'Format wartości binarnych dla pulpitu',
BOOLEAN_FORMAT_API: 'Format wartości binarnych dla API/MQTT',
ENUM_FORMAT: 'Format wartości numerowanych dla API/MQTT',
BOOLEAN_FORMAT_DASHBOARD: 'Wartości dwustanowe na pulpicie',
BOOLEAN_FORMAT_API: 'Wartości dwustanowe w API/MQTT',
ENUM_FORMAT: 'Wartości z listy w API/MQTT',
INDEX: 'indeks',
ENABLE_PARASITE: 'Aktywuj zasilanie pasożytnicze',
LOGGING: 'Logowanie',
@@ -143,29 +151,29 @@ const pl: Translation = {
CUSTOMIZATIONS_SAVED: 'Personalizacje zostały zapisane.',
CUSTOMIZATIONS_HELP_1: 'Wybierz urządzenie EMS, dostosuj opcje lub kliknij by zmienić nazwę encji.',
CUSTOMIZATIONS_HELP_2: 'oznacz jako ulubioną',
CUSTOMIZATIONS_HELP_3: 'zablokuj możliwość zapisu',
CUSTOMIZATIONS_HELP_3: 'zablokuj akcje zapisu',
CUSTOMIZATIONS_HELP_4: 'wyklucz z MQTT i API',
CUSTOMIZATIONS_HELP_5: 'ukryj na pulpicie',
SELECT_DEVICE: 'wybierz urządzenie',
SET_ALL: 'Zaznacz wszystko jako',
SET_ALL: 'Ustaw wszystko jako',
OPTIONS: 'Opcje',
NAME: 'nazwa',
NAME: '{{Nazwa|nazwa|}}',
CUSTOMIZATIONS_RESET:
'Czy jesteś pewien, że chcesz usunąć wszystkie personalizacje łącznie z ustawieniami dla czujników temperatury 1-Wire® i urządzeń podłączonych do EMS-ESP?',
DEVICE_ENTITIES: 'Encje urządzenia',
USER_CUSTOMIZATION: 'Personalizacje użytkownika',
SUPPORT_INFORMATION: 'Informacje dotyczące wsparcia',
CLICK_HERE: 'Kliknij tu',
HELP_INFORMATION_1: 'W celu znalezienia szczegółowych instrukcji jak skonfigurować EMS-ESP skorzystaj z wiki',
HELP_INFORMATION_2: 'W celu komunikacji na żywo ze społecznością skorzystaj z serwera Discord',
HELP_INFORMATION_1: 'Aby uzyskać instrukcje dotyczące konfiguracji EMS-ESP skorzystaj z wiki w internecie',
HELP_INFORMATION_2: 'Aby dołączyć do naszego serwera Discord i komunikować się na żywo ze społecznością',
HELP_INFORMATION_3: 'Aby zaproponować nową funkcjonalność lub zgłosić problem',
HELP_INFORMATION_4: 'zgłaszając problem, nie zapomnij dołączyć informacji o swoim systemie',
HELP_INFORMATION_4: 'Zgłaszając problem, nie zapomnij dołączyć informacji o swoim systemie!',
HELP_INFORMATION_5:
'EMS-ESP jest darmowym projektem typu open-source. Aby go wesprzeć, rozważ przyznanie nam gwiazdki na Github!',
SUPPORT_INFO: 'Pobierz informacje',
UPLOAD_OF: 'Wysyłanie {0}',
UPLOAD: 'Wysyłanie',
DOWNLOAD: '{{P|p|P}}obier{{anie|z|z}}',
DOWNLOAD: '{{P|p||P}}obier{{anie|z||z}}',
ABORTED: 'zostało przerwane!',
FAILED: 'nie powiodło się!',
SUCCESSFUL: 'powiodło się.',
@@ -193,7 +201,7 @@ const pl: Translation = {
CPU_FREQ: 'Taktowanie CPU',
HEAP: 'HEAP (wolne / maksymalny przydział)',
PSRAM: 'PSRAM (rozmiar / wolne)',
FLASH: 'Układ pamięci flash (rozmiar / taktowanie)',
FLASH: 'Flash (rozmiar / taktowanie)',
APPSIZE: 'Aplikacja (wykorzystane / wolne)',
FILESYSTEM: 'System plików (wykorzystane / wolne)',
BUFFER_SIZE: 'Rozmiar bufora',
@@ -202,15 +210,15 @@ const pl: Translation = {
DOWNLOAD_CUSTOMIZATION_TEXT: 'Pobierz personalizacje',
DOWNLOAD_SETTINGS_TEXT:
'Pobierz ustawienia aplikacji. Uważaj jeśli udostępniasz plik z ustawieniami, ponieważ zawiera on hasła oraz inne wrażliwe informacje!',
UPLOAD_TEXT: 'Wyślij firmware (.bin), ustawienia lub personalizacje (.json)',
UPLOAD_TEXT: 'Wyślij firmware (.bin), ustawienia lub personalizacje (.json). Opcjonalnie, wyślij wcześniej plik walidacji (.md5).',
UPLOADING: 'Wysłano',
UPLOAD_DROP_TEXT: 'Przeciągnij tutaj plik lub kliknij',
ERROR: 'Nieoczekiwany błąd, spróbuj ponownie!',
TIME_SET: 'Ustaw czas',
TIME_SET: 'Zegar został ustawiony.',
MANAGE_USERS: 'Zarządzanie użytkownikami',
IS_ADMIN: '{{Admin?|Uprawnienia administratora|}}',
IS_ADMIN: '{{Administrator|Uprawnienia administratora|}}',
USER_WARNING: 'Przynajmniej jeden użytkownik musi mieć uprawnienia administratora!',
ADD: 'Doda{{j|wanie|C}}',
ADD: 'Doda{{j|wanie|}}',
ACCESS_TOKEN_FOR: 'Token dostępu dla użytkownika',
ACCESS_TOKEN_TEXT:
'Token jest używany w wywołaniach REST API wymagających autoryzacji. Można go przekazywać bezpośrednio lub przez URL.',
@@ -218,29 +226,32 @@ const pl: Translation = {
USER: '{{Użytkownik|użytkownika|}}',
MODIFY: 'Edycja',
SU_TEXT:
'Hasło "su" (super-użytkownika) jest wykorzystywane do autoryzacji tokenów oraz dostępu do konsoli z uprawnieniami administratora.',
NOT_ENABLED: 'nieaktywowany',
'Hasło "su" (super-użytkownika) służy do podpisywania tokenów autoryzujących oraz włączania uprawnień administratora w konsoli.',
NOT_ENABLED: 'nieaktywny',
ERRORS_OF: 'Błędy {0}',
DISCONNECT_REASON: 'Powód rozłączenia',
DISCONNECT_REASON: 'Przyczyna braku połączenia',
ENABLE_MQTT: 'Aktywuj MQTT',
BROKER: 'brokera',
CLIENT: 'klienta',
BASE_TOPIC: 'Prefiks bazowy',
OPTIONAL: 'opcjonalny',
FORMATTING: 'Formatowanie',
FORMAT: 'Format',
MQTT_FORMAT: 'Sposób publikowania danych',
MQTT_NEST_1: 'zagnieżdżone w pojedynczym temacie',
MQTT_NEST_2: 'jako indywidualne tematy',
MQTT_RESPONSE: 'Publikuj odpowiedzi na komendy w temacie "response"',
MQTT_PUBLISH_TEXT_1: 'Publikuj pojedyńcze wartości po zmianie',
MQTT_RESPONSE: 'Rezultat wykonania komendy publikuj w temacie "response"',
MQTT_PUBLISH_TEXT_1: 'Publikuj tematy z pojedynczą wartością bezpośrednio po zmianie',
MQTT_PUBLISH_TEXT_2: 'Publikuj w temacie "command" (ioBroker)',
MQTT_PUBLISH_TEXT_3: 'Włącz opcję MQTT Discovery (Home Assistant, Domoticz)',
MQTT_PUBLISH_TEXT_4: 'Prefiks do tematów "discovery"',
MQTT_PUBLISH_INTERVALS: 'Interwał publikowania',
MQTT_PUBLISH_TEXT_3: 'Włącz opcję "MQTT discovery" (Home Assistant, Domoticz)',
MQTT_PUBLISH_TEXT_4: 'Prefiks dla tematów "MQTT discovery"',
MQTT_PUBLISH_INTERVALS: 'Interwały publikowania',
MQTT_INT_BOILER: 'Kotły i pompy ciepła',
MQTT_INT_THERMOSTATS: 'Termostaty',
MQTT_INT_SOLAR: 'Panele solarne',
MQTT_INT_MIXER: 'Mieszacze',
MQTT_QUEUE: 'Kolejka MQTT',
DEFAULT: 'Domyślnie',
MQTT_CLEAN_SESSION: 'Ustawiaj "Clean session"',
DEFAULT: '{{Pozostałe|Domyślna|}}',
MQTT_CLEAN_SESSION: 'Ustawiaj flagę "Clean session"',
MQTT_RETAIN_FLAG: 'Ustawiaj flagę "Retain"',
INACTIVE: 'nieaktywny',
ACTIVE: 'aktywny',
@@ -253,7 +264,7 @@ const pl: Translation = {
NTP_SERVER: 'Serwer NTP',
TIME_ZONE: 'Strefa czasowa',
ACCESS_POINT: '{{Punkt|punktu|}} {{dostępowy|dostępowego|}}',
AP_PROVIDE: 'Aktywuj punkt dostępowy (Access Point)',
AP_PROVIDE: 'Aktywuj punkt dostępowy',
AP_PROVIDE_TEXT_1: 'zawsze',
AP_PROVIDE_TEXT_2: 'gdy połączenie WiFi jest rozłączone',
AP_PROVIDE_TEXT_3: 'nigdy',
@@ -262,7 +273,7 @@ const pl: Translation = {
AP_CLIENTS: 'Liczba klientów',
AP_MAX_CLIENTS: 'Maksymalna liczba klientów',
AP_LOCAL_IP: 'Lokalny adres IP',
NETWORK_SCAN: 'Skanuj sieci WiFi',
NETWORK_SCAN: 'Skanowanie sieci WiFi',
IDLE: 'uśpiony',
LOST: 'zostało utracone.',
SCANNING: 'Skanuję',
@@ -281,11 +292,13 @@ const pl: Translation = {
NETWORK_SUBNET: 'Maska podsieci',
NETWORK_DNS: 'Serwery DNS',
ADDRESS_OF: 'Adres {0}',
ADMIN: 'Administrator',
GUEST: 'Gość',
ADMIN: 'Użytkownik "administrator".',
GUEST: 'Użytkownik "gość".',
NEW: 'Nowy',
RENAME: 'Zmień nazwę',
ENTITY: 'encji'
NEW_NAME_OF: 'Nowa nazwa {0}',
ENTITY: 'encji',
MIN: 'Min.',
MAX: 'Maks.'
};
export default pl;

View File

@@ -4,7 +4,7 @@ const se: Translation = {
LANGUAGE: 'Språk',
RETRY: 'Försök igen',
LOADING: 'Laddar',
IS_REQUIRED: 'Krävs',
IS_REQUIRED: '{0} Krävs',
SIGN_IN: 'Logga In',
SIGN_OUT: 'Logga Ut',
USERNAME: 'Användarnamn',
@@ -29,6 +29,10 @@ const se: Translation = {
REFRESH: 'Uppdatera',
EXPORT: 'Exportera',
DEVICE_DETAILS: 'Enhetsdetaljer',
ID_OF: '{0}-ID',
DEVICE: 'Enhets',
PRODUCT: 'Produkt',
VERSION: 'Version',
BRAND: 'Fabrikat',
ENTITY_NAME: 'Entitetsnamn',
VALUE: '{{Värde|värde}}',
@@ -60,7 +64,7 @@ const se: Translation = {
STARTVALUE: 'Startvärde',
WARN_GPIO: 'Varning: Var försiktig vid aktivering av GPIO!',
EDIT: 'Ändra',
TEMP_SENSOR: 'Temperatursensor',
TEMP_SENSOR: '{{Sensor|Temperatursensor}}',
TEMP_SENSORS: 'Temperatursensorer',
WRITE_COMMAND: 'Skrivkommando {cmd}',
EMS_BUS_WARNING:
@@ -103,11 +107,15 @@ const se: Translation = {
BOARD_PROFILE_TEXT:
'Välj en förkonfigurerad hårdvaruprofil från listan nedan eller välj Anpassad för att konfigurera dina egna hårdvaruinställningar',
BOARD_PROFILE: 'Hårdvaruprofil',
CUSTOM: 'Custom',
GPIO_OF: '{0} GPIO',
BUTTON: 'Knapp',
TEMPERATURE: 'Temperatur',
PHY_TYPE: 'Eth PHY-typ',
DISABLED: 'inaktiverad',
TX_MODE: 'Tx Mode',
HARDWARE: 'Hardware',
EMS_BUS: '{{BUS|EMS BUS}}',
GENERAL_OPTIONS: 'Allmänna Inställningar',
LANGUAGE_ENTITIES: 'Språk (för entiteter)',
HIDE_LED: 'Inaktivera LED',
@@ -223,9 +231,12 @@ const se: Translation = {
ERRORS_OF: '{0} fel',
DISCONNECT_REASON: 'Anledning till nedkoppling',
ENABLE_MQTT: 'Aktivera MQTT',
BROKER: 'Broker',
CLIENT: 'Client',
BASE_TOPIC: 'Base',
OPTIONAL: 'Valfritt',
FORMATTING: 'Formatering',
FORMAT: 'Format',
MQTT_FORMAT: 'Topic/Payload Format',
MQTT_NEST_1: 'Nestlat i en topic.',
MQTT_NEST_2: 'Som individuella topics',
MQTT_RESPONSE: 'Publish-kommando som ett `response` topic',
@@ -284,8 +295,10 @@ const se: Translation = {
ADMIN: 'Admin',
GUEST: 'Gäst',
NEW: 'Ny',
RENAME: 'Byt namn',
ENTITY: 'Entitet'
NEW_NAME_OF: 'Byt namn {0}',
ENTITY: 'Entitet',
MIN: 'min',
MAX: 'max'
};
export default se;

View File

@@ -559,11 +559,11 @@ const DashboardData: FC = () => {
offset: sensor.o
});
if (response.status === 204) {
enqueueSnackbar(LL.UPLOAD_OF(LL.TEMP_SENSOR()) + ' ' + LL.FAILED(), { variant: 'error' });
enqueueSnackbar(LL.UPLOAD_OF(LL.TEMP_SENSOR(0)) + ' ' + LL.FAILED(), { variant: 'error' });
} else if (response.status === 403) {
enqueueSnackbar(LL.ACCESS_DENIED(), { variant: 'error' });
} else {
enqueueSnackbar(LL.UPDATED_OF(LL.TEMP_SENSOR()), { variant: 'success' });
enqueueSnackbar(LL.UPDATED_OF(LL.TEMP_SENSOR(0)), { variant: 'success' });
}
setSensor(undefined);
} catch (error) {
@@ -580,11 +580,11 @@ const DashboardData: FC = () => {
return (
<Dialog open={sensor !== undefined} onClose={() => setSensor(undefined)}>
<DialogTitle>
{LL.EDIT()} {LL.TEMP_SENSOR()}
{LL.EDIT()} {LL.TEMP_SENSOR(0)}
</DialogTitle>
<DialogContent dividers>
<Box color="warning.main" p={0} pl={0} pr={0} mt={0} mb={2}>
<Typography variant="body2">Sensor ID: {sensor.id}</Typography>
<Typography variant="body2">{LL.ID_OF(LL.TEMP_SENSOR(1))}: {sensor.id}</Typography>
</Box>
<Grid container spacing={1}>
<Grid item>
@@ -649,22 +649,22 @@ const DashboardData: FC = () => {
<ListItemText primary={LL.TYPE()} secondary={coreData.devices[deviceDialog].t} />
</ListItem>
<ListItem>
<ListItemText primary={LL.NAME()} secondary={coreData.devices[deviceDialog].n} />
<ListItemText primary={LL.NAME(0)} secondary={coreData.devices[deviceDialog].n} />
</ListItem>
<ListItem>
<ListItemText primary={LL.BRAND()} secondary={coreData.devices[deviceDialog].b} />
</ListItem>
<ListItem>
<ListItemText
primary="Device ID"
primary={LL.ID_OF(LL.DEVICE())}
secondary={'0x' + ('00' + coreData.devices[deviceDialog].d.toString(16).toUpperCase()).slice(-2)}
/>
</ListItem>
<ListItem>
<ListItemText primary="Product ID" secondary={coreData.devices[deviceDialog].p} />
<ListItemText primary={LL.ID_OF(LL.PRODUCT())} secondary={coreData.devices[deviceDialog].p} />
</ListItem>
<ListItem>
<ListItemText primary="Version" secondary={coreData.devices[deviceDialog].v} />
<ListItemText primary={LL.VERSION()} secondary={coreData.devices[deviceDialog].v} />
</ListItem>
</List>
</DialogContent>

View File

@@ -133,7 +133,7 @@ const SettingsApplication: FC = () => {
{boardProfileSelectItems()}
<Divider />
<MenuItem key={'CUSTOM'} value={'CUSTOM'}>
Custom&hellip;
{LL.CUSTOM()}&hellip;
</MenuItem>
</ValidatedTextField>
{data.board_profile === 'CUSTOM' && (
@@ -143,7 +143,7 @@ const SettingsApplication: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="rx_gpio"
label="Rx GPIO"
label={LL.GPIO_OF('Rx')}
fullWidth
variant="outlined"
value={numberValue(data.rx_gpio)}
@@ -157,7 +157,7 @@ const SettingsApplication: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="tx_gpio"
label="Tx GPIO"
label={LL.GPIO_OF('Tx')}
fullWidth
variant="outlined"
value={numberValue(data.tx_gpio)}
@@ -171,7 +171,7 @@ const SettingsApplication: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="pbutton_gpio"
label={LL.BUTTON() + ' GPIO'}
label={LL.GPIO_OF(LL.BUTTON())}
fullWidth
variant="outlined"
value={numberValue(data.pbutton_gpio)}
@@ -185,7 +185,7 @@ const SettingsApplication: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="dallas_gpio"
label={LL.TEMPERATURE() + ' GPIO (0=' + LL.DISABLED() + ')'}
label={LL.GPIO_OF(LL.TEMPERATURE()) + ' (0=' + LL.DISABLED(1) + ')'}
fullWidth
variant="outlined"
value={numberValue(data.dallas_gpio)}
@@ -199,7 +199,7 @@ const SettingsApplication: FC = () => {
<ValidatedTextField
fieldErrors={fieldErrors}
name="led_gpio"
label={'LED GPIO (0=' + LL.DISABLED() + ')'}
label={LL.GPIO_OF('LED') + ' (0=' + LL.DISABLED(1) + ')'}
fullWidth
variant="outlined"
value={numberValue(data.led_gpio)}
@@ -222,7 +222,7 @@ const SettingsApplication: FC = () => {
margin="normal"
select
>
<MenuItem value={0}>{LL.DISABLED()}</MenuItem>
<MenuItem value={0}>{LL.DISABLED(1)}</MenuItem>
<MenuItem value={1}>LAN8720</MenuItem>
<MenuItem value={2}>TLK110</MenuItem>
</ValidatedTextField>
@@ -232,7 +232,7 @@ const SettingsApplication: FC = () => {
<Grid item>
<ValidatedTextField
name="eth_power"
label={'Eth Power GPIO (-1=' + LL.DISABLED() + ')'}
label={LL.GPIO_OF('PHY Power') + ' (-1=' + LL.DISABLED(1) + ')'}
fullWidth
variant="outlined"
value={numberValue(data.eth_power)}
@@ -245,7 +245,7 @@ const SettingsApplication: FC = () => {
<Grid item>
<ValidatedTextField
name="eth_phy_addr"
label="Eth I²C Address"
label={LL.ADDRESS_OF('PHY I²C')}
fullWidth
variant="outlined"
value={numberValue(data.eth_phy_addr)}
@@ -258,7 +258,7 @@ const SettingsApplication: FC = () => {
<Grid item>
<ValidatedTextField
name="eth_clock_mode"
label="Eth Clk Mode"
label="PHY Clk"
disabled={saving}
value={data.eth_clock_mode}
fullWidth
@@ -278,7 +278,7 @@ const SettingsApplication: FC = () => {
</>
)}
<Typography variant="h6" color="primary">
{LL.SETTINGS_OF('EMS BUS')}
{LL.SETTINGS_OF(LL.EMS_BUS(0))}
</Typography>
<Grid container spacing={1} direction="row" justifyContent="flex-start" alignItems="flex-start">
<Grid item xs={6}>
@@ -296,13 +296,13 @@ const SettingsApplication: FC = () => {
<MenuItem value={1}>EMS</MenuItem>
<MenuItem value={2}>EMS+</MenuItem>
<MenuItem value={3}>HT3</MenuItem>
<MenuItem value={4}>Hardware</MenuItem>
<MenuItem value={4}>{LL.HARDWARE()}</MenuItem>
</ValidatedTextField>
</Grid>
<Grid item xs={6}>
<ValidatedTextField
name="ems_bus_id"
label="Bus ID"
label={LL.ID_OF(LL.EMS_BUS(1))}
disabled={saving}
value={data.ems_bus_id}
fullWidth

View File

@@ -66,7 +66,7 @@ const SettingsCustomization: FC = () => {
const entities_theme = useTheme({
Table: `
--data-table-library_grid-template-columns: 120px repeat(1, minmax(80px, 1fr)) 40px 40px 120px;
--data-table-library_grid-template-columns: 120px repeat(1, minmax(80px, 1fr)) 45px 45px 120px;
`,
BaseRow: `
font-size: 14px;
@@ -455,11 +455,11 @@ const SettingsCustomization: FC = () => {
<HeaderCell stiff>{LL.OPTIONS()}</HeaderCell>
<HeaderCell resize>
<Button fullWidth style={{ fontSize: '14px', justifyContent: 'flex-start' }}>
{LL.NAME()}
{LL.NAME(1)}
</Button>
</HeaderCell>
<HeaderCell stiff>min</HeaderCell>
<HeaderCell stiff>max</HeaderCell>
<HeaderCell stiff>{LL.MIN()}</HeaderCell>
<HeaderCell stiff>{LL.MAX()}</HeaderCell>
<HeaderCell resize>{LL.VALUE(0)}</HeaderCell>
</HeaderRow>
</Header>
@@ -582,7 +582,7 @@ const SettingsCustomization: FC = () => {
const de = deviceEntity;
return (
<Dialog open={!!deviceEntity} onClose={() => setDeviceEntity(undefined)}>
<DialogTitle>{LL.EDIT() + ' ' + LL.ENTITY() + ' ' + de.id}</DialogTitle>
<DialogTitle>{LL.EDIT() + ' ' + LL.ENTITY() + ' "' + de.id + '"'}</DialogTitle>
<DialogContent dividers>
<ToggleButtonGroup
@@ -628,14 +628,14 @@ const SettingsCustomization: FC = () => {
<Box color="warning.main" p={0} pl={0} pr={0} mt={2} mb={2}>
<Typography variant="body2">
{LL.DEFAULT() + ' ' + LL.NAME()}:&nbsp;{deviceEntity.n}
{LL.DEFAULT(1) + ' ' + LL.NAME(1)}:&nbsp;{deviceEntity.n}
</Typography>
</Box>
<Grid container spacing={1}>
<Grid item>
<TextField
name="cn"
label={LL.RENAME() + ' ' + LL.ENTITY()}
label={LL.NEW_NAME_OF(LL.ENTITY())}
value={deviceEntity.cn}
autoFocus
sx={{ width: '30ch' }}
@@ -647,7 +647,7 @@ const SettingsCustomization: FC = () => {
<Grid item>
<TextField
name="mi"
label="min"
label={LL.MIN()}
value={deviceEntity.mi}
sx={{ width: '8ch' }}
onChange={updateValue(setDeviceEntity)}
@@ -656,7 +656,7 @@ const SettingsCustomization: FC = () => {
<Grid item>
<TextField
name="ma"
label="max"
label={LL.MAX()}
value={deviceEntity.ma}
sx={{ width: '8ch' }}
onChange={updateValue(setDeviceEntity)}