1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2025-06-16 13:46:16 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
b82e7c230b Bump v6.0.0 2024-06-10 18:05:06 +02:00
72 changed files with 2595 additions and 4707 deletions

View File

@ -8,142 +8,13 @@ and this project adheres to
## [Unreleased]
## [6.6.0] - 2025-02-07
## [6.0.0] - 2024-06-10
### Added
- Added & updated Weblate translations
- Added Wi-Fi and LAN settings URLs to ForisURLs
- Added Wi-Fi modes VHT/HE 80+80
- Added encryption selection to WiFiGuestForm
- Added optional close button to ModalHeader component
### Changed
- Updated Wi-Fi API
- Enhanced NumberInput component with keyboard & touch accessibility
- Refactored pagination condition in RichTable component
## [6.5.0] - 2024-11-13
### Added
- Added & updated Weblate translations
- Added RichTable component with pagination and sorting
- Added @tanstack/react-table v8.20.5 to dependencies
### Changed
- Updated documentation
- Replaced RebootButton with ActionButtonWithModal component
- Fixed import path for CustomizationContextMock in customTestRender.js
## [6.4.0] - 2024-10-02
### Changed
- Refactored Alert component to include dismiss animation and timeout
- Refactored ThreeDotsMenu component to include additional props
## [6.3.0] - 2024-09-27
### Added
- Added ThreeDotsMenu component
### Changed
- Refactored EmailInput description
- Refactored RadioSet & ignore Radio component
- Refactored npm package badge in introduction.md
- NPM audit fix
## [6.2.1] - 2024-09-25
### Added
- Added & updated Weblate translations
### Changed
- Refactored CopyInput component
- Refactored ForisURLs to include new URLs for Overview page
## [6.2.0] - 2024-09-20
### Added
- Added useFocusTrap hook
- Added extendSession endpoint
### Changed
- Refactored Spinner.css to use CSS variable for color
- Refactored Modal component to use useFocusTrap hook
- Refactored Alert component to use useFocusTrap hook
## [6.1.1] - 2024-08-30
### Added
- Added & updated Weblate translations
### Changed
- Updated icon color classes to use "text-secondary" instead of "text-dark"
- Updated Wi-Fi QRCodeModal component to use new styles & added close button
- Refactored WiFiGuestForm component to get rid of obsolete div element
- NPM audit fix
## [6.1.0] - 2024-08-23
### Added
- Added & updated Weblate translations
### Changed
- Migrated to Font Awesome v6
- NPM audit fix
## [6.0.3] - 2024-07-26
### Changed
- Updated WiFiQRCode component
## [6.0.2] - 2024-06-28
### Added
- Added className prop to CheckBox and Radio components
## [6.0.1] - 2024-06-26
### Added
- Added className prop to Switch component
### Changed
- Updated dependencies in package.json
- NPM audit fix
## [6.0.0] - 2024-06-11
### Added
- Added CHANGELOG.md
- Added JS_DIR variable to Makefile
- Added support for shared reForis ESLint configuration
### Changed
- Updated dependencies in package.json
- Updated Spinner.css styles for better positioning and responsiveness
- Migrated to Bootstrap 5
- NPM audit fix
- Other small improvements
### Removed
## [5.6.1] - 2024-01-19
@ -435,18 +306,7 @@ and this project adheres to
## [0.0.7] - 2019-09-02
[unreleased]:
https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.6.0...dev
[6.6.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.5.0...v6.6.0
[6.5.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.4.0...v6.5.0
[6.4.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.3.0...v6.4.0
[6.3.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.2.1...v6.3.0
[6.2.1]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.2.0...v6.2.1
[6.2.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.1.1...v6.2.0
[6.1.1]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.1.0...v6.1.1
[6.1.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.3...v6.1.0
[6.0.3]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.2...v6.0.3
[6.0.2]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.1...v6.0.2
[6.0.1]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.0...v6.0.1
https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.0...master
[6.0.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v5.6.1...v6.0.0
[5.6.1]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v5.6.0...v5.6.1
[5.6.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v5.5.0...v5.6.0

View File

@ -33,4 +33,5 @@ To install a specific version:
npm install foris@version
```
[![npm version](https://badge.fury.io/js/foris.svg)](https://badge.fury.io/js/foris)
<a target="_blank" href="https://www.npmjs.com/package/foris">Check
on<img width="100px" src="./docs/forisjs-npm.svg"></a>

1394
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "foris",
"version": "6.6.0",
"version": "6.0.0",
"description": "Foris JS library is a set of components and utils for reForis application and plugins.",
"author": "CZ.NIC, z.s.p.o.",
"repository": {
@ -14,11 +14,6 @@
"license": "GPL-3.0",
"main": "./src/index.js",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.6.0",
"@fortawesome/free-regular-svg-icons": "^6.6.0",
"@fortawesome/free-solid-svg-icons": "^6.6.0",
"@fortawesome/react-fontawesome": "^0.2.2",
"@tanstack/react-table": "^8.20.5",
"axios": "^1.7.2",
"immutability-helper": "^3.1.1",
"moment": "^2.30.1",
@ -39,6 +34,7 @@
"@babel/plugin-transform-runtime": "^7.24.7",
"@babel/preset-env": "^7.24.7",
"@babel/preset-react": "^7.24.7",
"@fortawesome/fontawesome-free": "^6.5.2",
"@testing-library/react": "^8.0.9",
"babel-loader": "^8.1.0",
"babel-polyfill": "^6.26.0",
@ -51,7 +47,7 @@
"jest-environment-jsdom": "^29.7.0",
"jest-mock-axios": "^4.7.3",
"moment-timezone": "^0.5.45",
"prettier": "^3.3.2",
"prettier": "^3.3.1",
"prop-types": "15.8.1",
"react": "16.9.0",
"react-dom": "16.9.0",
@ -59,7 +55,7 @@
"react-styleguidist": "^12.0.1",
"snapshot-diff": "^0.10.0",
"style-loader": "^1.2.1",
"webpack": "^5.92.1"
"webpack": "^5.91.0"
},
"scripts": {
"lint": "eslint src",

View File

@ -5,12 +5,10 @@
* See /LICENSE for more information.
*/
import React, { useRef, useEffect, useState } from "react";
import React from "react";
import PropTypes from "prop-types";
import { useFocusTrap } from "../utils/hooks";
export const ALERT_TYPES = Object.freeze({
PRIMARY: "primary",
SECONDARY: "secondary",
@ -39,37 +37,17 @@ Alert.defaultProps = {
};
function Alert({ type, onDismiss, children }) {
const alertRef = useRef();
const [isVisible, setIsVisible] = useState(true);
useFocusTrap(alertRef, !!onDismiss);
useEffect(() => {
if (onDismiss) {
const timeout = setTimeout(() => setIsVisible(false), 7000);
return () => clearTimeout(timeout);
}
}, [onDismiss]);
const handleAnimationEnd = () => {
if (!isVisible && onDismiss) {
onDismiss();
}
};
return (
<div
ref={alertRef}
className={`alert alert-${type} ${isVisible ? "alert-fade-in" : "alert-slide-out-top"} ${
className={`alert alert-${type} ${
onDismiss ? "alert-dismissible" : ""
}`.trim()}
role="alert"
onAnimationEnd={handleAnimationEnd}
>
{onDismiss && (
<button
type="button"
className="btn-close"
onClick={() => setIsVisible(false)}
onClick={onDismiss}
aria-label={_("Close")}
/>
)}

View File

@ -17,19 +17,17 @@ CheckBox.propTypes = {
helpText: PropTypes.string,
/** Control if checkbox is clickable */
disabled: PropTypes.bool,
/** Additional class name */
className: PropTypes.string,
};
CheckBox.defaultProps = {
disabled: false,
};
function CheckBox({ label, helpText, disabled, className, ...props }) {
function CheckBox({ label, helpText, disabled, ...props }) {
const uid = useUID();
return (
<div className={`${className || "mb-3"} form-check`.trim()}>
<div className="mb-3 form-check">
<input
className="form-check-input"
type="checkbox"

View File

@ -48,13 +48,15 @@ function CopyInput({ value, ...props }) {
return (
<Input type="text" value={value} ref={inputTextRef} {...props}>
<button
className="btn btn-outline-secondary"
type="button"
onClick={handleCopyClick}
>
<span>{isCopied ? _("Copied!") : _("Copy")}</span>
</button>
<div className="input-group-append">
<button
className="btn btn-outline-secondary"
type="button"
onClick={handleCopyClick}
>
<span>{isCopied ? _("Copied!") : _("Copy")}</span>
</button>
</div>
</Input>
);
}

View File

@ -6,7 +6,6 @@ All additional `props` are passed to the `<input type="email">` HTML component.
```js
import { useState } from "react";
import Button from "./Button";
const [email, setEmail] = useState("Wrong email");
<form onSubmit={(e) => e.preventDefault()}>
<EmailInput
@ -15,6 +14,6 @@ const [email, setEmail] = useState("Wrong email");
helpText="Read the small text!"
onChange={(event) => setEmail(event.target.value)}
/>
<Button type="submit">Try to submit</Button>
<button type="submit">Try to submit</button>
</form>;
```

View File

@ -9,7 +9,7 @@ import React, { useRef, useEffect } from "react";
import PropTypes from "prop-types";
import { useClickOutside, useFocusTrap } from "../utils/hooks";
import { useClickOutside } from "../utils/hooks";
import Portal from "../utils/Portal";
import "./Modal.css";
@ -29,11 +29,10 @@ Modal.propTypes = {
};
export function Modal({ shown, setShown, scrollable, size, children }) {
const modalRef = useRef();
const dialogRef = useRef();
let modalSize = "modal-";
useClickOutside(modalRef, () => setShown(false));
useFocusTrap(modalRef, shown);
useClickOutside(dialogRef, () => setShown(false));
useEffect(() => {
const handleEsc = (event) => {
@ -66,13 +65,11 @@ export function Modal({ shown, setShown, scrollable, size, children }) {
return (
<Portal containerId="modal-container">
<div
ref={modalRef}
className={`modal fade ${shown ? "show" : ""}`.trim()}
role="dialog"
aria-modal="true"
aria-labelledby="modal-title"
>
<div
ref={dialogRef}
className={`${modalSize.trim()} modal-dialog modal-dialog-centered ${
scrollable ? "modal-dialog-scrollable" : ""
}`.trim()}
@ -88,21 +85,18 @@ export function Modal({ shown, setShown, scrollable, size, children }) {
ModalHeader.propTypes = {
setShown: PropTypes.func.isRequired,
title: PropTypes.string.isRequired,
showCloseButton: PropTypes.bool,
};
export function ModalHeader({ setShown, title, showCloseButton = true }) {
export function ModalHeader({ setShown, title }) {
return (
<div className="modal-header">
<h1 className="modal-title fs-5">{title}</h1>
{showCloseButton && (
<button
type="button"
className="btn-close"
onClick={() => setShown(false)}
aria-label={_("Close")}
/>
)}
<h5 className="modal-title">{title}</h5>
<button
type="button"
className="btn-close"
onClick={() => setShown(false)}
aria-label={_("Close")}
/>
</div>
);
}

View File

@ -7,8 +7,6 @@
import React from "react";
import { faMinus, faPlus } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import PropTypes from "prop-types";
import Input from "./Input";
@ -50,20 +48,6 @@ function NumberInput({ onChange, inlineText, value, ...props }) {
-1
);
function handleKeyDown(event, enableFunction) {
if (event.key === "Enter" || event.key === " ") {
event.preventDefault();
enableFunction(true);
}
}
function handleKeyUp(event, enableFunction) {
if (event.key === "Enter" || event.key === " ") {
event.preventDefault();
enableFunction(false);
}
}
return (
<Input type="number" onChange={onChange} value={value} {...props}>
{inlineText && (
@ -74,34 +58,18 @@ function NumberInput({ onChange, inlineText, value, ...props }) {
className="btn btn-outline-secondary"
onMouseDown={() => enableIncrease(true)}
onMouseUp={() => enableIncrease(false)}
onMouseLeave={() => enableIncrease(false)}
onTouchStart={() => enableIncrease(true)}
onTouchEnd={() => enableIncrease(false)}
onTouchCancel={() => enableIncrease(false)}
onKeyDown={(event) => handleKeyDown(event, enableIncrease)}
onKeyUp={(event) => handleKeyUp(event, enableIncrease)}
onBlur={() => enableIncrease(false)}
title={_("Increase value. Hint: Hold to increase faster.")}
aria-label={_("Increase value. Hint: Hold to increase faster.")}
aria-label="Increase"
>
<FontAwesomeIcon icon={faPlus} />
<i className="fas fa-plus" />
</button>
<button
type="button"
className="btn btn-outline-secondary"
onMouseDown={() => enableDecrease(true)}
onMouseUp={() => enableDecrease(false)}
onMouseLeave={() => enableDecrease(false)}
onTouchStart={() => enableDecrease(true)}
onTouchEnd={() => enableDecrease(false)}
onTouchCancel={() => enableDecrease(false)}
onKeyDown={(event) => handleKeyDown(event, enableDecrease)}
onKeyUp={(event) => handleKeyUp(event, enableDecrease)}
onBlur={() => enableDecrease(false)}
title={_("Decrease value. Hint: Hold to decrease faster.")}
aria-label={_("Decrease value. Hint: Hold to decrease faster.")}
aria-label="Decrease"
>
<FontAwesomeIcon icon={faMinus} />
<i className="fas fa-minus" />
</button>
</Input>
);

View File

@ -7,8 +7,6 @@
import React, { useState } from "react";
import { faEye, faEyeSlash } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import PropTypes from "prop-types";
import Input from "./Input";
@ -46,10 +44,8 @@ function PasswordInput({ withEye, newPass, ...props }) {
setHidden((shouldBeHidden) => !shouldBeHidden);
}}
>
<FontAwesomeIcon
icon={isHidden ? faEye : faEyeSlash}
style={{ width: "1.25rem" }}
className="text-secondary"
<i
className={`fa ${isHidden ? "fa-eye" : "fa-eye-slash"}`}
/>
</button>
)}

View File

@ -1,48 +0,0 @@
/*
* Copyright (C) 2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import PropTypes from "prop-types";
Radio.propTypes = {
label: PropTypes.oneOfType([
PropTypes.string,
PropTypes.element,
PropTypes.node,
PropTypes.arrayOf(PropTypes.node),
]).isRequired,
id: PropTypes.string.isRequired,
inline: PropTypes.bool,
helpText: PropTypes.string,
className: PropTypes.string,
};
function Radio({ label, id, helpText, inline, className, ...props }) {
return (
<div
className={`${className || "mb-3"} ${inline ? "form-check form-check-inline" : ""}`.trim()}
>
<input
id={id}
className="form-check-input me-2"
type="radio"
{...props}
/>
<label className="form-check-label" htmlFor={id}>
{label}
{helpText && (
<div className="form-text">
<small>{helpText}</small>
</div>
)}
</label>
</div>
);
}
export default Radio;

View File

@ -10,8 +10,6 @@ import React from "react";
import PropTypes from "prop-types";
import { useUID } from "react-uid";
import Radio from "./Radio";
RadioSet.propTypes = {
/** Name attribute of the input HTML tag. */
name: PropTypes.string.isRequired,
@ -75,4 +73,39 @@ function RadioSet({ name, label, choices, value, helpText, inline, ...props }) {
);
}
Radio.propTypes = {
label: PropTypes.oneOfType([
PropTypes.string,
PropTypes.element,
PropTypes.node,
PropTypes.arrayOf(PropTypes.node),
]).isRequired,
id: PropTypes.string.isRequired,
inline: PropTypes.bool,
helpText: PropTypes.string,
};
export function Radio({ label, id, helpText, inline, ...props }) {
return (
<div
className={`mb-2 ${inline ? "form-check form-check-inline" : ""}`.trim()}
>
<input
id={id}
className="form-check-input me-2"
type="radio"
{...props}
/>
<label className="form-check-label" htmlFor={id}>
{label}
{helpText && (
<div className="form-text">
<small>{helpText}</small>
</div>
)}
</label>
</div>
);
}
export default RadioSet;

View File

@ -9,7 +9,7 @@
.spinner-wrapper .spinner-border {
width: 4rem;
height: 4rem;
color: var(--bs-primary);
color: #00a2e2;
}
.spinner-fs-background {

View File

@ -19,16 +19,15 @@ Switch.propTypes = {
]).isRequired,
helpText: PropTypes.string,
switchHeading: PropTypes.bool,
className: PropTypes.string,
};
function Switch({ label, helpText, switchHeading, className, ...props }) {
function Switch({ label, helpText, switchHeading, ...props }) {
const uid = useUID();
return (
<div
className={`form-check form-switch ${className || "mb-3"} ${
switchHeading ? "d-flex align-items-center" : ""
className={`form-check form-switch mb-3 ${
switchHeading ? "d-flex align-items-center" : null
}`.trim()}
>
<input

View File

@ -1,42 +0,0 @@
/*
* Copyright (C) 2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import { faEllipsisVertical } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import PropTypes from "prop-types";
import Button from "./Button";
ThreeDotsMenu.propTypes = {
/** Menu items. */
children: PropTypes.arrayOf(PropTypes.node).isRequired,
};
function ThreeDotsMenu({ children, ...props }) {
return (
<div className="dropdown position-static" {...props}>
<Button
className="btn-sm btn-link text-body"
data-bs-toggle="dropdown"
aria-expanded="false"
>
<FontAwesomeIcon icon={faEllipsisVertical} />
</Button>
<ul className="dropdown-menu">
{children.map((child) => (
<li key={child.key || child.props.id || Math.random()}>
{child}
</li>
))}
</ul>
</div>
);
}
export default ThreeDotsMenu;

View File

@ -1,40 +0,0 @@
ThreeDotsMenu Bootstrap component is a dropdown menu that appears when the user
clicks on three dots. It is used to display a list of actions that can be
performed on a particular item.
```js
import { useState } from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faEdit, faTrash } from "@fortawesome/free-solid-svg-icons";
const threeDotsMenuItems = [
{
text: "Edit",
icon: faEdit,
onClick: () => {
alert("Edit clicked");
},
},
{
text: "Delete",
icon: faTrash,
onClick: () => {
alert("Delete clicked");
},
},
];
<ThreeDotsMenu>
{threeDotsMenuItems.map((item, index) => (
<button key={index} onClick={item.onClick} className="dropdown-item">
<FontAwesomeIcon
icon={item.icon}
className="me-1"
width="1rem"
size="sm"
/>
{item.text}
</button>
))}
</ThreeDotsMenu>;
```

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
@ -32,7 +32,7 @@ describe("<NumberInput/>", () => {
});
it("Increase number with button", async () => {
const increaseButton = getByLabelText(componentContainer, /Increase/);
const increaseButton = getByLabelText(componentContainer, "Increase");
fireEvent.mouseDown(increaseButton);
await wait(() =>
expect(onChangeMock).toHaveBeenCalledWith({ target: { value: 2 } })
@ -40,7 +40,7 @@ describe("<NumberInput/>", () => {
});
it("Decrease number with button", async () => {
const decreaseButton = getByLabelText(componentContainer, /Decrease/);
const decreaseButton = getByLabelText(componentContainer, "Decrease");
fireEvent.mouseDown(decreaseButton);
await wait(() =>
expect(onChangeMock).toHaveBeenCalledWith({ target: { value: 0 } })

View File

@ -20,23 +20,21 @@ exports[`<NumberInput/> Render number input 1`] = `
value="1"
/>
<button
aria-label="Increase value. Hint: Hold to increase faster."
aria-label="Increase"
class="btn btn-outline-secondary"
title="Increase value. Hint: Hold to increase faster."
type="button"
>
<i
class="fa"
class="fas fa-plus"
/>
</button>
<button
aria-label="Decrease value. Hint: Hold to decrease faster."
aria-label="Decrease"
class="btn btn-outline-secondary"
title="Decrease value. Hint: Hold to decrease faster."
type="button"
>
<i
class="fa"
class="fas fa-minus"
/>
</button>
</div>

View File

@ -11,7 +11,7 @@ exports[`<RadioSet/> Render radio set 1`] = `
Radios set label
</label>
<div
class="mb-3"
class="mb-2"
>
<input
checked=""
@ -29,7 +29,7 @@ exports[`<RadioSet/> Render radio set 1`] = `
</label>
</div>
<div
class="mb-3"
class="mb-2"
>
<input
class="form-check-input me-2"
@ -46,7 +46,7 @@ exports[`<RadioSet/> Render radio set 1`] = `
</label>
</div>
<div
class="mb-3"
class="mb-2"
>
<input
class="form-check-input me-2"

View File

@ -2,7 +2,7 @@
exports[`<Switch/> Render switch 1`] = `
<div
class="form-check form-switch mb-3"
class="form-check form-switch mb-3 null"
>
<input
checked=""
@ -29,7 +29,7 @@ exports[`<Switch/> Render switch 1`] = `
exports[`<Switch/> Render uncheked switch 1`] = `
<div
class="form-check form-switch mb-3"
class="form-check form-switch mb-3 null"
>
<input
class="form-check-input"

View File

@ -1,135 +0,0 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React, { useState, useEffect } from "react";
import PropTypes from "prop-types";
import { useAPIPost } from "../../api/hooks";
import { API_STATE } from "../../api/utils";
import Button from "../../bootstrap/Button";
import {
Modal,
ModalHeader,
ModalBody,
ModalFooter,
} from "../../bootstrap/Modal";
import { useAlert } from "../../context/alertContext/AlertContext";
ActionButtonWithModal.propTypes = {
/** Component that triggers the action. */
actionTrigger: PropTypes.elementType.isRequired,
/** URL to send the action to. */
actionUrl: PropTypes.string.isRequired,
/** Title of the modal. */
modalTitle: PropTypes.string.isRequired,
/** Message of the modal. */
modalMessage: PropTypes.string.isRequired,
/** Text of the action button in the modal. */
modalActionText: PropTypes.string,
/** Props for the action button in the modal. */
modalActionProps: PropTypes.object,
/** Message to display on successful action. */
successMessage: PropTypes.string,
/** Message to display on failed action. */
errorMessage: PropTypes.string,
};
function ActionButtonWithModal({
actionTrigger: ActionTriggerComponent,
actionUrl,
modalTitle,
modalMessage,
modalActionText,
modalActionProps,
successMessage,
errorMessage,
}) {
const [triggered, setTriggered] = useState(false);
const [modalShown, setModalShown] = useState(false);
const [triggerActionStatus, triggerAction] = useAPIPost(actionUrl);
const [setAlert] = useAlert();
useEffect(() => {
if (triggerActionStatus.state === API_STATE.SUCCESS) {
setAlert(
successMessage || _("Action successful."),
API_STATE.SUCCESS
);
}
if (triggerActionStatus.state === API_STATE.ERROR) {
setAlert(errorMessage || _("Action failed."));
}
}, [triggerActionStatus, setAlert, successMessage, errorMessage]);
const actionHandler = () => {
setTriggered(true);
triggerAction();
setModalShown(false);
};
return (
<>
<ActionModal
shown={modalShown}
setShown={setModalShown}
onAction={actionHandler}
title={modalTitle}
message={modalMessage}
actionText={modalActionText}
actionProps={modalActionProps}
/>
<ActionTriggerComponent
loading={triggered}
disabled={triggered}
onClick={() => setModalShown(true)}
/>
</>
);
}
ActionModal.propTypes = {
shown: PropTypes.bool.isRequired,
setShown: PropTypes.func.isRequired,
onAction: PropTypes.func.isRequired,
title: PropTypes.string.isRequired,
message: PropTypes.string.isRequired,
actionText: PropTypes.string,
actionProps: PropTypes.object,
};
function ActionModal({
shown,
setShown,
onAction,
title,
message,
actionText,
actionProps,
}) {
return (
<Modal shown={shown} setShown={setShown}>
<ModalHeader setShown={setShown} title={title} />
<ModalBody>
<p className="mb-0">{message}</p>
</ModalBody>
<ModalFooter>
<Button
className="btn-secondary"
onClick={() => setShown(false)}
>
{_("Cancel")}
</Button>
<Button onClick={onAction} {...actionProps}>
{actionText || _("Confirm")}
</Button>
</ModalFooter>
</Modal>
);
}
export default ActionButtonWithModal;

View File

@ -1,39 +0,0 @@
RebootButton component is a button that opens a modal dialog to confirm the
reboot of the device.
## Usage
```jsx
import React, { useEffect, createContext } from "react";
import Button from "../../bootstrap/Button";
import { AlertContextProvider } from "../../context/alertContext/AlertContext";
import ActionButtonWithModal from "./ActionButtonWithModal";
window.AlertContext = React.createContext();
const RebootButtonExample = () => {
const ActionButton = (props) => {
return <Button {...props}>Action</Button>;
};
return (
<AlertContextProvider>
<div id="modal-container" />
<div id="alert-container" />
<ActionButtonWithModal
actionTrigger={ActionButton}
actionUrl="/reforis/api/action"
modalTitle="Warning!"
modalMessage="Are you sure you want to perform this action?"
modalActionText="Confirm action"
modalActionProps={{ className: "btn-danger" }}
successMessage="Action request succeeded."
errorMessage="Action request failed."
/>
</AlertContextProvider>
);
};
<RebootButtonExample />;
```

View File

@ -0,0 +1,80 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React, { useState, useEffect } from "react";
import PropTypes from "prop-types";
import { useAPIPost } from "../api/hooks";
import { API_STATE } from "../api/utils";
import Button from "../bootstrap/Button";
import { Modal, ModalHeader, ModalBody, ModalFooter } from "../bootstrap/Modal";
import { useAlert } from "../context/alertContext/AlertContext";
import { ForisURLs } from "../utils/forisUrls";
function RebootButton(props) {
const [triggered, setTriggered] = useState(false);
const [modalShown, setModalShown] = useState(false);
const [triggerRebootStatus, triggerReboot] = useAPIPost(ForisURLs.reboot);
const [setAlert] = useAlert();
useEffect(() => {
if (triggerRebootStatus.state === API_STATE.ERROR) {
setAlert(_("Reboot request failed."));
}
});
const rebootHandler = () => {
setTriggered(true);
triggerReboot();
setModalShown(false);
};
return (
<>
<RebootModal
shown={modalShown}
setShown={setModalShown}
onReboot={rebootHandler}
/>
<Button
className="btn-danger"
loading={triggered}
disabled={triggered}
onClick={() => setModalShown(true)}
{...props}
>
{_("Reboot")}
</Button>
</>
);
}
RebootModal.propTypes = {
shown: PropTypes.bool.isRequired,
setShown: PropTypes.func.isRequired,
onReboot: PropTypes.func.isRequired,
};
function RebootModal({ shown, setShown, onReboot }) {
return (
<Modal shown={shown} setShown={setShown}>
<ModalHeader setShown={setShown} title={_("Warning!")} />
<ModalBody>
<p>{_("Are you sure you want to restart the router?")}</p>
</ModalBody>
<ModalFooter>
<Button onClick={() => setShown(false)}>{_("Cancel")}</Button>
<Button className="btn-danger" onClick={onReboot}>
{_("Confirm reboot")}
</Button>
</ModalFooter>
</Modal>
);
}
export default RebootButton;

View File

@ -1,86 +0,0 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React, { useMemo, useState } from "react";
import {
flexRender,
getCoreRowModel,
getSortedRowModel,
getPaginationRowModel,
useReactTable,
} from "@tanstack/react-table";
import PropTypes from "prop-types";
import RichTableBody from "./RichTableBody";
import RichTableHeader from "./RichTableHeader";
import RichTablePagination from "./RichTablePagination";
const fallbackData = [];
RichTable.propTypes = {
/** Columns to be displayed in the table */
columns: PropTypes.array.isRequired,
/** Data to be displayed in the table */
data: PropTypes.array.isRequired,
/** Whether to display pagination */
withPagination: PropTypes.bool,
/** Number of rows per page */
pageSize: PropTypes.number,
/** Index of the current page */
pageIndex: PropTypes.number,
};
function RichTable({
columns,
data,
withPagination,
pageSize = 5,
pageIndex = 0,
}) {
const tableColumns = useMemo(() => columns, [columns]);
const [tableData] = useState(data ?? fallbackData);
const [sorting, setSorting] = useState([]);
const [pagination, setPagination] = useState({
pageIndex,
pageSize,
});
const table = useReactTable({
data: tableData,
columns: tableColumns,
getCoreRowModel: getCoreRowModel(),
getSortedRowModel: getSortedRowModel(),
getPaginationRowModel: getPaginationRowModel(),
onPaginationChange: setPagination,
onSortingChange: setSorting,
state: {
sorting,
pagination,
},
});
const paginationIsNeeded = tableData.length > pageSize && withPagination;
return (
<div className="table-responsive">
<table className="table table-hover text-nowrap">
<RichTableHeader table={table} flexRender={flexRender} />
<RichTableBody table={table} flexRender={flexRender} />
</table>
{paginationIsNeeded && (
<RichTablePagination
table={table}
tablePageSize={pageSize}
allRows={tableData.length}
/>
)}
</div>
);
}
export default RichTable;

View File

@ -1,135 +0,0 @@
### Description
Rich Table is a table component based on
[Tanstack React Table](https://tanstack.com/table/). It adds some features to
the table component, such as:
- **Pagination**: The table can be paginated.
- **Sorting**: The table can be sorted by columns.
- **Row Expansion**: The table rows can be expanded. (To be implemented)
### Example
```js
import RichTable from "./RichTable";
const columns = [
{
header: "Name",
accessorKey: "name",
},
{
header: "Surname",
accessorKey: "surname",
},
{
header: "Age",
accessorKey: "age",
},
{
header: "Phone",
accessorKey: "phone",
},
];
const data = [
{
name: "John",
surname: "Coltrane",
age: 30,
phone: "123456789",
},
{
name: "Jane",
surname: "Doe",
age: 25,
phone: "987654321",
},
{
name: "Alice",
surname: "Smith",
age: 35,
phone: "123456789",
},
{
name: "Bob",
surname: "Smith",
age: 40,
phone: "987654321",
},
{
name: "Charlie",
surname: "Brown",
age: 45,
phone: "123456789",
},
{
name: "Daisy",
surname: "Brown",
age: 50,
phone: "987654321",
},
{
name: "Eve",
surname: "Johnson",
age: 55,
phone: "123456789",
},
{
name: "Frank",
surname: "Johnson",
age: 60,
phone: "987654321",
},
{
name: "Grace",
surname: "Williams",
age: 65,
phone: "123456789",
},
{
name: "Henry",
surname: "Williams",
age: 70,
phone: "987654321",
},
{
name: "Ivy",
surname: "Brown",
age: 75,
phone: "123456789",
},
{
name: "Jack",
surname: "Brown",
age: 80,
phone: "987654321",
},
{
name: "Kelly",
surname: "Johnson",
age: 85,
phone: "123456789",
},
{
name: "Liam",
surname: "Johnson",
age: 90,
phone: "987654321",
},
{
name: "Mia",
surname: "Williams",
age: 95,
phone: "123456789",
},
{
name: "Nathan",
surname: "Williams",
age: 100,
phone: "987654321",
},
];
<RichTable columns={columns} data={data} withPagination />;
```

View File

@ -1,48 +0,0 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import propTypes from "prop-types";
RichTableBody.propTypes = {
table: propTypes.shape({
getRowModel: propTypes.func.isRequired,
}).isRequired,
flexRender: propTypes.func.isRequired,
};
function RichTableBody({ table, flexRender }) {
return (
<tbody>
{table.getRowModel().rows.map((row) => {
return (
<tr key={row.id} className="align-middle">
{row.getVisibleCells().map((cell) => {
return (
<td
key={cell.id}
{...(cell.column.columnDef.className && {
className:
cell.column.columnDef.className,
})}
>
{flexRender(
cell.column.columnDef.cell,
cell.getContext()
)}
</td>
);
})}
</tr>
);
})}
</tbody>
);
}
export default RichTableBody;

View File

@ -1,96 +0,0 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import {
faSquareCaretUp,
faSquareCaretDown,
} from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import propTypes from "prop-types";
RichTableHeader.propTypes = {
table: propTypes.shape({
getHeaderGroups: propTypes.func.isRequired,
}).isRequired,
flexRender: propTypes.func.isRequired,
};
function RichTableHeader({ table, flexRender }) {
const getThTitle = (header) => {
if (!header.column.getCanSort()) return undefined;
const nextSortingOrder = header.column.getNextSortingOrder();
if (nextSortingOrder === "asc") return _("Sort ascending");
if (nextSortingOrder === "desc") return _("Sort descending");
return _("Clear sort");
};
return (
<thead className="thead-light">
{table.getHeaderGroups().map((headerGroup) => (
<tr key={headerGroup.id} role="row">
{headerGroup.headers.map((header) => (
<th
key={header.id}
colSpan={header.colSpan}
{...(header.column.columnDef.headerClassName && {
className:
header.column.columnDef.headerClassName,
})}
>
{header.isPlaceholder ||
header.column.columnDef.headerIsHidden ? (
<div className="d-none" aria-hidden="true">
{flexRender(
header.column.columnDef.header,
header.getContext()
)}
</div>
) : (
<button
type="button"
className={`btn btn-link text-decoration-none text-reset fw-bold p-0 d-flex align-items-center
${
header.column.getCanSort()
? "d-flex align-items-center"
: ""
}
`}
onClick={header.column.getToggleSortingHandler()}
title={getThTitle(header)}
>
{flexRender(
header.column.columnDef.header,
header.getContext()
)}
{{
asc: (
<FontAwesomeIcon
icon={faSquareCaretUp}
className="ms-1 text-primary"
/>
),
desc: (
<FontAwesomeIcon
icon={faSquareCaretDown}
className="ms-1 text-primary"
/>
),
}[header.column.getIsSorted()] ?? null}
</button>
)}
</th>
))}
</tr>
))}
</thead>
);
}
export default RichTableHeader;

View File

@ -1,128 +0,0 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React, { useMemo } from "react";
import {
faAngleLeft,
faAnglesLeft,
faAngleRight,
faAnglesRight,
} from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import propTypes from "prop-types";
RichTablePagination.propTypes = {
table: propTypes.shape({
getState: propTypes.func.isRequired,
getCanPreviousPage: propTypes.func.isRequired,
getCanNextPage: propTypes.func.isRequired,
firstPage: propTypes.func.isRequired,
previousPage: propTypes.func.isRequired,
nextPage: propTypes.func.isRequired,
lastPage: propTypes.func.isRequired,
setPageSize: propTypes.func.isRequired,
getPageCount: propTypes.func.isRequired,
}).isRequired,
tablePageSize: propTypes.number,
allRows: propTypes.number,
};
function RichTablePagination({ table, tablePageSize, allRows }) {
const { pagination } = table.getState();
const prevPagBtnDisabled = !table.getCanPreviousPage();
const nextPagBtnDisabled = !table.getCanNextPage();
const pageSizes = useMemo(() => {
return [tablePageSize ?? 5, 10, 25].filter(
(value, index, self) => self.indexOf(value) === index
);
}, [tablePageSize]);
const renderPaginationButton = (icon, ariaLabel, onClick, disabled) => (
<li
className={`page-item ${disabled ? "disabled" : ""}`}
style={{ cursor: disabled ? "not-allowed" : "pointer" }}
>
<button
type="button"
className="page-link"
aria-label={ariaLabel}
onClick={onClick}
disabled={disabled}
>
<FontAwesomeIcon icon={icon} />
</button>
</li>
);
return (
<nav
aria-label={_("Pagination navigation bar")}
className="d-flex gap-2 justify-content-start align-items-center mx-2 mb-1 text-nowrap"
>
<ul className="pagination pagination-sm mb-0">
{renderPaginationButton(
faAnglesLeft,
_("First page"),
() => table.firstPage(),
prevPagBtnDisabled
)}
{renderPaginationButton(
faAngleLeft,
_("Previous page"),
() => table.previousPage(),
prevPagBtnDisabled
)}
{renderPaginationButton(
faAngleRight,
_("Next page"),
() => table.nextPage(),
nextPagBtnDisabled
)}
{renderPaginationButton(
faAnglesRight,
_("Last page"),
() => table.lastPage(),
nextPagBtnDisabled
)}
</ul>
<span>
{_("Page")}&nbsp;
<span className="fw-bold">
{pagination.pageIndex + 1}
&nbsp;{_("of")}&nbsp;
{table.getPageCount().toLocaleString()}
</span>
</span>
<div
className="vr mx-1 align-self-center"
style={{ height: "1.5rem" }}
/>
<span>{_("Rows per page:")}</span>
<select
className="form-select form-select-sm w-auto"
aria-label={_("Select rows per page")}
value={pagination.pageSize}
onChange={(e) => {
table.setPageSize(Number(e.target.value));
}}
>
{pageSizes.map((pageSize) => (
<option key={pageSize} value={pageSize}>
{pageSize}
</option>
))}
<option key={allRows} value={allRows}>
{_("All")}
</option>
</select>
</nav>
);
}
export default RichTablePagination;

View File

@ -9,7 +9,7 @@ import React from "react";
import PropTypes from "prop-types";
import { HELP_TEXTS, HTMODES, BANDS, ENCRYPTIONMODES } from "./constants";
import { HELP_TEXTS, HTMODES, HWMODES, ENCRYPTIONMODES } from "./constants";
import WifiGuestForm from "./WiFiGuestForm";
import WiFiQRCode from "./WiFiQRCode";
import PasswordInput from "../../bootstrap/PasswordInput";
@ -60,7 +60,7 @@ DeviceForm.propTypes = {
SSID: PropTypes.string.isRequired,
password: PropTypes.string.isRequired,
hidden: PropTypes.bool.isRequired,
band: PropTypes.string.isRequired,
hwmode: PropTypes.string.isRequired,
htmode: PropTypes.string.isRequired,
channel: PropTypes.string.isRequired,
guest_wifi: PropTypes.object.isRequired,
@ -155,26 +155,26 @@ function DeviceForm({
/>
<RadioSet
name={`band-${deviceID}`}
label={_("Band")}
choices={getBandChoices(formData)}
value={formData.band}
helpText={HELP_TEXTS.band}
name={`hwmode-${deviceID}`}
label="GHz"
choices={getHwmodeChoices(formData)}
value={formData.hwmode}
helpText={HELP_TEXTS.hwmode}
inline
onChange={setFormValue((value) => {
// Find the selected band
const selectedBand = bnds.find(
(band) => band.band === value
);
// Get the last item in the available HT modes for the selected band
const bestHtmode =
selectedBand.available_htmodes.slice(-1)[0];
// Get the last item in an array of available HT modes
const [best2] = bnds[0].available_htmodes.slice(-1);
const [best5] = bnds[1].available_htmodes.slice(-1);
return {
devices: {
[deviceIndex]: {
band: { $set: value },
hwmode: { $set: value },
channel: { $set: "0" },
htmode: { $set: bestHtmode },
htmode: {
$set:
// Set HT mode depending on checked frequency
value === "11a" ? best5 : best2,
},
},
},
};
@ -263,7 +263,7 @@ function getChannelChoices(device) {
};
device.available_bands.forEach((availableBand) => {
if (availableBand.band !== device.band) return;
if (availableBand.hwmode !== device.hwmode) return;
availableBand.available_channels.forEach((availableChannel) => {
channelChoices[availableChannel.number.toString()] = `
@ -282,7 +282,7 @@ function getHtmodeChoices(device) {
const htmodeChoices = {};
device.available_bands.forEach((availableBand) => {
if (availableBand.band !== device.band) return;
if (availableBand.hwmode !== device.hwmode) return;
availableBand.available_htmodes.forEach((availableHtmod) => {
htmodeChoices[availableHtmod] = HTMODES[availableHtmod];
@ -291,10 +291,10 @@ function getHtmodeChoices(device) {
return htmodeChoices;
}
function getBandChoices(device) {
function getHwmodeChoices(device) {
return device.available_bands.map((availableBand) => ({
label: `${BANDS[availableBand.band]} GHz`,
value: availableBand.band,
label: HWMODES[availableBand.hwmode],
value: availableBand.hwmode,
}));
}

View File

@ -9,10 +9,9 @@ import React from "react";
import PropTypes from "prop-types";
import { HELP_TEXTS, ENCRYPTIONMODES } from "./constants";
import { HELP_TEXTS } from "./constants";
import WiFiQRCode from "./WiFiQRCode";
import PasswordInput from "../../bootstrap/PasswordInput";
import Select from "../../bootstrap/Select";
import Switch from "../../bootstrap/Switch";
import TextInput from "../../bootstrap/TextInput";
@ -22,7 +21,6 @@ WifiGuestForm.propTypes = {
SSID: PropTypes.string.isRequired,
password: PropTypes.string.isRequired,
enabled: PropTypes.bool.isRequired,
encryption: PropTypes.string.isRequired,
}),
formErrors: PropTypes.shape({
SSID: PropTypes.string,
@ -70,11 +68,14 @@ export default function WifiGuestForm({
}))}
{...props}
>
<WiFiQRCode
SSID={formData.SSID}
password={formData.password}
/>
<div className="input-group-append">
<WiFiQRCode
SSID={formData.SSID}
password={formData.password}
/>
</div>
</TextInput>
<PasswordInput
withEye
label={_("Password")}
@ -91,20 +92,6 @@ export default function WifiGuestForm({
}))}
{...props}
/>
<Select
label={_("Encryption")}
choices={ENCRYPTIONMODES}
helpText={HELP_TEXTS.wpa3}
value={formData.encryption}
onChange={setFormValue((value) => ({
devices: {
[formData.id]: {
guest_wifi: { encryption: { $set: value } },
},
},
}))}
{...props}
/>
</>
) : null}
</>

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
@ -7,7 +7,6 @@
import React, { useState } from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import PropTypes from "prop-types";
import QRCode from "qrcode.react";
@ -19,12 +18,15 @@ import {
ModalFooter,
ModalHeader,
} from "../../bootstrap/Modal";
import { ForisURLs } from "../../utils/forisUrls";
WiFiQRCode.propTypes = {
SSID: PropTypes.string.isRequired,
password: PropTypes.string.isRequired,
};
const QR_ICON_PATH = `${ForisURLs.static}/imgs/QR_icon.svg`;
export default function WiFiQRCode({ SSID, password }) {
const [modal, setModal] = useState(false);
@ -38,11 +40,11 @@ export default function WiFiQRCode({ SSID, password }) {
setModal(true);
}}
>
<FontAwesomeIcon
icon="fa-solid fa-qrcode"
title={_("Show QR code")}
aria-label={_("Show QR code")}
className="text-secondary"
<img
width="20"
src={QR_ICON_PATH}
alt="QR"
style={{ opacity: 0.67 }}
/>
</button>
{modal ? (
@ -70,35 +72,23 @@ function QRCodeModal({ shown, setShown, SSID, password }) {
<ModalHeader setShown={setShown} title={_("Wi-Fi QR Code")} />
<ModalBody>
<QRCode
className="d-block mx-auto img-logo-black"
renderAs="svg"
value={toQRCodeContent(SSID, password)}
level="M"
size={350}
includeMargin
style={{ display: "block", margin: "auto" }}
/>
</ModalBody>
<ModalFooter>
<Button
className="btn-secondary"
onClick={(e) => {
e.preventDefault();
setShown(false);
}}
>
{_("Close")}
</Button>
<Button
className="btn-primary"
className="btn-outline-primary"
onClick={(e) => {
e.preventDefault();
createAndDownloadPdf(SSID, password);
}}
>
<FontAwesomeIcon
icon="fa-solid fa-file-download"
className="me-2"
/>
<i className="fas fa-file-download me-2" />
{_("Download PDF")}
</Button>
</ModalFooter>

View File

@ -77,7 +77,7 @@ describe("<WiFiSettings/>", () => {
it("Snapshot 2.4 GHz", () => {
fireEvent.click(getByText("Wi-Fi 1"));
const enabledRender = asFragment();
fireEvent.click(getAllByText(/2.4/)[0]);
fireEvent.click(getAllByText("2.4")[0]);
expect(diffSnapshot(enabledRender, asFragment())).toMatchSnapshot();
});
@ -118,7 +118,7 @@ describe("<WiFiSettings/>", () => {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT80",
band: "5g",
hwmode: "11a",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -135,7 +135,7 @@ describe("<WiFiSettings/>", () => {
it("Post form: 2.4 GHz", () => {
fireEvent.click(getByText("Wi-Fi 1"));
fireEvent.click(getAllByText(/2.4/)[0]);
fireEvent.click(getAllByText("2.4")[0]);
fireEvent.click(getByText("Save"));
expect(mockAxios.post).toBeCalled();
@ -148,7 +148,7 @@ describe("<WiFiSettings/>", () => {
guest_wifi: { enabled: false },
hidden: false,
htmode: "VHT80",
band: "2g",
hwmode: "11g",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -185,7 +185,7 @@ describe("<WiFiSettings/>", () => {
},
hidden: false,
htmode: "HT80",
band: "5g",
hwmode: "11a",
id: 0,
password: "TestPass",
encryption: "WPA3",

View File

@ -77,7 +77,7 @@ export function wifiSettingsFixture() {
"VHT40",
"VHT80",
],
band: "2g",
hwmode: "11g",
},
{
available_channels: [
@ -215,7 +215,7 @@ export function wifiSettingsFixture() {
"VHT40",
"VHT80",
],
band: "5g",
hwmode: "11a",
},
],
channel: 60,
@ -227,7 +227,7 @@ export function wifiSettingsFixture() {
},
hidden: false,
htmode: "HT80",
band: "5g",
hwmode: "11a",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -294,7 +294,7 @@ export function wifiSettingsFixture() {
},
],
available_htmodes: ["NOHT", "HT20", "HT40"],
band: "2g",
hwmode: "11g",
},
],
channel: 11,
@ -306,7 +306,7 @@ export function wifiSettingsFixture() {
},
hidden: false,
htmode: "HT40",
band: "2g",
hwmode: "11g",
id: 1,
password: "TestPass",
encryption: "WPA3",
@ -323,7 +323,7 @@ const oneDevice = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
band: "5g",
hwmode: "11a",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -340,7 +340,7 @@ const twoDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
band: "5g",
hwmode: "11a",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -352,7 +352,7 @@ const twoDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
band: "5g",
hwmode: "11a",
id: 1,
password: "TestPass",
encryption: "WPA3",
@ -369,7 +369,7 @@ const threeDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
band: "5g",
hwmode: "11a",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -381,7 +381,7 @@ const threeDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
band: "5g",
hwmode: "11a",
id: 1,
password: "TestPass",
encryption: "WPA3",
@ -393,7 +393,7 @@ const threeDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
band: "5g",
hwmode: "11a",
id: 2,
password: "",
encryption: "WPA3",

View File

@ -5,7 +5,7 @@ exports[`<WiFiSettings/> Snapshot 2.4 GHz 1`] = `
- First value
+ Second value
@@ -240,207 +240,95 @@
@@ -243,207 +243,95 @@
value="0"
>
auto
@ -339,7 +339,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
- First value
+ Second value
@@ -524,10 +524,124 @@
@@ -527,10 +527,94 @@
<small>
Enables Wi-Fi for guests, which is separated from LAN network. Devices connected to this network are allowed to access the internet, but aren't allowed to access other devices and the configuration interface of the router. Parameters of the guest network can be set in the Guest network tab.
</small>
@ -363,14 +363,21 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ type="text"
+ value="TestGuestSSID"
+ />
+ <button
+ class="input-group-text"
+ type="button"
+ <div
+ class="input-group-append"
+ >
+ <i
+ class="fa"
+ />
+ </button>
+ <button
+ class="input-group-text"
+ type="button"
+ >
+ <img
+ alt="QR"
+ src="/reforis/static/reforis/imgs/QR_icon.svg"
+ style="opacity: 0.67;"
+ width="20"
+ />
+ </button>
+ </div>
+ </div>
+ <div
+ class="form-text"
@ -405,7 +412,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ type="button"
+ >
+ <i
+ class="fa"
+ class="fa fa-eye"
+ />
+ </button>
+ </div>
@ -421,50 +428,13 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ WPA2/3 pre-shared key, that is required to connect to the network.
+ </small>
+ </div>
+ </div>
+ <div
+ class="mb-3"
+ >
+ <label
+ class="form-label"
+ for="14"
+ >
+ Encryption
+ </label>
+ <select
+ class="form-select"
+ id="14"
+ >
+ <option
+ value="WPA3"
+ >
+ WPA3 only
+ </option>
+ <option
+ value="WPA2/3"
+ >
+ WPA3 with WPA2 as fallback (default)
+ </option>
+ <option
+ value="WPA2"
+ >
+ WPA2 only
+ </option>
+ </select>
+ <div
+ class="form-text"
+ >
+ <small>
+ The WPA3 standard is the new most secure encryption method that is suggested to be used with any device that supports it. The older devices without WPA3 support require older WPA2. If you experience issues with connecting older devices, try to enable WPA2.
+ </small>
+ </div>
+ </div>
<hr />
<div
class="form-check form-switch mb-3 d-flex align-items-center"
>
<input
@@ -550,10 +664,11 @@
@@ -553,10 +637,11 @@
<div
class="text-end"
>
@ -483,7 +453,7 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
- First value
+ Second value
@@ -21,10 +21,513 @@
@@ -21,10 +21,516 @@
>
Wi-Fi 1
</h2>
@ -512,8 +482,11 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ class="input-group-text"
+ type="button"
+ >
+ <i
+ class="fa"
+ <img
+ alt="QR"
+ src="/reforis/static/reforis/imgs/QR_icon.svg"
+ style="opacity: 0.67;"
+ width="20"
+ />
+ </button>
+ </div>
@ -550,7 +523,7 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ type="button"
+ >
+ <i
+ class="fa"
+ class="fa fa-eye"
+ />
+ </button>
+ </div>
@ -563,7 +536,7 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ </div>
+ </div>
+ <div
+ class="form-check form-switch mb-3"
+ class="form-check form-switch mb-3 null"
+ >
+ <input
+ class="form-check-input"
@ -592,41 +565,41 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ class="d-block"
+ for="6"
+ >
+ Band
+ GHz
+ </label>
+ <div
+ class="mb-3 form-check form-check-inline"
+ class="mb-2 form-check form-check-inline"
+ >
+ <input
+ class="form-check-input me-2"
+ id="band-0-0"
+ name="band-0"
+ id="hwmode-0-0"
+ name="hwmode-0"
+ type="radio"
+ value="2g"
+ value="11g"
+ />
+ <label
+ class="form-check-label"
+ for="band-0-0"
+ for="hwmode-0-0"
+ >
+ 2.4 GHz
+ 2.4
+ </label>
+ </div>
+ <div
+ class="mb-3 form-check form-check-inline"
+ class="mb-2 form-check form-check-inline"
+ >
+ <input
+ checked=""
+ class="form-check-input me-2"
+ id="band-0-1"
+ name="band-0"
+ id="hwmode-0-1"
+ name="hwmode-0"
+ type="radio"
+ value="5g"
+ value="11a"
+ />
+ <label
+ class="form-check-label"
+ for="band-0-1"
+ for="hwmode-0-1"
+ >
+ 5 GHz
+ 5
+ </label>
+ </div>
+ <div
@ -947,7 +920,7 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ </div>
+ </div>
+ <div
+ class="form-check form-switch mb-3"
+ class="form-check form-switch mb-3 null"
+ >
+ <input
+ class="form-check-input"
@ -970,7 +943,7 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ </div>
+ </div>
+ <div
+ class="form-check form-switch mb-3"
+ class="form-check form-switch mb-3 null"
+ >
+ <input
+ class="form-check-input"

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
@ -12,18 +12,15 @@ export const HTMODES = {
VHT20: _("802.11ac - 20 MHz wide channel"),
VHT40: _("802.11ac - 40 MHz wide channel"),
VHT80: _("802.11ac - 80 MHz wide channel"),
VHT80_80: _("802.11ac - 80+80 MHz wide channel"),
VHT160: _("802.11ac - 160 MHz wide channel"),
HE20: _("802.11ax - 20 MHz wide channel"),
HE40: _("802.11ax - 40 MHz wide channel"),
HE80: _("802.11ax - 80 MHz wide channel"),
HE80_80: _("802.11ax - 80+80 MHz wide channel"),
HE160: _("802.11ax - 160 MHz wide channel"),
};
export const BANDS = {
"2g": "2.4",
"5g": "5",
"6g": "6",
export const HWMODES = {
"11g": "2.4",
"11a": "5",
};
export const ENCRYPTIONMODES = {
WPA3: _("WPA3 only"),
@ -40,7 +37,7 @@ export const HELP_TEXTS = {
hidden: _(
"If set, network is not visible when scanning for available networks."
),
band: _(
hwmode: _(
"The 2.4 GHz band is more widely supported by clients, but tends to have more interference. The 5 GHz band is a newer standard and may not be supported by all your devices. It usually has less interference, but the signal does not carry so well indoors."
),
htmode: _(

View File

@ -1,92 +0,0 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import Button from "bootstrap/Button";
import {
fireEvent,
getByText,
queryByText,
render,
wait,
} from "customTestRender";
import mockAxios from "jest-mock-axios";
import { mockJSONError } from "testUtils/network";
import { mockSetAlert } from "testUtils/alertContextMock";
import ActionButtonWithModal from "../ActionButtonWithModal/ActionButtonWithModal";
describe("<ActionButtonWithModal/>", () => {
let componentContainer;
const ActionButton = (props) => (
<Button type="button" {...props}>
Action
</Button>
);
beforeEach(() => {
const { container } = render(
<>
<div id="modal-container" />
<div id="alert-container" />
<ActionButtonWithModal
actionTrigger={ActionButton}
actionUrl="/reforis/api/action"
modalTitle="Warning!"
modalMessage="Are you sure you want to perform this action?"
modalActionText="Confirm action"
modalActionProps={{ className: "btn-danger" }}
successMessage="Action request succeeded."
errorMessage="Action request failed."
/>
</>
);
componentContainer = container;
});
it("Render button.", () => {
expect(componentContainer).toMatchSnapshot();
});
it("Render modal.", () => {
fireEvent.click(getByText(componentContainer, "Action"));
expect(componentContainer).toMatchSnapshot();
});
it("Confirm action.", () => {
fireEvent.click(getByText(componentContainer, "Action"));
fireEvent.click(getByText(componentContainer, "Confirm action"));
expect(mockAxios.post).toHaveBeenCalledWith(
"/reforis/api/action",
undefined,
expect.anything()
);
});
it("Hold error.", async () => {
fireEvent.click(getByText(componentContainer, "Action"));
fireEvent.click(getByText(componentContainer, "Confirm action"));
mockJSONError();
await wait(() =>
expect(mockSetAlert).toBeCalledWith("Action request failed.")
);
});
it("Show success alert on successful action.", async () => {
fireEvent.click(getByText(componentContainer, "Action"));
fireEvent.click(getByText(componentContainer, "Confirm action"));
mockAxios.mockResponse({ status: 200 });
await wait(() =>
expect(mockSetAlert).toBeCalledWith(
"Action request succeeded.",
"success"
)
);
});
});

View File

@ -0,0 +1,63 @@
/*
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import {
fireEvent,
getByText,
queryByText,
render,
wait,
} from "customTestRender";
import mockAxios from "jest-mock-axios";
import { mockJSONError } from "testUtils/network";
import { mockSetAlert } from "testUtils/alertContextMock";
import RebootButton from "../RebootButton";
describe("<RebootButton/>", () => {
let componentContainer;
beforeEach(() => {
const { container } = render(
<>
<div id="modal-container" />
<RebootButton />
</>
);
componentContainer = container;
});
it("Render.", () => {
expect(componentContainer).toMatchSnapshot();
});
it("Render modal.", () => {
expect(queryByText(componentContainer, "Confirm reboot")).toBeNull();
fireEvent.click(getByText(componentContainer, "Reboot"));
expect(componentContainer).toMatchSnapshot();
});
it("Confirm reboot.", () => {
fireEvent.click(getByText(componentContainer, "Reboot"));
fireEvent.click(getByText(componentContainer, "Confirm reboot"));
expect(mockAxios.post).toHaveBeenCalledWith(
"/reforis/api/reboot",
undefined,
expect.anything()
);
});
it("Hold error.", async () => {
fireEvent.click(getByText(componentContainer, "Reboot"));
fireEvent.click(getByText(componentContainer, "Confirm reboot"));
mockJSONError();
await wait(() =>
expect(mockSetAlert).toBeCalledWith("Reboot request failed.")
);
});
});

View File

@ -1,32 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<ActionButtonWithModal/> Render button. 1`] = `
<div>
<div
id="modal-container"
/>
<div
id="alert-container"
/>
<button
class="btn btn-primary d-inline-flex justify-content-center align-items-center"
type="button"
>
<span>
Action
</span>
</button>
</div>
`;
exports[`<ActionButtonWithModal/> Render modal. 1`] = `
exports[`<RebootButton/> Render modal. 1`] = `
<div>
<div
id="modal-container"
>
<div
aria-labelledby="modal-title"
aria-modal="true"
class="modal fade show"
role="dialog"
>
@ -40,11 +19,11 @@ exports[`<ActionButtonWithModal/> Render modal. 1`] = `
<div
class="modal-header"
>
<h1
class="modal-title fs-5"
<h5
class="modal-title"
>
Warning!
</h1>
</h5>
<button
aria-label="Close"
class="btn-close"
@ -54,17 +33,15 @@ exports[`<ActionButtonWithModal/> Render modal. 1`] = `
<div
class="modal-body"
>
<p
class="mb-0"
>
Are you sure you want to perform this action?
<p>
Are you sure you want to restart the router?
</p>
</div>
<div
class="modal-footer"
>
<button
class="btn btn-secondary d-inline-flex justify-content-center align-items-center"
class="btn btn-primary d-inline-flex justify-content-center align-items-center"
type="button"
>
<span>
@ -76,7 +53,7 @@ exports[`<ActionButtonWithModal/> Render modal. 1`] = `
type="button"
>
<span>
Confirm action
Confirm reboot
</span>
</button>
</div>
@ -84,15 +61,28 @@ exports[`<ActionButtonWithModal/> Render modal. 1`] = `
</div>
</div>
</div>
<div
id="alert-container"
/>
<button
class="btn btn-primary d-inline-flex justify-content-center align-items-center"
class="btn btn-danger d-inline-flex justify-content-center align-items-center"
type="button"
>
<span>
Action
Reboot
</span>
</button>
</div>
`;
exports[`<RebootButton/> Render. 1`] = `
<div>
<div
id="modal-container"
/>
<button
class="btn btn-danger d-inline-flex justify-content-center align-items-center"
type="button"
>
<span>
Reboot
</span>
</button>
</div>

View File

@ -43,17 +43,14 @@ describe("AlertContext", () => {
expect(componentContainer).toMatchSnapshot();
});
it("should dismiss alert with alert button", async () => {
it("should dismiss alert with alert button", () => {
fireEvent.click(getByText(componentContainer, "Set alert"));
// Alert is present
expect(getByText(componentContainer, "Alert content")).toBeDefined();
fireEvent.click(componentContainer.querySelector(".btn-close"));
// Alert is gone
await (() =>
expect(
queryByText(componentContainer, "Alert content")
).toBeNull());
expect(queryByText(componentContainer, "Alert content")).toBeNull();
});
it("should dismiss alert with external button", () => {

View File

@ -6,8 +6,7 @@ exports[`AlertContext should render alert 1`] = `
id="alert-container"
>
<div
class="alert alert-danger alert-fade-in alert-dismissible"
role="alert"
class="alert alert-danger alert-dismissible"
>
<button
aria-label="Close"

View File

@ -28,22 +28,19 @@ export { default as FileInput } from "./bootstrap/FileInput";
export { default as Input } from "./bootstrap/Input";
export { default as NumberInput } from "./bootstrap/NumberInput";
export { default as PasswordInput } from "./bootstrap/PasswordInput";
export { default as Radio } from "./bootstrap/Radio";
export { default as RadioSet } from "./bootstrap/RadioSet";
export { default as RadioSet, Radio } from "./bootstrap/RadioSet";
export { default as Select } from "./bootstrap/Select";
export { default as TextInput } from "./bootstrap/TextInput";
export { formFieldsSize, buttonFormFieldsSize } from "./bootstrap/constants";
export { default as Switch } from "./bootstrap/Switch";
export { default as ThreeDotsMenu } from "./bootstrap/ThreeDotsMenu";
export { Spinner, SpinnerElement } from "./bootstrap/Spinner";
export { Modal, ModalBody, ModalFooter, ModalHeader } from "./bootstrap/Modal";
// Common
export { default as ActionButtonWithModal } from "./common/ActionButtonWithModal/ActionButtonWithModal";
export { default as RebootButton } from "./common/RebootButton";
export { default as WiFiSettings } from "./common/WiFiSettings/WiFiSettings";
export { default as ResetWiFiSettings } from "./common/WiFiSettings/ResetWiFiSettings";
export { default as RichTable } from "./common/RichTable/RichTable";
// Form
export { default as ForisForm } from "./form/components/ForisForm";
export {

View File

@ -14,7 +14,7 @@ import { render } from "@testing-library/react";
import PropTypes from "prop-types";
import { AlertContextMock } from "./alertContextMock";
import { CustomizationContextMock } from "./customizationContextMock";
import { CustomizationContextMock } from "./cutomizationContextMock";
Wrapper.propTypes = {
children: PropTypes.oneOfType([

View File

@ -1,10 +1,10 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import mockAxios from "jest-mock-axios";
import moment from "moment-timezone";
import "./mockGlobals";
@ -26,8 +26,3 @@ jest.doMock("moment", () => {
return moment;
});
Date.now = jest.fn(() => new Date(Date.UTC(2019, 1, 1, 12, 13, 14)).valueOf());
// Mock Font Awesome v6 library
jest.mock("@fortawesome/react-fontawesome", () => ({
FontAwesomeIcon: () => <i className="fa" />,
}));

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
* Copyright (C) 2019-2021 CZ.NIC z.s.p.o. (http://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
@ -9,10 +9,8 @@ export const REFORIS_URL_PREFIX = "/reforis";
export const REFORIS_API_URL_PREFIX = `${REFORIS_URL_PREFIX}/api`;
export const ForisURLs = {
// turris-auth
login: `/login?${REFORIS_URL_PREFIX}/`,
logout: `/logout`,
extendSession: `/extend-session`,
static: `${REFORIS_URL_PREFIX}/static/reforis`,
wifi: `${REFORIS_URL_PREFIX}/network-settings/wifi`,
@ -27,19 +25,10 @@ export const ForisURLs = {
storage: `${REFORIS_URL_PREFIX}/storage`,
sentinelAgreement: `${REFORIS_URL_PREFIX}/sentinel/agreement`,
// URLs without prefix for Overview page
openvpnClientSettings: "/openvpn/client-settings",
packageManagementPackages: "/package-management/packages",
packageManagementUpdateSettings: "/package-management/update-settings",
sentinelLicenseAgreement: "/sentinel/agreement",
librespeedSpeedTest: "/librespeed/speed-test",
// Notifications links are used with <Link/> inside Router, thus url subdir is not required.
overview: "/overview",
notifications: "/overview#notifications",
notificationsSettings: "/administration/notifications-settings",
wifiSettings: "/network-settings/wifi",
lanSettings: "/network-settings/lan",
approveUpdates: "/package-management/updates",
languages: "/package-management/languages",

View File

@ -40,40 +40,3 @@ export function useClickOutside(element, callback) {
};
});
}
/* Trap focus inside element. */
export function useFocusTrap(elementRef, condition = true) {
useEffect(() => {
if (!condition) {
return;
}
const currentElement = elementRef.current;
const focusableElements = currentElement.querySelectorAll(
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
);
const firstElement = focusableElements[0];
const lastElement = focusableElements[focusableElements.length - 1];
const handleTab = (event) => {
if (event.key === "Tab") {
if (event.shiftKey) {
if (document.activeElement === firstElement) {
lastElement.focus();
event.preventDefault();
}
} else if (document.activeElement === lastElement) {
firstElement.focus();
event.preventDefault();
}
}
};
currentElement.addEventListener("keydown", handleTab);
firstElement.focus();
return () => {
currentElement.removeEventListener("keydown", handleTab);
};
}, [elementRef, condition]);
}

View File

@ -28,11 +28,11 @@ module.exports = {
content: "docs/development.md",
},
{
name: "Common Components",
name: "Components",
description: "Set of main components.",
sections: [
{
name: "ForisForm",
name: "Foris forms",
components: [
"src/form/components/ForisForm.js",
"src/form/components/alerts.js",
@ -42,52 +42,47 @@ module.exports = {
usageMode: "expand",
},
{
name: "RichTable",
components: ["src/common/RichTable/RichTable.js"],
exampleMode: "expand",
usageMode: "expand",
},
{
name: "ActionButtonWithModal",
components: [
"src/common/ActionButtonWithModal/ActionButtonWithModal.js",
],
name: "Alert Context",
components: ["src/context/alertContext/AlertContext.js"],
exampleMode: "expand",
usageMode: "expand",
},
],
sectionDepth: 1,
},
{
name: "Bootstrap Components",
description: "Set of bootstrap components.",
components: "src/bootstrap/*.js",
exampleMode: "expand",
usageMode: "expand",
ignore: ["src/bootstrap/constants.js", "src/bootstrap/Radio.js"],
sectionDepth: 0,
},
{
name: "Contexts",
name: "Customization Context",
components: [
"src/context/alertContext/AlertContext.js",
"src/context/customizationContext/CustomizationContext.js",
],
exampleMode: "expand",
usageMode: "expand",
},
{
name: "Bootstrap components",
description: "Set of bootstrap components.",
components: "src/bootstrap/*.js",
exampleMode: "expand",
usageMode: "expand",
ignore: ["src/bootstrap/constants.js"],
sectionDepth: 0,
},
],
template: {
favicon: "/docs/components/logo.svg",
},
require: [
"babel-polyfill",
path.join(__dirname, "src/testUtils/mockGlobals.js"),
path.join(__dirname, "src/testUtils/mockGlobals"),
path.join(
__dirname,
"node_modules/bootstrap/dist/css/bootstrap.min.css"
),
path.join(__dirname, "node_modules/bootstrap/dist/js/bootstrap.min.js"),
path.join(
__dirname,
"node_modules/@fortawesome/fontawesome-free/css/all.min.css"
),
],
styleguideComponents: {
LogoRenderer: path.join(__dirname, "docs/components/Logo"),

View File

@ -1,24 +1,24 @@
# Czech translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2024-11-15 06:01+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2023-11-23 16:03+0000\n"
"Last-Translator: Lukas Jelinek <lukas.jelinek@nic.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/turris/foris-js/cs/"
">\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"X-Generator: Weblate 5.9-dev\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.2.1-rc\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,116 +36,67 @@ msgstr "Neobdržena žádná odezva."
msgid "An unknown API error occurred."
msgstr "Došlo k neznámé chybě v aplikačním programovém rozhraní."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr "Zavřít"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "Zkopírováno!"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Kopírovat"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
msgstr "Akce úspěšná."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "Vyžadován restart."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr "Akce se nezdařila."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Restartovat"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Varování!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Opravdu chcete router restartovat?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Zrušit"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
msgstr "Potvrdit"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Potvrdit restart"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr "Seřadit vzestupně"
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr "Seřadit sestupně"
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr "Vyčistit řazení"
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr "Navigační pruh stránkování"
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr "První stránka"
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr "Předchozí stránka"
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr "Následující stránka"
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr "Poslední stránka"
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr "Stránka"
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr "z"
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr "Řádků na stránku:"
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr "Vyberte řádky na stránku"
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr "Vše"
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr "Při resetu nastavení Wi-Fi došlo k chybě."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "Nastavení Wi-Fi jsou uvedena do výchozího stavu."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "Reset nastavení Wi-Fi"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
"Pokud se počet bezdrátových karet neshoduje, můžete zkusit obnovit nastavení "
"Wi-Fi. Je třeba upozornit, že se tím odstraní stávající nastavení Wi-Fi a "
"Wi-Fi. Je třeba upozornit, že se tím odstraní aktuální konfigurace Wi-Fi a "
"obnoví se výchozí hodnoty."
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Heslo"
@ -174,8 +125,8 @@ msgid ""
"In case you have trouble connecting to WiFi Access Point, try disabling "
"Management Frame Protection."
msgstr ""
"Pokud máte problémy při připojování k přístupovému bodu Wi-Fi, zkuste "
"vypnout Management Frame Protection."
"Máte-li problémy při připojování k přístupovému bodu Wi-Fi, zkuste vypnout "
"Management Frame Protection."
#: src/common/WiFiSettings/WiFiForm.js:262
msgid "auto"
@ -185,47 +136,42 @@ msgstr "automaticky"
msgid "Custom"
msgstr "Uživatelsky určené"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr "Zapnout Wi-Fi pro hosty"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr "Ukázat QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "Wi-Fi QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "Stáhnout PDF"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "SSID nemůže být delší než 32 znaků"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "SSID je třeba vyplnit"
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr "SSID nemůže být delší než 32 bajtů"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "Je třeba, aby heslo obsahovalo alespoň 8 znaků"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr "Heslo nemůže obsahovat více než 63 znaků"
msgstr "Heslo nesmí obsahovat více než 63 znaků"
#: src/common/WiFiSettings/constants.js:9
msgid "Disabled"
@ -308,10 +254,10 @@ msgid ""
"supported by all your devices. It usually has less interference, but the "
"signal does not carry so well indoors."
msgstr ""
"Pásmo 2,4 GHz je v klientských zařízeních podporováno nejčastěji, bývá "
"ale více zarušené. Pásmo 5 GHz je novější standard a nemusí být "
"podporováno všemi vámi používanými zařízeními. Obvykle bývá méně "
"zarušené, signál se ale hůře šíří uvnitř budov."
"Pásmo 2,4 GHz je v klientských zařízeních podporováno nejčastěji, bývá ale "
"více zarušené. Pásmo 5 GHz je novější standard a nemusí být podporováno "
"všemi vámi používanými zařízeními. Obvykle bývá méně zarušené, signál se ale "
"hůře šíří uvnitř budov."
#: src/common/WiFiSettings/constants.js:43
msgid ""
@ -320,10 +266,9 @@ msgid ""
"interference in the network. If you don't know what to choose, use the "
"default option with 20 MHz wide channel."
msgstr ""
"Změna tohoto parametru upraví režim fungování 802.11n/ac. 802.11n s "
"kanály o šíři 40 MHz může pomoci k vyšší propustnosti, je ale náchylnější"
" na rušení. Pokud nevíte co zvolit, použijte výchozí volbu s kanálem šíře"
" 20 MHz."
"Změna tohoto parametru upraví režim fungování 802.11n/ac. 802.11n s kanály o "
"šíři 40 MHz může pomoci k vyšší propustnosti, je ale náchylnější na rušení. "
"Pokud nevíte co zvolit, použijte výchozí volbu s kanálem šíře 20 MHz."
#: src/common/WiFiSettings/constants.js:46
msgid ""
@ -333,10 +278,10 @@ msgid ""
"router. Parameters of the guest network can be set in the Guest network "
"tab."
msgstr ""
"Zapíná Wi-Fi pro hosty, která je oddělená od místní sítě (LAN). Zařízením"
" připojeným k této síti je umožněn přístup do Internetu, ale už ne na "
"ostatní zařízení a k rozhraní pro nastavování směrovače. Parametry sítě "
"pro hosty je možné nastavit na panelu „Síť pro hosty“."
"Zapíná Wi-Fi pro hosty, která je oddělená od místní sítě (LAN). Zařízením "
"připojeným k této síti je umožněn přístup do Internetu, ale už ne na ostatní "
"zařízení a k rozhraní pro nastavování směrovače. Parametry sítě pro hosty je "
"možné nastavit na panelu „Síť pro hosty“."
#: src/common/WiFiSettings/constants.js:49
msgid ""
@ -345,9 +290,9 @@ msgid ""
"without WPA3 support require older WPA2. If you experience issues with "
"connecting older devices, try to enable WPA2."
msgstr ""
"Standard WPA3 je nová nejbezpečnější metoda, již se doporučuje používat "
"se všemi zařízeními, která ji podporují. Starší zařízení bez podpory WPA3"
" potřebují starší WPA2. Zaznamenáte-li problémy s připojováním starších "
"Standard WPA3 je nová nejbezpečnější metoda, již se doporučuje používat se "
"všemi zařízeními, která ji podporují. Starší zařízení bez podpory WPA3 "
"potřebují starší WPA2. Zaznamenáte-li problémy s připojováním starších "
"zařízení, zkuste zapnout WPA2."
#: src/form/components/ForisForm.js:121
@ -360,19 +305,19 @@ msgstr ""
"Změny, které byly provedeny, nebyly uloženy. Jste si jistý, že chcete "
"opustit stránku?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Aktualizuje se"
msgstr "Aktualizuji"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Načíst nastavení"
msgstr "Načítám nastavení"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Uložit"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Došlo k chybě při získávání dat."
@ -398,7 +343,7 @@ msgstr "Toto není platné doménové jméno."
#: src/utils/validations.js:18
msgid "This is not a valid DUID."
msgstr "Toto není platné DUID."
msgstr "Tohle není platné DUID."
#: src/utils/validations.js:19
msgid "This is not a valid MAC address."
@ -433,15 +378,3 @@ msgstr "Neobsahuje seznam e-mailů oddělených čárkou."
#~ "ale, že\n"
#~ "se tím odstraní aktuální konfigurace a vrátí se výchozí hodnoty.\n"
#~ " "
#~ msgid "Reboot request failed."
#~ msgstr "Vyžadován restart."
#~ msgid "Reboot"
#~ msgstr "Restartovat"
#~ msgid "Warning!"
#~ msgstr "Varování!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Opravdu chcete router restartovat?"

View File

@ -1,13 +1,13 @@
# Danish translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: da\n"
@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -34,113 +34,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -178,45 +129,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -331,19 +277,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -469,18 +415,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,23 +1,24 @@
# German translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2024-01-04 21:08+0000\n"
"Last-Translator: Erik Pfannenstein <debianignatz@gmx.de>\n"
"Language: de\n"
"Language-Team: German <https://hosted.weblate.org/projects/turris/foris-js/"
"de/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.4-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,120 +36,69 @@ msgstr "Keine Antwort erhalten."
msgid "An unknown API error occurred."
msgstr "Ein unbekannter API-Fehler ist aufgetreten."
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr "Schließen"
#: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "Kopiert!"
#: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Kopieren"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Einstellungen erfolgreich gespeichert"
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "Neustart-Einleitung fehlgeschlagen."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Systemneustart"
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Warnung!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Abbrechen"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Neustart bestätigen"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
"Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen aufgetreten."
"Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen "
"aufgetreten."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "WLAN-Einstellungen wurden auf Standard zurückgesetzt."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "WLAN-Einstellungen zurücksetzen"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-Fi "
"settings. Note that this will remove the current Wi-Fi configuration and "
"restore the default values."
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
"Falls die Anzahl der WLAN-Karten nicht korrekt ist, könnte es helfen, die "
"WLAN-Einstellungen zurückzusetzen. Beachten Sie, dass dabei die aktuelle "
"WLAN-Konfiguration mit den Werkseinstellungen überschrieben wird."
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr "WLAN ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Passwort"
@ -188,45 +138,40 @@ msgstr "automatisch"
msgid "Custom"
msgstr "Benutzerdefiniert"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr "Gast-WLAN aktivieren"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr "QR-Code anzeigen"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "WLAN QR-Code"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "PDF herunterladen"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "Die SSID darf nicht länger als 32 Zeichen sein"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "Die SSID darf nicht leer sein"
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr "Die SSID darf nicht länger als 32 Bytes sein"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "Das Passwort muss mindestens 8 Zeichen enthalten"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr "Das Passwort darf höchstens 63 Zeichen enthalten"
@ -296,8 +241,7 @@ msgstr ""
#: src/common/WiFiSettings/constants.js:34
msgid "WPA2/3 pre-shared key, that is required to connect to the network."
msgstr ""
"WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist."
msgstr "WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist."
#: src/common/WiFiSettings/constants.js:37
msgid "If set, network is not visible when scanning for available networks."
@ -307,10 +251,10 @@ msgstr ""
#: src/common/WiFiSettings/constants.js:40
msgid ""
"The 2.4 GHz band is more widely supported by clients, but tends to have more "
"interference. The 5 GHz band is a newer standard and may not be supported by "
"all your devices. It usually has less interference, but the signal does not "
"carry so well indoors."
"The 2.4 GHz band is more widely supported by clients, but tends to have "
"more interference. The 5 GHz band is a newer standard and may not be "
"supported by all your devices. It usually has less interference, but the "
"signal does not carry so well indoors."
msgstr ""
"Das 2,4 GHz-Band wird von allen Geräten unterstützt, ist aber tendenziell "
"stärker mit Interferenzen belastet. Das 5-GHz-Band ist ein neuerer Standard, "
@ -320,10 +264,10 @@ msgstr ""
#: src/common/WiFiSettings/constants.js:43
msgid ""
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 MHz "
"wide channels can yield higher throughput but can cause more interference in "
"the network. If you don't know what to choose, use the default option with "
"20 MHz wide channel."
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 "
"MHz wide channels can yield higher throughput but can cause more "
"interference in the network. If you don't know what to choose, use the "
"default option with 20 MHz wide channel."
msgstr ""
"Ändern Sie diese Option, um den 802.11n/ac/ax-Betriebsmodus anzupassen. 40 "
"MHz breite Kanäle können bei 802.11n mehr Daten transportieren, jedoch zu "
@ -335,7 +279,8 @@ msgid ""
"Enables Wi-Fi for guests, which is separated from LAN network. Devices "
"connected to this network are allowed to access the internet, but aren't "
"allowed to access other devices and the configuration interface of the "
"router. Parameters of the guest network can be set in the Guest network tab."
"router. Parameters of the guest network can be set in the Guest network "
"tab."
msgstr ""
"Ermöglicht ein Wi-Fi für Gäste, das vom LAN-Netzwerk getrennt ist. Geräte, "
"die mit diesem Netzwerk verbunden sind, dürfen auf das Internet zugreifen, "
@ -345,10 +290,10 @@ msgstr ""
#: src/common/WiFiSettings/constants.js:49
msgid ""
"The WPA3 standard is the new most secure encryption method that is suggested "
"to be used with any device that supports it. The older devices without WPA3 "
"support require older WPA2. If you experience issues with connecting older "
"devices, try to enable WPA2."
"The WPA3 standard is the new most secure encryption method that is "
"suggested to be used with any device that supports it. The older devices "
"without WPA3 support require older WPA2. If you experience issues with "
"connecting older devices, try to enable WPA2."
msgstr ""
"Der WPA3-Standard ist die neue Verschlüsselungsmethode mit der besten "
"Sicherheit. Er empfiehlt sich für jedes Gerät, das ihn unterstützt, aber "
@ -366,19 +311,19 @@ msgstr ""
"Änderungen, die Sie vorgenommen haben, werden möglicherweise nicht "
"gespeichert. Möchten Sie wirklich gehen?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Aktualisiere"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Einstellungen laden"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Speichern"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Beim Abruf der Daten ist ein Fehler aufgetreten."
@ -414,25 +359,21 @@ msgstr "Dies ist keine gültige MAC-Adresse."
msgid "Doesn't contain a list of emails separated by commas."
msgstr "Enthält keine Liste von E-Mails, die durch Kommas getrennt sind."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "Neustart-Einleitung fehlgeschlagen."
#~ msgid "An unknown error occurred. Check the console for more info."
#~ msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Systemneustart"
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Warnung!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Neustart bestätigen"
#~ msgid "Reboot confirmation"
#~ msgstr ""
#~ msgid "Enable"
#~ msgstr "Aktivieren"
#~ msgid ""
#~ "\n"
#~ "If a number of wireless cards "
#~ "doesn't match, you may try to "
#~ "reset the Wi-Fi settings. Note "
#~ "that this will remove the\n"
#~ "current Wi-Fi configuration and restore the default values.\n"
#~ " "
#~ msgstr ""

View File

@ -1,24 +1,23 @@
# Greek translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2025-01-18 11:00+0000\n"
"Last-Translator: Thanasis <thanasakis11mail@gmail.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/turris/foris-js/el/"
">\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2021-02-09 16:50+0000\n"
"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
"Language: el\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/turris/foris-"
"js/el/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10-dev\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,114 +35,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr "Κλείσιμο"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Επανεκκίνηση"
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση του δρομολογητή;"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Άκυρο"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Επιβεβαίωση επανεκκίνησης"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -180,53 +129,48 @@ msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:303
msgid "Custom"
msgstr "Προσαρμοσμένο"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
#: src/common/WiFiSettings/constants.js:9
msgid "Disabled"
msgstr "Απενεργοποιημένο"
msgstr ""
#: src/common/WiFiSettings/constants.js:10
msgid "802.11n - 20 MHz wide channel"
@ -335,19 +279,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -473,14 +417,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr "Επανεκκίνηση"
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση του δρομολογητή;"

View File

@ -1,13 +1,13 @@
# English translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-10-17 09:28+0000\n"
"Last-Translator: Scott Anecito <scott.anecito@protonmail.com>\n"
"Language: en\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,113 +35,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -179,45 +130,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -332,19 +278,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -467,18 +413,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,15 +1,15 @@
# Spanish translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2024-08-24 13:09+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2022-09-11 17:15+0000\n"
"Last-Translator: Dan Cybersec <dan.cybersec@protonmail.com>\n"
"Language: es\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/turris/foris-"
"js/es/>\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -37,103 +37,52 @@ msgstr ""
"Un error desconocido ha ocurrido. Compruebe la consola para mas "
"informaciòn."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr "Cerrar"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "¡Copiado!"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Copiar"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Los ajustes se han guardado correctamente"
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "La petición de reinicio ha fallado."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Reiniciar"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "¡Atención!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "¿Estás seguro de que quieres reiniciar el router?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Cancelar"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Confirmar reinicio"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr "Ocurrió un error durante el reseteo de los ajustes Wi-Fi."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "Los ajustes Wi-Fi se han definido por defecto."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "Resetear los ajustes Wi-Fi"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
@ -143,12 +92,12 @@ msgstr ""
"resetar los ajustes Wi-Fi. Ten en cuenta que esto eliminará la "
"configuración Wi-Fi actual, y restaurará los ajustes por defecto."
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Contraseña"
@ -170,15 +119,13 @@ msgstr "Cifrado"
#: src/common/WiFiSettings/WiFiForm.js:226
msgid "Disable Management Frame Protection"
msgstr "Desactivar Protected Management Frames"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:227
msgid ""
"In case you have trouble connecting to WiFi Access Point, try disabling "
"Management Frame Protection."
msgstr ""
"Si tienes problemas para conectarte a un punto de acceso Wi-Fi, intenta "
"desactivar Management Frame Protection."
#: src/common/WiFiSettings/WiFiForm.js:262
msgid "auto"
@ -188,45 +135,40 @@ msgstr "automático"
msgid "Custom"
msgstr "Personalizado"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr "Activar el modo Wi-Fi de invitados"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr "Mostrar el código QR"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "Código QR Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "Descargar PDF"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "El SSID no puede ser más largo que 32 símbolos"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "El SSID no puede estar vacío"
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr "El SSID no puede ser más largo que 32 bytes"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "La contraseña debe contener al menos 8 símbolos"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr "La contraseña no debe contener más de 63 símbolos"
@ -364,19 +306,19 @@ msgstr ""
"Los cambios que has realizado podrían no haberse guardado. ¿Estás seguro "
"de que quieres salir?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Actualizando"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Cargando los ajustes"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Guardar"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Se ha producido un error mientras se recuperaban los datos."
@ -493,15 +435,3 @@ msgstr "No contiene una lista de correos electrónicos separados por comas."
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr "La petición de reinicio ha fallado."
#~ msgid "Reboot"
#~ msgstr "Reiniciar"
#~ msgid "Warning!"
#~ msgstr "¡Atención!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "¿Estás seguro de que quieres reiniciar el router?"

View File

@ -1,13 +1,13 @@
# Finnish translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fi\n"
@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -34,113 +34,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -178,45 +129,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -331,19 +277,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -469,18 +415,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,13 +1,13 @@
# Faroese translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fo\n"
@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -34,113 +34,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -178,45 +129,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -331,19 +277,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -469,18 +415,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,21 +1,21 @@
# Translations template for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Foris JS 6.5.0\n"
"Project-Id-Version: Foris JS 5.4.1\n"
"Report-Msgid-Bugs-To: tech.support@turris.cz\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -33,113 +33,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -177,45 +128,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -330,19 +276,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""

View File

@ -1,24 +1,23 @@
# French translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2024-12-14 10:00+0000\n"
"Last-Translator: ButterflyOfFire <boffire@users.noreply.hosted.weblate.org>\n"
"Language-Team: French <https://hosted.weblate.org/projects/turris/foris-js/"
"fr/>\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2022-01-14 05:53+0000\n"
"Last-Translator: Gabriel GRONDIN <gglinnk@protonmail.com>\n"
"Language: fr\n"
"Language-Team: French <https://hosted.weblate.org/projects/turris/foris-"
"js/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.9-rc\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,116 +35,66 @@ msgstr "Aucun réponse reçue."
msgid "An unknown API error occurred."
msgstr "Une erreur dAPI inconnue sest produite."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr "Fermer"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "Copié!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Copier"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
msgstr "Paramètres enregistrés avec succès."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "La demande de redémarrage a échoué."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr "L'enregistrement des paramètres a échoué."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Redémarrer"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Attention!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Voulez-vous vraiment redémarrer le routeur ?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Annuler"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Confirmer le redémarrage"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr "Première page"
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr "Page précédente"
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr "Page suivante"
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr "Dernière page"
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr "Page"
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr "de"
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr "Lignes par page :"
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr "Sélectionnez les lignes par page"
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr "Tout"
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
"Une erreur s'est produite lors de la réinitialisation des paramètres Wi-"
"Fi."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "Les paramètres Wi-Fi sont définis par défaut."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "Réinitialiser les paramètres Wi-Fi"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Mot de passe"
@ -168,15 +117,13 @@ msgstr "Chiffrement"
#: src/common/WiFiSettings/WiFiForm.js:226
msgid "Disable Management Frame Protection"
msgstr "Désactiver le mode Protection du cadre de gestion"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:227
msgid ""
"In case you have trouble connecting to WiFi Access Point, try disabling "
"Management Frame Protection."
msgstr ""
"Si vous rencontrez des soucis à vous connecter à un point d'accès WiFi, "
"merci d'essayer de désactiver le mode Protection du cadre de gestion."
#: src/common/WiFiSettings/WiFiForm.js:262
msgid "auto"
@ -186,46 +133,40 @@ msgstr "automatique"
msgid "Custom"
msgstr "Personnalisé"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr "Activer le mode Wi-Fi invité"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "Code QR Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "Code QR Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "Télécharger le PDF"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "Le SSID ne peut pas être plus long que 32 symboles"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "Le SSID ne peut pas être vide"
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr "Le SSID ne peut pas dépasser 32 octets"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "Le mot de passe doit contenir au moins 8 symboles"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
#, fuzzy
msgid "Password must not contain more than 63 symbols"
msgstr "Le mot de passe doit contenir au moins 8 symboles"
@ -389,19 +330,19 @@ msgstr ""
"Il se peut que vos modifications ne soient pas enregistrées. Êtes-vous "
"sûr de vouloir quitter?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Mise à jour en cours"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Charger les paramètres"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Enregistrer"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Une erreur sest produite lors du chargement des données."
@ -462,14 +403,3 @@ msgstr ""
#~ " "
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr "La demande de redémarrage a échoué."
#~ msgid "Reboot"
#~ msgstr "Redémarrer"
#~ msgid "Warning!"
#~ msgstr "Attention!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Voulez-vous vraiment redémarrer le routeur ?"

View File

@ -1,13 +1,13 @@
# Croatian translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2022-09-29 14:17+0000\n"
"Last-Translator: Milo Ivir <mail@milotype.de>\n"
"Language: hr\n"
@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,113 +36,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Lozinka"
@ -180,45 +131,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -333,19 +279,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Spremi"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -471,18 +417,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,13 +1,13 @@
# Hungarian translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2021-01-07 01:26+0000\n"
"Last-Translator: Zoli <boritek@gmail.com>\n"
"Language: hu\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,114 +35,64 @@ msgstr "Nem érkezett válasz."
msgid "An unknown API error occurred."
msgstr "Ismeretlen API-hiba történt."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Beállítások sikeresen elmentve"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -180,45 +130,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -335,19 +280,19 @@ msgstr ""
"Lehet, hogy az Ön által végrehajtott módosításokat nem menti a rendszer. "
"Biztosan el akar menni?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Frissítés"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Beállítások betöltése"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Mentés"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Hiba történt az adatok beolvasása közben."
@ -465,18 +410,3 @@ msgstr "Nem tartalmaz vesszővel elválasztott e-mail listát."
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,23 +1,24 @@
# Italian translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2022-12-31 23:48+0000\n"
"Last-Translator: Anselmo <anselmo@casinadicornia.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/turris/foris-js/"
"it/>\n"
"Language: it\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/turris/foris-"
"js/it/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.15.1-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,113 +36,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Password"
@ -179,45 +131,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -332,19 +279,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -469,19 +416,3 @@ msgstr ""
#~ " default option with 20 MHz wide "
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,13 +1,13 @@
# Japanese translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-10-16 10:08+0000\n"
"Last-Translator: Scott Anecito <scott.anecito@protonmail.com>\n"
"Language: ja\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,113 +35,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "再起動"
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -180,45 +131,40 @@ msgstr "自動"
msgid "Custom"
msgstr "自動"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -333,19 +279,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "アップデート中…"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -471,18 +417,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr "再起動"
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,13 +1,13 @@
# Korean translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ko\n"
@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -34,113 +34,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -178,45 +129,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -331,19 +277,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -469,18 +415,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,13 +1,13 @@
# Lithuanian translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: lt\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,113 +35,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -179,45 +130,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -332,19 +278,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -470,18 +416,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,23 +1,24 @@
# Norwegian Bokmål (Norway) translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2023-03-02 11:40+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/turris/"
"foris-js/nb_NO/>\n"
"Language: nb_NO\n"
"Language-Team: Norwegian Bokmål "
"<https://hosted.weblate.org/projects/turris/foris-js/nb_NO/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.16.2-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,104 +37,54 @@ msgstr "Fikk ikke svar."
msgid "An unknown API error occurred."
msgstr "Ukjent API-feil."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "Kopiert"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Kopier"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#: src/common/RebootButton.js:27
#, fuzzy
msgid "Action successful."
msgstr "Innstillinger lagret"
msgid "Reboot request failed."
msgstr "Omstart kreves"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Start på ny"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Advarsel!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Er du sikker på at du vil utføre omstart av ruteren?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Avbryt"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Bekreft omstart"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
#, fuzzy
msgid "An error occurred during resetting Wi-Fi settings."
msgstr "Kunne ikke tilbakestille Wi-Fi-innstillinger."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "Wi-Fi-innstillinger satt til forvalg."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "Tilbakestill Wi-Fi-innstillinger"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
@ -143,13 +94,13 @@ msgstr ""
"Fi-innstillingene. Merk at dette fjerner nåværende Wi-Fi-oppsett og "
"gjenoppretter forvalgte verdier."
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
#, fuzzy
msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Passord"
@ -181,8 +132,8 @@ msgid ""
"In case you have trouble connecting to WiFi Access Point, try disabling "
"Management Frame Protection."
msgstr ""
"I fall du har problemer med å koble til Wi-Fi-tilgangspunkt, kan du skru "
"av håndtering av rammebeskyttelse."
"I fall du har problemer med å koble til Wi-Fi-tilgangspunkt, kan du skru av "
"håndtering av rammebeskyttelse."
#: src/common/WiFiSettings/WiFiForm.js:262
msgid "auto"
@ -192,48 +143,42 @@ msgstr "automatisk"
msgid "Custom"
msgstr "Tilpasset"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
#, fuzzy
msgid "Enable Guest Wi-Fi"
msgstr "Skru på gjestetrådløsnett"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "QR-kode for Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "QR-kode for Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "Last ned PDF"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "SSID kan ikke være lengre enn 32 symboler"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "SSID kan ikke stå tomt."
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
#, fuzzy
msgid "SSID can't be longer than 32 bytes"
msgstr "SSID kan ikke være lengre enn 32 symboler"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "Passordet må inneholde minst 8 tegn"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
#, fuzzy
msgid "Password must not contain more than 63 symbols"
msgstr "Passordet må inneholde minst 8 tegn"
@ -372,20 +317,20 @@ msgstr "Innstillinger lagret"
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr "Endringer du har gjort vil ikke bli lagret. Er du sikker?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
#, fuzzy
msgid "Updating"
msgstr "Oppdaterer"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Last inn innstillinger"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Lagre"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Kunne ikke hente data."
@ -448,16 +393,3 @@ msgstr "Inneholder ikke en kommainndelt liste med e-postadresser."
#~ "\n"
#~ "gjeldende Wi-Fi-oppsett og tilbakestiller forvalgte verdier.\n"
#~ " "
#~ msgid "Reboot request failed."
#~ msgstr "Omstart kreves"
#~ msgid "Reboot"
#~ msgstr "Start på ny"
#~ msgid "Warning!"
#~ msgstr "Advarsel!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Er du sikker på at du vil utføre omstart av ruteren?"

View File

@ -1,23 +1,24 @@
# Dutch translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2024-01-04 21:08+0000\n"
"Last-Translator: powerburner-nl <peter.mulder.1981@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/turris/foris-js/nl/"
">\n"
"Language: nl\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/turris/foris-"
"js/nl/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.4-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,114 +36,65 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
msgstr ""
#: src/common/RebootButton.js:27
#, fuzzy
msgid "Reboot request failed."
msgstr "Opnieuw opstarten is vereist"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Opnieuw opstarten"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Waarschuwing!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Weet u zeker dat u de router opnieuw wilt opstarten?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Annuleren"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Opnieuw opstarten bevestigen"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Wachtwoord"
@ -181,45 +133,40 @@ msgstr "auto"
msgid "Custom"
msgstr "auto"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -334,19 +281,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Bijwerken"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Instellingen laden"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Opslaan"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -472,16 +419,3 @@ msgstr "Bevat geen lijst met e-mails gescheiden door komma's."
#~ " default option with 20 MHz wide "
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr "Opnieuw opstarten is vereist"
#~ msgid "Reboot"
#~ msgstr "Opnieuw opstarten"
#~ msgid "Warning!"
#~ msgstr "Waarschuwing!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Weet u zeker dat u de router opnieuw wilt opstarten?"

View File

@ -1,24 +1,25 @@
# Polish translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2023-03-07 16:37+0000\n"
"Last-Translator: Arusekk <arek_koz@o2.pl>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/turris/foris-js/"
"pl/>\n"
"Language: pl\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/turris/foris-"
"js/pl/>\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && "
"(n%100<10 || n%100>=20) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.16.2-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,115 +37,64 @@ msgstr "Brak odpowiedzi."
msgid "An unknown API error occurred."
msgstr "Wystąpił nieznany błąd API."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Ustawienia zostały zapisane"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Restart"
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Ostrzeżenie!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Czy na pewno zrestartować router?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Anuluj"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Potwierdź restart"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Hasło"
@ -182,45 +132,40 @@ msgstr ""
msgid "Custom"
msgstr "Własny"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -337,19 +282,19 @@ msgstr ""
"Wprowadzone zmiany mogą nie zostać zapisane. Jesteś pewny, że chcesz "
"wyjść?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Aktualizacja"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Wczytaj ustawienia"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Zapisz"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Wystąpił błąd podczas pobierania danych."
@ -472,16 +417,3 @@ msgstr "Nie zawiera listy e-maili oddzielonych przecinkami."
#~ " default option with 20 MHz wide "
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr "Restart"
#~ msgid "Warning!"
#~ msgstr "Ostrzeżenie!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Czy na pewno zrestartować router?"

View File

@ -1,13 +1,13 @@
# Portuguese (Brazil) translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2021-12-21 12:52+0000\n"
"Last-Translator: c10l <weblate.org@a.c10l.cc>\n"
"Language: pt_BR\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,114 +35,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Reinício"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Atenção!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Você tem certeza de que quer reiniciar o roteador?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Cancelar"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Confirma reinício"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -180,45 +130,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -333,19 +278,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -449,15 +394,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr "Reinício"
#~ msgid "Warning!"
#~ msgstr "Atenção!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Você tem certeza de que quer reiniciar o roteador?"

View File

@ -1,13 +1,13 @@
# Romanian translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2019-02-19 13:35+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ro\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -35,113 +35,64 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr ""
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr ""
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr ""
@ -179,45 +130,40 @@ msgstr ""
msgid "Custom"
msgstr ""
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr ""
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr ""
@ -332,19 +278,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr ""
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -470,18 +416,3 @@ msgstr ""
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr ""
#~ msgid "Reboot"
#~ msgstr ""
#~ msgid "Warning!"
#~ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr ""
#~ msgid "Confirm reboot"
#~ msgstr ""

View File

@ -1,24 +1,25 @@
# Russian translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2022-12-07 12:47+0000\n"
"Last-Translator: Алексей Леньшин <alenshin@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/turris/foris-js/"
"ru/>\n"
"Language: ru\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/turris/foris-"
"js/ru/>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.15-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,103 +37,52 @@ msgstr "Ответ не получен."
msgid "An unknown API error occurred."
msgstr "Неизвестная ошибка программного интерфейса приложения."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "Скопировано!"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Копировать"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Настройки были успешно сохранены"
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "Запрос на перезагрузку не выполнен."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Перезагрузка"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Предупреждение!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Вы уверены, что хотите перезагрузить маршрутизатор?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Отмена"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Подтвердите перезагрузку"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr "При сбросе настроек Wi-Fi произошла ошибка."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "Настройки Wi-Fi установлены по умолчанию."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "Сбросить настройки Wi-Fi"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
@ -142,12 +92,12 @@ msgstr ""
"сбросить настройки Wi-Fi. Обратите внимание, что при этом будет удалена "
"текущая конфигурация Wi-Fi и восстановлены значения по умолчанию."
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Пароль"
@ -187,46 +137,40 @@ msgstr "авто"
msgid "Custom"
msgstr "Ручная настройка"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr "Включить гостевой Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "QR-код Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "QR-код Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "Скачать PDF"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "SSID не может быть длиннее 32 символов"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "SSID не может быть пустым"
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr "SSID не может быть длиннее 32 байт"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "Пароль должен содержать не менее 8 символов"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr "Пароль не должен содержать более 63 символов"
@ -364,19 +308,19 @@ msgstr ""
"В случае выхода ваши изменения будут утеряны. Вы действительно хотите "
"покинуть эту страницу?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Обновление"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Загрузить настройки"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Сохранить"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Во время получения данных произошла ошибка."
@ -440,16 +384,3 @@ msgstr "Не содержит списка электронных адресов
#~ "конфигурации Wi-Fi и восстановлению "
#~ "значений по умолчанию.\n"
#~ " "
#~ msgid "Reboot request failed."
#~ msgstr "Запрос на перезагрузку не выполнен."
#~ msgid "Reboot"
#~ msgstr "Перезагрузка"
#~ msgid "Warning!"
#~ msgstr "Предупреждение!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Вы уверены, что хотите перезагрузить маршрутизатор?"

View File

@ -1,14 +1,14 @@
# Slovak translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2024-12-14 10:00+0000\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2023-01-17 22:51+0000\n"
"Last-Translator: Atec <dr.atec@gmail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/turris/foris-js/"
"sk/>\n"
@ -16,9 +16,9 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"X-Generator: Weblate 5.9-rc\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.15.1-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,101 +36,52 @@ msgstr "Nenastala žiadna odozva."
msgid "An unknown API error occurred."
msgstr "Nastala neznáma chyba v API."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr "Zatvoriť"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "Skopírované!"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Kopírovať"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
msgstr "Akcia úspešná."
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "Požiadavka na reštart neúspešná."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr "Akcia neúspešná."
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Reštartovať"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Výstraha!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Naozaj sa má router reštartovať?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Zrušiť"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
msgid "Confirm"
msgstr "Potvrdiť"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Potvrdiť reštart"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr "Zoradiť vzostupne"
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr "Zoradiť zostupne"
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr "Vymazať zoradenie"
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr "Navigačný pás stránkovania"
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr "Prvá strana"
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr "Predchádzajúca strana"
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr "Nasledujúca strana"
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr "Posledná strana"
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr "Strana"
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr "z"
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr "Počet riadkov na stranu:"
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr "Vyberte počet riadkov na stranu"
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr "Všetky"
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr "Pri resete nastavení Wi-Fi nastala chyba."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "Nastavenia Wi-Fi sa zmenili do východiskového stavu."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "Resetovať nastavenia Wi-Fi"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
@ -140,12 +91,12 @@ msgstr ""
"nastavenia Wi-Fi. Upozorňujeme, že sa tým odstráni aktuálna konfigurácia "
"Wi-Fi a obnovia sa predvolené hodnoty."
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Heslo"
@ -185,51 +136,46 @@ msgstr "automaticky"
msgid "Custom"
msgstr "Vlastné"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr "Povoliť Wi-Fi pre hostí"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
msgid "Show QR code"
msgstr "Zobraziť QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "Wi-Fi QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "Stiahnuť PDF"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "SSID nemôže obsahovať viac ako 32 znakov"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "SSID nesmie byť prázdne"
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr "SSID nesmie byť dlhšie ako 32 byteov"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "Heslo musí obsahovať aspoň 8 znakov"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
msgid "Password must not contain more than 63 symbols"
msgstr "Heslo nesmie obsahovať viac ako 63 znakov"
#: src/common/WiFiSettings/constants.js:9
msgid "Disabled"
msgstr "Vypnuté"
msgstr "Zakázané"
#: src/common/WiFiSettings/constants.js:10
msgid "802.11n - 20 MHz wide channel"
@ -358,19 +304,19 @@ msgstr "Nastavenia boli úspešne uložené"
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr "Vykonané zmeny neboli uložené. Naozaj chcete opustiť stránku?"
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr "Prebieha aktualizácia"
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr "Načítavanie nastavení"
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Uložiť"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr "Pri získavaní dát nastala chyba."
@ -434,15 +380,3 @@ msgstr "Neobsahuje zoznam e-mailov oddelených čiarkami."
#~ "že sa tým odstráni aktuálna konfigurácia"
#~ " a obnovia sa východiskové hodnoty.\n"
#~ " "
#~ msgid "Reboot request failed."
#~ msgstr "Požiadavka na reštart neúspešná."
#~ msgid "Reboot"
#~ msgstr "Reštartovať"
#~ msgid "Warning!"
#~ msgstr "Výstraha!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Naozaj sa má router reštartovať?"

View File

@ -1,24 +1,24 @@
# Swedish translations for Foris JS.
# Copyright (C) 2024 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# Copyright (C) 2022 CZ.NIC, z.s.p.o. (https://www.nic.cz/)
# This file is distributed under the same license as the Foris JS project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"POT-Creation-Date: 2022-12-02 15:54+0100\n"
"PO-Revision-Date: 2023-09-22 21:00+0000\n"
"Last-Translator: Kristoffer Grundström "
"<swedishsailfishosuser@tutanota.com>\n"
"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/turris/foris-js/"
"sv/>\n"
"Language: sv\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/turris/foris-"
"js/sv/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.1-dev\n"
"Generated-By: Babel 2.11.0\n"
#: src/api/utils.js:61
msgid "The session is expired. Please log in again."
@ -36,117 +36,67 @@ msgstr "Inget svar togs emot."
msgid "An unknown API error occurred."
msgstr "Ett okänt API-fel inträffade."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copied!"
msgstr "Kopierades!"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:55
msgid "Copy"
msgstr "Kopiera"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
msgid "Action successful."
msgstr ""
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "Förfrågning för omstart misslyckades."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Starta om"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Varning!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Är du säker på att du vill starta om routern?"
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Avbryt"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Bekräfta omstart"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
#: src/common/WiFiSettings/ResetWiFiSettings.js:38
msgid "An error occurred during resetting Wi-Fi settings."
msgstr "Ett fel inträffade under återställningen av Wi-Fi-inställningarna."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
#: src/common/WiFiSettings/ResetWiFiSettings.js:41
msgid "Wi-Fi settings are set to defaults."
msgstr "Wi-Fi-inställningarna har ställts in standardinställningarna."
#: src/common/WiFiSettings/ResetWiFiSettings.js:56
#: src/common/WiFiSettings/ResetWiFiSettings.js:70
#: src/common/WiFiSettings/ResetWiFiSettings.js:55
#: src/common/WiFiSettings/ResetWiFiSettings.js:69
msgid "Reset Wi-Fi Settings"
msgstr "Återställ Wi-Fi-inställningarna"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
#: src/common/WiFiSettings/ResetWiFiSettings.js:57
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
"Om ett antal trådlösa kort inte matchar så kan du prova att återställa "
"Wi-Fi-inställningarna. Notera att det här kommer att ta bort den "
"nuvarande Wi-Fi-konfigurationen och återställa till standardvärdena."
"Om ett antal trådlösa kort inte matchar så kan du prova att återställa Wi-Fi-"
"inställningarna. Notera att det här kommer att ta bort den nuvarande Wi-Fi-"
"konfigurationen och återställa till standardvärdena."
#: src/common/WiFiSettings/WiFiForm.js:97
#: src/common/WiFiSettings/WiFiForm.js:95
msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:78
#: src/common/WiFiSettings/WiFiGuestForm.js:80
msgid "Password"
msgstr "Lösenord"
@ -186,46 +136,40 @@ msgstr "auto"
msgid "Custom"
msgstr "auto"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
#: src/common/WiFiSettings/WiFiGuestForm.js:42
msgid "Enable Guest Wi-Fi"
msgstr "Aktivera Wi-Fi för Gäst"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "QR-kod för Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:70
#: src/common/WiFiSettings/WiFiQRCode.js:71
msgid "Wi-Fi QR Code"
msgstr "QR-kod för Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:102
#: src/common/WiFiSettings/WiFiQRCode.js:91
msgid "Download PDF"
msgstr "Ladda ner PDF"
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:99
#: src/common/WiFiSettings/WiFiSettings.js:82
#: src/common/WiFiSettings/WiFiSettings.js:98
msgid "SSID can't be longer than 32 symbols"
msgstr "SSID kan inte vara längre än 32 symboler"
#: src/common/WiFiSettings/WiFiSettings.js:84
#: src/common/WiFiSettings/WiFiSettings.js:101
#: src/common/WiFiSettings/WiFiSettings.js:83
#: src/common/WiFiSettings/WiFiSettings.js:100
msgid "SSID can't be empty"
msgstr "SSID kan inte vara tomt"
#: src/common/WiFiSettings/WiFiSettings.js:86
#: src/common/WiFiSettings/WiFiSettings.js:103
#: src/common/WiFiSettings/WiFiSettings.js:85
#: src/common/WiFiSettings/WiFiSettings.js:102
msgid "SSID can't be longer than 32 bytes"
msgstr "SSID kan inte vara längre än 32 bytes"
#: src/common/WiFiSettings/WiFiSettings.js:89
#: src/common/WiFiSettings/WiFiSettings.js:106
#: src/common/WiFiSettings/WiFiSettings.js:88
#: src/common/WiFiSettings/WiFiSettings.js:105
msgid "Password must contain at least 8 symbols"
msgstr "Lösenord måste innehålla åtminstone 8 symboler"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
#: src/common/WiFiSettings/WiFiSettings.js:90
#: src/common/WiFiSettings/WiFiSettings.js:109
#, fuzzy
msgid "Password must not contain more than 63 symbols"
msgstr "Lösenord måste innehålla åtminstone 8 symboler"
@ -295,8 +239,8 @@ msgid ""
"SSID which contains non-standard characters could cause problems on some "
"devices."
msgstr ""
"SSID som innehåller icke-standardiserade tecken kan orsaka problem i en "
"del enheter."
"SSID som innehåller icke-standardiserade tecken kan orsaka problem i en del "
"enheter."
#: src/common/WiFiSettings/constants.js:34
msgid "WPA2/3 pre-shared key, that is required to connect to the network."
@ -347,19 +291,19 @@ msgstr ""
msgid "Changes you made may not be saved. Are you sure you want to leave?"
msgstr ""
#: src/form/components/SubmitButton.js:32
#: src/form/components/SubmitButton.js:31
msgid "Updating"
msgstr ""
#: src/form/components/SubmitButton.js:35
#: src/form/components/SubmitButton.js:34
msgid "Load settings"
msgstr ""
#: src/form/components/SubmitButton.js:38
#: src/form/components/SubmitButton.js:37
msgid "Save"
msgstr "Spara"
#: src/utils/ErrorMessage.js:17
#: src/utils/ErrorMessage.js:16
msgid "An error occurred while fetching data."
msgstr ""
@ -485,16 +429,3 @@ msgstr ""
#~ " default option with 20 MHz wide "
#~ "channel."
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr "Förfrågning för omstart misslyckades."
#~ msgid "Reboot"
#~ msgstr "Starta om"
#~ msgid "Warning!"
#~ msgstr "Varning!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Är du säker på att du vill starta om routern?"