feat: localization (#196)

* Started adding locale translations :)

* Added some more translations

* Working on translating even more pages

* More translations

* Added test default locale retrieval

* replace `intl.formatMessage` with custom `t` hook

* add more translations

* improve title syntax

* add more translations

* translate admin config page

* translated error messages

* add language selecter

* minor fixes

* improve language handling

* add upcoming languages

* add `crowdin.yml`

* run formatter

---------

Co-authored-by: Steve Tautonico <stautonico@gmail.com>
This commit is contained in:
Elias Schneider
2023-07-20 15:32:07 +02:00
committed by GitHub
parent 7c5ec8d0ea
commit b9f6e3bd08
68 changed files with 4712 additions and 461 deletions

View File

@@ -19,6 +19,8 @@ import { byteToHumanSizeString } from "../../utils/fileSize.util";
import toast from "../../utils/toast.util";
import TableSortIcon, { TableSort } from "../core/SortIcon";
import showFilePreviewModal from "./modals/showFilePreviewModal";
import useTranslate from "../../hooks/useTranslate.hook";
import { FormattedMessage } from "react-intl";
const FileList = ({
files,
@@ -34,6 +36,7 @@ const FileList = ({
const clipboard = useClipboard();
const config = useConfig();
const modals = useModals();
const t = useTranslate();
const [sort, setSort] = useState<TableSort>({
property: undefined,
@@ -68,10 +71,10 @@ const FileList = ({
if (window.isSecureContext) {
clipboard.copy(link);
toast.success("Your file link was copied to the keyboard.");
toast.success(t("common.notify.copied"));
} else {
modals.openModal({
title: "File link",
title: t("share.modal.file-link"),
children: (
<Stack align="stretch">
<TextInput variant="filled" value={link} />
@@ -90,13 +93,13 @@ const FileList = ({
<tr>
<th>
<Group spacing="xs">
Name
<FormattedMessage id="share.table.name" />
<TableSortIcon sort={sort} setSort={setSort} property="name" />
</Group>
</th>
<th>
<Group spacing="xs">
Size
<FormattedMessage id="share.table.size" />
<TableSortIcon sort={sort} setSort={setSort} property="size" />
</Group>
</th>