Merge branch 'main' of github.com:outline/outline

This commit is contained in:
Tom Moor
2022-01-23 21:02:12 -08:00
23 changed files with 133 additions and 120 deletions

View File

@@ -1,11 +1,3 @@
# 👋 Welcome, we're glad you're setting up an installation of Outline. Copy this
# file to .env or set the variables in your local environment manually. For
# development with docker this should mostly work out of the box other than
# setting the Slack keys and the SECRET_KEY.
# REQUIRED
# Generate a hex-encoded 32-byte random key. You should use `openssl rand -hex 32`

View File

@@ -1,7 +1,7 @@
import invariant from "invariant";
import Logger from "@server/logging/logger";
import { Team, AuthenticationProvider } from "@server/models";
import { getAllowedDomains } from "@server/utils/authentication";
import { isDomainAllowed } from "@server/utils/authentication";
import { generateAvatarUrl } from "@server/utils/avatars";
import { MaximumTeamsError } from "../errors";
@@ -57,9 +57,9 @@ export default async function teamCreator({
const teamCount = await Team.count();
// If the self-hosted installation has a single team and the domain for the
// new team matches one in the allowed domains env variable then assign the
// authentication provider to the existing team
if (teamCount === 1 && domain && getAllowedDomains().includes(domain)) {
// new team is allowed then assign the authentication provider to the
// existing team
if (teamCount === 1 && domain && isDomainAllowed(domain)) {
const team = await Team.findOne();
invariant(team, "Team should exist");

View File

@@ -10,14 +10,13 @@ import {
GoogleWorkspaceInvalidError,
} from "@server/errors";
import passportMiddleware from "@server/middlewares/passport";
import { getAllowedDomains } from "@server/utils/authentication";
import { isDomainAllowed } from "@server/utils/authentication";
import { StateStore } from "@server/utils/passport";
const router = new Router();
const providerName = "google";
const GOOGLE_CLIENT_ID = process.env.GOOGLE_CLIENT_ID;
const GOOGLE_CLIENT_SECRET = process.env.GOOGLE_CLIENT_SECRET;
const allowedDomains = getAllowedDomains();
const scopes = [
"https://www.googleapis.com/auth/userinfo.profile",
"https://www.googleapis.com/auth/userinfo.email",
@@ -48,7 +47,7 @@ if (GOOGLE_CLIENT_ID) {
throw GoogleWorkspaceRequiredError();
}
if (allowedDomains.length && !allowedDomains.includes(domain)) {
if (!isDomainAllowed(domain)) {
throw GoogleWorkspaceInvalidError();
}

View File

@@ -9,7 +9,7 @@ import {
AuthenticationError,
} from "@server/errors";
import passportMiddleware from "@server/middlewares/passport";
import { getAllowedDomains } from "@server/utils/authentication";
import { isDomainAllowed } from "@server/utils/authentication";
import { StateStore, request } from "@server/utils/passport";
const router = new Router();
@@ -23,7 +23,6 @@ const OIDC_USERINFO_URI = process.env.OIDC_USERINFO_URI || "";
const OIDC_SCOPES = process.env.OIDC_SCOPES || "";
const OIDC_USERNAME_CLAIM =
process.env.OIDC_USERNAME_CLAIM || "preferred_username";
const allowedDomains = getAllowedDomains();
export const config = {
name: OIDC_DISPLAY_NAME,
@@ -84,7 +83,7 @@ if (OIDC_CLIENT_ID) {
throw OIDCMalformedUserInfoError();
}
if (allowedDomains.length && !allowedDomains.includes(domain)) {
if (!isDomainAllowed(domain)) {
throw AuthenticationError(
`Domain ${domain} is not on the whitelist`
);

View File

@@ -12,6 +12,11 @@ export function getAllowedDomains(): string[] {
return env ? env.split(",") : [];
}
export function isDomainAllowed(domain: string): boolean {
const allowedDomains = getAllowedDomains();
return allowedDomains.includes(domain) || allowedDomains.length === 0;
}
export async function signIn(
ctx: Context,
user: User,

View File

@@ -40,6 +40,7 @@
"Dark": "Dark",
"Light": "Light",
"System": "System",
"Appearance": "Appearance",
"Change theme": "Change theme",
"Change theme to": "Change theme to",
"Invite people": "Invite people",

View File

@@ -40,6 +40,7 @@
"Dark": "Dunkel",
"Light": "Hell",
"System": "System",
"Appearance": "Appearance",
"Change theme": "Theme ändern",
"Change theme to": "Theme ändern zu",
"Invite people": "Personen einladen",

View File

@@ -16,9 +16,9 @@
"Duplicate document": "Duplicar documento",
"Document duplicated": "Documento duplicado",
"Pin to collection": "Fijar a colección",
"Pinned to collection": "Pinned to collection",
"Pin to home": "Pin to home",
"Pinned to team home": "Pinned to team home",
"Pinned to collection": "Fijado a la colección",
"Pin to home": "Fijar a inicio",
"Pinned to team home": "Fijado a inicio de equipo",
"Print": "Imprimir",
"Print document": "Imprimir documento",
"Import document": "Importar documento",
@@ -40,6 +40,7 @@
"Dark": "Oscuro",
"Light": "Claro",
"System": "Sistema",
"Appearance": "Appearance",
"Change theme": "Cambiar tema",
"Change theme to": "Cambiar tema a",
"Invite people": "Invitar personas",
@@ -179,7 +180,7 @@
"Delete table": "Eliminar tabla",
"Delete image": "Eliminar imagen",
"Download image": "Descargar imagen",
"Replace image": "Replace image",
"Replace image": "Sustituir imagen",
"Float left": "Flotar a la izquierda",
"Float right": "Flotar a la derecha",
"Center large": "Centrar grande",
@@ -244,7 +245,7 @@
"Move": "Mover",
"Enable embeds": "Habilitar embeds",
"Disable embeds": "Desactivar embeds",
"Full width": "Full width",
"Full width": "Anchura completa",
"Move {{ documentName }}": "Mover {{ documentName }}",
"Permanently delete {{ documentName }}": "Eliminar permanentemente {{ documentName }}",
"Export options": "Opciones de exportación",
@@ -379,7 +380,7 @@
"Publish": "Publicar",
"Publishing": "Publicando",
"Sorry, it looks like you dont have permission to access the document": "Lo sentimos, parece que no tienes permiso para acceder al documento",
"Observing {{ userName }}": "Observing {{ userName }}",
"Observing {{ userName }}": "Observando {{ userName }}",
"Nested documents": "Documentos anidados",
"Referenced by": "Referenciada por",
"Anyone with the link <1></1>can view this document": "Cualquiera con el enlace <1></1> puede ver este documento",
@@ -500,8 +501,8 @@
"Past week": "Última semana",
"Past month": "Último mes",
"Past year": "Último año",
"Recent searches": "Recent searches",
"Remove search": "Remove search",
"Recent searches": "Búsquedas recientes",
"Remove search": "Eliminar búsqueda",
"Active documents": "Documentos activos",
"Documents in collections you are able to access": "Documentos en colecciones a las que puedes acceder",
"All documents": "Todos los documentos",
@@ -510,7 +511,7 @@
"Author": "Autor",
"Not Found": "No encontrado",
"We were unable to find the page youre looking for.": "No pudimos encontrar la página que buscabas.",
"No documents found for your search filters.": "No documents found for your search filters.",
"No documents found for your search filters.": "No se encontraron documentos para sus filtros de búsqueda.",
"Processing": "Procesando",
"Expired": "Expirado",
"Error": "Error",
@@ -523,10 +524,10 @@
"Last accessed": "Ultimo acceso",
"Add to Slack": "Añadir a Slack",
"Settings saved": "Configuración guardada",
"document published": "document published",
"document updated": "document updated",
"document published": "documento publicado",
"document updated": "documento actualizado",
"Posting to the <em>{{ channelName }}</em> channel on": "Posting to the <em>{{ channelName }}</em> channel on",
"These events should be posted to Slack": "These events should be posted to Slack",
"These events should be posted to Slack": "Estos eventos deben publicarse en Slack",
"Document published": "Documento publicado",
"Document updated": "Documento actualizado",
"Disconnect": "Desconectar",

View File

@@ -40,6 +40,7 @@
"Dark": "تیره",
"Light": "روشن",
"System": "سامانه",
"Appearance": "Appearance",
"Change theme": "تغییر پوسته",
"Change theme to": "تغییر پوسته به",
"Invite people": "دعوت از افراد",

View File

@@ -16,8 +16,8 @@
"Duplicate document": "Dupliquer le document",
"Document duplicated": "Document dupliqué",
"Pin to collection": "Épingler à la collection",
"Pinned to collection": "Pinned to collection",
"Pin to home": "Pin to home",
"Pinned to collection": "Épinglé à la collection",
"Pin to home": "Épingler sur la page d'accueil",
"Pinned to team home": "Pinned to team home",
"Print": "Imprimer",
"Print document": "Imprimer le document",
@@ -40,6 +40,7 @@
"Dark": "Foncé",
"Light": "Clair",
"System": "Système",
"Appearance": "Appearance",
"Change theme": "Changer le thème",
"Change theme to": "Changer le thème pour",
"Invite people": "Inviter des personnes",
@@ -179,7 +180,7 @@
"Delete table": "Supprimer ce tableau",
"Delete image": "Supprimer l'image",
"Download image": "Télécharger limage",
"Replace image": "Replace image",
"Replace image": "Remplacer l'image",
"Float left": "Aligner à gauche",
"Float right": "Aligner à droite",
"Center large": "Centrer en grand",
@@ -244,7 +245,7 @@
"Move": "Déplacer",
"Enable embeds": "Activer les intégrations",
"Disable embeds": "Désactiver les intégrations",
"Full width": "Full width",
"Full width": "Largeur totale",
"Move {{ documentName }}": "Déplacer {{ documentName }}",
"Permanently delete {{ documentName }}": "Supprimer définitivement {{ documentName }}",
"Export options": "Options d'exportation",
@@ -500,8 +501,8 @@
"Past week": "La semaine dernière",
"Past month": "Le mois dernier",
"Past year": "L'année dernière",
"Recent searches": "Recent searches",
"Remove search": "Remove search",
"Recent searches": "Recherches récentes",
"Remove search": "Supprimer la recherche",
"Active documents": "Documents actifs",
"Documents in collections you are able to access": "Documents dans les collections auxquelles vous pouvez accéder",
"All documents": "Tous les documents",
@@ -510,7 +511,7 @@
"Author": "Auteur",
"Not Found": "Non trouvé",
"We were unable to find the page youre looking for.": "Nous n'avons pas pu trouver la page que vous recherchez.",
"No documents found for your search filters.": "No documents found for your search filters.",
"No documents found for your search filters.": "Aucun document trouvé pour vos critères de recherche.",
"Processing": "Traitement en cours",
"Expired": "Expiré",
"Error": "Erreur",
@@ -523,8 +524,8 @@
"Last accessed": "Dernier accès",
"Add to Slack": "Ajouter à Slack",
"Settings saved": "Paramètres enregistrés",
"document published": "document published",
"document updated": "document updated",
"document published": "document publié",
"document updated": "document mis à jour",
"Posting to the <em>{{ channelName }}</em> channel on": "Posting to the <em>{{ channelName }}</em> channel on",
"These events should be posted to Slack": "These events should be posted to Slack",
"Document published": "Document publié",

View File

@@ -40,6 +40,7 @@
"Dark": "Scuro",
"Light": "Chiaro",
"System": "Sistema",
"Appearance": "Appearance",
"Change theme": "Change theme",
"Change theme to": "Change theme to",
"Invite people": "Invita persone",

View File

@@ -16,9 +16,9 @@
"Duplicate document": "ドキュメントを複製",
"Document duplicated": "ドキュメントの重複",
"Pin to collection": "コレクションに追加",
"Pinned to collection": "Pinned to collection",
"Pin to home": "Pin to home",
"Pinned to team home": "Pinned to team home",
"Pinned to collection": "コレクションに追加",
"Pin to home": "ホームに固定",
"Pinned to team home": "チームホームに固定",
"Print": "プリント",
"Print document": "ドキュメントを印刷する",
"Import document": "ドキュメントのインポート",
@@ -40,6 +40,7 @@
"Dark": "ダークモード",
"Light": "ライトモード",
"System": "システム",
"Appearance": "Appearance",
"Change theme": "テーマを変更する",
"Change theme to": "Change theme to",
"Invite people": "他の人を招待",
@@ -492,7 +493,7 @@
"You signed in with {{ authProviderName }} last time.": "You signed in with {{ authProviderName }} last time.",
"Already have an account? Go to <1>login</1>.": "Already have an account? Go to <1>login</1>.",
"Sign In": "ログイン",
"Continue with Email": "Continue with Email",
"Continue with Email": "Eメールで続行",
"Continue with {{ authProviderName }}": "Continue with {{ authProviderName }}",
"Any collection": "コレクション",
"Any time": "いつでも",
@@ -511,7 +512,7 @@
"Not Found": "見つかりません",
"We were unable to find the page youre looking for.": "お探しのページが見つかりませんでした。",
"No documents found for your search filters.": "No documents found for your search filters.",
"Processing": "Processing",
"Processing": "処理中",
"Expired": "期限切れ",
"Error": "エラー",
"All collections": "全てのコレクション",
@@ -528,7 +529,7 @@
"Posting to the <em>{{ channelName }}</em> channel on": "Posting to the <em>{{ channelName }}</em> channel on",
"These events should be posted to Slack": "These events should be posted to Slack",
"Document published": "Document published",
"Document updated": "Document updated",
"Document updated": "文書が更新されました",
"Disconnect": "接続を解除",
"Active": "アクティブ",
"Everyone": "すべてのユーザー",

View File

@@ -40,6 +40,7 @@
"Dark": "어둡게 보기",
"Light": "밝게 보기",
"System": "시스템",
"Appearance": "Appearance",
"Change theme": "테마 변경",
"Change theme to": "다음으로 테마 변경",
"Invite people": "초대하기",
@@ -73,7 +74,7 @@
"deleted": "삭제됨",
"archived": "보관됨",
"created": "추가됨",
"published": "출판",
"published": "발행",
"saved": "저장됨",
"updated": "업데이트 됨",
"Never viewed": "미조회",
@@ -281,17 +282,17 @@
"Activate account": "계정 활성화",
"Suspend account": "계정 정지",
"API token created": "API 토큰 생성됨",
"Name your token something that will help you to remember it's use in the future, for example \"local development\", \"production\", or \"continuous integration\".": "Name your token something that will help you to remember it's use in the future, for example \"local development\", \"production\", or \"continuous integration\".",
"Name your token something that will help you to remember it's use in the future, for example \"local development\", \"production\", or \"continuous integration\".": "토큰 이름을 \"로컬 개발\", \"프로덕션\" 또는 \"지속적 통합\"과 같이 향후 사용하는데 도움이 되는 이름으로 지정합니다.",
"Documents": "문서",
"The document archive is empty at the moment.": "현재 보관 문서함이 비어 있습니다.",
"This collection is only visible to those given access": "This collection is only visible to those given access",
"This collection is only visible to those given access": "이 컬렉션은 액세스 권한이 부여된 사람에게만 표시됩니다.",
"Private": "비공개",
"Recently updated": "최근 업데이트 순",
"Recently published": "최근 게시 순",
"Least recently updated": "오래된 순",
"AZ": "A-Z",
"Search in collection": "컬렉션 검색",
"Drop documents to import": "Drop documents to import",
"Drop documents to import": "가져올 문서 내려놓기",
"<em>{{ collectionName }}</em> doesnt contain any\n documents yet.": "<em>{{ collectionName }}</em> 컬렉션에 문서가 없습니다.",
"Get started by creating a new one!": "새 문서를 만들어 시작해 보세요!",
"Create a document": "새 문서",
@@ -353,7 +354,7 @@
"Additional access": "추가 액세스",
"Add groups": "그룹 추가",
"Add people": "사용자 추가하기",
"Add specific access for individual groups and team members": "Add specific access for individual groups and team members",
"Add specific access for individual groups and team members": "개별 그룹 및 팀 구성원에 대한 특정 액세스 추가",
"Add groups to {{ collectionName }}": "{{ collectionName }} 에 그룹 추가",
"Add people to {{ collectionName }}": "{{ collectionName }} 에 사용자 추가",
"Document updated by {{userName}}": "{{userName}} 에 의해 업데이트 됨",
@@ -364,7 +365,7 @@
"Deleted by {{userName}}": "{{userName}} 에 의해 삭제됨",
"This template will be permanently deleted in <2></2> unless restored.": "This template will be permanently deleted in <2></2> unless restored.",
"This document will be permanently deleted in <2></2> unless restored.": "This document will be permanently deleted in <2></2> unless restored.",
"Start your template…": "Start your template…",
"Start your template…": "템플릿 시작...",
"Start with a title…": "제목과 함께 시작...",
"…the rest is up to you": "…나머지는 당신에게 달려 있습니다",
"Hide contents": "내용 숨기기",
@@ -441,14 +442,14 @@
"You havent created any documents yet": "You havent created any documents yet",
"Documents youve recently viewed will be here for easy access": "Documents youve recently viewed will be here for easy access",
"We sent out your invites!": "We sent out your invites!",
"Sorry, you can only send {{MAX_INVITES}} invites at a time": "Sorry, you can only send {{MAX_INVITES}} invites at a time",
"Sorry, you can only send {{MAX_INVITES}} invites at a time": "죄송합니다. 한 번에 {{MAX_INVITES}} 명만 초대할 수 있습니다.",
"Invite team members or guests to join your knowledge base. Team members can sign in with {{signinMethods}} or use their email address.": "팀 구성원이나 게스트를 초대합니다. 팀원은 {{signinMethods}} 혹은 이메일 주소를 통해 가입할 수 있습니다.",
"Invite team members to join your knowledge base. They will need to sign in with {{signinMethods}}.": "Invite team members to join your knowledge base. They will need to sign in with {{signinMethods}}.",
"As an admin you can also <2>enable email sign-in</2>.": "As an admin you can also <2>enable email sign-in</2>.",
"Want a link to share directly with your team?": "직접 공유할 수 있는 링크를 원하십니까?",
"Email": "Email",
"Email": "이메일",
"Full name": "이름",
"Remove invite": "Remove invite",
"Remove invite": "초대 제거",
"Add another": "사용자 추가 초대",
"Inviting": "Inviting",
"Send Invites": "초대 보내기",
@@ -481,19 +482,19 @@
"Blockquote": "블록 인용구",
"Horizontal divider": "구분선",
"Inline code": "인라인 코드",
"Back to home": "Back to home",
"Back to website": "Back to website",
"Check your email": "Check your email",
"Back to home": "홈으로 돌아가기",
"Back to website": "웹사이트로 돌아가기",
"Check your email": "이메일을 확인하십시오",
"A magic sign-in link has been sent to the email <em>{{ emailLinkSentTo }}</em>, no password needed.": "A magic sign-in link has been sent to the email <em>{{ emailLinkSentTo }}</em>, no password needed.",
"Back to login": "Back to login",
"Create an account": "Create an account",
"Back to login": "로그인으로 돌아가기",
"Create an account": "계정 생성",
"Get started by choosing a sign-in method for your new team below…": "Get started by choosing a sign-in method for your new team below…",
"Login to {{ authProviderName }}": "Login to {{ authProviderName }}",
"Login to {{ authProviderName }}": "{{ authProviderName }} 사용하여 계속하기",
"You signed in with {{ authProviderName }} last time.": "최근 {{ authProviderName }} 으로 로그인했습니다.",
"Already have an account? Go to <1>login</1>.": "Already have an account? Go to <1>login</1>.",
"Sign In": "Sign In",
"Continue with Email": "Continue with Email",
"Continue with {{ authProviderName }}": "Continue with {{ authProviderName }}",
"Already have an account? Go to <1>login</1>.": "이미 계정이 있으신가요? <1>로그인</1>.",
"Sign In": "로그인",
"Continue with Email": "이메일로 계속하기",
"Continue with {{ authProviderName }}": "{{ authProviderName }} 사용하여 계속하기",
"Any collection": "모든 컬렉션",
"Any time": "모든 시간",
"Past day": "어제",
@@ -511,17 +512,17 @@
"Not Found": "찾을 수 없습니다",
"We were unable to find the page youre looking for.": "페이지를 찾을 수 없습니다.",
"No documents found for your search filters.": "No documents found for your search filters.",
"Processing": "Processing",
"Expired": "Expired",
"Error": "Error",
"All collections": "All collections",
"Processing": "처리중",
"Expired": "만료",
"Error": "오류",
"All collections": "모든 컬렉션",
"{{userName}} requested": "{{userName}} 요청됨",
"Last active": "최근 활동",
"Suspended": "사용 중지됨",
"Shared": "Shared",
"by {{ name }}": "by {{ name }}",
"Shared": "공유됨",
"by {{ name }}": "{{ name }} 설정",
"Last accessed": "마지막으로 액세스",
"Add to Slack": "Add to Slack",
"Add to Slack": "Slack에 추가",
"Settings saved": "Settings saved",
"document published": "문서 게시됨",
"document updated": "문서 업데이트됨",
@@ -529,16 +530,16 @@
"These events should be posted to Slack": "These events should be posted to Slack",
"Document published": "문서 게시됨",
"Document updated": "문서 업데이트됨",
"Disconnect": "Disconnect",
"Disconnect": "연결 해제",
"Active": "활성",
"Everyone": "모두",
"Admins": "관리자",
"Unable to upload new logo": "Unable to upload new logo",
"These details affect the way that your Outline appears to everyone on the team.": "이러한 세부정보는 팀의 모든 사람에게 Outline이 표시되는 방식에 영향을 줍니다.",
"Logo": "로고",
"Crop logo": "Crop logo",
"Crop logo": "로고 자르기",
"Upload": "업로드",
"Subdomain": "Subdomain",
"Subdomain": "하위 도메인",
"Your knowledge base will be accessible at": "Your knowledge base will be accessible at",
"Manage optional and beta features. Changing these settings will affect the experience for all team members.": "선택적 기능 및 실험적 기능을 관리합니다. 이 설정을 변경하면 모든 팀 구성원에게 영향을 미칩니다.",
"Collaborative editing": "문서 공동 작업",
@@ -561,7 +562,7 @@
"Export Requested": "내보내기 요청됨",
"Requesting Export": "내보내기 요청",
"Export Data": "데이터 내보내기",
"Recent exports": "Recent exports",
"Recent exports": "최근 내보내기",
"Receive a notification whenever a new document is published": "새 문서가 게시될 때마다 알림을 받습니다",
"Receive a notification when a document you created is edited": "작성한 문서가 수정되면 알림을 받습니다",
"Collection created": "컬렉션 생성됨",
@@ -570,13 +571,13 @@
"Tips on getting started with Outline`s features and functionality": "Outline을 시작하기 위한 팁",
"New features": "새로운 기능",
"Receive an email when new features of note are added": "새로운 기능이 추가될 경우 이메일을 수신합니다",
"Notifications saved": "Notifications saved",
"Notifications saved": "알림이 저장되었습니다.",
"Unsubscription successful. Your notification settings were updated": "Unsubscription successful. Your notification settings were updated",
"Manage when and where you receive email notifications from Outline. Your email address can be updated in your SSO provider.": "Outline에서 이메일 알림을 받을 사항을 관리하세요. 이메일 주소는 SSO 공급자에서 업데이트할 수 있습니다.",
"Email address": "Email address",
"Email address": "이메일 주소",
"The email integration is currently disabled. Please set the associated environment variables and restart the server to enable notifications.": "The email integration is currently disabled. Please set the associated environment variables and restart the server to enable notifications.",
"Everyone that has signed into Outline appears here. Its possible that there are other users who have access through {team.signinMethods} but havent signed in yet.": "Outline에 로그인 한 모든 사람이 여기에 표시됩니다. {team.signinMethods} 을(를) 통해서도 접근할 수 있지만, 아직 로그인하지 않은 다른 사용자가 있을 수도 있습니다.",
"Filter": "Filter",
"Filter": "필터",
"Profile saved": "프로필이 저장되었습니다",
"Profile picture updated": "프로필 사진이 업데이트 됨",
"Unable to upload new profile picture": "새 프로필 사진을 업로드 할 수 없습니다",
@@ -587,7 +588,7 @@
"You may delete your account at any time, note that this is unrecoverable": "계정을 언제든지 삭제할 수 있지만 다시 복구할 수 없습니다",
"Delete account": "계정 삭제",
"New user accounts will be given member permissions by default": "새 사용자 계정에는 기본적으로 멤버 권한이 부여됩니다",
"New user accounts will be given viewer permissions by default": "New user accounts will be given viewer permissions by default",
"New user accounts will be given viewer permissions by default": "새 사용자 계정에는 기본으로 읽기 권한이 부여됩니다",
"Settings that impact the access, security, and content of your knowledge base.": "문서 액세스와 콘텐츠 보안에 영향을 주는 설정입니다.",
"Allow email authentication": "이메일 인증 허용",
"When enabled, users can sign-in using their email address": "활성화되면 사용자는 이메일 주소를 사용하여 로그인할 수 있습니다",
@@ -607,20 +608,20 @@
"Connect Outline collections to Slack channels and messages will be automatically posted to Slack when documents are published or updated.": "Connect Outline collections to Slack channels and messages will be automatically posted to Slack when documents are published or updated.",
"Connect": "Connect",
"The Slack integration is currently disabled. Please set the associated environment variables and restart the server to enable the integration.": "The Slack integration is currently disabled. Please set the associated environment variables and restart the server to enable the integration.",
"New token": "New token",
"New token": "새 토큰",
"You can create an unlimited amount of personal tokens to authenticate\n with the API. Tokens have the same permissions as your user account.\n For more details see the <em>developer documentation</em>.": "API 인증을 위해\n 개인 토큰을 무제한 생성할 수 있습니다. 토큰에는 사용자 계정과 동일한 권한이 있습니다.\n 자세한 내용은 <em>개발자 문서</em>를 참조하세요",
"Tokens": "Tokens",
"Create a token": "Create a token",
"Create a token": "토큰 생성하기",
"Zapier": "Zapier",
"Zapier is a platform that allows Outline to easily integrate with thousands of other business tools. Head over to Zapier to setup a \"Zap\" and start programmatically interacting with Outline.'": "Zapier is a platform that allows Outline to easily integrate with thousands of other business tools. Head over to Zapier to setup a \"Zap\" and start programmatically interacting with Outline.'",
"Open Zapier": "Open Zapier",
"There are no templates just yet.": "There are no templates just yet.",
"You can create templates to help your team create consistent and accurate documentation.": "You can create templates to help your team create consistent and accurate documentation.",
"There are no templates just yet.": "템플릿이 아직 없습니다.",
"You can create templates to help your team create consistent and accurate documentation.": "템플릿을 추가해서 팀이 일관성 있고 정확한 문서를 만들도록 도와줄 수 있습니다.",
"Trash is empty at the moment.": "현재 휴지통이 비어 있습니다.",
"Are you sure? Deleting your account will destroy identifying data associated with your user and cannot be undone. You will be immediately logged out of Outline and all your API tokens will be revoked.": "정말 계정을 삭제합니까? 계정을 삭제하면 사용자와 관련된 식별 데이터가 삭제되며 취소할 수 없습니다. Outline에서 즉시 로그아웃되고 모든 API 토큰이 취소됩니다",
"<em>Note:</em> Signing back in will cause a new account to be automatically reprovisioned.": "<em>Note:</em> Signing back in will cause a new account to be automatically reprovisioned.",
"Delete My Account": "내 계정 삭제",
"Profile picture": "Profile picture",
"Profile picture": "프로필 사진",
"You joined": "{0}에 참여하였습니다",
"Joined": "참여함",
"{{ time }} ago.": "{{ time }} 전.",
@@ -629,7 +630,7 @@
"Today": "오늘",
"Yesterday": "어제",
"Last week": "지난 주",
"This month": "This month",
"This month": "이번 달",
"Last month": "지난 달",
"This year": "This year"
"This year": "올해"
}

View File

@@ -6,19 +6,19 @@
"Delete IndexedDB cache": "Verwijder IndexedDB cache",
"IndexedDB cache deleted": "IndexedDB cache verwijderd",
"Development": "Ontwikkeling",
"Open document": "Document openen",
"Open document": "Open document",
"New document": "Nieuw document",
"Star": "Favoriet maken",
"Star": "Maak favoriet",
"Unstar": "Verwijder favoriet",
"Download": "Download",
"Download document": "Document downloaden",
"Download document": "Download document",
"Duplicate": "Dupliceer",
"Duplicate document": "Document dupliceren",
"Document duplicated": "Document gedupliceerd",
"Pin to collection": "Voeg toe aan collectie",
"Pinned to collection": "Pinned to collection",
"Pin to home": "Pin to home",
"Pinned to team home": "Pinned to team home",
"Pin to collection": "Maak vast aan collectie",
"Pinned to collection": "Vastgemaakt aan collectie",
"Pin to home": "Maak vast aan startscherm",
"Pinned to team home": "Vastgemaakt aan team startscherm",
"Print": "Print",
"Print document": "Document printen",
"Import document": "Importeer document",
@@ -40,6 +40,7 @@
"Dark": "Donker",
"Light": "Helder",
"System": "Systeem",
"Appearance": "Appearance",
"Change theme": "Thema wijzigen",
"Change theme to": "Thema wijzigen naar",
"Invite people": "Nodig uit",
@@ -328,22 +329,22 @@
"{{ userName }} was added to the collection": "{{ userName }} was added to the collection",
"Need to add someone whos not yet on the team yet?": "Need to add someone whos not yet on the team yet?",
"Invite people to {{ teamName }}": "Invite people to {{ teamName }}",
"Search by name": "Search by name",
"Search people": "Search people",
"No people matching your search": "No people matching your search",
"Search by name": "Zoek op naam",
"Search people": "Zoek personen",
"No people matching your search": "Geen personen gevonden op basis zoekopdracht",
"No people left to add": "Geen personen beschikbaar om toe te voegen",
"Active <1></1> ago": "Active <1></1> ago",
"Active <1></1> ago": "Actief <1></1> geleden",
"Never signed in": "Nog nooit ingelogd",
"Invited": "Uitgenodigd",
"{{ userName }} was removed from the collection": "{{ userName }} was removed from the collection",
"Could not remove user": "Could not remove user",
"{{ userName }} was removed from the collection": "{{ userName }} is verwijderd uit de collectie",
"Could not remove user": "Kon gebruiker niet verwijderen",
"{{ userName }} permissions were updated": "{{ userName }} permissions were updated",
"Could not update user": "Could not update user",
"Could not update user": "Kon gebruiker niet wijzigen",
"The {{ groupName }} group was removed from the collection": "The {{ groupName }} group was removed from the collection",
"Could not remove group": "Could not remove group",
"Could not remove group": "Kon groep niet verwijderen",
"{{ groupName }} permissions were updated": "{{ groupName }} permissions were updated",
"Default access permissions were updated": "Default access permissions were updated",
"Could not update permissions": "Could not update permissions",
"Could not update permissions": "Kon machtigingen niet verwijderen",
"Public document sharing permissions were updated": "Public document sharing permissions were updated",
"Could not update public document sharing": "Could not update public document sharing",
"The <em>{{ collectionName }}</em> collection is private. Team members have no access to it by default.": "The <em>{{ collectionName }}</em> collection is private. Team members have no access to it by default.",
@@ -386,7 +387,7 @@
"Share": "Deel",
"Share this document": "Deel dit document",
"This document is shared because the parent <em>{{ documentTitle }}</em> is publicly shared": "This document is shared because the parent <em>{{ documentTitle }}</em> is publicly shared",
"Publish to internet": "Publish to internet",
"Publish to internet": "Publiceer op internet",
"Anyone with the link can view this document": "Anyone with the link can view this document",
"Only team members with permission can view": "Only team members with permission can view",
"The shared link was last accessed {{ timeAgo }}.": "The shared link was last accessed {{ timeAgo }}.",
@@ -396,10 +397,10 @@
"Are you sure you want to delete the <em>{{ documentTitle }}</em> template?": "Are you sure you want to delete the <em>{{ documentTitle }}</em> template?",
"Are you sure about that? Deleting the <em>{{ documentTitle }}</em> document will delete all of its history and any nested documents.": "Are you sure about that? Deleting the <em>{{ documentTitle }}</em> document will delete all of its history and any nested documents.",
"If youd like the option of referencing or restoring the {{noun}} in the future, consider archiving it instead.": "If youd like the option of referencing or restoring the {{noun}} in the future, consider archiving it instead.",
"Archiving": "Archiving",
"Document moved": "Document moved",
"Current location": "Current location",
"Choose a new location": "Choose a new location",
"Archiving": "Achiveren",
"Document moved": "Document verplaatst",
"Current location": "Huidige locatie",
"Choose a new location": "Kies een nieuwe locatie",
"Search collections & documents": "Search collections & documents",
"Couldnt create the document, try again?": "Couldnt create the document, try again?",
"Document permanently deleted": "Document permanently deleted",
@@ -409,10 +410,10 @@
"no access": "no access",
"Heads up moving the document <em>{{ title }}</em> to the <em>{{ newCollectionName }}</em> collection will grant all team members <em>{{ newPermission }}</em>, they currently have {{ prevPermission }}.": "Heads up moving the document <em>{{ title }}</em> to the <em>{{ newCollectionName }}</em> collection will grant all team members <em>{{ newPermission }}</em>, they currently have {{ prevPermission }}.",
"Moving": "Moving",
"Cancel": "Cancel",
"Cancel": "Annuleer",
"Template created, go ahead and customize it": "Template created, go ahead and customize it",
"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.": "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.",
"Search documents": "Search documents",
"Search documents": "Zoek in documenten",
"No documents found for your filters.": "No documents found for your filters.",
"Youve not got any drafts at the moment.": "Youve not got any drafts at the moment.",
"Not found": "Niet gevonden",
@@ -436,7 +437,7 @@
"Continue": "Continue",
"Group members": "Group members",
"Recently viewed": "Recently viewed",
"Created by me": "Created by me",
"Created by me": "Door mij aangemaakt",
"Weird, this shouldnt ever be empty": "Weird, this shouldnt ever be empty",
"You havent created any documents yet": "You havent created any documents yet",
"Documents youve recently viewed will be here for easy access": "Documents youve recently viewed will be here for easy access",
@@ -448,15 +449,15 @@
"Want a link to share directly with your team?": "Want a link to share directly with your team?",
"Email": "E-mail",
"Full name": "Volledige naam",
"Remove invite": "Remove invite",
"Remove invite": "Verwijder uitnodiging",
"Add another": "Add another",
"Inviting": "Inviting",
"Send Invites": "Send Invites",
"Edit current document": "Edit current document",
"Move current document": "Move current document",
"Open document history": "Open document history",
"Jump to search": "Jump to search",
"Jump to home": "Jump to home",
"Jump to search": "Ga naar zoeken",
"Jump to home": "Ga naar startscherm",
"Toggle navigation": "Toggle navigation",
"Focus search input": "Focus search input",
"Open this guide": "Open this guide",
@@ -568,7 +569,7 @@
"Receive a notification whenever a new collection is created": "Receive a notification whenever a new collection is created",
"Getting started": "Getting started",
"Tips on getting started with Outline`s features and functionality": "Tips on getting started with Outline`s features and functionality",
"New features": "New features",
"New features": "Nieuwe features",
"Receive an email when new features of note are added": "Receive an email when new features of note are added",
"Notifications saved": "Notifications saved",
"Unsubscription successful. Your notification settings were updated": "Unsubscription successful. Your notification settings were updated",

View File

@@ -40,6 +40,7 @@
"Dark": "Ciemny",
"Light": "Jasny",
"System": "System",
"Appearance": "Appearance",
"Change theme": "Zmień motyw",
"Change theme to": "Zmień motyw na",
"Invite people": "Zaproś ludzi",

View File

@@ -40,6 +40,7 @@
"Dark": "Escuro",
"Light": "Claro",
"System": "Sistema",
"Appearance": "Appearance",
"Change theme": "Change theme",
"Change theme to": "Change theme to",
"Invite people": "Convidar pessoas",

View File

@@ -40,6 +40,7 @@
"Dark": "Escuro",
"Light": "Claro",
"System": "Sistema",
"Appearance": "Appearance",
"Change theme": "Change theme",
"Change theme to": "Change theme to",
"Invite people": "Convidar pessoas",

View File

@@ -40,6 +40,7 @@
"Dark": "Темная",
"Light": "Светлая",
"System": "Система",
"Appearance": "Appearance",
"Change theme": "Сменить тему",
"Change theme to": "Сменить тему на",
"Invite people": "Пригласить людей",

View File

@@ -40,6 +40,7 @@
"Dark": "Mörk",
"Light": "Ljus",
"System": "System",
"Appearance": "Appearance",
"Change theme": "Change theme",
"Change theme to": "Change theme to",
"Invite people": "Invite people",

View File

@@ -40,6 +40,7 @@
"Dark": "มืด",
"Light": "สว่าง",
"System": "System",
"Appearance": "Appearance",
"Change theme": "Change theme",
"Change theme to": "Change theme to",
"Invite people": "เชิญผู้คน",

View File

@@ -40,6 +40,7 @@
"Dark": "Dark",
"Light": "Light",
"System": "Hệ thống",
"Appearance": "Appearance",
"Change theme": "Thay đổi chủ đề",
"Change theme to": "Đổi chủ đề thành",
"Invite people": "Mời mọi người",
@@ -73,7 +74,7 @@
"deleted": "đã xóa",
"archived": "đã lưu trữ",
"created": "đã tạo",
"published": ược phát hành",
"published": ã đăng tải",
"saved": "đã lưu",
"updated": "đã cập nhật",
"Never viewed": "Chưa bao giờ xem",
@@ -108,7 +109,7 @@
"{{userName}} restored": "{{userName}} khôi phục",
"{{userName}} deleted": "{{userName}} đã bị xóa",
"{{userName}} moved from trash": "{{userName}} chuyển từ thùng rác",
"{{userName}} published": "{{userName}} được xuất bản",
"{{userName}} published": "{{userName}} đã đăng tải",
"{{userName}} moved": "{{userName}} đã chuyển",
"Icon": "Icon",
"Show menu": "Hiện Menu",
@@ -239,7 +240,7 @@
"Document options": "Tùy chọn tài liệu",
"Restore": "Khôi phục",
"Choose a collection": "Chọn Bộ Sưu Tập",
"Unpublish": "Hủy xuất bản",
"Unpublish": "Bỏ đăng tải",
"Permanently delete": "Xoá vĩnh viễn",
"Move": "Di chuyển",
"Enable embeds": "Bật tính năng nhúng",
@@ -287,7 +288,7 @@
"This collection is only visible to those given access": "Bộ sưu tập này chỉ hiển thị với những người được cấp quyền truy cập",
"Private": "Riêng tư",
"Recently updated": "Được cập nhật gần đây",
"Recently published": "Phát hành gần đây",
"Recently published": "Đăng tải gần đây",
"Least recently updated": "Cập nhật ít nhất gần đây",
"AZ": "A Z",
"Search in collection": "Tìm kiếm trong bộ sưu tập",
@@ -461,7 +462,7 @@
"Focus search input": "Tập trung đầu vào tìm kiếm",
"Open this guide": "Mở hướng dẫn này",
"Save document and exit": "Lưu tài liệu và thoát",
"Publish document and exit": "ng khai tài liệu và thoát",
"Publish document and exit": "Đăng tải tài liệu và thoát",
"Save document": "Lưu tài liệu",
"Cancel editing": "Hủy chỉnh sửa",
"Formatting": "Định dạng",
@@ -523,7 +524,7 @@
"Last accessed": "Truy nhập lần cuối",
"Add to Slack": "Thêm vào Slack",
"Settings saved": "Đã lưu cài đặt",
"document published": "tài liệu được ng khai",
"document published": "tài liệu được đăng tải",
"document updated": "tài liệu được cập nhật",
"Posting to the <em>{{ channelName }}</em> channel on": "Đăng lên kênh <em>{{ channelName }}</em>",
"These events should be posted to Slack": "Những sự kiện này nên được đăng lên Slack",

View File

@@ -40,6 +40,7 @@
"Dark": "深色主题",
"Light": "浅色主题",
"System": "系统信息",
"Appearance": "Appearance",
"Change theme": "更改主题",
"Change theme to": "更改主题",
"Invite people": "邀请其他人",

View File

@@ -40,6 +40,7 @@
"Dark": "深色",
"Light": "淺色",
"System": "依照系統",
"Appearance": "Appearance",
"Change theme": "變更主題",
"Change theme to": "將主題變更為",
"Invite people": "邀請使用者",