mirror of
https://github.com/outline/outline.git
synced 2026-06-14 03:45:00 +03:00
Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 98f975cf07 | |||
| e2dd6221f8 | |||
| 7f513a6950 | |||
| 6440d78b6f | |||
| 7e05fc1017 | |||
| 2bc47cfcef | |||
| e8e46a438c | |||
| 3156f62e94 | |||
| 9274f56ef6 | |||
| 4bb9ac40c7 | |||
| 36772f1444 | |||
| e503225f04 | |||
| 762140e493 | |||
| 21e756c357 | |||
| 2cc5846f1b | |||
| de6c1735d9 | |||
| b7c13f092b | |||
| 298298223b | |||
| 21f37c0d14 | |||
| 18bc93c9c2 | |||
| 6a12822829 | |||
| adcab68b59 | |||
| 943fd7e2e1 | |||
| 01db19a0b1 | |||
| 51cb5bffce | |||
| d37b7fa31e | |||
| f86225c332 | |||
| e53c90f25f | |||
| d84d5a4b09 | |||
| 0031fc1562 | |||
| 9b73635727 | |||
| 5cefb534cc | |||
| 8fb6f7f8c6 | |||
| 6b497cf1ec | |||
| 05a61927af |
@@ -127,6 +127,10 @@ GITHUB_APP_NAME=
|
||||
GITHUB_APP_ID=
|
||||
GITHUB_APP_PRIVATE_KEY=
|
||||
|
||||
# Linear
|
||||
LINEAR_CLIENT_ID=
|
||||
LINEAR_CLIENT_SECRET=
|
||||
|
||||
# To configure Discord auth, you'll need to create a Discord Application at
|
||||
# => https://discord.com/developers/applications/
|
||||
#
|
||||
|
||||
@@ -69,7 +69,6 @@ function CollectionDescription({ collection }: Props) {
|
||||
readOnly={!can.update}
|
||||
userId={user.id}
|
||||
editorStyle={editorStyle}
|
||||
embedsDisabled
|
||||
/>
|
||||
<div ref={childRef} />
|
||||
</React.Suspense>
|
||||
|
||||
@@ -18,6 +18,13 @@ type Props = {
|
||||
children?: React.ReactNode;
|
||||
document: Document;
|
||||
onlyText?: boolean;
|
||||
reverse?: boolean;
|
||||
/**
|
||||
* Maximum number of items to show in the breadcrumb.
|
||||
* If value is less than or equals to 0, no items will be shown.
|
||||
* If value is undefined, all items will be shown.
|
||||
*/
|
||||
maxDepth?: number;
|
||||
};
|
||||
|
||||
function useCategory(document: Document): MenuInternalLink | null {
|
||||
@@ -54,7 +61,7 @@ function useCategory(document: Document): MenuInternalLink | null {
|
||||
}
|
||||
|
||||
function DocumentBreadcrumb(
|
||||
{ document, children, onlyText }: Props,
|
||||
{ document, children, onlyText, reverse = false, maxDepth }: Props,
|
||||
ref: React.RefObject<HTMLDivElement> | null
|
||||
) {
|
||||
const { collections } = useStores();
|
||||
@@ -65,6 +72,7 @@ function DocumentBreadcrumb(
|
||||
? collections.get(document.collectionId)
|
||||
: undefined;
|
||||
const can = usePolicy(collection);
|
||||
const depth = maxDepth === undefined ? undefined : Math.max(0, maxDepth);
|
||||
|
||||
React.useEffect(() => {
|
||||
void document.loadRelations({ withoutPolicies: true });
|
||||
@@ -91,20 +99,23 @@ function DocumentBreadcrumb(
|
||||
};
|
||||
}
|
||||
|
||||
const path = document.pathTo;
|
||||
const path = document.pathTo.slice(0, -1);
|
||||
|
||||
const items = React.useMemo(() => {
|
||||
const output = [];
|
||||
const output: MenuInternalLink[] = [];
|
||||
|
||||
if (depth === 0) {
|
||||
return output;
|
||||
}
|
||||
|
||||
if (category) {
|
||||
output.push(category);
|
||||
}
|
||||
|
||||
if (collectionNode) {
|
||||
output.push(collectionNode);
|
||||
}
|
||||
|
||||
path.slice(0, -1).forEach((node: NavigationNode) => {
|
||||
path.forEach((node: NavigationNode) => {
|
||||
const title = node.title || t("Untitled");
|
||||
output.push({
|
||||
type: "route",
|
||||
@@ -121,21 +132,43 @@ function DocumentBreadcrumb(
|
||||
},
|
||||
});
|
||||
});
|
||||
return output;
|
||||
}, [t, path, category, sidebarContext, collectionNode]);
|
||||
|
||||
return reverse
|
||||
? depth !== undefined
|
||||
? output.slice(-depth)
|
||||
: output
|
||||
: depth !== undefined
|
||||
? output.slice(0, depth)
|
||||
: output;
|
||||
}, [t, path, category, sidebarContext, collectionNode, reverse, depth]);
|
||||
|
||||
if (!collections.isLoaded) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (onlyText === true) {
|
||||
if (onlyText) {
|
||||
if (depth === 0) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
const slicedPath = reverse
|
||||
? path.slice(depth && -depth)
|
||||
: path.slice(0, depth);
|
||||
|
||||
const showCollection =
|
||||
collection &&
|
||||
(!reverse || depth === undefined || slicedPath.length < depth);
|
||||
|
||||
return (
|
||||
<>
|
||||
{collection?.name}
|
||||
{path.slice(0, -1).map((node: NavigationNode) => (
|
||||
{showCollection && collection.name}
|
||||
{slicedPath.map((node: NavigationNode, index: number) => (
|
||||
<React.Fragment key={node.id}>
|
||||
<SmallSlash />
|
||||
{showCollection && <SmallSlash />}
|
||||
{node.title || t("Untitled")}
|
||||
{!showCollection && index !== slicedPath.length - 1 && (
|
||||
<SmallSlash />
|
||||
)}
|
||||
</React.Fragment>
|
||||
))}
|
||||
</>
|
||||
|
||||
@@ -46,10 +46,10 @@ function DocumentViews({ document, isOpen }: Props) {
|
||||
return (
|
||||
<>
|
||||
{isOpen && (
|
||||
<PaginatedList
|
||||
<PaginatedList<User>
|
||||
aria-label={t("Viewers")}
|
||||
items={users}
|
||||
renderItem={(model: User) => {
|
||||
renderItem={(model) => {
|
||||
const view = documentViews.find((v) => v.userId === model.id);
|
||||
const isPresent = presentIds.includes(model.id);
|
||||
const isEditing = editingIds.includes(model.id);
|
||||
|
||||
@@ -56,7 +56,7 @@ const FilterOptions = ({
|
||||
: "";
|
||||
|
||||
const renderItem = React.useCallback(
|
||||
(option: TFilterOption) => (
|
||||
(option) => (
|
||||
<MenuItem
|
||||
key={option.key}
|
||||
onClick={() => {
|
||||
@@ -174,7 +174,7 @@ const FilterOptions = ({
|
||||
)}
|
||||
</MenuButton>
|
||||
<ContextMenu aria-label={defaultLabel} minHeight={66} {...menu}>
|
||||
<PaginatedList
|
||||
<PaginatedList<TFilterOption>
|
||||
listRef={listRef}
|
||||
options={{ query, ...fetchQueryOptions }}
|
||||
items={filteredOptions}
|
||||
|
||||
@@ -2,7 +2,6 @@ import { transparentize } from "polished";
|
||||
import { Link } from "react-router-dom";
|
||||
import styled, { css } from "styled-components";
|
||||
import { s } from "@shared/styles";
|
||||
import { getTextColor } from "@shared/utils/color";
|
||||
import Text from "~/components/Text";
|
||||
|
||||
export const CARD_MARGIN = 10;
|
||||
@@ -33,7 +32,7 @@ export const Title = styled(Text).attrs({ as: "h2", size: "large" })`
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-start;
|
||||
gap: 4px;
|
||||
gap: 6px;
|
||||
`;
|
||||
|
||||
export const Info = styled(StyledText).attrs(() => ({
|
||||
@@ -60,15 +59,27 @@ export const Thumbnail = styled.img`
|
||||
export const Label = styled(Text).attrs({ size: "xsmall", weight: "bold" })<{
|
||||
color?: string;
|
||||
}>`
|
||||
background-color: ${(props) =>
|
||||
props.color ?? props.theme.backgroundSecondary};
|
||||
color: ${(props) =>
|
||||
props.color ? getTextColor(props.color) : props.theme.text};
|
||||
border: 1px solid ${(props) => props.theme.divider};
|
||||
width: fit-content;
|
||||
border-radius: 2em;
|
||||
padding: 0 8px;
|
||||
padding: 1px 8px 1px 20px;
|
||||
margin-right: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
background-color: ${(props) =>
|
||||
props.color || props.theme.backgroundSecondary};
|
||||
}
|
||||
`;
|
||||
|
||||
export const CardContent = styled.div`
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
import * as React from "react";
|
||||
import { Trans } from "react-i18next";
|
||||
import styled from "styled-components";
|
||||
import { Backticks } from "@shared/components/Backticks";
|
||||
import { IssueStatusIcon } from "@shared/components/IssueStatusIcon";
|
||||
import { UnfurlResourceType, UnfurlResponse } from "@shared/types";
|
||||
import {
|
||||
IntegrationService,
|
||||
UnfurlResourceType,
|
||||
UnfurlResponse,
|
||||
} from "@shared/types";
|
||||
import { Avatar } from "~/components/Avatar";
|
||||
import Flex from "~/components/Flex";
|
||||
import Text from "../Text";
|
||||
@@ -23,6 +29,11 @@ const HoverPreviewIssue = React.forwardRef(function _HoverPreviewIssue(
|
||||
ref: React.Ref<HTMLDivElement>
|
||||
) {
|
||||
const authorName = author.name;
|
||||
const urlObj = new URL(url);
|
||||
const service =
|
||||
urlObj.hostname === "github.com"
|
||||
? IntegrationService.GitHub
|
||||
: IntegrationService.Linear;
|
||||
|
||||
return (
|
||||
<Preview as="a" href={url} target="_blank" rel="noopener noreferrer">
|
||||
@@ -31,13 +42,18 @@ const HoverPreviewIssue = React.forwardRef(function _HoverPreviewIssue(
|
||||
<CardContent>
|
||||
<Flex gap={2} column>
|
||||
<Title>
|
||||
<IssueStatusIcon status={state.name} color={state.color} />
|
||||
<StyledIssueStatusIcon
|
||||
service={service}
|
||||
state={state}
|
||||
size={18}
|
||||
/>
|
||||
<span>
|
||||
{title} <Text type="tertiary">{id}</Text>
|
||||
<Backticks content={title} />
|
||||
<Text type="tertiary">{id}</Text>
|
||||
</span>
|
||||
</Title>
|
||||
<Flex align="center" gap={4}>
|
||||
<Avatar src={author.avatarUrl} />
|
||||
<Flex align="center" gap={6}>
|
||||
<Avatar src={author.avatarUrl} size={18} />
|
||||
<Info>
|
||||
<Trans>
|
||||
{{ authorName }} created{" "}
|
||||
@@ -62,4 +78,8 @@ const HoverPreviewIssue = React.forwardRef(function _HoverPreviewIssue(
|
||||
);
|
||||
});
|
||||
|
||||
const StyledIssueStatusIcon = styled(IssueStatusIcon)`
|
||||
margin-top: 2px;
|
||||
`;
|
||||
|
||||
export default HoverPreviewIssue;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import * as React from "react";
|
||||
import { Trans } from "react-i18next";
|
||||
import styled from "styled-components";
|
||||
import { Backticks } from "@shared/components/Backticks";
|
||||
import { PullRequestIcon } from "@shared/components/PullRequestIcon";
|
||||
import { UnfurlResourceType, UnfurlResponse } from "@shared/types";
|
||||
import { Avatar } from "~/components/Avatar";
|
||||
@@ -31,13 +33,14 @@ const HoverPreviewPullRequest = React.forwardRef(
|
||||
<CardContent>
|
||||
<Flex gap={2} column>
|
||||
<Title>
|
||||
<PullRequestIcon status={state.name} color={state.color} />
|
||||
<StyledPullRequestIcon size={18} state={state} />
|
||||
<span>
|
||||
{title} <Text type="tertiary">{id}</Text>
|
||||
<Backticks content={title} />
|
||||
<Text type="tertiary">{id}</Text>
|
||||
</span>
|
||||
</Title>
|
||||
<Flex align="center" gap={4}>
|
||||
<Avatar src={author.avatarUrl} />
|
||||
<Flex align="center" gap={6}>
|
||||
<Avatar src={author.avatarUrl} size={18} />
|
||||
<Info>
|
||||
<Trans>
|
||||
{{ authorName }} opened{" "}
|
||||
@@ -55,4 +58,8 @@ const HoverPreviewPullRequest = React.forwardRef(
|
||||
}
|
||||
);
|
||||
|
||||
const StyledPullRequestIcon = styled(PullRequestIcon)`
|
||||
margin-top: 2px;
|
||||
`;
|
||||
|
||||
export default HoverPreviewPullRequest;
|
||||
|
||||
@@ -79,11 +79,11 @@ function Notifications(
|
||||
</Header>
|
||||
<React.Suspense fallback={null}>
|
||||
<Scrollable ref={ref} flex topShadow>
|
||||
<PaginatedList
|
||||
<PaginatedList<Notification>
|
||||
fetch={notifications.fetchPage}
|
||||
options={{ archived: false }}
|
||||
items={isOpen ? notifications.orderedData : undefined}
|
||||
renderItem={(item: Notification) => (
|
||||
renderItem={(item) => (
|
||||
<NotificationListItem
|
||||
key={item.id}
|
||||
notification={item}
|
||||
|
||||
@@ -10,7 +10,7 @@ type Props = {
|
||||
fetch: (options: any) => Promise<Document[] | undefined>;
|
||||
options?: Record<string, any>;
|
||||
heading?: React.ReactNode;
|
||||
empty?: React.ReactNode;
|
||||
empty?: JSX.Element;
|
||||
showParentDocuments?: boolean;
|
||||
showCollection?: boolean;
|
||||
showPublished?: boolean;
|
||||
@@ -34,7 +34,7 @@ const PaginatedDocumentList = React.memo<Props>(function PaginatedDocumentList({
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<PaginatedList
|
||||
<PaginatedList<Document>
|
||||
aria-label={t("Documents")}
|
||||
items={documents}
|
||||
empty={empty}
|
||||
@@ -42,7 +42,7 @@ const PaginatedDocumentList = React.memo<Props>(function PaginatedDocumentList({
|
||||
fetch={fetch}
|
||||
options={options}
|
||||
renderError={(props) => <Error {...props} />}
|
||||
renderItem={(item: Document, _index) => (
|
||||
renderItem={(item, _index) => (
|
||||
<DocumentListItem
|
||||
key={item.id}
|
||||
document={item}
|
||||
|
||||
@@ -10,7 +10,7 @@ type Props = {
|
||||
fetch: (options: Record<string, any> | undefined) => Promise<Event[]>;
|
||||
options?: Record<string, any>;
|
||||
heading?: React.ReactNode;
|
||||
empty?: React.ReactNode;
|
||||
empty?: JSX.Element;
|
||||
};
|
||||
|
||||
const PaginatedEventList = React.memo<Props>(function PaginatedEventList({
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import "../stores";
|
||||
import { render } from "@testing-library/react";
|
||||
import { TFunction } from "i18next";
|
||||
import { Provider } from "mobx-react";
|
||||
import * as React from "react";
|
||||
import { getI18n } from "react-i18next";
|
||||
import { Pagination } from "@shared/constants";
|
||||
import { Component as PaginatedList } from "./PaginatedList";
|
||||
import PaginatedList from "./PaginatedList";
|
||||
|
||||
describe("PaginatedList", () => {
|
||||
const i18n = getI18n();
|
||||
const authStore = {};
|
||||
|
||||
const props = {
|
||||
i18n,
|
||||
@@ -17,19 +19,23 @@ describe("PaginatedList", () => {
|
||||
|
||||
it("with no items renders nothing", () => {
|
||||
const result = render(
|
||||
<PaginatedList items={[]} renderItem={render} {...props} />
|
||||
<Provider auth={authStore}>
|
||||
<PaginatedList items={[]} renderItem={render} {...props} />
|
||||
</Provider>
|
||||
);
|
||||
expect(result.container.innerHTML).toEqual("");
|
||||
});
|
||||
|
||||
it("with no items renders empty prop", async () => {
|
||||
const result = render(
|
||||
<PaginatedList
|
||||
items={[]}
|
||||
empty={<p>Sorry, no results</p>}
|
||||
renderItem={render}
|
||||
{...props}
|
||||
/>
|
||||
<Provider auth={authStore}>
|
||||
<PaginatedList
|
||||
items={[]}
|
||||
empty={<p>Sorry, no results</p>}
|
||||
renderItem={render}
|
||||
{...props}
|
||||
/>{" "}
|
||||
</Provider>
|
||||
);
|
||||
await expect(
|
||||
result.findAllByText("Sorry, no results")
|
||||
@@ -42,13 +48,15 @@ describe("PaginatedList", () => {
|
||||
id: "one",
|
||||
};
|
||||
render(
|
||||
<PaginatedList
|
||||
items={[]}
|
||||
fetch={fetch}
|
||||
options={options}
|
||||
renderItem={render}
|
||||
{...props}
|
||||
/>
|
||||
<Provider auth={authStore}>
|
||||
<PaginatedList
|
||||
items={[]}
|
||||
fetch={fetch}
|
||||
options={options}
|
||||
renderItem={render}
|
||||
{...props}
|
||||
/>{" "}
|
||||
</Provider>
|
||||
);
|
||||
expect(fetch).toHaveBeenCalledWith({
|
||||
...options,
|
||||
|
||||
+244
-194
@@ -1,265 +1,315 @@
|
||||
import isEqual from "lodash/isEqual";
|
||||
import { observable, action, computed } from "mobx";
|
||||
import { observer } from "mobx-react";
|
||||
import * as React from "react";
|
||||
import { withTranslation, WithTranslation } from "react-i18next";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { Waypoint } from "react-waypoint";
|
||||
import { Pagination } from "@shared/constants";
|
||||
import RootStore from "~/stores/RootStore";
|
||||
import ArrowKeyNavigation from "~/components/ArrowKeyNavigation";
|
||||
import DelayedMount from "~/components/DelayedMount";
|
||||
import PlaceholderList from "~/components/List/Placeholder";
|
||||
import withStores from "~/components/withStores";
|
||||
import useCurrentUser from "~/hooks/useCurrentUser";
|
||||
import usePrevious from "~/hooks/usePrevious";
|
||||
import { dateToHeading } from "~/utils/date";
|
||||
|
||||
/**
|
||||
* Base interface for items that can be paginated
|
||||
* @interface PaginatedItem
|
||||
*/
|
||||
export interface PaginatedItem {
|
||||
/** Unique identifier for the item */
|
||||
id?: string;
|
||||
/** Last update timestamp of the item */
|
||||
updatedAt?: string;
|
||||
/** Creation timestamp of the item */
|
||||
createdAt?: string;
|
||||
}
|
||||
|
||||
type Props<T> = WithTranslation &
|
||||
RootStore &
|
||||
React.HTMLAttributes<HTMLDivElement> & {
|
||||
fetch?: (
|
||||
options: Record<string, any> | undefined
|
||||
) => Promise<T[] | undefined> | undefined;
|
||||
options?: Record<string, any>;
|
||||
heading?: React.ReactNode;
|
||||
empty?: React.ReactNode;
|
||||
loading?: React.ReactElement;
|
||||
items?: T[];
|
||||
className?: string;
|
||||
renderItem: (item: T, index: number) => React.ReactNode;
|
||||
renderError?: (options: {
|
||||
error: Error;
|
||||
retry: () => void;
|
||||
}) => React.ReactNode;
|
||||
renderHeading?: (name: React.ReactElement<any> | string) => React.ReactNode;
|
||||
onEscape?: (ev: React.KeyboardEvent<HTMLDivElement>) => void;
|
||||
listRef?: React.RefObject<HTMLDivElement>;
|
||||
};
|
||||
/**
|
||||
* Props for the PaginatedList component
|
||||
* @template T Type of items in the list, must extend PaginatedItem
|
||||
*/
|
||||
interface Props<T extends PaginatedItem>
|
||||
extends React.HTMLAttributes<HTMLDivElement> {
|
||||
/**
|
||||
* Function to fetch paginated data. Should return a promise resolving to an array of items
|
||||
* @param options Pagination and other query options
|
||||
*/
|
||||
fetch?: (
|
||||
options: Record<string, any> | undefined
|
||||
) => Promise<unknown[] | undefined> | undefined;
|
||||
|
||||
@observer
|
||||
class PaginatedList<T extends PaginatedItem> extends React.PureComponent<
|
||||
Props<T>
|
||||
> {
|
||||
@observable
|
||||
error?: Error;
|
||||
/** Additional options to pass to the fetch function */
|
||||
options?: Record<string, any>;
|
||||
|
||||
@observable
|
||||
isFetchingMore = false;
|
||||
/** Optional header content to display above the list */
|
||||
heading?: React.ReactNode;
|
||||
|
||||
@observable
|
||||
isFetching = false;
|
||||
/** Content to display when the list is empty */
|
||||
empty?: JSX.Element | null;
|
||||
|
||||
@observable
|
||||
isFetchingInitial = !this.props.items?.length;
|
||||
/** Optional loading state content */
|
||||
loading?: JSX.Element | null;
|
||||
|
||||
@observable
|
||||
fetchCounter = 0;
|
||||
/** Array of items to display in the list */
|
||||
items?: T[];
|
||||
|
||||
@observable
|
||||
renderCount = Pagination.defaultLimit;
|
||||
/** CSS class name to apply to the list container */
|
||||
className?: string;
|
||||
|
||||
@observable
|
||||
offset = 0;
|
||||
/**
|
||||
* Function to render each individual item in the list
|
||||
* @param item The item to render
|
||||
* @param index The index of the item in the list
|
||||
*/
|
||||
renderItem: (item: T, index: number) => React.ReactNode;
|
||||
|
||||
@observable
|
||||
allowLoadMore = true;
|
||||
/**
|
||||
* Function to render error state
|
||||
* @param options Object containing error details and retry function
|
||||
*/
|
||||
renderError?: (options: {
|
||||
/** Details of the error */
|
||||
error: Error;
|
||||
/** Function to retry the fetch operation */
|
||||
retry: () => void;
|
||||
}) => JSX.Element;
|
||||
|
||||
componentDidMount() {
|
||||
void this.fetchResults();
|
||||
}
|
||||
/**
|
||||
* Function to render section headings (typically date-based)
|
||||
* @param name The heading text or element to render
|
||||
*/
|
||||
renderHeading?: (name: React.ReactElement<any> | string) => React.ReactNode;
|
||||
|
||||
componentDidUpdate(prevProps: Props<T>) {
|
||||
if (
|
||||
prevProps.fetch !== this.props.fetch ||
|
||||
!isEqual(prevProps.options, this.props.options)
|
||||
) {
|
||||
this.reset();
|
||||
void this.fetchResults();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Handler for escape key press
|
||||
* @param ev Keyboard event object
|
||||
*/
|
||||
onEscape?: (ev: React.KeyboardEvent<HTMLDivElement>) => void;
|
||||
|
||||
reset = () => {
|
||||
this.offset = 0;
|
||||
this.allowLoadMore = true;
|
||||
this.renderCount = Pagination.defaultLimit;
|
||||
this.isFetching = false;
|
||||
this.isFetchingInitial = false;
|
||||
this.isFetchingMore = false;
|
||||
};
|
||||
/** Reference to the list container element */
|
||||
listRef?: React.RefObject<HTMLDivElement>;
|
||||
}
|
||||
|
||||
@action
|
||||
fetchResults = async () => {
|
||||
if (!this.props.fetch) {
|
||||
/**
|
||||
* A reusable component that renders a paginated list with infinite scrolling
|
||||
* and optional date-based section headings.
|
||||
*
|
||||
* @template T Type of the list items, must extend PaginatedItem
|
||||
*/
|
||||
const PaginatedList = <T extends PaginatedItem>({
|
||||
fetch,
|
||||
options,
|
||||
heading,
|
||||
empty = null,
|
||||
loading = null,
|
||||
items = [],
|
||||
className,
|
||||
renderItem,
|
||||
renderError,
|
||||
renderHeading,
|
||||
onEscape,
|
||||
listRef,
|
||||
...rest
|
||||
}: Props<T>): JSX.Element | null => {
|
||||
const user = useCurrentUser({ rejectOnEmpty: false });
|
||||
const { t } = useTranslation();
|
||||
|
||||
const [error, setError] = React.useState<Error | undefined>();
|
||||
const [isFetchingMore, setIsFetchingMore] = React.useState(false);
|
||||
const [isFetching, setIsFetching] = React.useState(false);
|
||||
const [isFetchingInitial, setIsFetchingInitial] = React.useState(
|
||||
!items?.length
|
||||
);
|
||||
const [fetchCounter, setFetchCounter] = React.useState(0);
|
||||
const [renderCount, setRenderCount] = React.useState(Pagination.defaultLimit);
|
||||
const [offset, setOffset] = React.useState(0);
|
||||
const [allowLoadMore, setAllowLoadMore] = React.useState(true);
|
||||
|
||||
const reset = React.useCallback(() => {
|
||||
setOffset(0);
|
||||
setAllowLoadMore(true);
|
||||
setRenderCount(Pagination.defaultLimit);
|
||||
setIsFetching(false);
|
||||
setIsFetchingInitial(false);
|
||||
setIsFetchingMore(false);
|
||||
}, []);
|
||||
|
||||
const fetchResults = React.useCallback(async () => {
|
||||
if (!fetch) {
|
||||
return;
|
||||
}
|
||||
this.isFetching = true;
|
||||
const counter = ++this.fetchCounter;
|
||||
const limit = this.props.options?.limit ?? Pagination.defaultLimit;
|
||||
this.error = undefined;
|
||||
|
||||
setIsFetching(true);
|
||||
const counter = fetchCounter + 1;
|
||||
setFetchCounter(counter);
|
||||
const limit = options?.limit ?? Pagination.defaultLimit;
|
||||
setError(undefined);
|
||||
|
||||
try {
|
||||
const results = await this.props.fetch({
|
||||
const results = await fetch({
|
||||
limit,
|
||||
offset: this.offset,
|
||||
...this.props.options,
|
||||
offset,
|
||||
...options,
|
||||
});
|
||||
|
||||
if (this.offset !== 0) {
|
||||
this.renderCount += limit;
|
||||
if (offset !== 0) {
|
||||
setRenderCount((prevCount) => prevCount + limit);
|
||||
}
|
||||
|
||||
if (results && (results.length === 0 || results.length < limit)) {
|
||||
this.allowLoadMore = false;
|
||||
setAllowLoadMore(false);
|
||||
} else {
|
||||
this.offset += limit;
|
||||
setOffset((prevOffset) => prevOffset + limit);
|
||||
}
|
||||
|
||||
this.isFetchingInitial = false;
|
||||
setIsFetchingInitial(false);
|
||||
} catch (err) {
|
||||
this.error = err;
|
||||
setError(err);
|
||||
} finally {
|
||||
// only the most recent fetch should end the loading state
|
||||
if (counter >= this.fetchCounter) {
|
||||
this.isFetching = false;
|
||||
this.isFetchingMore = false;
|
||||
if (counter >= fetchCounter) {
|
||||
setIsFetching(false);
|
||||
setIsFetchingMore(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
}, [fetch, fetchCounter, offset, options]);
|
||||
|
||||
@action
|
||||
loadMoreResults = async () => {
|
||||
// Don't paginate if there aren't more results or we’re currently fetching
|
||||
if (!this.allowLoadMore || this.isFetching) {
|
||||
const loadMoreResults = React.useCallback(async () => {
|
||||
// Don't paginate if there aren't more results or we're currently fetching
|
||||
if (!allowLoadMore || isFetching) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If there are already cached results that we haven't yet rendered because
|
||||
// of lazy rendering then show another page.
|
||||
const leftToRender = (this.props.items?.length ?? 0) - this.renderCount;
|
||||
const leftToRender = (items?.length ?? 0) - renderCount;
|
||||
|
||||
if (leftToRender > 0) {
|
||||
this.renderCount += Pagination.defaultLimit;
|
||||
setRenderCount((prevCount) => prevCount + Pagination.defaultLimit);
|
||||
}
|
||||
|
||||
// If there are less than a pages results in the cache go ahead and fetch
|
||||
// another page from the server
|
||||
if (leftToRender <= Pagination.defaultLimit) {
|
||||
this.isFetchingMore = true;
|
||||
await this.fetchResults();
|
||||
setIsFetchingMore(true);
|
||||
await fetchResults();
|
||||
}
|
||||
};
|
||||
}, [allowLoadMore, isFetching, items?.length, renderCount, fetchResults]);
|
||||
|
||||
@computed
|
||||
get itemsToRender() {
|
||||
return this.props.items?.slice(0, this.renderCount) ?? [];
|
||||
}
|
||||
const prevFetch = usePrevious(fetch);
|
||||
const prevOptions = usePrevious(options);
|
||||
|
||||
render() {
|
||||
const {
|
||||
items = [],
|
||||
heading,
|
||||
auth,
|
||||
empty = null,
|
||||
renderHeading,
|
||||
renderError,
|
||||
onEscape,
|
||||
} = this.props;
|
||||
// Initial fetch on mount
|
||||
React.useEffect(() => {
|
||||
if (fetch) {
|
||||
void fetchResults();
|
||||
}
|
||||
}, [fetch]);
|
||||
|
||||
const showLoading =
|
||||
this.isFetching &&
|
||||
!this.isFetchingMore &&
|
||||
(!items?.length || (this.fetchCounter <= 1 && this.isFetchingInitial));
|
||||
|
||||
if (showLoading) {
|
||||
return (
|
||||
this.props.loading || (
|
||||
<DelayedMount>
|
||||
<div className={this.props.className}>
|
||||
<PlaceholderList count={5} />
|
||||
</div>
|
||||
</DelayedMount>
|
||||
)
|
||||
);
|
||||
// Handle updates to fetch or options
|
||||
React.useEffect(() => {
|
||||
if (!prevFetch || !prevOptions) {
|
||||
return; // Skip on initial mount since it's handled by the above effect
|
||||
}
|
||||
|
||||
if (items?.length === 0) {
|
||||
if (this.error && renderError) {
|
||||
return renderError({ error: this.error, retry: this.fetchResults });
|
||||
}
|
||||
|
||||
return empty;
|
||||
if (prevFetch !== fetch || !isEqual(prevOptions, options)) {
|
||||
reset();
|
||||
void fetchResults();
|
||||
}
|
||||
}, [fetch, options, reset, fetchResults, prevFetch, prevOptions]);
|
||||
|
||||
// Computed property equivalent
|
||||
const itemsToRender = React.useMemo(
|
||||
() => items?.slice(0, renderCount) ?? [],
|
||||
[items, renderCount]
|
||||
);
|
||||
|
||||
const showLoading =
|
||||
isFetching &&
|
||||
!isFetchingMore &&
|
||||
(!items?.length || (fetchCounter <= 1 && isFetchingInitial));
|
||||
|
||||
if (showLoading) {
|
||||
return (
|
||||
<>
|
||||
{heading}
|
||||
<ArrowKeyNavigation
|
||||
aria-label={this.props["aria-label"]}
|
||||
onEscape={onEscape}
|
||||
className={this.props.className}
|
||||
items={this.itemsToRender}
|
||||
ref={this.props.listRef}
|
||||
>
|
||||
{() => {
|
||||
let previousHeading = "";
|
||||
return this.itemsToRender.map((item, index) => {
|
||||
const children = this.props.renderItem(item, index);
|
||||
|
||||
// If there is no renderHeading method passed then no date
|
||||
// headings are rendered
|
||||
if (!renderHeading) {
|
||||
return children;
|
||||
}
|
||||
|
||||
// Our models have standard date fields, updatedAt > createdAt.
|
||||
// Get what a heading would look like for this item
|
||||
const currentDate =
|
||||
"updatedAt" in item && item.updatedAt
|
||||
? item.updatedAt
|
||||
: "createdAt" in item && item.createdAt
|
||||
? item.createdAt
|
||||
: previousHeading;
|
||||
const currentHeading = dateToHeading(
|
||||
currentDate,
|
||||
this.props.t,
|
||||
auth.user?.language
|
||||
);
|
||||
|
||||
// If the heading is different to any previous heading then we
|
||||
// should render it, otherwise the item can go under the previous
|
||||
// heading
|
||||
if (
|
||||
children &&
|
||||
(!previousHeading || currentHeading !== previousHeading)
|
||||
) {
|
||||
previousHeading = currentHeading;
|
||||
return (
|
||||
<React.Fragment
|
||||
key={"id" in item && item.id ? item.id : index}
|
||||
>
|
||||
{renderHeading(currentHeading)}
|
||||
{children}
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
|
||||
return children;
|
||||
});
|
||||
}}
|
||||
</ArrowKeyNavigation>
|
||||
{this.allowLoadMore && (
|
||||
<div style={{ height: "1px" }}>
|
||||
<Waypoint key={this.renderCount} onEnter={this.loadMoreResults} />
|
||||
loading || (
|
||||
<DelayedMount>
|
||||
<div className={className}>
|
||||
<PlaceholderList count={5} />
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
</DelayedMount>
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export const Component = PaginatedList;
|
||||
if (items?.length === 0) {
|
||||
if (error && renderError) {
|
||||
return renderError({ error, retry: fetchResults });
|
||||
}
|
||||
|
||||
export default withTranslation()(withStores(PaginatedList));
|
||||
return empty;
|
||||
}
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
{heading}
|
||||
<ArrowKeyNavigation
|
||||
aria-label={rest["aria-label"]}
|
||||
onEscape={onEscape}
|
||||
className={className}
|
||||
items={itemsToRender}
|
||||
ref={listRef}
|
||||
>
|
||||
{() => {
|
||||
let previousHeading = "";
|
||||
return itemsToRender.map((item, index) => {
|
||||
const children = renderItem(item, index);
|
||||
|
||||
// If there is no renderHeading method passed then no date
|
||||
// headings are rendered
|
||||
if (!renderHeading) {
|
||||
return children;
|
||||
}
|
||||
|
||||
// Our models have standard date fields, updatedAt > createdAt.
|
||||
// Get what a heading would look like for this item
|
||||
const currentDate =
|
||||
"updatedAt" in item && item.updatedAt
|
||||
? item.updatedAt
|
||||
: "createdAt" in item && item.createdAt
|
||||
? item.createdAt
|
||||
: previousHeading;
|
||||
const currentHeading = dateToHeading(
|
||||
currentDate,
|
||||
t,
|
||||
user?.language
|
||||
);
|
||||
|
||||
// If the heading is different to any previous heading then we
|
||||
// should render it, otherwise the item can go under the previous
|
||||
// heading
|
||||
if (
|
||||
children &&
|
||||
(!previousHeading || currentHeading !== previousHeading)
|
||||
) {
|
||||
previousHeading = currentHeading;
|
||||
return (
|
||||
<React.Fragment key={"id" in item && item.id ? item.id : index}>
|
||||
{renderHeading(currentHeading)}
|
||||
{children}
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
|
||||
return children;
|
||||
});
|
||||
}}
|
||||
</ArrowKeyNavigation>
|
||||
{allowLoadMore && (
|
||||
<div style={{ height: "1px" }}>
|
||||
<Waypoint key={renderCount} onEnter={loadMoreResults} />
|
||||
</div>
|
||||
)}
|
||||
</React.Fragment>
|
||||
);
|
||||
};
|
||||
|
||||
export default PaginatedList;
|
||||
|
||||
@@ -200,7 +200,7 @@ function SearchPopover({ shareId, className }: Props) {
|
||||
style={{ zIndex: depths.sidebar + 1 }}
|
||||
shrink
|
||||
>
|
||||
<PaginatedList
|
||||
<PaginatedList<SearchResult>
|
||||
options={{ query, snippetMinWords: 10, snippetMaxWords: 11 }}
|
||||
items={cachedSearchResults}
|
||||
fetch={performSearch}
|
||||
@@ -209,7 +209,7 @@ function SearchPopover({ shareId, className }: Props) {
|
||||
<NoResults>{t("No results for {{query}}", { query })}</NoResults>
|
||||
}
|
||||
loading={<PlaceholderList count={3} header={{ height: 20 }} />}
|
||||
renderItem={(item: SearchResult, index) => (
|
||||
renderItem={(item, index) => (
|
||||
<SearchListItem
|
||||
key={item.document.id}
|
||||
shareId={shareId}
|
||||
|
||||
@@ -82,12 +82,12 @@ function ArchiveLink() {
|
||||
</div>
|
||||
{expanded === true ? (
|
||||
<Relative>
|
||||
<PaginatedList
|
||||
<PaginatedList<Collection>
|
||||
aria-label={t("Archived collections")}
|
||||
items={collections.archived}
|
||||
loading={<PlaceholderCollections />}
|
||||
renderError={(props) => <StyledError {...props} />}
|
||||
renderItem={(item: Collection) => (
|
||||
renderItem={(item) => (
|
||||
<ArchivedCollectionLink
|
||||
key={item.id}
|
||||
depth={1}
|
||||
|
||||
@@ -54,7 +54,7 @@ function Collections() {
|
||||
<Flex column>
|
||||
<Header id="collections" title={t("Collections")}>
|
||||
<Relative>
|
||||
<PaginatedList
|
||||
<PaginatedList<Collection>
|
||||
options={params}
|
||||
aria-label={t("Collections")}
|
||||
items={collections.allActive}
|
||||
@@ -69,7 +69,7 @@ function Collections() {
|
||||
) : undefined
|
||||
}
|
||||
renderError={(props) => <StyledError {...props} />}
|
||||
renderItem={(item: Collection, index) => (
|
||||
renderItem={(item, index) => (
|
||||
<DraggableCollectionLink
|
||||
key={item.id}
|
||||
collection={item}
|
||||
|
||||
@@ -335,6 +335,7 @@ const TR = styled.div<{ $columns: string }>`
|
||||
grid-template-columns: ${({ $columns }) => `${$columns}`};
|
||||
align-items: center;
|
||||
border-bottom: 1px solid ${s("divider")};
|
||||
overflow: hidden;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: 0;
|
||||
@@ -357,7 +358,8 @@ const TD = styled.span`
|
||||
padding: 10px 6px;
|
||||
font-size: 14px;
|
||||
text-wrap: wrap;
|
||||
word-break: break-word;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:first-child {
|
||||
font-size: 15px;
|
||||
|
||||
@@ -10,6 +10,7 @@ import styled from "styled-components";
|
||||
import Icon from "@shared/components/Icon";
|
||||
import { hideScrollbars, s } from "@shared/styles";
|
||||
import { isInternalUrl, sanitizeUrl } from "@shared/utils/urls";
|
||||
import DocumentBreadcrumb from "~/components/DocumentBreadcrumb";
|
||||
import Flex from "~/components/Flex";
|
||||
import { ResizingHeightContainer } from "~/components/ResizingHeightContainer";
|
||||
import Scrollable from "~/components/Scrollable";
|
||||
@@ -253,7 +254,14 @@ const LinkEditor: React.FC<Props> = ({
|
||||
onPointerMove={() => setSelectedIndex(index)}
|
||||
selected={index === selectedIndex}
|
||||
key={doc.id}
|
||||
subtitle={doc.collection?.name}
|
||||
subtitle={
|
||||
<DocumentBreadcrumb
|
||||
document={doc}
|
||||
onlyText
|
||||
reverse
|
||||
maxDepth={2}
|
||||
/>
|
||||
}
|
||||
title={doc.title}
|
||||
icon={
|
||||
doc.icon ? (
|
||||
|
||||
@@ -11,6 +11,7 @@ import { MenuItem } from "@shared/editor/types";
|
||||
import { MentionType } from "@shared/types";
|
||||
import parseDocumentSlug from "@shared/utils/parseDocumentSlug";
|
||||
import { Avatar, AvatarSize } from "~/components/Avatar";
|
||||
import DocumentBreadcrumb from "~/components/DocumentBreadcrumb";
|
||||
import Flex from "~/components/Flex";
|
||||
import {
|
||||
DocumentsSection,
|
||||
@@ -57,7 +58,7 @@ function MentionMenu({ search, isActive, ...rest }: Props) {
|
||||
res.data.documents.map(documents.add);
|
||||
res.data.users.map(users.add);
|
||||
res.data.collections.map(collections.add);
|
||||
}, [search, documents, users])
|
||||
}, [search, documents, users, collections])
|
||||
);
|
||||
|
||||
React.useEffect(() => {
|
||||
@@ -68,7 +69,7 @@ function MentionMenu({ search, isActive, ...rest }: Props) {
|
||||
|
||||
React.useEffect(() => {
|
||||
if (actorId && !loading) {
|
||||
const items = users
|
||||
const items: MentionItem[] = users
|
||||
.findByQuery(search, { maxResults: maxResultsInSection })
|
||||
.map(
|
||||
(user) =>
|
||||
@@ -112,7 +113,14 @@ function MentionMenu({ search, isActive, ...rest }: Props) {
|
||||
<DocumentIcon />
|
||||
),
|
||||
title: doc.title,
|
||||
subtitle: doc.collection?.name,
|
||||
subtitle: (
|
||||
<DocumentBreadcrumb
|
||||
document={doc}
|
||||
onlyText
|
||||
reverse
|
||||
maxDepth={2}
|
||||
/>
|
||||
),
|
||||
section: DocumentsSection,
|
||||
appendSpace: true,
|
||||
attrs: {
|
||||
|
||||
@@ -144,10 +144,10 @@ function Insights() {
|
||||
small
|
||||
/>
|
||||
)}
|
||||
<PaginatedList
|
||||
<PaginatedList<User>
|
||||
aria-label={t("Contributors")}
|
||||
items={document.collaborators}
|
||||
renderItem={(model: User) => (
|
||||
renderItem={(model) => (
|
||||
<ListItem
|
||||
key={model.id}
|
||||
title={model.name}
|
||||
|
||||
@@ -39,7 +39,10 @@ export function LoginDialog() {
|
||||
maxLength={255}
|
||||
autoComplete="off"
|
||||
placeholder={t("subdomain")}
|
||||
{...register("subdomain", { required: true, pattern: /^[a-z\d-]+$/ })}
|
||||
{...register("subdomain", {
|
||||
required: true,
|
||||
pattern: /^[a-z\d-]{1,63}$/,
|
||||
})}
|
||||
>
|
||||
<Domain>.getoutline.com</Domain>
|
||||
</Input>
|
||||
|
||||
@@ -3,6 +3,15 @@ import { parseDomain } from "@shared/utils/domains";
|
||||
import env from "~/env";
|
||||
import Desktop from "~/utils/Desktop";
|
||||
|
||||
function validateAndEncodeSubdomain(subdomain: string): string {
|
||||
const encodedSubdomain = encodeURIComponent(subdomain);
|
||||
const urlPattern = /^[a-z\d-]{1,63}$/;
|
||||
if (!urlPattern.test(encodedSubdomain)) {
|
||||
throw new Error("Invalid subdomain");
|
||||
}
|
||||
return `https://${encodedSubdomain}.getoutline.com`;
|
||||
}
|
||||
|
||||
/**
|
||||
* If we're on a custom domain or a subdomain then the auth must point to the
|
||||
* apex (env.URL) for authentication so that the state cookie can be set and read.
|
||||
@@ -36,7 +45,7 @@ export async function navigateToSubdomain(subdomain: string) {
|
||||
.toLowerCase()
|
||||
.trim()
|
||||
.replace(/^https?:\/\//, "");
|
||||
const host = `https://${normalizedSubdomain}.getoutline.com`;
|
||||
const host = validateAndEncodeSubdomain(normalizedSubdomain);
|
||||
await Desktop.bridge?.addCustomHost(host);
|
||||
window.location.href = host;
|
||||
}
|
||||
|
||||
@@ -58,11 +58,11 @@ function ApiKeys() {
|
||||
}}
|
||||
/>
|
||||
</Text>
|
||||
<PaginatedList
|
||||
<PaginatedList<ApiKey>
|
||||
fetch={apiKeys.fetchPage}
|
||||
items={apiKeys.orderedData}
|
||||
heading={<h2>{t("All")}</h2>}
|
||||
renderItem={(apiKey: ApiKey) => (
|
||||
renderItem={(apiKey) => (
|
||||
<ApiKeyListItem key={apiKey.id} apiKey={apiKey} />
|
||||
)}
|
||||
/>
|
||||
|
||||
@@ -48,7 +48,7 @@ function Export() {
|
||||
{t("Export data")}…
|
||||
</Button>
|
||||
<br />
|
||||
<PaginatedList
|
||||
<PaginatedList<FileOperation>
|
||||
items={fileOperations.exports}
|
||||
fetch={fileOperations.fetchPage}
|
||||
options={{
|
||||
@@ -59,7 +59,7 @@ function Export() {
|
||||
<Trans>Recent exports</Trans>
|
||||
</h2>
|
||||
}
|
||||
renderItem={(item: FileOperation) => (
|
||||
renderItem={(item) => (
|
||||
<FileOperationListItem key={item.id} fileOperation={item} />
|
||||
)}
|
||||
/>
|
||||
|
||||
@@ -183,7 +183,7 @@ function Import() {
|
||||
))}
|
||||
</div>
|
||||
<br />
|
||||
<PaginatedList
|
||||
<PaginatedList<ImportModel | FileOperation>
|
||||
items={allImports}
|
||||
fetch={fetchImports}
|
||||
heading={
|
||||
@@ -191,7 +191,7 @@ function Import() {
|
||||
<Trans>Recent imports</Trans>
|
||||
</h2>
|
||||
}
|
||||
renderItem={(item: ImportModel | FileOperation) =>
|
||||
renderItem={(item) =>
|
||||
item instanceof ImportModel ? (
|
||||
<ImportListItem key={item.id} importModel={item} />
|
||||
) : (
|
||||
|
||||
@@ -61,12 +61,12 @@ function PersonalApiKeys() {
|
||||
}}
|
||||
/>
|
||||
</Text>
|
||||
<PaginatedList
|
||||
<PaginatedList<ApiKey>
|
||||
fetch={apiKeys.fetchPage}
|
||||
items={apiKeys.personalApiKeys}
|
||||
options={{ userId: user.id }}
|
||||
heading={<h2>{t("Personal keys")}</h2>}
|
||||
renderItem={(apiKey: ApiKey) => (
|
||||
renderItem={(apiKey) => (
|
||||
<ApiKeyListItem key={apiKey.id} apiKey={apiKey} />
|
||||
)}
|
||||
/>
|
||||
|
||||
@@ -268,14 +268,14 @@ export const ViewGroupMembersDialog = observer(function ({
|
||||
<Subheading>
|
||||
<Trans>Members</Trans>
|
||||
</Subheading>
|
||||
<PaginatedList
|
||||
<PaginatedList<User>
|
||||
items={users.inGroup(group.id)}
|
||||
fetch={groupUsers.fetchPage}
|
||||
options={{
|
||||
id: group.id,
|
||||
}}
|
||||
empty={<Empty>{t("This group has no members.")}</Empty>}
|
||||
renderItem={(user: User) => (
|
||||
renderItem={(user) => (
|
||||
<GroupMemberListItem
|
||||
key={user.id}
|
||||
user={user}
|
||||
@@ -382,7 +382,7 @@ const AddPeopleToGroupDialog = observer(function ({
|
||||
<PlaceholderList count={5} />
|
||||
</DelayedMount>
|
||||
) : (
|
||||
<PaginatedList
|
||||
<PaginatedList<User>
|
||||
empty={
|
||||
query ? (
|
||||
<Empty>{t("No people matching your search")}</Empty>
|
||||
@@ -392,7 +392,7 @@ const AddPeopleToGroupDialog = observer(function ({
|
||||
}
|
||||
items={users.notInGroup(group.id, query)}
|
||||
fetch={query ? undefined : users.fetchPage}
|
||||
renderItem={(item: User) => (
|
||||
renderItem={(item) => (
|
||||
<GroupMemberListItem
|
||||
key={item.id}
|
||||
user={item}
|
||||
|
||||
@@ -2,6 +2,7 @@ import compact from "lodash/compact";
|
||||
import * as React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import styled from "styled-components";
|
||||
import Text from "@shared/components/Text";
|
||||
import User from "~/models/User";
|
||||
import { Avatar, AvatarSize } from "~/components/Avatar";
|
||||
import Badge from "~/components/Badge";
|
||||
@@ -14,6 +15,7 @@ import {
|
||||
import { type Column as TableColumn } from "~/components/Table";
|
||||
import Time from "~/components/Time";
|
||||
import useCurrentUser from "~/hooks/useCurrentUser";
|
||||
import useMobile from "~/hooks/useMobile";
|
||||
import UserMenu from "~/menus/UserMenu";
|
||||
import { FILTER_HEIGHT } from "./StickyFilters";
|
||||
|
||||
@@ -27,6 +29,7 @@ type Props = Omit<TableProps<User>, "columns" | "rowHeight"> & {
|
||||
export function MembersTable({ canManage, ...rest }: Props) {
|
||||
const { t } = useTranslation();
|
||||
const currentUser = useCurrentUser();
|
||||
const isMobile = useMobile();
|
||||
|
||||
const columns = React.useMemo<TableColumn<User>[]>(
|
||||
() =>
|
||||
@@ -38,13 +41,20 @@ export function MembersTable({ canManage, ...rest }: Props) {
|
||||
accessor: (user) => user.name,
|
||||
component: (user) => (
|
||||
<Flex align="center" gap={8}>
|
||||
<Avatar model={user} size={AvatarSize.Large} /> {user.name}{" "}
|
||||
{currentUser.id === user.id && `(${t("You")})`}
|
||||
<Avatar model={user} size={AvatarSize.Large} />{" "}
|
||||
<Flex column>
|
||||
<Text>
|
||||
{user.name} {currentUser.id === user.id && `(${t("You")})`}
|
||||
</Text>
|
||||
{isMobile && canManage && (
|
||||
<Text type="tertiary">{user.email}</Text>
|
||||
)}
|
||||
</Flex>
|
||||
</Flex>
|
||||
),
|
||||
width: "4fr",
|
||||
},
|
||||
canManage
|
||||
canManage && !isMobile
|
||||
? {
|
||||
type: "data",
|
||||
id: "email",
|
||||
@@ -54,17 +64,19 @@ export function MembersTable({ canManage, ...rest }: Props) {
|
||||
width: "4fr",
|
||||
}
|
||||
: undefined,
|
||||
{
|
||||
type: "data",
|
||||
id: "lastActiveAt",
|
||||
header: t("Last active"),
|
||||
accessor: (user) => user.lastActiveAt,
|
||||
component: (user) =>
|
||||
user.lastActiveAt ? (
|
||||
<Time dateTime={user.lastActiveAt} addSuffix />
|
||||
) : null,
|
||||
width: "2fr",
|
||||
},
|
||||
isMobile
|
||||
? undefined
|
||||
: {
|
||||
type: "data",
|
||||
id: "lastActiveAt",
|
||||
header: t("Last active"),
|
||||
accessor: (user) => user.lastActiveAt,
|
||||
component: (user) =>
|
||||
user.lastActiveAt ? (
|
||||
<Time dateTime={user.lastActiveAt} addSuffix />
|
||||
) : null,
|
||||
width: "2fr",
|
||||
},
|
||||
{
|
||||
type: "data",
|
||||
id: "role",
|
||||
@@ -85,7 +97,7 @@ export function MembersTable({ canManage, ...rest }: Props) {
|
||||
{user.isSuspended && <Badge>{t("Suspended")}</Badge>}
|
||||
</Badges>
|
||||
),
|
||||
width: "2fr",
|
||||
width: "80px",
|
||||
},
|
||||
canManage
|
||||
? {
|
||||
@@ -97,7 +109,7 @@ export function MembersTable({ canManage, ...rest }: Props) {
|
||||
}
|
||||
: undefined,
|
||||
]),
|
||||
[t, currentUser, canManage]
|
||||
[t, currentUser, canManage, isMobile]
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@@ -21,6 +21,13 @@ class IntegrationsStore extends Store<Integration> {
|
||||
(integration) => integration.service === IntegrationService.GitHub
|
||||
);
|
||||
}
|
||||
|
||||
@computed
|
||||
get linear(): Integration<IntegrationType.Embed>[] {
|
||||
return this.orderedData.filter(
|
||||
(integration) => integration.service === IntegrationService.Linear
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default IntegrationsStore;
|
||||
|
||||
@@ -27,6 +27,16 @@ export const isURLMentionable = ({
|
||||
);
|
||||
}
|
||||
|
||||
case IntegrationService.Linear: {
|
||||
const settings =
|
||||
integration.settings as IntegrationSettings<IntegrationType.Embed>;
|
||||
|
||||
return (
|
||||
hostname === "linear.app" &&
|
||||
settings.linear?.workspace.key === pathParts[1] // ensure installed workspace key matches with the provided url.
|
||||
);
|
||||
}
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -52,6 +62,11 @@ export const determineMentionType = ({
|
||||
: undefined;
|
||||
}
|
||||
|
||||
case IntegrationService.Linear: {
|
||||
const type = pathParts[2];
|
||||
return type === "issue" ? MentionType.Issue : undefined;
|
||||
}
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
+10
-10
@@ -79,12 +79,13 @@
|
||||
"@hocuspocus/server": "1.1.2",
|
||||
"@joplin/turndown-plugin-gfm": "^1.0.49",
|
||||
"@juggle/resize-observer": "^3.4.0",
|
||||
"@notionhq/client": "^2.2.16",
|
||||
"@linear/sdk": "^39.0.0",
|
||||
"@notionhq/client": "^2.3.0",
|
||||
"@octokit/auth-app": "^6.1.3",
|
||||
"@outlinewiki/koa-passport": "^4.2.1",
|
||||
"@outlinewiki/passport-azure-ad-oauth2": "^0.1.0",
|
||||
"@radix-ui/react-select": "^2.1.4",
|
||||
"@radix-ui/react-visually-hidden": "^1.1.2",
|
||||
"@radix-ui/react-visually-hidden": "^1.2.0",
|
||||
"@renderlesskit/react": "^0.11.0",
|
||||
"@sentry/node": "^7.120.3",
|
||||
"@sentry/react": "^7.120.3",
|
||||
@@ -114,7 +115,7 @@
|
||||
"date-fns": "^3.6.0",
|
||||
"dd-trace": "^5.40.0",
|
||||
"diff": "^5.2.0",
|
||||
"dotenv": "^16.4.7",
|
||||
"dotenv": "^16.5.0",
|
||||
"email-providers": "^1.14.0",
|
||||
"emoji-mart": "^5.6.0",
|
||||
"emoji-regex": "^10.4.0",
|
||||
@@ -179,7 +180,7 @@
|
||||
"png-chunks-extract": "^1.0.0",
|
||||
"polished": "^4.3.1",
|
||||
"prosemirror-codemark": "^0.4.2",
|
||||
"prosemirror-commands": "^1.7.0",
|
||||
"prosemirror-commands": "^1.7.1",
|
||||
"prosemirror-dropcursor": "^1.8.1",
|
||||
"prosemirror-gapcursor": "^1.3.2",
|
||||
"prosemirror-history": "^1.4.1",
|
||||
@@ -191,7 +192,7 @@
|
||||
"prosemirror-state": "^1.4.3",
|
||||
"prosemirror-tables": "^1.6.4",
|
||||
"prosemirror-transform": "1.10.0",
|
||||
"prosemirror-view": "^1.38.1",
|
||||
"prosemirror-view": "^1.39.1",
|
||||
"query-string": "^7.1.3",
|
||||
"randomstring": "1.3.1",
|
||||
"rate-limiter-flexible": "^2.4.2",
|
||||
@@ -219,7 +220,7 @@
|
||||
"refractor": "^3.6.0",
|
||||
"request-filtering-agent": "^1.1.2",
|
||||
"resolve-path": "^1.4.0",
|
||||
"rfc6902": "^5.1.1",
|
||||
"rfc6902": "^5.1.2",
|
||||
"sanitize-filename": "^1.6.3",
|
||||
"scroll-into-view-if-needed": "^3.1.0",
|
||||
"semver": "^7.7.1",
|
||||
@@ -248,8 +249,8 @@
|
||||
"uuid": "^8.3.2",
|
||||
"validator": "13.12.0",
|
||||
"vaul": "^1.1.2",
|
||||
"vite": "^5.4.18",
|
||||
"vite-plugin-pwa": "^0.20.3",
|
||||
"vite": "^6.3.3",
|
||||
"vite-plugin-pwa": "^0.21.2",
|
||||
"winston": "^3.17.0",
|
||||
"ws": "^7.5.10",
|
||||
"y-indexeddb": "^9.0.11",
|
||||
@@ -360,7 +361,7 @@
|
||||
"prettier": "^2.8.8",
|
||||
"react-refresh": "^0.14.2",
|
||||
"rimraf": "^2.5.4",
|
||||
"rollup-plugin-webpack-stats": "^2.0.3",
|
||||
"rollup-plugin-webpack-stats": "^2.0.5",
|
||||
"terser": "^5.39.0",
|
||||
"typescript": "^5.8.3",
|
||||
"vite-plugin-static-copy": "^0.17.0",
|
||||
@@ -374,7 +375,6 @@
|
||||
"node-fetch": "^2.7.0",
|
||||
"js-yaml": "^3.14.1",
|
||||
"qs": "6.9.7",
|
||||
"rollup": "^4.5.1",
|
||||
"prismjs": "1.30.0"
|
||||
},
|
||||
"version": "0.83.0",
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import { Endpoints } from "@octokit/types";
|
||||
import { IssueSource } from "@shared/schema";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import { Integration } from "@server/models";
|
||||
import { BaseIssueProvider } from "@server/utils/BaseIssueProvider";
|
||||
import { GitHub } from "./github";
|
||||
|
||||
// This is needed to handle Octokit paginate response type mismatch.
|
||||
type ReposForInstallation =
|
||||
Endpoints["GET /installation/repositories"]["response"]["data"]["repositories"];
|
||||
|
||||
export class GitHubIssueProvider extends BaseIssueProvider {
|
||||
constructor() {
|
||||
super(IntegrationService.GitHub);
|
||||
}
|
||||
|
||||
async fetchSources(
|
||||
integration: Integration<IntegrationType.Embed>
|
||||
): Promise<IssueSource[]> {
|
||||
const client = await GitHub.authenticateAsInstallation(
|
||||
integration.settings.github!.installation.id
|
||||
);
|
||||
|
||||
const sources: IssueSource[] = [];
|
||||
|
||||
for await (const response of client.requestRepos()) {
|
||||
const repos = response.data as unknown as ReposForInstallation;
|
||||
sources.push(
|
||||
...repos.map<IssueSource>((repo) => ({
|
||||
id: String(repo.id),
|
||||
name: repo.name,
|
||||
owner: { id: String(repo.owner.id), name: repo.owner.login },
|
||||
service: IntegrationService.GitHub,
|
||||
}))
|
||||
);
|
||||
}
|
||||
|
||||
return sources;
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
import Router from "koa-router";
|
||||
import find from "lodash/find";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import { parseDomain } from "@shared/utils/domains";
|
||||
import Logger from "@server/logging/Logger";
|
||||
import { createContext } from "@server/context";
|
||||
import apexAuthRedirect from "@server/middlewares/apexAuthRedirect";
|
||||
import auth from "@server/middlewares/authentication";
|
||||
import { transaction } from "@server/middlewares/transaction";
|
||||
import validate from "@server/middlewares/validate";
|
||||
import { IntegrationAuthentication, Integration, Team } from "@server/models";
|
||||
import { IntegrationAuthentication, Integration } from "@server/models";
|
||||
import { APIContext } from "@server/types";
|
||||
import { GitHubUtils } from "../../shared/GitHubUtils";
|
||||
import { GitHub } from "../github";
|
||||
@@ -16,10 +16,17 @@ const router = new Router();
|
||||
|
||||
router.get(
|
||||
"github.callback",
|
||||
auth({
|
||||
optional: true,
|
||||
}),
|
||||
auth({ optional: true }),
|
||||
validate(T.GitHubCallbackSchema),
|
||||
apexAuthRedirect<T.GitHubCallbackReq>({
|
||||
getTeamId: (ctx) => ctx.input.query.state,
|
||||
getRedirectPath: (ctx, team) =>
|
||||
GitHubUtils.callbackUrl({
|
||||
baseUrl: team.url,
|
||||
params: ctx.request.querystring,
|
||||
}),
|
||||
getErrorPath: () => GitHubUtils.errorUrl("unauthenticated"),
|
||||
}),
|
||||
transaction(),
|
||||
async (ctx: APIContext<T.GitHubCallbackReq>) => {
|
||||
const {
|
||||
@@ -42,33 +49,6 @@ router.get(
|
||||
return;
|
||||
}
|
||||
|
||||
// this code block accounts for the root domain being unable to
|
||||
// access authentication for subdomains. We must forward to the appropriate
|
||||
// subdomain to complete the oauth flow
|
||||
if (!user) {
|
||||
if (teamId) {
|
||||
try {
|
||||
const team = await Team.findByPk(teamId, {
|
||||
rejectOnEmpty: true,
|
||||
transaction,
|
||||
});
|
||||
return parseDomain(ctx.host).teamSubdomain === team.subdomain
|
||||
? ctx.redirect("/")
|
||||
: ctx.redirectOnClient(
|
||||
GitHubUtils.callbackUrl({
|
||||
baseUrl: team.url,
|
||||
params: ctx.request.querystring,
|
||||
})
|
||||
);
|
||||
} catch (err) {
|
||||
Logger.error(`Error fetching team for teamId: ${teamId}!`, err);
|
||||
return ctx.redirect(GitHubUtils.errorUrl("unauthenticated"));
|
||||
}
|
||||
} else {
|
||||
return ctx.redirect(GitHubUtils.errorUrl("unauthenticated"));
|
||||
}
|
||||
}
|
||||
|
||||
const client = await GitHub.authenticateAsUser(code!, teamId);
|
||||
const installationsByUser = await client.requestAppInstallations();
|
||||
const installation = find(
|
||||
@@ -88,30 +68,27 @@ router.get(
|
||||
},
|
||||
{ transaction }
|
||||
);
|
||||
await Integration.create(
|
||||
{
|
||||
service: IntegrationService.GitHub,
|
||||
type: IntegrationType.Embed,
|
||||
userId: user.id,
|
||||
teamId: user.teamId,
|
||||
authenticationId: authentication.id,
|
||||
settings: {
|
||||
github: {
|
||||
installation: {
|
||||
id: installationId!,
|
||||
account: {
|
||||
id: installation.account?.id,
|
||||
name:
|
||||
// @ts-expect-error Property 'login' does not exist on type
|
||||
installation.account?.login,
|
||||
avatarUrl: installation.account?.avatar_url,
|
||||
},
|
||||
await Integration.createWithCtx(createContext({ user, transaction }), {
|
||||
service: IntegrationService.GitHub,
|
||||
type: IntegrationType.Embed,
|
||||
userId: user.id,
|
||||
teamId: user.teamId,
|
||||
authenticationId: authentication.id,
|
||||
settings: {
|
||||
github: {
|
||||
installation: {
|
||||
id: installationId!,
|
||||
account: {
|
||||
id: installation.account?.id,
|
||||
name:
|
||||
// @ts-expect-error Property 'login' does not exist on type
|
||||
installation.account?.login,
|
||||
avatarUrl: installation.account?.avatar_url,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{ transaction }
|
||||
);
|
||||
});
|
||||
ctx.redirect(GitHubUtils.url);
|
||||
}
|
||||
);
|
||||
|
||||
@@ -4,36 +4,55 @@ import {
|
||||
type OAuthWebFlowAuthOptions,
|
||||
type InstallationAuthOptions,
|
||||
} from "@octokit/auth-app";
|
||||
import { Endpoints, OctokitResponse } from "@octokit/types";
|
||||
import { Octokit } from "octokit";
|
||||
import pluralize from "pluralize";
|
||||
import {
|
||||
IntegrationService,
|
||||
IntegrationType,
|
||||
JSONObject,
|
||||
UnfurlResourceType,
|
||||
} from "@shared/types";
|
||||
import Logger from "@server/logging/Logger";
|
||||
import { Integration, User } from "@server/models";
|
||||
import { UnfurlSignature } from "@server/types";
|
||||
import { UnfurlIssueAndPR, UnfurlSignature } from "@server/types";
|
||||
import { GitHubUtils } from "../shared/GitHubUtils";
|
||||
import env from "./env";
|
||||
|
||||
type PR =
|
||||
Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]["data"];
|
||||
type Issue =
|
||||
Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}"]["response"]["data"];
|
||||
|
||||
const requestPlugin = (octokit: Octokit) => ({
|
||||
requestPR: async (params: ReturnType<typeof GitHub.parseUrl>) =>
|
||||
octokit.request(`GET /repos/{owner}/{repo}/pulls/{id}`, {
|
||||
owner: params?.owner,
|
||||
repo: params?.repo,
|
||||
id: params?.id,
|
||||
requestRepos: () =>
|
||||
octokit.paginate.iterator(
|
||||
octokit.rest.apps.listReposAccessibleToInstallation,
|
||||
{
|
||||
headers: {
|
||||
Accept: "application/vnd.github+json",
|
||||
"X-GitHub-Api-Version": "2022-11-28",
|
||||
},
|
||||
}
|
||||
),
|
||||
|
||||
requestPR: async (params: NonNullable<ReturnType<typeof GitHub.parseUrl>>) =>
|
||||
octokit.request(`GET /repos/{owner}/{repo}/pulls/{pull_number}`, {
|
||||
owner: params.owner,
|
||||
repo: params.repo,
|
||||
pull_number: params.id,
|
||||
headers: {
|
||||
Accept: "application/vnd.github.text+json",
|
||||
"X-GitHub-Api-Version": "2022-11-28",
|
||||
},
|
||||
}),
|
||||
|
||||
requestIssue: async (params: ReturnType<typeof GitHub.parseUrl>) =>
|
||||
octokit.request(`GET /repos/{owner}/{repo}/issues/{id}`, {
|
||||
owner: params?.owner,
|
||||
repo: params?.repo,
|
||||
id: params?.id,
|
||||
requestIssue: async (
|
||||
params: NonNullable<ReturnType<typeof GitHub.parseUrl>>
|
||||
) =>
|
||||
octokit.request(`GET /repos/{owner}/{repo}/issues/{issue_number}`, {
|
||||
owner: params.owner,
|
||||
repo: params.repo,
|
||||
issue_number: params.id,
|
||||
headers: {
|
||||
Accept: "application/vnd.github.text+json",
|
||||
"X-GitHub-Api-Version": "2022-11-28",
|
||||
@@ -56,14 +75,14 @@ const requestPlugin = (octokit: Octokit) => ({
|
||||
*/
|
||||
requestResource: async function requestResource(
|
||||
resource: ReturnType<typeof GitHub.parseUrl>
|
||||
): Promise<{ data?: JSONObject }> {
|
||||
): Promise<OctokitResponse<Issue | PR> | undefined> {
|
||||
switch (resource?.type) {
|
||||
case UnfurlResourceType.PR:
|
||||
return this.requestPR(resource);
|
||||
return this.requestPR(resource) as Promise<OctokitResponse<PR>>;
|
||||
case UnfurlResourceType.Issue:
|
||||
return this.requestIssue(resource);
|
||||
return this.requestIssue(resource) as Promise<OctokitResponse<Issue>>;
|
||||
default:
|
||||
return { data: undefined };
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -91,7 +110,10 @@ export class GitHub {
|
||||
|
||||
private static appOctokit: Octokit;
|
||||
|
||||
private static supportedResources = Object.values(UnfurlResourceType);
|
||||
private static supportedResources = [
|
||||
UnfurlResourceType.Issue,
|
||||
UnfurlResourceType.PR,
|
||||
];
|
||||
|
||||
/**
|
||||
* Parses a given URL and returns resource identifiers for GitHub specific URLs
|
||||
@@ -111,7 +133,7 @@ export class GitHub {
|
||||
const type = parts[3]
|
||||
? (pluralize.singular(parts[3]) as UnfurlResourceType)
|
||||
: undefined;
|
||||
const id = parts[4];
|
||||
const id = Number(parts[4]);
|
||||
|
||||
if (!type || !GitHub.supportedResources.includes(type)) {
|
||||
return;
|
||||
@@ -204,14 +226,64 @@ export class GitHub {
|
||||
const client = await GitHub.authenticateAsInstallation(
|
||||
integration.settings.github!.installation.id
|
||||
);
|
||||
const { data } = await client.requestResource(resource);
|
||||
if (!data) {
|
||||
|
||||
const res = await client.requestResource(resource);
|
||||
if (!res) {
|
||||
return { error: "Resource not found" };
|
||||
}
|
||||
return { ...data, type: resource.type };
|
||||
|
||||
return GitHub.transformData(res.data, resource.type);
|
||||
} catch (err) {
|
||||
Logger.warn("Failed to fetch resource from GitHub", err);
|
||||
return { error: err.message || "Unknown error" };
|
||||
}
|
||||
};
|
||||
|
||||
private static transformData(data: Issue | PR, type: UnfurlResourceType) {
|
||||
if (type === UnfurlResourceType.Issue) {
|
||||
const issue = data as Issue;
|
||||
return {
|
||||
type: UnfurlResourceType.Issue,
|
||||
url: issue.html_url,
|
||||
id: `#${issue.number}`,
|
||||
title: issue.title,
|
||||
description: issue.body_text ?? null,
|
||||
author: {
|
||||
name: issue.user?.login ?? "",
|
||||
avatarUrl: issue.user?.avatar_url ?? "",
|
||||
},
|
||||
labels: issue.labels.map((label: { name: string; color: string }) => ({
|
||||
name: label.name,
|
||||
color: `#${label.color}`,
|
||||
})),
|
||||
state: {
|
||||
name: issue.state,
|
||||
color: GitHubUtils.getColorForStatus(issue.state),
|
||||
},
|
||||
createdAt: issue.created_at,
|
||||
transformed_unfurl: true,
|
||||
} satisfies UnfurlIssueAndPR;
|
||||
}
|
||||
|
||||
const pr = data as PR;
|
||||
const prState = pr.merged ? "merged" : pr.state;
|
||||
return {
|
||||
type: UnfurlResourceType.PR,
|
||||
url: pr.html_url,
|
||||
id: `#${pr.number}`,
|
||||
title: pr.title,
|
||||
description: pr.body,
|
||||
author: {
|
||||
name: pr.user.login,
|
||||
avatarUrl: pr.user.avatar_url,
|
||||
},
|
||||
state: {
|
||||
name: prState,
|
||||
color: GitHubUtils.getColorForStatus(prState, !!pr.draft),
|
||||
draft: pr.draft,
|
||||
},
|
||||
createdAt: pr.created_at,
|
||||
transformed_unfurl: true,
|
||||
} satisfies UnfurlIssueAndPR;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Minute } from "@shared/utils/time";
|
||||
import { PluginManager, Hook } from "@server/utils/PluginManager";
|
||||
import config from "../plugin.json";
|
||||
import { GitHubIssueProvider } from "./GitHubIssueProvider";
|
||||
import router from "./api/github";
|
||||
import env from "./env";
|
||||
import { GitHub } from "./github";
|
||||
@@ -20,6 +21,10 @@ if (enabled) {
|
||||
type: Hook.API,
|
||||
value: router,
|
||||
},
|
||||
{
|
||||
type: Hook.IssueProvider,
|
||||
value: new GitHubIssueProvider(),
|
||||
},
|
||||
{
|
||||
type: Hook.UnfurlProvider,
|
||||
value: { unfurl: GitHub.unfurl, cacheExpiry: Minute.seconds },
|
||||
|
||||
@@ -45,10 +45,10 @@ export class GitHubUtils {
|
||||
return `${this.url}?install_request=true`;
|
||||
}
|
||||
|
||||
public static getColorForStatus(status: string) {
|
||||
public static getColorForStatus(status: string, isDraftPR: boolean = false) {
|
||||
switch (status) {
|
||||
case "open":
|
||||
return "#238636";
|
||||
return isDraftPR ? "#848d97" : "#238636";
|
||||
case "done":
|
||||
return "#a371f7";
|
||||
case "closed":
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import * as React from "react";
|
||||
|
||||
type Props = {
|
||||
/** The size of the icon, 24px is default to match standard icons */
|
||||
size?: number;
|
||||
/** The color of the icon, defaults to the current text color */
|
||||
fill?: string;
|
||||
};
|
||||
|
||||
export default function Icon({ size = 24, fill = "currentColor" }: Props) {
|
||||
return (
|
||||
<svg
|
||||
fill={fill}
|
||||
width={size}
|
||||
height={size}
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
>
|
||||
<path
|
||||
d="M3.93091 12.8481C4.11753 14.6298 4.89358 16.3615 6.25902 17.727C7.62446 19.0923 9.35612 19.8684 11.1378 20.0551L3.93091 12.8481Z"
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M3.89929 11.5437L12.4422 20.0865C13.1671 20.0459 13.8876 19.9084 14.5827 19.6738L4.31194 9.4032C4.07743 10.0982 3.93988 10.8187 3.89929 11.5437Z"
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M4.67981 8.49828L15.4875 19.306C16.0482 19.0374 16.5845 18.7005 17.0837 18.2953L5.6905 6.90222C5.28537 7.40142 4.94847 7.93759 4.67981 8.49828Z"
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M6.29602 6.23494C9.46213 3.10852 14.5632 3.12079 17.7141 6.27173C20.865 9.42266 20.8774 14.5237 17.7509 17.6898L6.29602 6.23494Z"
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
import { observer } from "mobx-react";
|
||||
import { PlusIcon } from "outline-icons";
|
||||
import * as React from "react";
|
||||
import { useTranslation, Trans } from "react-i18next";
|
||||
import { IntegrationService } from "@shared/types";
|
||||
import { ConnectedButton } from "~/scenes/Settings/components/ConnectedButton";
|
||||
import { AvatarSize } from "~/components/Avatar";
|
||||
import Flex from "~/components/Flex";
|
||||
import Heading from "~/components/Heading";
|
||||
import List from "~/components/List";
|
||||
import ListItem from "~/components/List/Item";
|
||||
import Notice from "~/components/Notice";
|
||||
import PlaceholderText from "~/components/PlaceholderText";
|
||||
import Scene from "~/components/Scene";
|
||||
import TeamLogo from "~/components/TeamLogo";
|
||||
import Text from "~/components/Text";
|
||||
import Time from "~/components/Time";
|
||||
import env from "~/env";
|
||||
import useQuery from "~/hooks/useQuery";
|
||||
import useStores from "~/hooks/useStores";
|
||||
import LinearIcon from "./Icon";
|
||||
import { LinearConnectButton } from "./components/LinearButton";
|
||||
|
||||
function Linear() {
|
||||
const { integrations } = useStores();
|
||||
const { t } = useTranslation();
|
||||
const query = useQuery();
|
||||
const error = query.get("error");
|
||||
const appName = env.APP_NAME;
|
||||
|
||||
React.useEffect(() => {
|
||||
void integrations.fetchAll({
|
||||
service: IntegrationService.Linear,
|
||||
withRelations: true,
|
||||
});
|
||||
}, [integrations]);
|
||||
|
||||
return (
|
||||
<Scene title="Linear" icon={<LinearIcon />}>
|
||||
<Heading>Linear</Heading>
|
||||
|
||||
{error === "access_denied" && (
|
||||
<Notice>
|
||||
<Trans>
|
||||
Whoops, you need to accept the permissions in Linear to connect{" "}
|
||||
{{ appName }} to your workspace. Try again?
|
||||
</Trans>
|
||||
</Notice>
|
||||
)}
|
||||
{error === "unauthenticated" && (
|
||||
<Notice>
|
||||
<Trans>
|
||||
Something went wrong while authenticating your request. Please try
|
||||
logging in again.
|
||||
</Trans>
|
||||
</Notice>
|
||||
)}
|
||||
{env.LINEAR_CLIENT_ID ? (
|
||||
<>
|
||||
<Text as="p">
|
||||
<Trans>
|
||||
Enable previews of Linear issues in documents by connecting a
|
||||
Linear workspace to {appName}.
|
||||
</Trans>
|
||||
</Text>
|
||||
{integrations.linear.length ? (
|
||||
<>
|
||||
<Heading as="h2">
|
||||
<Flex justify="space-between" auto>
|
||||
{t("Connected")}
|
||||
<LinearConnectButton icon={<PlusIcon />} />
|
||||
</Flex>
|
||||
</Heading>
|
||||
<List>
|
||||
{integrations.linear.map((integration) => {
|
||||
const linearWorkspace =
|
||||
integration.settings?.linear?.workspace;
|
||||
const integrationCreatedBy = integration.user
|
||||
? integration.user.name
|
||||
: undefined;
|
||||
|
||||
return (
|
||||
<ListItem
|
||||
key={linearWorkspace?.id}
|
||||
small
|
||||
title={linearWorkspace?.name}
|
||||
subtitle={
|
||||
integrationCreatedBy ? (
|
||||
<>
|
||||
<Trans>Enabled by {{ integrationCreatedBy }}</Trans>{" "}
|
||||
·{" "}
|
||||
<Time
|
||||
dateTime={integration.createdAt}
|
||||
relative={false}
|
||||
format={{ en_US: "MMMM d, y" }}
|
||||
/>
|
||||
</>
|
||||
) : (
|
||||
<PlaceholderText />
|
||||
)
|
||||
}
|
||||
image={
|
||||
<TeamLogo
|
||||
src={linearWorkspace?.logoUrl}
|
||||
size={AvatarSize.Large}
|
||||
/>
|
||||
}
|
||||
actions={
|
||||
<ConnectedButton
|
||||
onClick={integration.delete}
|
||||
confirmationMessage={t(
|
||||
"Disconnecting will prevent previewing Linear links from this workspace in documents. Are you sure?"
|
||||
)}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</List>
|
||||
</>
|
||||
) : (
|
||||
<p>
|
||||
<LinearConnectButton icon={<LinearIcon />} />
|
||||
</p>
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
<Notice>
|
||||
<Trans>
|
||||
The Linear integration is currently disabled. Please set the
|
||||
associated environment variables and restart the server to enable
|
||||
the integration.
|
||||
</Trans>
|
||||
</Notice>
|
||||
)}
|
||||
</Scene>
|
||||
);
|
||||
}
|
||||
|
||||
export default observer(Linear);
|
||||
@@ -0,0 +1,23 @@
|
||||
import * as React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import Button, { type Props } from "~/components/Button";
|
||||
import useCurrentTeam from "~/hooks/useCurrentTeam";
|
||||
import { redirectTo } from "~/utils/urls";
|
||||
import { LinearUtils } from "../../shared/LinearUtils";
|
||||
|
||||
export function LinearConnectButton(props: Props<HTMLButtonElement>) {
|
||||
const { t } = useTranslation();
|
||||
const team = useCurrentTeam();
|
||||
|
||||
return (
|
||||
<Button
|
||||
onClick={() =>
|
||||
redirectTo(LinearUtils.authUrl({ state: { teamId: team.id } }))
|
||||
}
|
||||
neutral
|
||||
{...props}
|
||||
>
|
||||
{t("Connect")}
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import * as React from "react";
|
||||
import { Hook, PluginManager } from "~/utils/PluginManager";
|
||||
import config from "../plugin.json";
|
||||
import Icon from "./Icon";
|
||||
|
||||
PluginManager.add([
|
||||
{
|
||||
...config,
|
||||
type: Hook.Settings,
|
||||
value: {
|
||||
group: "Integrations",
|
||||
icon: Icon,
|
||||
component: React.lazy(() => import("./Settings")),
|
||||
},
|
||||
},
|
||||
]);
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"id": "linear",
|
||||
"name": "Linear",
|
||||
"priority": 15,
|
||||
"description": "Adds a Linear integration for link unfurling and converting links to mentions.",
|
||||
"after": "github"
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
import Router from "koa-router";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import apexAuthRedirect from "@server/middlewares/apexAuthRedirect";
|
||||
import auth from "@server/middlewares/authentication";
|
||||
import { transaction } from "@server/middlewares/transaction";
|
||||
import validate from "@server/middlewares/validate";
|
||||
import { IntegrationAuthentication, Integration } from "@server/models";
|
||||
import { APIContext } from "@server/types";
|
||||
import { Linear } from "../linear";
|
||||
import UploadLinearWorkspaceLogoTask from "../tasks/UploadLinearWorkspaceLogoTask";
|
||||
import * as T from "./schema";
|
||||
import { LinearUtils } from "plugins/linear/shared/LinearUtils";
|
||||
|
||||
const router = new Router();
|
||||
|
||||
router.get(
|
||||
"linear.callback",
|
||||
auth({
|
||||
optional: true,
|
||||
}),
|
||||
validate(T.LinearCallbackSchema),
|
||||
apexAuthRedirect<T.LinearCallbackReq>({
|
||||
getTeamId: (ctx) => LinearUtils.parseState(ctx.input.query.state)?.teamId,
|
||||
getRedirectPath: (ctx, team) =>
|
||||
LinearUtils.callbackUrl({
|
||||
baseUrl: team.url,
|
||||
params: ctx.request.querystring,
|
||||
}),
|
||||
getErrorPath: () => LinearUtils.errorUrl("unauthenticated"),
|
||||
}),
|
||||
transaction(),
|
||||
async (ctx: APIContext<T.LinearCallbackReq>) => {
|
||||
const { code, error } = ctx.input.query;
|
||||
const { user } = ctx.state.auth;
|
||||
const { transaction } = ctx.state;
|
||||
|
||||
// Check error after any sub-domain redirection. Otherwise, the user will be redirected to the root domain.
|
||||
if (error) {
|
||||
ctx.redirect(LinearUtils.errorUrl(error));
|
||||
return;
|
||||
}
|
||||
|
||||
// validation middleware ensures that code is non-null at this point.
|
||||
const oauth = await Linear.oauthAccess(code!);
|
||||
const workspace = await Linear.getInstalledWorkspace(oauth.access_token);
|
||||
|
||||
const authentication = await IntegrationAuthentication.create(
|
||||
{
|
||||
service: IntegrationService.Linear,
|
||||
userId: user.id,
|
||||
teamId: user.teamId,
|
||||
token: oauth.access_token,
|
||||
scopes: oauth.scope.split(" "),
|
||||
},
|
||||
{ transaction }
|
||||
);
|
||||
const integration = await Integration.create<
|
||||
Integration<IntegrationType.Embed>
|
||||
>(
|
||||
{
|
||||
service: IntegrationService.Linear,
|
||||
type: IntegrationType.Embed,
|
||||
userId: user.id,
|
||||
teamId: user.teamId,
|
||||
authenticationId: authentication.id,
|
||||
settings: {
|
||||
linear: {
|
||||
workspace: {
|
||||
id: workspace.id,
|
||||
name: workspace.name,
|
||||
key: workspace.urlKey,
|
||||
logoUrl: workspace.logoUrl,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{ transaction }
|
||||
);
|
||||
|
||||
if (workspace.logoUrl) {
|
||||
transaction.afterCommit(async () => {
|
||||
await UploadLinearWorkspaceLogoTask.schedule({
|
||||
integrationId: integration.id,
|
||||
logoUrl: workspace.logoUrl,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
ctx.redirect(LinearUtils.successUrl());
|
||||
}
|
||||
);
|
||||
|
||||
export default router;
|
||||
@@ -0,0 +1,17 @@
|
||||
import isEmpty from "lodash/isEmpty";
|
||||
import { z } from "zod";
|
||||
import { BaseSchema } from "@server/routes/api/schema";
|
||||
|
||||
export const LinearCallbackSchema = BaseSchema.extend({
|
||||
query: z
|
||||
.object({
|
||||
code: z.string().nullish(),
|
||||
state: z.string(),
|
||||
error: z.string().nullish(),
|
||||
})
|
||||
.refine((req) => !(isEmpty(req.code) && isEmpty(req.error)), {
|
||||
message: "one of code or error is required",
|
||||
}),
|
||||
});
|
||||
|
||||
export type LinearCallbackReq = z.infer<typeof LinearCallbackSchema>;
|
||||
@@ -0,0 +1,25 @@
|
||||
import { IsOptional } from "class-validator";
|
||||
import { Environment } from "@server/env";
|
||||
import { Public } from "@server/utils/decorators/Public";
|
||||
import environment from "@server/utils/environment";
|
||||
import { CannotUseWithout } from "@server/utils/validators";
|
||||
|
||||
class LinearPluginEnvironment extends Environment {
|
||||
/**
|
||||
* Linear OAuth2 app client id. To enable integration with Linear.
|
||||
*/
|
||||
@Public
|
||||
@IsOptional()
|
||||
public LINEAR_CLIENT_ID = this.toOptionalString(environment.LINEAR_CLIENT_ID);
|
||||
|
||||
/**
|
||||
* Linear OAuth2 app client secret. To enable integration with Linear.
|
||||
*/
|
||||
@IsOptional()
|
||||
@CannotUseWithout("LINEAR_CLIENT_ID")
|
||||
public LINEAR_CLIENT_SECRET = this.toOptionalString(
|
||||
environment.LINEAR_CLIENT_SECRET
|
||||
);
|
||||
}
|
||||
|
||||
export default new LinearPluginEnvironment();
|
||||
@@ -0,0 +1,32 @@
|
||||
import { Minute } from "@shared/utils/time";
|
||||
import { Hook, PluginManager } from "@server/utils/PluginManager";
|
||||
import config from "../plugin.json";
|
||||
import router from "./api/linear";
|
||||
import env from "./env";
|
||||
import { Linear } from "./linear";
|
||||
import UploadLinearWorkspaceLogoTask from "./tasks/UploadLinearWorkspaceLogoTask";
|
||||
import { uninstall } from "./uninstall";
|
||||
|
||||
const enabled = !!env.LINEAR_CLIENT_ID && !!env.LINEAR_CLIENT_SECRET;
|
||||
|
||||
if (enabled) {
|
||||
PluginManager.add([
|
||||
{
|
||||
...config,
|
||||
type: Hook.API,
|
||||
value: router,
|
||||
},
|
||||
{
|
||||
type: Hook.Task,
|
||||
value: UploadLinearWorkspaceLogoTask,
|
||||
},
|
||||
{
|
||||
type: Hook.UnfurlProvider,
|
||||
value: { unfurl: Linear.unfurl, cacheExpiry: Minute.seconds },
|
||||
},
|
||||
{
|
||||
type: Hook.Uninstall,
|
||||
value: uninstall,
|
||||
},
|
||||
]);
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
import { Issue, LinearClient, WorkflowState } from "@linear/sdk";
|
||||
import sortBy from "lodash/sortBy";
|
||||
import { z } from "zod";
|
||||
import {
|
||||
IntegrationService,
|
||||
IntegrationType,
|
||||
UnfurlResourceType,
|
||||
} from "@shared/types";
|
||||
import Logger from "@server/logging/Logger";
|
||||
import { Integration } from "@server/models";
|
||||
import User from "@server/models/User";
|
||||
import { UnfurlIssueAndPR, UnfurlSignature } from "@server/types";
|
||||
import { LinearUtils } from "../shared/LinearUtils";
|
||||
import env from "./env";
|
||||
|
||||
const AccessTokenResponseSchema = z.object({
|
||||
access_token: z.string(),
|
||||
token_type: z.string(),
|
||||
expires_in: z.number(),
|
||||
scope: z.string(),
|
||||
});
|
||||
|
||||
export class Linear {
|
||||
private static supportedUnfurls = [UnfurlResourceType.Issue];
|
||||
|
||||
static async oauthAccess(code: string) {
|
||||
const headers = {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
Accept: "application/json",
|
||||
};
|
||||
|
||||
const body = new URLSearchParams();
|
||||
body.set("code", code);
|
||||
body.set("client_id", env.LINEAR_CLIENT_ID!);
|
||||
body.set("client_secret", env.LINEAR_CLIENT_SECRET!);
|
||||
body.set("redirect_uri", LinearUtils.callbackUrl());
|
||||
body.set("grant_type", "authorization_code");
|
||||
|
||||
const res = await fetch(LinearUtils.tokenUrl, {
|
||||
method: "POST",
|
||||
headers,
|
||||
body,
|
||||
});
|
||||
|
||||
return AccessTokenResponseSchema.parse(await res.json());
|
||||
}
|
||||
|
||||
static async revokeAccess(accessToken: string) {
|
||||
const headers = {
|
||||
Authorization: `Bearer ${accessToken}`,
|
||||
};
|
||||
|
||||
await fetch(LinearUtils.revokeUrl, {
|
||||
method: "POST",
|
||||
headers,
|
||||
});
|
||||
}
|
||||
|
||||
static async getInstalledWorkspace(accessToken: string) {
|
||||
const client = new LinearClient({ accessToken });
|
||||
return client.organization;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param url Linear resource url
|
||||
* @param actor User attempting to unfurl resource url
|
||||
* @returns An object containing resource details e.g, a Linear issue details
|
||||
*/
|
||||
static unfurl: UnfurlSignature = async (url: string, actor: User) => {
|
||||
const resource = Linear.parseUrl(url);
|
||||
|
||||
if (!resource) {
|
||||
return;
|
||||
}
|
||||
|
||||
const integration = (await Integration.scope("withAuthentication").findOne({
|
||||
where: {
|
||||
service: IntegrationService.Linear,
|
||||
teamId: actor.teamId,
|
||||
"settings.linear.workspace.key": resource.workspaceKey,
|
||||
},
|
||||
})) as Integration<IntegrationType.Embed>;
|
||||
|
||||
if (!integration) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const client = new LinearClient({
|
||||
accessToken: integration.authentication.token,
|
||||
});
|
||||
const issue = await client.issue(resource.id);
|
||||
|
||||
if (!issue) {
|
||||
return { error: "Resource not found" };
|
||||
}
|
||||
|
||||
const [author, state, labels] = await Promise.all([
|
||||
issue.creator,
|
||||
issue.state,
|
||||
issue.paginate(issue.labels, {}),
|
||||
]);
|
||||
|
||||
if (!author || !state || !labels) {
|
||||
return { error: "Failed to fetch auxiliary data from Linear" };
|
||||
}
|
||||
|
||||
const completionPercentage = await Linear.completionPercentage(
|
||||
client,
|
||||
issue,
|
||||
state
|
||||
);
|
||||
|
||||
return {
|
||||
type: UnfurlResourceType.Issue,
|
||||
url: issue.url,
|
||||
id: issue.identifier,
|
||||
title: issue.title,
|
||||
description: issue.description ?? null,
|
||||
author: {
|
||||
name: author.name,
|
||||
avatarUrl: author.avatarUrl ?? "",
|
||||
},
|
||||
labels: labels.map((label) => ({
|
||||
name: label.name,
|
||||
color: label.color,
|
||||
})),
|
||||
state: {
|
||||
type: state.type,
|
||||
name: state.name,
|
||||
color: state.color,
|
||||
completionPercentage,
|
||||
},
|
||||
createdAt: issue.createdAt.toISOString(),
|
||||
transformed_unfurl: true,
|
||||
} satisfies UnfurlIssueAndPR;
|
||||
} catch (err) {
|
||||
Logger.warn("Failed to fetch resource from Linear", err);
|
||||
return { error: err.message || "Unknown error" };
|
||||
}
|
||||
};
|
||||
|
||||
private static async completionPercentage(
|
||||
client: LinearClient,
|
||||
issue: Issue,
|
||||
state: WorkflowState
|
||||
) {
|
||||
const defaultCompletionPercentage = 0.5; // fallback when we cannot determine actual value.
|
||||
|
||||
if (state.type !== "started") {
|
||||
return defaultCompletionPercentage;
|
||||
}
|
||||
|
||||
const team = await issue.team;
|
||||
if (!team) {
|
||||
return defaultCompletionPercentage;
|
||||
}
|
||||
|
||||
const allStates = await client.paginate(client.workflowStates, {
|
||||
filter: {
|
||||
team: { id: { eq: team.id } },
|
||||
type: { eq: "started" },
|
||||
},
|
||||
});
|
||||
const states = sortBy(
|
||||
allStates.map((s) => ({
|
||||
name: s.name,
|
||||
position: s.position,
|
||||
})),
|
||||
(s) => s.position
|
||||
);
|
||||
|
||||
const idx = states.findIndex((s) => s.name === state.name);
|
||||
|
||||
if (idx === -1) {
|
||||
return defaultCompletionPercentage;
|
||||
} else if (states.length === 1) {
|
||||
return 0.5;
|
||||
} else if (states.length === 2) {
|
||||
return idx === 0 ? 0.5 : 0.75;
|
||||
} else {
|
||||
return (idx + 1) / (states.length + 1); // add 1 to states for the "done" state.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a given URL and returns resource identifiers for Linear specific URLs
|
||||
*
|
||||
* @param url URL to parse
|
||||
* @returns {object} Containing resource identifiers - `workspaceKey`, `type`, `id` and `name`.
|
||||
*/
|
||||
private static parseUrl(url: string) {
|
||||
const { hostname, pathname } = new URL(url);
|
||||
if (hostname !== "linear.app") {
|
||||
return;
|
||||
}
|
||||
|
||||
const parts = pathname.split("/");
|
||||
const workspaceKey = parts[1];
|
||||
const type = parts[2] ? (parts[2] as UnfurlResourceType) : undefined;
|
||||
const id = parts[3];
|
||||
const name = parts[4];
|
||||
|
||||
if (!type || !Linear.supportedUnfurls.includes(type)) {
|
||||
return;
|
||||
}
|
||||
|
||||
return { workspaceKey, type, id, name };
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import { Integration } from "@server/models";
|
||||
import { Buckets } from "@server/models/helpers/AttachmentHelper";
|
||||
import BaseTask, { TaskPriority } from "@server/queues/tasks/BaseTask";
|
||||
import FileStorage from "@server/storage/files";
|
||||
|
||||
type Props = {
|
||||
/** The integrationId to operate on */
|
||||
integrationId: string;
|
||||
/** The original logoUrl from Linear */
|
||||
logoUrl: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* A task that uploads the provided logoUrl to storage and updates the
|
||||
* Linear integration record with the new url.
|
||||
*/
|
||||
export default class UploadLinearWorkspaceLogoTask extends BaseTask<Props> {
|
||||
public async perform(props: Props) {
|
||||
const integration = await Integration.scope("withAuthentication").findByPk<
|
||||
Integration<IntegrationType.Embed>
|
||||
>(props.integrationId);
|
||||
if (!integration || integration.service !== IntegrationService.Linear) {
|
||||
return;
|
||||
}
|
||||
|
||||
const res = await FileStorage.storeFromUrl(
|
||||
props.logoUrl,
|
||||
`${Buckets.avatars}/${integration.teamId}/${uuidv4()}`,
|
||||
"public-read",
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${integration.authentication.token}`,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
if (res?.url) {
|
||||
integration.settings.linear!.workspace.logoUrl = res.url;
|
||||
integration.changed("settings", true);
|
||||
await integration.save();
|
||||
}
|
||||
}
|
||||
|
||||
public get options() {
|
||||
return {
|
||||
attempts: 3,
|
||||
priority: TaskPriority.Normal,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import Logger from "@server/logging/Logger";
|
||||
import { Integration } from "@server/models";
|
||||
import { Linear } from "./linear";
|
||||
|
||||
export async function uninstall(
|
||||
integration: Integration<IntegrationType.Embed>
|
||||
) {
|
||||
if (integration.service !== IntegrationService.Linear) {
|
||||
return;
|
||||
}
|
||||
|
||||
const authentication = await integration.$get("authentication");
|
||||
|
||||
if (!authentication) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await Linear.revokeAccess(authentication.token);
|
||||
} catch (err) {
|
||||
// suppress error since this is a best-effort operation.
|
||||
Logger.error("Failed to revoke Linear access token", err);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import queryString from "query-string";
|
||||
import env from "@shared/env";
|
||||
import { integrationSettingsPath } from "@shared/utils/routeHelpers";
|
||||
|
||||
export type OAuthState = {
|
||||
teamId: string;
|
||||
};
|
||||
|
||||
export class LinearUtils {
|
||||
private static oauthScopes = "read,issues:create";
|
||||
|
||||
public static tokenUrl = "https://api.linear.app/oauth/token";
|
||||
public static revokeUrl = "https://api.linear.app/oauth/revoke";
|
||||
private static authBaseUrl = "https://linear.app/oauth/authorize";
|
||||
|
||||
private static settingsUrl = integrationSettingsPath("linear");
|
||||
|
||||
static parseState(state: string): OAuthState {
|
||||
return JSON.parse(state);
|
||||
}
|
||||
|
||||
static successUrl() {
|
||||
return this.settingsUrl;
|
||||
}
|
||||
|
||||
static errorUrl(error: string) {
|
||||
return `${this.settingsUrl}?error=${error}`;
|
||||
}
|
||||
|
||||
static callbackUrl(
|
||||
{ baseUrl, params }: { baseUrl: string; params?: string } = {
|
||||
baseUrl: `${env.URL}`,
|
||||
params: undefined,
|
||||
}
|
||||
) {
|
||||
return params
|
||||
? `${baseUrl}/api/linear.callback?${params}`
|
||||
: `${baseUrl}/api/linear.callback`;
|
||||
}
|
||||
|
||||
static authUrl({ state }: { state: OAuthState }) {
|
||||
const params = {
|
||||
client_id: env.LINEAR_CLIENT_ID,
|
||||
redirect_uri: this.callbackUrl(),
|
||||
state: JSON.stringify(state),
|
||||
scope: this.oauthScopes,
|
||||
response_type: "code",
|
||||
prompt: "consent",
|
||||
actor: "app",
|
||||
};
|
||||
return `${this.authBaseUrl}?${queryString.stringify(params)}`;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,10 @@
|
||||
import Router from "koa-router";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import { parseDomain } from "@shared/utils/domains";
|
||||
import Logger from "@server/logging/Logger";
|
||||
import apexAuthRedirect from "@server/middlewares/apexAuthRedirect";
|
||||
import auth from "@server/middlewares/authentication";
|
||||
import { transaction } from "@server/middlewares/transaction";
|
||||
import validate from "@server/middlewares/validate";
|
||||
import { Integration, IntegrationAuthentication, Team } from "@server/models";
|
||||
import { Integration, IntegrationAuthentication } from "@server/models";
|
||||
import { APIContext } from "@server/types";
|
||||
import { NotionClient } from "../notion";
|
||||
import * as T from "./schema";
|
||||
@@ -17,49 +16,21 @@ router.get(
|
||||
"notion.callback",
|
||||
auth({ optional: true }),
|
||||
validate(T.NotionCallbackSchema),
|
||||
apexAuthRedirect<T.NotionCallbackReq>({
|
||||
getTeamId: (ctx) => NotionUtils.parseState(ctx.input.query.state)?.teamId,
|
||||
getRedirectPath: (ctx, team) =>
|
||||
NotionUtils.callbackUrl({
|
||||
baseUrl: team.url,
|
||||
params: ctx.request.querystring,
|
||||
}),
|
||||
getErrorPath: () => NotionUtils.errorUrl("unauthenticated"),
|
||||
}),
|
||||
transaction(),
|
||||
async (ctx: APIContext<T.NotionCallbackReq>) => {
|
||||
const { code, state, error } = ctx.input.query;
|
||||
const { code, error } = ctx.input.query;
|
||||
const { user } = ctx.state.auth;
|
||||
const { transaction } = ctx.state;
|
||||
|
||||
let parsedState;
|
||||
try {
|
||||
parsedState = NotionUtils.parseState(state);
|
||||
} catch {
|
||||
ctx.redirect(NotionUtils.errorUrl("invalid_state"));
|
||||
return;
|
||||
}
|
||||
|
||||
const { teamId } = parsedState;
|
||||
|
||||
// This code block accounts for the root domain being unable to access authentication for subdomains.
|
||||
// We must forward to the appropriate subdomain to complete the oauth flow.
|
||||
if (!user) {
|
||||
if (teamId) {
|
||||
try {
|
||||
const team = await Team.findByPk(teamId, {
|
||||
rejectOnEmpty: true,
|
||||
transaction,
|
||||
});
|
||||
|
||||
return parseDomain(ctx.host).teamSubdomain === team.subdomain
|
||||
? ctx.redirect("/")
|
||||
: ctx.redirectOnClient(
|
||||
NotionUtils.callbackUrl({
|
||||
baseUrl: team.url,
|
||||
params: ctx.request.querystring,
|
||||
})
|
||||
);
|
||||
} catch (err) {
|
||||
Logger.error(`Error fetching team for teamId: ${teamId}!`, err);
|
||||
return ctx.redirect(NotionUtils.errorUrl("unauthenticated"));
|
||||
}
|
||||
} else {
|
||||
return ctx.redirect(NotionUtils.errorUrl("unauthenticated"));
|
||||
}
|
||||
}
|
||||
|
||||
// Check error after any sub-domain redirection. Otherwise, the user will be redirected to the root domain.
|
||||
if (error) {
|
||||
ctx.redirect(NotionUtils.errorUrl(error));
|
||||
|
||||
@@ -15,9 +15,11 @@ import {
|
||||
import { RateLimit } from "async-sema";
|
||||
import emojiRegex from "emoji-regex";
|
||||
import compact from "lodash/compact";
|
||||
import truncate from "lodash/truncate";
|
||||
import { z } from "zod";
|
||||
import { Second } from "@shared/utils/time";
|
||||
import { isUrl } from "@shared/utils/urls";
|
||||
import { CollectionValidation, DocumentValidation } from "@shared/validations";
|
||||
import { NotionUtils } from "../shared/NotionUtils";
|
||||
import { Block, Page, PageType } from "../shared/types";
|
||||
import env from "./env";
|
||||
@@ -116,7 +118,9 @@ export class NotionClient {
|
||||
pages.push({
|
||||
type: item.object === "page" ? PageType.Page : PageType.Database,
|
||||
id: item.id,
|
||||
name: this.parseTitle(item),
|
||||
name: this.parseTitle(item, {
|
||||
maxLength: CollectionValidation.maxNameLength,
|
||||
}),
|
||||
emoji: this.parseEmoji(item),
|
||||
});
|
||||
}
|
||||
@@ -129,14 +133,22 @@ export class NotionClient {
|
||||
return pages;
|
||||
}
|
||||
|
||||
async fetchPage(pageId: string) {
|
||||
const pageInfo = await this.fetchPageInfo(pageId);
|
||||
async fetchPage(
|
||||
pageId: string,
|
||||
{ titleMaxLength }: { titleMaxLength: number }
|
||||
) {
|
||||
const pageInfo = await this.fetchPageInfo(pageId, { titleMaxLength });
|
||||
const blocks = await this.fetchBlockChildren(pageId);
|
||||
return { ...pageInfo, blocks };
|
||||
}
|
||||
|
||||
async fetchDatabase(databaseId: string) {
|
||||
const databaseInfo = await this.fetchDatabaseInfo(databaseId);
|
||||
async fetchDatabase(
|
||||
databaseId: string,
|
||||
{ titleMaxLength }: { titleMaxLength: number }
|
||||
) {
|
||||
const databaseInfo = await this.fetchDatabaseInfo(databaseId, {
|
||||
titleMaxLength,
|
||||
});
|
||||
const pages = await this.queryDatabase(databaseId);
|
||||
return { ...databaseInfo, pages };
|
||||
}
|
||||
@@ -162,7 +174,6 @@ export class NotionClient {
|
||||
cursor = response.next_cursor ?? undefined;
|
||||
}
|
||||
|
||||
// Recursive fetch when direct children have their own children.
|
||||
await Promise.all(
|
||||
blocks.map(async (block) => {
|
||||
if (
|
||||
@@ -203,7 +214,9 @@ export class NotionClient {
|
||||
return {
|
||||
type: PageType.Page,
|
||||
id: item.id,
|
||||
name: this.parseTitle(item),
|
||||
name: this.parseTitle(item, {
|
||||
maxLength: DocumentValidation.maxTitleLength,
|
||||
}),
|
||||
emoji: this.parseEmoji(item),
|
||||
};
|
||||
})
|
||||
@@ -218,7 +231,10 @@ export class NotionClient {
|
||||
return pages;
|
||||
}
|
||||
|
||||
private async fetchPageInfo(pageId: string): Promise<PageInfo> {
|
||||
private async fetchPageInfo(
|
||||
pageId: string,
|
||||
{ titleMaxLength }: { titleMaxLength: number }
|
||||
): Promise<PageInfo> {
|
||||
await this.limiter();
|
||||
const page = (await this.client.pages.retrieve({
|
||||
page_id: pageId,
|
||||
@@ -227,7 +243,9 @@ export class NotionClient {
|
||||
const author = await this.fetchUsername(page.created_by.id);
|
||||
|
||||
return {
|
||||
title: this.parseTitle(page),
|
||||
title: this.parseTitle(page, {
|
||||
maxLength: titleMaxLength,
|
||||
}),
|
||||
emoji: this.parseEmoji(page),
|
||||
author: author ?? undefined,
|
||||
createdAt: !page.created_time ? undefined : new Date(page.created_time),
|
||||
@@ -237,7 +255,10 @@ export class NotionClient {
|
||||
};
|
||||
}
|
||||
|
||||
private async fetchDatabaseInfo(databaseId: string): Promise<PageInfo> {
|
||||
private async fetchDatabaseInfo(
|
||||
databaseId: string,
|
||||
{ titleMaxLength }: { titleMaxLength: number }
|
||||
): Promise<PageInfo> {
|
||||
await this.limiter();
|
||||
const database = (await this.client.databases.retrieve({
|
||||
database_id: databaseId,
|
||||
@@ -246,7 +267,9 @@ export class NotionClient {
|
||||
const author = await this.fetchUsername(database.created_by.id);
|
||||
|
||||
return {
|
||||
title: this.parseTitle(database),
|
||||
title: this.parseTitle(database, {
|
||||
maxLength: titleMaxLength,
|
||||
}),
|
||||
emoji: this.parseEmoji(database),
|
||||
author: author ?? undefined,
|
||||
createdAt: !database.created_time
|
||||
@@ -267,12 +290,12 @@ export class NotionClient {
|
||||
return user.name;
|
||||
}
|
||||
|
||||
// bot belongs to a user, get the user's name.
|
||||
// bot belongs to a user, get the user's name
|
||||
if (user.bot.owner.type === "user" && isFullUser(user.bot.owner.user)) {
|
||||
return user.bot.owner.user.name;
|
||||
}
|
||||
|
||||
// bot belongs to a workspace, fallback to bot's name.
|
||||
// bot belongs to a workspace, fallback to bot's name
|
||||
return user.name;
|
||||
} catch (error) {
|
||||
// Handle the case where a user can't be found
|
||||
@@ -286,7 +309,12 @@ export class NotionClient {
|
||||
}
|
||||
}
|
||||
|
||||
private parseTitle(item: PageObjectResponse | DatabaseObjectResponse) {
|
||||
private parseTitle(
|
||||
item: PageObjectResponse | DatabaseObjectResponse,
|
||||
{
|
||||
maxLength = DocumentValidation.maxTitleLength,
|
||||
}: { maxLength?: number } = {}
|
||||
) {
|
||||
let richTexts: RichTextItemResponse[];
|
||||
|
||||
if (item.object === "page") {
|
||||
@@ -298,7 +326,10 @@ export class NotionClient {
|
||||
richTexts = item.title;
|
||||
}
|
||||
|
||||
return richTexts.map((richText) => richText.plain_text).join("");
|
||||
const title = richTexts.map((richText) => richText.plain_text).join("");
|
||||
|
||||
// Truncate title to fit within validation limits
|
||||
return truncate(title, { length: maxLength });
|
||||
}
|
||||
|
||||
private parseEmoji(item: PageObjectResponse | DatabaseObjectResponse) {
|
||||
|
||||
@@ -2,6 +2,7 @@ import { APIResponseError, APIErrorCode } from "@notionhq/client";
|
||||
import { ImportTaskInput, ImportTaskOutput } from "@shared/schema";
|
||||
import { IntegrationService, ProsemirrorDoc } from "@shared/types";
|
||||
import { ProsemirrorHelper } from "@shared/utils/ProsemirrorHelper";
|
||||
import { CollectionValidation, DocumentValidation } from "@shared/validations";
|
||||
import Logger from "@server/logging/Logger";
|
||||
import { Integration } from "@server/models";
|
||||
import ImportTask from "@server/models/ImportTask";
|
||||
@@ -95,12 +96,17 @@ export default class NotionAPIImportTask extends APIImportTask<IntegrationServic
|
||||
client: NotionClient;
|
||||
}): Promise<ParsePageOutput | null> {
|
||||
const collectionExternalId = item.collectionExternalId ?? item.externalId;
|
||||
const titleMaxLength =
|
||||
item.externalId === collectionExternalId // This means it's a root page which will be imported as a collection
|
||||
? CollectionValidation.maxNameLength
|
||||
: DocumentValidation.maxTitleLength;
|
||||
|
||||
try {
|
||||
// Convert Notion database to an empty page with "pages in database" as its children.
|
||||
if (item.type === PageType.Database) {
|
||||
const { pages, ...databaseInfo } = await client.fetchDatabase(
|
||||
item.externalId
|
||||
item.externalId,
|
||||
{ titleMaxLength }
|
||||
);
|
||||
|
||||
return {
|
||||
@@ -115,7 +121,9 @@ export default class NotionAPIImportTask extends APIImportTask<IntegrationServic
|
||||
};
|
||||
}
|
||||
|
||||
const { blocks, ...pageInfo } = await client.fetchPage(item.externalId);
|
||||
const { blocks, ...pageInfo } = await client.fetchPage(item.externalId, {
|
||||
titleMaxLength,
|
||||
});
|
||||
|
||||
return {
|
||||
...pageInfo,
|
||||
|
||||
@@ -4,16 +4,15 @@ import Router from "koa-router";
|
||||
import { Profile } from "passport";
|
||||
import { Strategy as SlackStrategy } from "passport-slack-oauth2";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import { parseDomain } from "@shared/utils/domains";
|
||||
import accountProvisioner from "@server/commands/accountProvisioner";
|
||||
import { ValidationError } from "@server/errors";
|
||||
import apexAuthRedirect from "@server/middlewares/apexAuthRedirect";
|
||||
import auth from "@server/middlewares/authentication";
|
||||
import passportMiddleware from "@server/middlewares/passport";
|
||||
import validate from "@server/middlewares/validate";
|
||||
import {
|
||||
IntegrationAuthentication,
|
||||
Integration,
|
||||
Team,
|
||||
User,
|
||||
Collection,
|
||||
} from "@server/models";
|
||||
@@ -126,6 +125,15 @@ if (env.SLACK_CLIENT_ID && env.SLACK_CLIENT_SECRET) {
|
||||
"slack.post",
|
||||
auth({ optional: true }),
|
||||
validate(T.SlackPostSchema),
|
||||
apexAuthRedirect<T.SlackPostReq>({
|
||||
getTeamId: (ctx) => SlackUtils.parseState(ctx.input.query.state)?.teamId,
|
||||
getRedirectPath: (ctx, team) =>
|
||||
SlackUtils.connectUrl({
|
||||
baseUrl: team.url,
|
||||
params: ctx.request.querystring,
|
||||
}),
|
||||
getErrorPath: () => SlackUtils.errorUrl("unauthenticated"),
|
||||
}),
|
||||
async (ctx: APIContext<T.SlackPostReq>) => {
|
||||
const { code, error, state } = ctx.input.query;
|
||||
const { user } = ctx.state.auth;
|
||||
@@ -144,31 +152,7 @@ if (env.SLACK_CLIENT_ID && env.SLACK_CLIENT_SECRET) {
|
||||
throw ValidationError("Invalid state");
|
||||
}
|
||||
|
||||
const { teamId, collectionId, type } = parsedState;
|
||||
|
||||
// This code block accounts for the root domain being unable to access authentication for
|
||||
// subdomains. We must forward to the appropriate subdomain to complete the OAuth flow.
|
||||
if (!user) {
|
||||
if (teamId) {
|
||||
try {
|
||||
const team = await Team.findByPk(teamId, {
|
||||
rejectOnEmpty: true,
|
||||
});
|
||||
return parseDomain(ctx.host).teamSubdomain === team.subdomain
|
||||
? ctx.redirect("/")
|
||||
: ctx.redirectOnClient(
|
||||
SlackUtils.connectUrl({
|
||||
baseUrl: team.url,
|
||||
params: ctx.request.querystring,
|
||||
})
|
||||
);
|
||||
} catch (err) {
|
||||
return ctx.redirect(SlackUtils.errorUrl("unauthenticated"));
|
||||
}
|
||||
} else {
|
||||
return ctx.redirect(SlackUtils.errorUrl("unauthenticated"));
|
||||
}
|
||||
}
|
||||
const { collectionId, type } = parsedState;
|
||||
|
||||
switch (type) {
|
||||
case IntegrationType.Post: {
|
||||
|
||||
@@ -277,6 +277,35 @@ describe("#files.get", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("should succeed with status 200 ok when avatar is requested using key", async () => {
|
||||
const user = await buildUser();
|
||||
const key = path.join("avatars", user.id, uuidV4());
|
||||
const attachment = await buildAttachment({
|
||||
key,
|
||||
teamId: user.teamId,
|
||||
userId: user.id,
|
||||
contentType: "image/jpg",
|
||||
acl: "public-read",
|
||||
});
|
||||
|
||||
await attachment.destroy({
|
||||
hooks: false,
|
||||
});
|
||||
|
||||
ensureDirSync(
|
||||
path.dirname(path.join(env.FILE_STORAGE_LOCAL_ROOT_DIR, key))
|
||||
);
|
||||
|
||||
copyFileSync(
|
||||
path.resolve(__dirname, "..", "test", "fixtures", "avatar.jpg"),
|
||||
path.join(env.FILE_STORAGE_LOCAL_ROOT_DIR, key)
|
||||
);
|
||||
|
||||
const res = await server.get(`/api/files.get?key=${key}`);
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers.get("Content-Disposition")).toEqual("attachment");
|
||||
});
|
||||
|
||||
it("should succeed with status 200 ok when avatar is requested using key", async () => {
|
||||
const user = await buildUser();
|
||||
const key = path.join("avatars", user.id, uuidV4());
|
||||
|
||||
@@ -78,17 +78,13 @@ router.get(
|
||||
const { isPublicBucket, fileName } = AttachmentHelper.parseKey(key);
|
||||
const skipAuthorize = isPublicBucket || isSignedRequest;
|
||||
const cacheHeader = "max-age=604800, immutable";
|
||||
|
||||
const attachment = await Attachment.findOne({
|
||||
where: { key },
|
||||
});
|
||||
|
||||
// Attachment is requested with a key, but it was not found
|
||||
if (!attachment && !!ctx.input.query.key) {
|
||||
throw NotFoundError();
|
||||
}
|
||||
const attachment = await Attachment.findByKey(key);
|
||||
|
||||
if (!skipAuthorize) {
|
||||
if (!attachment && !!ctx.input.query.key) {
|
||||
throw NotFoundError();
|
||||
}
|
||||
|
||||
authorize(actor, "read", attachment);
|
||||
}
|
||||
|
||||
@@ -100,6 +96,7 @@ router.get(
|
||||
ctx.set("Accept-Ranges", "bytes");
|
||||
ctx.set("Cache-Control", cacheHeader);
|
||||
ctx.set("Content-Type", contentType);
|
||||
ctx.set("Content-Security-Policy", "sandbox");
|
||||
ctx.attachment(fileName, {
|
||||
type: forceDownload
|
||||
? "attachment"
|
||||
|
||||
@@ -52,18 +52,18 @@ function Webhooks() {
|
||||
in near real-time.
|
||||
</Trans>
|
||||
</Text>
|
||||
<PaginatedList
|
||||
<PaginatedList<WebhookSubscription>
|
||||
fetch={webhookSubscriptions.fetchPage}
|
||||
items={webhookSubscriptions.enabled}
|
||||
heading={<h2>{t("Active")}</h2>}
|
||||
renderItem={(webhook: WebhookSubscription) => (
|
||||
renderItem={(webhook) => (
|
||||
<WebhookSubscriptionListItem key={webhook.id} webhook={webhook} />
|
||||
)}
|
||||
/>
|
||||
<PaginatedList
|
||||
<PaginatedList<WebhookSubscription>
|
||||
items={webhookSubscriptions.disabled}
|
||||
heading={<h2>{t("Inactive")}</h2>}
|
||||
renderItem={(webhook: WebhookSubscription) => (
|
||||
renderItem={(webhook) => (
|
||||
<WebhookSubscriptionListItem key={webhook.id} webhook={webhook} />
|
||||
)}
|
||||
/>
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
import { Next } from "koa";
|
||||
import { parseDomain } from "@shared/utils/domains";
|
||||
import { Team } from "@server/models";
|
||||
import { APIContext } from "@server/types";
|
||||
|
||||
/**
|
||||
* An authentication middleware that should be used on routes that return from external auth flows
|
||||
* to the apex domain. In these cases the user will be redirected to the correct subdomain where
|
||||
* they are authenticated.
|
||||
*
|
||||
* @param options Options for the middleware
|
||||
* @returns Koa middleware function
|
||||
*/
|
||||
export default function apexAuthRedirect<T>({
|
||||
getTeamId,
|
||||
getRedirectPath,
|
||||
getErrorPath,
|
||||
}: {
|
||||
/** Get the team ID for the current request */
|
||||
getTeamId: (ctx: APIContext<T>) => string | null | undefined;
|
||||
/** Get the redirect URL for the given team ID */
|
||||
getRedirectPath: (ctx: APIContext<T>, team: Team) => string;
|
||||
/** Get the error URL for the current request */
|
||||
getErrorPath: (ctx: APIContext<T>) => string;
|
||||
}) {
|
||||
return async function apexAuthRedirectMiddleware(
|
||||
ctx: APIContext<T>,
|
||||
next: Next
|
||||
) {
|
||||
const { user } = ctx.state.auth;
|
||||
if (user) {
|
||||
return next();
|
||||
}
|
||||
|
||||
const teamId = getTeamId(ctx);
|
||||
|
||||
if (teamId) {
|
||||
try {
|
||||
const team = await Team.findByPk(teamId, {
|
||||
attributes: ["id", "subdomain"],
|
||||
rejectOnEmpty: true,
|
||||
});
|
||||
|
||||
return parseDomain(ctx.host).teamSubdomain === team.subdomain
|
||||
? ctx.redirect("/")
|
||||
: ctx.redirectOnClient(getRedirectPath(ctx, team));
|
||||
} catch (err) {
|
||||
return ctx.redirect(getErrorPath(ctx));
|
||||
}
|
||||
} else {
|
||||
return ctx.redirect(getErrorPath(ctx));
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
/** @type {import('sequelize-cli').Migration} */
|
||||
module.exports = {
|
||||
async up(queryInterface, Sequelize) {
|
||||
queryInterface.addColumn("integrations", "issueSources", {
|
||||
type: Sequelize.JSONB,
|
||||
allowNull: true,
|
||||
});
|
||||
},
|
||||
|
||||
async down(queryInterface, Sequelize) {
|
||||
queryInterface.removeColumn("integrations", "issueSources");
|
||||
},
|
||||
};
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
InferAttributes,
|
||||
InferCreationAttributes,
|
||||
QueryTypes,
|
||||
FindOptions,
|
||||
} from "sequelize";
|
||||
import {
|
||||
BeforeDestroy,
|
||||
@@ -164,6 +165,20 @@ class Attachment extends IdModel<
|
||||
|
||||
// static methods
|
||||
|
||||
/**
|
||||
* Find an attachment by its key.
|
||||
*
|
||||
* @param key - The key of the attachment to find.
|
||||
* @param options - Additional options for the query.
|
||||
* @returns A promise resolving to the attachment with the given key, or null if not found.
|
||||
*/
|
||||
static async findByKey(
|
||||
key: string,
|
||||
options?: FindOptions<Attachment>
|
||||
): Promise<Attachment | null> {
|
||||
return this.findOne({ where: { key }, ...options });
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the total size of all attachments for a given team.
|
||||
*
|
||||
|
||||
@@ -13,6 +13,7 @@ import {
|
||||
IsIn,
|
||||
AfterDestroy,
|
||||
} from "sequelize-typescript";
|
||||
import { IssueSource } from "@shared/schema";
|
||||
import { IntegrationType, IntegrationService } from "@shared/types";
|
||||
import type { IntegrationSettings } from "@shared/types";
|
||||
import Collection from "@server/models/Collection";
|
||||
@@ -53,6 +54,9 @@ class Integration<T = unknown> extends ParanoidModel<
|
||||
@Column(DataType.ARRAY(DataType.STRING))
|
||||
events: string[];
|
||||
|
||||
@Column(DataType.JSONB)
|
||||
issueSources: IssueSource[] | null;
|
||||
|
||||
// associations
|
||||
|
||||
@BelongsTo(() => User, "userId")
|
||||
|
||||
@@ -57,7 +57,7 @@ describe("policies/team", () => {
|
||||
const permissions = new Map<UserRole, boolean>([
|
||||
[UserRole.Admin, true],
|
||||
[UserRole.Member, true],
|
||||
[UserRole.Viewer, false],
|
||||
[UserRole.Viewer, true],
|
||||
[UserRole.Guest, true],
|
||||
]);
|
||||
for (const [role, permission] of permissions.entries()) {
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
or,
|
||||
} from "./utils";
|
||||
|
||||
allow(User, "read", Team, isTeamModel);
|
||||
allow(User, ["read", "readTemplate"], Team, isTeamModel);
|
||||
|
||||
allow(User, "share", Team, (actor, team) =>
|
||||
and(
|
||||
@@ -50,10 +50,6 @@ allow(User, "createTemplate", Team, (actor, team) =>
|
||||
)
|
||||
);
|
||||
|
||||
allow(User, "readTemplate", Team, (actor, team) =>
|
||||
and(!actor.isViewer, isTeamModel(actor, team))
|
||||
);
|
||||
|
||||
allow(User, "updateTemplate", Team, (actor, team) =>
|
||||
and(
|
||||
//
|
||||
|
||||
+54
-38
@@ -71,47 +71,63 @@ const presentDocument = (
|
||||
|
||||
const presentPR = (
|
||||
data: Record<string, any>
|
||||
): UnfurlResponse[UnfurlResourceType.PR] => ({
|
||||
url: data.html_url,
|
||||
type: UnfurlResourceType.PR,
|
||||
id: `#${data.number}`,
|
||||
title: data.title,
|
||||
description: data.body,
|
||||
author: {
|
||||
name: data.user.login,
|
||||
avatarUrl: data.user.avatar_url,
|
||||
},
|
||||
state: {
|
||||
name: data.merged ? "merged" : data.state,
|
||||
color: GitHubUtils.getColorForStatus(data.merged ? "merged" : data.state),
|
||||
},
|
||||
createdAt: data.created_at,
|
||||
});
|
||||
): UnfurlResponse[UnfurlResourceType.PR] => {
|
||||
// TODO: For backwards compatibility, remove once cache has expired in next release.
|
||||
if (data.transformed_unfurl) {
|
||||
delete data.transformed_unfurl;
|
||||
return data as UnfurlResponse[UnfurlResourceType.PR]; // this would have been transformed by the unfurl plugin.
|
||||
}
|
||||
|
||||
return {
|
||||
url: data.html_url,
|
||||
type: UnfurlResourceType.PR,
|
||||
id: `#${data.number}`,
|
||||
title: data.title,
|
||||
description: data.body,
|
||||
author: {
|
||||
name: data.user.login,
|
||||
avatarUrl: data.user.avatar_url,
|
||||
},
|
||||
state: {
|
||||
name: data.merged ? "merged" : data.state,
|
||||
color: GitHubUtils.getColorForStatus(data.merged ? "merged" : data.state),
|
||||
},
|
||||
createdAt: data.created_at,
|
||||
};
|
||||
};
|
||||
|
||||
const presentIssue = (
|
||||
data: Record<string, any>
|
||||
): UnfurlResponse[UnfurlResourceType.Issue] => ({
|
||||
url: data.html_url,
|
||||
type: UnfurlResourceType.Issue,
|
||||
id: `#${data.number}`,
|
||||
title: data.title,
|
||||
description: data.body_text,
|
||||
author: {
|
||||
name: data.user.login,
|
||||
avatarUrl: data.user.avatar_url,
|
||||
},
|
||||
labels: data.labels.map((label: { name: string; color: string }) => ({
|
||||
name: label.name,
|
||||
color: `#${label.color}`,
|
||||
})),
|
||||
state: {
|
||||
name: data.state,
|
||||
color: GitHubUtils.getColorForStatus(
|
||||
data.state === "closed" ? "done" : data.state
|
||||
),
|
||||
},
|
||||
createdAt: data.created_at,
|
||||
});
|
||||
): UnfurlResponse[UnfurlResourceType.Issue] => {
|
||||
// TODO: For backwards compatibility, remove once cache has expired in next release.
|
||||
if (data.transformed_unfurl) {
|
||||
delete data.transformed_unfurl;
|
||||
return data as UnfurlResponse[UnfurlResourceType.Issue]; // this would have been transformed by the unfurl plugin.
|
||||
}
|
||||
|
||||
return {
|
||||
url: data.html_url,
|
||||
type: UnfurlResourceType.Issue,
|
||||
id: `#${data.number}`,
|
||||
title: data.title,
|
||||
description: data.body_text,
|
||||
author: {
|
||||
name: data.user.login,
|
||||
avatarUrl: data.user.avatar_url,
|
||||
},
|
||||
labels: data.labels.map((label: { name: string; color: string }) => ({
|
||||
name: label.name,
|
||||
color: `#${label.color}`,
|
||||
})),
|
||||
state: {
|
||||
name: data.state,
|
||||
color: GitHubUtils.getColorForStatus(
|
||||
data.state === "closed" ? "done" : data.state
|
||||
),
|
||||
},
|
||||
createdAt: data.created_at,
|
||||
};
|
||||
};
|
||||
|
||||
const presentLastOnlineInfoFor = (user: User) => {
|
||||
const locale = dateLocale(user.language);
|
||||
|
||||
@@ -3,6 +3,7 @@ import { Integration } from "@server/models";
|
||||
import BaseProcessor from "@server/queues/processors/BaseProcessor";
|
||||
import { IntegrationEvent, Event } from "@server/types";
|
||||
import { CacheHelper } from "@server/utils/CacheHelper";
|
||||
import CacheIssueSourcesTask from "../tasks/CacheIssueSourcesTask";
|
||||
|
||||
export default class IntegrationCreatedProcessor extends BaseProcessor {
|
||||
static applicableEvents: Event["name"][] = ["integrations.create"];
|
||||
@@ -18,6 +19,11 @@ export default class IntegrationCreatedProcessor extends BaseProcessor {
|
||||
return;
|
||||
}
|
||||
|
||||
// Store the available issue sources in the integration record.
|
||||
await CacheIssueSourcesTask.schedule({
|
||||
integrationId: integration.id,
|
||||
});
|
||||
|
||||
// Clear the cache of unfurled data for the team as it may be stale now.
|
||||
await CacheHelper.clearData(CacheHelper.getUnfurlKey(integration.teamId));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
import { Integration } from "@server/models";
|
||||
import { sequelize } from "@server/storage/database";
|
||||
import { Hook, PluginManager } from "@server/utils/PluginManager";
|
||||
import BaseTask from "./BaseTask";
|
||||
|
||||
const plugins = PluginManager.getHooks(Hook.IssueProvider);
|
||||
|
||||
type Props = {
|
||||
integrationId: string;
|
||||
};
|
||||
|
||||
export default class CacheIssueSourcesTask extends BaseTask<Props> {
|
||||
async perform({ integrationId }: Props) {
|
||||
const integration = await Integration.findByPk(integrationId);
|
||||
if (!integration) {
|
||||
return;
|
||||
}
|
||||
|
||||
const plugin = plugins.find((p) => p.value.service === integration.service);
|
||||
if (!plugin) {
|
||||
return;
|
||||
}
|
||||
|
||||
const sources = await plugin.value.fetchSources(integration);
|
||||
|
||||
await sequelize.transaction(async (transaction) => {
|
||||
await integration.reload({ transaction, lock: transaction.LOCK.UPDATE });
|
||||
integration.issueSources = sources;
|
||||
await integration.save({ transaction });
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -100,7 +100,7 @@ router.post(
|
||||
for (const plugin of plugins) {
|
||||
const unfurl = await plugin.value.unfurl(url, actor);
|
||||
if (unfurl) {
|
||||
if (unfurl.error) {
|
||||
if ("error" in unfurl) {
|
||||
return (ctx.response.status = 204);
|
||||
} else {
|
||||
const data = unfurl as Unfurl;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Blob } from "buffer";
|
||||
import { Readable } from "stream";
|
||||
import { PresignedPost } from "@aws-sdk/s3-presigned-post";
|
||||
import omit from "lodash/omit";
|
||||
import FileHelper from "@shared/editor/lib/FileHelper";
|
||||
import { isBase64Url, isInternalUrl } from "@shared/utils/urls";
|
||||
import env from "@server/env";
|
||||
@@ -162,6 +163,12 @@ export default abstract class BaseStorage {
|
||||
buffer = Buffer.from(match[2], "base64");
|
||||
} else {
|
||||
try {
|
||||
const headers = {
|
||||
"User-Agent": chromeUserAgent,
|
||||
...init?.headers,
|
||||
};
|
||||
const initWithoutHeaders = omit(init, ["headers"]);
|
||||
|
||||
const res = await fetch(url, {
|
||||
follow: 3,
|
||||
redirect: "follow",
|
||||
@@ -169,11 +176,9 @@ export default abstract class BaseStorage {
|
||||
options?.maxUploadSize ?? Infinity,
|
||||
env.FILE_STORAGE_UPLOAD_MAX_SIZE
|
||||
),
|
||||
headers: {
|
||||
"User-Agent": chromeUserAgent,
|
||||
},
|
||||
headers,
|
||||
timeout: 10000,
|
||||
...init,
|
||||
...initWithoutHeaders,
|
||||
});
|
||||
|
||||
if (!res.ok) {
|
||||
|
||||
+15
-1
@@ -10,6 +10,7 @@ import {
|
||||
JSONValue,
|
||||
UnfurlResourceType,
|
||||
ProsemirrorData,
|
||||
UnfurlResponse,
|
||||
} from "@shared/types";
|
||||
import { BaseSchema } from "@server/routes/api/schema";
|
||||
import { AccountProvisionerResult } from "./commands/accountProvisioner";
|
||||
@@ -576,7 +577,20 @@ export type CollectionJSONExport = {
|
||||
};
|
||||
};
|
||||
|
||||
export type Unfurl = { [x: string]: JSONValue; type: UnfurlResourceType };
|
||||
export type UnfurlIssueAndPR = (
|
||||
| UnfurlResponse[UnfurlResourceType.Issue]
|
||||
| UnfurlResponse[UnfurlResourceType.PR]
|
||||
) & { transformed_unfurl: true };
|
||||
|
||||
export type Unfurl =
|
||||
| UnfurlIssueAndPR
|
||||
| {
|
||||
type: Exclude<
|
||||
UnfurlResourceType,
|
||||
UnfurlResourceType.Issue | UnfurlResourceType.PR
|
||||
>;
|
||||
[x: string]: JSONValue;
|
||||
};
|
||||
|
||||
export type UnfurlError = { error: string };
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import { IssueSource } from "@shared/schema";
|
||||
import { IntegrationType, IssueTrackerIntegrationService } from "@shared/types";
|
||||
import { Integration } from "@server/models";
|
||||
|
||||
export abstract class BaseIssueProvider {
|
||||
service: IssueTrackerIntegrationService;
|
||||
|
||||
constructor(service: IssueTrackerIntegrationService) {
|
||||
this.service = service;
|
||||
}
|
||||
|
||||
abstract fetchSources(
|
||||
integration: Integration<IntegrationType.Embed>
|
||||
): Promise<IssueSource[]>;
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import Logger from "@server/logging/Logger";
|
||||
import type BaseProcessor from "@server/queues/processors/BaseProcessor";
|
||||
import type BaseTask from "@server/queues/tasks/BaseTask";
|
||||
import { UnfurlSignature, UninstallSignature } from "@server/types";
|
||||
import { BaseIssueProvider } from "./BaseIssueProvider";
|
||||
|
||||
export enum PluginPriority {
|
||||
VeryHigh = 0,
|
||||
@@ -25,6 +26,7 @@ export enum Hook {
|
||||
API = "api",
|
||||
AuthProvider = "authProvider",
|
||||
EmailTemplate = "emailTemplate",
|
||||
IssueProvider = "issueProvider",
|
||||
Processor = "processor",
|
||||
Task = "task",
|
||||
UnfurlProvider = "unfurl",
|
||||
@@ -39,6 +41,7 @@ type PluginValueMap = {
|
||||
[Hook.API]: Router;
|
||||
[Hook.AuthProvider]: { router: Router; id: string };
|
||||
[Hook.EmailTemplate]: typeof BaseEmail;
|
||||
[Hook.IssueProvider]: BaseIssueProvider;
|
||||
[Hook.Processor]: typeof BaseProcessor;
|
||||
[Hook.Task]: typeof BaseTask<any>;
|
||||
[Hook.Uninstall]: UninstallSignature;
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
import * as React from "react";
|
||||
import styled from "styled-components";
|
||||
import { s } from "../styles";
|
||||
|
||||
const BacktickSpan = styled.span`
|
||||
font-family: ${s("fontFamilyMono")};
|
||||
background: ${s("codeBackground")};
|
||||
border-radius: 3px;
|
||||
padding: 2px 4px;
|
||||
font-size: 90%;
|
||||
`;
|
||||
|
||||
interface Props {
|
||||
/** The content to be rendered that may contain backticks. */
|
||||
content: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Component to render backticked content with styling.
|
||||
* @param props - Props object containing the content to be rendered.
|
||||
* @returns JSX.Element - The rendered component.
|
||||
*/
|
||||
export const Backticks: React.FC<Props> = ({ content }) => {
|
||||
// Regex to match text between backticks
|
||||
const regex = /`([^`]+)`/g;
|
||||
const parts = content.split(regex);
|
||||
|
||||
return (
|
||||
<>
|
||||
{parts.map((part, i) => {
|
||||
// Even indices are normal text, odd indices are backticked content
|
||||
if (i % 2 === 0) {
|
||||
return part;
|
||||
}
|
||||
return <BacktickSpan key={i}>{part}</BacktickSpan>;
|
||||
})}
|
||||
</>
|
||||
);
|
||||
};
|
||||
@@ -1,74 +0,0 @@
|
||||
import * as React from "react";
|
||||
import styled from "styled-components";
|
||||
|
||||
type Props = {
|
||||
status: string;
|
||||
color: string;
|
||||
size?: number;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Issue status icon based on GitHub issue status, but can be used for any git-style integration.
|
||||
*/
|
||||
export function IssueStatusIcon({ size, ...rest }: Props) {
|
||||
return (
|
||||
<Icon size={size}>
|
||||
<BaseIcon {...rest} />
|
||||
</Icon>
|
||||
);
|
||||
}
|
||||
|
||||
const Icon = styled.span<{ size?: number }>`
|
||||
display: inline-flex;
|
||||
flex-shrink: 0;
|
||||
width: ${(props) => props.size ?? 24}px;
|
||||
height: ${(props) => props.size ?? 24}px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
`;
|
||||
|
||||
function BaseIcon(props: Props) {
|
||||
switch (props.status) {
|
||||
case "open":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
height="16"
|
||||
fill={props.color}
|
||||
className={props.className}
|
||||
>
|
||||
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" />
|
||||
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z" />
|
||||
</svg>
|
||||
);
|
||||
case "closed":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
height="16"
|
||||
fill={props.color}
|
||||
className={props.className}
|
||||
>
|
||||
<path d="M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z" />
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z" />
|
||||
</svg>
|
||||
);
|
||||
case "canceled":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
height="16"
|
||||
fill={props.color}
|
||||
className={props.className}
|
||||
>
|
||||
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z" />
|
||||
</svg>
|
||||
);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import React from "react";
|
||||
import { BaseIconProps } from ".";
|
||||
|
||||
export function GitHubIssueStatusIcon(props: BaseIconProps) {
|
||||
const { state, className, size = 16 } = props;
|
||||
|
||||
switch (state.name) {
|
||||
case "open":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width={size}
|
||||
height={size}
|
||||
fill={state.color}
|
||||
className={className}
|
||||
>
|
||||
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" />
|
||||
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z" />
|
||||
</svg>
|
||||
);
|
||||
case "closed":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width={size}
|
||||
height={size}
|
||||
fill={state.color}
|
||||
className={className}
|
||||
>
|
||||
<path d="M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z" />
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z" />
|
||||
</svg>
|
||||
);
|
||||
case "canceled":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width={size}
|
||||
height={size}
|
||||
fill={state.color}
|
||||
className={className}
|
||||
>
|
||||
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z" />
|
||||
</svg>
|
||||
);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
import * as React from "react";
|
||||
import { useTheme } from "styled-components";
|
||||
import { isSafari } from "../../utils/browser";
|
||||
import { BaseIconProps } from ".";
|
||||
|
||||
enum StateType {
|
||||
Triage = "triage",
|
||||
Backlog = "backlog",
|
||||
Unstarted = "unstarted",
|
||||
Started = "started",
|
||||
Completed = "completed",
|
||||
Canceled = "canceled",
|
||||
}
|
||||
|
||||
export function LinearIssueStatusIcon(props: BaseIconProps) {
|
||||
const theme = useTheme();
|
||||
const { state, size = 16 } = props;
|
||||
const percentage =
|
||||
state.type === StateType.Triage ||
|
||||
state.type === StateType.Backlog ||
|
||||
state.type === StateType.Unstarted
|
||||
? 0
|
||||
: state.type === StateType.Started
|
||||
? state.completionPercentage ?? 0.5
|
||||
: 1;
|
||||
const isTriage = state.type === StateType.Triage;
|
||||
const isBacklog = state.type === StateType.Backlog;
|
||||
const isCompleted = state.type === StateType.Completed;
|
||||
// Due to some rendering issues and differences between browsers, the logical constant 4 in the rendering below
|
||||
// needs to be a bit less to make 50% look like half a circle.
|
||||
const magicFour = isSafari() ? 3.895 : 3.98;
|
||||
|
||||
return (
|
||||
<svg width={size} height={size} viewBox="0 0 14 14" fill="none">
|
||||
<circle
|
||||
cx={7}
|
||||
cy={7}
|
||||
r={isTriage ? 3.5 : 6}
|
||||
fill="none"
|
||||
stroke={state.color}
|
||||
strokeWidth={isTriage ? 7 : 1.5}
|
||||
strokeDasharray={isTriage ? "2 0" : isBacklog ? "1.4 1.74" : "3.14 0"}
|
||||
strokeDashoffset={isTriage ? 3.2 : isBacklog ? 0.65 : -0.7}
|
||||
/>
|
||||
<circle
|
||||
cx={7}
|
||||
cy={7}
|
||||
r={percentage === 1 ? 3 : 2}
|
||||
fill="none"
|
||||
stroke={state.color}
|
||||
strokeWidth={percentage === 1 ? 6 : 4}
|
||||
strokeDasharray={`${
|
||||
percentage * Math.PI * (percentage === 1 ? 6 : magicFour)
|
||||
} 100`}
|
||||
strokeDashoffset={0}
|
||||
transform={`rotate(-90 7 7)`}
|
||||
/>
|
||||
{(isTriage || percentage === 1) && (
|
||||
<path
|
||||
className="icon"
|
||||
stroke="none"
|
||||
d={isTriage ? triageIcon : isCompleted ? checkMarkIcon : closeIcon}
|
||||
fill={theme.background}
|
||||
/>
|
||||
)}
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
const checkMarkIcon =
|
||||
"M10.951 4.24896C11.283 4.58091 11.283 5.11909 10.951 5.45104L5.95104 10.451C5.61909 10.783 5.0809 10.783 4.74896 10.451L2.74896 8.45104C2.41701 8.11909 2.41701 7.5809 2.74896 7.24896C3.0809 6.91701 3.61909 6.91701 3.95104 7.24896L5.35 8.64792L9.74896 4.24896C10.0809 3.91701 10.6191 3.91701 10.951 4.24896Z";
|
||||
const triageIcon =
|
||||
"M8.0126 7.98223V9.50781C8.0126 9.92901 8.52329 10.1548 8.85102 9.87854L11.8258 7.37066C12.0581 7.17486 12.0581 6.82507 11.8258 6.62927L8.85102 4.12139C8.52329 3.84509 8.0126 4.07092 8.0126 4.49212V6.01763H5.98739V4.49218C5.98739 4.07098 5.4767 3.84515 5.14897 4.12146L2.17419 6.62933C1.94194 6.82513 1.94194 7.17492 2.17419 7.37072L5.14897 9.8786C5.4767 10.1549 5.98739 9.92907 5.98739 9.50787V7.98223H8.0126Z";
|
||||
const closeIcon =
|
||||
"M3.73657 3.73657C4.05199 3.42114 4.56339 3.42114 4.87881 3.73657L5.93941 4.79716L7 5.85775L9.12117 3.73657C9.4366 3.42114 9.94801 3.42114 10.2634 3.73657C10.5789 4.05199 10.5789 4.56339 10.2634 4.87881L8.14225 7L10.2634 9.12118C10.5789 9.4366 10.5789 9.94801 10.2634 10.2634C9.94801 10.5789 9.4366 10.5789 9.12117 10.2634L7 8.14225L4.87881 10.2634C4.56339 10.5789 4.05199 10.5789 3.73657 10.2634C3.42114 9.94801 3.42114 9.4366 3.73657 9.12118L4.79716 8.06059L5.85775 7L3.73657 4.87881C3.42114 4.56339 3.42114 4.05199 3.73657 3.73657Z";
|
||||
@@ -0,0 +1,46 @@
|
||||
import * as React from "react";
|
||||
import styled from "styled-components";
|
||||
import {
|
||||
IntegrationService,
|
||||
IssueTrackerIntegrationService,
|
||||
UnfurlResourceType,
|
||||
UnfurlResponse,
|
||||
} from "../../types";
|
||||
import { GitHubIssueStatusIcon } from "./GitHubIssueStatusIcon";
|
||||
import { LinearIssueStatusIcon } from "./LinearIssueStatusIcon";
|
||||
|
||||
export type BaseIconProps = {
|
||||
state: UnfurlResponse[UnfurlResourceType.Issue]["state"];
|
||||
className?: string;
|
||||
size?: number;
|
||||
};
|
||||
|
||||
type Props = BaseIconProps & {
|
||||
service: IssueTrackerIntegrationService;
|
||||
};
|
||||
|
||||
export function IssueStatusIcon(props: Props) {
|
||||
return (
|
||||
<Icon size={props.size} className={props.className}>
|
||||
{getIcon(props)}
|
||||
</Icon>
|
||||
);
|
||||
}
|
||||
|
||||
function getIcon(props: Props) {
|
||||
switch (props.service) {
|
||||
case IntegrationService.GitHub:
|
||||
return <GitHubIssueStatusIcon {...props} />;
|
||||
case IntegrationService.Linear:
|
||||
return <LinearIssueStatusIcon {...props} />;
|
||||
}
|
||||
}
|
||||
|
||||
const Icon = styled.span<{ size?: number }>`
|
||||
display: inline-flex;
|
||||
flex-shrink: 0;
|
||||
width: ${(props) => props.size ?? 24}px;
|
||||
height: ${(props) => props.size ?? 24}px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
`;
|
||||
@@ -1,9 +1,9 @@
|
||||
import * as React from "react";
|
||||
import styled from "styled-components";
|
||||
import { UnfurlResourceType, UnfurlResponse } from "../types";
|
||||
|
||||
type Props = {
|
||||
status: string;
|
||||
color: string;
|
||||
state: UnfurlResponse[UnfurlResourceType.PR]["state"];
|
||||
size?: number;
|
||||
className?: string;
|
||||
};
|
||||
@@ -11,10 +11,10 @@ type Props = {
|
||||
/**
|
||||
* Issue status icon based on GitHub pull requests, but can be used for any git-style integration.
|
||||
*/
|
||||
export function PullRequestIcon({ size, ...rest }: Props) {
|
||||
export function PullRequestIcon({ size, className, state }: Props) {
|
||||
return (
|
||||
<Icon size={size}>
|
||||
<BaseIcon {...rest} />
|
||||
<Icon size={size} className={className}>
|
||||
<BaseIcon state={state} />
|
||||
</Icon>
|
||||
);
|
||||
}
|
||||
@@ -28,42 +28,32 @@ const Icon = styled.span<{ size?: number }>`
|
||||
justify-content: center;
|
||||
`;
|
||||
|
||||
function BaseIcon(props: Props) {
|
||||
switch (props.status) {
|
||||
function BaseIcon({ state }: Pick<Props, "state">) {
|
||||
switch (state.name) {
|
||||
case "open":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
height="16"
|
||||
fill={props.color}
|
||||
className={props.className}
|
||||
>
|
||||
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z" />
|
||||
<svg viewBox="0 0 16 16" fill={state.color}>
|
||||
{state.draft ? (
|
||||
<path d="M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 14a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM14 7.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Zm0-4.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Z" />
|
||||
) : (
|
||||
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z" />
|
||||
)}
|
||||
</svg>
|
||||
);
|
||||
case "merged":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
height="16"
|
||||
fill={props.color}
|
||||
className={props.className}
|
||||
>
|
||||
<svg viewBox="0 0 16 16" fill={state.color}>
|
||||
<path d="M5.45 5.154A4.25 4.25 0 0 0 9.25 7.5h1.378a2.251 2.251 0 1 1 0 1.5H9.25A5.734 5.734 0 0 1 5 7.123v3.505a2.25 2.25 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.95-.218ZM4.25 13.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm8.5-4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5 3.25a.75.75 0 1 0 0 .005V3.25Z" />
|
||||
</svg>
|
||||
);
|
||||
case "closed":
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
height="16"
|
||||
fill={props.color}
|
||||
className={props.className}
|
||||
>
|
||||
<path d="M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 5.5a.75.75 0 0 1 .75.75v3.378a2.251 2.251 0 1 1-1.5 0V7.25a.75.75 0 0 1 .75-.75Zm-2.03-5.273a.75.75 0 0 1 1.06 0l.97.97.97-.97a.748.748 0 0 1 1.265.332.75.75 0 0 1-.205.729l-.97.97.97.97a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-.97-.97-.97.97a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l.97-.97-.97-.97a.75.75 0 0 1 0-1.06ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z" />
|
||||
<svg viewBox="0 0 16 16" fill={state.color}>
|
||||
{state.draft ? (
|
||||
<path d="M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 5.5a.75.75 0 0 1 .75.75v3.378a2.251 2.251 0 1 1-1.5 0V7.25a.75.75 0 0 1 .75-.75Zm-2.03-5.273a.75.75 0 0 1 1.06 0l.97.97.97-.97a.748.748 0 0 1 1.265.332.75.75 0 0 1-.205.729l-.97.97.97.97a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-.97-.97-.97.97a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l.97-.97-.97-.97a.75.75 0 0 1 0-1.06ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z" />
|
||||
) : (
|
||||
<path d="M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 5.5a.75.75 0 0 1 .75.75v3.378a2.251 2.251 0 1 1-1.5 0V7.25a.75.75 0 0 1 .75-.75Zm-2.03-5.273a.75.75 0 0 1 1.06 0l.97.97.97-.97a.748.748 0 0 1 1.265.332.75.75 0 0 1-.205.729l-.97.97.97.97a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-.97-.97-.97.97a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l.97-.97-.97-.97a.75.75 0 0 1 0-1.06ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z" />
|
||||
)}
|
||||
</svg>
|
||||
);
|
||||
default:
|
||||
|
||||
@@ -17,10 +17,10 @@ type Props = ComponentProps & {
|
||||
|
||||
const Embed = (props: Props) => {
|
||||
const ref = React.useRef<HTMLIFrameElement>(null);
|
||||
const { node, isEditable, onChangeSize } = props;
|
||||
const { node, isEditable, embedsDisabled, onChangeSize } = props;
|
||||
const naturalWidth = 0;
|
||||
const naturalHeight = 400;
|
||||
const isResizable = !!onChangeSize;
|
||||
const isResizable = !!onChangeSize && !embedsDisabled;
|
||||
|
||||
const { width, height, setSize, handlePointerDown, dragging } = useDragResize(
|
||||
{
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import { observable } from "mobx";
|
||||
import { observer } from "mobx-react";
|
||||
import { OpenIcon } from "outline-icons";
|
||||
import * as React from "react";
|
||||
import { useState, useEffect, useRef } from "react";
|
||||
import styled from "styled-components";
|
||||
import { Optional } from "utility-types";
|
||||
import { s } from "../../styles";
|
||||
import { sanitizeUrl } from "../../utils/urls";
|
||||
|
||||
type Props = Omit<Optional<HTMLIFrameElement>, "children" | "style"> & {
|
||||
type Props = Omit<
|
||||
Optional<React.ComponentProps<typeof Iframe>>,
|
||||
"children" | "style"
|
||||
> & {
|
||||
/** The URL to load in the iframe */
|
||||
src?: string;
|
||||
/** Whether to display a border, defaults to true */
|
||||
@@ -30,85 +32,79 @@ type PropsWithRef = Props & {
|
||||
forwardedRef: React.Ref<HTMLIFrameElement>;
|
||||
};
|
||||
|
||||
@observer
|
||||
class Frame extends React.Component<PropsWithRef> {
|
||||
mounted: boolean;
|
||||
const Frame = ({
|
||||
border,
|
||||
style = {},
|
||||
forwardedRef,
|
||||
icon,
|
||||
title,
|
||||
canonicalUrl,
|
||||
isSelected,
|
||||
referrerPolicy,
|
||||
className = "",
|
||||
src,
|
||||
...rest
|
||||
}: PropsWithRef) => {
|
||||
const [isLoaded, setIsLoaded] = useState(false);
|
||||
const mountedRef = useRef(true);
|
||||
|
||||
@observable
|
||||
isLoaded = false;
|
||||
useEffect(() => {
|
||||
// Set mounted flag
|
||||
mountedRef.current = true;
|
||||
|
||||
componentDidMount() {
|
||||
this.mounted = true;
|
||||
setTimeout(this.loadIframe, 0);
|
||||
}
|
||||
// Load iframe after a small delay
|
||||
const timer = setTimeout(() => {
|
||||
if (mountedRef.current) {
|
||||
setIsLoaded(true);
|
||||
}
|
||||
}, 0);
|
||||
|
||||
componentWillUnmount() {
|
||||
this.mounted = false;
|
||||
}
|
||||
// Cleanup function
|
||||
return () => {
|
||||
mountedRef.current = false;
|
||||
clearTimeout(timer);
|
||||
};
|
||||
}, []);
|
||||
|
||||
loadIframe = () => {
|
||||
if (!this.mounted) {
|
||||
return;
|
||||
}
|
||||
this.isLoaded = true;
|
||||
};
|
||||
const showBottomBar = !!(icon || canonicalUrl);
|
||||
|
||||
render() {
|
||||
const {
|
||||
border,
|
||||
style = {},
|
||||
forwardedRef,
|
||||
icon,
|
||||
title,
|
||||
canonicalUrl,
|
||||
isSelected,
|
||||
referrerPolicy,
|
||||
className = "",
|
||||
src,
|
||||
} = this.props;
|
||||
const showBottomBar = !!(icon || canonicalUrl);
|
||||
|
||||
return (
|
||||
<Rounded
|
||||
style={style}
|
||||
$showBottomBar={showBottomBar}
|
||||
$border={border}
|
||||
className={
|
||||
isSelected ? `ProseMirror-selectednode ${className}` : className
|
||||
}
|
||||
>
|
||||
{this.isLoaded && (
|
||||
<Iframe
|
||||
ref={forwardedRef}
|
||||
$showBottomBar={showBottomBar}
|
||||
sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-downloads allow-storage-access-by-user-activation"
|
||||
style={style}
|
||||
frameBorder="0"
|
||||
title="embed"
|
||||
loading="lazy"
|
||||
src={sanitizeUrl(src)}
|
||||
referrerPolicy={referrerPolicy}
|
||||
allowFullScreen
|
||||
/>
|
||||
)}
|
||||
{showBottomBar && (
|
||||
<Bar>
|
||||
{icon} <Title>{title}</Title>
|
||||
{canonicalUrl && (
|
||||
<Open
|
||||
href={canonicalUrl}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<OpenIcon size={18} /> Open
|
||||
</Open>
|
||||
)}
|
||||
</Bar>
|
||||
)}
|
||||
</Rounded>
|
||||
);
|
||||
}
|
||||
}
|
||||
return (
|
||||
<Rounded
|
||||
style={style}
|
||||
$showBottomBar={showBottomBar}
|
||||
$border={border}
|
||||
className={
|
||||
isSelected ? `ProseMirror-selectednode ${className}` : className
|
||||
}
|
||||
>
|
||||
{isLoaded && (
|
||||
<Iframe
|
||||
ref={forwardedRef}
|
||||
$showBottomBar={showBottomBar}
|
||||
sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-downloads allow-storage-access-by-user-activation"
|
||||
style={style}
|
||||
frameBorder="0"
|
||||
title="embed"
|
||||
loading="lazy"
|
||||
src={sanitizeUrl(src)}
|
||||
referrerPolicy={referrerPolicy}
|
||||
allowFullScreen
|
||||
{...rest}
|
||||
/>
|
||||
)}
|
||||
{showBottomBar && (
|
||||
<Bar>
|
||||
{icon} <Title>{title}</Title>
|
||||
{canonicalUrl && (
|
||||
<Open href={canonicalUrl} target="_blank" rel="noopener noreferrer">
|
||||
<OpenIcon size={18} /> Open
|
||||
</Open>
|
||||
)}
|
||||
</Bar>
|
||||
)}
|
||||
</Rounded>
|
||||
);
|
||||
};
|
||||
|
||||
const Iframe = styled.iframe<{ $showBottomBar: boolean }>`
|
||||
border-radius: ${(props) => (props.$showBottomBar ? "3px 3px 0 0" : "3px")};
|
||||
|
||||
@@ -10,6 +10,7 @@ import * as React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { Link } from "react-router-dom";
|
||||
import styled from "styled-components";
|
||||
import { Backticks } from "../../components/Backticks";
|
||||
import Flex from "../../components/Flex";
|
||||
import Icon from "../../components/Icon";
|
||||
import { IssueStatusIcon } from "../../components/IssueStatusIcon";
|
||||
@@ -19,10 +20,11 @@ import Text from "../../components/Text";
|
||||
import useIsMounted from "../../hooks/useIsMounted";
|
||||
import useStores from "../../hooks/useStores";
|
||||
import theme from "../../styles/theme";
|
||||
import type {
|
||||
JSONValue,
|
||||
UnfurlResourceType,
|
||||
UnfurlResponse,
|
||||
import {
|
||||
IntegrationService,
|
||||
type JSONValue,
|
||||
type UnfurlResourceType,
|
||||
type UnfurlResponse,
|
||||
} from "../../types";
|
||||
import { cn } from "../styles/utils";
|
||||
import { ComponentProps } from "../types";
|
||||
@@ -187,6 +189,12 @@ export const MentionIssue = observer((props: IssuePrProps) => {
|
||||
|
||||
const issue = unfurl as UnfurlResponse[UnfurlResourceType.Issue];
|
||||
|
||||
const url = new URL(issue.url);
|
||||
const service =
|
||||
url.hostname === "github.com"
|
||||
? IntegrationService.GitHub
|
||||
: IntegrationService.Linear;
|
||||
|
||||
return (
|
||||
<a
|
||||
{...attrs}
|
||||
@@ -198,13 +206,11 @@ export const MentionIssue = observer((props: IssuePrProps) => {
|
||||
rel="noopener noreferrer nofollow"
|
||||
>
|
||||
<Flex align="center" gap={6}>
|
||||
<IssueStatusIcon
|
||||
size={14}
|
||||
status={issue.state.name}
|
||||
color={issue.state.color}
|
||||
/>
|
||||
<IssueStatusIcon size={14} service={service} state={issue.state} />
|
||||
<Flex align="center" gap={4}>
|
||||
<Text>{issue.title}</Text>
|
||||
<Text>
|
||||
<Backticks content={issue.title} />
|
||||
</Text>
|
||||
<Text type="tertiary">{issue.id}</Text>
|
||||
</Flex>
|
||||
</Flex>
|
||||
@@ -273,13 +279,11 @@ export const MentionPullRequest = observer((props: IssuePrProps) => {
|
||||
rel="noopener noreferrer nofollow"
|
||||
>
|
||||
<Flex align="center" gap={6}>
|
||||
<PullRequestIcon
|
||||
size={14}
|
||||
status={pullRequest.state.name}
|
||||
color={pullRequest.state.color}
|
||||
/>
|
||||
<PullRequestIcon size={14} state={pullRequest.state} />
|
||||
<Flex align="center" gap={4}>
|
||||
<Text>{pullRequest.title}</Text>
|
||||
<Text>
|
||||
<Backticks content={pullRequest.title} />
|
||||
</Text>
|
||||
<Text type="tertiary">{pullRequest.id}</Text>
|
||||
</Flex>
|
||||
</Flex>
|
||||
|
||||
@@ -128,6 +128,7 @@ const mathStyle = (props: Props) => css`
|
||||
math-block .math-src .ProseMirror {
|
||||
width: 100%;
|
||||
display: block;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
math-block .katex-display {
|
||||
@@ -334,7 +335,7 @@ width: 100%;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.ProseMirror {
|
||||
& > .ProseMirror {
|
||||
position: relative;
|
||||
outline: none;
|
||||
word-wrap: break-word;
|
||||
@@ -1090,6 +1091,10 @@ p a {
|
||||
}
|
||||
}
|
||||
|
||||
.heading-content a {
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
a {
|
||||
color: ${props.theme.link};
|
||||
cursor: pointer;
|
||||
|
||||
+87
-52
@@ -47,6 +47,66 @@ export default class Code extends Mark {
|
||||
markType: this.editor.schema.marks.code_inline,
|
||||
})[0];
|
||||
|
||||
/**
|
||||
* Helper function to check if cursor is between backticks
|
||||
* and handle the code marking appropriately
|
||||
*/
|
||||
const handleTextBetweenBackticks = (
|
||||
view: EditorView,
|
||||
from: number,
|
||||
to: number,
|
||||
text: string | Slice
|
||||
) => {
|
||||
const { state } = view;
|
||||
|
||||
// Prevent access out of document bounds
|
||||
if (from === 0 || to === state.doc.nodeSize - 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Skip if we're adding a backtick character
|
||||
if (typeof text === "string" && text === "`") {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if we're between backticks
|
||||
if (
|
||||
state.doc.textBetween(from - 1, from) === "`" &&
|
||||
state.doc.textBetween(to, to + 1) === "`"
|
||||
) {
|
||||
const start = from - 1;
|
||||
const end = to + 1;
|
||||
|
||||
if (typeof text === "string") {
|
||||
// Handle text input
|
||||
view.dispatch(
|
||||
state.tr
|
||||
.delete(start, end)
|
||||
.insertText(text, start)
|
||||
.addMark(
|
||||
start,
|
||||
start + text.length,
|
||||
state.schema.marks.code_inline.create()
|
||||
)
|
||||
);
|
||||
} else {
|
||||
// Handle paste/slice
|
||||
view.dispatch(
|
||||
state.tr
|
||||
.replaceRange(start, end, text)
|
||||
.addMark(
|
||||
start,
|
||||
start + text.size,
|
||||
state.schema.marks.code_inline.create()
|
||||
)
|
||||
);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
return [
|
||||
codeCursorPlugin,
|
||||
new Plugin({
|
||||
@@ -59,34 +119,11 @@ export default class Code extends Mark {
|
||||
to: number,
|
||||
text: string
|
||||
) => {
|
||||
const { state } = view;
|
||||
|
||||
// Prevent access out of document bounds
|
||||
if (from === 0 || to === state.doc.nodeSize - 1 || text === "`") {
|
||||
// Skip this handler during IME composition or it will prevent the
|
||||
if (view.composing) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
from === to &&
|
||||
state.doc.textBetween(from - 1, from) === "`" &&
|
||||
state.doc.textBetween(to, to + 1) === "`"
|
||||
) {
|
||||
const start = from - 1;
|
||||
const end = to + 1;
|
||||
view.dispatch(
|
||||
state.tr
|
||||
.delete(start, end)
|
||||
.insertText(text, start)
|
||||
.addMark(
|
||||
start,
|
||||
start + text.length,
|
||||
state.schema.marks.code_inline.create()
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return handleTextBetweenBackticks(view, from, to, text);
|
||||
},
|
||||
|
||||
// Pasting a character inside of two backticks will wrap the character
|
||||
@@ -94,32 +131,7 @@ export default class Code extends Mark {
|
||||
handlePaste: (view: EditorView, _event: Event, slice: Slice) => {
|
||||
const { state } = view;
|
||||
const { from, to } = state.selection;
|
||||
|
||||
// Prevent access out of document bounds
|
||||
if (from === 0 || to === state.doc.nodeSize - 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const start = from - 1;
|
||||
const end = to + 1;
|
||||
if (
|
||||
from === to &&
|
||||
state.doc.textBetween(start, from) === "`" &&
|
||||
state.doc.textBetween(to, end) === "`"
|
||||
) {
|
||||
view.dispatch(
|
||||
state.tr
|
||||
.replaceRange(start, end, slice)
|
||||
.addMark(
|
||||
start,
|
||||
start + slice.size,
|
||||
state.schema.marks.code_inline.create()
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return handleTextBetweenBackticks(view, from, to, slice);
|
||||
},
|
||||
|
||||
// Triple clicking inside of an inline code mark will select the entire
|
||||
@@ -143,6 +155,29 @@ export default class Code extends Mark {
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
// Handle composition end events for IME input
|
||||
handleDOMEvents: {
|
||||
compositionend: (view: EditorView) => {
|
||||
setTimeout(() => {
|
||||
const { $cursor } = view.state.selection as TextSelection;
|
||||
if (!$cursor) {
|
||||
return;
|
||||
}
|
||||
|
||||
const from = $cursor.pos - 1;
|
||||
const to = $cursor.pos;
|
||||
|
||||
// Process the composed text after IME composition completes
|
||||
handleTextBetweenBackticks(
|
||||
view,
|
||||
from,
|
||||
to,
|
||||
view.state.doc.textBetween(from, to)
|
||||
);
|
||||
});
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
@@ -24,7 +24,7 @@ export type MenuItem = {
|
||||
name?: string;
|
||||
title?: string;
|
||||
section?: Section;
|
||||
subtitle?: string;
|
||||
subtitle?: React.ReactNode;
|
||||
shortcut?: string;
|
||||
keywords?: string;
|
||||
tooltip?: string;
|
||||
|
||||
@@ -11,13 +11,17 @@
|
||||
"Search in collection": "Hledat ve sbírce",
|
||||
"Star": "Přidat mezi oblíbené",
|
||||
"Unstar": "Odstranit z oblíbených",
|
||||
"Subscribe": "Přihlásit k odběru",
|
||||
"Subscribed to document notifications": "Přihlášen k odběru upozornění ohledně dokumentů",
|
||||
"Unsubscribe": "Odhlásit z odběru upozornění",
|
||||
"Unsubscribed from document notifications": "Ohlášen odběr upozornění ohledně dokumentů",
|
||||
"Archive": "Archiv",
|
||||
"Archive collection": "Archive collection",
|
||||
"Collection archived": "Collection archived",
|
||||
"Archive collection": "Archivovat sbírku",
|
||||
"Collection archived": "Sbírka archivována",
|
||||
"Archiving": "Probíhá archivace",
|
||||
"Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.": "Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.",
|
||||
"Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.": "Archivací této sbírky dojde také k archivaci všech dokumentů v ní. Dokumenty z kolekce již nebudou viditelné ve výsledcích vyhledávání.",
|
||||
"Restore": "Obnovit",
|
||||
"Collection restored": "Collection restored",
|
||||
"Collection restored": "Sbírka obnovena",
|
||||
"Delete": "Odstranit",
|
||||
"Delete collection": "Odstranit sbírku",
|
||||
"New template": "Nová šablona",
|
||||
@@ -25,8 +29,8 @@
|
||||
"Mark as resolved": "Označit jako vyřešené",
|
||||
"Thread resolved": "Vlákno vyřešeno",
|
||||
"Mark as unresolved": "Označit jako nevyřešené",
|
||||
"View reactions": "View reactions",
|
||||
"Reactions": "Reactions",
|
||||
"View reactions": "Prohlédnout reakce",
|
||||
"Reactions": "Reakce",
|
||||
"Copy ID": "Kopírovat ID",
|
||||
"Clear IndexedDB cache": "Smazat mezipaměť IndexedDB",
|
||||
"IndexedDB cache cleared": "Mezipaměť indexedDB vymazána",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "Vývoj",
|
||||
"Open document": "Otevřít dokument",
|
||||
"New document": "Nový dokument",
|
||||
"New draft": "New draft",
|
||||
"New draft": "Nový koncept",
|
||||
"New from template": "Nový ze šablony",
|
||||
"New nested document": "Nový vnořený dokument",
|
||||
"Publish": "Zveřejnit",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Zveřejnit dokument",
|
||||
"Unpublish": "Zrušit zveřejnění",
|
||||
"Unpublished {{ documentName }}": "Nepublikováno {{ documentName }}",
|
||||
"Subscribe": "Přihlásit k odběru",
|
||||
"Subscribed to document notifications": "Přihlášen k odběru upozornění ohledně dokumentů",
|
||||
"Unsubscribe": "Odhlásit z odběru upozornění",
|
||||
"Unsubscribed from document notifications": "Ohlášen odběr upozornění ohledně dokumentů",
|
||||
"Share this document": "Sdílet tento dokument",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Stáhnout dokument",
|
||||
"Copy as Markdown": "Kopírovat jako Markdown",
|
||||
"Markdown copied to clipboard": "Markdown zkopírován do schránky",
|
||||
"Copy as text": "Copy as text",
|
||||
"Text copied to clipboard": "Text copied to clipboard",
|
||||
"Copy public link": "Zkopírovat veřejný odkaz",
|
||||
"Link copied to clipboard": "Odkaz zkopírován do schránky",
|
||||
"Copy link": "Kopírovat odkaz",
|
||||
@@ -82,9 +84,9 @@
|
||||
"Move": "Přesunout",
|
||||
"Move to collection": "Přesunout do sbírky",
|
||||
"Move {{ documentType }}": "Přesunout {{ documentType }}",
|
||||
"Are you sure you want to archive this document?": "Are you sure you want to archive this document?",
|
||||
"Are you sure you want to archive this document?": "Opravdu chcete archivovat tento dokument?",
|
||||
"Document archived": "Dokument archivován",
|
||||
"Archiving this document will remove it from the collection and search results.": "Archiving this document will remove it from the collection and search results.",
|
||||
"Archiving this document will remove it from the collection and search results.": "Archivací tento dokument odstraníte z kolekce a výsledků vyhledávání.",
|
||||
"Delete {{ documentName }}": "Odstranit {{ documentName }}",
|
||||
"Permanently delete": "Trvale odstranit",
|
||||
"Permanently delete {{ documentName }}": "Trvale odstranit {{ documentName }}",
|
||||
@@ -95,11 +97,12 @@
|
||||
"Insights": "Přehledy",
|
||||
"Disable viewer insights": "Vypnout analytika nahlížení",
|
||||
"Enable viewer insights": "Zapnout analytika nahlížení",
|
||||
"Leave document": "Leave document",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Leave document": "Opustit dokument",
|
||||
"You have left the shared document": "Opustil jste sdílený dokument",
|
||||
"Could not leave document": "Nepodařilo se opustit dokument",
|
||||
"Home": "Domovská stránka",
|
||||
"Drafts": "Koncepty",
|
||||
"Search": "Hledat",
|
||||
"Trash": "Koš",
|
||||
"Settings": "Nastavení",
|
||||
"Profile": "Profil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Aktualizovat roli",
|
||||
"Delete user": "Smazat uživatele",
|
||||
"Collection": "Sbírka",
|
||||
"Collections": "Sbírky",
|
||||
"Debug": "Odstranit vývojářskou chybu",
|
||||
"Document": "Dokument",
|
||||
"Documents": "Dokumenty",
|
||||
@@ -160,7 +164,7 @@
|
||||
"Saving": "Uložení",
|
||||
"Save": "Uložit",
|
||||
"Creating": "Vytváření",
|
||||
"Create": "Vytořit",
|
||||
"Create": "Vytvořit",
|
||||
"Collection deleted": "Kolekce odstraněna",
|
||||
"I’m sure – Delete": "Ano, smazat",
|
||||
"Deleting": "Mazání",
|
||||
@@ -173,14 +177,14 @@
|
||||
"Are you sure you want to permanently delete this entire comment thread?": "Jste si jisti, že chcete natrvalo odstranit vlákno komentářů?",
|
||||
"Are you sure you want to permanently delete this comment?": "Jste si jisti, že chcete natrvalo odstranit komentář?",
|
||||
"Confirm": "Potvrdit",
|
||||
"manage access": "manage access",
|
||||
"manage access": "spravovat přístup",
|
||||
"view and edit access": "přístup k prohlížení a úpravám",
|
||||
"view only access": "přístup pouze pro čtení",
|
||||
"no access": "bez přístupu",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "Nemáte oprávnění přesunout {{ documentName }} do sbírky {{ collectionName }}",
|
||||
"Move document": "Přesunout dokument",
|
||||
"Moving": "Přesouvání",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Přesunutím dokumentu <em>{{ title }}</em> do sbírky {{ newCollectionName }} se změní oprávnění pro všechny členy pracovního prostoru z <em>{{ prevPermission }}</em> na <em>{{ newPermission }}</em>.",
|
||||
"Document is too large": "Dokument je příliš velký",
|
||||
"This document has reached the maximum size and can no longer be edited": "Tento dokument dosáhl maximální velikosti a nelze jej dále upravovat",
|
||||
"Authentication failed": "Ověření selhalo",
|
||||
@@ -194,16 +198,17 @@
|
||||
"Submenu": "Podmenu",
|
||||
"Collections could not be loaded, please reload the app": "Sbírky se nepodařilo načíst, prosím načtěte aplikaci znovu",
|
||||
"Default collection": "Výchozí sbírka",
|
||||
"Start view": "Domovská obrazovka",
|
||||
"Install now": "Nainstalovat",
|
||||
"Deleted Collection": "Odstraněná sbírka",
|
||||
"Untitled": "Bez názvu",
|
||||
"Unpin": "Zrušit připnutí",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"Select a location to copy": "Vyberte místo, kam chcete zkopírovat",
|
||||
"Document copied": "Dokument byl zkopírován",
|
||||
"Couldn’t copy the document, try again?": "Dokument nelze zkopírovat, chcete to zkusit znovu?",
|
||||
"Include nested documents": "Zahrnout vnořené dokumenty",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
"Copy to <em>{{ location }}</em>": "Zkopírovat do <em>{{ location }}</em>",
|
||||
"Search collections & documents": "Prohledat sbírky a dokumenty",
|
||||
"No results found": "Nebyly nalezeny žádné výsledky",
|
||||
"New": "Nový",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Vlajky",
|
||||
"Select a color": "Vybrat barvu",
|
||||
"Loading": "Načítání",
|
||||
"Search": "Hledat",
|
||||
"Permission": "Oprávnění",
|
||||
"View only": "Pouze zobrazit",
|
||||
"Can edit": "Může upravovat",
|
||||
@@ -304,14 +308,14 @@
|
||||
"Unknown": "Neznámý",
|
||||
"Mark all as read": "Označit vše jako přečtené",
|
||||
"You're all caught up": "Již nic nového",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"Add reaction": "Add reaction",
|
||||
"Reaction picker": "Reaction picker",
|
||||
"Could not load reactions": "Could not load reactions",
|
||||
"Reaction": "Reaction",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reagoval s {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} a {{ secondUsername }} reagovali s {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} a {{ count }} reagovali s {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} a {{ count }} reagovali s {{ emoji }}",
|
||||
"Add reaction": "Přidat reakci",
|
||||
"Reaction picker": "Výběr reakce",
|
||||
"Could not load reactions": "Nepodařilo se načíst reakce",
|
||||
"Reaction": "Reakce",
|
||||
"Results": "Výsledky",
|
||||
"No results for {{query}}": "Žádné výsledky pro {{query}}",
|
||||
"Manage": "Spravovat",
|
||||
@@ -329,7 +333,7 @@
|
||||
"Add or invite": "Přidat nebo pozvat",
|
||||
"Viewer": "Prohlížející",
|
||||
"Editor": "Editor",
|
||||
"Suggestions for invitation": "Suggestions for invitation",
|
||||
"Suggestions for invitation": "Návrhy na pozvánku",
|
||||
"No matches": "Žádné výsledky",
|
||||
"Can view": "Může prohlížet",
|
||||
"Everyone in the collection": "Všichni v kolekci",
|
||||
@@ -356,19 +360,18 @@
|
||||
"Anyone with the link can access because the parent document, <2>{{documentTitle}}</2>, is shared": "Kdokoli s odkazem má přístup, protože dokument dědí oprávnění po nadřazeném dokumentu <2>{{documentTitle}}</2>",
|
||||
"Allow anyone with the link to access": "Povolit přístup komukoliv s odkazem",
|
||||
"Publish to internet": "Zveřejnit na internetu",
|
||||
"Search engine indexing": "Search engine indexing",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disable this setting to discourage search engines from indexing the page",
|
||||
"Search engine indexing": "Indexace vyhledávání",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Zakažte toto nastavení, abyste odradili vyhledávače od indexování stránky",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "Vložené dokumenty nejsou sdíleny na webu. Změnit sdílení pro povolení přístupu (toto bude v budoucnu výchozí chování)",
|
||||
"{{ userName }} was added to the document": "{{ userName }} was added to the document",
|
||||
"{{ count }} people added to the document": "{{ count }} people added to the document",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} people added to the document",
|
||||
"{{ count }} groups added to the document": "{{ count }} groups added to the document",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} groups added to the document",
|
||||
"{{ userName }} was added to the document": "{{ userName }} byl přidán do dokumentu",
|
||||
"{{ count }} people added to the document": "{{ count }} lidí bylo přidáno do dokumentu",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} lidí bylo přidáno do dokumentu",
|
||||
"{{ count }} groups added to the document": "{{ count }} skupin bylo přidáno do dokumentu",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} skupin bylo přidáno do dokumentu",
|
||||
"Logo": "Logo",
|
||||
"Archived collections": "Archived collections",
|
||||
"Archived collections": "Archivované sbírky",
|
||||
"New doc": "Nový dokument",
|
||||
"Empty": "Prázdné",
|
||||
"Collections": "Sbírky",
|
||||
"Collapse": "Sbalit",
|
||||
"Expand": "Rozbalit",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Dokument není podporován – zkuste Markdown, Plain text, HTML nebo Word",
|
||||
@@ -382,7 +385,7 @@
|
||||
"Up to date": "Aktuální",
|
||||
"{{ releasesBehind }} versions behind": "Zastaralá verze {{ releasesBehind }}",
|
||||
"{{ releasesBehind }} versions behind_plural": "Zastaralé verze {{ releasesBehind }}",
|
||||
"Change permissions?": "Change permissions?",
|
||||
"Change permissions?": "Změnit práva?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "Nemůžete změnit pořadí dokumentů v abecedně seřazené sbírce",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
@@ -424,7 +427,8 @@
|
||||
"Profile picture": "Profilový obrázek",
|
||||
"Create a new doc": "Vytvořit nový dokument",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Keep as link": "Zachovat jako odkaz",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Přidat sloupec za",
|
||||
"Add column before": "Přidat sloupec před",
|
||||
@@ -458,7 +462,7 @@
|
||||
"Big heading": "Velký nadpis",
|
||||
"Medium heading": "Střední nadpis",
|
||||
"Small heading": "Malý nadpis",
|
||||
"Extra small heading": "Extra small heading",
|
||||
"Extra small heading": "Extra malý nadpis",
|
||||
"Heading": "Záhlaví",
|
||||
"Divider": "Dělící čára",
|
||||
"Image": "Obrázek",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "None",
|
||||
"Could not import file": "Soubor nelze importovat",
|
||||
"Unsubscribed from document": "Upozornění vypnuta",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "Účet",
|
||||
"API Keys": "API Keys",
|
||||
"Details": "Podrobnosti",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Skupiny",
|
||||
"Shared Links": "Sdílené odkazy",
|
||||
"Import": "Import",
|
||||
"Self Hosted": "Vlastní hostování",
|
||||
"Integrations": "Integrace",
|
||||
"Revoke token": "Odvolat tokeny",
|
||||
"Revoke": "Zrušit",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"Document options": "Možnosti dokumentů",
|
||||
"Choose a collection": "Vybrat sbírku",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "Povolit embed vkládání",
|
||||
"Export options": "Možnosti exportu",
|
||||
"Group members": "Členové skupiny",
|
||||
"Edit group": "Upravit skupinu",
|
||||
"Delete group": "Odstranit skupinu",
|
||||
"Group options": "Nastavení skupin",
|
||||
"Cancel": "Zrušit",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Uživatelská nastavení",
|
||||
"New document in <em>{{ collectionName }}</em>": "Nový dokument v <em>{{ collectionName }}</em>",
|
||||
"New child document": "Nový vložený dokument",
|
||||
@@ -569,7 +576,7 @@
|
||||
"created the collection": "vytvořil sbírku",
|
||||
"mentioned you in": "zmínil vás v",
|
||||
"left a comment on": "zanechal komentář k",
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"resolved a comment on": "vyřešil komentář dne",
|
||||
"shared": "sdíleno",
|
||||
"invited you to": "vás pozval/a do",
|
||||
"Choose a date": "Vybrat datum",
|
||||
@@ -598,7 +605,7 @@
|
||||
"{{ groupsCount }} groups with access_plural": "{{ groupsCount }} skupin s přístupem",
|
||||
"Archived by {{userName}}": "Archivoval {{userName}}",
|
||||
"Share": "Sdílet",
|
||||
"Overview": "Overview",
|
||||
"Overview": "Přehled",
|
||||
"Recently updated": "Nedávno aktualizováno",
|
||||
"Recently published": "Nedávno zveřejněné",
|
||||
"Least recently updated": "Naposledy aktualizováno",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Přidat odpověď",
|
||||
"Reply": "Odpovědět",
|
||||
"Post": "Odeslat",
|
||||
"Cancel": "Zrušit",
|
||||
"Upload image": "Nahrát obrázek",
|
||||
"No resolved comments": "Žádné vyřešené komentáře",
|
||||
"No comments yet": "Doposud žádné komentáře",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Resolved": "Vyřešené",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Chyba při aktualizaci komentáře",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Pro zadaný požadavek nebyly nalezeny žádné dokumenty.",
|
||||
"You’ve not got any drafts at the moment.": "Momentálně nemáte žádné koncepty.",
|
||||
"Payment Required": "Vyžadována platba",
|
||||
"Not Found": "Nenalezeno",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Nepodařilo se nám najít stránku, kterou hledáte. Chcete přejít na <2>domovskou stránku</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Nenalezeno",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "Stránka, kterou hledáte, nebyla nalezena. Možná byla odstraněna nebo odkaz není správný.",
|
||||
"Offline": "Offline",
|
||||
"We were unable to load the document while offline.": "V režimu offline se nepodařilo načíst dokument.",
|
||||
"Your account has been suspended": "Váš účet byl pozastaven",
|
||||
@@ -729,7 +738,7 @@
|
||||
"Inviting": "Pozvání",
|
||||
"Send Invites": "Odeslat pozvánky",
|
||||
"Open command menu": "Otevřít příkazovou řádku",
|
||||
"Forward": "Forward",
|
||||
"Forward": "Přeposlat",
|
||||
"Edit current document": "Upravit tento dokument",
|
||||
"Move current document": "Přesunout tento dokument",
|
||||
"Open document history": "Otevřít historii dokumentu",
|
||||
@@ -768,10 +777,10 @@
|
||||
"LaTeX block": "Blok LaTeX",
|
||||
"Inline code": "Vložený kód",
|
||||
"Inline LaTeX": "Vložený LaTeX",
|
||||
"Triggers": "Triggers",
|
||||
"Mention users and more": "Mention users and more",
|
||||
"Triggers": "Akce",
|
||||
"Mention users and more": "Zmínit uživatele a další",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Insert block",
|
||||
"Insert block": "Přidat blok",
|
||||
"Sign In": "Přihlásit se",
|
||||
"Continue with Email": "Pokračovat pomocí e-mailu",
|
||||
"Continue with {{ authProviderName }}": "Pokračovat s {{ authProviderName }}",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Je nám líto, zdá se, že tento odkaz pro přihlášení již není platný, zkuste prosím požádat o jiný.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Váš účet byl pozastaven. Chcete-li znovu aktivovat svůj účet, kontaktujte správce pracovního prostoru.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Tento pracovní prostor byl pozastaven. Prosím kontaktujte podporu pro obnovení přístupu.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Ověření se nezdařilo – tento způsob přihlášení byl zakázán správcem týmu.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Ověření se nezdařilo – tento způsob přihlášení byl zakázán správcem týmu.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "Pracovní prostor, ke kterému se pokoušíte připojit, vyžaduje před vytvořením účtu pozvánku.<1></1> Požádejte správce pracovního prostoru o pozvánku a zkuste to znovu.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "Přihlášení",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Nebo",
|
||||
"Already have an account? Go to <1>login</1>.": "Máte již účet? <1>Přihlaste se</1>.",
|
||||
"Any collection": "Jakákoli sbírka",
|
||||
"Any time": "Kdykoliv",
|
||||
"All time": "All time",
|
||||
"Past day": "Včera",
|
||||
"Past week": "Minulý týden",
|
||||
"Past month": "Minulý měsíc",
|
||||
"Past year": "Minulý rok",
|
||||
"Any time": "Kdykoliv",
|
||||
"Remove document filter": "Odebrat filtr dokumentů",
|
||||
"Any status": "Libovolný stav",
|
||||
"Remove search": "Odstranit vyhledávání",
|
||||
"Any author": "Jakýkoliv autor",
|
||||
"Author": "Autor",
|
||||
"We were unable to find the page you’re looking for.": "Nepodařilo se nám najít stránku, kterou hledáte.",
|
||||
"Search titles only": "Hledat pouze názvy",
|
||||
"Something went wrong": "Something went wrong",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
@@ -883,16 +891,22 @@
|
||||
"Search people": "Hledat uživatele",
|
||||
"No people matching your search": "Vašemu vyhledávání neodpovídají žádní lidé",
|
||||
"No people left to add": "Nezbývají žádní lidé, které by bylo možné přidat",
|
||||
"Date created": "Date created",
|
||||
"Date created": "Datum vytvoření",
|
||||
"Upload": "Nahrát",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Nahrávání",
|
||||
"How does this work?": "Jak to funguje?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Můžete importovat soubor zip, který byl dříve exportován z možnosti JSON v jiné instanci. V {{ appName }} otevřete <em>Export</em> v postranním panelu Nastavení a klikněte na <em>Exportovat data</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Přetáhněte soubor zip z možnosti exportu JSON v {{appName}} nebo kliknutím nahrajte",
|
||||
"Canceled": "Zrušeno",
|
||||
"Import canceled": "Import byl zrušen",
|
||||
"Are you sure you want to cancel this import?": "Jste si jisti, že chcete zrušit tento import?",
|
||||
"Canceling": "Probíhá zrušení",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Zrušením tohoto importu bude odstraněn jakýkoliv pokrok. Toto nelze vrátit zpět.",
|
||||
"{{ count }} document imported": "{{ count }} dokument importován",
|
||||
"{{ count }} document imported_plural": "{{ count }} dokumentů importováno",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Můžete importovat soubor zip, který byl dříve exportován z instalace Outline – budou importovány sbírky, dokumenty a obrázky. V aplikaci Outline otevřete <em>Export</em> na postranním panelu Nastavení a klikněte na <em>Exportovat data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Přetáhněte soubor zip z možnosti exportu Markdown z {{appName}} nebo kliknutím nahrajte",
|
||||
"Where do I find the file?": "Kde najdu soubor?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "V Notion klikněte na <em>Nastavení a členové</em> v levém postranním panelu a otevřete Nastavení. Vyhledejte sekci Exportovat a klikněte na <em>Exportovat veškerý obsah pracovního prostoru</em>. Vyberte <em>HTML</em> jako formát pro nejlepší kompatibilitu dat.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Přetáhněte soubor zip z exportu HTML aplikace Notion nebo kliknutím nahrajte",
|
||||
"Last active": "Poslední aktivita",
|
||||
"Guest": "Host",
|
||||
"Shared by": "Sdíleno uživatelem",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editoři",
|
||||
"All status": "All status",
|
||||
"Active": "Aktivní",
|
||||
"Left": "Vlevo",
|
||||
"Right": "Vpravo",
|
||||
"Settings saved": "Nastavení uloženo",
|
||||
"Logo updated": "Logo aktualizováno",
|
||||
"Unable to upload new logo": "Nelze nahrát nové logo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Zobrazit logo vašeho týmu na veřejných stránkách, jako je přihlášení a sdílené dokumenty.",
|
||||
"Table of contents position": "Umístění obsahu tabulky",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Behavior": "Chování",
|
||||
"Subdomain": "Subdoména",
|
||||
"Your workspace will be accessible at": "Váš pracovní prostor bude přístupný na",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Vyberte subdoménu a povolte přihlašovací stránku pouze pro svůj tým.",
|
||||
"Start view": "Domovská obrazovka",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Toto je obrazovka, kterou členové pracovního prostoru uvidí jako první, když se přihlásí.",
|
||||
"Danger": "Nebezpečí",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Můžete odstranit celý tento pracovní prostor včetně kolekcí, dokumentů a uživatelů.",
|
||||
@@ -945,38 +958,37 @@
|
||||
"New group": "Nová skupina",
|
||||
"Groups can be used to organize and manage the people on your team.": "Skupiny lze použít k organizaci a správě lidí ve vašem týmu.",
|
||||
"No groups have been created yet": "Dosud nebyly vytvořeny žádné skupiny",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Rychle přeneste své stávající dokumenty, stránky a soubory z jiných nástrojů a služeb do {{appName}}. Jakékoli HTML, Markdown a textové dokumenty můžete také přetáhnout přímo do sbírky v aplikaci.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importujte soubor zip s dokumenty Markdown (exportované z verze 0.67.0 nebo starší)",
|
||||
"Import data": "Importovat data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importujte datový soubor JSON exportovaný z instance {{ appName }}",
|
||||
"Import pages exported from Notion": "Importujte stránky exportované z Notion",
|
||||
"Import pages from a Confluence instance": "Importujte stránky z aplikace Confluence",
|
||||
"Enterprise": "Podnik",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Rychle přeneste své stávající dokumenty, stránky a soubory z jiných nástrojů a služeb do {{appName}}. Jakékoli HTML, Markdown a textové dokumenty můžete také přetáhnout přímo do sbírky v aplikaci.",
|
||||
"Recent imports": "Nedávné importy",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Zde je uveden každý, kdo se přihlásil do {{appName}}. Je možné, že existuje více uživatelů, kteří mají přístup přes {{signinMethods}}, ale ještě se nepřihlásili.",
|
||||
"Receive a notification whenever a new document is published": "Přijímat oznámení, když bude publikován nový obsah",
|
||||
"Receive a notification whenever a new document is published": "Dostat upozornění, když bude publikován nový obsah",
|
||||
"Document updated": "Dokument aktualizován",
|
||||
"Receive a notification when a document you are subscribed to is edited": "Obdržet upozornění, když je dokument, k jehož odběru jste přihlášeni, upraven",
|
||||
"Receive a notification when a document you are subscribed to is edited": "Dostat upozornění, když je dokument, k jehož odběru jste přihlášeni, upraven",
|
||||
"Comment posted": "Komentář byl zveřejněn",
|
||||
"Receive a notification when a document you are subscribed to or a thread you participated in receives a comment": "Obdržet upozornění, když dokument, k jehož odběru jste přihlášeni, nebo vlákno, jehož jste se účastnili, obdrží komentář",
|
||||
"Receive a notification when a document you are subscribed to or a thread you participated in receives a comment": "Dostat upozornění, když dokument, k jehož odběru jste přihlášeni, nebo vlákno, jehož jste se účastnili, obdrží komentář",
|
||||
"Mentioned": "Zmínky",
|
||||
"Receive a notification when someone mentions you in a document or comment": "Dostávat upozornění, když se o vás někdo zmíní v dokumentu nebo komentáři",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Receive a notification when a comment thread you were involved in is resolved",
|
||||
"Receive a notification when someone mentions you in a document or comment": "Dostat upozornění, když se o vás někdo zmíní v dokumentu nebo komentáři",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Dostat upozornění, když bude vyřešeno vlákno komentářů, do kterého jste byli zapojeni",
|
||||
"Collection created": "Sbírka vytvořena",
|
||||
"Receive a notification whenever a new collection is created": "Přijímat oznámení, když bude vytvořena nová sbírka",
|
||||
"Receive a notification whenever a new collection is created": "Dostat upozornění, když bude vytvořena nová sbírka",
|
||||
"Invite accepted": "Pozvánka přijata",
|
||||
"Receive a notification when someone you invited creates an account": "Obdržet oznámení, když si někdo, koho jste pozvali, vytvoří účet",
|
||||
"Receive a notification when someone you invited creates an account": "Dostat upozornění, když si někdo, koho jste pozvali, vytvoří účet",
|
||||
"Invited to document": "Pozván/a do dokumentu",
|
||||
"Receive a notification when a document is shared with you": "Dostat oznámení, když získáte přístup k dokumentu",
|
||||
"Invited to collection": "Pozván do kolekce",
|
||||
"Receive a notification when you are given access to a collection": "Dostávat upozornění, když získáte přístup k nové kolekci",
|
||||
"Receive a notification when you are given access to a collection": "Dostat upozornění, když získáte přístup k nové kolekci",
|
||||
"Export completed": "Export dokončen",
|
||||
"Receive a notification when an export you requested has been completed": "Obdržet upozornění, když byl vámi požadovaný export dokončen",
|
||||
"Receive a notification when an export you requested has been completed": "Dostat upozornění, když byl vámi požadovaný export dokončen",
|
||||
"Getting started": "Začínáme",
|
||||
"Tips on getting started with features and functionality": "Tipy, jak začít s funkcemi",
|
||||
"New features": "Nové funkce",
|
||||
"Receive an email when new features of note are added": "Obdržet e-mail, když budou přidány nové funkce poznámky",
|
||||
"Receive an email when new features of note are added": "Dostat e-mail, když budou přidány nové funkce poznámky",
|
||||
"Notifications saved": "Upozornění uložena",
|
||||
"Unsubscription successful. Your notification settings were updated": "Odhlášení bylo úspěšné. Nastavení oznámení bylo aktualizováno",
|
||||
"Manage when and where you receive email notifications.": "Spravujte, kdy a kde budete dostávat e-mailová upozornění.",
|
||||
@@ -996,8 +1008,8 @@
|
||||
"When enabled, documents have a separate editing mode. When disabled, documents are always editable when you have permission.": "Pokud je povoleno, dokumenty mají samostatný režim úprav. Pokud je zakázáno, dokumenty jsou vždy upravitelné, pokud máte oprávnění.",
|
||||
"Remember previous location": "Zapamatovat předchozí umístění",
|
||||
"Automatically return to the document you were last viewing when the app is re-opened.": "Automaticky se vracet k dokumentu, který jste si naposledy prohlédli před ukončením aplikace.",
|
||||
"Smart text replacements": "Smart text replacements",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.",
|
||||
"Smart text replacements": "Chytré nahrazení textu",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Automatické formátování textu nahrazením symboly, pomlčkami, chytrými uvozovkami a dalšími typografickými prvky.",
|
||||
"You may delete your account at any time, note that this is unrecoverable": "Účet můžete kdykoliv odstranit, tento krok je neobnovitelný",
|
||||
"Profile saved": "Profil uložen",
|
||||
"Profile picture updated": "Profilový obrázek byl úspěšně aktualizován",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Umožnit členům vytvářet v rámci pracoviště nové kolekce",
|
||||
"Workspace creation": "Vytvoření pracovního prostoru",
|
||||
"Allow editors to create new workspaces": "Povolit editorům vytvářet nové pracovní prostory",
|
||||
"Draw.io deployment": "Využití aplikace Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Přidejte sem svou vlastní instalační adresu draw.io, abyste povolili automatické vkládání diagramů do dokumentů.",
|
||||
"Grist deployment": "Grist nasazení",
|
||||
"Add your self-hosted grist installation URL here.": "Zde přidejte vlastní instalační Grist URL adresu.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "Sdílení je momentálně zakázáno.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Můžete globálně povolit a zakázat sdílení dokumentů v nastavení <em>zabezpečení</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "URL adresa Matomo instance. Pokud používáte Matomo Cloud, adresa má na konci matomo.cloud/",
|
||||
"Site ID": "ID stránky",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Přidat do Slacku",
|
||||
"document published": "dokument zveřejněn",
|
||||
"document updated": "dokument aktualizován",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} aktualizoval před {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Vytvořili jste před {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} vytvořil před {{ timeAgo }}",
|
||||
"Uploading": "Nahrávání"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Søg i samling",
|
||||
"Star": "Favorit",
|
||||
"Unstar": "Fjern favorit",
|
||||
"Subscribe": "Abonner",
|
||||
"Subscribed to document notifications": "Abonner på dokumentmeddelelser",
|
||||
"Unsubscribe": "Afmeld",
|
||||
"Unsubscribed from document notifications": "Afmeldt dokumentmeddelelser",
|
||||
"Archive": "Arkiv",
|
||||
"Archive collection": "Archive collection",
|
||||
"Collection archived": "Collection archived",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Udgiv dokument",
|
||||
"Unpublish": "Fjern udgivelse",
|
||||
"Unpublished {{ documentName }}": "Afpublicerede {{ documentName }}",
|
||||
"Subscribe": "Abonner",
|
||||
"Subscribed to document notifications": "Abonner på dokumentmeddelelser",
|
||||
"Unsubscribe": "Afmeld",
|
||||
"Unsubscribed from document notifications": "Afmeldt dokumentmeddelelser",
|
||||
"Share this document": "Del dette dokument",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Hent dokument",
|
||||
"Copy as Markdown": "Kopiér som Markdown",
|
||||
"Markdown copied to clipboard": "Markdown kopieret til udklipsholder",
|
||||
"Copy as text": "Copy as text",
|
||||
"Text copied to clipboard": "Text copied to clipboard",
|
||||
"Copy public link": "Copy public link",
|
||||
"Link copied to clipboard": "Link kopieret til udklipsholder",
|
||||
"Copy link": "Kopiér link",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Home": "Hjem",
|
||||
"Drafts": "Udkast",
|
||||
"Search": "Søg",
|
||||
"Trash": "Affald",
|
||||
"Settings": "Indstillinger",
|
||||
"Profile": "Profil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Opdatér rolle",
|
||||
"Delete user": "Slet bruger",
|
||||
"Collection": "Samling",
|
||||
"Collections": "Samlinger",
|
||||
"Debug": "Fejlsøgning",
|
||||
"Document": "Dokument",
|
||||
"Documents": "Dokumenter",
|
||||
@@ -194,6 +198,7 @@
|
||||
"Submenu": "Submenu",
|
||||
"Collections could not be loaded, please reload the app": "Collections could not be loaded, please reload the app",
|
||||
"Default collection": "Default collection",
|
||||
"Start view": "Start view",
|
||||
"Install now": "Install now",
|
||||
"Deleted Collection": "Deleted Collection",
|
||||
"Untitled": "Unavngivet",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Flags",
|
||||
"Select a color": "Vælg en farve",
|
||||
"Loading": "Indlæser",
|
||||
"Search": "Søg",
|
||||
"Permission": "Permission",
|
||||
"View only": "Kun visning",
|
||||
"Can edit": "Can edit",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Archived collections",
|
||||
"New doc": "Nyt dokument",
|
||||
"Empty": "Tom",
|
||||
"Collections": "Samlinger",
|
||||
"Collapse": "Collapse",
|
||||
"Expand": "Expand",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Dokumentet understøttes ikke – prøv Markdown, Almindelig tekst, HTML, eller Word",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Create a new doc",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Add column after",
|
||||
"Add column before": "Add column before",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "None",
|
||||
"Could not import file": "Could not import file",
|
||||
"Unsubscribed from document": "Unsubscribed from document",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "Account",
|
||||
"API Keys": "API Keys",
|
||||
"Details": "Details",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Groups",
|
||||
"Shared Links": "Shared Links",
|
||||
"Import": "Import",
|
||||
"Self Hosted": "Self Hosted",
|
||||
"Integrations": "Integrations",
|
||||
"Revoke token": "Revoke token",
|
||||
"Revoke": "Revoke",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"Document options": "Document options",
|
||||
"Choose a collection": "Choose a collection",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "Enable embeds",
|
||||
"Export options": "Export options",
|
||||
"Group members": "Gruppemedlemmer",
|
||||
"Edit group": "Edit group",
|
||||
"Delete group": "Delete group",
|
||||
"Group options": "Group options",
|
||||
"Cancel": "Cancel",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Member options",
|
||||
"New document in <em>{{ collectionName }}</em>": "New document in <em>{{ collectionName }}</em>",
|
||||
"New child document": "New child document",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Add a reply",
|
||||
"Reply": "Reply",
|
||||
"Post": "Post",
|
||||
"Cancel": "Cancel",
|
||||
"Upload image": "Upload image",
|
||||
"No resolved comments": "No resolved comments",
|
||||
"No comments yet": "No comments yet",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Error updating comment",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "No documents found for your filters.",
|
||||
"You’ve not got any drafts at the moment.": "You’ve not got any drafts at the moment.",
|
||||
"Payment Required": "Payment Required",
|
||||
"Not Found": "Not Found",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "We were unable to find the page you’re looking for. Go to the <2>homepage</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Offline",
|
||||
"We were unable to load the document while offline.": "We were unable to load the document while offline.",
|
||||
"Your account has been suspended": "Your account has been suspended",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Sorry, it looks like that sign-in link is no longer valid, please try requesting another.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Your account has been suspended. To re-activate your account, please contact a workspace admin.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "This workspace has been suspended. Please contact support to restore access.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Authentication failed – this login method was disabled by a team admin.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "Login",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Or",
|
||||
"Already have an account? Go to <1>login</1>.": "Already have an account? Go to <1>login</1>.",
|
||||
"Any collection": "Any collection",
|
||||
"Any time": "Any time",
|
||||
"All time": "All time",
|
||||
"Past day": "Past day",
|
||||
"Past week": "Past week",
|
||||
"Past month": "Past month",
|
||||
"Past year": "Past year",
|
||||
"Any time": "Any time",
|
||||
"Remove document filter": "Remove document filter",
|
||||
"Any status": "Any status",
|
||||
"Remove search": "Remove search",
|
||||
"Any author": "Any author",
|
||||
"Author": "Author",
|
||||
"We were unable to find the page you’re looking for.": "We were unable to find the page you’re looking for.",
|
||||
"Search titles only": "Search titles only",
|
||||
"Something went wrong": "Something went wrong",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "No people left to add",
|
||||
"Date created": "Date created",
|
||||
"Upload": "Upload",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Uploading",
|
||||
"How does this work?": "How does this work?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload",
|
||||
"Where do I find the file?": "Where do I find the file?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Drag and drop the zip file from Notion's HTML export option, or click to upload",
|
||||
"Last active": "Last active",
|
||||
"Guest": "Guest",
|
||||
"Shared by": "Shared by",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editors",
|
||||
"All status": "All status",
|
||||
"Active": "Active",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Settings saved": "Settings saved",
|
||||
"Logo updated": "Logo updated",
|
||||
"Unable to upload new logo": "Unable to upload new logo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Show your team’s logo on public pages like login and shared documents.",
|
||||
"Table of contents position": "Table of contents position",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Behavior": "Behavior",
|
||||
"Subdomain": "Subdomain",
|
||||
"Your workspace will be accessible at": "Your workspace will be accessible at",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Choose a subdomain to enable a login page just for your team.",
|
||||
"Start view": "Start view",
|
||||
"This is the screen that workspace members will first see when they sign in.": "This is the screen that workspace members will first see when they sign in.",
|
||||
"Danger": "Danger",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "You can delete this entire workspace including collections, documents, and users.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "New group",
|
||||
"Groups can be used to organize and manage the people on your team.": "Groups can be used to organize and manage the people on your team.",
|
||||
"No groups have been created yet": "No groups have been created yet",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)",
|
||||
"Import data": "Import data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Import a JSON data file exported from another {{ appName }} instance",
|
||||
"Import pages exported from Notion": "Import pages exported from Notion",
|
||||
"Import pages from a Confluence instance": "Import pages from a Confluence instance",
|
||||
"Enterprise": "Enterprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Recent imports": "Recent imports",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Allow editors to create new collections within the workspace",
|
||||
"Workspace creation": "Workspace creation",
|
||||
"Allow editors to create new workspaces": "Allow editors to create new workspaces",
|
||||
"Draw.io deployment": "Draw.io deployment",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.",
|
||||
"Grist deployment": "Grist deployment",
|
||||
"Add your self-hosted grist installation URL here.": "Add your self-hosted grist installation URL here.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "Sharing is currently disabled.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "You can globally enable and disable public document sharing in the <em>security settings</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
"Site ID": "Site ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Add to Slack",
|
||||
"document published": "document published",
|
||||
"document updated": "document updated",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} updated {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "You created {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} created {{ timeAgo }}",
|
||||
"Uploading": "Uploading"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Suche in Sammlung",
|
||||
"Star": "Favorisieren",
|
||||
"Unstar": "Aus den Favoriten entfernen",
|
||||
"Subscribe": "Abonnieren",
|
||||
"Subscribed to document notifications": "Dokument-Benachrichtigungen abonniert",
|
||||
"Unsubscribe": "Abonnement beenden",
|
||||
"Unsubscribed from document notifications": "Dokument-Benachrichtigungen abbestellt",
|
||||
"Archive": "Archiv",
|
||||
"Archive collection": "Private Sammlung",
|
||||
"Collection archived": "Sammlung archiviert",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "Entwicklung",
|
||||
"Open document": "Dokument öffnen",
|
||||
"New document": "Neues Dokument",
|
||||
"New draft": "New draft",
|
||||
"New draft": "Neuer Entwurf",
|
||||
"New from template": "Neu aus Vorlage",
|
||||
"New nested document": "Neues Unterdokument",
|
||||
"Publish": "Veröffentlichen",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Dokument veröffentlichen",
|
||||
"Unpublish": "Veröffentlichung aufheben",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} wurde unveröffentlicht",
|
||||
"Subscribe": "Abonnieren",
|
||||
"Subscribed to document notifications": "Dokument-Benachrichtigungen abonniert",
|
||||
"Unsubscribe": "Deabonnieren",
|
||||
"Unsubscribed from document notifications": "Dokument-Benachrichtigungen abbestellt",
|
||||
"Share this document": "Dokument teilen",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Dokument herunterladen",
|
||||
"Copy as Markdown": "Als Markdown kopieren",
|
||||
"Markdown copied to clipboard": "Markdown in Zwischenablage kopiert",
|
||||
"Copy as text": "Als Text kopieren",
|
||||
"Text copied to clipboard": "Text in die Zwischenablage kopiert",
|
||||
"Copy public link": "Öffentlichen Link kopieren",
|
||||
"Link copied to clipboard": "Link in die Zwischenablage kopiert",
|
||||
"Copy link": "Link kopieren",
|
||||
@@ -78,13 +80,13 @@
|
||||
"Create template": "Vorlage erstellen",
|
||||
"Open random document": "Zufälliges Dokument öffnen",
|
||||
"Search documents for \"{{searchQuery}}\"": "Suche Dokumente für \"{{searchQuery}}\"",
|
||||
"Move to workspace": "Move to workspace",
|
||||
"Move to workspace": "In Arbeitsbereich verschieben",
|
||||
"Move": "Verschieben",
|
||||
"Move to collection": "Zu Sammlung verschieben",
|
||||
"Move {{ documentType }}": "Verschiebe {{ documentType }}",
|
||||
"Are you sure you want to archive this document?": "Are you sure you want to archive this document?",
|
||||
"Are you sure you want to archive this document?": "Sind Sie sicher, dass Sie dieses Dokument archivieren möchten?",
|
||||
"Document archived": "Dokument archiviert",
|
||||
"Archiving this document will remove it from the collection and search results.": "Archiving this document will remove it from the collection and search results.",
|
||||
"Archiving this document will remove it from the collection and search results.": "Das Archivieren dieses Dokuments entfernt es aus der Sammlung und den Suchergebnissen.",
|
||||
"Delete {{ documentName }}": "{{ documentName }} löschen",
|
||||
"Permanently delete": "Unwiderruflich löschen",
|
||||
"Permanently delete {{ documentName }}": "{{ documentName }} unwiderruflich löschen",
|
||||
@@ -96,10 +98,11 @@
|
||||
"Disable viewer insights": "Leser Statistiken deaktivieren",
|
||||
"Enable viewer insights": "Leser Statistiken aktivieren",
|
||||
"Leave document": "Dokument verlassen",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Could not leave document": "Could not leave document",
|
||||
"You have left the shared document": "Sie haben das geteilte Dokument verlassen",
|
||||
"Could not leave document": "Dokument konnte nicht verlassen werden",
|
||||
"Home": "Startseite",
|
||||
"Drafts": "Entwürfe",
|
||||
"Search": "Suche",
|
||||
"Trash": "Papierkorb",
|
||||
"Settings": "Einstellungen",
|
||||
"Profile": "Profil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Rolle bearbeiten",
|
||||
"Delete user": "Benutzer löschen",
|
||||
"Collection": "Sammlung",
|
||||
"Collections": "Sammlungen",
|
||||
"Debug": "Testen",
|
||||
"Document": "Dokument",
|
||||
"Documents": "Dokumente",
|
||||
@@ -177,10 +181,10 @@
|
||||
"view and edit access": "Zugriff anzeigen und bearbeiten",
|
||||
"view only access": "nur anzeigen Zugriff",
|
||||
"no access": "kein Zugriff",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "Sie haben keine Berechtigung, {{ documentName }} in die {{ collectionName }} Sammlung zu verschieben",
|
||||
"Move document": "Dokument verschieben",
|
||||
"Moving": "Bewegen",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Das Verschieben des Dokuments <em>{{ title }}</em> in die {{ newCollectionName }} Sammlung wird die Berechtigung für alle Mitglieder des Arbeitsbereiches von <em>{{ prevPermission }}</em> zu <em>{{ newPermission }}</em> ändern.",
|
||||
"Document is too large": "Dokument ist zu groß",
|
||||
"This document has reached the maximum size and can no longer be edited": "Dieses Dokument hat die Maximalgröße erreicht und kann nicht mehr bearbeitet werden",
|
||||
"Authentication failed": "Authentifizierung fehlgeschlagen",
|
||||
@@ -194,11 +198,12 @@
|
||||
"Submenu": "Untermenü",
|
||||
"Collections could not be loaded, please reload the app": "Sammlungen konnten nicht geladen werden, bitte lade die App neu",
|
||||
"Default collection": "Standardsammlung",
|
||||
"Start view": "Startseite",
|
||||
"Install now": "Jetzt installieren",
|
||||
"Deleted Collection": "Gelöschte Sammlung",
|
||||
"Untitled": "Ohne Titel",
|
||||
"Unpin": "Lospinnen",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"{{ minutes }}m read": "{{ minutes }}m gelesen",
|
||||
"Select a location to copy": "Ort zum Kopieren auswählen",
|
||||
"Document copied": "Dokument kopiert",
|
||||
"Couldn’t copy the document, try again?": "Das Dokument konnte nicht kopiert werden. Erneut versuchen?",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Flaggen",
|
||||
"Select a color": "Wähle eine Farbe",
|
||||
"Loading": "Laden",
|
||||
"Search": "Suche",
|
||||
"Permission": "Berechtigung",
|
||||
"View only": "Nur anzeigen",
|
||||
"Can edit": "Darf bearbeiten",
|
||||
@@ -305,9 +309,9 @@
|
||||
"Mark all as read": "Alle als gelesen markieren",
|
||||
"You're all caught up": "Du bist auf dem neusten Stand",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} hat mit {{ emoji }} reagiert",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} und {{ secondUsername }} reagierten mit {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} und {{ count }} weitere reagierten mit {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} und {{ count }} weitere reagierten mit {{ emoji }}",
|
||||
"Add reaction": "Reaktion hinzufügen",
|
||||
"Reaction picker": "Reaktions-Auswahl",
|
||||
"Could not load reactions": "Reaktionen konnten nicht geladen werden",
|
||||
@@ -357,18 +361,17 @@
|
||||
"Allow anyone with the link to access": "Jedem mit dem Link Zugriff erlauben",
|
||||
"Publish to internet": "Im Internet veröffentlichen",
|
||||
"Search engine indexing": "Suchmaschinenindexierung",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disable this setting to discourage search engines from indexing the page",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Deaktivieren Sie diese Einstellung, um Suchmaschinen davon abzuhalten, die Seite zu indizieren",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "Verschachtelte Dokumente werden nicht im Web geteilt. Schalten Sie die Freigabe um, um den Zugriff zu ermöglichen, dies wird das Standardverhalten in Zukunft sein",
|
||||
"{{ userName }} was added to the document": "{{ userName }} was added to the document",
|
||||
"{{ count }} people added to the document": "{{ count }} people added to the document",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} people added to the document",
|
||||
"{{ count }} groups added to the document": "{{ count }} groups added to the document",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} groups added to the document",
|
||||
"{{ userName }} was added to the document": "{{ userName }} wurde dem Dokument hinzugefügt",
|
||||
"{{ count }} people added to the document": "{{ count }} Personen zu dem Dokument eingeladen",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} Personen wurden dem Dokument hinzugefügt",
|
||||
"{{ count }} groups added to the document": "{{ count }} Gruppen zu dem Dokument eingeladen",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} Gruppen wurden dem Dokument hinzugefügt",
|
||||
"Logo": "Logo",
|
||||
"Archived collections": "Archivierte Sammlungen",
|
||||
"New doc": "Neues Dokument",
|
||||
"Empty": "Leer",
|
||||
"Collections": "Sammlungen",
|
||||
"Collapse": "Zusammenklappen",
|
||||
"Expand": "Ausklappen",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Dokument nicht unterstützt - versuche Markdown, Klartext, HTML oder Word",
|
||||
@@ -383,7 +386,7 @@
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} Versionen veraltet",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} Versionen veraltet",
|
||||
"Change permissions?": "Berechtigungen ändern?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} kann nicht innerhalb von {{ parentDocumentName }} verschoben werden",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "Du kannst Dokumente in einer alphabetisch sortierten Sammlung nicht neu anordnen",
|
||||
"The {{ documentName }} cannot be moved here": "Der {{ documentName }} kann nicht dorthin verschoben werden",
|
||||
"Return to App": "Zurück zur App",
|
||||
@@ -404,9 +407,9 @@
|
||||
"Are you sure you want to suspend {{ userName }}? Suspended users will be prevented from logging in.": "Möchtest du das Konto {{ userName }} sperren? Gesperrte Nutzer können sich nicht anmelden.",
|
||||
"New name": "Neuer Name",
|
||||
"Name can't be empty": "Der Name darf nicht leer sein",
|
||||
"Check your email to verify the new address.": "Check your email to verify the new address.",
|
||||
"Check your email to verify the new address.": "Überprüfen Sie Ihren Posteingang, um die neue E-Mail-Adresse zu bestätigen.",
|
||||
"The email will be changed once verified.": "Die E-Mail wird geändert, sobald sie bestätigt wurde.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "You will receive an email to verify your new address. It must be unique in the workspace.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "Sie erhalten eine E-Mail zur Bestätigung Ihrer neuen Adresse. Sie muss im Arbeitsbereich einmalig sein.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "Eine Bestätigungs-E-Mail wird an die neue Adresse geschickt, bevor sie geändert wird.",
|
||||
"New email": "Neue E-Mail",
|
||||
"Email can't be empty": "E-Mail darf nicht leer sein",
|
||||
@@ -423,9 +426,10 @@
|
||||
"Replace all": "Alle ersetzen",
|
||||
"Profile picture": "Profilbild",
|
||||
"Create a new doc": "Neues Dokument erstellen",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} wird nicht benachrichtigt, da sie keinen Zugriff auf dieses Dokument haben",
|
||||
"Keep as link": "Als Link beibehalten",
|
||||
"Embed": "Embed",
|
||||
"Mention": "Erwähnung",
|
||||
"Embed": "Einbetten",
|
||||
"Add column after": "Spalte dahinter hinzufügen",
|
||||
"Add column before": "Spalte davor hinzufügen",
|
||||
"Add row after": "Zeile danach einfügen",
|
||||
@@ -503,9 +507,10 @@
|
||||
"Indent": "Einrückung",
|
||||
"Outdent": "Ausrückung",
|
||||
"Video": "Video",
|
||||
"None": "None",
|
||||
"None": "Keine",
|
||||
"Could not import file": "Datei konnte nicht importiert werden",
|
||||
"Unsubscribed from document": "Dokument nicht abonniert",
|
||||
"Unsubscribed from collection": "Von der Sammlung abgemeldet",
|
||||
"Account": "Konto",
|
||||
"API Keys": "API-Schlüssel",
|
||||
"Details": "Details",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Gruppen",
|
||||
"Shared Links": "Geteilte Links",
|
||||
"Import": "Import",
|
||||
"Self Hosted": "Selbst-gehostet",
|
||||
"Integrations": "Integrationen",
|
||||
"Revoke token": "Token widerrufen",
|
||||
"Revoke": "Widerrufen",
|
||||
@@ -533,16 +537,19 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} wiederhergestellt",
|
||||
"Document options": "Dokument-Einstellungen",
|
||||
"Choose a collection": "Sammlung auswählen",
|
||||
"Subscription inherited from collection": "Abonnement aus der Sammlung vererbt",
|
||||
"Enable embeds": "Einbettungen aktivieren",
|
||||
"Export options": "Exportoptionen",
|
||||
"Group members": "Gruppenmitglieder",
|
||||
"Edit group": "Gruppe bearbeiten",
|
||||
"Delete group": "Gruppe löschen",
|
||||
"Group options": "Gruppen-Einstellungen",
|
||||
"Cancel": "Abbrechen",
|
||||
"Import menu options": "Menüoptionen importieren",
|
||||
"Member options": "Mitglieder-Einstellungen",
|
||||
"New document in <em>{{ collectionName }}</em>": "Neues Dokument in <em>{{ collectionName }}</em>",
|
||||
"New child document": "Neues Unterdokument",
|
||||
"Save in workspace": "Save in workspace",
|
||||
"Save in workspace": "Im Arbeitsbereich speichern",
|
||||
"Notification settings": "Benachrichtigungs-Einstellungen",
|
||||
"Revision options": "Version-Einstellungen",
|
||||
"Share link revoked": "Freigabelink widerrufen",
|
||||
@@ -569,13 +576,13 @@
|
||||
"created the collection": "Sammlung erstellt",
|
||||
"mentioned you in": "erwähnte dich in",
|
||||
"left a comment on": "hat einen Kommentar geschrieben zu",
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"resolved a comment on": "löste einen Kommentar auf",
|
||||
"shared": "geteilt",
|
||||
"invited you to": "hat dich eingeladen zu",
|
||||
"Choose a date": "Datum auswählen",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API-Schlüssel erstellt. Bitte kopieren Sie den Wert jetzt, da er nicht wieder angezeigt werden kann.",
|
||||
"Scopes": "Scopes",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access",
|
||||
"Scopes": "Bereiche",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Durch Leerzeichen getrennte Bereiche beschränken den Zugriff dieses API-Schlüssels auf bestimmte Teile der API. Leer lassen für vollen Zugriff",
|
||||
"Expiration": "Ablaufdatum",
|
||||
"Never expires": "Läuft nie ab",
|
||||
"7 days": "7 Tage",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Antwort hinzufügen",
|
||||
"Reply": "Antworten",
|
||||
"Post": "Beitrag",
|
||||
"Cancel": "Abbrechen",
|
||||
"Upload image": "Bild hochladen",
|
||||
"No resolved comments": "Keine gelösten Kommentare",
|
||||
"No comments yet": "Bisher keine Kommentare",
|
||||
"New comments": "Neue Kommentare",
|
||||
"Most recent": "Zuletzt verwendet",
|
||||
"Order in doc": "Reihenfolge wie im Dokument",
|
||||
"Resolved": "Gelöst",
|
||||
"Sort comments": "Kommentare sortieren",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Show {{ count }} reply": "{{ count }} Antwort anzeigen",
|
||||
"Show {{ count }} reply_plural": "{{ count }} -Antworten anzeigen",
|
||||
"Error updating comment": "Fehler beim Aktualisieren des Kommentars",
|
||||
@@ -633,7 +639,7 @@
|
||||
"Type '/' to insert, or start writing…": "Tippe '/' zum Einfügen, oder beginne mit dem Schreiben…",
|
||||
"Hide contents": "Inhalt ausblenden",
|
||||
"Show contents": "Inhalt anzeigen",
|
||||
"available when headings are added": "available when headings are added",
|
||||
"available when headings are added": "verfügbar, wenn Überschriften hinzugefügt werden",
|
||||
"Edit {{noun}}": "{{noun}} bearbeiten",
|
||||
"Switch to dark": "Wechsel zum Dark-Mode",
|
||||
"Switch to light": "Wechsel zum Light-Mode",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Keine Dokumente anhand Ihre Filter gefunden.",
|
||||
"You’ve not got any drafts at the moment.": "Sie haben im Moment keine Entwürfe.",
|
||||
"Payment Required": "Zahlung erforderlich",
|
||||
"Not Found": "Nicht gefunden",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Wir konnten die gesuchte Seite nicht finden. Möchten Sie zur <2>Startseite</2> gehen?",
|
||||
"No access to this doc": "Kein Zugriff auf dieses Dokument",
|
||||
"It doesn’t look like you have permission to access this document.": "Sie scheinen keine Berechtigung zu haben, um auf dieses Dokument zuzugreifen.",
|
||||
"Please request access from the document owner.": "Bitte fordern Sie den Zugriff beim Eigentümer des Dokuments an.",
|
||||
"Not found": "Nicht gefunden",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "Die von Ihnen gesuchte Seite kann nicht gefunden werden. Möglicherweise wurde sie gelöscht oder der Link ist fehlerhaft.",
|
||||
"Offline": "Offline",
|
||||
"We were unable to load the document while offline.": "Wir konnten das Dokument nicht offline laden.",
|
||||
"Your account has been suspended": "Ihr Konto wurde gesperrt",
|
||||
@@ -729,7 +738,7 @@
|
||||
"Inviting": "Eingeladen",
|
||||
"Send Invites": "Einladung senden",
|
||||
"Open command menu": "Befehlsmenü öffnen",
|
||||
"Forward": "Forward",
|
||||
"Forward": "Weiterleiten",
|
||||
"Edit current document": "Aktuelles Dokument bearbeiten",
|
||||
"Move current document": "Aktuelles Dokument verschieben",
|
||||
"Open document history": "Dokumentenverlauf öffnen",
|
||||
@@ -751,7 +760,7 @@
|
||||
"Undo": "Rückgängig machen",
|
||||
"Redo": "Wiederholen",
|
||||
"Lists": "Listen",
|
||||
"Toggle task list item": "Toggle task list item",
|
||||
"Toggle task list item": "Element der Aufgabenliste umschalten",
|
||||
"Tab": "Tab",
|
||||
"Indent list item": "Listenelement einrücken",
|
||||
"Outdent list item": "Listenelement ausrücken",
|
||||
@@ -768,10 +777,10 @@
|
||||
"LaTeX block": "LaTeX-Block",
|
||||
"Inline code": "Inline-Code",
|
||||
"Inline LaTeX": "Inline-LaTeX",
|
||||
"Triggers": "Triggers",
|
||||
"Mention users and more": "Mention users and more",
|
||||
"Triggers": "Auslöser",
|
||||
"Mention users and more": "Erwähne Benutzer und mehr",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Insert block",
|
||||
"Insert block": "Block einfügen",
|
||||
"Sign In": "Anmelden",
|
||||
"Continue with Email": "Weiter mit E-Mail",
|
||||
"Continue with {{ authProviderName }}": "Weiter mit {{ authProviderName }}",
|
||||
@@ -793,9 +802,9 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Entschuldige, es sieht so aus, als ob der Login-Link nicht mehr gültig ist, bitte versuche einen neuen anzufordern.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Dein Konto wurde gesperrt. Um dein Konto wieder zu aktivieren, kontaktiere bitte deinen Arbeitsbereich-Administrator.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Dieser Arbeitsbereich wurde gesperrt. Bitte kontaktiere den Support, um den Zugang wiederherzustellen.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Authentifizierung fehlgeschlagen – diese Login-Methode wurde von deinem Team-Administrator deaktiviert.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentifizierung fehlgeschlagen – diese Login-Methode wurde von deinem Bereichs-Administrator deaktiviert.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "Der Arbeitsbereich, dem du beitreten möchtest, benötigt eine Einladung, bevor du ein Konto erstellen kannst. <1></1>Bitte fordere eine Einladung von deinem Arbeitsbereich-Administrator an und versuche es erneut.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Sorry, an unknown error occurred.": "Entschuldigung, ein unbekannter Fehler ist aufgetreten.",
|
||||
"Login": "Anmelden",
|
||||
"Error": "Fehler",
|
||||
"Failed to load configuration.": "Fehler beim Laden der Konfiguration.",
|
||||
@@ -814,27 +823,26 @@
|
||||
"Or": "Oder",
|
||||
"Already have an account? Go to <1>login</1>.": "Du hast bereits ein Konto? <1>Anmelden</1>.",
|
||||
"Any collection": "Beliebige Sammlung",
|
||||
"Any time": "Jederzeit",
|
||||
"All time": "Gesamter Zeitraum",
|
||||
"Past day": "Letzter Tag",
|
||||
"Past week": "Letzte Woche",
|
||||
"Past month": "Letzten Monat",
|
||||
"Past year": "Letztes Jahr",
|
||||
"Any time": "Jederzeit",
|
||||
"Remove document filter": "Dokumenten-Filter entfernen",
|
||||
"Any status": "Jeder Status",
|
||||
"Remove search": "Suche entfernen",
|
||||
"Any author": "Alle Autoren",
|
||||
"Author": "Autor",
|
||||
"We were unable to find the page you’re looking for.": "Die von Ihnen gesuchte Seite konnte nicht gefunden werden.",
|
||||
"Search titles only": "Nur Titel durchsuchen",
|
||||
"Something went wrong": "Etwas ist schiefgelaufen",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
"Please try again or contact support if the problem persists": "Bitte versuchen Sie es erneut oder wenden Sie sich an den Support, falls das Problem weiterhin besteht",
|
||||
"No documents found for your search filters.": "Keine Dokumente für diese Suchfilter gefunden.",
|
||||
"API": "API",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.",
|
||||
"by {{ name }}": "by {{ name }}",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API-Schlüssel können verwendet werden, um sich mit der API zu authentifizieren und die Daten des Arbeitsbereiches\n programmatisch zu steuern. Weitere Details finden Sie in der <em>Entwicklerdokumentation</em>.",
|
||||
"by {{ name }}": "von {{ name }}",
|
||||
"Last used": "Zuletzt verwendet",
|
||||
"No expiry": "Kein Verfall",
|
||||
"Restricted scope": "Restricted scope",
|
||||
"Restricted scope": "Eingeschränkter Bereich",
|
||||
"API key copied to clipboard": "API-Schlüssel wurde in die Zwischenablage kopiert",
|
||||
"Copied": "Kopiert",
|
||||
"Revoking": "Wird widerrufen",
|
||||
@@ -883,16 +891,22 @@
|
||||
"Search people": "Personen suchen",
|
||||
"No people matching your search": "Keine Personen, die Ihrer Suche entsprechen",
|
||||
"No people left to add": "Keine Personen übrig zum Hinzufügen",
|
||||
"Date created": "Date created",
|
||||
"Date created": "Erstellungsdatum",
|
||||
"Upload": "Hochladen",
|
||||
"Crop image": "Bild zuschneiden",
|
||||
"Uploading": "Wird hochgeladen",
|
||||
"How does this work?": "Wie funktioniert das?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Du kannst eine ZIP-Datei importieren, die zuvor mithilfe der JSON-Export Funktion exportiert wurde. Öffne dazu in {{ appName }} <em>Exportieren</em> in der Seitenleiste Einstellungen und klicke auf <em>Daten exportieren</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Drag-and-Drop die Zip-Datei von JSON-Export Funktion in {{appName}}, oder klicke auf Upload",
|
||||
"Canceled": "Abgesagt",
|
||||
"Import canceled": "Import abgebrochen",
|
||||
"Are you sure you want to cancel this import?": "Möchten Sie diesen Import wirklich abbrechen?",
|
||||
"Canceling": "Stornieren",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Das Abbrechen dieses Imports verwirft alle bisherigen Fortschritte. Dieser Vorgang kann nicht rückgängig gemacht werden.",
|
||||
"{{ count }} document imported": "{{ count }} dokument importiert",
|
||||
"{{ count }} document imported_plural": "{{ count }} dokumente importiert",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Sie können eine ZIP-Datei importieren, die zuvor aus einer Outline-Installation exportiert wurde. Es werden Sammlungen, Dokumente und Bilder importiert. Rufen Sie in Outline <em>Exportieren</em> in der Seitenleiste der Einstellungen auf und klicken Sie auf <em>Daten exportierten</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Drag-and-Drop die Zip-Datei von Markdown Export Funktion in {{appName}}, oder klicke auf Upload",
|
||||
"Where do I find the file?": "Wo finde ich die Datei?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "Klicke in Notion in der linken Seitenleiste auf <em>Settings & Members</em> und danach auf <em>Settings</em>. Schaue nach dem Export-Bereich und klicke auf <em>Export all workspace content</em>. Wähle für die beste Datenkompatibilität <em>HTML</em> als Format.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Bewege die ZIP-Datei von Notions HTML-Export-Funktion (Drag & Drop) oder klicke zum Hochladen",
|
||||
"Last active": "Zuletzt aktiv",
|
||||
"Guest": "Gast",
|
||||
"Shared by": "Geteilt durch",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Redakteure",
|
||||
"All status": "Jeder Status",
|
||||
"Active": "Aktiv",
|
||||
"Left": "Links",
|
||||
"Right": "Rechts",
|
||||
"Settings saved": "Einstellungen gespeichert",
|
||||
"Logo updated": "Logo aktualisiert",
|
||||
"Unable to upload new logo": "Das neue Logo konnte nicht hochgeladen werden",
|
||||
@@ -922,18 +938,15 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Zeige das Logo deines Teams auf öffentlichen Seiten wie Logins und gemeinsamen Dokumenten.",
|
||||
"Table of contents position": "Inhaltsverzeichnis Position",
|
||||
"The side to display the table of contents in relation to the main content.": "Die Seite, auf der das Inhaltsverzeichnis in Bezug auf den Hauptinhalt angezeigt wird.",
|
||||
"Left": "Links",
|
||||
"Right": "Rechts",
|
||||
"Behavior": "Verhalten",
|
||||
"Subdomain": "Subdomain",
|
||||
"Your workspace will be accessible at": "Dein Arbeitsbereich wird zugänglich sein unter",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Wählen Sie eine Subdomain, um eine Login-Seite nur für Ihr Team zu aktivieren.",
|
||||
"Start view": "Startseite",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Dies ist der Bildschirm, den Arbeitsbereich-Mitglieder zuerst sehen, wenn sie sich anmelden.",
|
||||
"Danger": "Achtung",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Du kannst den gesamten Arbeitsbereich einschließlich der Sammlungen, Dokumente und Benutzer löschen.",
|
||||
"Export data": "Daten exportieren",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "Ein vollständiger Export kann einige Zeit in Anspruch nehmen, erwägen Sie den Export eines einzelnen Dokuments oder einer einzelnen Sammlung. Sie können diese Seite verlassen, sobald der Export gestartet ist – wenn Sie Benachrichtigungen aktiviert haben, wir senden einen Link an <em>{{ userEmail }}</em> wenn er abgeschlossen ist.",
|
||||
"Recent exports": "Kürzliche Exporte",
|
||||
"Manage optional and beta features. Changing these settings will affect the experience for all members of the workspace.": "Verwalten Sie optionale und Beta-Funktionen. Das Ändern dieser Einstellungen wirkt sich auf alle Mitglieder des Arbeitsbereichs aus.",
|
||||
"Separate editing": "Getrennte Bearbeitung",
|
||||
@@ -941,19 +954,18 @@
|
||||
"Commenting": "Kommentieren",
|
||||
"When enabled team members can add comments to documents.": "Wenn aktiviert, können Teammitglieder Kommentare zu Dokumenten hinzufügen.",
|
||||
"Create a group": "Gruppe erstellen",
|
||||
"Could not load groups": "Could not load groups",
|
||||
"Could not load groups": "Gruppen konnten nicht geladen werden",
|
||||
"New group": "Neue Gruppe",
|
||||
"Groups can be used to organize and manage the people on your team.": "Gruppen können verwendet werden, um die Personen in Ihrem Team zu organisieren und zu verwalten.",
|
||||
"No groups have been created yet": "Es wurden noch keine Gruppen erstellt",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Übertrage unkompliziert bestehende Dokumente, Seiten und Dateien aus anderen Tools und Diensten nach {{appName}}. Ebenso kannst du per Drag-and-Drop beliebige HTML-, Markdown- oder Textdateien direkt in Sammlungen innerhalb der Anwendungen ziehen.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importiere eine Zip-Datei von Markdown Dokumenten (exportiert ab Version 0.67.0 oder früher)",
|
||||
"Import data": "Daten importieren",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importiere eine JSON-Datendatei, die von einer anderen {{ appName }} Instanz exportiert wird",
|
||||
"Import pages exported from Notion": "Aus Notion exportierte Seiten importieren",
|
||||
"Import pages from a Confluence instance": "Importieren Sie Seiten aus einer Confluence-Instanz",
|
||||
"Enterprise": "Unternehmen",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Übertrage unkompliziert bestehende Dokumente, Seiten und Dateien aus anderen Tools und Diensten nach {{appName}}. Ebenso kannst du per Drag-and-Drop beliebige HTML-, Markdown- oder Textdateien direkt in Sammlungen innerhalb der Anwendungen ziehen.",
|
||||
"Recent imports": "Neueste Importe",
|
||||
"Could not load members": "Could not load members",
|
||||
"Could not load members": "Mitglieder konnten nicht geladen werden",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Jeder, der sich bei {{appName}} angemeldet hat, ist hier aufgelistet. Es ist möglich, dass es andere Benutzer gibt, die Zugriff über {{signinMethods}} haben, sich aber noch nicht angemeldet haben.",
|
||||
"Receive a notification whenever a new document is published": "Erhalten Sie eine Benachrichtigung, wenn ein neues Dokument veröffentlicht wird",
|
||||
"Document updated": "Dokument aktualisiert",
|
||||
@@ -962,7 +974,7 @@
|
||||
"Receive a notification when a document you are subscribed to or a thread you participated in receives a comment": "Erhalten Sie eine Benachrichtigung, wenn ein Dokument, das Sie abonniert haben oder ein Thread an dem Sie teilgenommen haben, einen Kommentar erhält",
|
||||
"Mentioned": "Erwähnt",
|
||||
"Receive a notification when someone mentions you in a document or comment": "Erhalten Sie eine Benachrichtigung, wenn jemand Sie in einem Dokument oder einem Kommentar erwähnt",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Receive a notification when a comment thread you were involved in is resolved",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Benachrichtigung erhalten, wenn ein Kommentar-Thread, an dem Sie beteiligt waren, gelöst wurde",
|
||||
"Collection created": "Sammlung erstellt",
|
||||
"Receive a notification whenever a new collection is created": "Erhalten Sie eine Benachrichtigung, wenn eine neue Sammlung erstellt wird",
|
||||
"Invite accepted": "Einladung angenommen",
|
||||
@@ -996,8 +1008,8 @@
|
||||
"When enabled, documents have a separate editing mode. When disabled, documents are always editable when you have permission.": "Wenn diese Option aktiviert ist, haben Dokumente einen separaten Bearbeitungsmodus. Wenn sie deaktiviert ist, können Dokumente immer bearbeitet werden, wenn du die Berechtigungen dazu hast.",
|
||||
"Remember previous location": "Vorherige Position der Oberfläche merken",
|
||||
"Automatically return to the document you were last viewing when the app is re-opened.": "Automatisch zum zuletzt angezeigten Dokument zurückkehren, wenn die App wieder geöffnet wird.",
|
||||
"Smart text replacements": "Smart text replacements",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.",
|
||||
"Smart text replacements": "Intelligente Textersetzungen",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Text automatisch formatieren, indem Verknüpfungen durch Symbole, Bindestriche, intelligente Anführungszeichen und andere typografische Elemente ersetzt werden.",
|
||||
"You may delete your account at any time, note that this is unrecoverable": "Sie können Ihren Account jederzeit löschen, beachten Sie, dass dies nicht wiederhergestellt werden kann",
|
||||
"Profile saved": "Profil gespeichert",
|
||||
"Profile picture updated": "Profilbild wurde aktualisiert",
|
||||
@@ -1024,19 +1036,15 @@
|
||||
"When enabled, documents can be shared publicly on the internet by any member of the workspace": "Wenn diese Option aktiviert ist, können Dokumente von jedem Arbeitsbereichs-Mitglied öffentlich im Internet geteilt werden",
|
||||
"Viewer document exports": "Betrachter können Dokumente exportieren",
|
||||
"When enabled, viewers can see download options for documents": "Wenn diese Option aktiviert ist, können Betrachter Download-Optionen für Dokumente sehen",
|
||||
"Users can delete account": "Users can delete account",
|
||||
"When enabled, users can delete their own account from the workspace": "When enabled, users can delete their own account from the workspace",
|
||||
"Users can delete account": "Benutzer können Konto löschen",
|
||||
"When enabled, users can delete their own account from the workspace": "Wenn aktiviert, können Benutzer ihr eigenes Konto aus dem Arbeitsbereich löschen",
|
||||
"Rich service embeds": "Rich-Service-Einbettungen",
|
||||
"Links to supported services are shown as rich embeds within your documents": "Links zu unterstützten Diensten werden als Rich Embeds in Ihren Dokumenten angezeigt",
|
||||
"Collection creation": "Sammlungserstellung",
|
||||
"Allow editors to create new collections within the workspace": "Editoren erlauben neue Sammlungen im Arbeitsbereich zu erstellen",
|
||||
"Workspace creation": "Arbeitsbereich erstellen",
|
||||
"Allow editors to create new workspaces": "Editoren erlauben neue Arbeitsbereiche zu erstellen",
|
||||
"Draw.io deployment": "Draw.io Deployment",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Fügen Sie hier Ihre selbst gehostete draw.io Installations-URL ein, um die automatische Einbettung von Diagrammen in Dokumenten zu ermöglichen.",
|
||||
"Grist deployment": "Grist Einsatz",
|
||||
"Add your self-hosted grist installation URL here.": "Füge hier die URL der selbst gehosteten Grist-Installation ein.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Could not load shares": "Freigaben konnten nicht geladen werden",
|
||||
"Sharing is currently disabled.": "Das Teilen ist momentan deaktiviert.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Sie können die Freigabe öffentlicher Dokumente in den <em>Sicherheitseinstellungen </em> ein- und ausschalten.",
|
||||
"Documents that have been shared are listed below. Anyone that has the public link can access a read-only version of the document until the link has been revoked.": "Freigegebene Dokumente sind unten aufgeführt. Jeder, der über den öffentlichen Link verfügt, kann auf eine schreibgeschützte Version des Dokuments zugreifen, bis der Link widerrufen wurde.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "Die URL Ihrer Matomo Instanz. Wenn Sie die Matomo Cloud verwenden, endet sie in matomo.cloud/",
|
||||
"Site ID": "Site-ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Eine ID, welche die Website in Ihrer Matomo-Instanz eindeutig identifiziert.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Huch, du musst die Berechtigungen in Notion akzeptieren, um {{ appName }} mit deinem Arbeitsbereich zu verbinden. Möchtest du es noch einmal versuchen?",
|
||||
"Import pages from Notion": "Importieren Sie Seiten von Notion",
|
||||
"Add to Slack": "Zu Slack hinzufügen",
|
||||
"document published": "Dokument veröffentlicht",
|
||||
"document updated": "Dokument aktualisiert",
|
||||
@@ -1109,11 +1119,11 @@
|
||||
"It looks like you haven’t linked your {{ appName }} account to Slack yet": "Es sieht so aus, als hätten Sie Ihr {{ appName }} Konto noch nicht mit Slack verknüpft",
|
||||
"Link your account": "Account verknüpfen",
|
||||
"Link your account in {{ appName }} settings to search from Slack": "",
|
||||
"Configure a Umami installation to send views and analytics from the workspace to your own Umami instance.": "Configure a Umami installation to send views and analytics from the workspace to your own Umami instance.",
|
||||
"The URL of your Umami instance. If you are using Umami Cloud it will begin with {{ url }}": "The URL of your Umami instance. If you are using Umami Cloud it will begin with {{ url }}",
|
||||
"Script name": "Script name",
|
||||
"The name of the script file that Umami uses to track analytics.": "The name of the script file that Umami uses to track analytics.",
|
||||
"An ID that uniquely identifies the website in your Umami instance.": "An ID that uniquely identifies the website in your Umami instance.",
|
||||
"Configure a Umami installation to send views and analytics from the workspace to your own Umami instance.": "Konfigurieren Sie eine Umami-Installation, um Ansichten und Analysen aus dem Arbeitsbereich an Ihre eigene Umami-Instanz zu verwalten.",
|
||||
"The URL of your Umami instance. If you are using Umami Cloud it will begin with {{ url }}": "Die URL Ihrer Umami-Instanz. Wenn Sie Umami-Cloud verwenden, beginnt sie mit {{ url }}",
|
||||
"Script name": "Skript-Name",
|
||||
"The name of the script file that Umami uses to track analytics.": "Der Name der Skriptdatei, die Umami zur Verfolgung von Analysen verwendet.",
|
||||
"An ID that uniquely identifies the website in your Umami instance.": "Eine ID, die die Website in Ihrer Umami-Instanz eindeutig identifiziert.",
|
||||
"Are you sure you want to delete the {{ name }} webhook?": "Sind Sie sich sicher, dass Sie den {{ name }} Webhook löschen möchten?",
|
||||
"Webhook updated": "Webhook aktualisiert",
|
||||
"Update": "Update",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} aktualisierte vor {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Du hast vor {{ timeAgo }} erstellt",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} erstellte vor {{ timeAgo }}",
|
||||
"Uploading": "Wird hochgeladen"
|
||||
}
|
||||
"Error loading data": "Fehler beim Laden der Daten"
|
||||
}
|
||||
|
||||
@@ -1089,6 +1089,10 @@
|
||||
"Add a Google Analytics 4 measurement ID to send document views and analytics from the workspace to your own Google Analytics account.": "Add a Google Analytics 4 measurement ID to send document views and analytics from the workspace to your own Google Analytics account.",
|
||||
"Measurement ID": "Measurement ID",
|
||||
"Create a \"Web\" stream in your Google Analytics admin dashboard and copy the measurement ID from the generated code snippet to install.": "Create a \"Web\" stream in your Google Analytics admin dashboard and copy the measurement ID from the generated code snippet to install.",
|
||||
"Whoops, you need to accept the permissions in Linear to connect {{appName}} to your workspace. Try again?": "Whoops, you need to accept the permissions in Linear to connect {{appName}} to your workspace. Try again?",
|
||||
"Enable previews of Linear issues in documents by connecting a Linear workspace to {appName}.": "Enable previews of Linear issues in documents by connecting a Linear workspace to {appName}.",
|
||||
"Disconnecting will prevent previewing Linear links from this workspace in documents. Are you sure?": "Disconnecting will prevent previewing Linear links from this workspace in documents. Are you sure?",
|
||||
"The Linear integration is currently disabled. Please set the associated environment variables and restart the server to enable the integration.": "The Linear integration is currently disabled. Please set the associated environment variables and restart the server to enable the integration.",
|
||||
"Configure a Matomo installation to send views and analytics from the workspace to your own Matomo instance.": "Configure a Matomo installation to send views and analytics from the workspace to your own Matomo instance.",
|
||||
"Instance URL": "Instance URL",
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Buscar en colección",
|
||||
"Star": "Marcar como favorito",
|
||||
"Unstar": "Eliminar de favoritos",
|
||||
"Subscribe": "Suscribirse",
|
||||
"Subscribed to document notifications": "Suscrito a las notificaciones de los documentos",
|
||||
"Unsubscribe": "Cancelar suscripción",
|
||||
"Unsubscribed from document notifications": "Desuscrito de las notificaciones de los documentos",
|
||||
"Archive": "Archivar",
|
||||
"Archive collection": "Archivar colección",
|
||||
"Collection archived": "Colección archivada",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "Desarrollo",
|
||||
"Open document": "Abrir documento",
|
||||
"New document": "Nuevo documento",
|
||||
"New draft": "New draft",
|
||||
"New draft": "Nuevo borrador",
|
||||
"New from template": "Nuevo desde plantilla",
|
||||
"New nested document": "Nuevo documento anidado",
|
||||
"Publish": "Publicar",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Publicar documento",
|
||||
"Unpublish": "Despublicar",
|
||||
"Unpublished {{ documentName }}": "Se ha despublicado {{ documentName }}",
|
||||
"Subscribe": "Suscribirse",
|
||||
"Subscribed to document notifications": "Suscrito a las notificaciones de los documentos",
|
||||
"Unsubscribe": "Cancelar suscripción",
|
||||
"Unsubscribed from document notifications": "Desuscrito de las notificaciones de los documentos",
|
||||
"Share this document": "Compartir este documento",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Descargar documento",
|
||||
"Copy as Markdown": "Copiar como Markdown",
|
||||
"Markdown copied to clipboard": "Markdown copiado al portapapeles",
|
||||
"Copy as text": "Copiar como texto",
|
||||
"Text copied to clipboard": "Texto copiado al portapapeles",
|
||||
"Copy public link": "Copiar enlace público",
|
||||
"Link copied to clipboard": "Enlace copiado al portapapeles",
|
||||
"Copy link": "Copiar enlace",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "No se pudo abandonar el documento",
|
||||
"Home": "Inicio",
|
||||
"Drafts": "Borradores",
|
||||
"Search": "Buscar",
|
||||
"Trash": "Papelera",
|
||||
"Settings": "Configuración",
|
||||
"Profile": "Perfil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Actualizar rol",
|
||||
"Delete user": "Eliminar usuario",
|
||||
"Collection": "Colección",
|
||||
"Collections": "Colecciones",
|
||||
"Debug": "Depurar",
|
||||
"Document": "Documento",
|
||||
"Documents": "Documentos",
|
||||
@@ -177,10 +181,10 @@
|
||||
"view and edit access": "acceso de lectura y edición",
|
||||
"view only access": "acceso de solo lectura",
|
||||
"no access": "sin acceso",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "No tienes permiso para mover {{ documentName }} a la colección {{ collectionName }}",
|
||||
"Move document": "Mover documento",
|
||||
"Moving": "Moviendo",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Al mover el documento <em>{{ title }}</em> a la colección {{ newCollectionName }} se cambiará el permiso de todos los miembros del área de trabajo de <em>{{ prevPermission }}</em> a <em>{{ newPermission }}</em>.",
|
||||
"Document is too large": "El documento es demasiado grande",
|
||||
"This document has reached the maximum size and can no longer be edited": "Este documento ha alcanzado el tamaño máximo y ya no puede ser editado",
|
||||
"Authentication failed": "Autentificación fallida",
|
||||
@@ -194,13 +198,14 @@
|
||||
"Submenu": "Submenú",
|
||||
"Collections could not be loaded, please reload the app": "No se pudieron cargar las colecciones, por favor recarga la aplicación",
|
||||
"Default collection": "Colección predeterminada",
|
||||
"Start view": "Vista inicial",
|
||||
"Install now": "Instalar ahora",
|
||||
"Deleted Collection": "Colección Eliminada",
|
||||
"Untitled": "Sin título",
|
||||
"Unpin": "Desfijar",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"{{ minutes }}m read": "Lectura de {{ minutes }}m",
|
||||
"Select a location to copy": "Seleccione una ubicación para copiar",
|
||||
"Document copied": "Documento copiado",
|
||||
"Couldn’t copy the document, try again?": "No se pudo copiar el documento, ¿intentar de nuevo?",
|
||||
"Include nested documents": "Incluir documentos anidados",
|
||||
"Copy to <em>{{ location }}</em>": "Copiar a <em>{{ location }}</em>",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Banderas",
|
||||
"Select a color": "Selecciona un color",
|
||||
"Loading": "Cargando",
|
||||
"Search": "Buscar",
|
||||
"Permission": "Permiso",
|
||||
"View only": "Solo lectura",
|
||||
"Can edit": "Puede editar",
|
||||
@@ -305,10 +309,10 @@
|
||||
"Mark all as read": "Marcar todas como leídas",
|
||||
"You're all caught up": "Estás al día",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reaccionó con {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"Add reaction": "Add reaction",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} y {{ secondUsername }} han reaccionado con {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} y {{ count }} otro han reaccionado con {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} y {{ count }} otros han reaccionado con {{ emoji }}",
|
||||
"Add reaction": "Añadir reacción",
|
||||
"Reaction picker": "Selector de reacción",
|
||||
"Could not load reactions": "No se pudo cargar las reacciones",
|
||||
"Reaction": "Reacción",
|
||||
@@ -357,7 +361,7 @@
|
||||
"Allow anyone with the link to access": "Permitir acceso a cualquiera con el enlace",
|
||||
"Publish to internet": "Publicar en Internet",
|
||||
"Search engine indexing": "Indexación del motor de búsqueda",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disable this setting to discourage search engines from indexing the page",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Desactivar esta opción para desalentar que los motores de búsqueda indexen la página",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "Los documentos anidados no son compartidos en la web. Cambia las reglas de compartir para habilitar el acceso, este será el comportamiento predeterminado en el futuro",
|
||||
"{{ userName }} was added to the document": "{{ userName }} ha sido añadido al documento",
|
||||
"{{ count }} people added to the document": "{{ count }} persona ha sido añadida al documento",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Colecciones archivadas",
|
||||
"New doc": "Nuevo doc",
|
||||
"Empty": "Vacío",
|
||||
"Collections": "Colecciones",
|
||||
"Collapse": "Colapsar",
|
||||
"Expand": "Expandir",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Documento no compatible – intenta Markdown, Texto sin formato, HTML o Word",
|
||||
@@ -383,9 +386,9 @@
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} versión atrás",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} versiones atrás",
|
||||
"Change permissions?": "¿Cambiar permisos?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} no puede moverse dentro de {{ parentDocumentName }}",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "No puedes reordenar documentos en una colección ordenada alfabéticamente",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
"The {{ documentName }} cannot be moved here": "El {{ documentName }} no se puede mover aquí",
|
||||
"Return to App": "Volver a la aplicación",
|
||||
"Installation": "Instalación",
|
||||
"Unstar document": "Eliminar documento de favoritos",
|
||||
@@ -404,12 +407,12 @@
|
||||
"Are you sure you want to suspend {{ userName }}? Suspended users will be prevented from logging in.": "¿Estás seguro de que quieres suspender a {{ userName }}? Los usuarios suspendidos no podrán iniciar sesión.",
|
||||
"New name": "Nuevo nombre",
|
||||
"Name can't be empty": "El nombre no puede estar vacío",
|
||||
"Check your email to verify the new address.": "Check your email to verify the new address.",
|
||||
"The email will be changed once verified.": "The email will be changed once verified.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "You will receive an email to verify your new address. It must be unique in the workspace.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "A confirmation email will be sent to the new address before it is changed.",
|
||||
"New email": "New email",
|
||||
"Email can't be empty": "Email can't be empty",
|
||||
"Check your email to verify the new address.": "Revisa tu correo para verificar la nueva dirección.",
|
||||
"The email will be changed once verified.": "El correo electrónico se cambiará una vez verificado.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "Recibirás un correo electrónico para verificar tu nueva dirección. Debe ser único en el espacio de trabajo.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "Se enviará un correo electrónico de confirmación a la nueva dirección antes de que se cambie.",
|
||||
"New email": "Nuevo correo electrónico",
|
||||
"Email can't be empty": "El correo electrónico no puede estar vacío",
|
||||
"Your import completed": "Tu importación se completó",
|
||||
"Previous match": "Coincidencia anterior",
|
||||
"Next match": "Coincidencia siguiente",
|
||||
@@ -423,8 +426,9 @@
|
||||
"Replace all": "Reemplazar todas",
|
||||
"Profile picture": "Foto de perfil",
|
||||
"Create a new doc": "Crea un nuevo documento",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} no será notificado, ya que no tiene acceso a este documento",
|
||||
"Keep as link": "Mantener como enlace",
|
||||
"Mention": "Mencionar",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Agregar columna después",
|
||||
"Add column before": "Agregar columna antes",
|
||||
@@ -454,11 +458,11 @@
|
||||
"Italic": "Cursiva",
|
||||
"Sorry, that link won’t work for this embed type": "Lo sentimos, ese enlace no funcionará para este tipo de embed",
|
||||
"File attachment": "Archivo adjunto",
|
||||
"Enter a link": "Enter a link",
|
||||
"Enter a link": "Introduce un enlace",
|
||||
"Big heading": "Encabezado grande",
|
||||
"Medium heading": "Encabezado mediano",
|
||||
"Small heading": "Encabezado pequeño",
|
||||
"Extra small heading": "Extra small heading",
|
||||
"Extra small heading": "Encabezado extra pequeño",
|
||||
"Heading": "Encabezado",
|
||||
"Divider": "Divisor",
|
||||
"Image": "Imagen",
|
||||
@@ -506,8 +510,9 @@
|
||||
"None": "Nada",
|
||||
"Could not import file": "No se pudo importar el archivo",
|
||||
"Unsubscribed from document": "Desuscrito del documento",
|
||||
"Unsubscribed from collection": "Dado de baja de la colección",
|
||||
"Account": "Cuenta",
|
||||
"API Keys": "API Keys",
|
||||
"API Keys": "Claves API",
|
||||
"Details": "Detalles",
|
||||
"Security": "Seguridad",
|
||||
"Features": "Características",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Grupos",
|
||||
"Shared Links": "Enlaces compartidos",
|
||||
"Import": "Importar",
|
||||
"Self Hosted": "Autoalojado",
|
||||
"Integrations": "Integraciones",
|
||||
"Revoke token": "Revocar token",
|
||||
"Revoke": "Revocar",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restaurado",
|
||||
"Document options": "Opciones del documento",
|
||||
"Choose a collection": "Elige una colección",
|
||||
"Subscription inherited from collection": "Suscripción heredada de la colección",
|
||||
"Enable embeds": "Habilitar embeds",
|
||||
"Export options": "Opciones de exportación",
|
||||
"Group members": "Miembros del grupo",
|
||||
"Edit group": "Editar grupo",
|
||||
"Delete group": "Eliminar grupo",
|
||||
"Group options": "Opciones del grupo",
|
||||
"Cancel": "Cancelar",
|
||||
"Import menu options": "Importar opciones de menú",
|
||||
"Member options": "Opciones de los miembros",
|
||||
"New document in <em>{{ collectionName }}</em>": "Nuevo documento en <em>{{ collectionName }}</em>",
|
||||
"New child document": "Nuevo documento anidado",
|
||||
@@ -554,7 +561,7 @@
|
||||
"Headings you add to the document will appear here": "Los encabezados que añadas al documento aparecerán aquí",
|
||||
"Table of contents": "Tabla de contenido",
|
||||
"Change name": "Cambiar nombre",
|
||||
"Change email": "Change email",
|
||||
"Change email": "Modificar correo electrónico",
|
||||
"Suspend user": "Suspender usuario",
|
||||
"An error occurred while sending the invite": "Ha ocurrido un error al enviar la invitación",
|
||||
"User options": "Opciones del usuario",
|
||||
@@ -569,13 +576,13 @@
|
||||
"created the collection": "creó la colección",
|
||||
"mentioned you in": "te mencionó en",
|
||||
"left a comment on": "dejó un comentario en",
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"resolved a comment on": "resolvió un comentario en",
|
||||
"shared": "compartido",
|
||||
"invited you to": "te invitó a",
|
||||
"Choose a date": "Elige una fecha",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API key created. Please copy the value now as it will not be shown again.",
|
||||
"Scopes": "Scopes",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "Clave API creada. Por favor, copia el valor ahora, ya que no se mostrará de nuevo.",
|
||||
"Scopes": "Ámbitos",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Los scopes separados por espacios limitan el acceso de esta clave API a partes concretas de la API. Si lo dejas en blanco, tendrá acceso total",
|
||||
"Expiration": "Expiración",
|
||||
"Never expires": "Nunca expira",
|
||||
"7 days": "7 días",
|
||||
@@ -598,7 +605,7 @@
|
||||
"{{ groupsCount }} groups with access_plural": "{{ groupsCount }} grupos con acceso",
|
||||
"Archived by {{userName}}": "Archivado por {{userName}}",
|
||||
"Share": "Compartir",
|
||||
"Overview": "Overview",
|
||||
"Overview": "Resumen",
|
||||
"Recently updated": "Actualizado recientemente",
|
||||
"Recently published": "Publicado recientemente",
|
||||
"Least recently updated": "Actualizado menos recientemente",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Añadir una respuesta",
|
||||
"Reply": "Responder",
|
||||
"Post": "Publicar",
|
||||
"Cancel": "Cancelar",
|
||||
"Upload image": "Subir una imagen",
|
||||
"No resolved comments": "No hay comentarios resueltos",
|
||||
"No comments yet": "Aún no hay comentarios",
|
||||
"New comments": "Nuevos comentarios",
|
||||
"Sort comments": "Ordenar comentarios",
|
||||
"Most recent": "Más reciente",
|
||||
"Order in doc": "Order in doc",
|
||||
"Order in doc": "Ordenar en el documento",
|
||||
"Resolved": "Resuelto",
|
||||
"Sort comments": "Ordenar comentarios",
|
||||
"Show {{ count }} reply": "Mostrar {{ count }} respuesta",
|
||||
"Show {{ count }} reply_plural": "Mostrar {{ count }} respuestas",
|
||||
"Error updating comment": "Error actualizando el comentario",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "No se encontraron documentos para tus filtros.",
|
||||
"You’ve not got any drafts at the moment.": "No tienes borradores en este momento.",
|
||||
"Payment Required": "Pago Requerido",
|
||||
"Not Found": "No encontrado",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "No pudimos encontrar la página que estás buscando. ¿Ir a la página de <2>inicio</2>?",
|
||||
"No access to this doc": "Sin acceso a este documento",
|
||||
"It doesn’t look like you have permission to access this document.": "Parece que no tienes permiso para acceder a este documento.",
|
||||
"Please request access from the document owner.": "Solicita acceso al propietario del documento.",
|
||||
"Not found": "No encontrado",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "No se puede encontrar la página que estás buscando. Es posible que haya sido eliminada o que el enlace sea incorrecto.",
|
||||
"Offline": "Sin conexión",
|
||||
"We were unable to load the document while offline.": "No pudimos cargar el documento sin conexión.",
|
||||
"Your account has been suspended": "Tu cuenta ha sido suspendida",
|
||||
@@ -768,10 +777,10 @@
|
||||
"LaTeX block": "Bloque de LaTeX",
|
||||
"Inline code": "Código en línea",
|
||||
"Inline LaTeX": "Línea de LaTeX",
|
||||
"Triggers": "Triggers",
|
||||
"Mention users and more": "Mention users and more",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Insert block",
|
||||
"Triggers": "Activadores",
|
||||
"Mention users and more": "Menciona usuarios y más",
|
||||
"Emoji": "Emoticono",
|
||||
"Insert block": "Insertar bloque",
|
||||
"Sign In": "Iniciar sesión",
|
||||
"Continue with Email": "Continuar con el correo electrónico",
|
||||
"Continue with {{ authProviderName }}": "Continuar con {{ authProviderName }}",
|
||||
@@ -793,9 +802,9 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Lo sentimos, parece que el enlace de inicio de sesión ya no es válido, por favor intenta solicitar otro.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Tu cuenta ha sido suspendida. Para reactivar tu cuenta, ponte en contacto con un administrador del espacio de trabajo.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Este espacio de trabajo ha sido suspendido. Ponte en contacto con soporte para restaurar el acceso.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Autenticación fallida – este método de acceso fue deshabilitado por un administrador del equipo.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Error de autenticación: este método de inicio de sesión ha sido desactivado por un administrador del espacio de trabajo.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "El espacio de trabajo al que estás intentando unirte requiere una invitación antes de que puedas crear una cuenta.<1></1>Por favor, solicita una invitación del administrador de tu espacio de trabajo e inténtalo de nuevo.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Sorry, an unknown error occurred.": "Lo sentimos, se ha producido un error desconocido.",
|
||||
"Login": "Iniciar sesión",
|
||||
"Error": "Error",
|
||||
"Failed to load configuration.": "No se pudo cargar la configuración.",
|
||||
@@ -814,27 +823,26 @@
|
||||
"Or": "O",
|
||||
"Already have an account? Go to <1>login</1>.": "¿Ya tienes una cuenta? Ve a <1>iniciar sesión</1>.",
|
||||
"Any collection": "Cualquier colección",
|
||||
"Any time": "Cualquier momento",
|
||||
"All time": "Desde siempre",
|
||||
"Past day": "Último día",
|
||||
"Past week": "Última semana",
|
||||
"Past month": "Último mes",
|
||||
"Past year": "Último año",
|
||||
"Any time": "Cualquier momento",
|
||||
"Remove document filter": "Eliminar filtro de documentos",
|
||||
"Any status": "Cualquier estado",
|
||||
"Remove search": "Eliminar búsqueda",
|
||||
"Any author": "Cualquier autor",
|
||||
"Author": "Autor",
|
||||
"We were unable to find the page you’re looking for.": "No pudimos encontrar la página que buscabas.",
|
||||
"Search titles only": "Buscar solamente títulos",
|
||||
"Something went wrong": "Algo ha salido mal",
|
||||
"Please try again or contact support if the problem persists": "Por favor, inténtelo de nuevo o póngase en contacto con el soporte técnico si el problema persiste",
|
||||
"No documents found for your search filters.": "No se encontraron documentos para tus filtros de búsqueda.",
|
||||
"API": "API",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.",
|
||||
"by {{ name }}": "by {{ name }}",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "Las claves API se pueden usar para autenticarse con la API y controlar de forma programática los datos de tu espacio de trabajo. Para más detalles, consulta la <em>documentación para desarrolladores</em>.",
|
||||
"by {{ name }}": "por {{ name }}",
|
||||
"Last used": "Utilizado por última vez",
|
||||
"No expiry": "No expira",
|
||||
"Restricted scope": "Restricted scope",
|
||||
"Restricted scope": "Ámbito restringido",
|
||||
"API key copied to clipboard": "Clave API copiada al portapapeles",
|
||||
"Copied": "Copiado",
|
||||
"Revoking": "Revocando",
|
||||
@@ -883,16 +891,22 @@
|
||||
"Search people": "Buscar personas",
|
||||
"No people matching your search": "No hay personas que coincidan con tu búsqueda",
|
||||
"No people left to add": "No quedan personas para agregar",
|
||||
"Date created": "Date created",
|
||||
"Date created": "Fecha de creación",
|
||||
"Upload": "Subir",
|
||||
"Crop image": "Recortar imagen",
|
||||
"Uploading": "Subiendo",
|
||||
"How does this work?": "¿Cómo funciona esto?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Puedes importar un archivo zip que se exportó previamente desde la opción JSON en otra instancia. En {{ appName }}, abre <em>Exportar</em> en la barra lateral de configuración y haz clic en <em>Exportar datos</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Arrastra y suelta el archivo zip de la opción de exportación JSON de {{appName}}, o haz clic para cargarlo",
|
||||
"Canceled": "Cancelado",
|
||||
"Import canceled": "Importación cancelada",
|
||||
"Are you sure you want to cancel this import?": "¿Estás seguro de que quieres cancelar esta importación?",
|
||||
"Canceling": "Cancelando",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Cancelar esta importación descartará cualquier progreso realizado. Esta acción no se puede deshacer.",
|
||||
"{{ count }} document imported": "{{ count }} documento importado",
|
||||
"{{ count }} document imported_plural": "{{ count }} documentos importados",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Puedes importar un archivo zip que se exportó previamente desde la opción Markdown en otra instancia de Outline. En Outline, abre <em>Exportar</em> en la barra lateral de configuración y haz clic en <em>Exportar datos</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Arrastra y suelta el archivo zip de la opción de exportación Markdown de {{appName}}, o haz clic para cargarlo",
|
||||
"Where do I find the file?": "¿Dónde encuentro el archivo?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "En Notion, haz clic en <em>Configuración y miembros</em> en la barra lateral izquierda y abre Configuración. Busca la sección Exportar y haz clic en <em>Exportar todo el contenido del espacio de trabajo</em>. Elige <em>HTML</em> como formato para la mejor compatibilidad de datos.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Arrastra y suelta el archivo zip desde la opción de exportación HTML de Notion, o haz clic para cargarlo",
|
||||
"Last active": "Última vez activo",
|
||||
"Guest": "Invitado",
|
||||
"Shared by": "Compartido por",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editores",
|
||||
"All status": "Todos los estados",
|
||||
"Active": "Activo",
|
||||
"Left": "Izquierda",
|
||||
"Right": "Derecha",
|
||||
"Settings saved": "Configuración guardada",
|
||||
"Logo updated": "Logo actualizado",
|
||||
"Unable to upload new logo": "No se pudo cargar el nuevo logo",
|
||||
@@ -922,18 +938,15 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Mostrar el logotipo de tu equipo en páginas públicas como el inicio de sesión y documentos compartidos.",
|
||||
"Table of contents position": "Posición de la tabla de contenidos",
|
||||
"The side to display the table of contents in relation to the main content.": "El lado para mostrar la tabla de contenidos en relación con el contenido principal.",
|
||||
"Left": "Izquierda",
|
||||
"Right": "Derecha",
|
||||
"Behavior": "Comportamiento",
|
||||
"Subdomain": "Subdominio",
|
||||
"Your workspace will be accessible at": "Tu espacio de trabajo podrá ser accedido en",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Elige un subdominio para habilitar una página de inicio de sesión única para tu equipo.",
|
||||
"Start view": "Vista inicial",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Esta es la pantalla que los miembros del espacio verán primero al iniciar sesión.",
|
||||
"Danger": "Peligro",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Puedes eliminar todo este espacio de trabajo incluyendo colecciones, documentos y usuarios.",
|
||||
"Export data": "Exportar datos",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "Una exportación completa puede tardar un poco. Considera exportar un solo documento o colección. Puedes salir de esta página una vez iniciada la exportación; si tienes las notificaciones activadas, te enviaremos un enlace a <em>{{ userEmail }}</em> cuando haya finalizado.",
|
||||
"Recent exports": "Exportaciones recientes",
|
||||
"Manage optional and beta features. Changing these settings will affect the experience for all members of the workspace.": "Gestiona funciones opcionales y beta. Cambiar esta configuración afectará la experiencia de todos los miembros del espacio de trabajo.",
|
||||
"Separate editing": "Edición separada",
|
||||
@@ -941,19 +954,18 @@
|
||||
"Commenting": "Comentando",
|
||||
"When enabled team members can add comments to documents.": "Cuando está activado, miembros del equipo pueden añadir comentarios a los documentos.",
|
||||
"Create a group": "Crear un grupo",
|
||||
"Could not load groups": "Could not load groups",
|
||||
"Could not load groups": "No se han podido cargar los grupos",
|
||||
"New group": "Nuevo grupo",
|
||||
"Groups can be used to organize and manage the people on your team.": "Los grupos se pueden usar para organizar y administrar a las personas de tu equipo.",
|
||||
"No groups have been created yet": "Aún no se ha creado ningún grupo",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfiere rápidamente tus documentos, páginas y archivos existentes desde otras herramientas y servicios a {{appName}}. También puedes arrastrar y soltar cualquier archivo HTML, Markdown y de texto directamente a Colecciones en la aplicación.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importar un archivo zip de documentos Markdown (exportado desde la versión 0.67.0 o anterior)",
|
||||
"Import data": "Importar datos",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importar un archivo de datos JSON exportado desde otra instancia {{ appName }}",
|
||||
"Import pages exported from Notion": "Importar páginas exportadas de Notion",
|
||||
"Import pages from a Confluence instance": "Importar páginas de una instancia de Confluence",
|
||||
"Enterprise": "Enterprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfiere rápidamente tus documentos, páginas y archivos existentes desde otras herramientas y servicios a {{appName}}. También puedes arrastrar y soltar cualquier archivo HTML, Markdown y de texto directamente a Colecciones en la aplicación.",
|
||||
"Recent imports": "Importaciones recientes",
|
||||
"Could not load members": "Could not load members",
|
||||
"Could not load members": "No se han podido cargar miembros",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Todos los que han iniciado sesión en {{appName}} aparecen aquí. Es posible que haya otros usuarios que tengan acceso a través de {{signinMethods}} pero que aún no hayan iniciado sesión.",
|
||||
"Receive a notification whenever a new document is published": "Recibir notificaciones cuando se publique un nuevo documento",
|
||||
"Document updated": "Documento actualizado",
|
||||
@@ -997,7 +1009,7 @@
|
||||
"Remember previous location": "Recordar ubicación anterior",
|
||||
"Automatically return to the document you were last viewing when the app is re-opened.": "Volver automáticamente al documento que estabas viendo cuando la aplicación se vuelva a abrir.",
|
||||
"Smart text replacements": "Sustituciones inteligentes de texto",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Da formato automático al texto reemplazando atajos por símbolos, guiones, comillas inteligentes y otros elementos tipográficos.",
|
||||
"You may delete your account at any time, note that this is unrecoverable": "Puedes eliminar tu cuenta en cualquier momento, ten en cuenta que esta es una operación irreversible",
|
||||
"Profile saved": "Perfil guardado",
|
||||
"Profile picture updated": "Foto de perfil guardada",
|
||||
@@ -1032,11 +1044,7 @@
|
||||
"Allow editors to create new collections within the workspace": "Permitir a los editores crear nuevas colecciones dentro del área de trabajo",
|
||||
"Workspace creation": "Creación de espacio de trabajo",
|
||||
"Allow editors to create new workspaces": "Permitir a los editores crear nuevas áreas de trabajo",
|
||||
"Draw.io deployment": "Despliegue de Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Añada aquí la URL de su instancia de draw.io autoalojada para habilitar el embed automático de diagramas en los documentos.",
|
||||
"Grist deployment": "Despliegue de Grist",
|
||||
"Add your self-hosted grist installation URL here.": "Añada aquí la URL de su instancia de Grist autoalojada.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Could not load shares": "No se han podido cargar los compartidos",
|
||||
"Sharing is currently disabled.": "Compartir está deshabilitado actualmente.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Puedes activar y desactivar globalmente el uso de documentos compartidos públicamente en la <em>configuración de seguridad</em>.",
|
||||
"Documents that have been shared are listed below. Anyone that has the public link can access a read-only version of the document until the link has been revoked.": "Los documentos que se han compartido se enumeran a continuación. Cualquiera que tenga el enlace público podrá acceder a una versión de solo lectura del documento hasta que se revoque el enlace.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "La URL de tu instancia Matomo. Si estás usando Matomo Cloud, esta terminará en matomo.cloud/",
|
||||
"Site ID": "ID del sitio",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Un ID que identifica de forma única el sitio web en tu instancia de Matomo.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Ups, necesitas aceptar los permisos en Notion para conectar {{ appName }} con tu espacio de trabajo. ¿Quieres intentarlo de nuevo?",
|
||||
"Import pages from Notion": "Importar páginas de Notion",
|
||||
"Add to Slack": "Añadir a Slack",
|
||||
"document published": "documento publicado",
|
||||
"document updated": "documento actualizado",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} lo actualizó {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Tú lo creaste {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} lo creó {{ timeAgo }}",
|
||||
"Uploading": "Subiendo"
|
||||
}
|
||||
"Error loading data": "Error al cargar datos"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "جستجو در مجموعه",
|
||||
"Star": "ستارهگذاری",
|
||||
"Unstar": "برداشتن ستاره",
|
||||
"Subscribe": "اشتراک",
|
||||
"Subscribed to document notifications": "در اعلانهای اسناد مشترک شد",
|
||||
"Unsubscribe": "لغو اشتراک",
|
||||
"Unsubscribed from document notifications": "اشتراک در اعلانهای سند لغو شد",
|
||||
"Archive": "آرشیو",
|
||||
"Archive collection": "آرشیو مجموعه",
|
||||
"Collection archived": "مجموعه آرشیو شد",
|
||||
@@ -26,7 +30,7 @@
|
||||
"Thread resolved": "Thread resolved",
|
||||
"Mark as unresolved": "Mark as unresolved",
|
||||
"View reactions": "View reactions",
|
||||
"Reactions": "Reactions",
|
||||
"Reactions": "واکنش",
|
||||
"Copy ID": "کپی شناسه",
|
||||
"Clear IndexedDB cache": "خالی کردن کش دیتابیس",
|
||||
"IndexedDB cache cleared": "کش دیتابیس پاکسازی شد",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "محیط توسعه",
|
||||
"Open document": "باز کردن سند",
|
||||
"New document": "سند جدید",
|
||||
"New draft": "New draft",
|
||||
"New draft": "پیشنویس",
|
||||
"New from template": "جدید از قالب",
|
||||
"New nested document": "ایجاد زیرسند جدید",
|
||||
"Publish": "انتشار",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "انتشار سند",
|
||||
"Unpublish": "لغو انتشار",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} از حالت انتشار خارج شد",
|
||||
"Subscribe": "اشتراک",
|
||||
"Subscribed to document notifications": "در اعلانهای اسناد مشترک شد",
|
||||
"Unsubscribe": "لغو اشتراک",
|
||||
"Unsubscribed from document notifications": "اشتراک در اعلانهای سند لغو شد",
|
||||
"Share this document": "اشتراکگذاری این سند",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,7 +57,9 @@
|
||||
"Download document": "دریافت سند",
|
||||
"Copy as Markdown": "کپی markdown",
|
||||
"Markdown copied to clipboard": "markdown کپی شد",
|
||||
"Copy public link": "Copy public link",
|
||||
"Copy as text": "رونوشت مانند متن",
|
||||
"Text copied to clipboard": "متن در کلیپبورد کپی شد",
|
||||
"Copy public link": "کپی کردن لینک عمومی",
|
||||
"Link copied to clipboard": "پیوند در بریدهدان کپی شد",
|
||||
"Copy link": "کپی پیوند",
|
||||
"Copy": "کپی",
|
||||
@@ -78,9 +80,9 @@
|
||||
"Create template": "ایجاد قالب",
|
||||
"Open random document": "بازکردن مستند تصادفی",
|
||||
"Search documents for \"{{searchQuery}}\"": "جستجوی اسناد برای \"{{searchQuery}}\"",
|
||||
"Move to workspace": "Move to workspace",
|
||||
"Move to workspace": "وارد شدن به workspace",
|
||||
"Move": "انتقال",
|
||||
"Move to collection": "Move to collection",
|
||||
"Move to collection": "سنجاق کردن به مجموعه",
|
||||
"Move {{ documentType }}": "انتقال {{ documentType }}",
|
||||
"Are you sure you want to archive this document?": "آیا اطمینان دارید که میخواهید این سند را بایگانی کنید ؟",
|
||||
"Document archived": "سند آرشیو شد",
|
||||
@@ -95,18 +97,19 @@
|
||||
"Insights": "بینش ها",
|
||||
"Disable viewer insights": "Disable viewer insights",
|
||||
"Enable viewer insights": "Enable viewer insights",
|
||||
"Leave document": "Leave document",
|
||||
"Leave document": "ذخیره سند",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Home": "خانه",
|
||||
"Drafts": "پیشنویسها",
|
||||
"Search": "جستجو",
|
||||
"Trash": "زبالهدان",
|
||||
"Settings": "تنظیمات",
|
||||
"Profile": "پروفایل",
|
||||
"Templates": "قالبها",
|
||||
"Notifications": "اعلانها",
|
||||
"Preferences": "تنظیمات",
|
||||
"Documentation": "Documentation",
|
||||
"Documentation": "مستندات",
|
||||
"API documentation": "مستندات API",
|
||||
"Toggle sidebar": "تغییر وضعیت نوار کنار صفحه",
|
||||
"Send us feedback": "ارسال بازخورد",
|
||||
@@ -131,21 +134,22 @@
|
||||
"Create a workspace": "فضای کاری ایجاد کنید",
|
||||
"Login to workspace": "وارد شدن به workspace",
|
||||
"Invite people": "دعوت از افراد",
|
||||
"Invite to workspace": "Invite to workspace",
|
||||
"Invite to workspace": "وارد شدن به workspace",
|
||||
"Promote to {{ role }}": "Promote to {{ role }}",
|
||||
"Demote to {{ role }}": "Demote to {{ role }}",
|
||||
"Update role": "Update role",
|
||||
"Update role": "به روزرسانی نقش",
|
||||
"Delete user": "حذف کاربر",
|
||||
"Collection": "مجموعه",
|
||||
"Collections": "مجموعهها",
|
||||
"Debug": "دیباگ",
|
||||
"Document": "سند",
|
||||
"Documents": "اسناد",
|
||||
"Recently viewed": "اخیراً دیده شده",
|
||||
"Revision": "Revision",
|
||||
"Revision": "بازنگری",
|
||||
"Navigation": "پیمایش",
|
||||
"Notification": "اعلانات",
|
||||
"People": "افراد",
|
||||
"Workspace": "Workspace",
|
||||
"Workspace": "فضای کار",
|
||||
"Recent searches": "جستجوهای اخیر",
|
||||
"currently editing": "در حال ویرایش",
|
||||
"currently viewing": "در حال مشاهده",
|
||||
@@ -156,24 +160,24 @@
|
||||
"Name": "نام",
|
||||
"The default access for workspace members, you can share with more users or groups later.": "The default access for workspace members, you can share with more users or groups later.",
|
||||
"Public document sharing": "اشتراکگذاری عمومی سندها",
|
||||
"Allow documents within this collection to be shared publicly on the internet.": "Allow documents within this collection to be shared publicly on the internet.",
|
||||
"Allow documents within this collection to be shared publicly on the internet.": "در صورت فعال بودن، هر سندی در این مجموعه را می توان به صورت عمومی در اینترنت به اشتراک گذاشت.",
|
||||
"Saving": "در حال ذخیره",
|
||||
"Save": "ذخیره",
|
||||
"Creating": "در حال ساخت",
|
||||
"Create": "ساختن",
|
||||
"Collection deleted": "Collection deleted",
|
||||
"Collection deleted": "ایجاد مجموعه",
|
||||
"I’m sure – Delete": "مطمئن هستم - حذف شود",
|
||||
"Deleting": "در حال حذف کردن",
|
||||
"Are you sure about that? Deleting the <em>{{collectionName}}</em> collection is permanent and cannot be restored, however all published documents within will be moved to the trash.": "Are you sure about that? Deleting the <em>{{collectionName}}</em> collection is permanent and cannot be restored, however all published documents within will be moved to the trash.",
|
||||
"Are you sure about that? Deleting the <em>{{collectionName}}</em> collection is permanent and cannot be restored, however all published documents within will be moved to the trash.": "آیا مطمئن هستید؟ حذف مجموعه <em>{{collectionName}}</em> دائمی و غیرقابل بازیابیست؛ هرچند اسناد داخل آن به سطل زباله منتقل میشوند.",
|
||||
"Also, <em>{{collectionName}}</em> is being used as the start view – deleting it will reset the start view to the Home page.": "همچنین، <em>{{collectionName}}</em> به عنوان نمای شروع استفاده می شود - با حذف آن، نمای شروع به صفحه اصلی بازگردانده می شود.",
|
||||
"Sorry, an error occurred saving the collection": "متاسفانه خطایی در ذخیرهسازی مجموعه رخ داد",
|
||||
"Add a description": "توضیحاتی اضافه کنید",
|
||||
"Type a command or search": "دستوری تایپ و یا جستجو کنید",
|
||||
"Choose a template": "Choose a template",
|
||||
"Choose a template": "انتخاب قالب",
|
||||
"Are you sure you want to permanently delete this entire comment thread?": "Are you sure you want to permanently delete this entire comment thread?",
|
||||
"Are you sure you want to permanently delete this comment?": "Are you sure you want to permanently delete this comment?",
|
||||
"Are you sure you want to permanently delete this comment?": "آیا مطمئنید که میخواهید کامنت را برای همیشه حذف کنید؟",
|
||||
"Confirm": "تایید",
|
||||
"manage access": "manage access",
|
||||
"manage access": "مدیریت دسترسی",
|
||||
"view and edit access": "دسترسی مشاهده و ویرایش",
|
||||
"view only access": "دسترسی صرفا نمایش",
|
||||
"no access": "بدون دسترسی",
|
||||
@@ -183,9 +187,9 @@
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Document is too large": "Document is too large",
|
||||
"This document has reached the maximum size and can no longer be edited": "This document has reached the maximum size and can no longer be edited",
|
||||
"Authentication failed": "Authentication failed",
|
||||
"Authentication failed": "تایید هویت موفق نبود",
|
||||
"Please try logging out and back in again": "Please try logging out and back in again",
|
||||
"Authorization failed": "Authorization failed",
|
||||
"Authorization failed": "مجوز دسترسی رد شد",
|
||||
"You may have lost access to this document, try reloading": "You may have lost access to this document, try reloading",
|
||||
"Too many users connected to document": "Too many users connected to document",
|
||||
"Your edits will sync once other users leave the document": "Your edits will sync once other users leave the document",
|
||||
@@ -194,14 +198,15 @@
|
||||
"Submenu": "زیرمنو",
|
||||
"Collections could not be loaded, please reload the app": "مجموعهها بارگذاری نمیشوند، لطفاً برنامه را دوباره بارگیری کنید",
|
||||
"Default collection": "مجموعه پیش فرض",
|
||||
"Install now": "Install now",
|
||||
"Start view": "نمای شروع",
|
||||
"Install now": "اکنون نصب شود",
|
||||
"Deleted Collection": "مجموعههای حذف شده",
|
||||
"Untitled": "بدون عنوان",
|
||||
"Unpin": "برداشتن سنجاق",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"Document copied": "فایل مورد نظر کپیشد",
|
||||
"Couldn’t copy the document, try again?": "امکان ایجاد سند وجود نداشت، دوباره تلاش شود؟",
|
||||
"Include nested documents": "Include nested documents",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
"Search collections & documents": "جستجوی مجموعه ها و اسناد",
|
||||
@@ -266,72 +271,71 @@
|
||||
"Including uploaded images and files in the exported data": "Including uploaded images and files in the exported data",
|
||||
"Filter": "فیلتر",
|
||||
"No results": "بدون نتیجه",
|
||||
"{{authorName}} created <3></3>": "{{authorName}} created <3></3>",
|
||||
"{{authorName}} created <3></3>": "{{authorName}} ایجاد شد>",
|
||||
"{{authorName}} opened <3></3>": "{{authorName}} opened <3></3>",
|
||||
"Search emoji": "Search emoji",
|
||||
"Search icons": "Search icons",
|
||||
"Search emoji": "جستجوی ایموجی",
|
||||
"Search icons": "جستجو آیکون",
|
||||
"Choose default skin tone": "Choose default skin tone",
|
||||
"Show menu": "نمایش منو",
|
||||
"Icon Picker": "Icon Picker",
|
||||
"Icons": "Icons",
|
||||
"Emojis": "Emojis",
|
||||
"Icon Picker": "انتخابگر آیکون",
|
||||
"Icons": "آیکون ها",
|
||||
"Emojis": "شکلک ها",
|
||||
"Remove": "حذف",
|
||||
"All": "All",
|
||||
"Frequently Used": "Frequently Used",
|
||||
"All": "همه",
|
||||
"Frequently Used": "پر استفاده",
|
||||
"Search Results": "نتایج جستجو",
|
||||
"Smileys & People": "Smileys & People",
|
||||
"Animals & Nature": "Animals & Nature",
|
||||
"Food & Drink": "Food & Drink",
|
||||
"Activity": "Activity",
|
||||
"Travel & Places": "Travel & Places",
|
||||
"Objects": "Objects",
|
||||
"Symbols": "Symbols",
|
||||
"Flags": "Flags",
|
||||
"Select a color": "Select a color",
|
||||
"Smileys & People": "شکلکها و مردم",
|
||||
"Animals & Nature": "حیوانات و طبیعت",
|
||||
"Food & Drink": "غذا و نوشیدنی",
|
||||
"Activity": "فعالیت",
|
||||
"Travel & Places": "سفر & مکانها",
|
||||
"Objects": "اشیاء",
|
||||
"Symbols": "نمادها",
|
||||
"Flags": "علامتها",
|
||||
"Select a color": "یک رنگ را انتخاب کنید",
|
||||
"Loading": "بارگذاری",
|
||||
"Search": "جستجو",
|
||||
"Permission": "Permission",
|
||||
"Permission": "مجوز",
|
||||
"View only": "فقط مشاهده",
|
||||
"Can edit": "Can edit",
|
||||
"Can edit": "قابل ویرایش",
|
||||
"No access": "بدون دسترسی",
|
||||
"Default access": "دسترسی پیشفرض",
|
||||
"Change Language": "تغییر زبان",
|
||||
"Dismiss": "رد کردن",
|
||||
"You’re offline.": "شما آفلاین هستید.",
|
||||
"Sorry, an error occurred.": "Sorry, an error occurred.",
|
||||
"Sorry, an error occurred.": "متاسفیم، یک خطا رخ داد.",
|
||||
"Click to retry": "برای امتحان مجدد کلیک کنید",
|
||||
"Back": "بازگشت",
|
||||
"Unknown": "Unknown",
|
||||
"Mark all as read": "Mark all as read",
|
||||
"You're all caught up": "You're all caught up",
|
||||
"Unknown": "ناشناخته",
|
||||
"Mark all as read": "علامتگذاری همه بعنوان خوانده شده",
|
||||
"You're all caught up": "شما همه اعلانها و پیامها را دیده اید",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"Add reaction": "Add reaction",
|
||||
"Add reaction": "افزودن بازخورد",
|
||||
"Reaction picker": "Reaction picker",
|
||||
"Could not load reactions": "Could not load reactions",
|
||||
"Reaction": "Reaction",
|
||||
"Reaction": "واکنش",
|
||||
"Results": "نتایج",
|
||||
"No results for {{query}}": "No results for {{query}}",
|
||||
"Manage": "Manage",
|
||||
"All members": "All members",
|
||||
"Manage": "مدیریت",
|
||||
"All members": "همه عضوها",
|
||||
"Everyone in the workspace": "Everyone in the workspace",
|
||||
"{{ count }} member": "{{ count }} member",
|
||||
"{{ count }} member_plural": "{{ count }} members",
|
||||
"Invite": "Invite",
|
||||
"Invite": "دعوت",
|
||||
"{{ userName }} was added to the collection": "{{ userName }} به مجموعه اضافه شد",
|
||||
"{{ count }} people added to the collection": "{{ count }} people added to the collection",
|
||||
"{{ count }} people added to the collection_plural": "{{ count }} people added to the collection",
|
||||
"{{ count }} people added to the collection": "{{ count }} به مجموعه اضافه شد",
|
||||
"{{ count }} people added to the collection_plural": "{{ count }} به مجموعه اضافه شد",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection": "{{ count }} people and {{ count2 }} groups added to the collection",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection_plural": "{{ count }} people and {{ count2 }} groups added to the collection",
|
||||
"Add": "افزودن",
|
||||
"Add or invite": "Add or invite",
|
||||
"Viewer": "ناظر",
|
||||
"Editor": "Editor",
|
||||
"Editor": "ویرایشگر",
|
||||
"Suggestions for invitation": "Suggestions for invitation",
|
||||
"No matches": "No matches",
|
||||
"Can view": "Can view",
|
||||
"No matches": "موردی یافت نشد",
|
||||
"Can view": "میتوان مشاهده کرد",
|
||||
"Everyone in the collection": "Everyone in the collection",
|
||||
"You have full access": "You have full access",
|
||||
"Created the document": "Created the document",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Archived collections",
|
||||
"New doc": "سند جدید",
|
||||
"Empty": "خالی",
|
||||
"Collections": "مجموعهها",
|
||||
"Collapse": "جمع کردن",
|
||||
"Expand": "باز کردن",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "نوع سند پشتیبانی نمیشود - از Markdown، متن ساده، HTML، یا Word استفاده کنید",
|
||||
@@ -382,7 +385,7 @@
|
||||
"Up to date": "به روز",
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} version behind",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} versions behind",
|
||||
"Change permissions?": "Change permissions?",
|
||||
"Change permissions?": "تغییر مجوز ها؟",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "You can't reorder documents in an alphabetically sorted collection",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "ایجاد سند جدید",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Add column after",
|
||||
"Add column before": "Add column before",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "None",
|
||||
"Could not import file": "نمیتوان فایل را وارد کرد",
|
||||
"Unsubscribed from document": "Unsubscribed from document",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "حساب",
|
||||
"API Keys": "API Keys",
|
||||
"Details": "جزئیات",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "گروهها",
|
||||
"Shared Links": "Shared Links",
|
||||
"Import": "وارد کردن",
|
||||
"Self Hosted": "Self Hosted",
|
||||
"Integrations": "یکپارچهسازیها",
|
||||
"Revoke token": "Revoke token",
|
||||
"Revoke": "Revoke",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"Document options": "گزینههای سند",
|
||||
"Choose a collection": "انتخاب یک مجموعه",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "فعالسازی جاسازیها",
|
||||
"Export options": "گزینه های صدور",
|
||||
"Group members": "اعضای گروه",
|
||||
"Edit group": "ویرایش گروه",
|
||||
"Delete group": "حذف گروه",
|
||||
"Group options": "گزینههای گروه",
|
||||
"Cancel": "لغو",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "گزینههای اعضا",
|
||||
"New document in <em>{{ collectionName }}</em>": "سند جدید در <em>{{ collectionName }}</em>",
|
||||
"New child document": "سند فرزند جدید",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Add a reply",
|
||||
"Reply": "Reply",
|
||||
"Post": "Post",
|
||||
"Cancel": "لغو",
|
||||
"Upload image": "Upload image",
|
||||
"No resolved comments": "No resolved comments",
|
||||
"No comments yet": "No comments yet",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Error updating comment",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "سندی با فیلترهای شما پیدا نشد.",
|
||||
"You’ve not got any drafts at the moment.": "در حال حاضر پیشنویسی ندارید.",
|
||||
"Payment Required": "Payment Required",
|
||||
"Not Found": "پیدا نشد",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "صفحه مورد نظر شما پیدا نشد. به <2>خانه</2> بروید؟",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "آفلاین",
|
||||
"We were unable to load the document while offline.": "امکان بارگیری سند در حالت آفلاین وجود نداشت.",
|
||||
"Your account has been suspended": "حساب شما معلق شده است",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Sorry, it looks like that sign-in link is no longer valid, please try requesting another.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Your account has been suspended. To re-activate your account, please contact a workspace admin.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "This workspace has been suspended. Please contact support to restore access.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Authentication failed – this login method was disabled by a team admin.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "ورود",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "یا",
|
||||
"Already have an account? Go to <1>login</1>.": "حساب کاربری دارید؟ به بخش <1>ورود</1> بروید.",
|
||||
"Any collection": "هر مجموعهای",
|
||||
"Any time": "هر زمانی",
|
||||
"All time": "All time",
|
||||
"Past day": "روز گذشته",
|
||||
"Past week": "هفته گذشته",
|
||||
"Past month": "ماه گذشته",
|
||||
"Past year": "سال گذشته",
|
||||
"Any time": "هر زمانی",
|
||||
"Remove document filter": "Remove document filter",
|
||||
"Any status": "Any status",
|
||||
"Remove search": "جستجو را حذف کن",
|
||||
"Any author": "هر نگارنده",
|
||||
"Author": "نگارنده",
|
||||
"We were unable to find the page you’re looking for.": "صفحه مورد نظر شما پیدا نشد.",
|
||||
"Search titles only": "Search titles only",
|
||||
"Something went wrong": "Something went wrong",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "فردی برای افزودن باقی نمانده است",
|
||||
"Date created": "Date created",
|
||||
"Upload": "بارگذاری",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "در حال بارگذاری",
|
||||
"How does this work?": "How does this work?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload",
|
||||
"Where do I find the file?": "Where do I find the file?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Drag and drop the zip file from Notion's HTML export option, or click to upload",
|
||||
"Last active": "آخرین فعالیت",
|
||||
"Guest": "Guest",
|
||||
"Shared by": "Shared by",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editors",
|
||||
"All status": "All status",
|
||||
"Active": "فعال",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Settings saved": "تنظیمات ذخیره شد",
|
||||
"Logo updated": "لوگو به روز شد",
|
||||
"Unable to upload new logo": "امکان بارگذاری لوگوی جدید وجود نداشت",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Show your team’s logo on public pages like login and shared documents.",
|
||||
"Table of contents position": "Table of contents position",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Behavior": "Behavior",
|
||||
"Subdomain": "زیردامنه",
|
||||
"Your workspace will be accessible at": "Your workspace will be accessible at",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Choose a subdomain to enable a login page just for your team.",
|
||||
"Start view": "نمای شروع",
|
||||
"This is the screen that workspace members will first see when they sign in.": "This is the screen that workspace members will first see when they sign in.",
|
||||
"Danger": "Danger",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "You can delete this entire workspace including collections, documents, and users.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "گروه جدید",
|
||||
"Groups can be used to organize and manage the people on your team.": "از گروهها برای دستهبندی و مدیریت افراد تیم خود استفاده نمایید.",
|
||||
"No groups have been created yet": "تاکنون گروهی ایجاد نشده است",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)",
|
||||
"Import data": "Import data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Import a JSON data file exported from another {{ appName }} instance",
|
||||
"Import pages exported from Notion": "Import pages exported from Notion",
|
||||
"Import pages from a Confluence instance": "وارد کردن صفحات از یک نمونه Confluence",
|
||||
"Enterprise": "Enterprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Recent imports": "وارد شدههای اخیر",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Allow editors to create new collections within the workspace",
|
||||
"Workspace creation": "Workspace creation",
|
||||
"Allow editors to create new workspaces": "Allow editors to create new workspaces",
|
||||
"Draw.io deployment": "Draw.io deployment",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.",
|
||||
"Grist deployment": "Grist deployment",
|
||||
"Add your self-hosted grist installation URL here.": "Add your self-hosted grist installation URL here.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "اشتراکگذاری در حال حاضر غیرفعال است.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "از <em>تنظیمات امنیتی</em> میتوانید امکان اشتراکگذاری عمومی سندها را در سطح کل سیستم فعال و غیرفعال کنید.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
"Site ID": "Site ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "افزودن به Slack",
|
||||
"document published": "سند منتشر شد",
|
||||
"document updated": "سند به روز شد",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} updated {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "You created {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} created {{ timeAgo }}",
|
||||
"Uploading": "در حال بارگذاری"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Rechercher dans la collection",
|
||||
"Star": "Ajouter aux favoris",
|
||||
"Unstar": "Retirer des favoris",
|
||||
"Subscribe": "S'abonner",
|
||||
"Subscribed to document notifications": "Abonné aux notifications du document",
|
||||
"Unsubscribe": "Se désabonner",
|
||||
"Unsubscribed from document notifications": "Désabonné des notifications du document",
|
||||
"Archive": "Archives",
|
||||
"Archive collection": "Archiver la collection",
|
||||
"Collection archived": "Collection archivée",
|
||||
@@ -25,8 +29,8 @@
|
||||
"Mark as resolved": "Marquer comme résolu",
|
||||
"Thread resolved": "Sujet résolu",
|
||||
"Mark as unresolved": "Marquer comme non-résolu",
|
||||
"View reactions": "View reactions",
|
||||
"Reactions": "Reactions",
|
||||
"View reactions": "Voir les réactions",
|
||||
"Reactions": "Réactions",
|
||||
"Copy ID": "Copier l'identifiant",
|
||||
"Clear IndexedDB cache": "Vider le cache IndexedDB",
|
||||
"IndexedDB cache cleared": "Cache IndexedDB vidé",
|
||||
@@ -36,18 +40,14 @@
|
||||
"Development": "Développement",
|
||||
"Open document": "Ouvrir le document",
|
||||
"New document": "Nouveau document",
|
||||
"New draft": "New draft",
|
||||
"New draft": "Nouveau brouillon",
|
||||
"New from template": "Nouveau à partir d'un modèle",
|
||||
"New nested document": "Nouveau document imbriqué",
|
||||
"Publish": "Publier",
|
||||
"Published {{ documentName }}": "Publication de {{ documentName }}",
|
||||
"Publish document": "Publier le document",
|
||||
"Unpublish": "Dépublier",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} retiré",
|
||||
"Subscribe": "S'abonner",
|
||||
"Subscribed to document notifications": "Abonné aux notifications du document",
|
||||
"Unsubscribe": "Se désabonner",
|
||||
"Unsubscribed from document notifications": "Désabonné des notifications du document",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} dépublié",
|
||||
"Share this document": "Partager ce document",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Télécharger le document",
|
||||
"Copy as Markdown": "Copier en tant que Markdown",
|
||||
"Markdown copied to clipboard": "Markdown copié dans le presse-papier",
|
||||
"Copy as text": "Copier en tant que texte",
|
||||
"Text copied to clipboard": "Texte copié dans le presse-papier",
|
||||
"Copy public link": "Copier le lien public",
|
||||
"Link copied to clipboard": "Lien copié dans le presse-papiers",
|
||||
"Copy link": "Copier le lien",
|
||||
@@ -95,11 +97,12 @@
|
||||
"Insights": "Analyses",
|
||||
"Disable viewer insights": "Désactiver le visualisateur d'analyses",
|
||||
"Enable viewer insights": "Activer le visualisateur d'analyses",
|
||||
"Leave document": "Leave document",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Leave document": "Quitter le document",
|
||||
"You have left the shared document": "Vous avez quitté le document partagé",
|
||||
"Could not leave document": "Impossible de quitter le document",
|
||||
"Home": "Accueil",
|
||||
"Drafts": "Brouillons",
|
||||
"Search": "Recherche",
|
||||
"Trash": "Corbeille",
|
||||
"Settings": "Paramètres",
|
||||
"Profile": "Profil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Mettre à jour le rôle",
|
||||
"Delete user": "Supprimer l’utilisateur",
|
||||
"Collection": "Collection",
|
||||
"Collections": "Collections",
|
||||
"Debug": "Débogage",
|
||||
"Document": "Document",
|
||||
"Documents": "Documents",
|
||||
@@ -177,7 +181,7 @@
|
||||
"view and edit access": "accès en lecture et écriture",
|
||||
"view only access": "accès en lecture seule",
|
||||
"no access": "pas d'accès",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "Vous n'avez pas la permission de déplacer {{ documentName }} vers la collection {{ collectionName }}",
|
||||
"Move document": "Déplacer le document",
|
||||
"Moving": "En cours de déplacement",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Déplacer le document <em>{{ title }}</em> vers la collection {{ newCollectionName }} changera les permissions pour tous les membres de l'espace de travail de <em>{{ prevPermission }}</em> à <em>{{ newPermission }}</em>.",
|
||||
@@ -194,16 +198,17 @@
|
||||
"Submenu": "Sous-menu",
|
||||
"Collections could not be loaded, please reload the app": "Les collections n'ont pas pu être chargées, veuillez recharger la page",
|
||||
"Default collection": "Collection par défaut",
|
||||
"Start view": "Page d'accueil",
|
||||
"Install now": "Installer maintenant",
|
||||
"Deleted Collection": "Collection supprimée",
|
||||
"Untitled": "Sans titre",
|
||||
"Unpin": "Désépingler",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"{{ minutes }}m read": "{{ minutes }}m de lecture",
|
||||
"Select a location to copy": "Sélectionnez un emplacement pour copier",
|
||||
"Document copied": "Document copié",
|
||||
"Couldn’t copy the document, try again?": "Impossible de copier le document, veuillez réessayer ?",
|
||||
"Include nested documents": "Inclure les documents imbriqués",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
"Copy to <em>{{ location }}</em>": "Déplacer dans <em>{{ location }}</em>",
|
||||
"Search collections & documents": "Rechercher dans les collections et documents",
|
||||
"No results found": "Aucun résultat",
|
||||
"New": "Nouveau",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Drapeaux",
|
||||
"Select a color": "Sélectionnez une couleur",
|
||||
"Loading": "Chargement",
|
||||
"Search": "Recherche",
|
||||
"Permission": "Permission",
|
||||
"View only": "Voir seulement",
|
||||
"Can edit": "Peut modifier",
|
||||
@@ -304,14 +308,14 @@
|
||||
"Unknown": "Inconnu",
|
||||
"Mark all as read": "Tout marquer comme lu",
|
||||
"You're all caught up": "Vous êtes à jour",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"Add reaction": "Add reaction",
|
||||
"Reaction picker": "Reaction picker",
|
||||
"Could not load reactions": "Could not load reactions",
|
||||
"Reaction": "Reaction",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} A réagi avec {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} et {{ secondUsername }} ont réagi avec {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} et {{ count }} autres ont réagi avec {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} Et {{ count }} autres ont réagi avec {{ emoji }}",
|
||||
"Add reaction": "Ajouter une réaction",
|
||||
"Reaction picker": "Sélecteur de réaction",
|
||||
"Could not load reactions": "Impossible de charger les réactions",
|
||||
"Reaction": "Réaction",
|
||||
"Results": "Résultats",
|
||||
"No results for {{query}}": "Aucun résultats pour {{query}}",
|
||||
"Manage": "Gérer",
|
||||
@@ -356,8 +360,8 @@
|
||||
"Anyone with the link can access because the parent document, <2>{{documentTitle}}</2>, is shared": "N'importe qui avec le lien peut accéder car le document parent, <2>{{documentTitle}}</2>, est partagé",
|
||||
"Allow anyone with the link to access": "Permettre à toute personne ayant le lien d'accéder",
|
||||
"Publish to internet": "Publier sur Internet",
|
||||
"Search engine indexing": "Search engine indexing",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disable this setting to discourage search engines from indexing the page",
|
||||
"Search engine indexing": "Indexation des moteurs de recherche",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Désactivez ce paramètre pour empêcher les moteurs de recherche d'indexer la page.",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "Les documents imbriqués ne sont pas partagés sur le web. Activer/désactiver le partage pour activer l'accès, ce sera le comportement par défaut dans le futur",
|
||||
"{{ userName }} was added to the document": "{{ userName }} a été ajouté au document",
|
||||
"{{ count }} people added to the document": "{{ count }} personnes ajoutées au document",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Collections archivées",
|
||||
"New doc": "Nouveau doc",
|
||||
"Empty": "Vide",
|
||||
"Collections": "Collections",
|
||||
"Collapse": "Réduire",
|
||||
"Expand": "Développer",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Document non pris en charge - essayez un format Markdown, Text, HTML ou Word",
|
||||
@@ -383,9 +386,9 @@
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} version de retard",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} versions de retard",
|
||||
"Change permissions?": "Modifier les permissions ?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} Ne (peut) pas être déplacé dans {{ parentDocumentName }}",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "Vous ne pouvez pas réorganiser les documents dans une collection triée par ordre alphabétique",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
"The {{ documentName }} cannot be moved here": "{{ documentName }} Ne (peut) pas être déplacée ici",
|
||||
"Return to App": "Retour à l’app",
|
||||
"Installation": "Installation",
|
||||
"Unstar document": "Retirer le document des favoris",
|
||||
@@ -404,12 +407,12 @@
|
||||
"Are you sure you want to suspend {{ userName }}? Suspended users will be prevented from logging in.": "Voulez-vous vraiment suspendre {{ userName }} ? Les utilisateurs suspendus ne pourront plus se connecter.",
|
||||
"New name": "Nouveau nom",
|
||||
"Name can't be empty": "Le champ Nom ne peut pas être vide",
|
||||
"Check your email to verify the new address.": "Check your email to verify the new address.",
|
||||
"The email will be changed once verified.": "The email will be changed once verified.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "You will receive an email to verify your new address. It must be unique in the workspace.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "A confirmation email will be sent to the new address before it is changed.",
|
||||
"New email": "New email",
|
||||
"Email can't be empty": "Email can't be empty",
|
||||
"Check your email to verify the new address.": "Vérifiez votre e-mail pour confirmer la nouvelle adresse.",
|
||||
"The email will be changed once verified.": "Le courriel sera modifié une fois vérifié.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "Vous allez recevoir un e-mail pour vérifier votre nouvelle adresse. Il doit être unique dans l'espace de travail.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "Un e-mail de confirmation sera envoyé à la nouvelle adresse avant qu’elle ne soit modifiée.",
|
||||
"New email": "Nouveau courriel",
|
||||
"Email can't be empty": "L'adresse électronique ne peut pas être vide",
|
||||
"Your import completed": "Votre importation est terminée",
|
||||
"Previous match": "Occurence précédente",
|
||||
"Next match": "Prochaine occurence",
|
||||
@@ -424,8 +427,9 @@
|
||||
"Profile picture": "Photo de profil",
|
||||
"Create a new doc": "Créer un nouveau doc",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} ne sera pas notifié, car il n'a pas accès à ce document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Embed": "Embed",
|
||||
"Keep as link": "Garder comme lien",
|
||||
"Mention": "Mentionner",
|
||||
"Embed": "Intégrer",
|
||||
"Add column after": "Ajouter une colonne après",
|
||||
"Add column before": "Ajouter une colonne avant",
|
||||
"Add row after": "Ajouter une ligne après",
|
||||
@@ -454,7 +458,7 @@
|
||||
"Italic": "Italique",
|
||||
"Sorry, that link won’t work for this embed type": "Désolé, ce lien ne fonctionne pas pour ce type d'intégration",
|
||||
"File attachment": "Pièce jointe",
|
||||
"Enter a link": "Enter a link",
|
||||
"Enter a link": "Entrez un lien",
|
||||
"Big heading": "En-tête",
|
||||
"Medium heading": "Titre moyen",
|
||||
"Small heading": "Petit titre",
|
||||
@@ -506,8 +510,9 @@
|
||||
"None": "Abc",
|
||||
"Could not import file": "Le fichier n'a pas pu être importé",
|
||||
"Unsubscribed from document": "Se désabonner du document",
|
||||
"Unsubscribed from collection": "Désabonné de la collection",
|
||||
"Account": "Compte",
|
||||
"API Keys": "API Keys",
|
||||
"API Keys": "Clés API",
|
||||
"Details": "Détails",
|
||||
"Security": "Sécurité",
|
||||
"Features": "Fonctionnalités",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Groupes",
|
||||
"Shared Links": "Liens partagés",
|
||||
"Import": "Importer",
|
||||
"Self Hosted": "Auto-hébergées",
|
||||
"Integrations": "Intégrations",
|
||||
"Revoke token": "Supprimer le jeton",
|
||||
"Revoke": "Supprimer",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restauré",
|
||||
"Document options": "Options de document",
|
||||
"Choose a collection": "Choisir une collection",
|
||||
"Subscription inherited from collection": "Abonnement hérité de la collection",
|
||||
"Enable embeds": "Activer les intégrations",
|
||||
"Export options": "Options d'exportation",
|
||||
"Group members": "Membres du groupe",
|
||||
"Edit group": "Modifier le groupe",
|
||||
"Delete group": "Supprimer le groupe",
|
||||
"Group options": "Options de groupe",
|
||||
"Cancel": "Annuler",
|
||||
"Import menu options": "Importer des options de menu",
|
||||
"Member options": "Options des membres",
|
||||
"New document in <em>{{ collectionName }}</em>": "Nouveau document dans <em>{{ collectionName }}</em>",
|
||||
"New child document": "Nouveau document fils",
|
||||
@@ -554,7 +561,7 @@
|
||||
"Headings you add to the document will appear here": "Les titres que vous ajoutez au document apparaîtront ici",
|
||||
"Table of contents": "Table des matières",
|
||||
"Change name": "Changement de nom",
|
||||
"Change email": "Change email",
|
||||
"Change email": "Modifier le courriel",
|
||||
"Suspend user": "Suspendre l'Utilisateur",
|
||||
"An error occurred while sending the invite": "Une erreur est survenue lors de l'envoi de l'invitation",
|
||||
"User options": "Options utilisateur",
|
||||
@@ -569,13 +576,13 @@
|
||||
"created the collection": "a créé la collection",
|
||||
"mentioned you in": "vous a mentionné dans",
|
||||
"left a comment on": "a laissé un commentaire sur",
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"resolved a comment on": "a résolu un commentaire sur",
|
||||
"shared": "partagé",
|
||||
"invited you to": "vous a invité à",
|
||||
"Choose a date": "Choisissez une date",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "Clé d'API créée. Veuillez copier la valeur maintenant car elle ne sera plus affichée.",
|
||||
"Scopes": "Scopes",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access",
|
||||
"Scopes": "portée",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Les portées séparées par des espaces restreignent l'accès de cette clé API à des parties spécifiques de l'API. Laisser vide pour un accès complet",
|
||||
"Expiration": "Expiration",
|
||||
"Never expires": "N'expire jamais",
|
||||
"7 days": "7 jours",
|
||||
@@ -598,7 +605,7 @@
|
||||
"{{ groupsCount }} groups with access_plural": "{{ groupsCount }} groupes ont accès",
|
||||
"Archived by {{userName}}": "Archivé par {{userName}}",
|
||||
"Share": "Partager",
|
||||
"Overview": "Overview",
|
||||
"Overview": "Aperçu",
|
||||
"Recently updated": "Récemment mis à jour",
|
||||
"Recently published": "Récemment publiés",
|
||||
"Least recently updated": "Anciennement modifiés",
|
||||
@@ -610,17 +617,16 @@
|
||||
"Add a reply": "Ajouter une réponse",
|
||||
"Reply": "Répondre",
|
||||
"Post": "Publier",
|
||||
"Cancel": "Annuler",
|
||||
"Upload image": "Importer une image",
|
||||
"No resolved comments": "Pas de commentaires résolus",
|
||||
"No comments yet": "Aucun commentaire pour le moment",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Trier les commentaires",
|
||||
"New comments": "Nouveaux commentaires",
|
||||
"Most recent": "Plus récent",
|
||||
"Order in doc": "Ordre dans le document",
|
||||
"Resolved": "Résolu",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Sort comments": "Trier les commentaires",
|
||||
"Show {{ count }} reply": "Afficher {{ count }} réponses",
|
||||
"Show {{ count }} reply_plural": "Afficher les {{ count }} réponses",
|
||||
"Error updating comment": "Erreur lors de la mise à jour du commentaire",
|
||||
"Document restored": "Document restauré",
|
||||
"Images are still uploading.\nAre you sure you want to discard them?": "Des images sont toujours en cours de téléchargement.\nÊtes-vous sûr de vouloir les supprimer ?",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Aucun documents trouvés pour votre recherche.",
|
||||
"You’ve not got any drafts at the moment.": "Vous n'avez aucun brouillon pour le moment.",
|
||||
"Payment Required": "Paiement requis",
|
||||
"Not Found": "Non trouvé",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Nous n'avons pas pu trouver la page que vous recherchez. Accédez à la <2>page d'accueil</2> ?",
|
||||
"No access to this doc": "Pas d'accès à ce document",
|
||||
"It doesn’t look like you have permission to access this document.": "Désolé, il semble que vous n’ayez pas la permission d’accéder à ce document.",
|
||||
"Please request access from the document owner.": "Veuillez demander l'accès au propriétaire du document.",
|
||||
"Not found": "Non trouvé",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "La page que vous cherchez est introuvable. Elle a peut-être été supprimée ou le lien est incorrect.",
|
||||
"Offline": "Hors-ligne",
|
||||
"We were unable to load the document while offline.": "Impossible de charger le document en mode hors-ligne.",
|
||||
"Your account has been suspended": "Votre compte a été suspendu",
|
||||
@@ -768,10 +777,10 @@
|
||||
"LaTeX block": "Bloc LaTeX",
|
||||
"Inline code": "Ligne de Code",
|
||||
"Inline LaTeX": "LaTeX en ligne",
|
||||
"Triggers": "Triggers",
|
||||
"Mention users and more": "Mention users and more",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Insert block",
|
||||
"Triggers": "Alertes",
|
||||
"Mention users and more": "Mentionner les utilisateurs et plus",
|
||||
"Emoji": "Émoticône",
|
||||
"Insert block": "Insérer un bloc",
|
||||
"Sign In": "Se connecter",
|
||||
"Continue with Email": "Continuer avec un e-mail",
|
||||
"Continue with {{ authProviderName }}": "Continuer avec {{ authProviderName }}",
|
||||
@@ -793,9 +802,9 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Désolé, il semble que ce lien de connexion ne soit plus valide, veuillez essayer d'en demander un autre.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Votre compte a été suspendu. Pour réactiver votre compte, veuillez contacter un administrateur de l'espace de travail.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Cet espace de travail a été suspendu. Veuillez contacter le support afin de le réactiver.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Échec de l'authentification - cette méthode de connexion a été désactivée par un administrateur d'équipe.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "L'authentification a échoué - cette méthode de connexion a été désactivée par un administrateur de l'espace de travail.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "L'espace de travail que vous essayez de rejoindre nécessite une invitation avant de pouvoir créer un compte.<1></1> Veuillez demander une invitation à l'administrateur de votre espace de travail et réessayer.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Sorry, an unknown error occurred.": "Désolé, une erreur inconnue s'est produite.",
|
||||
"Login": "Identification",
|
||||
"Error": "Erreur",
|
||||
"Failed to load configuration.": "Échec du chargement de la configuration.",
|
||||
@@ -814,27 +823,26 @@
|
||||
"Or": "Ou",
|
||||
"Already have an account? Go to <1>login</1>.": "Vous avez déjà un compte ? <1>Connectez-vous</1>.",
|
||||
"Any collection": "Toutes les collections",
|
||||
"Any time": "N'importe quand",
|
||||
"All time": "Tout l'historique",
|
||||
"Past day": "Hier",
|
||||
"Past week": "La semaine dernière",
|
||||
"Past month": "Le mois dernier",
|
||||
"Past year": "L'année dernière",
|
||||
"Any time": "N'importe quand",
|
||||
"Remove document filter": "Supprimer le filtre du document",
|
||||
"Any status": "Tous les statuts",
|
||||
"Remove search": "Supprimer la recherche",
|
||||
"Any author": "Tous les auteurs",
|
||||
"Author": "Auteur",
|
||||
"We were unable to find the page you’re looking for.": "Nous n'avons pas pu trouver la page que vous recherchez.",
|
||||
"Search titles only": "Chercher uniquement dans les titres",
|
||||
"Something went wrong": "Un problème est survenu",
|
||||
"Please try again or contact support if the problem persists": "Veuillez réessayer ou contacter le support si le problème persiste",
|
||||
"No documents found for your search filters.": "Aucun document trouvé pour vos critères de recherche.",
|
||||
"API": "API",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.",
|
||||
"by {{ name }}": "by {{ name }}",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "Les clés API peuvent être utilisées pour s'authentifier avec l'API et contrôler par programmation\n les données de votre espace de travail. Pour plus de détails, consultez la documentation <em>développeur</em>.",
|
||||
"by {{ name }}": "par {{ name }}",
|
||||
"Last used": "Dernier utilisé",
|
||||
"No expiry": "Pas d'expiration",
|
||||
"Restricted scope": "Restricted scope",
|
||||
"Restricted scope": "Portée restreinte",
|
||||
"API key copied to clipboard": "Clé API copiée dans le presse-papier",
|
||||
"Copied": "Copié",
|
||||
"Revoking": "Supression en cours",
|
||||
@@ -883,16 +891,22 @@
|
||||
"Search people": "Rechercher des personnes",
|
||||
"No people matching your search": "Aucune personne ne correspond à votre recherche",
|
||||
"No people left to add": "Plus aucune personne à ajouter",
|
||||
"Date created": "Date created",
|
||||
"Date created": "Créé le",
|
||||
"Upload": "Envoyer",
|
||||
"Crop image": "Rogner l’image",
|
||||
"Uploading": "Transfert en cours",
|
||||
"How does this work?": "Comment cela fonctionne-t-il ?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Vous pouvez importer un fichier zip provenant de l'export JSON d'une autre installation Outline. Dans {{ appName }}, ouvrez <em>Exporter</em> dans les paramètres et cliquez sur <em>Exporter les données</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Glissez et déposez le fichier zip provenant d'un export JSON de {{appName}}, ou cliquez pour le téléverser",
|
||||
"Canceled": "Annulée",
|
||||
"Import canceled": "Importation annulée",
|
||||
"Are you sure you want to cancel this import?": "Êtes-vous sûr de vouloir annuler l'importation ?",
|
||||
"Canceling": "Annulation...",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "L'annulation de cette importation annulera toute progression effectuée. Cette opération ne peut pas être annulée.",
|
||||
"{{ count }} document imported": "{{ count }} Document importé",
|
||||
"{{ count }} document imported_plural": "{{ count }} Documents importés",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Vous pouvez importer un fichier zip précédemment exporté à partir d'une installation Outline - les collections, les documents et les images seront importés. Dans Outline, ouvrez <em>Exporter</em> dans la barre latérale Paramètres et cliquez sur <em>Exporter les données</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Glissez et déposez le fichier zip provenant d'un export {{appName}}, ou cliquez pour le téléverser",
|
||||
"Where do I find the file?": "Où se trouve le fichier ?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "Dans Notion, cliquez sur <em>Paramètres & Membres</em> dans la barre latérale gauche et ouvrez Paramètres. Recherchez la section Exportation, puis cliquez sur <em>Exporter tout le contenu de l'espace de travail</em>. Choisissez <em>HTML</em> comme format pour la meilleure compatibilité des données.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Glissez et déposez le fichier zip depuis la page d’export HTML de Notion, ou cliquez pour téléverser",
|
||||
"Last active": "Dernière activité",
|
||||
"Guest": "Invité",
|
||||
"Shared by": "Partagé par",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Éditeurs",
|
||||
"All status": "Tous les statuts",
|
||||
"Active": "Actif",
|
||||
"Left": "Gauche",
|
||||
"Right": "Droite",
|
||||
"Settings saved": "Paramètres enregistrés",
|
||||
"Logo updated": "Logo mis à jour",
|
||||
"Unable to upload new logo": "Impossible de charger le logo",
|
||||
@@ -922,18 +938,15 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Affichez le logo de votre équipe sur les pages publiques telles que l'authentification et les documents partagés.",
|
||||
"Table of contents position": "Position de la table des matières",
|
||||
"The side to display the table of contents in relation to the main content.": "Le côté pour afficher la table des matières en relation avec le contenu principal.",
|
||||
"Left": "Gauche",
|
||||
"Right": "Droite",
|
||||
"Behavior": "Comportement",
|
||||
"Subdomain": "Sous-domaine",
|
||||
"Your workspace will be accessible at": "Votre espace de travail sera accessible à",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Choisissez un sous-domaine pour activer une page de connexion propre à votre équipe.",
|
||||
"Start view": "Page d'accueil",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Cette page s'affichera pour les membres de l'espace de travail lors de leur première connexion.",
|
||||
"Danger": "Danger",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Vous pouvez supprimer tout l'espace de travail dont les collections, les documents et les utilisateurs.",
|
||||
"Export data": "Export des données",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "Un export complet peut prendre un certain temps, pensez à exporter un seul document ou une seule collection. Les données sont exportées sous forme d'archive zip de vos documents en format Markdown. Une fois l'export commencé, ous pouvez fermer cette page – nous enverrons un lien à <em>{{ userEmail }}</em> quand ce sera terminé.",
|
||||
"Recent exports": "Exports récents",
|
||||
"Manage optional and beta features. Changing these settings will affect the experience for all members of the workspace.": "Gérer les fonctionnalités optionnelles et bêta. La modification de ces paramètres sera effective pour tous les membres de l'espace de travail.",
|
||||
"Separate editing": "Édition séparée",
|
||||
@@ -941,19 +954,18 @@
|
||||
"Commenting": "Commentaires",
|
||||
"When enabled team members can add comments to documents.": "Lorsque cette option est activée, les membres de l'équipe peuvent ajouter des commentaires aux documents.",
|
||||
"Create a group": "Créer un groupe",
|
||||
"Could not load groups": "Could not load groups",
|
||||
"Could not load groups": "Impossible de charger les groupes",
|
||||
"New group": "Nouveau Groupe",
|
||||
"Groups can be used to organize and manage the people on your team.": "Les groupes peuvent être utilisés pour organiser et gérer les membres de votre équipe.",
|
||||
"No groups have been created yet": "Aucun groupe n'a encore été créé",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transférez rapidement vos documents, pages et fichiers existants à partir d'autres outils et services vers {{appName}}. Vous pouvez également glisser-déposer n'importe quel document HTML, Markdown et texte dans les collections de l'application.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importer un fichier zip de documents Markdown (exporté depuis la version 0.67.0 ou antérieure)",
|
||||
"Import data": "Importer les données",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importer un fichier de données JSON exporté depuis une autre instance {{ appName }}",
|
||||
"Import pages exported from Notion": "Importer les pages exportées depuis Notion",
|
||||
"Import pages from a Confluence instance": "Importer des pages depuis une instance Confluence",
|
||||
"Enterprise": "Entreprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transférez rapidement vos documents, pages et fichiers existants à partir d'autres outils et services vers {{appName}}. Vous pouvez également glisser-déposer n'importe quel document HTML, Markdown et texte dans les collections de l'application.",
|
||||
"Recent imports": "Importé récemment",
|
||||
"Could not load members": "Could not load members",
|
||||
"Could not load members": "Impossible de charger les membres",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Toutes les personnes qui se sont connectées à {{appName}} s'affichent ici. Il est possible que d'autres utilisateurs aient accès via {{signinMethods}} mais ne se soient pas encore connectés.",
|
||||
"Receive a notification whenever a new document is published": "Recevez une notification chaque fois qu'un nouveau document est publié",
|
||||
"Document updated": "Document mis à jour",
|
||||
@@ -962,7 +974,7 @@
|
||||
"Receive a notification when a document you are subscribed to or a thread you participated in receives a comment": "Recevez une notification lorsqu'un commentaire est déposé sur un document auquel vous êtes abonné ou dans un fil de discussion auquel vous avez participé",
|
||||
"Mentioned": "Mentionné",
|
||||
"Receive a notification when someone mentions you in a document or comment": "Recevez une notification lorsque quelqu'un vous mentionne dans un document ou commentaire",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Receive a notification when a comment thread you were involved in is resolved",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Recevoir une notification lorsqu'un sujet de commentaire auquel vous avez participé est résolu",
|
||||
"Collection created": "Collection créée",
|
||||
"Receive a notification whenever a new collection is created": "Recevez une notification à chaque fois qu'une nouvelle collection est créée",
|
||||
"Invite accepted": "Invitation acceptée",
|
||||
@@ -996,8 +1008,8 @@
|
||||
"When enabled, documents have a separate editing mode. When disabled, documents are always editable when you have permission.": "Lorsque cette option est activée, les documents ont un mode d'édition séparé. Lorsqu'elle est désactivée, les documents restent modifiables en permanence si vous en avez la permission.",
|
||||
"Remember previous location": "Se souvenir de l'emplacement précédent",
|
||||
"Automatically return to the document you were last viewing when the app is re-opened.": "Revenir automatiquement au document consulté en dernier lors de la réouverture de l'application.",
|
||||
"Smart text replacements": "Smart text replacements",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.",
|
||||
"Smart text replacements": "Remplacer le texte intelligent",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Formater automatiquement le texte en remplaçant les raccourcis par des symboles, des tirets, des guillemets intelligents et d'autres éléments typographiques.",
|
||||
"You may delete your account at any time, note that this is unrecoverable": "Vous pouvez supprimer votre compte à tout moment, notez que cela est irrécupérable",
|
||||
"Profile saved": "Profil enregistré",
|
||||
"Profile picture updated": "Photo de profil sauvegardée",
|
||||
@@ -1032,11 +1044,7 @@
|
||||
"Allow editors to create new collections within the workspace": "Autoriser les éditeurs à créer de nouvelles collections dans l'espace de travail",
|
||||
"Workspace creation": "Création d'un espace de travail",
|
||||
"Allow editors to create new workspaces": "Autoriser les éditeurs à créer de nouveaux espaces de travail",
|
||||
"Draw.io deployment": "Déploiement de Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Ajoutez ici l'url de votre installation draw.io auto-hébergée pour activer l'intégration automatique des diagrammes dans les documents.",
|
||||
"Grist deployment": "Déploiement Grist",
|
||||
"Add your self-hosted grist installation URL here.": "Ajoutez votre URL d'installation Grist autohébergée ici.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Could not load shares": "Impossible de charger les partages\n",
|
||||
"Sharing is currently disabled.": "Le partage est actuellement désactivé.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Vous pouvez complètement activer et désactiver le partage de documents publics dans les <em>paramètres de sécurité</em>.",
|
||||
"Documents that have been shared are listed below. Anyone that has the public link can access a read-only version of the document until the link has been revoked.": "Les documents partagés sont listés ci-dessous. Les personnes possédant le lien public peuvent accéder à une version en lecture seule du document jusqu'à ce que le lien soit révoqué.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "L'URL de votre instance Matomo. Si vous utilisez Matomo Cloud, cela se terminera par matomo.cloud/",
|
||||
"Site ID": "ID du site",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Un ID qui identifie de manière unique le site web dans votre instance Matomo.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "\"Oups, vous devez accepter les autorisations dans Notion pour connecter {{ appName }} à votre espace de travail. Essayez à nouveau ?\"",
|
||||
"Import pages from Notion": "Importer des pages depuis une notion",
|
||||
"Add to Slack": "Ajouter à Slack",
|
||||
"document published": "document publié",
|
||||
"document updated": "document mis à jour",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "Mis à jour par {{ user }} il y a {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Créé par vous il y a {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "Créé par {{ user }} il y a {{ timeAgo }}",
|
||||
"Uploading": "Transfert en cours"
|
||||
}
|
||||
"Error loading data": "Erreur de chargement des données"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "חיפוש בתוך האוסף",
|
||||
"Star": "סמן בכוכב",
|
||||
"Unstar": "הסר סימון בכוכב",
|
||||
"Subscribe": "הירשם כמנוי",
|
||||
"Subscribed to document notifications": "הרשמה להתראות על המסמך",
|
||||
"Unsubscribe": "ביטול מנוי",
|
||||
"Unsubscribed from document notifications": "הוסר מהתראות המסמך",
|
||||
"Archive": "ארכיון",
|
||||
"Archive collection": "Archive collection",
|
||||
"Collection archived": "Collection archived",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "פירסום מסמך",
|
||||
"Unpublish": "ביטול פרסום",
|
||||
"Unpublished {{ documentName }}": "לא פורסם {{ documentName }}",
|
||||
"Subscribe": "הירשם כמנוי",
|
||||
"Subscribed to document notifications": "הרשמה להתראות על המסמך",
|
||||
"Unsubscribe": "ביטול מנוי",
|
||||
"Unsubscribed from document notifications": "הוסר מהתראות המסמך",
|
||||
"Share this document": "שתף מסמך זה",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "הורדת מסמך",
|
||||
"Copy as Markdown": "העתק בפורמט Markdown",
|
||||
"Markdown copied to clipboard": "Markdown הועתק ללוח העריכה",
|
||||
"Copy as text": "העתק כטקסט",
|
||||
"Text copied to clipboard": "הטקסט הועתק ללוח",
|
||||
"Copy public link": "Copy public link",
|
||||
"Link copied to clipboard": "קישור הועתק ללוח העריכה",
|
||||
"Copy link": "העתק קישור",
|
||||
@@ -95,23 +97,24 @@
|
||||
"Insights": "תובנות",
|
||||
"Disable viewer insights": "כיבוי תובנות צופים",
|
||||
"Enable viewer insights": "הפעלת תובנות צופים",
|
||||
"Leave document": "Leave document",
|
||||
"Leave document": "מסמך חדש",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Home": "בית",
|
||||
"Drafts": "טיוטות",
|
||||
"Search": "חיפוש",
|
||||
"Trash": "אשפה",
|
||||
"Settings": "הגדרות",
|
||||
"Profile": "פרופיל",
|
||||
"Templates": "תבניות",
|
||||
"Notifications": "התראות",
|
||||
"Preferences": "העדפות",
|
||||
"Documentation": "Documentation",
|
||||
"API documentation": "API documentation",
|
||||
"Toggle sidebar": "Toggle sidebar",
|
||||
"Send us feedback": "Send us feedback",
|
||||
"Report a bug": "Report a bug",
|
||||
"Changelog": "Changelog",
|
||||
"Documentation": "תיעוד",
|
||||
"API documentation": "תיעוד API",
|
||||
"Toggle sidebar": "החלף את הסרגל הצדדי",
|
||||
"Send us feedback": "שלח לנו משוב",
|
||||
"Report a bug": "דווח על באג",
|
||||
"Changelog": "יומן שינויים",
|
||||
"Keyboard shortcuts": "Keyboard shortcuts",
|
||||
"Download {{ platform }} app": "Download {{ platform }} app",
|
||||
"Log out": "Log out",
|
||||
@@ -120,23 +123,24 @@
|
||||
"Restore revision": "Restore revision",
|
||||
"Link copied": "Link copied",
|
||||
"Dark": "Dark",
|
||||
"Light": "Light",
|
||||
"System": "System",
|
||||
"Appearance": "Appearance",
|
||||
"Change theme": "Change theme",
|
||||
"Change theme to": "Change theme to",
|
||||
"Switch workspace": "Switch workspace",
|
||||
"Light": "בהיר",
|
||||
"System": "מערכת",
|
||||
"Appearance": "מראה",
|
||||
"Change theme": "שינוי ערכת נושא",
|
||||
"Change theme to": "שינוי ערכת נושא",
|
||||
"Switch workspace": "החלף סביבת עבודה",
|
||||
"Select a workspace": "Select a workspace",
|
||||
"New workspace": "New workspace",
|
||||
"Create a workspace": "Create a workspace",
|
||||
"Login to workspace": "Login to workspace",
|
||||
"Invite people": "Invite people",
|
||||
"Invite to workspace": "Invite to workspace",
|
||||
"New workspace": "מרחב עבודה חדש",
|
||||
"Create a workspace": "יצירת סביבת עבודה",
|
||||
"Login to workspace": "העבר לעזור העבודה",
|
||||
"Invite people": "הזמן אנשים",
|
||||
"Invite to workspace": "הזמן למרחב העבודה",
|
||||
"Promote to {{ role }}": "Promote to {{ role }}",
|
||||
"Demote to {{ role }}": "Demote to {{ role }}",
|
||||
"Update role": "Update role",
|
||||
"Delete user": "Delete user",
|
||||
"Collection": "Collection",
|
||||
"Collection": "אוסף",
|
||||
"Collections": "אוספים",
|
||||
"Debug": "Debug",
|
||||
"Document": "Document",
|
||||
"Documents": "Documents",
|
||||
@@ -160,55 +164,56 @@
|
||||
"Saving": "Saving",
|
||||
"Save": "Save",
|
||||
"Creating": "Creating",
|
||||
"Create": "Create",
|
||||
"Create": "צור",
|
||||
"Collection deleted": "Collection deleted",
|
||||
"I’m sure – Delete": "I’m sure – Delete",
|
||||
"Deleting": "Deleting",
|
||||
"Deleting": "מוחק",
|
||||
"Are you sure about that? Deleting the <em>{{collectionName}}</em> collection is permanent and cannot be restored, however all published documents within will be moved to the trash.": "Are you sure about that? Deleting the <em>{{collectionName}}</em> collection is permanent and cannot be restored, however all published documents within will be moved to the trash.",
|
||||
"Also, <em>{{collectionName}}</em> is being used as the start view – deleting it will reset the start view to the Home page.": "Also, <em>{{collectionName}}</em> is being used as the start view – deleting it will reset the start view to the Home page.",
|
||||
"Sorry, an error occurred saving the collection": "Sorry, an error occurred saving the collection",
|
||||
"Add a description": "Add a description",
|
||||
"Add a description": "הוסף תיאור",
|
||||
"Type a command or search": "Type a command or search",
|
||||
"Choose a template": "Choose a template",
|
||||
"Choose a template": "בחר תבנית",
|
||||
"Are you sure you want to permanently delete this entire comment thread?": "Are you sure you want to permanently delete this entire comment thread?",
|
||||
"Are you sure you want to permanently delete this comment?": "Are you sure you want to permanently delete this comment?",
|
||||
"Confirm": "Confirm",
|
||||
"Are you sure you want to permanently delete this comment?": "האם הינך בטוח/ה שברצונך למחוק את התגובה הזאת לצמיתות?",
|
||||
"Confirm": "לאשר",
|
||||
"manage access": "manage access",
|
||||
"view and edit access": "view and edit access",
|
||||
"view only access": "view only access",
|
||||
"no access": "no access",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"Move document": "Move document",
|
||||
"Moving": "Moving",
|
||||
"Move document": "העבר מסמך",
|
||||
"Moving": "מעביר",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Document is too large": "Document is too large",
|
||||
"This document has reached the maximum size and can no longer be edited": "This document has reached the maximum size and can no longer be edited",
|
||||
"Authentication failed": "Authentication failed",
|
||||
"Authentication failed": "האימות נכשל",
|
||||
"Please try logging out and back in again": "Please try logging out and back in again",
|
||||
"Authorization failed": "Authorization failed",
|
||||
"Authorization failed": "ההרשאה נכשלה",
|
||||
"You may have lost access to this document, try reloading": "You may have lost access to this document, try reloading",
|
||||
"Too many users connected to document": "Too many users connected to document",
|
||||
"Your edits will sync once other users leave the document": "Your edits will sync once other users leave the document",
|
||||
"Server connection lost": "Server connection lost",
|
||||
"Edits you make will sync once you’re online": "Edits you make will sync once you’re online",
|
||||
"Submenu": "Submenu",
|
||||
"Submenu": "תפריט משנה",
|
||||
"Collections could not be loaded, please reload the app": "Collections could not be loaded, please reload the app",
|
||||
"Default collection": "Default collection",
|
||||
"Install now": "Install now",
|
||||
"Deleted Collection": "Deleted Collection",
|
||||
"Untitled": "Untitled",
|
||||
"Unpin": "Unpin",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"Default collection": "אוסף ברירת מחדל",
|
||||
"Start view": "תצוגת התחל",
|
||||
"Install now": "התקן עכשיו",
|
||||
"Deleted Collection": "מחק אוסף",
|
||||
"Untitled": "ללא כותרת",
|
||||
"Unpin": "בטל הצמדה",
|
||||
"{{ minutes }}m read": "{{ דקות }} קראתי",
|
||||
"Select a location to copy": "בחר מיקום להעתקה",
|
||||
"Document copied": "המסמך הועבר לארכיון",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"Include nested documents": "Include nested documents",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
"Search collections & documents": "Search collections & documents",
|
||||
"No results found": "No results found",
|
||||
"New": "New",
|
||||
"Only visible to you": "Only visible to you",
|
||||
"Draft": "Draft",
|
||||
"No results found": "לא נמצאו תוצאות",
|
||||
"New": "חדש",
|
||||
"Only visible to you": "גלוי רק לך",
|
||||
"Draft": "טיוטה",
|
||||
"Template": "Template",
|
||||
"You updated": "You updated",
|
||||
"{{ userName }} updated": "{{ userName }} updated",
|
||||
@@ -235,14 +240,14 @@
|
||||
"Currently viewing": "Currently viewing",
|
||||
"Viewed {{ timeAgo }}": "Viewed {{ timeAgo }}",
|
||||
"Module failed to load": "Module failed to load",
|
||||
"Loading Failed": "Loading Failed",
|
||||
"Loading Failed": "טעינה נכשלה",
|
||||
"Sorry, part of the application failed to load. This may be because it was updated since you opened the tab or because of a failed network request. Please try reloading.": "Sorry, part of the application failed to load. This may be because it was updated since you opened the tab or because of a failed network request. Please try reloading.",
|
||||
"Reload": "Reload",
|
||||
"Reload": "טען מחדש",
|
||||
"Something Unexpected Happened": "Something Unexpected Happened",
|
||||
"Sorry, an unrecoverable error occurred{{notified}}. Please try reloading the page, it may have been a temporary glitch.": "Sorry, an unrecoverable error occurred{{notified}}. Please try reloading the page, it may have been a temporary glitch.",
|
||||
"our engineers have been notified": "our engineers have been notified",
|
||||
"Show detail": "Show detail",
|
||||
"Current version": "Current version",
|
||||
"Show detail": "הצג פרטים",
|
||||
"Current version": "גרסה נוכחית",
|
||||
"{{userName}} edited": "{{userName}} edited",
|
||||
"{{userName}} archived": "{{userName}} archived",
|
||||
"{{userName}} restored": "{{userName}} restored",
|
||||
@@ -253,19 +258,19 @@
|
||||
"{{userName}} published": "{{userName}} published",
|
||||
"{{userName}} unpublished": "{{userName}} unpublished",
|
||||
"{{userName}} moved": "{{userName}} moved",
|
||||
"Export started": "Export started",
|
||||
"Export started": "הייצוא החל",
|
||||
"Your file will be available in {{ location }} soon": "Your file will be available in {{ location }} soon",
|
||||
"View": "View",
|
||||
"View": "הצג",
|
||||
"A ZIP file containing the images, and documents in the Markdown format.": "A ZIP file containing the images, and documents in the Markdown format.",
|
||||
"A ZIP file containing the images, and documents as HTML files.": "A ZIP file containing the images, and documents as HTML files.",
|
||||
"Structured data that can be used to transfer data to another compatible {{ appName }} instance.": "Structured data that can be used to transfer data to another compatible {{ appName }} instance.",
|
||||
"Export": "Export",
|
||||
"Export": "ייצוא",
|
||||
"Exporting the collection <em>{{collectionName}}</em> may take some time.": "Exporting the collection <em>{{collectionName}}</em> may take some time.",
|
||||
"You will receive an email when it's complete.": "You will receive an email when it's complete.",
|
||||
"Include attachments": "Include attachments",
|
||||
"Including uploaded images and files in the exported data": "Including uploaded images and files in the exported data",
|
||||
"Filter": "Filter",
|
||||
"No results": "No results",
|
||||
"Filter": "מיין",
|
||||
"No results": "אין תוצאות",
|
||||
"{{authorName}} created <3></3>": "{{authorName}} created <3></3>",
|
||||
"{{authorName}} opened <3></3>": "{{authorName}} opened <3></3>",
|
||||
"Search emoji": "Search emoji",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Flags",
|
||||
"Select a color": "Select a color",
|
||||
"Loading": "Loading",
|
||||
"Search": "Search",
|
||||
"Permission": "Permission",
|
||||
"View only": "View only",
|
||||
"Can edit": "Can edit",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Archived collections",
|
||||
"New doc": "New doc",
|
||||
"Empty": "Empty",
|
||||
"Collections": "Collections",
|
||||
"Collapse": "Collapse",
|
||||
"Expand": "Expand",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Document not supported – try Markdown, Plain text, HTML, or Word",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Create a new doc",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Add column after",
|
||||
"Add column before": "Add column before",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "None",
|
||||
"Could not import file": "Could not import file",
|
||||
"Unsubscribed from document": "Unsubscribed from document",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "Account",
|
||||
"API Keys": "API Keys",
|
||||
"Details": "Details",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Groups",
|
||||
"Shared Links": "Shared Links",
|
||||
"Import": "Import",
|
||||
"Self Hosted": "Self Hosted",
|
||||
"Integrations": "Integrations",
|
||||
"Revoke token": "Revoke token",
|
||||
"Revoke": "Revoke",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"Document options": "Document options",
|
||||
"Choose a collection": "Choose a collection",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "Enable embeds",
|
||||
"Export options": "Export options",
|
||||
"Group members": "Group members",
|
||||
"Edit group": "Edit group",
|
||||
"Delete group": "Delete group",
|
||||
"Group options": "Group options",
|
||||
"Cancel": "Cancel",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Member options",
|
||||
"New document in <em>{{ collectionName }}</em>": "New document in <em>{{ collectionName }}</em>",
|
||||
"New child document": "New child document",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Add a reply",
|
||||
"Reply": "Reply",
|
||||
"Post": "Post",
|
||||
"Cancel": "Cancel",
|
||||
"Upload image": "Upload image",
|
||||
"No resolved comments": "No resolved comments",
|
||||
"No comments yet": "No comments yet",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Error updating comment",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "No documents found for your filters.",
|
||||
"You’ve not got any drafts at the moment.": "You’ve not got any drafts at the moment.",
|
||||
"Payment Required": "Payment Required",
|
||||
"Not Found": "Not Found",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "We were unable to find the page you’re looking for. Go to the <2>homepage</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Offline",
|
||||
"We were unable to load the document while offline.": "We were unable to load the document while offline.",
|
||||
"Your account has been suspended": "Your account has been suspended",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Sorry, it looks like that sign-in link is no longer valid, please try requesting another.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Your account has been suspended. To re-activate your account, please contact a workspace admin.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "This workspace has been suspended. Please contact support to restore access.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Authentication failed – this login method was disabled by a team admin.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "Login",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Or",
|
||||
"Already have an account? Go to <1>login</1>.": "Already have an account? Go to <1>login</1>.",
|
||||
"Any collection": "Any collection",
|
||||
"Any time": "Any time",
|
||||
"All time": "All time",
|
||||
"Past day": "Past day",
|
||||
"Past week": "Past week",
|
||||
"Past month": "Past month",
|
||||
"Past year": "Past year",
|
||||
"Any time": "Any time",
|
||||
"Remove document filter": "Remove document filter",
|
||||
"Any status": "Any status",
|
||||
"Remove search": "Remove search",
|
||||
"Any author": "Any author",
|
||||
"Author": "Author",
|
||||
"We were unable to find the page you’re looking for.": "We were unable to find the page you’re looking for.",
|
||||
"Search titles only": "Search titles only",
|
||||
"Something went wrong": "Something went wrong",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "No people left to add",
|
||||
"Date created": "Date created",
|
||||
"Upload": "Upload",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Uploading",
|
||||
"How does this work?": "How does this work?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload",
|
||||
"Where do I find the file?": "Where do I find the file?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Drag and drop the zip file from Notion's HTML export option, or click to upload",
|
||||
"Last active": "Last active",
|
||||
"Guest": "Guest",
|
||||
"Shared by": "Shared by",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editors",
|
||||
"All status": "All status",
|
||||
"Active": "Active",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Settings saved": "Settings saved",
|
||||
"Logo updated": "Logo updated",
|
||||
"Unable to upload new logo": "Unable to upload new logo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Show your team’s logo on public pages like login and shared documents.",
|
||||
"Table of contents position": "Table of contents position",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Behavior": "Behavior",
|
||||
"Subdomain": "Subdomain",
|
||||
"Your workspace will be accessible at": "Your workspace will be accessible at",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Choose a subdomain to enable a login page just for your team.",
|
||||
"Start view": "Start view",
|
||||
"This is the screen that workspace members will first see when they sign in.": "This is the screen that workspace members will first see when they sign in.",
|
||||
"Danger": "Danger",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "You can delete this entire workspace including collections, documents, and users.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "New group",
|
||||
"Groups can be used to organize and manage the people on your team.": "Groups can be used to organize and manage the people on your team.",
|
||||
"No groups have been created yet": "No groups have been created yet",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)",
|
||||
"Import data": "Import data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Import a JSON data file exported from another {{ appName }} instance",
|
||||
"Import pages exported from Notion": "Import pages exported from Notion",
|
||||
"Import pages from a Confluence instance": "Import pages from a Confluence instance",
|
||||
"Enterprise": "Enterprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Recent imports": "Recent imports",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Allow editors to create new collections within the workspace",
|
||||
"Workspace creation": "Workspace creation",
|
||||
"Allow editors to create new workspaces": "Allow editors to create new workspaces",
|
||||
"Draw.io deployment": "Draw.io deployment",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.",
|
||||
"Grist deployment": "Grist deployment",
|
||||
"Add your self-hosted grist installation URL here.": "Add your self-hosted grist installation URL here.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "Sharing is currently disabled.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "You can globally enable and disable public document sharing in the <em>security settings</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
"Site ID": "Site ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Add to Slack",
|
||||
"document published": "document published",
|
||||
"document updated": "document updated",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} updated {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "You created {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} created {{ timeAgo }}",
|
||||
"Uploading": "Uploading"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,22 +11,26 @@
|
||||
"Search in collection": "Keresés a gyűjteményben",
|
||||
"Star": "Csillagozás",
|
||||
"Unstar": "Csillagozás törlése",
|
||||
"Subscribe": "Feliratkozás",
|
||||
"Subscribed to document notifications": "Feliratkozás megtörtént a dokumentum értesítéseire",
|
||||
"Unsubscribe": "Leiratkozás",
|
||||
"Unsubscribed from document notifications": "Leiratkozás megtörtént a dokumentum értesítéseiről",
|
||||
"Archive": "Archiválás",
|
||||
"Archive collection": "Archive collection",
|
||||
"Archive collection": "Keresés a gyűjteményben",
|
||||
"Collection archived": "Collection archived",
|
||||
"Archiving": "Archiving",
|
||||
"Archiving": "Archiválás",
|
||||
"Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.": "Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.",
|
||||
"Restore": "Visszaállítás",
|
||||
"Collection restored": "Collection restored",
|
||||
"Collection restored": "Gyűjtemény törölve",
|
||||
"Delete": "Törlés",
|
||||
"Delete collection": "Gyűjtemény törlése",
|
||||
"New template": "Új sablon",
|
||||
"Delete comment": "Hozzászólás törlése",
|
||||
"Mark as resolved": "Mark as resolved",
|
||||
"Mark as resolved": "Megjelölés megoldottként",
|
||||
"Thread resolved": "Thread resolved",
|
||||
"Mark as unresolved": "Mark as unresolved",
|
||||
"Mark as unresolved": "Megjelölés megoldatlanként",
|
||||
"View reactions": "View reactions",
|
||||
"Reactions": "Reactions",
|
||||
"Reactions": "Reakciók",
|
||||
"Copy ID": "ID másolása",
|
||||
"Clear IndexedDB cache": "IndexedDB cache törlése",
|
||||
"IndexedDB cache cleared": "IndexedDB cache törölve",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Dokumentum közzététele",
|
||||
"Unpublish": "Közzététel visszavonása",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} visszavonva",
|
||||
"Subscribe": "Feliratkozás",
|
||||
"Subscribed to document notifications": "Feliratkozás megtörtént a dokumentum értesítéseire",
|
||||
"Unsubscribe": "Leiratkozás",
|
||||
"Unsubscribed from document notifications": "Leiratkozás megtörtént a dokumentum értesítéseiről",
|
||||
"Share this document": "Dokumentum megosztása",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,7 +57,9 @@
|
||||
"Download document": "Dokumentum letöltése",
|
||||
"Copy as Markdown": "Másolás Markdown szövegként",
|
||||
"Markdown copied to clipboard": "Markdown vágólapra másolva",
|
||||
"Copy public link": "Copy public link",
|
||||
"Copy as text": "Másolás szövegként",
|
||||
"Text copied to clipboard": "Szöveg másolva a vágólapra",
|
||||
"Copy public link": "Megosztható hivatkozás",
|
||||
"Link copied to clipboard": "Hivatkozás vágólapra másolva",
|
||||
"Copy link": "Hivatkozás másolása",
|
||||
"Copy": "Másolás",
|
||||
@@ -80,7 +82,7 @@
|
||||
"Search documents for \"{{searchQuery}}\"": "\"{{searchQuery}}\" keresése a dokumentumokban",
|
||||
"Move to workspace": "Move to workspace",
|
||||
"Move": "Áthelyezés",
|
||||
"Move to collection": "Move to collection",
|
||||
"Move to collection": "Mozgatás a kollekcióba",
|
||||
"Move {{ documentType }}": "{{ documentType }} áthelyezése",
|
||||
"Are you sure you want to archive this document?": "Are you sure you want to archive this document?",
|
||||
"Document archived": "Dokumentum archiválva",
|
||||
@@ -95,11 +97,12 @@
|
||||
"Insights": "Részletek",
|
||||
"Disable viewer insights": "Disable viewer insights",
|
||||
"Enable viewer insights": "Enable viewer insights",
|
||||
"Leave document": "Leave document",
|
||||
"Leave document": "Dokumentum mentése",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Could not leave document": "Nem lehet menteni a dokumentumot",
|
||||
"Home": "Kezdőlap",
|
||||
"Drafts": "Piszkozatok",
|
||||
"Search": "Keresés",
|
||||
"Trash": "Lomtár",
|
||||
"Settings": "Beállítások",
|
||||
"Profile": "Profil",
|
||||
@@ -131,16 +134,17 @@
|
||||
"Create a workspace": "Munkaterület létrehozása",
|
||||
"Login to workspace": "Login to workspace",
|
||||
"Invite people": "Mások meghívása",
|
||||
"Invite to workspace": "Invite to workspace",
|
||||
"Invite to workspace": "Meghívása a munkaterületbe",
|
||||
"Promote to {{ role }}": "Promote to {{ role }}",
|
||||
"Demote to {{ role }}": "Demote to {{ role }}",
|
||||
"Update role": "Szerepkör módosítása",
|
||||
"Delete user": "Felhasználó törlése",
|
||||
"Collection": "Gyűjtemény",
|
||||
"Collections": "Gyűjtemények",
|
||||
"Debug": "Hibakeresés",
|
||||
"Document": "Dokumentum",
|
||||
"Documents": "Dokumentumok",
|
||||
"Recently viewed": "Recently viewed",
|
||||
"Recently viewed": "Legutóbb megtekintett",
|
||||
"Revision": "Revízió",
|
||||
"Navigation": "Navigáció",
|
||||
"Notification": "Értesítés",
|
||||
@@ -179,7 +183,7 @@
|
||||
"no access": "nincs hozzáférés",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"Move document": "Dokumentum áthelyezése",
|
||||
"Moving": "Moving",
|
||||
"Moving": "Áthelyezés",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Document is too large": "A dokumentum túl nagy",
|
||||
"This document has reached the maximum size and can no longer be edited": "Ez a dokumentum elérte a maximális méretet és nem szerkeszthető tovább",
|
||||
@@ -194,13 +198,14 @@
|
||||
"Submenu": "Almenü",
|
||||
"Collections could not be loaded, please reload the app": "A gyűjtemények nem tölthetők be, kérem töltse újra a programot",
|
||||
"Default collection": "Alapértelmezett gyűjtemény",
|
||||
"Start view": "Kezdje el",
|
||||
"Install now": "Telepítés most",
|
||||
"Deleted Collection": "Törölt gyűjtemény",
|
||||
"Untitled": "Névtelen",
|
||||
"Unpin": "Feloldás",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"Document copied": "Dokumentum átmásolva",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"Include nested documents": "Beágyazott dokumentumokkal együtt",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
@@ -264,7 +269,7 @@
|
||||
"You will receive an email when it's complete.": "Egy e-mail-t fog kapni, mikor elkészült.",
|
||||
"Include attachments": "Csatolmányokkal együtt",
|
||||
"Including uploaded images and files in the exported data": "A feltöltött képek és fájlok is exportálva lesznek",
|
||||
"Filter": "Filter",
|
||||
"Filter": "Szűrő",
|
||||
"No results": "Nincs találat",
|
||||
"{{authorName}} created <3></3>": "{{authorName}} hozta lére <3></3>",
|
||||
"{{authorName}} opened <3></3>": "{{authorName}} megnyitotta <3></3>",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Zászlók",
|
||||
"Select a color": "Válasszon egy színt",
|
||||
"Loading": "Betöltés",
|
||||
"Search": "Keresés",
|
||||
"Permission": "Jogosultságok",
|
||||
"View only": "Csak megtekintés",
|
||||
"Can edit": "Szerkesztheti",
|
||||
@@ -311,10 +315,10 @@
|
||||
"Add reaction": "Add reaction",
|
||||
"Reaction picker": "Reaction picker",
|
||||
"Could not load reactions": "Could not load reactions",
|
||||
"Reaction": "Reaction",
|
||||
"Reaction": "Reakció",
|
||||
"Results": "Eredmények",
|
||||
"No results for {{query}}": "Nincs találat: {{query}}",
|
||||
"Manage": "Manage",
|
||||
"Manage": "Kezelés",
|
||||
"All members": "Összes tag",
|
||||
"Everyone in the workspace": "Everyone in the workspace",
|
||||
"{{ count }} member": "{{ count }} tag",
|
||||
@@ -334,7 +338,7 @@
|
||||
"Can view": "Megtekintheti",
|
||||
"Everyone in the collection": "Everyone in the collection",
|
||||
"You have full access": "You have full access",
|
||||
"Created the document": "Created the document",
|
||||
"Created the document": "Dokumentum létrehozása",
|
||||
"Other people": "Other people",
|
||||
"Other workspace members may have access": "Other workspace members may have access",
|
||||
"This document may be shared with more workspace members through a parent document or collection you do not have access to": "This document may be shared with more workspace members through a parent document or collection you do not have access to",
|
||||
@@ -356,33 +360,32 @@
|
||||
"Anyone with the link can access because the parent document, <2>{{documentTitle}}</2>, is shared": "Anyone with the link can access because the parent document, <2>{{documentTitle}}</2>, is shared",
|
||||
"Allow anyone with the link to access": "Allow anyone with the link to access",
|
||||
"Publish to internet": "Publikálás interneten",
|
||||
"Search engine indexing": "Search engine indexing",
|
||||
"Search engine indexing": "Keresőmotor indexelése",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disable this setting to discourage search engines from indexing the page",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future",
|
||||
"{{ userName }} was added to the document": "{{ userName }} was added to the document",
|
||||
"{{ count }} people added to the document": "{{ count }} people added to the document",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} people added to the document",
|
||||
"{{ count }} groups added to the document": "{{ count }} groups added to the document",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} groups added to the document",
|
||||
"{{ userName }} was added to the document": "{{ userName }} eltávolítva a dokumentumból",
|
||||
"{{ count }} people added to the document": "{{ count }} eltávolítva a dokumentumból",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} eltávolítva a dokumentumból",
|
||||
"{{ count }} groups added to the document": "{{ count }} eltávolítva a dokumentumból",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} eltávolítva a dokumentumból",
|
||||
"Logo": "Logó",
|
||||
"Archived collections": "Archived collections",
|
||||
"Archived collections": "Keresés a gyűjteményben",
|
||||
"New doc": "Új doku",
|
||||
"Empty": "Üres",
|
||||
"Collections": "Gyűjtemények",
|
||||
"Collapse": "Összezárás",
|
||||
"Expand": "Kinyitás",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Ez a dokumentum nem támogatott – próbáljon Markdown, egyszerű szöveg, HTML vagy Word formátumot",
|
||||
"Go back": "Ugrás vissza",
|
||||
"Go forward": "Előrelépés",
|
||||
"Could not load shared documents": "Could not load shared documents",
|
||||
"Shared with me": "Shared with me",
|
||||
"Could not load shared documents": "Nem lehet menteni a dokumentumot",
|
||||
"Shared with me": "Velem megosztva",
|
||||
"Show more": "Mutass többet",
|
||||
"Could not load starred documents": "Could not load starred documents",
|
||||
"Could not load starred documents": "Nem lehet menteni a dokumentumot",
|
||||
"Starred": "Csillagozott",
|
||||
"Up to date": "Naprakész",
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} verzióval régebbi",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} verzióval régebbi",
|
||||
"Change permissions?": "Change permissions?",
|
||||
"Change permissions?": "Engedélyek módosítása?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "Nem tudja egy ABC szerint rendezett gyűjtemény elemeinek sorrendjét megváltoztatni",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
@@ -394,11 +397,11 @@
|
||||
"Creating a template from <em>{{titleWithDefault}}</em> is a non-destructive action – we'll make a copy of the document and turn it into a template that can be used as a starting point for new documents.": "Sablon létrehozása a(z) <em>{{titleWithDefault}}</em> dokumentumból \"roncsolásmentes\" művelet – egy másolatot készítünk a dokumentumból, melyből sablon lesz, ami új dokumentumok kiinduló pontjának használható.",
|
||||
"Published": "Közzétéve",
|
||||
"Enable other members to use the template immediately": "Enable other members to use the template immediately",
|
||||
"Location": "Location",
|
||||
"Location": "Hely",
|
||||
"Admins can manage the workspace and access billing.": "Admins can manage the workspace and access billing.",
|
||||
"Editors can create, edit, and comment on documents.": "Editors can create, edit, and comment on documents.",
|
||||
"Viewers can only view and comment on documents.": "Viewers can only view and comment on documents.",
|
||||
"Are you sure you want to make {{ userName }} a {{ role }}?": "Are you sure you want to make {{ userName }} a {{ role }}?",
|
||||
"Are you sure you want to make {{ userName }} a {{ role }}?": "Biztos, hogy {{ userName }} tag legyen?",
|
||||
"I understand, delete": "Megértettem, töröljük",
|
||||
"Are you sure you want to permanently delete {{ userName }}? This operation is unrecoverable, consider suspending the user instead.": "Biztos, hogy {{ userName }} véglegesen törölve legyen? Ez a művelet nem vonható vissza, fontolja meg a felfüggesztést helyette.",
|
||||
"Are you sure you want to suspend {{ userName }}? Suspended users will be prevented from logging in.": "Bizthogy, hogy {{ userName }} fel legyen függesztve? A felfüggesztett felhasználók belépni sem tudnak.",
|
||||
@@ -408,8 +411,8 @@
|
||||
"The email will be changed once verified.": "The email will be changed once verified.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "You will receive an email to verify your new address. It must be unique in the workspace.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "A confirmation email will be sent to the new address before it is changed.",
|
||||
"New email": "New email",
|
||||
"Email can't be empty": "Email can't be empty",
|
||||
"New email": "Új e-mail cím",
|
||||
"Email can't be empty": "Az e-mail mező nem lehet üres",
|
||||
"Your import completed": "Your import completed",
|
||||
"Previous match": "Előző találat",
|
||||
"Next match": "Következő találat",
|
||||
@@ -425,11 +428,12 @@
|
||||
"Create a new doc": "Új doku létrehozása",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Add column after",
|
||||
"Add column before": "Add column before",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Beágyazás",
|
||||
"Add column after": "Oszlop hozzáadása utána",
|
||||
"Add column before": "Oszlop hozzáadása előtte",
|
||||
"Add row after": "Add row after",
|
||||
"Add row before": "Add row before",
|
||||
"Add row before": "Oszlop hozzáadása előtte",
|
||||
"Align center": "Középre igazítás",
|
||||
"Align left": "Balra igazítás",
|
||||
"Align right": "Jobbra igazítás",
|
||||
@@ -443,7 +447,7 @@
|
||||
"Comment": "Hozzászólás",
|
||||
"Create link": "Hivatkozás létrehozása",
|
||||
"Sorry, an error occurred creating the link": "Sajnálom, valami hiba merült fel a hivatkozás létrehozása közben",
|
||||
"Create a new child doc": "Create a new child doc",
|
||||
"Create a new child doc": "Új doku létrehozása",
|
||||
"Delete table": "Táblázat törlése",
|
||||
"Delete file": "Fájl törlése",
|
||||
"Download file": "Fájl letöltése",
|
||||
@@ -484,10 +488,10 @@
|
||||
"Strikethrough": "Áthúzott",
|
||||
"Bold": "Félkövér",
|
||||
"Subheading": "Alcím",
|
||||
"Sort ascending": "Sort ascending",
|
||||
"Sort descending": "Sort descending",
|
||||
"Sort ascending": "Rendezés növekvő sorrendben",
|
||||
"Sort descending": "Rendezés csökkenő sorrendben",
|
||||
"Table": "Táblázat",
|
||||
"Export as CSV": "Export as CSV",
|
||||
"Export as CSV": "CSV exportálás",
|
||||
"Toggle header": "Toggle header",
|
||||
"Math inline (LaTeX)": "Matek képlet a sorban (LaTeX)",
|
||||
"Math block (LaTeX)": "Matek blokk (LaTeX)",
|
||||
@@ -503,9 +507,10 @@
|
||||
"Indent": "Behúzás növelése",
|
||||
"Outdent": "Behúzás csökkentése",
|
||||
"Video": "Videó",
|
||||
"None": "None",
|
||||
"None": "Nincs",
|
||||
"Could not import file": "Fájl importálása nem lehetséges",
|
||||
"Unsubscribed from document": "Leiratkozott a dokumentumról",
|
||||
"Unsubscribed from collection": "Leiratkozott a dokumentumról",
|
||||
"Account": "Fiók",
|
||||
"API Keys": "API Keys",
|
||||
"Details": "Megjelenés",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Csoportok",
|
||||
"Shared Links": "Megosztott hivatkozások",
|
||||
"Import": "Importálás",
|
||||
"Self Hosted": "Saját üzemeltetésű",
|
||||
"Integrations": "Integrációk",
|
||||
"Revoke token": "Token visszavonása",
|
||||
"Revoke": "Visszavonás",
|
||||
@@ -530,20 +534,23 @@
|
||||
"Manual sort": "Egyedi sorrend",
|
||||
"Comment options": "Hozzászólás beállítások",
|
||||
"Show document menu": "Show document menu",
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"{{ documentName }} restored": "{{ documentName}} visszaállította",
|
||||
"Document options": "Dokumentum beállítások",
|
||||
"Choose a collection": "Válasszon egy gyűjteményt",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "Beágyazások engedélyezése",
|
||||
"Export options": "Exportálási beállítások",
|
||||
"Group members": "Csoport tagok",
|
||||
"Edit group": "Csoport szerkesztése",
|
||||
"Delete group": "Csoport törlése",
|
||||
"Group options": "Csoport beállítások",
|
||||
"Cancel": "Mégse",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Tag beállítások",
|
||||
"New document in <em>{{ collectionName }}</em>": "Új dokumentum a(z) <em>{{ collectionName }}</em> gyűjteményben.",
|
||||
"New child document": "Új gyermek dokumentum",
|
||||
"Save in workspace": "Save in workspace",
|
||||
"Notification settings": "Notification settings",
|
||||
"Notification settings": "Értesítési beállítások",
|
||||
"Revision options": "Revízió beállítások",
|
||||
"Share link revoked": "Hivatkozás megosztás visszavonva",
|
||||
"Share link copied": "Megosztási hivatkozás másolva",
|
||||
@@ -554,11 +561,11 @@
|
||||
"Headings you add to the document will appear here": "A dokumentumhoz adott főcímek itt jelennek meg",
|
||||
"Table of contents": "Tartalomjegyzék",
|
||||
"Change name": "Név módosítása",
|
||||
"Change email": "Change email",
|
||||
"Change email": "Email-cím megváltoztatása",
|
||||
"Suspend user": "Felfüggesztett felhasználó",
|
||||
"An error occurred while sending the invite": "Valami hiba történt a meghívó küldése közben",
|
||||
"User options": "Felhasználó beállításai",
|
||||
"Change role": "Change role",
|
||||
"Change role": "Szerep módosítása",
|
||||
"Resend invite": "Meghívó újraküldése",
|
||||
"Revoke invite": "Meghívó visszavonása",
|
||||
"Activate user": "Felhasználó aktiválása",
|
||||
@@ -572,9 +579,9 @@
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"shared": "megosztva",
|
||||
"invited you to": "invited you to",
|
||||
"Choose a date": "Choose a date",
|
||||
"Choose a date": "Válassz dátumot",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API key created. Please copy the value now as it will not be shown again.",
|
||||
"Scopes": "Scopes",
|
||||
"Scopes": "Hatáskörök",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access",
|
||||
"Expiration": "Expiration",
|
||||
"Never expires": "Never expires",
|
||||
@@ -598,7 +605,7 @@
|
||||
"{{ groupsCount }} groups with access_plural": "{{ groupsCount }} csoport rendelkezik hozzáféréssel",
|
||||
"Archived by {{userName}}": "Archiválta: {{userName}}",
|
||||
"Share": "Megosztás",
|
||||
"Overview": "Overview",
|
||||
"Overview": "Áttekintés",
|
||||
"Recently updated": "Nemrég módosítva",
|
||||
"Recently published": "Nemrég publikálva",
|
||||
"Least recently updated": "Legrégebben módosított",
|
||||
@@ -606,26 +613,25 @@
|
||||
"Signing in": "Bejelentkezés",
|
||||
"You can safely close this window once the Outline desktop app has opened": "You can safely close this window once the Outline desktop app has opened",
|
||||
"Error creating comment": "Error creating comment",
|
||||
"Add a comment": "Add a comment",
|
||||
"Add a comment": "Megjegyzés hozzáadása",
|
||||
"Add a reply": "Válasz hozzáadása",
|
||||
"Reply": "Válasz",
|
||||
"Post": "Post",
|
||||
"Cancel": "Cancel",
|
||||
"Upload image": "Upload image",
|
||||
"Post": "Hozzászólás",
|
||||
"Upload image": "Kép feltöltése",
|
||||
"No resolved comments": "No resolved comments",
|
||||
"No comments yet": "No comments yet",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"No comments yet": "Még nincsenek hozzászólások",
|
||||
"New comments": "Új megjegyzések",
|
||||
"Most recent": "Legújabb",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Resolved": "Megoldva",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Error updating comment",
|
||||
"Document restored": "Dokumentum visszaállítva",
|
||||
"Images are still uploading.\nAre you sure you want to discard them?": "Images are still uploading.\nAre you sure you want to discard them?",
|
||||
"{{ count }} comment": "{{ count }} comment",
|
||||
"{{ count }} comment_plural": "{{ count }} comments",
|
||||
"{{ count }} comment": "{{ count }} tag",
|
||||
"{{ count }} comment_plural": "{{ count }} tag",
|
||||
"Viewed by": "Viewed by",
|
||||
"only you": "only you",
|
||||
"person": "személy",
|
||||
@@ -637,12 +643,12 @@
|
||||
"Edit {{noun}}": "Edit {{noun}}",
|
||||
"Switch to dark": "Switch to dark",
|
||||
"Switch to light": "Switch to light",
|
||||
"Archived": "Archived",
|
||||
"Archived": "Archiválva",
|
||||
"Save draft": "Piszkozat mentése",
|
||||
"Done editing": "Done editing",
|
||||
"Done editing": "Változtatások mentése",
|
||||
"Restore version": "Verzió visszaállítása",
|
||||
"No history yet": "Még nincsenek előzmények",
|
||||
"Source": "Source",
|
||||
"Source": "Forrás",
|
||||
"Imported from {{ source }}": "Imported from {{ source }}",
|
||||
"Stats": "Statisztikák",
|
||||
"{{ count }} minute read": "{{ count }} perc olvasás",
|
||||
@@ -668,8 +674,8 @@
|
||||
"Viewed {{ count }} times by {{ teamMembers }} people_plural": "Megtekintette {{ teamMembers }} személy {{ count }} alkalommal",
|
||||
"Viewer insights are disabled.": "Viewer insights are disabled.",
|
||||
"Sorry, the last change could not be persisted – please reload the page": "Elnézést, az utolsó változás nem menthető – kérem töltse újra az oldalt",
|
||||
"{{ count }} days": "{{ count }} day",
|
||||
"{{ count }} days_plural": "{{ count }} days",
|
||||
"{{ count }} days": "{{ count }} szó",
|
||||
"{{ count }} days_plural": "{{ count }} szó",
|
||||
"This template will be permanently deleted in <2></2> unless restored.": "Ez a sablon véglegesen törölve lesz <2></2>, hacsak nem álítja vissza.",
|
||||
"This document will be permanently deleted in <2></2> unless restored.": "Ez a dokumentum véglegesen törölve lesz <2></2>, hacsak nem álítja vissza.",
|
||||
"Highlight some text and use the <1></1> control to add placeholders that can be filled out when creating new documents": "Jelöljön ki szöveget, és használja a <1></1> vezérlőt üres mezők hozzáadására, amiket majd ki lehet tölteni új dokumentum létrehozása során",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "No documents found for your filters.",
|
||||
"You’ve not got any drafts at the moment.": "You’ve not got any drafts at the moment.",
|
||||
"Payment Required": "Payment Required",
|
||||
"Not Found": "Not Found",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "We were unable to find the page you’re looking for. Go to the <2>homepage</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Offline",
|
||||
"We were unable to load the document while offline.": "We were unable to load the document while offline.",
|
||||
"Your account has been suspended": "A fiókod felfüggesztésre került",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Sorry, it looks like that sign-in link is no longer valid, please try requesting another.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Your account has been suspended. To re-activate your account, please contact a workspace admin.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "This workspace has been suspended. Please contact support to restore access.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Authentication failed – this login method was disabled by a team admin.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "Login",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Or",
|
||||
"Already have an account? Go to <1>login</1>.": "Already have an account? Go to <1>login</1>.",
|
||||
"Any collection": "Any collection",
|
||||
"Any time": "Any time",
|
||||
"All time": "All time",
|
||||
"Past day": "Past day",
|
||||
"Past week": "Past week",
|
||||
"Past month": "Past month",
|
||||
"Past year": "Past year",
|
||||
"Any time": "Any time",
|
||||
"Remove document filter": "Remove document filter",
|
||||
"Any status": "Any status",
|
||||
"Remove search": "Remove search",
|
||||
"Any author": "Any author",
|
||||
"Author": "Author",
|
||||
"We were unable to find the page you’re looking for.": "We were unable to find the page you’re looking for.",
|
||||
"Search titles only": "Search titles only",
|
||||
"Something went wrong": "Something went wrong",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Nincs több hozzáadható személy",
|
||||
"Date created": "Date created",
|
||||
"Upload": "Feltöltés",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Uploading",
|
||||
"How does this work?": "How does this work?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload",
|
||||
"Where do I find the file?": "Where do I find the file?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Drag and drop the zip file from Notion's HTML export option, or click to upload",
|
||||
"Last active": "Last active",
|
||||
"Guest": "Vendég",
|
||||
"Shared by": "Megosztotta: ",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Szerkesztők",
|
||||
"All status": "All status",
|
||||
"Active": "Active",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Settings saved": "Settings saved",
|
||||
"Logo updated": "Logo updated",
|
||||
"Unable to upload new logo": "Unable to upload new logo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Show your team’s logo on public pages like login and shared documents.",
|
||||
"Table of contents position": "Table of contents position",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Behavior": "Behavior",
|
||||
"Subdomain": "Subdomain",
|
||||
"Your workspace will be accessible at": "Your workspace will be accessible at",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Choose a subdomain to enable a login page just for your team.",
|
||||
"Start view": "Start view",
|
||||
"This is the screen that workspace members will first see when they sign in.": "This is the screen that workspace members will first see when they sign in.",
|
||||
"Danger": "Veszély",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "You can delete this entire workspace including collections, documents, and users.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "New group",
|
||||
"Groups can be used to organize and manage the people on your team.": "Groups can be used to organize and manage the people on your team.",
|
||||
"No groups have been created yet": "No groups have been created yet",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)",
|
||||
"Import data": "Import data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Import a JSON data file exported from another {{ appName }} instance",
|
||||
"Import pages exported from Notion": "Import pages exported from Notion",
|
||||
"Import pages from a Confluence instance": "Import pages from a Confluence instance",
|
||||
"Enterprise": "Enterprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.",
|
||||
"Recent imports": "Recent imports",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Allow editors to create new collections within the workspace",
|
||||
"Workspace creation": "Workspace creation",
|
||||
"Allow editors to create new workspaces": "Allow editors to create new workspaces",
|
||||
"Draw.io deployment": "Draw.io deployment",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.",
|
||||
"Grist deployment": "Grist deployment",
|
||||
"Add your self-hosted grist installation URL here.": "Add your self-hosted grist installation URL here.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "Sharing is currently disabled.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "You can globally enable and disable public document sharing in the <em>security settings</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
"Site ID": "Site ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Hozzáadás Slackhez",
|
||||
"document published": "dokumentum közzétéve",
|
||||
"document updated": "dokumentum frissítve",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} updated {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "You created {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} created {{ timeAgo }}",
|
||||
"Uploading": "Uploading"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Cari di koleksi",
|
||||
"Star": "Bintangi",
|
||||
"Unstar": "Berhenti membintangi",
|
||||
"Subscribe": "Berlangganan",
|
||||
"Subscribed to document notifications": "Berlangganan pemberitahuan dokumen",
|
||||
"Unsubscribe": "Berhenti berlangganan",
|
||||
"Unsubscribed from document notifications": "Langganan pemberitahuan dokumen telah dihentikan",
|
||||
"Archive": "Arsipkan",
|
||||
"Archive collection": "Archive collection",
|
||||
"Collection archived": "Collection archived",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Terbitkan dokumen",
|
||||
"Unpublish": "Batalkan penerbitan",
|
||||
"Unpublished {{ documentName }}": "Unpublished {{ documentName }}",
|
||||
"Subscribe": "Berlangganan",
|
||||
"Subscribed to document notifications": "Berlangganan pemberitahuan dokumen",
|
||||
"Unsubscribe": "Berhenti berlangganan",
|
||||
"Unsubscribed from document notifications": "Langganan pemberitahuan dokumen telah dihentikan",
|
||||
"Share this document": "Bagikan dokumen ini",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Unduh dokumen",
|
||||
"Copy as Markdown": "Salin sebagai Markdown",
|
||||
"Markdown copied to clipboard": "Markdown copied to clipboard",
|
||||
"Copy as text": "Copy as text",
|
||||
"Text copied to clipboard": "Text copied to clipboard",
|
||||
"Copy public link": "Salin tautan publik",
|
||||
"Link copied to clipboard": "Tautan disalin ke papan klip",
|
||||
"Copy link": "Salin tautan",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Home": "Beranda",
|
||||
"Drafts": "Draf",
|
||||
"Search": "Telusuri",
|
||||
"Trash": "Sampah",
|
||||
"Settings": "Pengaturan",
|
||||
"Profile": "Profil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Update role",
|
||||
"Delete user": "Hapus Pengguna",
|
||||
"Collection": "Koleksi",
|
||||
"Collections": "Koleksi",
|
||||
"Debug": "Debug",
|
||||
"Document": "Dokumen",
|
||||
"Documents": "Dokumen",
|
||||
@@ -194,6 +198,7 @@
|
||||
"Submenu": "Submenu",
|
||||
"Collections could not be loaded, please reload the app": "Koleksi tidak dapat dimuat, harap muat ulang aplikasi",
|
||||
"Default collection": "Koleksi bawaan",
|
||||
"Start view": "Tampilan awal",
|
||||
"Install now": "Pasang sekarang",
|
||||
"Deleted Collection": "Koleksi Dihapus",
|
||||
"Untitled": "Tak Berjudul",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Flags",
|
||||
"Select a color": "Pilih warna",
|
||||
"Loading": "Memuat",
|
||||
"Search": "Telusuri",
|
||||
"Permission": "Permission",
|
||||
"View only": "Hanya melihat",
|
||||
"Can edit": "Can edit",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Archived collections",
|
||||
"New doc": "Dokumen baru",
|
||||
"Empty": "Kosong",
|
||||
"Collections": "Koleksi",
|
||||
"Collapse": "Persingkat",
|
||||
"Expand": "Perlengkap",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Dokumen tidak didukung – coba Markdown, teks biasa, HTML, atau Word",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Buat dokumen baru",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Add column after",
|
||||
"Add column before": "Add column before",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "None",
|
||||
"Could not import file": "Tidak dapat mengimpor berkas",
|
||||
"Unsubscribed from document": "Unsubscribed from document",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "Akun",
|
||||
"API Keys": "API Keys",
|
||||
"Details": "Rincian",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Grup",
|
||||
"Shared Links": "Tautan yang dibagikan",
|
||||
"Import": "Impor",
|
||||
"Self Hosted": "Dihosting sendiri",
|
||||
"Integrations": "Integrasi",
|
||||
"Revoke token": "Cabut token",
|
||||
"Revoke": "Cabut",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"Document options": "Opsi dokumen",
|
||||
"Choose a collection": "Pilih koleksi",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "Aktifkan penyematan",
|
||||
"Export options": "Opsi ekspor",
|
||||
"Group members": "Anggota grup",
|
||||
"Edit group": "Sunting grup",
|
||||
"Delete group": "Hapus grup",
|
||||
"Group options": "Opsi grup",
|
||||
"Cancel": "Batal",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Opsi anggota",
|
||||
"New document in <em>{{ collectionName }}</em>": "Dokumen baru di <em>{{ collectionName }}</em>",
|
||||
"New child document": "Dokumen bersarang baru",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Tambahkan balasan",
|
||||
"Reply": "Balas",
|
||||
"Post": "Posting",
|
||||
"Cancel": "Batal",
|
||||
"Upload image": "Upload image",
|
||||
"No resolved comments": "No resolved comments",
|
||||
"No comments yet": "Belum ada komentar",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Terjadi kesalahan ketika memperbarui komentar",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Tidak ditemukan hasil untuk filter tersebut.",
|
||||
"You’ve not got any drafts at the moment.": "Anda tidak memiliki draf apa pun saat ini.",
|
||||
"Payment Required": "Payment Required",
|
||||
"Not Found": "Tak Ditemukan",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Kami tidak dapat menemukan halaman yang Anda cari. Pergi ke <2>beranda</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Luring",
|
||||
"We were unable to load the document while offline.": "Kami tidak dapat memuat dokumen saat luring.",
|
||||
"Your account has been suspended": "Akun Anda telah disuspen",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Maaf, sepertinya tautan masuk itu sudah tidak valid, coba minta yang lain.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Akun Anda telah ditangguhkan. Untuk mengaktifkan kembali akun Anda, harap hubungi admin ruang kerja.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "This workspace has been suspended. Please contact support to restore access.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Otentikasi gagal – metode masuk ini dinonaktifkan oleh admin tim.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "Workspace yang ingin Anda masuki memerlukan undangan sebelum Anda dapat membuat akun.<1></1> Harap minta undangan dari admin workspace Anda dan coba lagi.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "Masuk",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Atau",
|
||||
"Already have an account? Go to <1>login</1>.": "Sudah punya akun? <1>Masuk</1>.",
|
||||
"Any collection": "Semua koleksi",
|
||||
"Any time": "Kapan pun",
|
||||
"All time": "All time",
|
||||
"Past day": "Kemarin",
|
||||
"Past week": "Minggu lalu",
|
||||
"Past month": "Bulan lalu",
|
||||
"Past year": "Tahun lalu",
|
||||
"Any time": "Kapan pun",
|
||||
"Remove document filter": "Remove document filter",
|
||||
"Any status": "Any status",
|
||||
"Remove search": "Hapus pencarian",
|
||||
"Any author": "Semua penulis",
|
||||
"Author": "Penulis",
|
||||
"We were unable to find the page you’re looking for.": "Kami tidak dapat menemukan halaman yang Anda cari.",
|
||||
"Search titles only": "Cari judul saja",
|
||||
"Something went wrong": "Something went wrong",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Tak ada orang lagi yang dapat ditambahkan",
|
||||
"Date created": "Date created",
|
||||
"Upload": "Unggah",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Mengunggah",
|
||||
"How does this work?": "Bagaimana cara kerjanya?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Anda dapat mengimpor file zip yang sebelumnya diekspor dari opsi JSON di contoh lain. Di {{ appName }}, buka <em>Ekspor</em> di sidebar Pengaturan dan klik <em>Ekspor Data</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Drag and drop file zip dari opsi ekspor JSON di {{appName}}, atau klik untuk mengunggah",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Anda dapat mengimpor file zip yang sebelumnya diekspor dari penginstalan Outline – koleksi, dokumen, dan gambar akan diimpor. Di Outline, buka <em>Export</em> di sidebar Settings dan klik <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Drag and drop file zip dari opsi Markdown export di {{appName}}, atau klik untuk mengunggah",
|
||||
"Where do I find the file?": "Di mana saya menemukan file?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "Di Notion, klik <em>Pengaturan & Anggota</em> di sidebar kiri dan buka Pengaturan. Cari bagian Export, dan klik <em>Export all workspace content</em>. Pilih <em>HTML</em> sebagai format untuk kompatibilitas data terbaik.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Drag and drop file zip dari opsi ekspor HTML Notion, atau klik untuk mengunggah",
|
||||
"Last active": "Terakhir aktif",
|
||||
"Guest": "Guest",
|
||||
"Shared by": "Shared by",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editors",
|
||||
"All status": "All status",
|
||||
"Active": "Aktif",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Settings saved": "Pengaturan disimpan",
|
||||
"Logo updated": "Logo diperbarui",
|
||||
"Unable to upload new logo": "Tidak dapat mengunggah logo baru",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Tampilkan logo tim Anda di halaman publik seperti login dan dokumen bersama.",
|
||||
"Table of contents position": "Table of contents position",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Behavior": "Perilaku",
|
||||
"Subdomain": "Subdomain",
|
||||
"Your workspace will be accessible at": "Your workspace will be accessible at",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Pilih subdomain untuk mengaktifkan halaman masuk hanya untuk tim Anda.",
|
||||
"Start view": "Tampilan awal",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Ini adalah layar yang akan dilihat pertama kali oleh anggota workspace saat mereka masuk.",
|
||||
"Danger": "Danger",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "You can delete this entire workspace including collections, documents, and users.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "Grup baru",
|
||||
"Groups can be used to organize and manage the people on your team.": "Grup dapat digunakan untuk mengatur dan mengelola orang-orang di tim Anda.",
|
||||
"No groups have been created yet": "Belum ada grup yang dibuat",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfer dokumen, halaman, dan file Anda dengan cepat dari alat dan layanan lain ke {{appName}}. Anda juga dapat drag and drop dokumen HTML, Markdown, dan teks apa pun langsung ke Koleksi di aplikasi.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Impor file zip dokumen Markdown (diekspor dari versi 0.67.0 atau sebelumnya)",
|
||||
"Import data": "Impor data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Impor file data JSON yang diekspor dari instance {{ appName }} lainnya",
|
||||
"Import pages exported from Notion": "Impor halaman yang diekspor dari Notion",
|
||||
"Import pages from a Confluence instance": "Impor halaman dari instansi Confluence",
|
||||
"Enterprise": "Enterprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfer dokumen, halaman, dan file Anda dengan cepat dari alat dan layanan lain ke {{appName}}. Anda juga dapat drag and drop dokumen HTML, Markdown, dan teks apa pun langsung ke Koleksi di aplikasi.",
|
||||
"Recent imports": "Impor terbaru",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Allow editors to create new collections within the workspace",
|
||||
"Workspace creation": "Workspace creation",
|
||||
"Allow editors to create new workspaces": "Allow editors to create new workspaces",
|
||||
"Draw.io deployment": "Deploy Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Tambahkan url penginstalan draw.io yang dihosting sendiri di sini untuk mengaktifkan penyematan otomatis diagram di dalam dokumen.",
|
||||
"Grist deployment": "Grist deployment",
|
||||
"Add your self-hosted grist installation URL here.": "Add your self-hosted grist installation URL here.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "Berbagi saat ini dinonaktifkan.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Anda dapat mengaktifkan dan menonaktifkan berbagi dokumen publik secara global di <em>pengaturan keamanan</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
"Site ID": "Site ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Tambahkan ke Slack",
|
||||
"document published": "dokumen diterbitkan",
|
||||
"document updated": "dokumen diperbarui",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} updated {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "You created {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} created {{ timeAgo }}",
|
||||
"Uploading": "Mengunggah"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Cerca nella raccolta",
|
||||
"Star": "Preferito",
|
||||
"Unstar": "Rimuovi dai Preferiti",
|
||||
"Subscribe": "Iscriviti",
|
||||
"Subscribed to document notifications": "Ti sei iscritto alle notifiche del documento",
|
||||
"Unsubscribe": "Annulla iscrizione",
|
||||
"Unsubscribed from document notifications": "Hai annullato l'iscrizione alle notifiche del documento",
|
||||
"Archive": "Archivio",
|
||||
"Archive collection": "Archivia raccolta",
|
||||
"Collection archived": "Raccolta archiviata",
|
||||
@@ -22,11 +26,11 @@
|
||||
"Delete collection": "Elimina raccolta",
|
||||
"New template": "Nuovo modello",
|
||||
"Delete comment": "Cancella commento",
|
||||
"Mark as resolved": "Mark as resolved",
|
||||
"Thread resolved": "Thread resolved",
|
||||
"Mark as unresolved": "Mark as unresolved",
|
||||
"View reactions": "View reactions",
|
||||
"Reactions": "Reactions",
|
||||
"Mark as resolved": "Segna come risolto",
|
||||
"Thread resolved": "Discussione risolta",
|
||||
"Mark as unresolved": "Segna come irrisolto",
|
||||
"View reactions": "Vedi reazioni",
|
||||
"Reactions": "Reazioni",
|
||||
"Copy ID": "Copia ID",
|
||||
"Clear IndexedDB cache": "Pulisci cache IndexedDB",
|
||||
"IndexedDB cache cleared": "Cache IndexedDB pulita",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "Sviluppo",
|
||||
"Open document": "Apri documento",
|
||||
"New document": "Nuovo documento",
|
||||
"New draft": "New draft",
|
||||
"New draft": "Nuova bozza",
|
||||
"New from template": "Nuovo da template",
|
||||
"New nested document": "Nuovo documento annidato",
|
||||
"Publish": "Pubblica",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Pubblica documento",
|
||||
"Unpublish": "Depubblica",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} ritirato",
|
||||
"Subscribe": "Iscriviti",
|
||||
"Subscribed to document notifications": "Ti sei iscritto alle notifiche del documento",
|
||||
"Unsubscribe": "Annulla iscrizione",
|
||||
"Unsubscribed from document notifications": "Hai annullato l'iscrizione alle notifiche del documento",
|
||||
"Share this document": "Condividi documento",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Scarica documento",
|
||||
"Copy as Markdown": "Copia come Markdown",
|
||||
"Markdown copied to clipboard": "Markdown copiato negli appunti",
|
||||
"Copy as text": "Copia come testo",
|
||||
"Text copied to clipboard": "Testo copiato negli appunti",
|
||||
"Copy public link": "Copia link pubblico",
|
||||
"Link copied to clipboard": "Link copiato negli appunti",
|
||||
"Copy link": "Copia link",
|
||||
@@ -93,13 +95,14 @@
|
||||
"Comments": "Commenti",
|
||||
"History": "Cronologia",
|
||||
"Insights": "Statistiche",
|
||||
"Disable viewer insights": "Disable viewer insights",
|
||||
"Enable viewer insights": "Enable viewer insights",
|
||||
"Leave document": "Leave document",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Disable viewer insights": "Disabilitare le informazioni sullo spettatore",
|
||||
"Enable viewer insights": "Abilita gli approfondimenti sugli spettatori",
|
||||
"Leave document": "Lascia il documento",
|
||||
"You have left the shared document": "Hai lasciato il documento condiviso",
|
||||
"Could not leave document": "Impossibile lasciare il documento",
|
||||
"Home": "Home",
|
||||
"Drafts": "Bozze",
|
||||
"Search": "Cerca",
|
||||
"Trash": "Cestino",
|
||||
"Settings": "Impostazioni",
|
||||
"Profile": "Profilo",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Aggiorna ruolo",
|
||||
"Delete user": "Elimina utente",
|
||||
"Collection": "Raccolta",
|
||||
"Collections": "Raccolta",
|
||||
"Debug": "Debug",
|
||||
"Document": "Documento",
|
||||
"Documents": "Documenti",
|
||||
@@ -169,7 +173,7 @@
|
||||
"Sorry, an error occurred saving the collection": "Spiacenti, si è verificato un errore durante il salvataggio della raccolta",
|
||||
"Add a description": "Aggiungi una descrizione",
|
||||
"Type a command or search": "Digita un comando o cerca",
|
||||
"Choose a template": "Choose a template",
|
||||
"Choose a template": "Scegli un modello",
|
||||
"Are you sure you want to permanently delete this entire comment thread?": "Sei sicuro di voler eliminare definitivamente l'intero thread di commenti?",
|
||||
"Are you sure you want to permanently delete this comment?": "Sei sicuro di voler eliminare definitivamente questo commento?",
|
||||
"Confirm": "Conferma",
|
||||
@@ -177,33 +181,34 @@
|
||||
"view and edit access": "lettura e scrittura",
|
||||
"view only access": "sola lettura",
|
||||
"no access": "nessun accesso",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "Non hai l'autorizzazione per spostare {{ documentName }} nella raccolta {{ collectionName }}",
|
||||
"Move document": "Sposta il documento",
|
||||
"Moving": "Spostamento",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Spostare il documento <em>{{ title }}</em> alla raccolta {{ newCollectionName }} cambierà i permessi per tutti i membri dello spazio di lavoro da <em>{{ prevPermission }}</em> a <em>{{ newPermission }}</em>.",
|
||||
"Document is too large": "Il documento è troppo grande",
|
||||
"This document has reached the maximum size and can no longer be edited": "Questo documento ha raggiunto la dimensione massima e non può più essere modificato",
|
||||
"Authentication failed": "Authentication failed",
|
||||
"Please try logging out and back in again": "Please try logging out and back in again",
|
||||
"Authorization failed": "Authorization failed",
|
||||
"You may have lost access to this document, try reloading": "You may have lost access to this document, try reloading",
|
||||
"Too many users connected to document": "Too many users connected to document",
|
||||
"Your edits will sync once other users leave the document": "Your edits will sync once other users leave the document",
|
||||
"Authentication failed": "Autenticazione non riuscita",
|
||||
"Please try logging out and back in again": "Prova a disconnetterti e a riconnetterti di nuovo",
|
||||
"Authorization failed": "Autorizzazione fallita",
|
||||
"You may have lost access to this document, try reloading": "Potresti aver perso l'accesso a questo documento, prova a ricaricarlo",
|
||||
"Too many users connected to document": "Troppi utenti connessi al documento",
|
||||
"Your edits will sync once other users leave the document": "Le tue modifiche verranno sincronizzate non appena gli altri utenti avranno lasciato il documento",
|
||||
"Server connection lost": "Connessione al server interrotta",
|
||||
"Edits you make will sync once you’re online": "Le modifiche apportate verranno sincronizzate una volta che sarai online",
|
||||
"Submenu": "Sottomenu",
|
||||
"Collections could not be loaded, please reload the app": "Impossibile caricare le raccolte, per favore ricarica l'app",
|
||||
"Default collection": "Raccolta predefinita",
|
||||
"Install now": "Install now",
|
||||
"Start view": "Schermata iniziale",
|
||||
"Install now": "Installa ora",
|
||||
"Deleted Collection": "Raccolte Eliminate",
|
||||
"Untitled": "Senza titolo",
|
||||
"Unpin": "Rimuovi contrassegno",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"Include nested documents": "Include nested documents",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
"{{ minutes }}m read": "{{ minutes }} minuti di lettura",
|
||||
"Select a location to copy": "Seleziona una posizione da copiare",
|
||||
"Document copied": "Documento copiato",
|
||||
"Couldn’t copy the document, try again?": "Non è stato possibile copiare il documento. Riprovare?",
|
||||
"Include nested documents": "Includi documenti nidificati",
|
||||
"Copy to <em>{{ location }}</em>": "copia in",
|
||||
"Search collections & documents": "Cerca raccolte e documenti",
|
||||
"No results found": "Nessun risultato trovato",
|
||||
"New": "Nuovo",
|
||||
@@ -233,7 +238,7 @@
|
||||
"{{ completed }} of {{ total }} tasks": "{{ completed }} di {{ total }} attività",
|
||||
"Currently editing": "Attualemente in modifica",
|
||||
"Currently viewing": "Attualmente visualizzato",
|
||||
"Viewed {{ timeAgo }}": "Viewed {{ timeAgo }}",
|
||||
"Viewed {{ timeAgo }}": "Visualizzato",
|
||||
"Module failed to load": "Caricamento del modulo fallito",
|
||||
"Loading Failed": "Caricamento fallito",
|
||||
"Sorry, part of the application failed to load. This may be because it was updated since you opened the tab or because of a failed network request. Please try reloading.": "Spiacenti, parte dell'applicazione non si è caricata correttamente. È possibile che sia stata aggiornata da quando hai aperto la scheda oppure è fallita una richiesta di rete. Si prega di ricaricare la pagina.",
|
||||
@@ -241,14 +246,14 @@
|
||||
"Something Unexpected Happened": "È successo qualcosa di imprevisto",
|
||||
"Sorry, an unrecoverable error occurred{{notified}}. Please try reloading the page, it may have been a temporary glitch.": "Spiacenti, si è verificato un errore irreversibile{{notified}}. Prova a ricaricare la pagina, potrebbe essere un problema temporaneo.",
|
||||
"our engineers have been notified": "i nostri ingegneri sono stati informati",
|
||||
"Show detail": "Show detail",
|
||||
"Show detail": "Mostra dettagli",
|
||||
"Current version": "Versione corrente",
|
||||
"{{userName}} edited": "{{userName}} modificato",
|
||||
"{{userName}} archived": "{{userName}} archiviato",
|
||||
"{{userName}} restored": "{{userName}} recuperato",
|
||||
"{{userName}} deleted": "{{userName}} eliminato",
|
||||
"{{userName}} added {{addedUserName}}": "{{userName}} added {{addedUserName}}",
|
||||
"{{userName}} removed {{removedUserName}}": "{{userName}} removed {{removedUserName}}",
|
||||
"{{userName}} added {{addedUserName}}": "Aggiunto",
|
||||
"{{userName}} removed {{removedUserName}}": "Rimosso",
|
||||
"{{userName}} moved from trash": "{{userName}} spostato dal cestino",
|
||||
"{{userName}} published": "{{userName}} pubblicato",
|
||||
"{{userName}} unpublished": "{{userName}} ha annullato la pubblicazione",
|
||||
@@ -263,36 +268,35 @@
|
||||
"Exporting the collection <em>{{collectionName}}</em> may take some time.": "Esportare la raccolta <em>{{collectionName}}</em> potrebbe richiedere del tempo.",
|
||||
"You will receive an email when it's complete.": "Riceverai un'email quando sarà completata.",
|
||||
"Include attachments": "Includi allegati",
|
||||
"Including uploaded images and files in the exported data": "Including uploaded images and files in the exported data",
|
||||
"Including uploaded images and files in the exported data": "Includere immagini e file caricati nei dati esportati",
|
||||
"Filter": "Filtro",
|
||||
"No results": "Nessun risultato",
|
||||
"{{authorName}} created <3></3>": "{{authorName}} created <3></3>",
|
||||
"{{authorName}} opened <3></3>": "{{authorName}} opened <3></3>",
|
||||
"Search emoji": "Search emoji",
|
||||
"Search icons": "Search icons",
|
||||
"Choose default skin tone": "Choose default skin tone",
|
||||
"{{authorName}} created <3></3>": "Creato\n\n\n\n\n\n\n\n",
|
||||
"{{authorName}} opened <3></3>": "Aperto",
|
||||
"Search emoji": "Cerca emoji",
|
||||
"Search icons": "Cerca icone",
|
||||
"Choose default skin tone": "Scegli il tono di pelle predefinito",
|
||||
"Show menu": "Mostra menu",
|
||||
"Icon Picker": "Icon Picker",
|
||||
"Icons": "Icons",
|
||||
"Emojis": "Emojis",
|
||||
"Icon Picker": "Selettore di icone",
|
||||
"Icons": "Icone",
|
||||
"Emojis": "Emoji",
|
||||
"Remove": "Elimina",
|
||||
"All": "Tutto",
|
||||
"Frequently Used": "Frequently Used",
|
||||
"Frequently Used": "Usato frequentemente",
|
||||
"Search Results": "Risultati ricerca",
|
||||
"Smileys & People": "Smileys & People",
|
||||
"Animals & Nature": "Animals & Nature",
|
||||
"Food & Drink": "Food & Drink",
|
||||
"Activity": "Activity",
|
||||
"Smileys & People": "Faccine e persone",
|
||||
"Animals & Nature": "Animali e natura",
|
||||
"Food & Drink": "Cibo e bevande",
|
||||
"Activity": "Attività",
|
||||
"Travel & Places": "Viaggi & Luoghi",
|
||||
"Objects": "Objects",
|
||||
"Symbols": "Symbols",
|
||||
"Flags": "Flags",
|
||||
"Objects": "Oggetti",
|
||||
"Symbols": "Simboli",
|
||||
"Flags": "Bandiere",
|
||||
"Select a color": "Seleziona un colore",
|
||||
"Loading": "Caricamento in corso",
|
||||
"Search": "Cerca",
|
||||
"Permission": "Permessi",
|
||||
"View only": "Visualizza soltanto",
|
||||
"Can edit": "Can edit",
|
||||
"Can edit": "Può modificare",
|
||||
"No access": "Accesso negato",
|
||||
"Default access": "Accesso predefinito",
|
||||
"Change Language": "Cambia Lingua",
|
||||
@@ -301,27 +305,27 @@
|
||||
"Sorry, an error occurred.": "Spiacenti, si è verificato un errore.",
|
||||
"Click to retry": "Clicca per riprovare",
|
||||
"Back": "Indietro",
|
||||
"Unknown": "Unknown",
|
||||
"Unknown": "Sconosciuto",
|
||||
"Mark all as read": "Contrassegna tutto come letto",
|
||||
"You're all caught up": "You're all caught up",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reacted with {{ emoji }}",
|
||||
"You're all caught up": "Sei completamente aggiornato",
|
||||
"{{ username }} reacted with {{ emoji }}": "Reagito con",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"Add reaction": "Add reaction",
|
||||
"Reaction picker": "Reaction picker",
|
||||
"Could not load reactions": "Could not load reactions",
|
||||
"Reaction": "Reaction",
|
||||
"Add reaction": "Aggiungi reazione",
|
||||
"Reaction picker": "Selettore di reazione",
|
||||
"Could not load reactions": "Impossibile caricare le reazioni",
|
||||
"Reaction": "Reazione",
|
||||
"Results": "Risultati",
|
||||
"No results for {{query}}": "Nessun risultato per {{query}}",
|
||||
"Manage": "Manage",
|
||||
"Manage": "Gestisci",
|
||||
"All members": "Tutti i membri",
|
||||
"Everyone in the workspace": "Everyone in the workspace",
|
||||
"Everyone in the workspace": "Tutti nel workspace",
|
||||
"{{ count }} member": "{{ count }} membro",
|
||||
"{{ count }} member_plural": "{{ count }} membri",
|
||||
"Invite": "Invite",
|
||||
"Invite": "Invita",
|
||||
"{{ userName }} was added to the collection": "{{ userName }} stato aggiunto alla raccolta",
|
||||
"{{ count }} people added to the collection": "{{ count }} people added to the collection",
|
||||
"{{ count }} people added to the collection": "Persone aggiunte alla collezione",
|
||||
"{{ count }} people added to the collection_plural": "{{ count }} people added to the collection",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection": "{{ count }} people and {{ count2 }} groups added to the collection",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection_plural": "{{ count }} people and {{ count2 }} groups added to the collection",
|
||||
@@ -329,17 +333,17 @@
|
||||
"Add or invite": "Aggiungi o invita",
|
||||
"Viewer": "Visualizzatore",
|
||||
"Editor": "Editor",
|
||||
"Suggestions for invitation": "Suggestions for invitation",
|
||||
"Suggestions for invitation": "Suggerimenti per l'invito",
|
||||
"No matches": "Nessun risultato",
|
||||
"Can view": "Can view",
|
||||
"Everyone in the collection": "Everyone in the collection",
|
||||
"You have full access": "You have full access",
|
||||
"Can view": "Può visualizzare",
|
||||
"Everyone in the collection": "Tutti nella collezione",
|
||||
"You have full access": "Hai accesso completo",
|
||||
"Created the document": "ha creato il documento",
|
||||
"Other people": "Other people",
|
||||
"Other workspace members may have access": "Other workspace members may have access",
|
||||
"Other people": "Altre persone",
|
||||
"Other workspace members may have access": "Altri membri del workspace potrebbero avere accesso",
|
||||
"This document may be shared with more workspace members through a parent document or collection you do not have access to": "This document may be shared with more workspace members through a parent document or collection you do not have access to",
|
||||
"Access inherited from collection": "Access inherited from collection",
|
||||
"{{ userName }} was removed from the document": "{{ userName }} was removed from the document",
|
||||
"Access inherited from collection": "Accesso ereditato dalla collezione",
|
||||
"{{ userName }} was removed from the document": "È stato rimosso dal documento",
|
||||
"Could not remove user": "Impossibile eliminare l'utente",
|
||||
"Permissions for {{ userName }} updated": "Permissions for {{ userName }} updated",
|
||||
"Could not update user": "Impossibile aggiornare l'utente",
|
||||
@@ -348,73 +352,72 @@
|
||||
"Invited": "Invitato",
|
||||
"Active <1></1> ago": "Attivo <1></1> fa",
|
||||
"Never signed in": "Mai effettuato l'accesso",
|
||||
"Leave": "Leave",
|
||||
"Leave": "Lascia",
|
||||
"Only lowercase letters, digits and dashes allowed": "Sono consentite solo lettere minuscole, cifre e trattini",
|
||||
"Sorry, this link has already been used": "Spiacenti, questo link è già stato utilizzato",
|
||||
"Public link copied to clipboard": "Public link copied to clipboard",
|
||||
"Web": "Web",
|
||||
"Anyone with the link can access because the parent document, <2>{{documentTitle}}</2>, is shared": "Anyone with the link can access because the parent document, <2>{{documentTitle}}</2>, is shared",
|
||||
"Allow anyone with the link to access": "Allow anyone with the link to access",
|
||||
"Allow anyone with the link to access": "Consenti a chiunque abbia il link di accedere",
|
||||
"Publish to internet": "Pubblica su internet",
|
||||
"Search engine indexing": "Search engine indexing",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disable this setting to discourage search engines from indexing the page",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future",
|
||||
"{{ userName }} was added to the document": "{{ userName }} was added to the document",
|
||||
"{{ count }} people added to the document": "{{ count }} people added to the document",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} people added to the document",
|
||||
"{{ count }} groups added to the document": "{{ count }} groups added to the document",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} groups added to the document",
|
||||
"Search engine indexing": "Indicizzazione nei motori di ricerca",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disabilita questa impostazione per scoraggiare i motori di ricerca dall'indicizzare la pagina",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "I documenti nidificati non sono condivisi sul web. Attiva la condivisione per abilitare l'accesso, questo sarà il comportamento predefinito in futuro.\n\n\n\n\n\n\n\n\n",
|
||||
"{{ userName }} was added to the document": "È stato aggiunto al documento",
|
||||
"{{ count }} people added to the document": "È stato aggiunto al documento",
|
||||
"{{ count }} people added to the document_plural": "È stato aggiunto al documento",
|
||||
"{{ count }} groups added to the document": "Gruppi aggiunti al documento",
|
||||
"{{ count }} groups added to the document_plural": "Gruppi aggiunti al documento",
|
||||
"Logo": "Logo",
|
||||
"Archived collections": "Archived collections",
|
||||
"Archived collections": "Collezioni archiviate",
|
||||
"New doc": "Nuovo documento",
|
||||
"Empty": "Vuoto",
|
||||
"Collections": "Raccolta",
|
||||
"Collapse": "Raggruppa",
|
||||
"Expand": "Espandi",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Documento non supportato – prova Markdown, testo semplice, HTML o Word",
|
||||
"Go back": "Torna indietro",
|
||||
"Go forward": "Vai avanti",
|
||||
"Could not load shared documents": "Could not load shared documents",
|
||||
"Shared with me": "Shared with me",
|
||||
"Could not load shared documents": "Impossibile caricare i documenti condivisi",
|
||||
"Shared with me": "Condiviso con me",
|
||||
"Show more": "Mostra altro",
|
||||
"Could not load starred documents": "Could not load starred documents",
|
||||
"Could not load starred documents": "Impossibile caricare i documenti contrassegnati con stelle",
|
||||
"Starred": "Preferiti",
|
||||
"Up to date": "Aggiornato",
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} versione indietro",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} versioni indietro",
|
||||
"Change permissions?": "Change permissions?",
|
||||
"Change permissions?": "Modificare i permessi?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "Non è possibile riordinare i documenti in una raccolta ordinata alfabeticamente",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
"The {{ documentName }} cannot be moved here": "Non può essere spostato qui",
|
||||
"Return to App": "Torna all'applicazione",
|
||||
"Installation": "Installazione",
|
||||
"Unstar document": "Unstar document",
|
||||
"Star document": "Star document",
|
||||
"Template created, go ahead and customize it": "Modello creato, procedi e personalizzalo",
|
||||
"Creating a template from <em>{{titleWithDefault}}</em> is a non-destructive action – we'll make a copy of the document and turn it into a template that can be used as a starting point for new documents.": "Creare un modello da <em>{{titleWithDefault}}</em> è un'azione non distruttiva - faremo una copia del documento e lo convertiremo in un modello, così che potrà essere usato come punto d'inizio per nuovi documenti.",
|
||||
"Published": "Published",
|
||||
"Enable other members to use the template immediately": "Enable other members to use the template immediately",
|
||||
"Location": "Location",
|
||||
"Admins can manage the workspace and access billing.": "Admins can manage the workspace and access billing.",
|
||||
"Editors can create, edit, and comment on documents.": "Editors can create, edit, and comment on documents.",
|
||||
"Viewers can only view and comment on documents.": "Viewers can only view and comment on documents.",
|
||||
"Published": "Pubblicato",
|
||||
"Enable other members to use the template immediately": "Consenti agli altri membri di utilizzare il modello immediatamente",
|
||||
"Location": "Posizione",
|
||||
"Admins can manage the workspace and access billing.": "Gli amministratori possono gestire il workspace e accedere alla fatturazione.\n\n\n\n\n\n\n\n\n",
|
||||
"Editors can create, edit, and comment on documents.": "I redattori possono creare, modificare e commentare i documenti.\n\n\n\n\n\n\n\n\n",
|
||||
"Viewers can only view and comment on documents.": "Gli spettatori possono solo visualizzare e commentare i documenti.",
|
||||
"Are you sure you want to make {{ userName }} a {{ role }}?": "Are you sure you want to make {{ userName }} a {{ role }}?",
|
||||
"I understand, delete": "I understand, delete",
|
||||
"I understand, delete": "Capisco, elimina",
|
||||
"Are you sure you want to permanently delete {{ userName }}? This operation is unrecoverable, consider suspending the user instead.": "Are you sure you want to permanently delete {{ userName }}? This operation is unrecoverable, consider suspending the user instead.",
|
||||
"Are you sure you want to suspend {{ userName }}? Suspended users will be prevented from logging in.": "Sei sicuro di voler sospendere {{ userName }}? Gli utenti sospesi non potranno accedere.",
|
||||
"New name": "New name",
|
||||
"Name can't be empty": "Name can't be empty",
|
||||
"New name": "Nuovo nome",
|
||||
"Name can't be empty": "Il nome non può essere vuoto",
|
||||
"Check your email to verify the new address.": "Check your email to verify the new address.",
|
||||
"The email will be changed once verified.": "The email will be changed once verified.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "You will receive an email to verify your new address. It must be unique in the workspace.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "A confirmation email will be sent to the new address before it is changed.",
|
||||
"New email": "New email",
|
||||
"New email": "Nuova email",
|
||||
"Email can't be empty": "Email can't be empty",
|
||||
"Your import completed": "Your import completed",
|
||||
"Previous match": "Previous match",
|
||||
"Next match": "Next match",
|
||||
"Find and replace": "Find and replace",
|
||||
"Find": "Find",
|
||||
"Find": "Trova",
|
||||
"Match case": "Match case",
|
||||
"Enable regex": "Enable regex",
|
||||
"Replace options": "Replace options",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Crea un nuovo documento",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Add column after",
|
||||
"Add column before": "Add column before",
|
||||
@@ -488,26 +492,27 @@
|
||||
"Sort descending": "Sort descending",
|
||||
"Table": "Tabella",
|
||||
"Export as CSV": "Export as CSV",
|
||||
"Toggle header": "Toggle header",
|
||||
"Toggle header": "Attiva/disattiva Intestazione",
|
||||
"Math inline (LaTeX)": "Matematica espressione in linea (LaTeX)",
|
||||
"Math block (LaTeX)": "Matematica blocco codice (LaTeX)",
|
||||
"Tip": "Suggerimento",
|
||||
"Tip notice": "Nota di suggerimento",
|
||||
"Warning": "Avviso",
|
||||
"Warning notice": "Nota di avviso",
|
||||
"Success": "Success",
|
||||
"Success notice": "Success notice",
|
||||
"Success": "Successo",
|
||||
"Success notice": "",
|
||||
"Current date": "Data corrente",
|
||||
"Current time": "Ora corrente",
|
||||
"Current date and time": "Data e ora correnti",
|
||||
"Indent": "Rientro",
|
||||
"Outdent": "Riduci rientro",
|
||||
"Video": "Video",
|
||||
"None": "None",
|
||||
"None": "Nessuno",
|
||||
"Could not import file": "Impossibile importare il file",
|
||||
"Unsubscribed from document": "Unsubscribed from document",
|
||||
"Unsubscribed from document": "Annullata l'iscrizione al documento",
|
||||
"Unsubscribed from collection": "Annullata l'iscrizione alla raccolta",
|
||||
"Account": "Account",
|
||||
"API Keys": "API Keys",
|
||||
"API Keys": "Chiavi API",
|
||||
"Details": "Dettagli",
|
||||
"Security": "Sicurezza",
|
||||
"Features": "Caratteristiche",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Gruppi",
|
||||
"Shared Links": "Link condivisi",
|
||||
"Import": "Importa",
|
||||
"Self Hosted": "Self Hosted",
|
||||
"Integrations": "Integrazioni",
|
||||
"Revoke token": "Revoca token",
|
||||
"Revoke": "Revoca",
|
||||
@@ -523,27 +527,30 @@
|
||||
"Path to document": "Percorso del documento",
|
||||
"Group member options": "Opzioni membri del gruppo",
|
||||
"Export collection": "Esporta raccolta",
|
||||
"Rename": "Rename",
|
||||
"Rename": "Rinomina",
|
||||
"Sort in sidebar": "Ordina nella barra laterale",
|
||||
"A-Z sort": "A-Z sort",
|
||||
"Z-A sort": "Z-A sort",
|
||||
"A-Z sort": "Ordina da A-Z",
|
||||
"Z-A sort": "Ordina da Z-A",
|
||||
"Manual sort": "Ordinamento manuale",
|
||||
"Comment options": "Opzioni Commento",
|
||||
"Show document menu": "Show document menu",
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"Show document menu": "Mostra menu documento",
|
||||
"{{ documentName }} restored": "{{ documentName }} Ripristinato",
|
||||
"Document options": "Opzioni documento",
|
||||
"Choose a collection": "Scegli una raccolta",
|
||||
"Subscription inherited from collection": "Iscrizione ereditata dalla raccolta",
|
||||
"Enable embeds": "Abilita l'embedding",
|
||||
"Export options": "Opzioni di esportazione",
|
||||
"Group members": "Membri del gruppo",
|
||||
"Edit group": "Modifica gruppo",
|
||||
"Delete group": "Elimina gruppo",
|
||||
"Group options": "Opzioni del gruppo",
|
||||
"Cancel": "Annulla",
|
||||
"Import menu options": "Importa opzioni del menu",
|
||||
"Member options": "Opzioni membro",
|
||||
"New document in <em>{{ collectionName }}</em>": "Nuovo documento in <em>{{ collectionName }}</em>",
|
||||
"New child document": "Nuovo documento annidato",
|
||||
"Save in workspace": "Save in workspace",
|
||||
"Notification settings": "Notification settings",
|
||||
"Save in workspace": "Salva nello spazio di lavoro",
|
||||
"Notification settings": "Impostazioni di notifica",
|
||||
"Revision options": "Opzioni revisione",
|
||||
"Share link revoked": "Link condivisione revocato",
|
||||
"Share link copied": "Link di condivisione copiato",
|
||||
@@ -553,32 +560,32 @@
|
||||
"Contents": "Contenuti",
|
||||
"Headings you add to the document will appear here": "Le intestazioni aggiunte al documento appariranno qui",
|
||||
"Table of contents": "Indice contenuti",
|
||||
"Change name": "Change name",
|
||||
"Change email": "Change email",
|
||||
"Suspend user": "Suspend user",
|
||||
"Change name": "Cambia nome",
|
||||
"Change email": "Cambia email",
|
||||
"Suspend user": "Sospendi utente",
|
||||
"An error occurred while sending the invite": "Si è verificato un errore durante l’invio dell'invito",
|
||||
"User options": "Opzioni utente",
|
||||
"Change role": "Change role",
|
||||
"Change role": "Cambia ruolo",
|
||||
"Resend invite": "Invia nuovamente l'invito",
|
||||
"Revoke invite": "Revoca invito",
|
||||
"Activate user": "Activate user",
|
||||
"template": "template",
|
||||
"document": "document",
|
||||
"published": "published",
|
||||
"Activate user": "Attiva utente",
|
||||
"template": "modello",
|
||||
"document": "documenta",
|
||||
"published": "pubblicato",
|
||||
"edited": "modificato",
|
||||
"created the collection": "created the collection",
|
||||
"mentioned you in": "mentioned you in",
|
||||
"created the collection": "Ha creato la raccolta",
|
||||
"mentioned you in": "Ti ha menzionato in",
|
||||
"left a comment on": "left a comment on",
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"shared": "shared",
|
||||
"invited you to": "invited you to",
|
||||
"invited you to": "Ti ha invitato a",
|
||||
"Choose a date": "Choose a date",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API key created. Please copy the value now as it will not be shown again.",
|
||||
"Scopes": "Scopes",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access",
|
||||
"Expiration": "Expiration",
|
||||
"Never expires": "Never expires",
|
||||
"7 days": "7 days",
|
||||
"7 days": "7 giorni",
|
||||
"30 days": "30 days",
|
||||
"60 days": "60 days",
|
||||
"90 days": "90 days",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Aggiungi una risposta",
|
||||
"Reply": "Rispondi",
|
||||
"Post": "Pubblica",
|
||||
"Cancel": "Annulla",
|
||||
"Upload image": "Upload image",
|
||||
"No resolved comments": "No resolved comments",
|
||||
"No comments yet": "Nessun commento",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Errore durante l'aggiornamento del commento",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Nessun documento trovato per i tuoi filtri.",
|
||||
"You’ve not got any drafts at the moment.": "Al momento non hai bozze.",
|
||||
"Payment Required": "Payment Required",
|
||||
"Not Found": "Non trovato",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Non siamo riusciti a trovare la pagina che stai cercando. Vai alla <2>home page</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Non in linea",
|
||||
"We were unable to load the document while offline.": "Impossibile caricare il documento offline.",
|
||||
"Your account has been suspended": "Il tuo account è stato sospeso",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Spiacenti, sembra che il link di accesso non sia più valido, prova a richiederne un altro.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Il tuo account è stato sospeso. Per riattivare il tuo account, contatta un amministratore dell'area di lavoro.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "This workspace has been suspended. Please contact support to restore access.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Autenticazione non riuscita: questo metodo di accesso è stato disabilitato da un amministratore del team.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "L'area di lavoro a cui stai tentando di accedere richiede un invito prima di poter creare un account.<1></1>Richiedi un invito all'amministratore dell'area di lavoro e riprova.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "Accedi",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "O",
|
||||
"Already have an account? Go to <1>login</1>.": "Hai già un account? Vai al <1>login</1>.",
|
||||
"Any collection": "Qualsiasi raccolta",
|
||||
"Any time": "Qualsiasi momento",
|
||||
"All time": "All time",
|
||||
"Past day": "Ieri",
|
||||
"Past week": "Settimana scorsa",
|
||||
"Past month": "Mese scorso",
|
||||
"Past year": "Anno scorso",
|
||||
"Any time": "Qualsiasi momento",
|
||||
"Remove document filter": "Remove document filter",
|
||||
"Any status": "Any status",
|
||||
"Remove search": "Rimuovi ricerca",
|
||||
"Any author": "Qualsiasi autore",
|
||||
"Author": "Autore",
|
||||
"We were unable to find the page you’re looking for.": "Non abbiamo trovato la pagina che stavi cercando.",
|
||||
"Search titles only": "Cerca solo nei titoli",
|
||||
"Something went wrong": "Something went wrong",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Non sono rimaste persone da aggiungere",
|
||||
"Date created": "Date created",
|
||||
"Upload": "Carica",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Caricamento",
|
||||
"How does this work?": "Come funziona?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "È possibile importare un file zip precedentemente esportato con l'opzione JSON in un'altra istanza. Su {{ appName }} apri <em>Esporta</em> nella barra laterale delle impostazioni e fai clic su <em>Esporta dati</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Trascina e rilascia il file zip dall'export JSON in {{appName}} o fai clic per caricarlo",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "È possibile importare un file zip precedentemente esportato da un'installazione Outline – raccolte, documenti e immagini verranno importate. In Outline, apri <em>Esporta</em> nella barra laterale delle impostazioni e fai clic su <em>Esporta dati</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Trascina e rilascia il file zip dell'export Markdown su {{appName}} o fai clic per caricarlo",
|
||||
"Where do I find the file?": "Dove trovo il file?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "In Notion, fai clic su <em>Settings & Members</em> nella barra laterale sinistra e apri Settings. Cerca la sezione Export content e fai clic su <em>Export all workspace content</em>. Scegli <em>HTML</em> come formato per la migliore compatibilità dei dati.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Trascina e rilascia il file zip dall'export HTML di Notion o fai clic per caricarlo",
|
||||
"Last active": "Ultima attività",
|
||||
"Guest": "Guest",
|
||||
"Shared by": "Shared by",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editors",
|
||||
"All status": "All status",
|
||||
"Active": "Attivo",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Settings saved": "Impostazioni salvate",
|
||||
"Logo updated": "Logo aggiornato",
|
||||
"Unable to upload new logo": "Impossibile caricare il nuovo logo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Mostra il logo del tuo team su pagine pubbliche come login e documenti condivisi.",
|
||||
"Table of contents position": "Table of contents position",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Behavior": "Comportamento",
|
||||
"Subdomain": "Sottodominio",
|
||||
"Your workspace will be accessible at": "Your workspace will be accessible at",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Scegli un sottodominio per abilitare una pagina di accesso solo per il tuo team.",
|
||||
"Start view": "Schermata iniziale",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Questa è la schermata che i membri dell'area di lavoro vedranno per la prima volta quando accedono.",
|
||||
"Danger": "Danger",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "You can delete this entire workspace including collections, documents, and users.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "Nuovo gruppo",
|
||||
"Groups can be used to organize and manage the people on your team.": "I gruppi possono essere utilizzati per organizzare e gestire le persone del tuo team.",
|
||||
"No groups have been created yet": "Non sono stati ancora creati gruppi",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Trasferisci rapidamente documenti, pagine e file esistenti da altri strumenti e servizi verso {{appName}}. Puoi anche trascinare e rilasciare qualsiasi documento HTML, Markdown e di testo direttamente nelle Raccolte.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importa un file zip di documenti Markdown (esportati dalla versione 0.67.0 o precedente)",
|
||||
"Import data": "Importa dati",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importa un file di dati JSON esportato da un'altra istanza {{ appName }}",
|
||||
"Import pages exported from Notion": "Importa pagine esportate da Notion",
|
||||
"Import pages from a Confluence instance": "Importa pagine da un'istanza di Confluence",
|
||||
"Enterprise": "Enterprise",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Trasferisci rapidamente documenti, pagine e file esistenti da altri strumenti e servizi verso {{appName}}. Puoi anche trascinare e rilasciare qualsiasi documento HTML, Markdown e di testo direttamente nelle Raccolte.",
|
||||
"Recent imports": "Importazioni recenti",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Permetti agli editori di creare nuove collezioni nello spazio di lavoro",
|
||||
"Workspace creation": "Workspace creation",
|
||||
"Allow editors to create new workspaces": "Permetti agli editori di creare nuovi spazi di lavoro",
|
||||
"Draw.io deployment": "Distribuzione Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Aggiungi l'URL d'installazione di draw.io per abilitare l'incorporazione automatica dei diagrammi all'interno dei documenti.",
|
||||
"Grist deployment": "Grist deployment",
|
||||
"Add your self-hosted grist installation URL here.": "Add your self-hosted grist installation URL here.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "La condivisione è attualmente disabilitata.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Puoi abilitare e disabilitare globalmente la condivisione di documenti pubblici nelle <em>impostazioni di sicurezza</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
"Site ID": "Site ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Aggiungi a Slack",
|
||||
"document published": "documento pubblicato",
|
||||
"document updated": "documento aggiornato",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} updated {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "You created {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} created {{ timeAgo }}",
|
||||
"Uploading": "Caricamento"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "コレクション内を検索",
|
||||
"Star": "お気に入りに追加",
|
||||
"Unstar": "お気に入りから削除",
|
||||
"Subscribe": "通知を有効にする",
|
||||
"Subscribed to document notifications": "ドキュメントの通知を有効にしました",
|
||||
"Unsubscribe": "通知を無効にする",
|
||||
"Unsubscribed from document notifications": "ドキュメントの通知を無効にしました",
|
||||
"Archive": "アーカイブ",
|
||||
"Archive collection": "コレクションをアーカイブ",
|
||||
"Collection archived": "コレクションをアーカイブしました",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "開発者メニュー",
|
||||
"Open document": "ドキュメントを開く",
|
||||
"New document": "ドキュメントを作成",
|
||||
"New draft": "New draft",
|
||||
"New draft": "新しいドラフト",
|
||||
"New from template": "テンプレートから作成",
|
||||
"New nested document": "このページにドキュメントを作成",
|
||||
"Publish": "公開",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "ドキュメントを公開",
|
||||
"Unpublish": "非公開",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} は非公開です",
|
||||
"Subscribe": "通知を有効にする",
|
||||
"Subscribed to document notifications": "ドキュメントの通知を有効にしました",
|
||||
"Unsubscribe": "通知を無効にする",
|
||||
"Unsubscribed from document notifications": "ドキュメントの通知を無効にしました",
|
||||
"Share this document": "ドキュメントを共有する",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "ドキュメントをダウンロード",
|
||||
"Copy as Markdown": "Markdown 形式でコピー",
|
||||
"Markdown copied to clipboard": "Markdown をクリップボードにコピーしました",
|
||||
"Copy as text": "テキストとしてコピーする",
|
||||
"Text copied to clipboard": "テキストをクリップボードにコピーしました",
|
||||
"Copy public link": "公開リンクをコピー",
|
||||
"Link copied to clipboard": "リンクをクリップボードにコピーしました",
|
||||
"Copy link": "リンクをコピー",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "ドキュメントから退出することができませんでした",
|
||||
"Home": "ホーム",
|
||||
"Drafts": "下書き",
|
||||
"Search": "検索",
|
||||
"Trash": "ゴミ箱",
|
||||
"Settings": "設定",
|
||||
"Profile": "プロフィール",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "ロールを更新",
|
||||
"Delete user": "ユーザーを削除",
|
||||
"Collection": "コレクション",
|
||||
"Collections": "コレクション",
|
||||
"Debug": "デバッグ",
|
||||
"Document": "ドキュメント",
|
||||
"Documents": "ドキュメント",
|
||||
@@ -194,6 +198,7 @@
|
||||
"Submenu": "サブメニュー",
|
||||
"Collections could not be loaded, please reload the app": "コレクションを読み込めませんでした。アプリを再読み込みしてください。",
|
||||
"Default collection": "デフォルトコレクション",
|
||||
"Start view": "起動時の画面",
|
||||
"Install now": "インストールしています",
|
||||
"Deleted Collection": "削除したコレクション",
|
||||
"Untitled": "無題のドキュメント",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "フラグ",
|
||||
"Select a color": "色を選択",
|
||||
"Loading": "ローディング",
|
||||
"Search": "検索",
|
||||
"Permission": "権限",
|
||||
"View only": "表示のみ",
|
||||
"Can edit": "編集可能",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "アーカイブされたコレクション",
|
||||
"New doc": "ドキュメントを新規作成",
|
||||
"Empty": "空",
|
||||
"Collections": "コレクション",
|
||||
"Collapse": "折りたたむ",
|
||||
"Expand": "展開",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "ドキュメントはサポートされていません。\nMarkdown、プレーンテキスト、HTML、または Word をお試しください。",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "ドキュメントを作成",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} はこのドキュメントへのアクセス権限がないため、通知されません",
|
||||
"Keep as link": "リンクとして保持",
|
||||
"Mention": "Mention",
|
||||
"Embed": "埋め込み",
|
||||
"Add column after": "後ろに列を挿入",
|
||||
"Add column before": "前に列を挿入",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "なし",
|
||||
"Could not import file": "ファイルをインポートできませんでした",
|
||||
"Unsubscribed from document": "ドキュメントの通知を解除しました",
|
||||
"Unsubscribed from collection": "コレクションの登録を解除しました",
|
||||
"Account": "アカウント",
|
||||
"API Keys": "APIキー",
|
||||
"Details": "詳細情報",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "グループ",
|
||||
"Shared Links": "共有済みのリンク",
|
||||
"Import": "インポート",
|
||||
"Self Hosted": "セルフホスト",
|
||||
"Integrations": "連携",
|
||||
"Revoke token": "トークンを取り消す",
|
||||
"Revoke": "無効化",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} を復元",
|
||||
"Document options": "ドキュメントオプション",
|
||||
"Choose a collection": "コレクションを選ぶ",
|
||||
"Subscription inherited from collection": "コレクションから継承されたサブスクリプション",
|
||||
"Enable embeds": "埋め込みを有効にする",
|
||||
"Export options": "エクスポートオプション",
|
||||
"Group members": "グループのメンバー",
|
||||
"Edit group": "グループを編集",
|
||||
"Delete group": "グループを削除",
|
||||
"Group options": "グループオプション",
|
||||
"Cancel": "キャンセル",
|
||||
"Import menu options": "インポートメニューオプション",
|
||||
"Member options": "メンバーオプション",
|
||||
"New document in <em>{{ collectionName }}</em>": "<em>{{ collectionName }}</em> にドキュメントを新規作成",
|
||||
"New child document": "新しい子ドキュメント",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "返信を追加",
|
||||
"Reply": "返信する",
|
||||
"Post": "投稿する",
|
||||
"Cancel": "キャンセル",
|
||||
"Upload image": "画像をアップロード",
|
||||
"No resolved comments": "解決済みのコメントはありません",
|
||||
"No comments yet": "コメントはありません",
|
||||
"New comments": "新しいコメント",
|
||||
"Sort comments": "コメントを並べ替える",
|
||||
"Most recent": "最新",
|
||||
"Order in doc": "ドキュメント内の順序",
|
||||
"Resolved": "解決済み",
|
||||
"Sort comments": "コメントを並べ替える",
|
||||
"Show {{ count }} reply": "{{ count }} 件の返信を表示",
|
||||
"Show {{ count }} reply_plural": "{{ count }} 件の返信を表示",
|
||||
"Error updating comment": "コメントの更新中にエラーが発生しました",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "検索結果はありませんでした。",
|
||||
"You’ve not got any drafts at the moment.": "下書きはありません",
|
||||
"Payment Required": "支払いが必要です",
|
||||
"Not Found": "見つかりません",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "お探しのページが見つかりませんでした。<2>ホームページ</2>に戻りますか?",
|
||||
"No access to this doc": "このドキュメントにアクセスできません",
|
||||
"It doesn’t look like you have permission to access this document.": "このドキュメントにアクセスする権限がないようです。",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "オフライン",
|
||||
"We were unable to load the document while offline.": "インターネットに接続していない状態でドキュメントを読み込むことができません。",
|
||||
"Your account has been suspended": "あなたのアカウントは凍結されています。",
|
||||
@@ -769,7 +778,7 @@
|
||||
"Inline code": "インラインコード",
|
||||
"Inline LaTeX": "インライン LaTeX",
|
||||
"Triggers": "トリガー",
|
||||
"Mention users and more": "ユーザーまたはドキュメントにメンション",
|
||||
"Mention users and more": "Mention users and more",
|
||||
"Emoji": "絵文字",
|
||||
"Insert block": "ブロックの挿入",
|
||||
"Sign In": "ログイン",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "このログインリンクは無効になりました。別のリンクを発行してください。",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "あなたのアカウントは凍結されています。アカウントを再度有効にするには、ワークスペース管理者にお問い合わせください。",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "このワークスペースは凍結されています。アクセスを復元するにはサポートにお問い合わせください。",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "認証に失敗しました – このログイン方法はチーム管理者によって無効化されています。",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "アカウントを作成するには、参加しようとしているワークスペースの招待が必要です。 <1></1>ワークスペース管理者に招待をリクエストしてから、もう一度お試しください。",
|
||||
"Sorry, an unknown error occurred.": "申し訳ありません、不明なエラーが発生しました。",
|
||||
"Login": "ログイン",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "または",
|
||||
"Already have an account? Go to <1>login</1>.": "すでにアカウントをお持ちですか?<1>ログイン</1>",
|
||||
"Any collection": "コレクション",
|
||||
"Any time": "全期間",
|
||||
"All time": "All time",
|
||||
"Past day": "一日前",
|
||||
"Past week": "直近1週間",
|
||||
"Past month": "直近1ヶ月",
|
||||
"Past year": "直近1年",
|
||||
"Any time": "全期間",
|
||||
"Remove document filter": "フィルターを解除する",
|
||||
"Any status": "全てのステータス",
|
||||
"Remove search": "検索履歴を削除",
|
||||
"Any author": "全ての作成者",
|
||||
"Author": "作成者",
|
||||
"We were unable to find the page you’re looking for.": "お探しのページが見つかりませんでした。",
|
||||
"Search titles only": "タイトルのみ検索",
|
||||
"Something went wrong": "エラーが発生しました",
|
||||
"Please try again or contact support if the problem persists": "問題が解決しない場合は、もう一度やり直すか、サポートにお問い合わせください",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "追加できる人は存在しません",
|
||||
"Date created": "作成日時",
|
||||
"Upload": "アップロード",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "アップロード中",
|
||||
"How does this work?": "これはどのように機能しますか?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "以前にエクスポートした zip ファイルをインポートできます。 {{ appName }} で、サイドバーの <em>エクスポート画面</em> を開き、 <em>データのエクスポート</em> をクリックします。",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "{{appName}} の JSON エクスポートオプションから zip ファイルをドラッグ&ドロップするか、クリックしてアップロードします",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "以前、 Outline からエクスポートされた zip ファイルをインポートできます。コレクション、ドキュメント、および画像がインポートされます。 設定から、 <em>エクスポート画面</em> を開き、 <em>データのエクスポート</em>をクリックします。",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "{{appName}} の Markdown エクスポートオプションから zip ファイルをドラッグ&ドロップするか、クリックしてアップロードします",
|
||||
"Where do I find the file?": "ファイルはどこにありますか?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "Notion で左側のサイドバーにある <em>設定 & メンバー</em> をクリックし、設定を開きます。 エクスポートセクションを開き、 <em>全てのワークスペースコンテンツをエクスポート</em>をクリックします。データの互換性を得るには、 <em>HTML</em> 形式を選択します。",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Notion の HTML エクスポートオプションから ZIP ファイルをドラッグ&ドロップするか、クリックしてアップロードしてください。",
|
||||
"Last active": "最終ログイン",
|
||||
"Guest": "ゲスト",
|
||||
"Shared by": "共有者",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "編集者",
|
||||
"All status": "全てのステータス",
|
||||
"Active": "アクティブ",
|
||||
"Left": "左",
|
||||
"Right": "右",
|
||||
"Settings saved": "設定が保存されました",
|
||||
"Logo updated": "ロゴが更新されました",
|
||||
"Unable to upload new logo": "ロゴをアップロードできませんでした",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "ログインや共有ドキュメントなどの公開ページにチームのロゴを表示します。",
|
||||
"Table of contents position": "目次位置",
|
||||
"The side to display the table of contents in relation to the main content.": "目次を表示する場所",
|
||||
"Left": "左",
|
||||
"Right": "右",
|
||||
"Behavior": "動作",
|
||||
"Subdomain": "サブドメイン",
|
||||
"Your workspace will be accessible at": "あなたのワークスペースは次のドメインでアクセスできます",
|
||||
"Choose a subdomain to enable a login page just for your team.": "サブドメインを選択して、チーム専用のログインページを有効にします。",
|
||||
"Start view": "起動時の画面",
|
||||
"This is the screen that workspace members will first see when they sign in.": "これは、ワークスペース メンバーが最初にログインしたときに表示される画面です。",
|
||||
"Danger": "危険",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "コレクション、ドキュメント、およびユーザーを含むワークスペース全体を削除できます。",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "新規グループ",
|
||||
"Groups can be used to organize and manage the people on your team.": "グループを使用して、チームのメンバーを整理および管理できます。",
|
||||
"No groups have been created yet": "グループはまだ作成されていません",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "既存のドキュメント、ページ、ファイルを他のツールやサービスから {{appName}} にすばやく転送します。 HTML、Markdown、およびドキュメントをアプリ内のコレクションに直接ドラッグ&ドロップすることもできます。",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Markdown ドキュメント (バージョン 0.67.0 以前からエクスポート) の zip ファイルをインポートする",
|
||||
"Import data": "データのインポート",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "別の {{ appName }} インスタンスからエクスポートされた JSON データファイルをインポートする",
|
||||
"Import pages exported from Notion": "Notion からページをインポートする",
|
||||
"Import pages from a Confluence instance": "Confluence からページをインポートする",
|
||||
"Enterprise": "エンタープライズ",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "既存のドキュメント、ページ、ファイルを他のツールやサービスから {{appName}} にすばやく転送します。 HTML、Markdown、およびドキュメントをアプリ内のコレクションに直接ドラッグ&ドロップすることもできます。",
|
||||
"Recent imports": "最近のインポート",
|
||||
"Could not load members": "メンバーを読み込めませんでした",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "{{appName}} にログインした全員が表示されます。\n{{signinMethods}} でアクセスできるものの、まだログインしていないユーザーが他にもいる可能性があります。",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "編集者がワークスペース内にコレクションを作成することを許可する",
|
||||
"Workspace creation": "ワークスペースの作成",
|
||||
"Allow editors to create new workspaces": "編集者にワークスペースの作成を許可します",
|
||||
"Draw.io deployment": "Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "セルフホストの draw.io URLを追加して、ドキュメント内の図の自動埋め込みを有効にします。",
|
||||
"Grist deployment": "Grist",
|
||||
"Add your self-hosted grist installation URL here.": "セルフホストしている Grist の URL をここに追加してください。",
|
||||
"Could not load shares": "共有を読み込めませんでした",
|
||||
"Sharing is currently disabled.": "共有は現在無効になっています",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "<em>セキュリティ設定</em> で公開ドキュメントの共有をグローバルに有効/無効にすることができます。",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "Matomo インスタンスの URL\nMatomo クラウドを利用している場合の URL は matomo.cloud/ で終わります。",
|
||||
"Site ID": "サイト ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Matomo インスタンスでウェブサイトを一意に識別する ID",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Slack に追加",
|
||||
"document published": "ドキュメントを公開",
|
||||
"document updated": "ドキュメントが更新されました",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} が {{ timeAgo }} に更新しました",
|
||||
"You created {{ timeAgo }}": "あなたが {{ timeAgo }} に作成しました",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} が {{ timeAgo }} に作成しました",
|
||||
"Uploading": "アップロード中"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,11 +11,15 @@
|
||||
"Search in collection": "컬렉션 검색",
|
||||
"Star": "중요 문서 표시",
|
||||
"Unstar": "중요 문서 해제",
|
||||
"Subscribe": "구독",
|
||||
"Subscribed to document notifications": "문서에 대해 알림 구독됨",
|
||||
"Unsubscribe": "구독 해제",
|
||||
"Unsubscribed from document notifications": "문서에 대해 알림 구독 해제됨",
|
||||
"Archive": "보관",
|
||||
"Archive collection": "아카이브 컬렉션",
|
||||
"Collection archived": "컬렉션 아카이브됨",
|
||||
"Archiving": "보관",
|
||||
"Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.": "이 컬렉션을 아카이브하면 컬렉션에 포함된 문서 또한 아카이브됩니다. 컬렉션의 문서는 더 이상 검색 결과에 표시되지 않습니다.",
|
||||
"Archive collection": "보관된 컬렉션",
|
||||
"Collection archived": "컬렉션 보관됨",
|
||||
"Archiving": "아카이빙",
|
||||
"Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.": "이 컬렉션을 보관하면 컬렉션에 포함된 문서 또한 보관됩니다. 컬렉션의 문서는 더 이상 검색 결과에 표시되지 않습니다.",
|
||||
"Restore": "복원하기",
|
||||
"Collection restored": "컬렉션 복구됨",
|
||||
"Delete": "삭제",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "개발",
|
||||
"Open document": "문서 열기",
|
||||
"New document": "새 문서",
|
||||
"New draft": "New draft",
|
||||
"New draft": "새 초안",
|
||||
"New from template": "새 템플릿 문서",
|
||||
"New nested document": "새 하위 문서",
|
||||
"Publish": "게시하기",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "문서 게시",
|
||||
"Unpublish": "게시 취소",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} 이(가) 발행 취소됨",
|
||||
"Subscribe": "구독",
|
||||
"Subscribed to document notifications": "문서에 대해 알림 구독됨",
|
||||
"Unsubscribe": "구독 해제",
|
||||
"Unsubscribed from document notifications": "문서에 대해 알림 구독 해제됨",
|
||||
"Share this document": "이 문서 공유하기",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "문서 다운로드",
|
||||
"Copy as Markdown": "마크다운으로 복사",
|
||||
"Markdown copied to clipboard": "마크다운이 클립보드에 복사됨",
|
||||
"Copy as text": "텍스트로 복사",
|
||||
"Text copied to clipboard": "텍스트가 클립보드에 복사됨",
|
||||
"Copy public link": "공개 링크 복사",
|
||||
"Link copied to clipboard": "링크가 클립보드로 복사 되었습니다",
|
||||
"Copy link": "링크 복사",
|
||||
@@ -84,7 +86,7 @@
|
||||
"Move {{ documentType }}": "{{ documentType }} 문서 이동",
|
||||
"Are you sure you want to archive this document?": "정말로 이 문서를 아카이브 하시겠습니까?",
|
||||
"Document archived": "문서가 보관되었습니다",
|
||||
"Archiving this document will remove it from the collection and search results.": "Archiving this document will remove it from the collection and search results.",
|
||||
"Archiving this document will remove it from the collection and search results.": "이 문서를 보관하면 컬렉션 및 검색 결과에서 제거됩니다.",
|
||||
"Delete {{ documentName }}": "{{ documentName }} 삭제",
|
||||
"Permanently delete": "영구 삭제",
|
||||
"Permanently delete {{ documentName }}": "{{ documentName }} 를 영구 삭제",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "문서를 나갈 수 없습니다",
|
||||
"Home": "홈",
|
||||
"Drafts": "임시 보관함",
|
||||
"Search": "검색",
|
||||
"Trash": "휴지통",
|
||||
"Settings": "설정",
|
||||
"Profile": "사용자 정보",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "역할 업데이트",
|
||||
"Delete user": "사용자 삭제",
|
||||
"Collection": "컬렉션",
|
||||
"Collections": "컬렉션",
|
||||
"Debug": "디버그",
|
||||
"Document": "문서",
|
||||
"Documents": "문서",
|
||||
@@ -177,10 +181,10 @@
|
||||
"view and edit access": "보기 및 편집 액세스",
|
||||
"view only access": "보기 전용 액세스",
|
||||
"no access": "접근 불가",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "{{ documentName }}을(를) {{ collectionName }} 컬렉션으로 이동할 수 있는 권한이 없습니다",
|
||||
"Move document": "문서 이동",
|
||||
"Moving": "이동 중",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "문서 <em>{{ title }}</em>을(를) {{ newCollectionName }} 컬렉션으로 이동하면 모든 작업 공간 멤버의 권한이 <em>{{ prevPermission }}</em>에서 <em>{{ newPermission }}</em>으로 변경됩니다.",
|
||||
"Document is too large": "문서가 너무 큽니다.",
|
||||
"This document has reached the maximum size and can no longer be edited": "이 문서는 최대 크기에 도달하여 더 이상 편집할 수 없습니다.",
|
||||
"Authentication failed": "인증 실패",
|
||||
@@ -194,16 +198,17 @@
|
||||
"Submenu": "하위 메뉴",
|
||||
"Collections could not be loaded, please reload the app": "컬렉션을 불러올 수 없습니다. 앱을 새로고침하세요",
|
||||
"Default collection": "기본 컬렉션",
|
||||
"Start view": "시작 화면",
|
||||
"Install now": "지금 설치",
|
||||
"Deleted Collection": "삭제 된 콜렉션",
|
||||
"Untitled": "제목없음",
|
||||
"Unpin": "고정 해제",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"{{ minutes }}m read": "{{ minutes }}분 전에 읽음",
|
||||
"Select a location to copy": "복사할 위치 선택\n",
|
||||
"Document copied": "문서가 복사되었습니다",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"Couldn’t copy the document, try again?": "문서를 복사할 수 없습니다. 다시 시도하시겠습니까?",
|
||||
"Include nested documents": "중첩된 문서 포함",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
"Copy to <em>{{ location }}</em>": "<em>{{ location }}</em>로 복사",
|
||||
"Search collections & documents": "컬렉션 및 문서 검색",
|
||||
"No results found": "결과가 없습니다.",
|
||||
"New": "신규",
|
||||
@@ -233,7 +238,7 @@
|
||||
"{{ completed }} of {{ total }} tasks": "{{ total }} 중 {{ completed }} 개의 일",
|
||||
"Currently editing": "현재 수정 중",
|
||||
"Currently viewing": "현재 보는 중",
|
||||
"Viewed {{ timeAgo }}": "전에 봄 {{ timeAgo }}",
|
||||
"Viewed {{ timeAgo }}": "{{ timeAgo }} 전에 봄",
|
||||
"Module failed to load": "모듈 불러오기 실패",
|
||||
"Loading Failed": "불러오기 실패",
|
||||
"Sorry, part of the application failed to load. This may be because it was updated since you opened the tab or because of a failed network request. Please try reloading.": "죄송합니다, 일부 애플리케이션을 불러올 수 없습니다. 탭을 연 이후 업데이트 되었거나 네트워크 요청이 실패했기 때문일 수 있습니다. 새로고침을 시도해보세요",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "깃발",
|
||||
"Select a color": "색상 선택",
|
||||
"Loading": "로딩 중",
|
||||
"Search": "검색",
|
||||
"Permission": "권한",
|
||||
"View only": "보기 전용",
|
||||
"Can edit": "편집 가능",
|
||||
@@ -303,14 +307,14 @@
|
||||
"Back": "뒤로 가기",
|
||||
"Unknown": "알 수 없음",
|
||||
"Mark all as read": "모두 읽은 상태로 표시",
|
||||
"You're all caught up": "\b모두 읽으셨습니다.",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"You're all caught up": "모두 확인함",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} 사용자가 {{ emoji }}로 반응함",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} 사용자와 {{ secondUsername }} 사용자가 {{ emoji }}로 반응함",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} 사용자와 {{ count }}명이 {{ emoji }}로 반응함",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} 사용자와 {{ count }}명이 {{ emoji }}로 반응함",
|
||||
"Add reaction": "리액션 추가",
|
||||
"Reaction picker": "Reaction picker",
|
||||
"Could not load reactions": "Could not load reactions",
|
||||
"Reaction picker": "반응 선택기",
|
||||
"Could not load reactions": "반응을 불러올 수 없음",
|
||||
"Reaction": "리액션",
|
||||
"Results": "결과",
|
||||
"No results for {{query}}": "{{query}} 에 대한 검색결과가 없습니다.",
|
||||
@@ -359,16 +363,15 @@
|
||||
"Search engine indexing": "검색 엔진 인덱싱 허용",
|
||||
"Disable this setting to discourage search engines from indexing the page": "검색 엔진이 페이지를 인덱싱하지 못하도록 하려면 이 옵션을 비활성화 합니다",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "중첩된 문서들은 웹에 공유되지 않습니다. 공유 버튼을 토글해 액세스를 활성화하면, 미래에도 기본 동작으로 유지됩니다.",
|
||||
"{{ userName }} was added to the document": "{{ userName }} was added to the document",
|
||||
"{{ count }} people added to the document": "{{ count }} people added to the document",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} people added to the document",
|
||||
"{{ count }} groups added to the document": "{{ count }} groups added to the document",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} groups added to the document",
|
||||
"{{ userName }} was added to the document": "{{ userName }} 이(가) 문서에 추가됨",
|
||||
"{{ count }} people added to the document": "{{ count }} 명이 문서에 추가됨",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} 명이 문서에 추가됨",
|
||||
"{{ count }} groups added to the document": "{{ count }} 개의 그룹이 문서에 추가됨",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} 개의 그룹이 문서에 추가됨",
|
||||
"Logo": "로고",
|
||||
"Archived collections": "Archived collections",
|
||||
"Archived collections": "보관된 컬렉션",
|
||||
"New doc": "새 문서",
|
||||
"Empty": "비어 있음",
|
||||
"Collections": "컬렉션",
|
||||
"Collapse": "감추기",
|
||||
"Expand": "펼치기",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "이 문서는 지원되지 않습니다 – Markdown, Plain Text, HTML이나 Word를 이용해주세요",
|
||||
@@ -382,10 +385,10 @@
|
||||
"Up to date": "최신 상태",
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} 이전 버전",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} 이전 버전",
|
||||
"Change permissions?": "Change permissions?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"Change permissions?": "권한을 변경할까요?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} 은(는) {{ parentDocumentName }} 내에서 이동할 수 없음",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "알파벳순으로 정렬된 컬렉션에서는 문서를 재정렬할 수 없습니다.",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
"The {{ documentName }} cannot be moved here": "{{documentName}} 은(는) 여기로 이동할 수 없음",
|
||||
"Return to App": "앱으로 돌아가기",
|
||||
"Installation": "설치",
|
||||
"Unstar document": "문서 별표 해제",
|
||||
@@ -404,12 +407,12 @@
|
||||
"Are you sure you want to suspend {{ userName }}? Suspended users will be prevented from logging in.": "{{ userName }} 계정 사용을 중지 하시겠습니까? 중지된 사용자는 로그인 할 수 없습니다.",
|
||||
"New name": "새 이름",
|
||||
"Name can't be empty": "이름은 비어 있을 수 없습니다.",
|
||||
"Check your email to verify the new address.": "Check your email to verify the new address.",
|
||||
"The email will be changed once verified.": "The email will be changed once verified.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "You will receive an email to verify your new address. It must be unique in the workspace.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "A confirmation email will be sent to the new address before it is changed.",
|
||||
"New email": "New email",
|
||||
"Email can't be empty": "Email can't be empty",
|
||||
"Check your email to verify the new address.": "새로운 주소를 확인하려면 이메일을 확인하세요.",
|
||||
"The email will be changed once verified.": "이메일은 확인 후 변경됩니다.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "새로운 주소를 확인하기 위한 이메일을 받게 됩니다. 이 주소는 작업 공간 내에서 고유해야 합니다.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "변경되기 전에 새로운 주소로 확인 이메일이 전송됩니다.",
|
||||
"New email": "새로운 이메일",
|
||||
"Email can't be empty": "이메일은 비워둘 수 없음",
|
||||
"Your import completed": "불러오기 완료됨",
|
||||
"Previous match": "이전 찾기",
|
||||
"Next match": "다음 찾기",
|
||||
@@ -423,9 +426,10 @@
|
||||
"Replace all": "모두 바꾸기",
|
||||
"Profile picture": "프로필 사진",
|
||||
"Create a new doc": "새 문서 만들기",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Embed": "Embed",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} 은(는) 이 문서에 대한 액세스 권한이 없으므로 알림을 받지 않습니다.",
|
||||
"Keep as link": "링크로 유지",
|
||||
"Mention": "언급됨",
|
||||
"Embed": "내장",
|
||||
"Add column after": "뒤에 열 추가",
|
||||
"Add column before": "앞에 열 추가",
|
||||
"Add row after": "뒤에 행 추가",
|
||||
@@ -448,17 +452,17 @@
|
||||
"Delete file": "파일 삭제",
|
||||
"Download file": "파일 다운로드",
|
||||
"Replace file": "파일 바꾸기",
|
||||
"Delete image": "삭제된 이미지",
|
||||
"Delete image": "이미지 삭제",
|
||||
"Download image": "이미지 다운로드",
|
||||
"Replace image": "이미지 교체",
|
||||
"Italic": "이탤릭체",
|
||||
"Sorry, that link won’t work for this embed type": "죄송합니다, 해당 링크를 이 임베드 유형에서 사용할 수 없습니다",
|
||||
"File attachment": "첨부 파일",
|
||||
"Enter a link": "Enter a link",
|
||||
"Enter a link": "링크 입력",
|
||||
"Big heading": "큰 제목",
|
||||
"Medium heading": "중간 제목",
|
||||
"Small heading": "작은 제목",
|
||||
"Extra small heading": "Extra small heading",
|
||||
"Extra small heading": "아주 작은 제목",
|
||||
"Heading": "제목",
|
||||
"Divider": "구분선",
|
||||
"Image": "이미지",
|
||||
@@ -477,7 +481,7 @@
|
||||
"Page break": "페이지 나누기",
|
||||
"Paste a link": "링크 붙여 넣기",
|
||||
"Paste a {{service}} link…": "{{service}} 링크 붙여 넣기…",
|
||||
"Placeholder": "Placeholder",
|
||||
"Placeholder": "플레이스홀더",
|
||||
"Quote": "인용구",
|
||||
"Remove link": "링크 삭제",
|
||||
"Search or paste a link": "링크 검색 또는 붙여넣기",
|
||||
@@ -491,10 +495,10 @@
|
||||
"Toggle header": "토글 제목",
|
||||
"Math inline (LaTeX)": "인라인 수식 (LaTeX)",
|
||||
"Math block (LaTeX)": "수식 블록 (LaTeX)",
|
||||
"Tip": "도움말",
|
||||
"Tip notice": "팁 사항",
|
||||
"Tip": "팁",
|
||||
"Tip notice": "팁 공지",
|
||||
"Warning": "주의",
|
||||
"Warning notice": "주의 사항",
|
||||
"Warning notice": "주의 공지",
|
||||
"Success": "성공",
|
||||
"Success notice": "성공 안내",
|
||||
"Current date": "현재 날짜",
|
||||
@@ -506,8 +510,9 @@
|
||||
"None": "없음",
|
||||
"Could not import file": "파일을 가져올 수 없음",
|
||||
"Unsubscribed from document": "문서 구독이 취소됨",
|
||||
"Unsubscribed from collection": "컬렉션 구독 취소",
|
||||
"Account": "계정",
|
||||
"API Keys": "API Keys",
|
||||
"API Keys": "API 키",
|
||||
"Details": "세부 정보",
|
||||
"Security": "보안",
|
||||
"Features": "실험적 기능",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "그룹",
|
||||
"Shared Links": "공유한 링크",
|
||||
"Import": "불러오기",
|
||||
"Self Hosted": "자체 호스팅",
|
||||
"Integrations": "연동",
|
||||
"Revoke token": "토큰 취소",
|
||||
"Revoke": "취소",
|
||||
@@ -529,16 +533,19 @@
|
||||
"Z-A sort": "내림차순",
|
||||
"Manual sort": "수동 정렬",
|
||||
"Comment options": "댓글 옵션",
|
||||
"Show document menu": "Show document menu",
|
||||
"Show document menu": "문서 메뉴 표시",
|
||||
"{{ documentName }} restored": "{{ documentName }} 복원됨",
|
||||
"Document options": "문서 옵션",
|
||||
"Choose a collection": "컬렉션 선택",
|
||||
"Subscription inherited from collection": "컬렉션으로부터 상속된 구독",
|
||||
"Enable embeds": "임베드 활성화",
|
||||
"Export options": "내보내기 옵션",
|
||||
"Group members": "그룹 구성원",
|
||||
"Edit group": "그룹 수정",
|
||||
"Delete group": "그룹 삭제",
|
||||
"Group options": "그룹 옵션",
|
||||
"Cancel": "취소",
|
||||
"Import menu options": "가져오기 메뉴 옵션",
|
||||
"Member options": "멤버 옵션",
|
||||
"New document in <em>{{ collectionName }}</em>": "<em>{{ collectionName }}</em> 컬렉션의 새 문서",
|
||||
"New child document": "새 하위 문서",
|
||||
@@ -554,7 +561,7 @@
|
||||
"Headings you add to the document will appear here": "문서에 추가한 제목이 여기에 표시됩니다.",
|
||||
"Table of contents": "목차",
|
||||
"Change name": "이름 변경",
|
||||
"Change email": "Change email",
|
||||
"Change email": "이메일 변경",
|
||||
"Suspend user": "사용자 일시 정지",
|
||||
"An error occurred while sending the invite": "초대를 보내는 중 오류가 발생했습니다.",
|
||||
"User options": "사용자 옵션",
|
||||
@@ -564,18 +571,18 @@
|
||||
"Activate user": "사용자 활성화",
|
||||
"template": "템플릿",
|
||||
"document": "문서",
|
||||
"published": "발행",
|
||||
"published": "게시됨",
|
||||
"edited": "편집됨",
|
||||
"created the collection": "컬렉션 만들기",
|
||||
"mentioned you in": "당신을 언급했습니다",
|
||||
"left a comment on": "댓글을 남겼습니다",
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"resolved a comment on": "에 대한 댓글이 해결됨",
|
||||
"shared": "공유됨",
|
||||
"invited you to": "당신을 초대하였습니다:",
|
||||
"Choose a date": "날짜를 선택하세요",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API key created. Please copy the value now as it will not be shown again.",
|
||||
"Scopes": "Scopes",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API 키가 생성되었습니다. 지금 값을 복사해 두세요. 이후에는 다시 표시되지 않습니다.",
|
||||
"Scopes": "범위",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "공백으로 구분된 범위는 이 API 키의 액세스를 API의 특정 부분으로 제한합니다. 전체 액세스를 위해 비워두세요.",
|
||||
"Expiration": "만료",
|
||||
"Never expires": "만료 없음",
|
||||
"7 days": "7일",
|
||||
@@ -598,9 +605,9 @@
|
||||
"{{ groupsCount }} groups with access_plural": "액세스 권한이 있는 그룹 {{ groupsCount }} 개",
|
||||
"Archived by {{userName}}": "{{userName}} 에 의해 보관됨",
|
||||
"Share": "공유하기",
|
||||
"Overview": "Overview",
|
||||
"Recently updated": "최근 업데이트 순",
|
||||
"Recently published": "최근 게시 순",
|
||||
"Overview": "개요",
|
||||
"Recently updated": "최근에 업데이트됨",
|
||||
"Recently published": "최근에 게시됨",
|
||||
"Least recently updated": "오래된 순",
|
||||
"A–Z": "A-Z",
|
||||
"Signing in": "로그인 중",
|
||||
@@ -610,17 +617,16 @@
|
||||
"Add a reply": "답글 달기",
|
||||
"Reply": "답글",
|
||||
"Post": "게시하기",
|
||||
"Cancel": "취소",
|
||||
"Upload image": "사진 업로드",
|
||||
"No resolved comments": "해결된 댓글 없음",
|
||||
"No comments yet": "아직 댓글이 없습니다.",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"New comments": "새 댓글",
|
||||
"Most recent": "최신 순",
|
||||
"Order in doc": "문서 내 정렬",
|
||||
"Resolved": "해결 됨",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Sort comments": "댓글 정렬",
|
||||
"Show {{ count }} reply": "{{ count }} 개의 답변 보기",
|
||||
"Show {{ count }} reply_plural": "{{ count }} 개의 답변 보기",
|
||||
"Error updating comment": "댓글을 업데이트하는 중에 오류가 발생했습니다.",
|
||||
"Document restored": "문서가 복원되었습니다",
|
||||
"Images are still uploading.\nAre you sure you want to discard them?": "이미지가 아직 업로드 중입니다.\n변경 내용을 삭제하시겠습니까?",
|
||||
@@ -661,7 +667,7 @@
|
||||
"Created": "생성됨",
|
||||
"Last updated": "마지막 업데이트",
|
||||
"Creator": "생성자",
|
||||
"Last edited": "마지막 수정",
|
||||
"Last edited": "마지막으로 수정됨",
|
||||
"Previously edited": "이전에 수정됨",
|
||||
"No one else has viewed yet": "아직 다른 사람이 보지 않았습니다.",
|
||||
"Viewed {{ count }} times by {{ teamMembers }} people": "{{ teamMembers }} 명에 의해 {{ count }} 회 조회됨",
|
||||
@@ -686,27 +692,30 @@
|
||||
"If you’d like the option of referencing or restoring the {{noun}} in the future, consider archiving it instead.": "나중에 {{noun}} 을 참조하거나 복원하는 옵션을 원한다면, 보관하는 것을 고려해보세요.",
|
||||
"Select a location to move": "이동할 위치 선택",
|
||||
"Document moved": "문서 이동 됨",
|
||||
"Couldn’t move the document, try again?": "문서를 \b이동 할 수 없습니다. 다시 시도하시겠습니까?",
|
||||
"Couldn’t move the document, try again?": "문서를 이동 할 수 없습니다. 다시 시도하시겠습니까?",
|
||||
"Move to <em>{{ location }}</em>": "<em>{{ location }}</em>로 이동",
|
||||
"Couldn’t create the document, try again?": "문서를 만들 수 없습니다. 다시 시도하시겠습니까?",
|
||||
"Document permanently deleted": "문서가 영구적으로 삭제됨",
|
||||
"Are you sure you want to permanently delete the <em>{{ documentTitle }}</em> document? This action is immediate and cannot be undone.": "<em>{{ documentTitle }}</em> 문서를 영구적으로 삭제하시겠습니까? 이 작업은 즉각적이며 취소할 수 없습니다.",
|
||||
"Select a location to publish": "발행할 위치 선택",
|
||||
"Document published": "문서 게시됨",
|
||||
"Couldn’t publish the document, try again?": "문서를 \b발행 할 수 없습니다. 다시 시도하시겠습니까?",
|
||||
"Couldn’t publish the document, try again?": "문서를 발행 할 수 없습니다. 다시 시도하시겠습니까?",
|
||||
"Publish in <em>{{ location }}</em>": "<em>{{ location }}</em>에 발행",
|
||||
"Search documents": "문서 검색",
|
||||
"No documents found for your filters.": "검색조건과 맞는 문서를 찾을 수 없습니다.",
|
||||
"You’ve not got any drafts at the moment.": "현재 임시보관 된 문서가 없습니다.",
|
||||
"Payment Required": "결제 필요",
|
||||
"Not Found": "찾을 수 없습니다",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "페이지를 찾을 수 없습니다. <2>홈페이지</2>로 돌아가시겠습니까?",
|
||||
"No access to this doc": "이 문서에 접근할 수 없음",
|
||||
"It doesn’t look like you have permission to access this document.": "이 문서에 접근할 수 있는 권한이 없는 것 같습니다.",
|
||||
"Please request access from the document owner.": "문서 소유자에게 접근 권한을 요청하세요.",
|
||||
"Not found": "찾을 수 없음",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "찾고 있는 페이지를 찾을 수 없습니다. 삭제되었거나 링크가 올바르지 않을 수 있습니다.",
|
||||
"Offline": "오프라인",
|
||||
"We were unable to load the document while offline.": "오프라인 상태에서는 문서를 불러 올 수 없습니다.",
|
||||
"Your account has been suspended": "계정사용이 중지 되었습니다",
|
||||
"Warning Sign": "경고 표시",
|
||||
"A workspace admin (<em>{{ suspendedContactEmail }}</em>) has suspended your account. To re-activate your account, please reach out to them directly.": "워크스페이스 관리자 (<em>{{ suspendedContactEmail }}</em>) (이)가 귀하의 계정 사용을 중지시켰습니다. 계정을 다시 활성화하려면 해당 관리자에게 직접 문의하십시오.",
|
||||
"Created by me": "나에 의해 생성됨",
|
||||
"Created by me": "내가 생성함",
|
||||
"Weird, this shouldn’t ever be empty": "이상하네, 여기가 비어 있으면 안 되는데",
|
||||
"You haven’t created any documents yet": "아직 문서를 만들지 않았습니다.",
|
||||
"Documents you’ve recently viewed will be here for easy access": "쉽게 액세스할 수 있도록 최근에 본 문서가 여기에 표시됩니다.",
|
||||
@@ -737,7 +746,7 @@
|
||||
"Jump to home": "홈으로 이동",
|
||||
"Focus search input": "검색창에 포커스",
|
||||
"Open this guide": "이 가이드 열기",
|
||||
"Enter": "Enter",
|
||||
"Enter": "입력",
|
||||
"Publish document and exit": "문서를 저장하고 나가기",
|
||||
"Save document": "문서 저장",
|
||||
"Cancel editing": "변경 취소",
|
||||
@@ -751,8 +760,8 @@
|
||||
"Undo": "실행 취소",
|
||||
"Redo": "복원하기",
|
||||
"Lists": "목록",
|
||||
"Toggle task list item": "Toggle task list item",
|
||||
"Tab": "Tab",
|
||||
"Toggle task list item": "작업 목록 항목 전환",
|
||||
"Tab": "탭",
|
||||
"Indent list item": "목록 항목 들여쓰기",
|
||||
"Outdent list item": "목록 항목 내어쓰기",
|
||||
"Move list item up": "목록 항목을 위로 이동",
|
||||
@@ -768,10 +777,10 @@
|
||||
"LaTeX block": "LaTeX 블록",
|
||||
"Inline code": "인라인 코드",
|
||||
"Inline LaTeX": "인라인 LaTeX",
|
||||
"Triggers": "Triggers",
|
||||
"Mention users and more": "Mention users and more",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Insert block",
|
||||
"Triggers": "트리거",
|
||||
"Mention users and more": "사용자 멘션 및 기타",
|
||||
"Emoji": "이모지",
|
||||
"Insert block": "블록 삽입",
|
||||
"Sign In": "로그인",
|
||||
"Continue with Email": "이메일로 계속하기",
|
||||
"Continue with {{ authProviderName }}": "{{ authProviderName }} 사용하여 계속하기",
|
||||
@@ -784,7 +793,7 @@
|
||||
"Unable to sign-in. Please navigate to your workspace's custom URL, then try to sign-in again.<1></1>If you were invited to a workspace, you will find a link to it in the invite email.": "로그인할 수 없습니다. 워크스페이스의 맞춤 URL로 이동한 다음 다시 로그인을 시도하세요.<1></1> 워크스페이스에 초대받은 경우 초대 이메일에서 해당 링크를 찾을 수 있습니다.",
|
||||
"Sorry, a new account cannot be created with a personal Gmail address.<1></1>Please use a Google Workspaces account instead.": "죄송합니다. 개인 Gmail 주소로는 새 계정을 만들 수 없습니다.<1></1> 대신 Google Workspaces 계정을 사용하세요.",
|
||||
"The workspace associated with your user is scheduled for deletion and cannot be accessed at this time.": "당신의 사용자와 연관된 워크스페이스는 삭제가 예정되어 있으며 현재 접근할 수 없습니다.",
|
||||
"The workspace you authenticated with is not authorized on this installation. Try another?": "\b로그인한 워크스페이스는 이 설치 버전에서 승인되지 않았습니다. 다른 방법으로 시도하시겠습니까?",
|
||||
"The workspace you authenticated with is not authorized on this installation. Try another?": "로그인한 워크스페이스는 이 설치 버전에서 승인되지 않았습니다. 다른 방법으로 시도하시겠습니까?",
|
||||
"We could not read the user info supplied by your identity provider.": "ID 공급자가 제공한 사용자 정보를 읽을 수 없습니다.",
|
||||
"Your account uses email sign-in, please sign-in with email to continue.": "귀하의 계정은 이메일 로그인을 사용합니다. 계속하려면 이메일로 로그인하십시오.",
|
||||
"An email sign-in link was recently sent, please check your inbox or try again in a few minutes.": "이메일 로그인 링크가 최근에 전송되었습니다. 받은 편지함을 확인하거나 몇 분 후에 다시 시도하십시오.",
|
||||
@@ -793,9 +802,9 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "죄송합니다. 해당 로그인 링크가 더 이상 유효하지 않은 것 같습니다. 다른 링크를 요청해 보세요.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "귀하의 계정이 정지되었습니다. 계정을 다시 활성화하려면 워크스페이스 관리자에게 문의하세요.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "이 워크스페이스는 정지된 상태입니다. 지원에 연락해 접근 권한을 복구하세요.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "인증 실패 – 이 로그인 방법은 팀 관리자에 의해 비활성화되었습니다.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "인증 실패 - 작업 공간 관리자가 이 로그인 방법을 비활성화했습니다.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "가입하려는 워크스페이스는 계정을 생성하기 전에 초대가 필요합니다.<1></1> 워크스페이스 관리자에게 초대를 요청하고 다시 시도하세요.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Sorry, an unknown error occurred.": "죄송합니다. 알 수 없는 오류가 발생했습니다.",
|
||||
"Login": "로그인",
|
||||
"Error": "오류",
|
||||
"Failed to load configuration.": "구성을 로드하지 못했습니다.",
|
||||
@@ -814,27 +823,26 @@
|
||||
"Or": "또는",
|
||||
"Already have an account? Go to <1>login</1>.": "이미 계정이 있으신가요? <1>로그인</1>.",
|
||||
"Any collection": "모든 컬렉션",
|
||||
"Any time": "모든 시간",
|
||||
"All time": "모든 시간",
|
||||
"Past day": "어제",
|
||||
"Past week": "지난 주",
|
||||
"Past month": "지난 달",
|
||||
"Past year": "작년",
|
||||
"Any time": "모든 시간",
|
||||
"Remove document filter": "문서 검색 필터 제거",
|
||||
"Any status": "모든 상태",
|
||||
"Remove search": "검색 기록 제거",
|
||||
"Any author": "모든 작성자",
|
||||
"Author": "저자",
|
||||
"We were unable to find the page you’re looking for.": "페이지를 찾을 수 없습니다.",
|
||||
"Search titles only": "제목에서만 찾기",
|
||||
"Something went wrong": "문제가 발생했습니다",
|
||||
"Please try again or contact support if the problem persists": "다시 한 번 시도해 보시고 문제가 계속된다면 문의해주세요",
|
||||
"No documents found for your search filters.": "검색조건과 맞는 문서를 찾을 수 없습니다.",
|
||||
"API": "API",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.",
|
||||
"by {{ name }}": "by {{ name }}",
|
||||
"Last used": "최근 사용",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API 키는 API와 인증하고 작업 공간의 데이터를 프로그래밍 방식으로 제어하는 데\n 사용될 수 있습니다. 자세한 내용은 <em>개발자 문서</em>를 참조하세요.",
|
||||
"by {{ name }}": "{{ name }} 에 의해",
|
||||
"Last used": "최근 사용됨",
|
||||
"No expiry": "만료 없음",
|
||||
"Restricted scope": "Restricted scope",
|
||||
"Restricted scope": "제한된 범위",
|
||||
"API key copied to clipboard": "API 키가 클립보드에 복사됨",
|
||||
"Copied": "복사됨",
|
||||
"Revoking": "취소",
|
||||
@@ -883,16 +891,22 @@
|
||||
"Search people": "사용자 검색",
|
||||
"No people matching your search": "찾으시는 사용자가 없습니다.",
|
||||
"No people left to add": "추가할 사용자가 없습니다",
|
||||
"Date created": "Date created",
|
||||
"Date created": "생성 일자",
|
||||
"Upload": "업로드",
|
||||
"Crop image": "이미지 자르기",
|
||||
"Uploading": "업로드 중",
|
||||
"How does this work?": "어떻게 동작합니까?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "다른 인스턴스의 JSON 옵션에서 이전에 내보낸 \b압축 파일을 가져올 수 있습니다. {{ appName }} 에서 설정 사이드바에서 <em>내보내기</em>를 열고 <em>데이터 내보내기</em>클릭합니다.",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "다른 인스턴스의 JSON 옵션에서 이전에 내보낸 압축 파일을 가져올 수 있습니다. {{ appName }} 에서 설정 사이드바에서 <em>내보내기</em>를 열고 <em>데이터 내보내기</em>클릭합니다.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "{{appName}}의 JSON 내보내기 옵션에서 zip 파일을 드래그 앤 드롭하거나 클릭하여 업로드",
|
||||
"Canceled": "취소됨",
|
||||
"Import canceled": "가져오기 취소됨",
|
||||
"Are you sure you want to cancel this import?": "가져오기를 취소 하시겠습니까?",
|
||||
"Canceling": "취소 중",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "가져오기를 취소하면 진행 중인 내용은 버려지고, 되돌릴 수 없습니다.",
|
||||
"{{ count }} document imported": "문서 {{ count }}개 가져옴",
|
||||
"{{ count }} document imported_plural": "문서 {{ count }}개 가져옴",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "이전에 Outline 설치에서 내보낸 Zip 파일을 가져올 수 있습니다. 이는 컬렉션, 문서, 이미지를 가져옵니다. Outline에서 설정 사이드바의 <em>내보내기</em> 열고 <em>데이터 내보내기</em>클릭합니다.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "{{appName}} 의 Json 내보내기 옵션에서 zip 파일을 드래그 앤 드롭하거나 클릭하여 업로드",
|
||||
"Where do I find the file?": "파일은 어디에서 찾을 수 있습니까?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "Notion에서 왼쪽 사이드바의 <em>Settings & Members</em> 클릭하고 Settings를 엽니다. 내보내기 섹션을 찾고 <em>모든 작업 공간 콘텐츠 내보내기</em>클릭하십시오. 최상의 데이터 호환성을 위해선 <em>HTML</em> 선택하십시오.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Notion의 HTML 내보내기 옵션을 한 zip 파일을 끌어다 놓거나 클릭하여 업로드하십시오.",
|
||||
"Last active": "최근 활동",
|
||||
"Guest": "게스트",
|
||||
"Shared by": "~으로부터 공유됨:",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "에디터",
|
||||
"All status": "모든 상태",
|
||||
"Active": "활성",
|
||||
"Left": "왼쪽",
|
||||
"Right": "오른쪽",
|
||||
"Settings saved": "설정이 저장되었습니다",
|
||||
"Logo updated": "로고 업데이트됨",
|
||||
"Unable to upload new logo": "새 로고를 업로드할 수 없습니다.",
|
||||
@@ -922,18 +938,15 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "로그인 및 공유 문서와 같은 공개 페이지에 팀 로고를 표시하십시오.",
|
||||
"Table of contents position": "목차 위치",
|
||||
"The side to display the table of contents in relation to the main content.": "본문에 관한 목차를 표시할 위치입니다.",
|
||||
"Left": "왼쪽",
|
||||
"Right": "오른쪽",
|
||||
"Behavior": "동작",
|
||||
"Subdomain": "하위 도메인",
|
||||
"Your workspace will be accessible at": "워크스페이스는 다음에서 액세스할 수 있습니다.",
|
||||
"Choose a subdomain to enable a login page just for your team.": "팀 전용 로그인 페이지를 활성화하려면 하위 도메인을 선택하십시오.",
|
||||
"Start view": "시작 화면",
|
||||
"This is the screen that workspace members will first see when they sign in.": "워크스페이스 멤버들이 로그인할 때 가장 먼저 보게 되는 화면입니다.",
|
||||
"Danger": "위험",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "컬렉션, 문서, 사용자를 포함한 전체 워크스페이스를 삭제할 수 있습니다.",
|
||||
"Export data": "데이터 내보내기",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "전체 내보내기는 시간이 걸릴 수 있으므로 단일 문서나 컬렉션을 내보내는 것을 고려하세요. 내보내기가 시작되면 이 페이지를 떠나셔도 됩니다. 알림이 활성화되어 있는 경우 완료되면 <em>{{ userEmail }}</em>으로 링크를 이메일로 보내드립니다.",
|
||||
"Recent exports": "최근 내보내기",
|
||||
"Manage optional and beta features. Changing these settings will affect the experience for all members of the workspace.": "선택적 기능 및 실험적 기능을 관리합니다. 이 설정을 변경하면 워크스페이스에 모든 멤버에게 영향을 미칩니다.",
|
||||
"Separate editing": "분할 편집",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "그룹 만들기",
|
||||
"Groups can be used to organize and manage the people on your team.": "그룹을 사용하여 팀의 사용자들을 구성하고 관리할 수 있습니다.",
|
||||
"No groups have been created yet": "아직 생성 된 그룹이 없습니다",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "기존 문서, 페이지 및 파일을 다른 도구 및 서비스에서 {{appName}} 으로 빠르게 전송합니다. HTML, Markdown 및 텍스트 문서를 앱의 컬렉션으로 직접 끌어다 놓을 수도 있습니다.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Markdown 문서의 zip 파일 가져오기(버전 0.67.0 이하에서 내보냄)",
|
||||
"Import data": "데이터 가져오기",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "다른 {{ appName }} 인스턴스에서 내보낸 JSON 데이터 파일 가져오기",
|
||||
"Import pages exported from Notion": "Notion에서 내보낸 페이지 가져오기",
|
||||
"Import pages from a Confluence instance": "Confluence 인스턴스에서 페이지 가져오기",
|
||||
"Enterprise": "엔터프라이즈",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "기존 문서, 페이지 및 파일을 다른 도구 및 서비스에서 {{appName}} 으로 빠르게 전송합니다. HTML, Markdown 및 텍스트 문서를 앱의 컬렉션으로 직접 끌어다 놓을 수도 있습니다.",
|
||||
"Recent imports": "최근에 가져온",
|
||||
"Could not load members": "멤버를 불러올 수 없습니다",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "{{appName}} 에 로그인한 모든 사람이 여기에 나열됩니다. {{signinMethods}} 을(를) 통해 접근한 비로그인 사용자가 있을 수 있습니다.",
|
||||
@@ -962,7 +974,7 @@
|
||||
"Receive a notification when a document you are subscribed to or a thread you participated in receives a comment": "구독 중인 문서 또는 참여한 스레드가 댓글을 받으면 알림을 받습니다.",
|
||||
"Mentioned": "언급됨",
|
||||
"Receive a notification when someone mentions you in a document or comment": "다른 사람이 문서나 댓글에서 나를 언급하면 알림을 받습니다.",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Receive a notification when a comment thread you were involved in is resolved",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "참여한 댓글 스레드가 해결되었을 때 알림을 받습니다.",
|
||||
"Collection created": "컬렉션 생성됨",
|
||||
"Receive a notification whenever a new collection is created": "새 컬렉션이 생성될 때마다 알림을 받습니다",
|
||||
"Invite accepted": "초대 수락됨",
|
||||
@@ -996,8 +1008,8 @@
|
||||
"When enabled, documents have a separate editing mode. When disabled, documents are always editable when you have permission.": "이 기능을 활성화하면, 문서에서 분할 편집 모드를 사용할 수 있습니다. 활성화하지 않으면 권한이 있을 경우에만 문서를 편집할 수 있습니다.",
|
||||
"Remember previous location": "이전 위치 기억",
|
||||
"Automatically return to the document you were last viewing when the app is re-opened.": "앱이 다시 열렸을때 마지막으로 보고 있던 문서로 돌아갑니다.",
|
||||
"Smart text replacements": "Smart text replacements",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.",
|
||||
"Smart text replacements": "스마트 텍스트 대체",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "단축키를 기호, 대시, 스마트 따옴표 및 기타 타이포그래픽 요소로 교체하여 텍스트를 자동으로 형식화합니다.",
|
||||
"You may delete your account at any time, note that this is unrecoverable": "계정을 언제든지 삭제할 수 있지만 다시 복구할 수 없습니다",
|
||||
"Profile saved": "프로필이 저장되었습니다",
|
||||
"Profile picture updated": "프로필 사진이 업데이트 됨",
|
||||
@@ -1024,19 +1036,15 @@
|
||||
"When enabled, documents can be shared publicly on the internet by any member of the workspace": "활성화되면 워크스페이스에 모든 멤버가 문서를 인터넷에 공유 할 수 있습니다",
|
||||
"Viewer document exports": "뷰어 문서 내보내기",
|
||||
"When enabled, viewers can see download options for documents": "사용하도록 설정하면 보는 사람이 문서의 다운로드 옵션을 볼 수 있습니다.",
|
||||
"Users can delete account": "Users can delete account",
|
||||
"When enabled, users can delete their own account from the workspace": "When enabled, users can delete their own account from the workspace",
|
||||
"Users can delete account": "사용자는 계정을 삭제할 수 있음",
|
||||
"When enabled, users can delete their own account from the workspace": "활성화되면 사용자는 작업 공간에서 자신의 계정을 삭제할 수 있음",
|
||||
"Rich service embeds": "확장 임베딩",
|
||||
"Links to supported services are shown as rich embeds within your documents": "지원되는 서비스에 대한 링크는 문서 내에서 확장 임베딩으로 표시됩니다",
|
||||
"Collection creation": "컬렉션 생성됨",
|
||||
"Allow editors to create new collections within the workspace": "편집자가 워크스페이스에서 새 연결을 만들도록 허용",
|
||||
"Workspace creation": "워크스페이스 생성",
|
||||
"Allow editors to create new workspaces": "에디터들로 하여금 새로운 워크스페이스 생성을 허가",
|
||||
"Draw.io deployment": "Draw.io 설치",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "여기에 자체 호스팅된 draw.io의 URL을 추가하여 문서 내에 다이어그램을 자동으로 삽입할 수 있습니다.",
|
||||
"Grist deployment": "Grist 배포",
|
||||
"Add your self-hosted grist installation URL here.": "셀프 호스팅된 설치 URL을 입력해주세요",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Could not load shares": "공유를 불러올 수 없음",
|
||||
"Sharing is currently disabled.": "공유는 현재 비활성화되어 있습니다",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "<em>보안 설정</em>에서 인터넷 공유를 전역적으로 활성화 및 비활성화할 수 있습니다.",
|
||||
"Documents that have been shared are listed below. Anyone that has the public link can access a read-only version of the document until the link has been revoked.": "공유된 문서는 다음과 같습니다. 공개 링크가 있는 사람은 링크가 삭제될 때까지 문서의 읽기 전용 버전에 액세스할 수 있습니다.",
|
||||
@@ -1078,7 +1086,7 @@
|
||||
"Disconnecting will prevent previewing GitHub links from this organization in documents. Are you sure?": "연결을 해제하면 문서에서 이 조직의 GitHub 링크의 미리보기를 볼 수 없습니다. 계속하시겠습니까?",
|
||||
"The GitHub integration is currently disabled. Please set the associated environment variables and restart the server to enable the integration.": "GitHub 통합은 현재 비활성화되어 있습니다. 연관된 환경변수를 설정하고 서버를 다시 시작하여 통합을 활성화하세요.",
|
||||
"Google Analytics": "Google Analytics",
|
||||
"Add a Google Analytics 4 measurement ID to send document views and analytics from the workspace to your own Google Analytics account.": "Google 애널리틱스 4에 \bMeasurement ID를 추가하여 작업공간에서 자신의 Google 애널리틱스 계정으로 문서 보기 및 분석을 전송하세요.",
|
||||
"Add a Google Analytics 4 measurement ID to send document views and analytics from the workspace to your own Google Analytics account.": "Google 애널리틱스 4에 Measurement ID를 추가하여 작업공간에서 자신의 Google 애널리틱스 계정으로 문서 보기 및 분석을 전송하세요.",
|
||||
"Measurement ID": "Measurement ID",
|
||||
"Create a \"Web\" stream in your Google Analytics admin dashboard and copy the measurement ID from the generated code snippet to install.": "Google 애널리틱스 관리 대시보드에서 \"Web\" 스트림을 만들고 생성된 코드 스니펫에서 Measurement ID를 복사하여 설치합니다.",
|
||||
"Configure a Matomo installation to send views and analytics from the workspace to your own Matomo instance.": "조회수 및 분석 정보를 워크스페이스에서 당신의 Matomo 인스턴스로 보내도록 Matomo 설치를 구성하세요.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "Matomo 인스턴스의 URL입니다. Matomo Cloud를 사용하는 경우 matomo.cloud/로 끝납니다.",
|
||||
"Site ID": "사이트 ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Matomo 인스턴스에서 웹사이트를 고유하게 식별하는 ID입니다.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "죄송합니다. {{ appName }} 을 워크스페이스에 연결하려면 Notion에서 권한을 수락해야 합니다. 다시 시도하시겠습니까?",
|
||||
"Import pages from Notion": "Notion에서 내보낸 페이지 가져오기",
|
||||
"Add to Slack": "Slack에 추가",
|
||||
"document published": "문서 게시됨",
|
||||
"document updated": "문서 업데이트됨",
|
||||
@@ -1109,11 +1119,11 @@
|
||||
"It looks like you haven’t linked your {{ appName }} account to Slack yet": "아직 Slack에 {{ appName }} 계정을 연동하지 않은 것 같습니다",
|
||||
"Link your account": "계정 연결하기",
|
||||
"Link your account in {{ appName }} settings to search from Slack": "Slack으로부터 검색하기 위하여 {{ appName }} 설정에서 계정을 연결하세요",
|
||||
"Configure a Umami installation to send views and analytics from the workspace to your own Umami instance.": "Configure a Umami installation to send views and analytics from the workspace to your own Umami instance.",
|
||||
"The URL of your Umami instance. If you are using Umami Cloud it will begin with {{ url }}": "The URL of your Umami instance. If you are using Umami Cloud it will begin with {{ url }}",
|
||||
"Configure a Umami installation to send views and analytics from the workspace to your own Umami instance.": "작업 공간의 조회수 및 분석을 자신의 Umami 인스턴스로 전송하도록 Umami 설치를 구성합니다.",
|
||||
"The URL of your Umami instance. If you are using Umami Cloud it will begin with {{ url }}": "Umami 인스턴스의 URL입니다. Umami Cloud를 사용하는 경우 {{ url }}로 시작합니다",
|
||||
"Script name": "스크립트 이름",
|
||||
"The name of the script file that Umami uses to track analytics.": "Umami가 분석을 추적하는 데 사용하는 스크립트 파일의 이름입니다.",
|
||||
"An ID that uniquely identifies the website in your Umami instance.": "An ID that uniquely identifies the website in your Umami instance.",
|
||||
"An ID that uniquely identifies the website in your Umami instance.": "Umami 인스턴스에서 웹사이트를 고유하게 식별하는 ID입니다.",
|
||||
"Are you sure you want to delete the {{ name }} webhook?": "{{ name }} 웹훅을 삭제하시겠습니까?",
|
||||
"Webhook updated": "웹훅 업데이트됨",
|
||||
"Update": "변경하기",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} 업데이트 됨 {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "{{ timeAgo }} 전에 내가 생성함",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} 이(가) {{ timeAgo }} 전에 생성",
|
||||
"Uploading": "업로드 중"
|
||||
}
|
||||
"Error loading data": "데이터 로딩 오류"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Søk i samling",
|
||||
"Star": "Stjerne",
|
||||
"Unstar": "Fjern stjerne",
|
||||
"Subscribe": "Abonner",
|
||||
"Subscribed to document notifications": "Abonnert på dokumentvarsler",
|
||||
"Unsubscribe": "Avslutt abonnement",
|
||||
"Unsubscribed from document notifications": "Avsluttet abonnement på dokumentvarsler",
|
||||
"Archive": "Arkiv",
|
||||
"Archive collection": "Arkiver samling",
|
||||
"Collection archived": "Samling arkivert",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Publiser dokument",
|
||||
"Unpublish": "Avpubliser",
|
||||
"Unpublished {{ documentName }}": "Avpublisert {{ documentName }}",
|
||||
"Subscribe": "Abonner",
|
||||
"Subscribed to document notifications": "Abonnert på dokumentvarsler",
|
||||
"Unsubscribe": "Avslutt abonnement",
|
||||
"Unsubscribed from document notifications": "Avsluttet abonnement på dokumentvarsler",
|
||||
"Share this document": "Del dette dokumentet",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Last ned dokument",
|
||||
"Copy as Markdown": "Kopier som Markdown",
|
||||
"Markdown copied to clipboard": "Markdown kopiert til utklippstavlen",
|
||||
"Copy as text": "Kopier som tekst",
|
||||
"Text copied to clipboard": "Tekst kopiert til utklippstavle",
|
||||
"Copy public link": "Kopier offentlig lenke",
|
||||
"Link copied to clipboard": "Lenke kopiert til utklippstavlen",
|
||||
"Copy link": "Kopier lenke",
|
||||
@@ -100,7 +102,8 @@
|
||||
"Could not leave document": "Kunne ikke forlate dokument",
|
||||
"Home": "Hjem",
|
||||
"Drafts": "Utkast",
|
||||
"Trash": "Søppel",
|
||||
"Search": "Søk",
|
||||
"Trash": "Papirkurv",
|
||||
"Settings": "Innstillinger",
|
||||
"Profile": "Profil",
|
||||
"Templates": "Maler",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Oppdater rolle",
|
||||
"Delete user": "Slett bruker",
|
||||
"Collection": "Samling",
|
||||
"Collections": "Samlinger",
|
||||
"Debug": "Feilsøk",
|
||||
"Document": "Dokument",
|
||||
"Documents": "Dokumenter",
|
||||
@@ -194,6 +198,7 @@
|
||||
"Submenu": "Undermeny",
|
||||
"Collections could not be loaded, please reload the app": "Samlinger kunne ikke lastes inn, vennligst last inn appen på nytt",
|
||||
"Default collection": "Standard samling",
|
||||
"Start view": "Startvisning",
|
||||
"Install now": "Installer nå",
|
||||
"Deleted Collection": "Slettet samling",
|
||||
"Untitled": "Uten tittel",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Flagg",
|
||||
"Select a color": "Velg en farge",
|
||||
"Loading": "Laster",
|
||||
"Search": "Søk",
|
||||
"Permission": "Tillatelse",
|
||||
"View only": "Bare vis",
|
||||
"Can edit": "Kan redigere",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Arkiverte samlinger",
|
||||
"New doc": "Nytt dokument",
|
||||
"Empty": "Tom",
|
||||
"Collections": "Samlinger",
|
||||
"Collapse": "Kollaps",
|
||||
"Expand": "Utvid",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Dokument ikke støttet – prøv Markdown, ren tekst, HTML eller Word",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Lag et nytt dokument",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} vil ikke bli varslet, da de ikke har tilgang til dette dokumentet",
|
||||
"Keep as link": "Behold som lenke",
|
||||
"Mention": "Nevn",
|
||||
"Embed": "Bygg inn",
|
||||
"Add column after": "Legg til kolonne etter",
|
||||
"Add column before": "Sett inn kolonne før",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "Ingen",
|
||||
"Could not import file": "Kunne ikke importere fil",
|
||||
"Unsubscribed from document": "Avsluttet abonnement fra dokument",
|
||||
"Unsubscribed from collection": "Avsluttet abonnement fra samling",
|
||||
"Account": "Konto",
|
||||
"API Keys": "API-nøkler",
|
||||
"Details": "Detaljer",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Grupper",
|
||||
"Shared Links": "Delte Lenker",
|
||||
"Import": "Importer",
|
||||
"Self Hosted": "Selvhostet",
|
||||
"Integrations": "Integrasjoner",
|
||||
"Revoke token": "Opphev token",
|
||||
"Revoke": "Opphev",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} gjenopprettet",
|
||||
"Document options": "Dokumentalternativer",
|
||||
"Choose a collection": "Velg en samling",
|
||||
"Subscription inherited from collection": "Abonnement arvet fra samling",
|
||||
"Enable embeds": "Aktiver innebygginger",
|
||||
"Export options": "Eksportalternativer",
|
||||
"Group members": "Gruppemedlemmer",
|
||||
"Edit group": "Rediger gruppe",
|
||||
"Delete group": "Slett gruppe",
|
||||
"Group options": "Gruppealternativer",
|
||||
"Cancel": "Avbryt",
|
||||
"Import menu options": "Importer menyvalg",
|
||||
"Member options": "Medlemsalternativer",
|
||||
"New document in <em>{{ collectionName }}</em>": "Nytt dokument i <em>{{ collectionName }}</em>",
|
||||
"New child document": "Nytt underdokument",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Legg til et svar",
|
||||
"Reply": "Svar",
|
||||
"Post": "Publiser",
|
||||
"Cancel": "Avbryt",
|
||||
"Upload image": "Last opp bilde",
|
||||
"No resolved comments": "Ingen løste kommentarer",
|
||||
"No comments yet": "Ingen kommentarer enda",
|
||||
"New comments": "Nye kommentarer",
|
||||
"Sort comments": "Sorter kommentarer",
|
||||
"Most recent": "Siste",
|
||||
"Order in doc": "Sortering i dokument",
|
||||
"Resolved": "Løst",
|
||||
"Sort comments": "Sorter kommentarer",
|
||||
"Show {{ count }} reply": "Vis {{ count }} svar",
|
||||
"Show {{ count }} reply_plural": "Vis {{ count }} svar",
|
||||
"Error updating comment": "Feil ved oppdatering av kommentar",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Ingen dokumenter funnet for dine filtre.",
|
||||
"You’ve not got any drafts at the moment.": "Du har ingen utkast for øyeblikket.",
|
||||
"Payment Required": "Betaling kreves",
|
||||
"Not Found": "Ikke funnet",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Vi kunne ikke finne siden du leter etter. Gå til <2>hjemmesiden</2>?",
|
||||
"No access to this doc": "Ingen tilgang til dette dokumentet",
|
||||
"It doesn’t look like you have permission to access this document.": "Det ser ikke ut til at du har tillatelse til å se dette dokumentet.",
|
||||
"Please request access from the document owner.": "Vennligst be om tilgang fra eieren av dokumentet.",
|
||||
"Not found": "Ikke funnet",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "Siden du leter etter finnes ikke. Den kan ha blitt slettet, eller så er lenken feil.",
|
||||
"Offline": "Frakoblet",
|
||||
"We were unable to load the document while offline.": "Vi kunne ikke laste inn dokumentet mens vi var frakoblet.",
|
||||
"Your account has been suspended": "Din konto har blitt suspendert",
|
||||
@@ -769,7 +778,7 @@
|
||||
"Inline code": "Innebygd kode",
|
||||
"Inline LaTeX": "Innebygd LaTeX",
|
||||
"Triggers": "Utløsere",
|
||||
"Mention users and more": "Nevn bruker eller dokument",
|
||||
"Mention users and more": "Nevn brukere og mer",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Sett inn blokk",
|
||||
"Sign In": "Logg inn",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Beklager, det ser ut som at innloggingslenken ikke lenger er gyldig, vennligst prøv å be om en ny.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Kontoen din har blitt suspendert. For å reaktivere kontoen din, vennligst kontakt en administrator for arbeidsområdet.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Dette arbeidsområdet har blitt suspendert. Vennligst kontakt støtte for å gjenopprette tilgangen.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Autentisering mislyktes – denne innloggingsmetoden ble deaktivert av en teamadministrator.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Autentisering feilet – denne innloggingsmetoden ble deaktivert av en administrator.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "Arbeidsområdet du prøver å bli med krever en invitasjon før du kan opprette en konto.<1></1>Vennligst be om en invitasjon fra din arbeidsområdeadministrator og prøv igjen.",
|
||||
"Sorry, an unknown error occurred.": "Beklager, det oppstod en ukjent feil.",
|
||||
"Login": "Logg inn",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Eller",
|
||||
"Already have an account? Go to <1>login</1>.": "Har du allerede en konto? Gå til <1>innlogging</1>.",
|
||||
"Any collection": "Enhver samling",
|
||||
"Any time": "Når som helst",
|
||||
"All time": "Når som helst",
|
||||
"Past day": "Siste dag",
|
||||
"Past week": "Siste uke",
|
||||
"Past month": "Siste måned",
|
||||
"Past year": "Siste år",
|
||||
"Any time": "Når som helst",
|
||||
"Remove document filter": "Fjern dokumentfilter",
|
||||
"Any status": "Valgfri status",
|
||||
"Remove search": "Fjern søk",
|
||||
"Any author": "Enhver forfatter",
|
||||
"Author": "Forfatter",
|
||||
"We were unable to find the page you’re looking for.": "Vi kunne ikke finne siden du leter etter.",
|
||||
"Search titles only": "Søk kun i titler",
|
||||
"Something went wrong": "Noe gikk galt",
|
||||
"Please try again or contact support if the problem persists": "Prøv igjen eller kontakt kundestøtte hvis problemet vedvarer",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Ingen flere personer å legge til",
|
||||
"Date created": "Dato opprettet",
|
||||
"Upload": "Last opp",
|
||||
"Crop image": "Beskjær bilde",
|
||||
"Uploading": "Laster opp",
|
||||
"How does this work?": "Hvordan fungerer dette?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Du kan importere en zip-fil som tidligere ble eksportert fra JSON-alternativet i en annen instans. I {{ appName }}, åpne <em>Eksport</em> i innstillingssidestolpen og klikk på <em>Eksporter Data</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Dra og slipp zip-filen fra JSON-eksportalternativet i {{appName}}, eller klikk for å laste opp",
|
||||
"Canceled": "Avbrutt",
|
||||
"Import canceled": "Import avbrutt",
|
||||
"Are you sure you want to cancel this import?": "Er du sikker på at du vil avbryte denne importen?",
|
||||
"Canceling": "Avbryter",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Avbryting av denne importen vil forkaste fremgangen. Handlingen kan ikke angres.",
|
||||
"{{ count }} document imported": "{{ count }} dokument importert",
|
||||
"{{ count }} document imported_plural": "{{ count }} dokumenter importert",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Du kan importere en zip-fil som tidligere ble eksportert fra en Outline-installasjon – samlinger, dokumenter og bilder vil bli importert. I Outline, åpne <em>Eksport</em> i innstillingssidestolpen og klikk på <em>Eksporter Data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Dra og slipp zip-filen fra Markdown-eksportalternativet i {{appName}}, eller klikk for å laste opp",
|
||||
"Where do I find the file?": "Hvor finner jeg filen?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "I Notion, klikk på <em>Innstillinger & Medlemmer</em> i venstre sidestolpe og åpne Innstillinger. Se etter eksportseksjonen og klikk på <em>Eksporter alt arbeidsområdeinnhold</em>. Velg <em>HTML</em> som format for best datakompatibilitet.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Dra og slipp zip-filen fra Notions HTML-eksportalternativ, eller klikk for å laste opp",
|
||||
"Last active": "Sist aktiv",
|
||||
"Guest": "Gjest",
|
||||
"Shared by": "Delt av",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Redaktører",
|
||||
"All status": "Alle statuser",
|
||||
"Active": "Aktiv",
|
||||
"Left": "Venstre",
|
||||
"Right": "Høyre",
|
||||
"Settings saved": "Innstillinger lagret",
|
||||
"Logo updated": "Logo oppdatert",
|
||||
"Unable to upload new logo": "Kan ikke laste opp ny logo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Vis teamets logo på offentlige sider som innlogging og delte dokumenter.",
|
||||
"Table of contents position": "Posisjon for innholdsfortegnelse",
|
||||
"The side to display the table of contents in relation to the main content.": "Siden for plasseringen av innholdsfortegnelsen i relasjon til hovedinnholdet.",
|
||||
"Left": "Venstre",
|
||||
"Right": "Høyre",
|
||||
"Behavior": "Oppførsel",
|
||||
"Subdomain": "Underdomene",
|
||||
"Your workspace will be accessible at": "Arbeidsområdet ditt vil være tilgjengelig på",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Velg et underdomene for å aktivere en innloggingsside bare for teamet ditt.",
|
||||
"Start view": "Startvisning",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Dette er skjermen som medlemmer av arbeidsområdet vil se først når de logger seg inn.",
|
||||
"Danger": "Fare",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Du kan slette hele dette arbeidsområdet, inkludert samlinger, dokumenter og brukere.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "Ny gruppe",
|
||||
"Groups can be used to organize and manage the people on your team.": "Grupper kan brukes til å organisere og administrere personene på teamet ditt.",
|
||||
"No groups have been created yet": "Ingen grupper har blitt opprettet ennå",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Overfør raskt dine eksisterende dokumenter, sider og filer fra andre verktøy og tjenester til {{appName}}. Du kan også dra og slippe HTML-, Markdown- og tekst-dokumenter direkte inn i Samlinger i appen.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importer en zip-fil med Markdown-dokumenter (eksportert fra versjon 0.67.0 eller tidligere)",
|
||||
"Import data": "Importer data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importer en JSON datafil eksportert fra en annen {{ appName }}-instans",
|
||||
"Import pages exported from Notion": "Importer sider eksportert fra Notion",
|
||||
"Import pages from a Confluence instance": "Importer sider fra en Confluence-instans",
|
||||
"Enterprise": "Bedrift",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Overfør raskt dine eksisterende dokumenter, sider og filer fra andre verktøy og tjenester til {{appName}}. Du kan også dra og slippe HTML-, Markdown- og tekst-dokumenter direkte inn i Samlinger i appen.",
|
||||
"Recent imports": "Nylige importer",
|
||||
"Could not load members": "Kunne ikke laste medlemmer",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Alle som er logget inn i {{appName}} vises her. Det er mulig at det er andre brukere som har tilgang via {{signinMethods}}, men som ikke har logget inn enda.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Tillat redaktører å opprette nye samlinger i arbeidsområdet",
|
||||
"Workspace creation": "Oppretting av arbeidsområde",
|
||||
"Allow editors to create new workspaces": "Tillat redaktører å opprette nye arbeidsområder",
|
||||
"Draw.io deployment": "Draw.io-implementering",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Legg til URL-en for din egen-hostede draw.io-installasjon her for å aktivere automatisk innbedning av diagrammer i dokumenter.",
|
||||
"Grist deployment": "Grist-implementering",
|
||||
"Add your self-hosted grist installation URL here.": "Legg til URL-en for din egen-hostede Grist-installasjon her.",
|
||||
"Could not load shares": "Kunne ikke laste delinger",
|
||||
"Sharing is currently disabled.": "Deling er for øyeblikket deaktivert.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Du kan globalt aktivere og deaktivere offentlig deling av dokumenter i <em>sikkerhetsinnstillingene</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "URL-adressen til Matomo-forekomsten. Hvis du bruker Matomo Cloud slutter den på matomo.cloud/",
|
||||
"Site ID": "Site ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "En ID som unikt identifiserer nettstedet i din Matomo-forekomst.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Ops, du må akseptere tillatelsene i Notion for å koble til {{ appName }} til ditt arbeidsområde. Prøv igjen?",
|
||||
"Import pages from Notion": "Importer sider fra Notion",
|
||||
"Add to Slack": "Legg til i Slack",
|
||||
"document published": "dokument publisert",
|
||||
"document updated": "dokument oppdatert",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} oppdaterte {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Du opprettet {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} opprettet {{ timeAgo }}",
|
||||
"Uploading": "Laster opp"
|
||||
}
|
||||
"Error loading data": "Feil ved lasting av data"
|
||||
}
|
||||
|
||||
@@ -11,13 +11,17 @@
|
||||
"Search in collection": "Zoek in collecties",
|
||||
"Star": "Maak favoriet",
|
||||
"Unstar": "Verwijder favoriet",
|
||||
"Subscribe": "Abonneer",
|
||||
"Subscribed to document notifications": "Geabonneerd op documentmeldingen",
|
||||
"Unsubscribe": "Afmelden",
|
||||
"Unsubscribed from document notifications": "Afgemeld van documentmeldingen",
|
||||
"Archive": "Archiveren",
|
||||
"Archive collection": "Archive collection",
|
||||
"Collection archived": "Collection archived",
|
||||
"Archive collection": "Zoek in collecties",
|
||||
"Collection archived": "Collectie aangemaakt",
|
||||
"Archiving": "Achiveren",
|
||||
"Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.": "Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.",
|
||||
"Archiving this collection will also archive all documents within it. Documents from the collection will no longer be visible in search results.": "Het archiveren van deze collectie zal ook alle documenten erin archiveren. Documenten uit de collectie zullen niet langer zichtbaar zijn in de zoekresultaten.",
|
||||
"Restore": "Herstel",
|
||||
"Collection restored": "Collection restored",
|
||||
"Collection restored": "Collectie aangemaakt",
|
||||
"Delete": "Verwijder",
|
||||
"Delete collection": "Verwijder collectie",
|
||||
"New template": "Nieuw sjabloon",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "Ontwikkeling",
|
||||
"Open document": "Open document",
|
||||
"New document": "Nieuw document",
|
||||
"New draft": "New draft",
|
||||
"New draft": "Nieuw concept",
|
||||
"New from template": "Nieuw op basis van sjabloon",
|
||||
"New nested document": "Nieuw genest document",
|
||||
"Publish": "Publiceer",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Publiceer document",
|
||||
"Unpublish": "De-publiceer",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} gedepubliceerd",
|
||||
"Subscribe": "Abonneer",
|
||||
"Subscribed to document notifications": "Geabonneerd op documentmeldingen",
|
||||
"Unsubscribe": "Afmelden",
|
||||
"Unsubscribed from document notifications": "Afgemeld van documentmeldingen",
|
||||
"Share this document": "Deel dit document",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Download document",
|
||||
"Copy as Markdown": "Kopieer als Markdown",
|
||||
"Markdown copied to clipboard": "Markdown gekopieerd naar klembord",
|
||||
"Copy as text": "Kopiëren als tekst",
|
||||
"Text copied to clipboard": "Text gekopieerd",
|
||||
"Copy public link": "Kopieer openbare link",
|
||||
"Link copied to clipboard": "Link gekopieerd naar klembord",
|
||||
"Copy link": "Kopieer link",
|
||||
@@ -82,9 +84,9 @@
|
||||
"Move": "Verplaatsen",
|
||||
"Move to collection": "Verplaats naar collectie",
|
||||
"Move {{ documentType }}": "Verplaats {{ documentType }}",
|
||||
"Are you sure you want to archive this document?": "Are you sure you want to archive this document?",
|
||||
"Are you sure you want to archive this document?": "Weet u zeker dat u dit incident wilt archiveren?",
|
||||
"Document archived": "Document gearchiveerd",
|
||||
"Archiving this document will remove it from the collection and search results.": "Archiving this document will remove it from the collection and search results.",
|
||||
"Archiving this document will remove it from the collection and search results.": "Het archiveren van dit document zal het verwijderen uit de collectie- en zoekresultaten.",
|
||||
"Delete {{ documentName }}": "Verwijder {{ documentName }}",
|
||||
"Permanently delete": "Definitief verwijderen",
|
||||
"Permanently delete {{ documentName }}": "{{ documentName }} definitief verwijderen",
|
||||
@@ -93,13 +95,14 @@
|
||||
"Comments": "Opmerkingen",
|
||||
"History": "Geschiedenis",
|
||||
"Insights": "Inzichten",
|
||||
"Disable viewer insights": "Disable viewer insights",
|
||||
"Enable viewer insights": "Enable viewer insights",
|
||||
"Disable viewer insights": "Schakel viewer inzichten uit",
|
||||
"Enable viewer insights": "Schakel viewer inzichten uit",
|
||||
"Leave document": "Verlaat document",
|
||||
"You have left the shared document": "You have left the shared document",
|
||||
"Could not leave document": "Could not leave document",
|
||||
"You have left the shared document": "U hebt het gedeelde document verlaten",
|
||||
"Could not leave document": "Kon document niet verlaten",
|
||||
"Home": "Startscherm",
|
||||
"Drafts": "Concepten",
|
||||
"Search": "Zoek",
|
||||
"Trash": "Prullenbak",
|
||||
"Settings": "Instellingen",
|
||||
"Profile": "Profiel",
|
||||
@@ -129,14 +132,15 @@
|
||||
"Select a workspace": "Selecteer een workspace",
|
||||
"New workspace": "Nieuwe workspace",
|
||||
"Create a workspace": "Maak een workspace aan",
|
||||
"Login to workspace": "Login to workspace",
|
||||
"Login to workspace": "Login op werkruimte",
|
||||
"Invite people": "Personen uitnodigen",
|
||||
"Invite to workspace": "Nodig uit voor workspace",
|
||||
"Promote to {{ role }}": "Promote to {{ role }}",
|
||||
"Demote to {{ role }}": "Demote to {{ role }}",
|
||||
"Promote to {{ role }}": "Promoveren naar {{ role }}",
|
||||
"Demote to {{ role }}": "Degradeer naar {{ role }}",
|
||||
"Update role": "Werk rol bij",
|
||||
"Delete user": "Verwijder gebruiker",
|
||||
"Collection": "Collectie",
|
||||
"Collections": "Collecties",
|
||||
"Debug": "Fout opsporen",
|
||||
"Document": "Document",
|
||||
"Documents": "Documenten",
|
||||
@@ -154,7 +158,7 @@
|
||||
"Viewers": "Kijkers",
|
||||
"Collections are used to group documents and choose permissions": "Collecties worden gebruikt om documenten te groeperen en rechten te kiezen",
|
||||
"Name": "Naam",
|
||||
"The default access for workspace members, you can share with more users or groups later.": "The default access for workspace members, you can share with more users or groups later.",
|
||||
"The default access for workspace members, you can share with more users or groups later.": "De standaard toegang voor workspace-leden, kunt u later met meer gebruikers of groepen delen.",
|
||||
"Public document sharing": "Openbaar documenten delen",
|
||||
"Allow documents within this collection to be shared publicly on the internet.": "Toestaan dat documenten uit deze collectie openbaar gedeeld kunnen worden op het internet.",
|
||||
"Saving": "Bezig met opslaan",
|
||||
@@ -173,14 +177,14 @@
|
||||
"Are you sure you want to permanently delete this entire comment thread?": "Weet je zeker dat je deze thread definitief wil verwijderen?",
|
||||
"Are you sure you want to permanently delete this comment?": "Weet je zeker dat je deze reactie definitief wilt verwijderen?",
|
||||
"Confirm": "Bevestigen",
|
||||
"manage access": "manage access",
|
||||
"manage access": "toegang beheren",
|
||||
"view and edit access": "bekijk en wijzig toegang",
|
||||
"view only access": "alleen toegang weergeven",
|
||||
"no access": "geen toegang",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "You do not have permission to move {{ documentName }} to the {{ collectionName }} collection",
|
||||
"You do not have permission to move {{ documentName }} to the {{ collectionName }} collection": "Je bent niet gemachtigd om {{ documentName }} te verplaatsen naar de {{ collectionName }} collectie",
|
||||
"Move document": "Document verplaatsen",
|
||||
"Moving": "Verplaatsen",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.",
|
||||
"Moving the document <em>{{ title }}</em> to the {{ newCollectionName }} collection will change permission for all workspace members from <em>{{ prevPermission }}</em> to <em>{{ newPermission }}</em>.": "Het document <em>{{ title }}</em> verplaatsen naar de {{ newCollectionName }} collectie zal de rechten voor alle werkruimte van <em>{{ prevPermission }}</em> wijzigen naar <em>{{ newPermission }}</em>.",
|
||||
"Document is too large": "Document is te groot",
|
||||
"This document has reached the maximum size and can no longer be edited": "Bewerken is niet mogelijk. De maximale grootte van het document is bereikt.",
|
||||
"Authentication failed": "Authenticatie mislukt",
|
||||
@@ -194,16 +198,17 @@
|
||||
"Submenu": "Submenu",
|
||||
"Collections could not be loaded, please reload the app": "Collecties konden niet worden geladen, start de app alsjeblieft opnieuw op",
|
||||
"Default collection": "Standaard collectie",
|
||||
"Start view": "Start weergave",
|
||||
"Install now": "Nu installeren",
|
||||
"Deleted Collection": "Verwijderde Collectie",
|
||||
"Untitled": "Naamloos",
|
||||
"Unpin": "Losmaken",
|
||||
"{{ minutes }}m read": "{{ minutes }}m read",
|
||||
"Select a location to copy": "Select a location to copy",
|
||||
"Document copied": "Document copied",
|
||||
"Couldn’t copy the document, try again?": "Couldn’t copy the document, try again?",
|
||||
"{{ minutes }}m read": "{{ minutes }}m gelezen",
|
||||
"Select a location to copy": "Selecteer een locatie om te publiceren",
|
||||
"Document copied": "Bestand is gekopieerd",
|
||||
"Couldn’t copy the document, try again?": "Kon het document niet verplaatsen. Probeer het nog een keer?",
|
||||
"Include nested documents": "Inclusief geneste documenten",
|
||||
"Copy to <em>{{ location }}</em>": "Copy to <em>{{ location }}</em>",
|
||||
"Copy to <em>{{ location }}</em>": "Verplaatsen naar <em>{{ location }}</em>",
|
||||
"Search collections & documents": "Zoeken in collecties en documenten",
|
||||
"No results found": "Geen resultaten gevonden",
|
||||
"New": "Nieuw",
|
||||
@@ -247,8 +252,8 @@
|
||||
"{{userName}} archived": "{{userName}} gearchiveerd",
|
||||
"{{userName}} restored": "{{userName}} hersteld",
|
||||
"{{userName}} deleted": "{{userName}} verwijderd",
|
||||
"{{userName}} added {{addedUserName}}": "{{userName}} added {{addedUserName}}",
|
||||
"{{userName}} removed {{removedUserName}}": "{{userName}} removed {{removedUserName}}",
|
||||
"{{userName}} added {{addedUserName}}": "{{userName}} toegevoegd {{addedUserName}}",
|
||||
"{{userName}} removed {{removedUserName}}": "{{userName}} toegevoegd {{removedUserName}}",
|
||||
"{{userName}} moved from trash": "{{userName}} uit prullenbak verplaatst",
|
||||
"{{userName}} published": "{{userName}} gepubliceerd",
|
||||
"{{userName}} unpublished": "{{userName}} gedepubliceerd",
|
||||
@@ -266,11 +271,11 @@
|
||||
"Including uploaded images and files in the exported data": "Geüploade afbeeldingen en bestanden worden aan de geëxporteerde data toegevoegd",
|
||||
"Filter": "Filter",
|
||||
"No results": "Geen resultaten",
|
||||
"{{authorName}} created <3></3>": "{{authorName}} created <3></3>",
|
||||
"{{authorName}} opened <3></3>": "{{authorName}} opened <3></3>",
|
||||
"{{authorName}} created <3></3>": "{{authorName}} heeft <3></3> aangemaakt",
|
||||
"{{authorName}} opened <3></3>": "{{authorName}} heeft <3></3> aangemaakt",
|
||||
"Search emoji": "Zoek emoji",
|
||||
"Search icons": "Zoek pictogrammen",
|
||||
"Choose default skin tone": "Choose default skin tone",
|
||||
"Choose default skin tone": "Kies standaard accentkleur",
|
||||
"Show menu": "Toon menu",
|
||||
"Icon Picker": "Pictogrammenkiezer",
|
||||
"Icons": "Pictogrammen",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Vlaggen",
|
||||
"Select a color": "Selecteer een kleur",
|
||||
"Loading": "Aan het laden",
|
||||
"Search": "Zoek",
|
||||
"Permission": "Rechten",
|
||||
"View only": "Alleen bekijken",
|
||||
"Can edit": "Kan bewerken",
|
||||
@@ -304,14 +308,14 @@
|
||||
"Unknown": "Onbekend",
|
||||
"Mark all as read": "Markeer alles als gelezen",
|
||||
"You're all caught up": "Je bent helemaal bij",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} and {{ count }} other reacted with {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}",
|
||||
"{{ username }} reacted with {{ emoji }}": "{{ username }} reageerde met {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ secondUsername }} reacted with {{ emoji }}": "{{ firstUsername }} en {{ secondUsername }} reageerden met {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}": "{{ firstUsername }} en {{ count }} reageerden met {{ emoji }}",
|
||||
"{{ firstUsername }} and {{ count }} others reacted with {{ emoji }}_plural": "{{ firstUsername }} en {{ count }} reageerden met {{ emoji }}",
|
||||
"Add reaction": "Voeg een reactie toe",
|
||||
"Reaction picker": "Reaction picker",
|
||||
"Could not load reactions": "Could not load reactions",
|
||||
"Reaction": "Reaction",
|
||||
"Reaction picker": "Reactie kiezer",
|
||||
"Could not load reactions": "Kon reacties niet laden",
|
||||
"Reaction": "Reactie",
|
||||
"Results": "Resultaten",
|
||||
"No results for {{query}}": "Geen zoekresultaten voor {{query}}",
|
||||
"Manage": "Beheer",
|
||||
@@ -321,15 +325,15 @@
|
||||
"{{ count }} member_plural": "{{ count }} leden",
|
||||
"Invite": "Uitnodigen",
|
||||
"{{ userName }} was added to the collection": "{{ userName }} is aan de verzameling toegevoegd",
|
||||
"{{ count }} people added to the collection": "{{ count }} people added to the collection",
|
||||
"{{ count }} people added to the collection_plural": "{{ count }} people added to the collection",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection": "{{ count }} people and {{ count2 }} groups added to the collection",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection_plural": "{{ count }} people and {{ count2 }} groups added to the collection",
|
||||
"{{ count }} people added to the collection": "{{ count }} is aan de verzameling toegevoegd",
|
||||
"{{ count }} people added to the collection_plural": "{{ count }} is aan de verzameling toegevoegd",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection": "{{ count }} personen en {{ count2 }} groepen toegevoegd aan de collectie",
|
||||
"{{ count }} people and {{ count2 }} groups added to the collection_plural": "{{ count }} personen en {{ count2 }} groepen toegevoegd aan de collectie",
|
||||
"Add": "Toevoegen",
|
||||
"Add or invite": "Toevoegen of uitnodigen",
|
||||
"Viewer": "Kijker",
|
||||
"Editor": "Bewerker",
|
||||
"Suggestions for invitation": "Suggestions for invitation",
|
||||
"Suggestions for invitation": "Suggesties voor uitnodiging",
|
||||
"No matches": "Geen overeenkomsten",
|
||||
"Can view": "Kan bekijken",
|
||||
"Everyone in the collection": "Iedereen in de collectie",
|
||||
@@ -357,18 +361,17 @@
|
||||
"Allow anyone with the link to access": "Geef iedereen met de link toegang",
|
||||
"Publish to internet": "Publiceer op internet",
|
||||
"Search engine indexing": "Indexering zoekmachine",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Disable this setting to discourage search engines from indexing the page",
|
||||
"Disable this setting to discourage search engines from indexing the page": "Schakel deze instelling uit om zoekmachines te ontmoedigen bij het indexeren van de pagina",
|
||||
"Nested documents are not shared on the web. Toggle sharing to enable access, this will be the default behavior in the future": "Geneste documenten worden niet gedeeld op het web, schakel hiervoor delen in. Dit zal in de toekomst de standaardinstelling zijn.",
|
||||
"{{ userName }} was added to the document": "{{ userName }} was added to the document",
|
||||
"{{ count }} people added to the document": "{{ count }} people added to the document",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} people added to the document",
|
||||
"{{ count }} groups added to the document": "{{ count }} groups added to the document",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} groups added to the document",
|
||||
"{{ userName }} was added to the document": "{{ userName }} is uitgenodigd voor het document",
|
||||
"{{ count }} people added to the document": "{{ count }} persoon uitgenodigd voor het document",
|
||||
"{{ count }} people added to the document_plural": "{{ count }} persoon uitgenodigd voor het document",
|
||||
"{{ count }} groups added to the document": "{{ count }} persoon uitgenodigd voor het document",
|
||||
"{{ count }} groups added to the document_plural": "{{ count }} persoon uitgenodigd voor het document",
|
||||
"Logo": "Logo",
|
||||
"Archived collections": "Archived collections",
|
||||
"Archived collections": "Zoek in collecties",
|
||||
"New doc": "Nieuw document",
|
||||
"Empty": "Leeg",
|
||||
"Collections": "Collecties",
|
||||
"Collapse": "Invouwen",
|
||||
"Expand": "Uitvouwen",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Document niet ondersteund - probeer Markdown, platte tekst, HTML of Word",
|
||||
@@ -383,9 +386,9 @@
|
||||
"{{ releasesBehind }} versions behind": "{{ releasesBehind }} versie achter",
|
||||
"{{ releasesBehind }} versions behind_plural": "{{ releasesBehind }} versies achter",
|
||||
"Change permissions?": "Rechten wijzigen?",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} cannot be moved within {{ parentDocumentName }}",
|
||||
"{{ documentName }} cannot be moved within {{ parentDocumentName }}": "{{ documentName }} kan niet verplaatst worden binnen {{ parentDocumentName }}",
|
||||
"You can't reorder documents in an alphabetically sorted collection": "U kunt documenten in een alfabetisch gesorteerde verzameling niet opnieuw ordenen",
|
||||
"The {{ documentName }} cannot be moved here": "The {{ documentName }} cannot be moved here",
|
||||
"The {{ documentName }} cannot be moved here": "{{ documentName }} kan hier niet naartoe verplaatst worden",
|
||||
"Return to App": "Terug naar de app",
|
||||
"Installation": "Installatie",
|
||||
"Unstar document": "Document verwijderen uit favorieten",
|
||||
@@ -393,23 +396,23 @@
|
||||
"Template created, go ahead and customize it": "Sjabloon gemaakt, ga aan de gang en pas het aan",
|
||||
"Creating a template from <em>{{titleWithDefault}}</em> is a non-destructive action – we'll make a copy of the document and turn it into a template that can be used as a starting point for new documents.": "Het maken van een sjabloon van <em>{{titleWithDefault}}</em> is een niet-destructieve actie – we maken een kopie van het document en maken daar een sjabloon van dat kan worden gebruikt als uitgangspunt voor nieuwe documenten.",
|
||||
"Published": "Gepubliceerd",
|
||||
"Enable other members to use the template immediately": "Enable other members to use the template immediately",
|
||||
"Enable other members to use the template immediately": "Schakel andere leden in om de sjabloon onmiddellijk te gebruiken",
|
||||
"Location": "Locatie",
|
||||
"Admins can manage the workspace and access billing.": "Admins can manage the workspace and access billing.",
|
||||
"Editors can create, edit, and comment on documents.": "Editors can create, edit, and comment on documents.",
|
||||
"Viewers can only view and comment on documents.": "Viewers can only view and comment on documents.",
|
||||
"Are you sure you want to make {{ userName }} a {{ role }}?": "Are you sure you want to make {{ userName }} a {{ role }}?",
|
||||
"Admins can manage the workspace and access billing.": "Beheerders kunnen de werkruimte en toegangsadministratie beheren.",
|
||||
"Editors can create, edit, and comment on documents.": "Editors kunnen documenten, bewerken en commentaar geven.",
|
||||
"Viewers can only view and comment on documents.": "Kijkers kunnen alleen bekijken en reageren op documenten.",
|
||||
"Are you sure you want to make {{ userName }} a {{ role }}?": "Weet je zeker dat je {{ userName }} een {{ role }} wilt maken?",
|
||||
"I understand, delete": "Ik begrijp het, verwijder",
|
||||
"Are you sure you want to permanently delete {{ userName }}? This operation is unrecoverable, consider suspending the user instead.": "Weet u zeker dat u {{ userName }} permanent wilt verwijderen? Deze bewerking kan niet worden hersteld. Overweeg in plaats daarvan de gebruiker te blokkeren.",
|
||||
"Are you sure you want to suspend {{ userName }}? Suspended users will be prevented from logging in.": "Weet je zeker dat je het account {{ userName }} wilt blokkeren? Geblokeerde gebruikers kunnen niet meer inloggen.",
|
||||
"New name": "Nieuwe naam",
|
||||
"Name can't be empty": "Naam mag niet leeg zijn",
|
||||
"Check your email to verify the new address.": "Check your email to verify the new address.",
|
||||
"The email will be changed once verified.": "The email will be changed once verified.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "You will receive an email to verify your new address. It must be unique in the workspace.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "A confirmation email will be sent to the new address before it is changed.",
|
||||
"New email": "New email",
|
||||
"Email can't be empty": "Email can't be empty",
|
||||
"Check your email to verify the new address.": "Controleer je e-mail om het nieuwe adres te verifiëren.",
|
||||
"The email will be changed once verified.": "De e-mail zal worden gewijzigd na controle.",
|
||||
"You will receive an email to verify your new address. It must be unique in the workspace.": "Je ontvangt een e-mail om je nieuwe adres te verifiëren. Het moet uniek zijn in de werkruimte.",
|
||||
"A confirmation email will be sent to the new address before it is changed.": "Een bevestigingsmail zal worden verzonden naar het nieuwe adres voordat het wordt gewijzigd.",
|
||||
"New email": "Nieuw e-mailadres",
|
||||
"Email can't be empty": "E-mail mag niet leeg zijn",
|
||||
"Your import completed": "Importeren voltooid",
|
||||
"Previous match": "Vorige match",
|
||||
"Next match": "Volgende match",
|
||||
@@ -423,13 +426,14 @@
|
||||
"Replace all": "Vervang alle",
|
||||
"Profile picture": "Profielfoto",
|
||||
"Create a new doc": "Maak een nieuw document",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Add column after",
|
||||
"Add column before": "Add column before",
|
||||
"Add row after": "Add row after",
|
||||
"Add row before": "Add row before",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} wordt niet verwittigd omdat ze geen toegang hebben tot dit document",
|
||||
"Keep as link": "Behoud als link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Insluiten",
|
||||
"Add column after": "Kolom toevoegen",
|
||||
"Add column before": "Kolom ervoor toevoegen",
|
||||
"Add row after": "Rij toevoegen",
|
||||
"Add row before": "Rij invoegen",
|
||||
"Align center": "Centreer",
|
||||
"Align left": "Links uitlijnen",
|
||||
"Align right": "Rechts uitlijnen",
|
||||
@@ -454,11 +458,11 @@
|
||||
"Italic": "Cursief",
|
||||
"Sorry, that link won’t work for this embed type": "Sorry, die link werkt niet voor dit insluitingstype",
|
||||
"File attachment": "Bestandsbijlage",
|
||||
"Enter a link": "Enter a link",
|
||||
"Enter a link": "Voer een link in",
|
||||
"Big heading": "Grote titel",
|
||||
"Medium heading": "Middelgrote titel",
|
||||
"Small heading": "Kleine titel",
|
||||
"Extra small heading": "Extra small heading",
|
||||
"Extra small heading": "Extra kleine kop",
|
||||
"Heading": "Kop",
|
||||
"Divider": "Scheidingslijn",
|
||||
"Image": "Afbeelding",
|
||||
@@ -484,11 +488,11 @@
|
||||
"Strikethrough": "Doorstrepen",
|
||||
"Bold": "Dikgedrukt",
|
||||
"Subheading": "Subtitel",
|
||||
"Sort ascending": "Sort ascending",
|
||||
"Sort descending": "Sort descending",
|
||||
"Sort ascending": "Oplopend sorteren",
|
||||
"Sort descending": "Aflopend sorteren",
|
||||
"Table": "Tabel",
|
||||
"Export as CSV": "Export as CSV",
|
||||
"Toggle header": "Toggle header",
|
||||
"Export as CSV": "Exporteren als CSV",
|
||||
"Toggle header": "Schakel koptekst",
|
||||
"Math inline (LaTeX)": "Wiskunde inlijn (LaTeX)",
|
||||
"Math block (LaTeX)": "Wiskundeblok (LaTeX)",
|
||||
"Tip": "Tip",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "Geen",
|
||||
"Could not import file": "Kon bestand niet importeren",
|
||||
"Unsubscribed from document": "Afgemeld voor document",
|
||||
"Unsubscribed from collection": "Afgemeld voor collectie",
|
||||
"Account": "Account",
|
||||
"API Keys": "API-sleutels",
|
||||
"Details": "Details",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Groepen",
|
||||
"Shared Links": "Gedeelde links",
|
||||
"Import": "Importeer",
|
||||
"Self Hosted": "Self-hosted",
|
||||
"Integrations": "Intergraties",
|
||||
"Revoke token": "Tokens intrekken",
|
||||
"Revoke": "Intrekken",
|
||||
@@ -525,25 +529,28 @@
|
||||
"Export collection": "Exporteer collectie",
|
||||
"Rename": "Hernoem",
|
||||
"Sort in sidebar": "Sorteer in zijbalk",
|
||||
"A-Z sort": "A-Z sort",
|
||||
"Z-A sort": "Z-A sort",
|
||||
"A-Z sort": "A-Z sorteren",
|
||||
"Z-A sort": "Z-A sorteren",
|
||||
"Manual sort": "Sorteer handmatig",
|
||||
"Comment options": "Opties voor reageren",
|
||||
"Show document menu": "Show document menu",
|
||||
"{{ documentName }} restored": "{{ documentName }} restored",
|
||||
"Show document menu": "Documentmenu weergeven",
|
||||
"{{ documentName }} restored": "{{ documentName }} hersteld",
|
||||
"Document options": "Documentopties",
|
||||
"Choose a collection": "Kies een collectie",
|
||||
"Subscription inherited from collection": "Abonnement overgenomen van de collectie",
|
||||
"Enable embeds": "Embeds inschakelen",
|
||||
"Export options": "Exporteer instellingen",
|
||||
"Group members": "Groepeer leden",
|
||||
"Edit group": "Wijzig groep",
|
||||
"Delete group": "Verwijder groep",
|
||||
"Group options": "Groepsopties",
|
||||
"Cancel": "Annuleer",
|
||||
"Import menu options": "Importeer menuopties",
|
||||
"Member options": "Gebruikersopties",
|
||||
"New document in <em>{{ collectionName }}</em>": "Nieuw document in <em>{{ collectionName }}</em>",
|
||||
"New child document": "Nieuw subdocument",
|
||||
"Save in workspace": "Save in workspace",
|
||||
"Notification settings": "Notification settings",
|
||||
"Save in workspace": "Verplaats naar workspace",
|
||||
"Notification settings": "Meldingsinstellingen",
|
||||
"Revision options": "Revisie opties",
|
||||
"Share link revoked": "Deel-link ingetrokken",
|
||||
"Share link copied": "Deel-link gekopieerd",
|
||||
@@ -554,7 +561,7 @@
|
||||
"Headings you add to the document will appear here": "Koppen die u aan het document toevoegt, verschijnen hier",
|
||||
"Table of contents": "Inhoudsopgave",
|
||||
"Change name": "Naam wijzigen",
|
||||
"Change email": "Change email",
|
||||
"Change email": "Wijzig e-mail",
|
||||
"Suspend user": "Blokkeer gebruiker",
|
||||
"An error occurred while sending the invite": "Er is een fout opgetreden bij het verzenden van de uitnodiging",
|
||||
"User options": "Gebruikersopties",
|
||||
@@ -569,14 +576,14 @@
|
||||
"created the collection": "maakte de collectie",
|
||||
"mentioned you in": "vermeldde je",
|
||||
"left a comment on": "liet een reactie achter op",
|
||||
"resolved a comment on": "resolved a comment on",
|
||||
"resolved a comment on": "heeft een reactie opgelost op",
|
||||
"shared": "gedeeld",
|
||||
"invited you to": "heeft je uitgenodigd voor",
|
||||
"Choose a date": "Kies een datum",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API key created. Please copy the value now as it will not be shown again.",
|
||||
"Scopes": "Scopes",
|
||||
"API key created. Please copy the value now as it will not be shown again.": "API-sleutel gemaakt. Kopieer de waarde nu omdat deze niet meer zal worden getoond.",
|
||||
"Scopes": "Werkingssferen",
|
||||
"Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access": "Space-separated scopes restrict the access of this API key to specific parts of the API. Leave blank for full access",
|
||||
"Expiration": "Expiration",
|
||||
"Expiration": "Vervaldatum",
|
||||
"Never expires": "Verloopt nooit",
|
||||
"7 days": "7 dagen",
|
||||
"30 days": "30 dagen",
|
||||
@@ -598,7 +605,7 @@
|
||||
"{{ groupsCount }} groups with access_plural": "{{ groupsCount }} groepen hebben toegang",
|
||||
"Archived by {{userName}}": "Gearchiveerd door {{userName}}",
|
||||
"Share": "Deel",
|
||||
"Overview": "Overview",
|
||||
"Overview": "Overzicht",
|
||||
"Recently updated": "Onlangs bijgewerkt",
|
||||
"Recently published": "Onlangs gepubliceerd",
|
||||
"Least recently updated": "Minst recent bijgewerkt",
|
||||
@@ -610,17 +617,16 @@
|
||||
"Add a reply": "Reactie toevoegen",
|
||||
"Reply": "Reageren",
|
||||
"Post": "Plaatsen",
|
||||
"Cancel": "Annuleer",
|
||||
"Upload image": "Upload afbeelding",
|
||||
"No resolved comments": "Geen opgeloste opmerkingen",
|
||||
"No comments yet": "Nog geen opmerkingen",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"New comments": "Nieuwe opmerkingen",
|
||||
"Most recent": "Meest recent",
|
||||
"Order in doc": "Bestel in doc",
|
||||
"Resolved": "Opgelost",
|
||||
"Sort comments": "Reacties sorteren",
|
||||
"Show {{ count }} reply": "Toon antwoord {{ count }}",
|
||||
"Show {{ count }} reply_plural": "Toon antwoord {{ count }}",
|
||||
"Error updating comment": "Fout bij bijwerken opmerking",
|
||||
"Document restored": "Document hersteld",
|
||||
"Images are still uploading.\nAre you sure you want to discard them?": "Afbeeldingen worden nog steeds geüpload.\nWeet u zeker dat u ze wilt verwijderen?",
|
||||
@@ -633,7 +639,7 @@
|
||||
"Type '/' to insert, or start writing…": "Typ '/' om in te voegen of begin met schrijven…",
|
||||
"Hide contents": "Inhoud verbergen",
|
||||
"Show contents": "Inhoud weergeven",
|
||||
"available when headings are added": "available when headings are added",
|
||||
"available when headings are added": "beschikbaar wanneer rubrieken worden toegevoegd",
|
||||
"Edit {{noun}}": "Wijzig {{noun}}",
|
||||
"Switch to dark": "Wissel naar donker thema",
|
||||
"Switch to light": "Wissel naar licht thema",
|
||||
@@ -643,7 +649,7 @@
|
||||
"Restore version": "Versie herstellen",
|
||||
"No history yet": "Nog geen geschiedenis",
|
||||
"Source": "Bron",
|
||||
"Imported from {{ source }}": "Imported from {{ source }}",
|
||||
"Imported from {{ source }}": "Geïmporteerd van {{ source }}",
|
||||
"Stats": "Stats",
|
||||
"{{ count }} minute read": "{{ count }} minuut gelezen",
|
||||
"{{ count }} minute read_plural": "{{ count }} minuten gelezen",
|
||||
@@ -666,7 +672,7 @@
|
||||
"No one else has viewed yet": "Nog niet door andere bekeken",
|
||||
"Viewed {{ count }} times by {{ teamMembers }} people": "{{ count }} keer bekeken door {{ teamMembers }} personen",
|
||||
"Viewed {{ count }} times by {{ teamMembers }} people_plural": "{{ count }} keer bekeken door {{ teamMembers }} personen",
|
||||
"Viewer insights are disabled.": "Viewer insights are disabled.",
|
||||
"Viewer insights are disabled.": "Bekijker inzichten zijn uitgeschakeld.",
|
||||
"Sorry, the last change could not be persisted – please reload the page": "Sorry, de laatste wijziging kon niet worden bewaard - laad de pagina opnieuw",
|
||||
"{{ count }} days": "{{ count }} dag",
|
||||
"{{ count }} days_plural": "{{ count }} dagen",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Geen documenten gevonden voor je filters.",
|
||||
"You’ve not got any drafts at the moment.": "Je hebt momenteel geen concepten.",
|
||||
"Payment Required": "Betaling vereist",
|
||||
"Not Found": "Niet gevonden",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "We kunnen de pagina die je zoekt niet vinden. Naar de <2>startpagina</2> gaan?",
|
||||
"No access to this doc": "Geen toegang tot deze verwijzing",
|
||||
"It doesn’t look like you have permission to access this document.": "Het lijkt erop dat je geen toestemming hebt om toegang te krijgen tot dit document.",
|
||||
"Please request access from the document owner.": "Vraag toegang aan van de documenteigenaar.",
|
||||
"Not found": "Niet gevonden",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "De pagina die u zoekt kan niet worden gevonden. Het is mogelijk verwijderd of de link is onjuist.",
|
||||
"Offline": "Offline",
|
||||
"We were unable to load the document while offline.": "We konden het document niet laden terwijl je offline was.",
|
||||
"Your account has been suspended": "Je account is geblokkeerd",
|
||||
@@ -713,13 +722,13 @@
|
||||
"We sent out your invites!": "We hebben je uitnodigingen verstuurd!",
|
||||
"Those email addresses are already invited": "Deze e-mailadressen zijn al uitgenodigd",
|
||||
"Sorry, you can only send {{MAX_INVITES}} invites at a time": "Sorry, je kunt enkel {{MAX_INVITES}} uitnodigingen tegelijk verzenden",
|
||||
"Invited {{roleName}} will receive access to": "Invited {{roleName}} will receive access to",
|
||||
"Invited {{roleName}} will receive access to": "Uitgenodigde {{roleName}} zal toegang krijgen tot",
|
||||
"{{collectionCount}} collections": "{{collectionCount}} collecties",
|
||||
"Admin": "Beheerder",
|
||||
"Can manage all workspace settings": "Can manage all workspace settings",
|
||||
"Can create, edit, and delete documents": "Can create, edit, and delete documents",
|
||||
"Can manage all workspace settings": "Kan alle werkruimte instellingen beheren",
|
||||
"Can create, edit, and delete documents": "Kan documenten aanmaken, bewerken en verwijderen",
|
||||
"Can view and comment": "Kan bekijken en reageren",
|
||||
"Invite people to join your workspace. They can sign in with {{signinMethods}} or use their email address.": "Invite people to join your workspace. They can sign in with {{signinMethods}} or use their email address.",
|
||||
"Invite people to join your workspace. They can sign in with {{signinMethods}} or use their email address.": "Nodig mensen uit voor uw werkruimte. Ze kunnen inloggen met {{signinMethods}} of hun e-mailadres gebruiken.",
|
||||
"Invite members to join your workspace. They will need to sign in with {{signinMethods}}.": "Nodig teamleden uit om deel te nemen aan je team. Ze moeten zich aanmelden met {{signinMethods}}.",
|
||||
"As an admin you can also <2>enable email sign-in</2>.": "Als beheerder kun je ook <2>inloggen via e-mail inschakelen</2>.",
|
||||
"Invite as": "Nodig uit als",
|
||||
@@ -751,7 +760,7 @@
|
||||
"Undo": "Ongedaan maken",
|
||||
"Redo": "Opnieuw",
|
||||
"Lists": "Lijsten",
|
||||
"Toggle task list item": "Toggle task list item",
|
||||
"Toggle task list item": "Taken lijst item in-/uitschakelen",
|
||||
"Tab": "Tab",
|
||||
"Indent list item": "Lijstitem inspringen",
|
||||
"Outdent list item": "Uitspringen lijst item",
|
||||
@@ -769,21 +778,21 @@
|
||||
"Inline code": "Inline code",
|
||||
"Inline LaTeX": "Inline LaTeX",
|
||||
"Triggers": "Triggers",
|
||||
"Mention users and more": "Mention users and more",
|
||||
"Mention users and more": "Gebruikers en meer vermelden",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Voeg blok in",
|
||||
"Sign In": "Aanmelden",
|
||||
"Continue with Email": "Verdergaan met e-mailadres",
|
||||
"Continue with {{ authProviderName }}": "Ga verder met {{ authProviderName }}",
|
||||
"Back to home": "Terug naar home",
|
||||
"The workspace could not be found": "The workspace could not be found",
|
||||
"To continue, enter your workspace’s subdomain.": "To continue, enter your workspace’s subdomain.",
|
||||
"The workspace could not be found": "Kan de werkruimte niet vinden",
|
||||
"To continue, enter your workspace’s subdomain.": "Voer het subdomein van uw werkruimte in om door te gaan.",
|
||||
"subdomain": "subdomein",
|
||||
"Continue": "Doorgaan",
|
||||
"The domain associated with your email address has not been allowed for this workspace.": "Het aan uw e-mailadres gekoppelde domein is niet toegestaan voor deze werkruimte.",
|
||||
"Unable to sign-in. Please navigate to your workspace's custom URL, then try to sign-in again.<1></1>If you were invited to a workspace, you will find a link to it in the invite email.": "Inloggen niet mogelijk. Navigeer naar de aangepaste URL van uw werkruimte en probeer dan opnieuw in te loggen. <1></1>Wanneer u uitgenodigd bent voor een werkruimte, vind u de link hiernaar in de uitnodigingsmail.",
|
||||
"Sorry, a new account cannot be created with a personal Gmail address.<1></1>Please use a Google Workspaces account instead.": "Sorry, een nieuw account kan niet worden aangemaakt met een persoonlijk Gmail adres.<1></1>Gebruik in plaats daarvan een Google Workspaces account.",
|
||||
"The workspace associated with your user is scheduled for deletion and cannot be accessed at this time.": "The workspace associated with your user is scheduled for deletion and cannot be accessed at this time.",
|
||||
"The workspace associated with your user is scheduled for deletion and cannot be accessed at this time.": "De werkruimte die gekoppeld is aan uw gebruiker is gepland voor verwijdering en kan op dit moment niet worden geopend.",
|
||||
"The workspace you authenticated with is not authorized on this installation. Try another?": "De werkruimte waarmee u zich heeft geverifieerd, is niet geautoriseerd voor deze installatie. Probeer een ander?",
|
||||
"We could not read the user info supplied by your identity provider.": "We kunnen de gebruikersgegevens van uw identiteitsprovider niet lezen.",
|
||||
"Your account uses email sign-in, please sign-in with email to continue.": "Uw account maakt gebruik van aanmelding via e-mail. Meld u aan met e-mail om door te gaan.",
|
||||
@@ -793,9 +802,9 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Sorry, het lijkt erop dat de link voor aanmelding niet meer geldig is, probeer een andere aan te vragen.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Je account is geblokkeerd. Neem contact op met een werkruimte beheerder om uw account opnieuw te activeren.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Toegang tot deze workspace is geblokkeerd. Neem contact op met support om toegang te herstellen.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Verificatie mislukt - deze inlogmethode is uitgeschakeld door een teambeheerder.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authenticatie mislukt – deze inlogmethode is uitgeschakeld door een workspace-admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "De werkruimte die u probeert toe te treden vereist een uitnodiging voordat u een account kunt aanmaken. <1></1>Vraag een uitnodiging aan van uw werkruimte beheerder en probeer het opnieuw.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, een onbekende fout is opgetreden.",
|
||||
"Login": "Inloggen",
|
||||
"Error": "Foutmelding",
|
||||
"Failed to load configuration.": "Laden van configuratiebestand mislukt.",
|
||||
@@ -814,28 +823,27 @@
|
||||
"Or": "Of",
|
||||
"Already have an account? Go to <1>login</1>.": "Heb je al een account? <1>Inloggen</1>.",
|
||||
"Any collection": "Elke collectie",
|
||||
"Any time": "Elke tijd",
|
||||
"All time": "Gehele tijd",
|
||||
"Past day": "Afgelopen dag",
|
||||
"Past week": "Afgelopen week",
|
||||
"Past month": "Afgelopen maand",
|
||||
"Past year": "Afgelopen jaar",
|
||||
"Any time": "Elke tijd",
|
||||
"Remove document filter": "Verwijder documentfilter",
|
||||
"Any status": "Elke status",
|
||||
"Remove search": "Zoekopdracht verwijderen",
|
||||
"Any author": "Elke auteur",
|
||||
"Author": "Auteur",
|
||||
"We were unable to find the page you’re looking for.": "We kunnen de pagina die je zoekt niet vinden.",
|
||||
"Search titles only": "Zoek alleen titels",
|
||||
"Something went wrong": "Er ging iets mis",
|
||||
"Please try again or contact support if the problem persists": "Please try again or contact support if the problem persists",
|
||||
"Please try again or contact support if the problem persists": "Probeer het opnieuw of neem contact op met support als het probleem aanhoudt",
|
||||
"No documents found for your search filters.": "Geen documenten gevonden voor je zoekfilters.",
|
||||
"API": "API",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.",
|
||||
"API keys can be used to authenticate with the API and programatically control\n your workspace's data. For more details see the <em>developer documentation</em>.": "API-sleutels kunnen worden gebruikt om te verifiëren met behulp van de API en het programma\n de gegevens van je werkruimte te beheren. Zie de <em>documentatie</em> voor meer informatie.",
|
||||
"by {{ name }}": "door {{ name }}",
|
||||
"Last used": "Laatst gebruikt",
|
||||
"No expiry": "Geen vervaldatum",
|
||||
"Restricted scope": "Restricted scope",
|
||||
"API key copied to clipboard": "API key copied to clipboard",
|
||||
"Restricted scope": "Beperkt bereik",
|
||||
"API key copied to clipboard": "API-sleutel naar klembord gekopieerd",
|
||||
"Copied": "Gekopieerd",
|
||||
"Revoking": "Intrekken",
|
||||
"Are you sure you want to revoke the {{ tokenName }} token?": "Weet je zeker dat je de {{ tokenName }} token wilt intrekken?",
|
||||
@@ -851,7 +859,7 @@
|
||||
"Please choose a single file to import": "Kies een enkel bestand om te importeren",
|
||||
"Your import is being processed, you can safely leave this page": "Je import wordt verwerkt, je kan deze pagina veilig verlaten",
|
||||
"File not supported – please upload a valid ZIP file": "Bestand niet ondersteund – upload een geldig ZIP-bestand",
|
||||
"Set the default permission level for collections created from the import": "Set the default permission level for collections created from the import",
|
||||
"Set the default permission level for collections created from the import": "Stel het standaard permissie niveau in voor collecties gemaakt van import",
|
||||
"Start import": "Start importeren",
|
||||
"Processing": "Verwerken",
|
||||
"Expired": "Verlopen",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Geen personen meer om toe te voegen",
|
||||
"Date created": "Aanmaakdatum",
|
||||
"Upload": "Upload",
|
||||
"Crop image": "Afbeelding bijsnijden",
|
||||
"Uploading": "Bezig met uploaden",
|
||||
"How does this work?": "Hoe werkt dit?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Je kunt een zipbestand importeren dat eerder is geëxporteerd vanuit de JSON-optie in een andere instantie. In {{ appName }}, open <em>Exporteren</em> in de zijbalk in Voorkeuren en klik op <em>Exporteer gegevens</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Sleep het zip-bestand vanuit de JSON exportoptie in {{appName}}, of klik om te uploaden",
|
||||
"Canceled": "Geannuleerd",
|
||||
"Import canceled": "Importeren geannuleerd",
|
||||
"Are you sure you want to cancel this import?": "Weet je zeker dat je deze import wilt annuleren?",
|
||||
"Canceling": "Annuleren",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Als je deze import annuleert, wordt elke vooruitgang genegeerd. Dit kan niet ongedaan worden gemaakt.",
|
||||
"{{ count }} document imported": "{{ count }} document geïmporteerd",
|
||||
"{{ count }} document imported_plural": "{{ count }} document geïmporteerd",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Je kunt een zipbestand importeren dat eerder is geëxporteerd vanuit een Outline-installatie – collecties, documenten en afbeeldingen worden geïmporteerd. Open in Overzicht <em>Export</em> in de zijbalk Instellingen en klik op <em>Export Data</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Sleep het zip-bestand vanuit de Markdown-exportoptie in {{appName}}, of klik om te uploaden",
|
||||
"Where do I find the file?": "Waar vind ik dit?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "Klik in Notion op <em>Instellingen en leden</em> in de linkerzijbalk en open Instellingen. Zoek het gedeelte Exporteren en klik op <em>Alle inhoud van de werkruimte exporteren</em>. Kies <em>HTML</em> als het formaat voor de beste gegevenscompatibiliteit.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Sleep het zipbestand vanuit Notion's HTML-exportoptie, of klik om te uploaden",
|
||||
"Last active": "Laatst actief",
|
||||
"Guest": "Gast",
|
||||
"Shared by": "Gedeeld door",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Bewerkers",
|
||||
"All status": "Alle statussen",
|
||||
"Active": "Actief",
|
||||
"Left": "Links",
|
||||
"Right": "Rechts",
|
||||
"Settings saved": "Instellingen opgeslagen",
|
||||
"Logo updated": "Logo bijgewerkt",
|
||||
"Unable to upload new logo": "Kan het nieuwe logo niet uploaden",
|
||||
@@ -920,20 +936,17 @@
|
||||
"Accent text color": "Accent tekstkleur",
|
||||
"Public branding": "Publieke branding",
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Toon het logo van je team op openbare pagina's zoals login en gedeelde documenten.",
|
||||
"Table of contents position": "Table of contents position",
|
||||
"The side to display the table of contents in relation to the main content.": "The side to display the table of contents in relation to the main content.",
|
||||
"Left": "Links",
|
||||
"Right": "Rechts",
|
||||
"Table of contents position": "Positie inhoudsopgave",
|
||||
"The side to display the table of contents in relation to the main content.": "De zijde om de inhoudsopgave weer te geven in relatie tot de hoofdinhoud.",
|
||||
"Behavior": "Gedrag",
|
||||
"Subdomain": "Subdomein",
|
||||
"Your workspace will be accessible at": "Je workspace is toegankelijk via",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Kies een subdomein om een inlogpagina alleen voor jouw team in te schakelen.",
|
||||
"Start view": "Start weergave",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Dit is het eerste scherm dat team-leden zien wanneer ze inloggen.",
|
||||
"Danger": "Gevaar",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Je kunt deze hele workspace verwijderen inclusief collecties, documenten en gebruikers.",
|
||||
"Export data": "Exporteer gegevens",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "Een volledige export kan enige tijd duren, overweeg om één document of collectie te exporteren. U kunt deze pagina verlaten zodra de export is gestart - als u meldingen heeft ingeschakeld we sturen een link naar <em>{{ userEmail }}</em> als het voltooid is.",
|
||||
"Recent exports": "Recente exporten",
|
||||
"Manage optional and beta features. Changing these settings will affect the experience for all members of the workspace.": "Beheer optionele en bètafuncties. Het wijzigen van deze instellingen heeft invloed op de ervaring voor alle leden van betreffende team.",
|
||||
"Separate editing": "Aparte bewerkingsmodus",
|
||||
@@ -945,16 +958,15 @@
|
||||
"New group": "Nieuwe groep",
|
||||
"Groups can be used to organize and manage the people on your team.": "Groepen kunnen worden gebruikt om personen in je team te organiseren en beheren.",
|
||||
"No groups have been created yet": "Er zijn nog geen groepen gemaakt",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Zet snel je bestaande documenten, pagina's en bestanden van andere tools en services over naar {{appName}}. Je kunt HTML-, Markdown- en tekstdocumenten ook rechtstreeks naar Collecties in de app slepen.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importeer een zipbestand met Markdown-documenten (geëxporteerd vanaf versie 0.67.0 of eerder)",
|
||||
"Import data": "Importeer data",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importeer een JSON-gegevensbestand dat is geëxporteerd uit een andere {{ appName }} instantie",
|
||||
"Import pages exported from Notion": "Importeer pagina's geëxporteerd uit Notion",
|
||||
"Import pages from a Confluence instance": "Pagina's importeren van een Confluence instantie",
|
||||
"Enterprise": "Zakelijk",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Zet snel je bestaande documenten, pagina's en bestanden van andere tools en services over naar {{appName}}. Je kunt HTML-, Markdown- en tekstdocumenten ook rechtstreeks naar Collecties in de app slepen.",
|
||||
"Recent imports": "Recent geïmporteerd",
|
||||
"Could not load members": "Kon leden niet laden",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Iedereen die {{appName}} heeft aangemeld staat hier vermeld. Het is mogelijk dat er andere gebruikers zijn die toegang hebben via {{signinMethods}} maar nog niet zijn aangemeld.",
|
||||
"Receive a notification whenever a new document is published": "Ontvang een melding wanneer een nieuw document wordt gepubliceerd",
|
||||
"Document updated": "Document bijgewerkt",
|
||||
"Receive a notification when a document you are subscribed to is edited": "Ontvang een melding wanneer een document waarop je geabonneerd bent, is bewerkt",
|
||||
@@ -962,7 +974,7 @@
|
||||
"Receive a notification when a document you are subscribed to or a thread you participated in receives a comment": "Ontvang een melding wanneer een document waarop je geabonneerd bent, of een thread waaraan je hebt deelgenomen, een opmerking ontvangt",
|
||||
"Mentioned": "Vermeld",
|
||||
"Receive a notification when someone mentions you in a document or comment": "Ontvang een melding wanneer iemand je vermeldt in een document of opmerking",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Receive a notification when a comment thread you were involved in is resolved",
|
||||
"Receive a notification when a comment thread you were involved in is resolved": "Ontvang een notificatie wanneer een reactie waar je bij betrokken was is opgelost",
|
||||
"Collection created": "Collectie aangemaakt",
|
||||
"Receive a notification whenever a new collection is created": "Ontvang een melding wanneer een nieuwe collectie wordt gemaakt",
|
||||
"Invite accepted": "Uitnodiging geaccepteerd",
|
||||
@@ -981,14 +993,14 @@
|
||||
"Unsubscription successful. Your notification settings were updated": "Uitschrijven gelukt. Je instellingen voor meldingen zijn bijgewerkt",
|
||||
"Manage when and where you receive email notifications.": "Beheer wanneer en waar je e-mailmeldingen ontvangt.",
|
||||
"The email integration is currently disabled. Please set the associated environment variables and restart the server to enable notifications.": "De e-mailintegratie is momenteel uitgeschakeld. Stel de bijbehorende omgevingsvariabelen in en herstart de server om meldingen in te schakelen.",
|
||||
"Create personal API keys to authenticate with the API and programatically control\n your workspace's data. API keys have the same permissions as your user account.\n For more details see the <em>developer documentation</em>.": "Create personal API keys to authenticate with the API and programatically control\n your workspace's data. API keys have the same permissions as your user account.\n For more details see the <em>developer documentation</em>.",
|
||||
"Create personal API keys to authenticate with the API and programatically control\n your workspace's data. API keys have the same permissions as your user account.\n For more details see the <em>developer documentation</em>.": "Maak persoonlijke API-sleutels aan om te verifiëren met de API en het programma\n de gegevens van je werkruimte te beheren. API sleutels hebben dezelfde rechten als uw gebruikersaccount.\n Voor meer details, zie de <em>documentatie</em> van de ontwikkelaar.",
|
||||
"Personal keys": "Persoonlijke sleutels",
|
||||
"Preferences saved": "Voorkeuren opgeslagen",
|
||||
"Delete account": "Verwijder account",
|
||||
"Manage settings that affect your personal experience.": "Beheer instellingen die van invloed zijn op je persoonlijke ervaring.",
|
||||
"Language": "Taal",
|
||||
"Choose the interface language. Community translations are accepted though our <2>translation portal</2>.": "Kies de taal van de interface. Vertalingen vanuit onze community worden geaccepteerd via het <2>vertaalportaal</2>.",
|
||||
"Choose your preferred interface color scheme.": "Choose your preferred interface color scheme.",
|
||||
"Choose your preferred interface color scheme.": "Kies uw gewenste kleurenschema voor de interface.",
|
||||
"Use pointer cursor": "Gebruik aanwijzingscursor",
|
||||
"Show a hand cursor when hovering over interactive elements.": "Toon een handcursor wanneer u over interactieve elementen beweegt.",
|
||||
"Show line numbers": "Toon regelnummers",
|
||||
@@ -996,8 +1008,8 @@
|
||||
"When enabled, documents have a separate editing mode. When disabled, documents are always editable when you have permission.": "Indien ingeschakeld, hebben documenten een aparte bewerkingsmodus. Indien uitgeschakeld, kunnen documenten altijd worden bewerkt als je daarvoor toestemming hebt.",
|
||||
"Remember previous location": "Onthoud vorige locatie",
|
||||
"Automatically return to the document you were last viewing when the app is re-opened.": "Automatisch terugkeren naar het document dat je het laatst hebt bekeken als de app opnieuw wordt geopend.",
|
||||
"Smart text replacements": "Smart text replacements",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.",
|
||||
"Smart text replacements": "Slimme tekst vervangingen",
|
||||
"Auto-format text by replacing shortcuts with symbols, dashes, smart quotes, and other typographical elements.": "Automatisch tekst formatteren door snelkoppelingen te vervangen door symbolen, streepjes, slimme aanhalingstekens en andere typografische elementen.",
|
||||
"You may delete your account at any time, note that this is unrecoverable": "Je kan jouw account op ieder moment verwijderen. Let op: je account kan niet hersteld worden.",
|
||||
"Profile saved": "Wijzigingen opgeslagen",
|
||||
"Profile picture updated": "Profielfoto gewijzigd",
|
||||
@@ -1025,18 +1037,14 @@
|
||||
"Viewer document exports": "Bekijkers kunnen documenten exporteren",
|
||||
"When enabled, viewers can see download options for documents": "Wanneer ingeschakeld, kunnen kijkers downloadopties voor documenten zien",
|
||||
"Users can delete account": "Gebruikers kunnen account verwijderen",
|
||||
"When enabled, users can delete their own account from the workspace": "When enabled, users can delete their own account from the workspace",
|
||||
"When enabled, users can delete their own account from the workspace": "Wanneer ingeschakeld, kunnen gebruikers hun eigen account verwijderen uit de werkruimte",
|
||||
"Rich service embeds": "Rich service-embeds",
|
||||
"Links to supported services are shown as rich embeds within your documents": "Links naar ondersteunde diensten worden weergegeven als rich embeds in je documenten",
|
||||
"Collection creation": "Collectie aanmaken",
|
||||
"Allow editors to create new collections within the workspace": "Bewerkers toestaan om nieuwe collecties te maken binnen de workspace",
|
||||
"Workspace creation": "Workspace creation",
|
||||
"Allow editors to create new workspaces": "Allow editors to create new workspaces",
|
||||
"Draw.io deployment": "Draw.io installatie",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Voeg je self-hosted draw.io installatie URL hier toe om automatische embedding van diagrammen binnen onderliggende documenten aan te zetten.",
|
||||
"Grist deployment": "Grist installatie",
|
||||
"Add your self-hosted grist installation URL here.": "Voeg hier de URL naar je self-hosted Grist installatie toe.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Workspace creation": "Werkruimte creatie",
|
||||
"Allow editors to create new workspaces": "Bewerken toestaan om nieuwe werkruimtes aan te maken",
|
||||
"Could not load shares": "Kon leden niet laden",
|
||||
"Sharing is currently disabled.": "Delen is momenteel uitgeschakeld.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "U kunt het delen van openbare documenten globaal in- en uitschakelen in de <em>beveiligingsinstellingen</em>.",
|
||||
"Documents that have been shared are listed below. Anyone that has the public link can access a read-only version of the document until the link has been revoked.": "Documenten die zijn gedeeld, staan hieronder vermeld. Iedereen die de openbare link heeft, heeft toegang tot een alleen-lezen versie van het document totdat de link is ingetrokken.",
|
||||
@@ -1052,7 +1060,7 @@
|
||||
"You are creating a new workspace using your current account — <em>{{email}}</em>": "Je maakt een nieuwe workspace met je huidige account — <em>{{email}}</em>",
|
||||
"To create a workspace under another email please sign up from the homepage": "Om een workspace te maken onder een ander e-mailadres, registreer een nieuw account via de startpagina",
|
||||
"Trash emptied": "Prullenbak geleegd",
|
||||
"Are you sure you want to permanently delete all the documents in Trash? This action is immediate and cannot be undone.": "Are you sure you want to permanently delete all the documents in Trash? This action is immediate and cannot be undone.",
|
||||
"Are you sure you want to permanently delete all the documents in Trash? This action is immediate and cannot be undone.": "Weet je zeker dat je het document {} definitief wilt verwijderen? Deze actie is onmiddellijk en kan niet ongedaan worden gemaakt.",
|
||||
"Recently deleted": "Recent verwijderd",
|
||||
"Trash is empty at the moment.": "Prullenbak is momenteel leeg.",
|
||||
"A confirmation code has been sent to your email address, please enter the code below to permanently destroy your account.": "Een bevestigingscode is naar je e-mailadres verzonden, voer de code hieronder in om je account permanent te verwijderen.",
|
||||
@@ -1068,14 +1076,14 @@
|
||||
"Expired {{ date }}": "Verlopen {{ date }}",
|
||||
"Expires today": "Verloopt vandaag",
|
||||
"Expires tomorrow": "Verloopt morgen",
|
||||
"Expires {{ date }}": "Expires {{ date }}",
|
||||
"Expires {{ date }}": "Verlopen {{ date }}",
|
||||
"Connect": "Verbinden",
|
||||
"Whoops, you need to accept the permissions in GitHub to connect {{appName}} to your workspace. Try again?": "Whoops, you need to accept the permissions in GitHub to connect {{appName}} to your workspace. Try again?",
|
||||
"Whoops, you need to accept the permissions in GitHub to connect {{appName}} to your workspace. Try again?": "Oeps, je moet de machtigingen in GitHub accepteren om {{appName}} te verbinden met je werkruimte. Probeer het opnieuw?",
|
||||
"Something went wrong while authenticating your request. Please try logging in again.": "Er is iets misgegaan bij het verifiëren van je verzoek. Probeer opnieuw in te loggen.",
|
||||
"The owner of GitHub account has been requested to install the {{githubAppName}} GitHub app. Once approved, previews will be shown for respective links.": "The owner of GitHub account has been requested to install the {{githubAppName}} GitHub app. Once approved, previews will be shown for respective links.",
|
||||
"The owner of GitHub account has been requested to install the {{githubAppName}} GitHub app. Once approved, previews will be shown for respective links.": "De eigenaar van het GitHub account is verzocht om de {{githubAppName}} GitHub app te installeren. Eenmaal goedgekeurd, zullen de previews getoond worden voor de betreffende links.",
|
||||
"Enable previews of GitHub issues and pull requests in documents by connecting a GitHub organization or specific repositories to {appName}.": "Enable previews of GitHub issues and pull requests in documents by connecting a GitHub organization or specific repositories to {appName}.",
|
||||
"Enabled by {{integrationCreatedBy}}": "Enabled by {{integrationCreatedBy}}",
|
||||
"Disconnecting will prevent previewing GitHub links from this organization in documents. Are you sure?": "Disconnecting will prevent previewing GitHub links from this organization in documents. Are you sure?",
|
||||
"Enabled by {{integrationCreatedBy}}": "Ingeschakeld door {{integrationCreatedBy}}",
|
||||
"Disconnecting will prevent previewing GitHub links from this organization in documents. Are you sure?": "Het verbreken van de verbinding voorkomt voorvertoning van GitHub links van deze organisatie in documenten. Weet je het zeker?",
|
||||
"The GitHub integration is currently disabled. Please set the associated environment variables and restart the server to enable the integration.": "The GitHub integration is currently disabled. Please set the associated environment variables and restart the server to enable the integration.",
|
||||
"Google Analytics": "Google Analytics",
|
||||
"Add a Google Analytics 4 measurement ID to send document views and analytics from the workspace to your own Google Analytics account.": "Voeg een Google Analytics 4 meet-ID toe om documentweergaven en analytics van je workspace naar je eigen Google Analytics-account te sturen.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/",
|
||||
"Site ID": "Site-ID",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "An ID that uniquely identifies the website in your Matomo instance.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Voeg toe aan Slack",
|
||||
"document published": "document gepubliceerd",
|
||||
"document updated": "document bijgewerkt",
|
||||
@@ -1098,9 +1108,9 @@
|
||||
"Disconnecting your personal account will prevent searching for documents from Slack. Are you sure?": "Disconnecting your personal account will prevent searching for documents from Slack. Are you sure?",
|
||||
"Slash command": "Slash-commando",
|
||||
"Get rich previews of {{ appName }} links shared in Slack and use the <em>{{ command }}</em> slash command to search for documents without leaving your chat.": "Krijg uitgebreide voorbeelden van {{ appName }}-links gedeeld in Slack en gebruik het <em>{{ command }}</em> slash-commando om naar documenten te zoeken zonder je chat te verlaten.",
|
||||
"This will remove the Outline slash command from your Slack workspace. Are you sure?": "This will remove the Outline slash command from your Slack workspace. Are you sure?",
|
||||
"This will remove the Outline slash command from your Slack workspace. Are you sure?": "Dit verwijdert de slash commando van de Slack workspace. Weet je het zeker?",
|
||||
"Connect {{appName}} collections to Slack channels. Messages will be automatically posted to Slack when documents are published or updated.": "Verbind {{appName}}-collecties met Slack-kanalen. Berichten worden automatisch naar Slack gepost wanneer documenten worden gepubliceerd of bijgewerkt.",
|
||||
"Comment by {{ author }} on \"{{ title }}\"": "Comment by {{ author }} on \"{{ title }}\"",
|
||||
"Comment by {{ author }} on \"{{ title }}\"": "Reactie van {{ author }} op \"{{ title }}\"",
|
||||
"How to use {{ command }}": "Hoe gebruik je {{ command }}",
|
||||
"To search your workspace use {{ command }}. \nType {{ command2 }} help to display this help text.": "Gebruik {{ command }} om je workspace te doorzoeken. \nTyp {{ command2 }} om deze helptekst weer te geven.",
|
||||
"Post to Channel": "Post naar kanaal",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ timeAgo }} door {{ user }} bijgewerkt",
|
||||
"You created {{ timeAgo }}": "{{ timeAgo }} door jou aangemaakt",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ timeAgo }} door {{ user }} aangemaakt",
|
||||
"Uploading": "Bezig met uploaden"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Wyszukaj w kolekcji",
|
||||
"Star": "Oznacz gwiazdką",
|
||||
"Unstar": "Usuń gwiazdkę",
|
||||
"Subscribe": "Subskrybuj",
|
||||
"Subscribed to document notifications": "Zasubskrybowano powiadomienia o dokumencie",
|
||||
"Unsubscribe": "Odsubskrybuj",
|
||||
"Unsubscribed from document notifications": "Odsubskrybowano powiadomienia o dokumencie",
|
||||
"Archive": "Archiwum",
|
||||
"Archive collection": "Zarchiwizuj kolekcję",
|
||||
"Collection archived": "Kolekcja zarchiwizowana",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Opublikuj dokument",
|
||||
"Unpublish": "Cofnij publikację",
|
||||
"Unpublished {{ documentName }}": "Nieopublikowany {{ documentName }}",
|
||||
"Subscribe": "Subskrybuj",
|
||||
"Subscribed to document notifications": "Zasubskrybowano powiadomienia o dokumencie",
|
||||
"Unsubscribe": "Odsubskrybuj",
|
||||
"Unsubscribed from document notifications": "Odsubskrybowano powiadomienia o dokumencie",
|
||||
"Share this document": "Udostępnij ten dokument",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Pobierz dokument",
|
||||
"Copy as Markdown": "Kopiuj jako Markdown",
|
||||
"Markdown copied to clipboard": "Markdown skopiowany do schowka",
|
||||
"Copy as text": "Copy as text",
|
||||
"Text copied to clipboard": "Text copied to clipboard",
|
||||
"Copy public link": "Kopiuj publiczny link",
|
||||
"Link copied to clipboard": "Link został skopiowany do schowka",
|
||||
"Copy link": "Kopiuj link",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "Nie udało się opuścić dokumentu",
|
||||
"Home": "Strona Główna",
|
||||
"Drafts": "Kopie robocze",
|
||||
"Search": "Szukaj",
|
||||
"Trash": "Kosz",
|
||||
"Settings": "Ustawienia",
|
||||
"Profile": "Profil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Zaktualizuj rolę",
|
||||
"Delete user": "Usuń użytkownika",
|
||||
"Collection": "Kolekcja",
|
||||
"Collections": "Kolekcje",
|
||||
"Debug": "Debuguj",
|
||||
"Document": "Dokument",
|
||||
"Documents": "Dokumenty",
|
||||
@@ -194,6 +198,7 @@
|
||||
"Submenu": "Podmenu",
|
||||
"Collections could not be loaded, please reload the app": "Nie można załadować kolekcji, proszę odświeżyć aplikację",
|
||||
"Default collection": "Domyślna kolekcja",
|
||||
"Start view": "Widok startowy",
|
||||
"Install now": "Zainstaluj teraz",
|
||||
"Deleted Collection": "Usunięta kolekcja",
|
||||
"Untitled": "Bez tytułu",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Flagi",
|
||||
"Select a color": "Wybierz kolor",
|
||||
"Loading": "Ładowanie",
|
||||
"Search": "Szukaj",
|
||||
"Permission": "Uprawnienia",
|
||||
"View only": "Tylko podgląd",
|
||||
"Can edit": "Może edytować",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Zarchiwizowane kolekcje",
|
||||
"New doc": "Nowy dok",
|
||||
"Empty": "Pusty",
|
||||
"Collections": "Kolekcje",
|
||||
"Collapse": "Zwiń",
|
||||
"Expand": "Rozwiń",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Dokument nie jest obsługiwany – spróbuj formatu Markdown, zwykłego tekstu, HTML lub Word",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Utwórz nowy dokument",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} nie zostanie powiadomiony, ponieważ nie mają dostępu do tego dokumentu",
|
||||
"Keep as link": "Keep as link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Dodaj kolumnę po",
|
||||
"Add column before": "Dodaj kolumnę przed",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "Brak",
|
||||
"Could not import file": "Nie można zaimportować pliku",
|
||||
"Unsubscribed from document": "Wypisano z dokumentu",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "Konto",
|
||||
"API Keys": "Klucze API",
|
||||
"Details": "Szczegóły",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Grupy",
|
||||
"Shared Links": "Udostępnione linki",
|
||||
"Import": "Importuj",
|
||||
"Self Hosted": "Samodzielnie hostowane",
|
||||
"Integrations": "Integracje",
|
||||
"Revoke token": "Unieważnij token",
|
||||
"Revoke": "Unieważnij",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} przywrócony",
|
||||
"Document options": "Opcje dokumentu",
|
||||
"Choose a collection": "Wybierz kolekcję",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "Włącz osadzanie",
|
||||
"Export options": "Opcje eksportu",
|
||||
"Group members": "Członkowie grupy",
|
||||
"Edit group": "Edytuj grupę",
|
||||
"Delete group": "Usuń grupę",
|
||||
"Group options": "Opcje grupy",
|
||||
"Cancel": "Anuluj",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Opcje członka",
|
||||
"New document in <em>{{ collectionName }}</em>": "Nowy dokument w <em>{{ collectionName }}</em>",
|
||||
"New child document": "Nowy dokument podrzędny",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Dodaj odpowiedź",
|
||||
"Reply": "Odpowiedz",
|
||||
"Post": "Opublikuj",
|
||||
"Cancel": "Anuluj",
|
||||
"Upload image": "Wgraj zdjęcie",
|
||||
"No resolved comments": "Brak rozstrzygniętych komentarzy",
|
||||
"No comments yet": "Nie ma jeszcze komentarzy",
|
||||
"New comments": "Nowe komentarze",
|
||||
"Sort comments": "Sortuj komentarze",
|
||||
"Most recent": "Najnowsze",
|
||||
"Order in doc": "Kolejność z dokumentu",
|
||||
"Resolved": "Rozwiązane",
|
||||
"Sort comments": "Sortuj komentarze",
|
||||
"Show {{ count }} reply": "Pokaż {{ count }} odpowiedzi",
|
||||
"Show {{ count }} reply_plural": "Pokaż {{ count }} odpowiedzi",
|
||||
"Error updating comment": "Wystąpił błąd podczas aktualizacji komentarza",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Nie znaleziono dokumentów dla Twoich filtrów.",
|
||||
"You’ve not got any drafts at the moment.": "Nie masz obecnie żadnych szkiców.",
|
||||
"Payment Required": "Wymagana płatność",
|
||||
"Not Found": "Nie znaleziono",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Nie mogliśmy znaleźć strony, której szukasz. Przejdź do <2>strony głównej</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Tryb offline",
|
||||
"We were unable to load the document while offline.": "Nie mogliśmy załadować dokumentu podczas trybu offline.",
|
||||
"Your account has been suspended": "Twoje konto zostało zawieszone",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Przepraszamy, wygląda na to, że ten link logowania jest już nieważny. Spróbuj poprosić o inny.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Twoje konto zostało zablokowane. Aby ponownie aktywować konto, skontaktuj się z administratorem obszaru roboczego.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Ten obszar roboczy został zawieszony. Skontaktuj się z wsparciem, aby przywrócić dostęp.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Uwierzytelnianie nie powiodło się – ta metoda logowania została wyłączona przez administratora zespołu.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "Obszar roboczy, do którego próbujesz dołączyć, wymaga zaproszenia przed utworzeniem konta.<1></1> Poproś administratora obszaru roboczego o zaproszenie i spróbuj ponownie.",
|
||||
"Sorry, an unknown error occurred.": "Przepraszamy, wystąpił nieznany błąd.",
|
||||
"Login": "Zaloguj się",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Lub",
|
||||
"Already have an account? Go to <1>login</1>.": "Masz już konto? <1>Zaloguj się</1>.",
|
||||
"Any collection": "Dowolna kolekcja",
|
||||
"Any time": "W dowolnym czasie",
|
||||
"All time": "All time",
|
||||
"Past day": "Poprzedni dzień",
|
||||
"Past week": "Poprzedni tydzień",
|
||||
"Past month": "Poprzedni miesiąc",
|
||||
"Past year": "Poprzedni rok",
|
||||
"Any time": "W dowolnym czasie",
|
||||
"Remove document filter": "Usuń filtr dokumentów",
|
||||
"Any status": "Dowolny status",
|
||||
"Remove search": "Usuń wyszukiwanie",
|
||||
"Any author": "Dowolny autor",
|
||||
"Author": "Autor",
|
||||
"We were unable to find the page you’re looking for.": "Nie mogliśmy znaleźć strony, której szukasz.",
|
||||
"Search titles only": "Szukaj tylko w tytułach",
|
||||
"Something went wrong": "Coś poszło nie tak",
|
||||
"Please try again or contact support if the problem persists": "Spróbuj ponownie lub skontaktuj się z pomocą techniczną, jeśli problem będzie się powtarzał.",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Brak osób do dodania",
|
||||
"Date created": "Data utworzenia",
|
||||
"Upload": "Prześlij",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Wysyłanie",
|
||||
"How does this work?": "Jak to działa?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Możesz zaimportować plik zip, który został wcześniej wyeksportowany z opcji JSON w innej instancji. W {{ appName }} otwórz <em>Eksport</em> w pasku bocznym Ustawień i kliknij <em>Eksportuj dane</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Przeciągnij i upuść plik zip z opcji eksportu JSON w {{appName}} lub kliknij, aby wybrać plik do przesłania",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Możesz zaimportować plik zip, który został wcześniej wyeksportowany z instalacji Outline – zostaną zaimportowane kolekcje, dokumenty i obrazy. W Outline otwórz <em>Eksport</em> w pasku bocznym Ustawień i kliknij <em>Eksportuj dane</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Przeciągnij i upuść plik zip z opcji eksportu Markdown w {{appName}} lub kliknij, aby wybrać plik do przesłania",
|
||||
"Where do I find the file?": "Gdzie znajdę plik?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "W Notion kliknij <em>Ustawienia i członkowie</em> na lewym pasku bocznym i otwórz Ustawienia. Znajdź sekcję Eksport i kliknij <em>Eksportuj całą zawartość obszaru roboczego</em>. Wybierz format <em>HTML</em> dla najlepszej kompatybilności danych.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Przeciągnij i upuść plik zip z opcji eksportu HTML w Notion lub kliknij, aby wybrać plik do przesłania",
|
||||
"Last active": "Ostatnio aktywny",
|
||||
"Guest": "Gość",
|
||||
"Shared by": "Udostępnione przez",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Edytory",
|
||||
"All status": "Wszystkie statusy",
|
||||
"Active": "Aktywne",
|
||||
"Left": "Lewo",
|
||||
"Right": "Prawo",
|
||||
"Settings saved": "Ustawienia zapisane",
|
||||
"Logo updated": "Logo zaktualizowane",
|
||||
"Unable to upload new logo": "Nie można przesłać nowego logo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Pokazuj logo swojego zespołu na publicznych stronach, takich jak logowanie i udostępnione dokumenty.",
|
||||
"Table of contents position": "",
|
||||
"The side to display the table of contents in relation to the main content.": "Część wyświetlająca spis treści w odniesieniu do treści głównej.",
|
||||
"Left": "Lewo",
|
||||
"Right": "Prawo",
|
||||
"Behavior": "Zachowanie",
|
||||
"Subdomain": "Domena podrzędna",
|
||||
"Your workspace will be accessible at": "Twoja przestrzeń robocza będzie dostępna pod adresem",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Wybierz subdomenę, aby umożliwić stronę logowania tylko dla Twojego zespołu.",
|
||||
"Start view": "Widok startowy",
|
||||
"This is the screen that workspace members will first see when they sign in.": "To jest ekran, który członkowie przestrzeni roboczej zobaczą jako pierwszy po zalogowaniu.",
|
||||
"Danger": "Uwaga",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Możesz usunąć całą tę przestrzeń roboczą, w tym kolekcje, dokumenty i użytkowników.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "Nowa grupa",
|
||||
"Groups can be used to organize and manage the people on your team.": "Grupy mogą być używane do organizowania i zarządzania ludźmi w Twoim zespole.",
|
||||
"No groups have been created yet": "Nie utworzono jeszcze żadnych grup",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Szybko przenieś swoje istniejące dokumenty, strony i pliki z innych narzędzi i usług do {{appName}}. Możesz także przeciągnąć i upuścić dowolne dokumenty HTML, Markdown i tekstowe bezpośrednio do Kolekcji w aplikacji.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importuj plik zip zawierający dokumenty Markdown (wyeksportowany z wersji 0.67.0 lub wcześniejszej)",
|
||||
"Import data": "Importuj dane",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Zaimportuj plik danych JSON wyeksportowany z innej instancji {{ appName }}",
|
||||
"Import pages exported from Notion": "Importuj strony wyeksportowane z Notion",
|
||||
"Import pages from a Confluence instance": "Importuj strony z instancji Confluence",
|
||||
"Enterprise": "Przedsiębiorstwo",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Szybko przenieś swoje istniejące dokumenty, strony i pliki z innych narzędzi i usług do {{appName}}. Możesz także przeciągnąć i upuścić dowolne dokumenty HTML, Markdown i tekstowe bezpośrednio do Kolekcji w aplikacji.",
|
||||
"Recent imports": "Ostatnio zaimportowane",
|
||||
"Could not load members": "Nie można załadować członków",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Tutaj są wyświetlane wszystkie osoby, które zalogowały się w {{appName}}. Możliwe, że istnieją inni użytkownicy, którzy mają dostęp przez {{signinMethods}} ale jeszcze się nie zalogowali.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Zezwalaj edytorom na tworzenie nowych kolekcji w obszarze roboczym",
|
||||
"Workspace creation": "Tworzenie obszaru roboczego",
|
||||
"Allow editors to create new workspaces": "Pozwól edytorom tworzyć nowe projekty",
|
||||
"Draw.io deployment": "Wdrożenie Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Dodaj tutaj adres swojej instalacji draw.io, aby umożliwić automatyczne osadzanie diagramów w dokumentach.",
|
||||
"Grist deployment": "Wdrożenie Grist",
|
||||
"Add your self-hosted grist installation URL here.": "Dodaj tutaj adres URL swojej instalacji Grist.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "Udostępnianie jest obecnie wyłączone.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Możesz globalnie włączać i wyłączać publiczne udostępnianie dokumentów w <em>ustawieniach zabezpieczeń</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "Adres URL twojej instancji Matomo. Jeśli używasz Matomo Cloud, adres zakończy się na matomo.cloud/",
|
||||
"Site ID": "ID witryny",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Identyfikator, który jednoznacznie identyfikuje witrynę w Twojej instancji Matomo.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Dodaj do Slacka",
|
||||
"document published": "dokument opublikowany",
|
||||
"document updated": "dokument zaktualizowany",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} zaktualizował {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Utworzyłeś {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} utworzył {{ timeAgo }}",
|
||||
"Uploading": "Wysyłanie"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Pesquisar na Coleção",
|
||||
"Star": "Adicionar aos favoritos",
|
||||
"Unstar": "Remover estrela",
|
||||
"Subscribe": "Inscrever-se",
|
||||
"Subscribed to document notifications": "Inscrito nas notificações do documento",
|
||||
"Unsubscribe": "Cancelar inscrição",
|
||||
"Unsubscribed from document notifications": "Inscrição nas notificações do documento cancelada",
|
||||
"Archive": "Arquivo",
|
||||
"Archive collection": "Arquivar coleção",
|
||||
"Collection archived": "Coleção arquivada",
|
||||
@@ -36,7 +40,7 @@
|
||||
"Development": "Desenvolvimento",
|
||||
"Open document": "Abrir documento",
|
||||
"New document": "Novo documento",
|
||||
"New draft": "New draft",
|
||||
"New draft": "Novo rascunho",
|
||||
"New from template": "Novo a partir do modelo",
|
||||
"New nested document": "Novo documento aninhado",
|
||||
"Publish": "Publicar",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Publicar documento",
|
||||
"Unpublish": "Despublicar",
|
||||
"Unpublished {{ documentName }}": "{{ documentName }} Despublicado",
|
||||
"Subscribe": "Inscrever-se",
|
||||
"Subscribed to document notifications": "Inscrito nas notificações do documento",
|
||||
"Unsubscribe": "Cancelar inscrição",
|
||||
"Unsubscribed from document notifications": "Inscrição nas notificações do documento cancelada",
|
||||
"Share this document": "Compartilhar este documento",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Baixar documento",
|
||||
"Copy as Markdown": "Copiar como Markdown",
|
||||
"Markdown copied to clipboard": "Markdown copiado para a área de transferência",
|
||||
"Copy as text": "Copy as text",
|
||||
"Text copied to clipboard": "Text copied to clipboard",
|
||||
"Copy public link": "Copiar link público",
|
||||
"Link copied to clipboard": "Link copiado para área de transferência",
|
||||
"Copy link": "Copiar link",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "Não foi possível sair do documento",
|
||||
"Home": "Início",
|
||||
"Drafts": "Rascunhos",
|
||||
"Search": "Busca",
|
||||
"Trash": "Lixeira",
|
||||
"Settings": "Configurações",
|
||||
"Profile": "Perfil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Atualizar função",
|
||||
"Delete user": "Excluir usuário",
|
||||
"Collection": "Coleção",
|
||||
"Collections": "Coleções",
|
||||
"Debug": "Depurar",
|
||||
"Document": "Documento",
|
||||
"Documents": "Documentos",
|
||||
@@ -194,6 +198,7 @@
|
||||
"Submenu": "Submenu",
|
||||
"Collections could not be loaded, please reload the app": "Não foi possível carregar as coleções, recarregue o aplicativo",
|
||||
"Default collection": "Coleção padrão",
|
||||
"Start view": "Visualização de início",
|
||||
"Install now": "Instalar agora",
|
||||
"Deleted Collection": "Excluir Coleção",
|
||||
"Untitled": "Sem título",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Bandeiras",
|
||||
"Select a color": "Selecione uma cor",
|
||||
"Loading": "Carregando",
|
||||
"Search": "Busca",
|
||||
"Permission": "Permissão",
|
||||
"View only": "Somente visualização",
|
||||
"Can edit": "Pode editar",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Coleções arquivadas",
|
||||
"New doc": "Novo documento",
|
||||
"Empty": "Vazio",
|
||||
"Collections": "Coleções",
|
||||
"Collapse": "Recolher",
|
||||
"Expand": "Expandir",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Documento não compatível - experimente Markdown, Texto simples, HTML ou Word",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Criar um novo documento",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} não será notificado, pois não tem acesso a este documento",
|
||||
"Keep as link": "Manter como link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Incorporar",
|
||||
"Add column after": "Adicionar coluna depois",
|
||||
"Add column before": "Adicionar coluna antes",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "Nada",
|
||||
"Could not import file": "Não foi possível importar o arquivo",
|
||||
"Unsubscribed from document": "Cancelada inscrição do documento",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "Conta",
|
||||
"API Keys": "Chaves API",
|
||||
"Details": "Detalhes",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Grupos",
|
||||
"Shared Links": "Links compartilhados",
|
||||
"Import": "Importar",
|
||||
"Self Hosted": "Auto-hospedado",
|
||||
"Integrations": "Integrações",
|
||||
"Revoke token": "Revogar token",
|
||||
"Revoke": "Revogar",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName }} restaurado",
|
||||
"Document options": "Opções do documento",
|
||||
"Choose a collection": "Escolha uma coleção",
|
||||
"Subscription inherited from collection": "Subscrição herdada da coleção",
|
||||
"Enable embeds": "Habilitar incorporações",
|
||||
"Export options": "Opções de exportação",
|
||||
"Group members": "Membros do grupo",
|
||||
"Edit group": "Editar grupo",
|
||||
"Delete group": "Remover grupo",
|
||||
"Group options": "Opções do grupo",
|
||||
"Cancel": "Cancelar",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Opções do membro",
|
||||
"New document in <em>{{ collectionName }}</em>": "Novo documento em <em>{{ collectionName }}</em>",
|
||||
"New child document": "Novo documento aninhado",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Adicionar uma resposta",
|
||||
"Reply": "Responder",
|
||||
"Post": "Publicar",
|
||||
"Cancel": "Cancelar",
|
||||
"Upload image": "Carregar imagem",
|
||||
"No resolved comments": "Nenhum comentário resolvido",
|
||||
"No comments yet": "Nenhum comentário ainda",
|
||||
"New comments": "Novos comentários",
|
||||
"Sort comments": "Ordenar comentários",
|
||||
"Most recent": "Mais recentes",
|
||||
"Order in doc": "Ordenar no documento",
|
||||
"Resolved": "Resolvido",
|
||||
"Sort comments": "Ordenar comentários",
|
||||
"Show {{ count }} reply": "Exibir {{ count }} resposta",
|
||||
"Show {{ count }} reply_plural": "Exibir {{ count }} respostas",
|
||||
"Error updating comment": "Erro ao atualizar o comentário",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Nenhum documento foi encontrado para seus filtros.",
|
||||
"You’ve not got any drafts at the moment.": "Você não tem rascunhos no momento.",
|
||||
"Payment Required": "Pagamento necessário",
|
||||
"Not Found": "Não Encontrado",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Não foi possível encontrar a página que você está procurando. Ir para a <2>página inicial</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Desconectado",
|
||||
"We were unable to load the document while offline.": "Não foi possível carregar o documento enquanto desconectado.",
|
||||
"Your account has been suspended": "Sua conta foi suspensa",
|
||||
@@ -769,7 +778,7 @@
|
||||
"Inline code": "Código embutido",
|
||||
"Inline LaTeX": "LaTeX em linha",
|
||||
"Triggers": "Gatilhos",
|
||||
"Mention users and more": "Mencionar usuário ou documento",
|
||||
"Mention users and more": "Mencionar usuários e mais",
|
||||
"Emoji": "Emoji",
|
||||
"Insert block": "Inserir bloco",
|
||||
"Sign In": "Entrar",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Desculpe, parece que esse link de login não é mais válido, por favor, tente solicitar outro.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "Sua conta foi suspensa. Para reativar sua conta, entre em contato com um administrador do espaço de trabalho.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Este espaço de trabalho foi suspenso. Por favor, contate o suporte para restaurar o acesso.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Falha na autenticação – este método de login foi desativado por um administrador de equipe.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Falha na autenticação – este método de login foi desativado por um administrador do espaço de trabalho.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "O espaço de trabalho que você está tentando entrar requer um convite antes de criar uma conta.<1></1>Solicite um convite do administrador do seu espaço de trabalho e tente novamente.",
|
||||
"Sorry, an unknown error occurred.": "Desculpe, um erro desconhecido ocorreu.",
|
||||
"Login": "Iniciar sessão",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "Ou",
|
||||
"Already have an account? Go to <1>login</1>.": "Já tem uma conta? Ir para<1>login</1>.",
|
||||
"Any collection": "Qualquer coleção",
|
||||
"Any time": "A qualquer momento",
|
||||
"All time": "All time",
|
||||
"Past day": "Dia anterior",
|
||||
"Past week": "Semana passada",
|
||||
"Past month": "Mês passado",
|
||||
"Past year": "Ano passado",
|
||||
"Any time": "A qualquer momento",
|
||||
"Remove document filter": "Remover filtro de documento",
|
||||
"Any status": "Qualquer status",
|
||||
"Remove search": "Remover pesquisa",
|
||||
"Any author": "Qualquer autor",
|
||||
"Author": "Autor",
|
||||
"We were unable to find the page you’re looking for.": "Não foi possível encontrar a página que você está procurando.",
|
||||
"Search titles only": "Pesquisar apenas em títulos",
|
||||
"Something went wrong": "Algo deu errado",
|
||||
"Please try again or contact support if the problem persists": "Tente novamente ou entre em contato com o suporte se o problema persistir",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Nenhuma pessoa restante para adicionar",
|
||||
"Date created": "Data de criação",
|
||||
"Upload": "Enviar",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "Enviando",
|
||||
"How does this work?": "Como isso funciona?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Você pode importar um arquivo zip que foi exportado anteriormente da opção JSON em outra instância. Em {{ appName }}, abra <em>Exportar</em> na barra lateral de Configurações e clique em <em>Exportar Dados</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Arraste e solte o arquivo zip da opção de exportação JSON em {{appName}}, ou clique para realizar o upload",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Você pode importar um arquivo zip que foi exportado anteriormente de uma instalação do Outline – coleções, documentos e imagens serão importados. No Outline, abra <em>Exportar</em> na barra lateral de Configurações e clique em <em>Exportar Dados</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Arraste e solte o arquivo zip da opção de exportação Markdown em {{appName}}, ou clique para realizar o upload",
|
||||
"Where do I find the file?": "Onde eu encontro o arquivo?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "No Notion, clique em <em>Configurações e membros</em> na barra lateral esquerda e abra Configurações. Procure a seção Exportar, e clique em <em>Exportar todo o conteúdo do espaço de trabalho</em>. Escolha <em>HTML</em> como formato para melhor compatibilidade de dados.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Arraste e solte o arquivo zip da opção de exportação HTML do Notion, ou clique para fazer upload",
|
||||
"Last active": "Última atividade",
|
||||
"Guest": "Visitante",
|
||||
"Shared by": "Compartilhado por",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editores",
|
||||
"All status": "Todos os status",
|
||||
"Active": "Ativo",
|
||||
"Left": "Esquerda",
|
||||
"Right": "Direita",
|
||||
"Settings saved": "Configurações salvas",
|
||||
"Logo updated": "Logo atualizado",
|
||||
"Unable to upload new logo": "Não foi possível carregar o novo logotipo",
|
||||
@@ -922,18 +938,15 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Mostre o logotipo da sua equipe em páginas públicas, como login e documentos compartilhados.",
|
||||
"Table of contents position": "Posição da tabela de conteúdos",
|
||||
"The side to display the table of contents in relation to the main content.": "O lado para exibir a tabela de conteúdo em relação ao conteúdo principal.",
|
||||
"Left": "Esquerda",
|
||||
"Right": "Direita",
|
||||
"Behavior": "Comportamento",
|
||||
"Subdomain": "Subdomínio",
|
||||
"Your workspace will be accessible at": "Sua base de conhecimento estará acessível em",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Escolha um subdomínio para habilitar uma página de login apenas para a sua equipe.",
|
||||
"Start view": "Visualização de início",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Esta é a tela que os membros do espaço de trabalho verão pela primeira vez quando realizarem login.",
|
||||
"Danger": "Perigo",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Você pode excluir este espaço de trabalho por completo incluindo coleções, documentos e usuários.",
|
||||
"Export data": "Exportar dados",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.",
|
||||
"A full export might take some time, consider exporting a single document or collection. You may leave this page once the export has started – if you have notifications enabled, we will email a link to <em>{{ userEmail }}</em> when it’s complete.": "Uma exportação completa pode levar algum tempo. Considere exportar um único documento ou coleção. Os dados são exportados em um arquivo zip com seus documentos no formato Markdown. Você pode sair desta página assim que a exportação for iniciada - se as notificações estiverem ativadas, enviaremos um link por e-mail para <em>{{ userEmail }}</em> quando ela estiver concluída.",
|
||||
"Recent exports": "Exportações recentes",
|
||||
"Manage optional and beta features. Changing these settings will affect the experience for all members of the workspace.": "Gerencie recursos opcionais e beta. A alteração dessas configurações afetará a experiência de todos os membros do espaço de trabalho.",
|
||||
"Separate editing": "Edição Separada",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "Novo grupo",
|
||||
"Groups can be used to organize and manage the people on your team.": "Grupos podem ser usados para organizar e gerenciar as pessoas da sua equipe.",
|
||||
"No groups have been created yet": "Nenhum grupo foi criado ainda",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfira rapidamente seus documentos, páginas e arquivos existentes de outras ferramentas e serviços para o {{appName}}. Você também pode arrastar e soltar qualquer documento HTML, Markdown e texto diretamente nas Coleções do aplicativo.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importe um arquivo zip de documentos Markdown (exportados da versão 0.67.0 ou anterior)",
|
||||
"Import data": "Importar dados",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importar um arquivo de dados JSON exportado de outra instância do {{ appName }}",
|
||||
"Import pages exported from Notion": "Importar páginas exportadas do Notion",
|
||||
"Import pages from a Confluence instance": "Importar páginas de uma instância do Confluence",
|
||||
"Enterprise": "Empresarial",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfira rapidamente seus documentos, páginas e arquivos existentes de outras ferramentas e serviços para o {{appName}}. Você também pode arrastar e soltar qualquer documento HTML, Markdown e texto diretamente nas Coleções do aplicativo.",
|
||||
"Recent imports": "Importações recentes",
|
||||
"Could not load members": "Não foi possível carregar membros",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Todos que fizeram login em {{appName}} estão listados aqui. É possível que existam outros usuários que tenham acesso através de {{signinMethods}} mas que ainda não tenham feito login.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Permitir que os editores criem coleções no espaço de trabalho",
|
||||
"Workspace creation": "Criação de espaço de trabalho",
|
||||
"Allow editors to create new workspaces": "Permitir que os editores criem espaços de trabalho",
|
||||
"Draw.io deployment": "Implantação do Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Adicione sua url de instalação auto-hospedada do draw.io aqui para permitir a incorporação automática de diagramas em documentos.",
|
||||
"Grist deployment": "Implantação do Grist",
|
||||
"Add your self-hosted grist installation URL here.": "Adicione a sua URL de instalação auto-hospedada do Grist aqui.",
|
||||
"Could not load shares": "Não foi possível carregar os compartilhamentos",
|
||||
"Sharing is currently disabled.": "O compartilhamento está desativado no momento.",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Você pode ativar e desativar globalmente o compartilhamento público de documentos nas <em>configurações de segurança</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "A URL da sua instância Matomo. Se você estiver usando Matomo Cloud, ela terminará em matomo.cloud/",
|
||||
"Site ID": "ID do Site",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Um ID que identifica unicamente o site na sua instância Matomo.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Adicionar ao Slack",
|
||||
"document published": "documento publicado",
|
||||
"document updated": "documento atualizado",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} atualizou {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Você criou {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} criou {{ timeAgo }}",
|
||||
"Uploading": "Enviando"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
"Search in collection": "Procurar na coleção",
|
||||
"Star": "Estrela",
|
||||
"Unstar": "Tirar estrela",
|
||||
"Subscribe": "Subscrever",
|
||||
"Subscribed to document notifications": "Notificações de documentos subscritas",
|
||||
"Unsubscribe": "Deixar de subscrever",
|
||||
"Unsubscribed from document notifications": "Deixar de subscrever as notificações de documentos",
|
||||
"Archive": "Arquivo",
|
||||
"Archive collection": "Archive collection",
|
||||
"Collection archived": "Collection archived",
|
||||
@@ -44,10 +48,6 @@
|
||||
"Publish document": "Documento publicado",
|
||||
"Unpublish": "Despublicar",
|
||||
"Unpublished {{ documentName }}": "Reverter publicação do {{ documentName }}",
|
||||
"Subscribe": "Subscrever",
|
||||
"Subscribed to document notifications": "Notificações de documentos subscritas",
|
||||
"Unsubscribe": "Deixar de subscrever",
|
||||
"Unsubscribed from document notifications": "Deixar de subscrever as notificações de documentos",
|
||||
"Share this document": "Partilhar este documento",
|
||||
"HTML": "HTML",
|
||||
"PDF": "PDF",
|
||||
@@ -57,6 +57,8 @@
|
||||
"Download document": "Descarregar documento",
|
||||
"Copy as Markdown": "Copiar como Markdown",
|
||||
"Markdown copied to clipboard": "Markdown copiado para área de transferência",
|
||||
"Copy as text": "Copy as text",
|
||||
"Text copied to clipboard": "Text copied to clipboard",
|
||||
"Copy public link": "Copiar ligação pública",
|
||||
"Link copied to clipboard": "Copiado para o clipboard",
|
||||
"Copy link": "Copiar link",
|
||||
@@ -100,6 +102,7 @@
|
||||
"Could not leave document": "Could not leave document",
|
||||
"Home": "Página inicial",
|
||||
"Drafts": "Rascunhos",
|
||||
"Search": "Pesquisa",
|
||||
"Trash": "Reciclagem",
|
||||
"Settings": "Configurações",
|
||||
"Profile": "Perfil",
|
||||
@@ -137,6 +140,7 @@
|
||||
"Update role": "Atualizar função",
|
||||
"Delete user": "Eliminar utilizador",
|
||||
"Collection": "Coleção",
|
||||
"Collections": "Coleções",
|
||||
"Debug": "Depurar",
|
||||
"Document": "Documento",
|
||||
"Documents": "Documentos",
|
||||
@@ -194,6 +198,7 @@
|
||||
"Submenu": "Submenu",
|
||||
"Collections could not be loaded, please reload the app": "Não foi possível carregar as Coleções, recarregue a aplicação",
|
||||
"Default collection": "Coleção predefinida",
|
||||
"Start view": "Vista inicial",
|
||||
"Install now": "Instalar agora",
|
||||
"Deleted Collection": "Coleção eliminada",
|
||||
"Untitled": "Sem título",
|
||||
@@ -289,7 +294,6 @@
|
||||
"Flags": "Bandeiras",
|
||||
"Select a color": "Escolha uma cor",
|
||||
"Loading": "A carregar",
|
||||
"Search": "Pesquisa",
|
||||
"Permission": "Permissão",
|
||||
"View only": "Apenas consulta",
|
||||
"Can edit": "Pode editar",
|
||||
@@ -368,7 +372,6 @@
|
||||
"Archived collections": "Archived collections",
|
||||
"New doc": "Novo doc",
|
||||
"Empty": "Vazio",
|
||||
"Collections": "Coleções",
|
||||
"Collapse": "Fechar",
|
||||
"Expand": "Expandir",
|
||||
"Document not supported – try Markdown, Plain text, HTML, or Word": "Documento não suportado — tente Markdown, texto simples, HTML ou Word",
|
||||
@@ -425,6 +428,7 @@
|
||||
"Create a new doc": "Criar um novo documento",
|
||||
"{{ userName }} won't be notified, as they do not have access to this document": "{{ userName }} won't be notified, as they do not have access to this document",
|
||||
"Keep as link": "Keep as link",
|
||||
"Mention": "Mention",
|
||||
"Embed": "Embed",
|
||||
"Add column after": "Adicionar coluna depois",
|
||||
"Add column before": "Adicionar coluna antes",
|
||||
@@ -506,6 +510,7 @@
|
||||
"None": "Nenhum",
|
||||
"Could not import file": "Não foi possível importar o ficheiro",
|
||||
"Unsubscribed from document": "Desinscrever do documento",
|
||||
"Unsubscribed from collection": "Unsubscribed from collection",
|
||||
"Account": "Conta",
|
||||
"API Keys": "API Keys",
|
||||
"Details": "Detalhes",
|
||||
@@ -515,7 +520,6 @@
|
||||
"Groups": "Grupos",
|
||||
"Shared Links": "Ligações partilhadas",
|
||||
"Import": "Importar",
|
||||
"Self Hosted": "Auto-hospedado",
|
||||
"Integrations": "Integrações",
|
||||
"Revoke token": "Revogar token",
|
||||
"Revoke": "Revogar",
|
||||
@@ -533,12 +537,15 @@
|
||||
"{{ documentName }} restored": "{{ documentName}} reposto",
|
||||
"Document options": "Opções do documento",
|
||||
"Choose a collection": "Escolher coleção",
|
||||
"Subscription inherited from collection": "Subscription inherited from collection",
|
||||
"Enable embeds": "Ativar embeds",
|
||||
"Export options": "Opções de exportação",
|
||||
"Group members": "Membros do grupo",
|
||||
"Edit group": "Editar grupo",
|
||||
"Delete group": "Apagar grupo",
|
||||
"Group options": "Opções do grupo",
|
||||
"Cancel": "Cancelar",
|
||||
"Import menu options": "Import menu options",
|
||||
"Member options": "Opções de membros",
|
||||
"New document in <em>{{ collectionName }}</em>": "Novo documento em <em>{{ collectionName }}</em>",
|
||||
"New child document": "Novo documento aninhado",
|
||||
@@ -610,15 +617,14 @@
|
||||
"Add a reply": "Adicionar resposta",
|
||||
"Reply": "Responder",
|
||||
"Post": "Enviar",
|
||||
"Cancel": "Cancelar",
|
||||
"Upload image": "Carregar imagem",
|
||||
"No resolved comments": "Sem comentários resolvidos",
|
||||
"No comments yet": "Ainda sem comentários",
|
||||
"New comments": "New comments",
|
||||
"Sort comments": "Sort comments",
|
||||
"Most recent": "Most recent",
|
||||
"Order in doc": "Order in doc",
|
||||
"Resolved": "Resolved",
|
||||
"Sort comments": "Sort comments",
|
||||
"Show {{ count }} reply": "Show {{ count }} reply",
|
||||
"Show {{ count }} reply_plural": "Show {{ count }} replies",
|
||||
"Error updating comment": "Erro ao atualizar comentário",
|
||||
@@ -699,8 +705,11 @@
|
||||
"No documents found for your filters.": "Nenhum documento encontrado com os seus filtros.",
|
||||
"You’ve not got any drafts at the moment.": "Não tem nenhum rascunho de momento.",
|
||||
"Payment Required": "Pagamento Necessário",
|
||||
"Not Found": "Não encontrado",
|
||||
"We were unable to find the page you’re looking for. Go to the <2>homepage</2>?": "Não conseguimos encontrar a página que está à procura. Ir para a <2>página inicial</2>?",
|
||||
"No access to this doc": "No access to this doc",
|
||||
"It doesn’t look like you have permission to access this document.": "It doesn’t look like you have permission to access this document.",
|
||||
"Please request access from the document owner.": "Please request access from the document owner.",
|
||||
"Not found": "Not found",
|
||||
"The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.": "The page you’re looking for cannot be found. It might have been deleted or the link is incorrect.",
|
||||
"Offline": "Offline",
|
||||
"We were unable to load the document while offline.": "Não foi possível carregar o documento em modo offline.",
|
||||
"Your account has been suspended": "A sua conta foi suspensa",
|
||||
@@ -793,7 +802,7 @@
|
||||
"Sorry, it looks like that sign-in link is no longer valid, please try requesting another.": "Desculpe, parece que essa ligação de login já não é válido, por favor, tente solicitar outra.",
|
||||
"Your account has been suspended. To re-activate your account, please contact a workspace admin.": "A sua conta foi suspensa. Para reativar, entre em contato com um administrador de área de trabalho.",
|
||||
"This workspace has been suspended. Please contact support to restore access.": "Esta área de trabalho foi suspensa. Por favor, contate o suporte para restaurar o acesso.",
|
||||
"Authentication failed – this login method was disabled by a team admin.": "Falha na autenticação — este método de autenticação foi desativado por um administrador da equipa.",
|
||||
"Authentication failed – this login method was disabled by a workspace admin.": "Authentication failed – this login method was disabled by a workspace admin.",
|
||||
"The workspace you are trying to join requires an invite before you can create an account.<1></1>Please request an invite from your workspace admin and try again.": "A área de trabalho em que tenta entrar requer um convite antes de criar uma conta. <1></1>Solicite um convite do administrador da sua área de trabalho e tente novamente.",
|
||||
"Sorry, an unknown error occurred.": "Sorry, an unknown error occurred.",
|
||||
"Login": "Entrada",
|
||||
@@ -814,17 +823,16 @@
|
||||
"Or": "ou",
|
||||
"Already have an account? Go to <1>login</1>.": "Já tem conta? Entre em <1>login</1>.",
|
||||
"Any collection": "Qualquer coleção",
|
||||
"Any time": "A qualquer altura",
|
||||
"All time": "All time",
|
||||
"Past day": "Último dia",
|
||||
"Past week": "Última semana",
|
||||
"Past month": "Último mês",
|
||||
"Past year": "Último ano",
|
||||
"Any time": "A qualquer altura",
|
||||
"Remove document filter": "Remover filtro de documento",
|
||||
"Any status": "Qualquer estado",
|
||||
"Remove search": "Excluir pesquisa",
|
||||
"Any author": "Qualquer autor",
|
||||
"Author": "Autor",
|
||||
"We were unable to find the page you’re looking for.": "Não conseguimos encontrar a página que está à procura.",
|
||||
"Search titles only": "Pesquisar apenas títulos",
|
||||
"Something went wrong": "Ocorreu um erro",
|
||||
"Please try again or contact support if the problem persists": "Tente novamente ou contate o suporte se o problema persistir",
|
||||
@@ -885,14 +893,20 @@
|
||||
"No people left to add": "Não sobrou ninguém para adicionar",
|
||||
"Date created": "Date created",
|
||||
"Upload": "Upload",
|
||||
"Crop image": "Crop image",
|
||||
"Uploading": "A carregar",
|
||||
"How does this work?": "Como funciona?",
|
||||
"You can import a zip file that was previously exported from the JSON option in another instance. In {{ appName }}, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Pode importar um ficheiro ZIP que foi exportado anteriormente a partir da opção JSON de outra instância. Em {{ appName }}, abra <em>Exportar</em> na barra lateral de Configurações e clique em <em>Exportar Dados</em>.",
|
||||
"Drag and drop the zip file from the JSON export option in {{appName}}, or click to upload": "Arraste e solte o ficheiro ZIP da opção de exportação JSON em {{appName}}ou clique para carregar",
|
||||
"Canceled": "Canceled",
|
||||
"Import canceled": "Import canceled",
|
||||
"Are you sure you want to cancel this import?": "Are you sure you want to cancel this import?",
|
||||
"Canceling": "Canceling",
|
||||
"Canceling this import will discard any progress made. This cannot be undone.": "Canceling this import will discard any progress made. This cannot be undone.",
|
||||
"{{ count }} document imported": "{{ count }} document imported",
|
||||
"{{ count }} document imported_plural": "{{ count }} documents imported",
|
||||
"You can import a zip file that was previously exported from an Outline installation – collections, documents, and images will be imported. In Outline, open <em>Export</em> in the Settings sidebar and click on <em>Export Data</em>.": "Pode importar um arquivo ZIP que foi exportado anteriormente a partir de uma instalação de Outline — coleções, documentos e imagens serão importadas. No Outline, abra <em>Exportar</em> na barra lateral de Configurações e clique em <em>Exportar Dados</em>.",
|
||||
"Drag and drop the zip file from the Markdown export option in {{appName}}, or click to upload": "Arraste e solte o arquivo ZIP da opção de exportação Markdown em {{appName}}, ou clique para carregar",
|
||||
"Where do I find the file?": "Onde encontro o arquivo?",
|
||||
"In Notion, click <em>Settings & Members</em> in the left sidebar and open Settings. Look for the Export section, and click <em>Export all workspace content</em>. Choose <em>HTML</em> as the format for the best data compatability.": "Em Notion, clique em <em>Configurações & Membros</em> na barra lateral esquerda e abra Configurações. Procure pela seção Exportar e clique <em>Exportar todo o conteúdo da área de trabalho</em>. Escolha o formato <em>HTML</em> para melhor compatibilidade de dados.",
|
||||
"Drag and drop the zip file from Notion's HTML export option, or click to upload": "Arraste e solte o arquivo ZIP da opção de exportação HTML do Notion, ou clique para carregar",
|
||||
"Last active": "Última atividade",
|
||||
"Guest": "Convidado",
|
||||
"Shared by": "Partilhado por",
|
||||
@@ -905,6 +919,8 @@
|
||||
"Editors": "Editores",
|
||||
"All status": "Todos os estados",
|
||||
"Active": "Activo",
|
||||
"Left": "Esquerda",
|
||||
"Right": "Direita",
|
||||
"Settings saved": "Configurações guardadas",
|
||||
"Logo updated": "Logotipo atualizado",
|
||||
"Unable to upload new logo": "Não foi possível carregar o novo logotipo",
|
||||
@@ -922,13 +938,10 @@
|
||||
"Show your team’s logo on public pages like login and shared documents.": "Mostre o logotipo da sua equipa em páginas públicas, como login e documentos partilhados.",
|
||||
"Table of contents position": "Posição do índice",
|
||||
"The side to display the table of contents in relation to the main content.": "O lado para exibir a tabela de conteúdo em relação ao conteúdo principal.",
|
||||
"Left": "Esquerda",
|
||||
"Right": "Direita",
|
||||
"Behavior": "Comportamento",
|
||||
"Subdomain": "Subdomínio",
|
||||
"Your workspace will be accessible at": "Área de trabalho ficará acessível em",
|
||||
"Choose a subdomain to enable a login page just for your team.": "Escolha um subdomínio para habilitar uma página de login apenas para a sua equipa.",
|
||||
"Start view": "Vista inicial",
|
||||
"This is the screen that workspace members will first see when they sign in.": "Este é o painel que os membros da área de trabalho verão primeiro quando entram.",
|
||||
"Danger": "Perigo",
|
||||
"You can delete this entire workspace including collections, documents, and users.": "Pode eliminar a área de trabalho inteira, incluindo coleções, documentos e utilizadores.",
|
||||
@@ -945,13 +958,12 @@
|
||||
"New group": "Novo grupo",
|
||||
"Groups can be used to organize and manage the people on your team.": "Grupos podem ser usados para organizar e gerir os utilizadores da equipa.",
|
||||
"No groups have been created yet": "Ainda não foi criado nenhum grupo",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfira rapidamente os documentos existentes, páginas e ficheiros de outras ferramentas e serviços para {{appName}}. Também pode arrastar e soltar qualquer documento HTML, Markdown e documento de texto diretamente para as Coleções na aplicação.",
|
||||
"Import a zip file of Markdown documents (exported from version 0.67.0 or earlier)": "Importe um ficheiro zip de documentos Markdown (exportado da versão 0.67.0 ou posterior)",
|
||||
"Import data": "Importar dados",
|
||||
"Import a JSON data file exported from another {{ appName }} instance": "Importar um ficheiro de dados JSON exportado de outra instância do {{ appName }}",
|
||||
"Import pages exported from Notion": "Importar páginas exportadas de Notion",
|
||||
"Import pages from a Confluence instance": "Importar páginas de uma instância de Confluence",
|
||||
"Enterprise": "Empresa",
|
||||
"Quickly transfer your existing documents, pages, and files from other tools and services into {{appName}}. You can also drag and drop any HTML, Markdown, and text documents directly into Collections in the app.": "Transfira rapidamente os documentos existentes, páginas e ficheiros de outras ferramentas e serviços para {{appName}}. Também pode arrastar e soltar qualquer documento HTML, Markdown e documento de texto diretamente para as Coleções na aplicação.",
|
||||
"Recent imports": "Importações recentes",
|
||||
"Could not load members": "Could not load members",
|
||||
"Everyone that has signed into {{appName}} is listed here. It’s possible that there are other users who have access through {{signinMethods}} but haven’t signed in yet.": "Todos que entraram em {{appName}} estão listados aqui. É possível que haja outros utilizadores que tenham acesso através de {{signinMethods}}, mas ainda não efetuaram login.",
|
||||
@@ -1032,10 +1044,6 @@
|
||||
"Allow editors to create new collections within the workspace": "Permitir que editores criar coleções na área de trabalho",
|
||||
"Workspace creation": "Criação de área de trabalho",
|
||||
"Allow editors to create new workspaces": "Permitir que editores criem áreas de trabalho",
|
||||
"Draw.io deployment": "Implementação de Draw.io",
|
||||
"Add your self-hosted draw.io installation url here to enable automatic embedding of diagrams within documents.": "Adicione o URL de instalação de draw.io auto-hospedado aqui para permitir incorporação automática de diagramas em documentos.",
|
||||
"Grist deployment": "Implementação Grist",
|
||||
"Add your self-hosted grist installation URL here.": "Adicione o URL de instalação de grist auto-hospedada aqui.",
|
||||
"Could not load shares": "Could not load shares",
|
||||
"Sharing is currently disabled.": "Partilha atualmente inativa",
|
||||
"You can globally enable and disable public document sharing in the <em>security settings</em>.": "Pode ativar e desativar globalmente a partilha pública de documentos nas <em>configurações de segurança</em>.",
|
||||
@@ -1086,6 +1094,8 @@
|
||||
"The URL of your Matomo instance. If you are using Matomo Cloud it will end in matomo.cloud/": "A URL da sua instância Matomo. Se você usar Matomo Cloud, terminará em matomo.cloud/",
|
||||
"Site ID": "ID do Site",
|
||||
"An ID that uniquely identifies the website in your Matomo instance.": "Um ID que identifica exclusivamente o site na instância Matomo.",
|
||||
"Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?": "Whoops, you need to accept the permissions in Notion to connect {{ appName }} to your workspace. Try again?",
|
||||
"Import pages from Notion": "Import pages from Notion",
|
||||
"Add to Slack": "Adicionar ao Slack",
|
||||
"document published": "documento publicado",
|
||||
"document updated": "documento atualizado",
|
||||
@@ -1142,5 +1152,5 @@
|
||||
"{{ user }} updated {{ timeAgo }}": "{{ user }} atualizado à {{ timeAgo }}",
|
||||
"You created {{ timeAgo }}": "Criou à {{ timeAgo }}",
|
||||
"{{ user }} created {{ timeAgo }}": "{{ user }} criado à {{ timeAgo }}",
|
||||
"Uploading": "A carregar"
|
||||
}
|
||||
"Error loading data": "Error loading data"
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user