forked from Archives/Athou_commafeed
add a setup landing page instead of creating a default admin account
This commit is contained in:
@@ -9,6 +9,7 @@ import { HashRouter, Navigate, Route, Routes, useNavigate } from "react-router-d
|
|||||||
import Tinycon from "tinycon"
|
import Tinycon from "tinycon"
|
||||||
import { Constants } from "@/app/constants"
|
import { Constants } from "@/app/constants"
|
||||||
import { redirectTo } from "@/app/redirect/slice"
|
import { redirectTo } from "@/app/redirect/slice"
|
||||||
|
import { redirectToInitialSetup } from "@/app/redirect/thunks"
|
||||||
import { reloadServerInfos } from "@/app/server/thunks"
|
import { reloadServerInfos } from "@/app/server/thunks"
|
||||||
import { useAppDispatch, useAppSelector } from "@/app/store"
|
import { useAppDispatch, useAppSelector } from "@/app/store"
|
||||||
import { categoryUnreadCount } from "@/app/utils"
|
import { categoryUnreadCount } from "@/app/utils"
|
||||||
@@ -30,6 +31,7 @@ import { FeedEntriesPage } from "@/pages/app/FeedEntriesPage"
|
|||||||
import Layout from "@/pages/app/Layout"
|
import Layout from "@/pages/app/Layout"
|
||||||
import { SettingsPage } from "@/pages/app/SettingsPage"
|
import { SettingsPage } from "@/pages/app/SettingsPage"
|
||||||
import { TagDetailsPage } from "@/pages/app/TagDetailsPage"
|
import { TagDetailsPage } from "@/pages/app/TagDetailsPage"
|
||||||
|
import { InitialSetupPage } from "@/pages/auth/InitialSetupPage"
|
||||||
import { LoginPage } from "@/pages/auth/LoginPage"
|
import { LoginPage } from "@/pages/auth/LoginPage"
|
||||||
import { PasswordRecoveryPage } from "@/pages/auth/PasswordRecoveryPage"
|
import { PasswordRecoveryPage } from "@/pages/auth/PasswordRecoveryPage"
|
||||||
import { RegistrationPage } from "@/pages/auth/RegistrationPage"
|
import { RegistrationPage } from "@/pages/auth/RegistrationPage"
|
||||||
@@ -82,6 +84,7 @@ function AppRoutes() {
|
|||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={<Navigate to={`/app/category/${Constants.categories.all.id}`} replace />} />
|
<Route path="/" element={<Navigate to={`/app/category/${Constants.categories.all.id}`} replace />} />
|
||||||
<Route path="welcome" element={<WelcomePage />} />
|
<Route path="welcome" element={<WelcomePage />} />
|
||||||
|
<Route path="setup" element={<InitialSetupPage />} />
|
||||||
<Route path="login" element={<LoginPage />} />
|
<Route path="login" element={<LoginPage />} />
|
||||||
<Route path="register" element={<RegistrationPage />} />
|
<Route path="register" element={<RegistrationPage />} />
|
||||||
<Route path="passwordRecovery" element={<PasswordRecoveryPage />} />
|
<Route path="passwordRecovery" element={<PasswordRecoveryPage />} />
|
||||||
@@ -112,6 +115,18 @@ function AppRoutes() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function InitialSetupHandler() {
|
||||||
|
const serverInfos = useAppSelector(state => state.server.serverInfos)
|
||||||
|
const dispatch = useAppDispatch()
|
||||||
|
useEffect(() => {
|
||||||
|
if (serverInfos?.initialSetupRequired) {
|
||||||
|
dispatch(redirectToInitialSetup())
|
||||||
|
}
|
||||||
|
}, [serverInfos, dispatch])
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
function RedirectHandler() {
|
function RedirectHandler() {
|
||||||
const target = useAppSelector(state => state.redirect.to)
|
const target = useAppSelector(state => state.redirect.to)
|
||||||
const dispatch = useAppDispatch()
|
const dispatch = useAppDispatch()
|
||||||
@@ -216,6 +231,7 @@ export function App() {
|
|||||||
<DisablePullToRefresh enabled={disablePullToRefresh} />
|
<DisablePullToRefresh enabled={disablePullToRefresh} />
|
||||||
|
|
||||||
<HashRouter>
|
<HashRouter>
|
||||||
|
<InitialSetupHandler />
|
||||||
<RedirectHandler />
|
<RedirectHandler />
|
||||||
<AppRoutes />
|
<AppRoutes />
|
||||||
</HashRouter>
|
</HashRouter>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import type {
|
|||||||
FeedModificationRequest,
|
FeedModificationRequest,
|
||||||
GetEntriesPaginatedRequest,
|
GetEntriesPaginatedRequest,
|
||||||
IDRequest,
|
IDRequest,
|
||||||
|
InitialSetupRequest,
|
||||||
LoginRequest,
|
LoginRequest,
|
||||||
MarkRequest,
|
MarkRequest,
|
||||||
Metrics,
|
Metrics,
|
||||||
@@ -32,16 +33,17 @@ const axiosInstance = axios.create({ baseURL: "./rest", withCredentials: true })
|
|||||||
axiosInstance.interceptors.response.use(
|
axiosInstance.interceptors.response.use(
|
||||||
response => response,
|
response => response,
|
||||||
error => {
|
error => {
|
||||||
if (isAuthenticationError(error)) {
|
if (isAuthenticationError(error) && window.location.hash !== "#/login") {
|
||||||
const data = error.response?.data
|
const data = error.response?.data
|
||||||
window.location.hash = data?.allowRegistrations ? "/welcome" : "/login"
|
window.location.hash = data?.allowRegistrations ? "/welcome" : "/login"
|
||||||
|
window.location.reload()
|
||||||
}
|
}
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
function isAuthenticationError(error: unknown): error is AxiosError<AuthenticationError> {
|
function isAuthenticationError(error: unknown): error is AxiosError<AuthenticationError> {
|
||||||
return axios.isAxiosError(error) && !!error.response && [401, 403].includes(error.response.status)
|
return axios.isAxiosError(error) && error.response?.status === 401
|
||||||
}
|
}
|
||||||
|
|
||||||
export const client = {
|
export const client = {
|
||||||
@@ -93,6 +95,7 @@ export const client = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
register: async (req: RegistrationRequest) => await axiosInstance.post("user/register", req),
|
register: async (req: RegistrationRequest) => await axiosInstance.post("user/register", req),
|
||||||
|
initialSetup: async (req: InitialSetupRequest) => await axiosInstance.post("user/initialSetup", req),
|
||||||
passwordReset: async (req: PasswordResetRequest) => await axiosInstance.post("user/passwordReset", req),
|
passwordReset: async (req: PasswordResetRequest) => await axiosInstance.post("user/passwordReset", req),
|
||||||
getSettings: async () => await axiosInstance.get<Settings>("user/settings"),
|
getSettings: async () => await axiosInstance.get<Settings>("user/settings"),
|
||||||
saveSettings: async (settings: Settings) => await axiosInstance.post("user/settings", settings),
|
saveSettings: async (settings: Settings) => await axiosInstance.post("user/settings", settings),
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ export const redirectToLogin = createAppAsyncThunk("redirect/login", (_, thunkAp
|
|||||||
|
|
||||||
export const redirectToRegistration = createAppAsyncThunk("redirect/register", (_, thunkApi) => thunkApi.dispatch(redirectTo("/register")))
|
export const redirectToRegistration = createAppAsyncThunk("redirect/register", (_, thunkApi) => thunkApi.dispatch(redirectTo("/register")))
|
||||||
|
|
||||||
|
export const redirectToInitialSetup = createAppAsyncThunk("redirect/initialSetup", (_, thunkApi) => thunkApi.dispatch(redirectTo("/setup")))
|
||||||
|
|
||||||
export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", () => {
|
export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", () => {
|
||||||
window.location.href = "api-documentation/"
|
window.location.href = "api-documentation/"
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -209,6 +209,12 @@ export interface RegistrationRequest {
|
|||||||
email: string
|
email: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface InitialSetupRequest {
|
||||||
|
name: string
|
||||||
|
password: string
|
||||||
|
email?: string
|
||||||
|
}
|
||||||
|
|
||||||
export interface ServerInfo {
|
export interface ServerInfo {
|
||||||
announcement?: string
|
announcement?: string
|
||||||
version: string
|
version: string
|
||||||
@@ -220,6 +226,7 @@ export interface ServerInfo {
|
|||||||
websocketPingInterval: number
|
websocketPingInterval: number
|
||||||
treeReloadInterval: number
|
treeReloadInterval: number
|
||||||
forceRefreshCooldownDuration: number
|
forceRefreshCooldownDuration: number
|
||||||
|
initialSetupRequired: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SharingSettings {
|
export interface SharingSettings {
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "إضافة مستخدم"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "إداري"
|
msgstr "إداري"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "العودة لتسجيل الدخول"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "تأكيد كلمة المرور"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "دافئ"
|
msgstr "دافئ"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "السيطرة"
|
msgstr "السيطرة"
|
||||||
@@ -309,6 +318,8 @@ msgstr "اسحب الرابط إلى شريط الإشارات"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "في العرض الموسع ، التمرير عبر الإدخالات
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "الفئة الأصل"
|
msgstr "الفئة الأصل"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "إلغاء النجم"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "إلغاء الاشتراك"
|
msgstr "إلغاء الاشتراك"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "اسم المستخدم"
|
msgstr "اسم المستخدم"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "تحذير"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "موقع الكتروني"
|
msgstr "موقع الكتروني"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Afegeix usuari"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Administrador"
|
msgstr "Administrador"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Torna a iniciar sessió"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr "Blau"
|
msgstr "Blau"
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Extensió del navegador necessària per a Chrome"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Extensió del navegador"
|
msgstr "Extensió del navegador"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Extensió del navegador necessària per a Chrome"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "Pestanya del navegador"
|
msgstr "Pestanya del navegador"
|
||||||
@@ -225,6 +230,10 @@ msgstr "Confirmeu la contrasenya"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Acollidor"
|
msgstr "Acollidor"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -285,7 +294,7 @@ msgstr "Detallat"
|
|||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Disable \"Pull to refresh\" browser behavior"
|
msgid "Disable \"Pull to refresh\" browser behavior"
|
||||||
msgstr "Desactiva el comportament \"Arrossega per actualitzar"\ del navegador"
|
msgstr "Desactiva el comportament \"Arrossega per actualitzar\"\\ del navegador"
|
||||||
|
|
||||||
#: src/components/header/ProfileMenu.tsx
|
#: src/components/header/ProfileMenu.tsx
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
@@ -309,6 +318,8 @@ msgstr "Arrossegueu l'enllaç a la barra d'adreces d'interès"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "En la vista ampliada, en desplaçar-se per les entrades, es marquen com
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr "Indi"
|
msgstr "Indi"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Categoria pare"
|
msgstr "Categoria pare"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Desestrellar"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Donar-se de baixa"
|
msgstr "Donar-se de baixa"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nom d'usuari"
|
msgstr "Nom d'usuari"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Avís"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Lloc web"
|
msgstr "Lloc web"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr "Groc"
|
msgstr "Groc"
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Přidat uživatele"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Správce"
|
msgstr "Správce"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Zpět k přihlášení"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Potvrďte heslo"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Útulný"
|
msgstr "Útulný"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Přetáhněte odkaz na lištu záložek"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "V rozšířeném zobrazení je procházením označíte jako přečtené
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Rodičovská kategorie"
|
msgstr "Rodičovská kategorie"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Odstranit hvězdu"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Odhlásit odběr"
|
msgstr "Odhlásit odběr"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Uživatelské jméno"
|
msgstr "Uživatelské jméno"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Varování"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Webové stránky"
|
msgstr "Webové stránky"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Ychwanegu defnyddiwr"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Gweinyddol"
|
msgstr "Gweinyddol"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Yn ôl i fewngofnodi"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Cadarnhau'r cyfrinair"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "clyd"
|
msgstr "clyd"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Llusgwch y ddolen i'r bar nod tudalen"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Mewn gwedd estynedig, mae sgrolio trwy gofnodion yn nodi eu bod wedi'u d
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Categori Rhiant"
|
msgstr "Categori Rhiant"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "dad-seren"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Dad-danysgrifio"
|
msgstr "Dad-danysgrifio"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Enw defnyddiwr"
|
msgstr "Enw defnyddiwr"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Rhybudd"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Gwefan"
|
msgstr "Gwefan"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Tilføj bruger"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Tilbage for at logge ind"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Bekræft adgangskode"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Hyggeligt"
|
msgstr "Hyggeligt"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Træk linket til bogmærkelinjen"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "I udvidet visning markerer du dem som læst, når du ruller gennem poste
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Forældrekategori"
|
msgstr "Forældrekategori"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr ""
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Afmeld"
|
msgstr "Afmeld"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Brugernavn"
|
msgstr "Brugernavn"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Advarsel"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Hjemmeside"
|
msgstr "Hjemmeside"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Benutzer hinzufügen"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Verwaltung"
|
msgstr "Verwaltung"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Zurück zum Login"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Browser-Erweiterung für Chrome benötigt"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Browser-Erweiterung"
|
msgstr "Browser-Erweiterung"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Browser-Erweiterung für Chrome benötigt"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Passwort bestätigen"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Gemütlich"
|
msgstr "Gemütlich"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Strg"
|
msgstr "Strg"
|
||||||
@@ -309,6 +318,8 @@ msgstr "Link in Lesezeichenleiste ziehen"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "In der erweiterten Ansicht werden Einträge beim Scrollen als gelesen ma
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Übergeordnete Kategorie"
|
msgstr "Übergeordnete Kategorie"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Stern entfernen"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Abbestellen"
|
msgstr "Abbestellen"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Benutzername"
|
msgstr "Benutzername"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Warnung"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Webseite"
|
msgstr "Webseite"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Add user"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr "Admin user name"
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Back to log in"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr "Blue"
|
msgstr "Blue"
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Browser extension required for Chrome"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Browser extension"
|
msgstr "Browser extension"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Browser extension required for Chrome"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "Browser tab"
|
msgstr "Browser tab"
|
||||||
@@ -225,6 +230,10 @@ msgstr "Confirm password"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Cozy"
|
msgstr "Cozy"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr "Create Admin Account"
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "Drag link to bookmark bar"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "In expanded view, scrolling through entries mark them as read"
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr "Indigo"
|
msgstr "Indigo"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr "Initial Setup"
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Parent Category"
|
msgstr "Parent Category"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Unstar"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Unsubscribe"
|
msgstr "Unsubscribe"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr "User created."
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "User name"
|
msgstr "User name"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Warning"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Website"
|
msgstr "Website"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr "Yellow"
|
msgstr "Yellow"
|
||||||
|
|||||||
@@ -61,6 +61,11 @@ msgstr "Añadir usuario"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Administrador"
|
msgstr "Administrador"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -138,14 +143,14 @@ msgstr "Volver a iniciar sesión"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Se requiere extensión de navegador para Chrome"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Extensión del navegador"
|
msgstr "Extensión del navegador"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Se requiere extensión de navegador para Chrome"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "Pestaña del navegador"
|
msgstr "Pestaña del navegador"
|
||||||
@@ -226,6 +231,10 @@ msgstr "Confirmar contraseña"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Acogedor"
|
msgstr "Acogedor"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -310,6 +319,8 @@ msgstr "Arrastra el enlace a la barra de marcadores"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -477,6 +488,10 @@ msgstr "En la vista ampliada, al desplazarse por las entradas marcarlas como le
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -748,6 +763,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Categoría principal"
|
msgstr "Categoría principal"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1040,6 +1057,10 @@ msgstr "Desmarcar"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Cancelar suscripción"
|
msgstr "Cancelar suscripción"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nombre de usuario"
|
msgstr "Nombre de usuario"
|
||||||
@@ -1061,6 +1082,10 @@ msgstr "Advertencia"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Sitio web"
|
msgstr "Sitio web"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "افزودن کاربر"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "مدیر"
|
msgstr "مدیر"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "بازگشت برای ورود به سیستم"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "رمز عبور را تأیید کنید"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "دنج"
|
msgstr "دنج"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "پیوند را به نوار نشانک بکشید"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "در نمای بازشده، پیمایش در ورودیها، آن
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "دسته والد"
|
msgstr "دسته والد"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr ""
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "لغو اشتراک"
|
msgstr "لغو اشتراک"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "نام کاربری"
|
msgstr "نام کاربری"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "هشدار"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "وب سایت"
|
msgstr "وب سایت"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Lisää käyttäjä"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Järjestelmänvalvoja"
|
msgstr "Järjestelmänvalvoja"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Takaisin sisäänkirjautumiseen"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Vahvista salasana"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Viihtyisä"
|
msgstr "Viihtyisä"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Vedä linkki kirjanmerkkipalkkiin"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Merkitse ne luetuiksi laajennetussa näkymässä vierittämällä merkin
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Pääluokka"
|
msgstr "Pääluokka"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Poista tähti"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Peruuta tilaus"
|
msgstr "Peruuta tilaus"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Käyttäjänimi"
|
msgstr "Käyttäjänimi"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Varoitus"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Verkkosivusto"
|
msgstr "Verkkosivusto"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Ajouter un utilisateur"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Administrateur"
|
msgstr "Administrateur"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Retour à la connexion"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr "Bleu"
|
msgstr "Bleu"
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "L'extension navigateur est nécessaire sur Chrome"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Extension navigateur"
|
msgstr "Extension navigateur"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "L'extension navigateur est nécessaire sur Chrome"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "Onglet navigateur"
|
msgstr "Onglet navigateur"
|
||||||
@@ -225,6 +230,10 @@ msgstr "Confirmer le mot de passe"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Cozy"
|
msgstr "Cozy"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "Déplacez le lien vers la barre de favoris"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "En mode de lecture étendu, marquer les éléments comme lus lorsque la
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr "Indigo"
|
msgstr "Indigo"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Catégorie parente"
|
msgstr "Catégorie parente"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Retirer des favoris"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Se désabonner"
|
msgstr "Se désabonner"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nom"
|
msgstr "Nom"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Attention"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Site web"
|
msgstr "Site web"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr "Jaune"
|
msgstr "Jaune"
|
||||||
|
|||||||
@@ -61,6 +61,11 @@ msgstr "Engadir persoa usuaria"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Administración"
|
msgstr "Administración"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -138,14 +143,14 @@ msgstr "Volver para iniciar sesión"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr "Azul"
|
msgstr "Azul"
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Complemento para o navegador requerido para Chrome"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Complemento do navegador"
|
msgstr "Complemento do navegador"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Complemento para o navegador requerido para Chrome"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "Pestana do navegador"
|
msgstr "Pestana do navegador"
|
||||||
@@ -226,6 +231,10 @@ msgstr "Confirmar contrasinal"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Acolledor"
|
msgstr "Acolledor"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -310,6 +319,8 @@ msgstr "Arrastra a ligazón á barra de marcadores"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -477,6 +488,10 @@ msgstr "Na vista ampliada, ao desprazarse polas entradas márcaas como lidas"
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr "Índigo"
|
msgstr "Índigo"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -748,6 +763,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Categoría superior"
|
msgstr "Categoría superior"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1040,6 +1057,10 @@ msgstr "Retirar estrela"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Cancelar a subscrición"
|
msgstr "Cancelar a subscrición"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Identificador"
|
msgstr "Identificador"
|
||||||
@@ -1061,6 +1082,10 @@ msgstr "Aviso"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Páxina web"
|
msgstr "Páxina web"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr "Amarelo"
|
msgstr "Amarelo"
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Felhasználó hozzáadása"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Vissza a bejelentkezéshez"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Erősítse meg a jelszót"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Hangulatos"
|
msgstr "Hangulatos"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Húzza a hivatkozást a könyvjelzősávra"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Kibontott nézetben a bejegyzések görgetése olvasottként jelöli meg
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Szülő kategória"
|
msgstr "Szülő kategória"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr ""
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Leiratkozás"
|
msgstr "Leiratkozás"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Felhasználónév"
|
msgstr "Felhasználónév"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Figyelem"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Webhely"
|
msgstr "Webhely"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Tambahkan pengguna"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Kembali untuk masuk"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Konfirmasi kata sandi"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Nyaman"
|
msgstr "Nyaman"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Seret tautan ke bilah bookmark"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Dalam tampilan yang diperluas, menggulir entri menandainya sebagai telah
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Kategori Induk"
|
msgstr "Kategori Induk"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Hapus bintang"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Berhenti berlangganan"
|
msgstr "Berhenti berlangganan"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nama pengguna"
|
msgstr "Nama pengguna"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Peringatan"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Situs Web"
|
msgstr "Situs Web"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Aggiungi utente"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Ammin"
|
msgstr "Ammin"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Torna per accedere"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Conferma password"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Accogliente"
|
msgstr "Accogliente"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "ctrl"
|
msgstr "ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "Trascina il collegamento sulla barra dei preferiti"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Nella vista espansa, scorrendo le voci contrassegnale come lette"
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Categoria padre"
|
msgstr "Categoria padre"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Elimina le stelle"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Annulla iscrizione"
|
msgstr "Annulla iscrizione"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nome utente"
|
msgstr "Nome utente"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Avviso"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Sito web"
|
msgstr "Sito web"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "ユーザー追加"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "管理者"
|
msgstr "管理者"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "ログインに戻る"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Chromeのブラウザー拡張が必要です"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "ブラウザー拡張"
|
msgstr "ブラウザー拡張"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Chromeのブラウザー拡張が必要です"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "ブラウザータブ"
|
msgstr "ブラウザータブ"
|
||||||
@@ -225,6 +230,10 @@ msgstr "パスワード確認"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Cozy"
|
msgstr "Cozy"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "リンクをブックマークバーにドラッグ"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "展開ビューでエントリーをスクロールすると、それら
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "親カテゴリ"
|
msgstr "親カテゴリ"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "スターを外す"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "退会"
|
msgstr "退会"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "ユーザー名"
|
msgstr "ユーザー名"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "警告"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "ウェブサイト"
|
msgstr "ウェブサイト"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "사용자 추가"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "관리자"
|
msgstr "관리자"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "로그인으로 돌아가기"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "비밀번호 확인"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "코지"
|
msgstr "코지"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "컨트롤"
|
msgstr "컨트롤"
|
||||||
@@ -309,6 +318,8 @@ msgstr "링크를 북마크바로 드래그"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "확장 보기에서 항목을 스크롤하면 읽은 것으로 표시됩
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "부모 카테고리"
|
msgstr "부모 카테고리"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "별표 제거"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "구독 취소"
|
msgstr "구독 취소"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "사용자 이름"
|
msgstr "사용자 이름"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "경고"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "웹사이트"
|
msgstr "웹사이트"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Tambah pengguna"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Pentadbir"
|
msgstr "Pentadbir"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Kembali untuk log masuk"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Sahkan kata laluan"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Nyaman"
|
msgstr "Nyaman"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Seret pautan ke bar penanda halaman"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Dalam paparan yang diperluas, menatal melalui entri menandakannya sebaga
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Kategori Induk"
|
msgstr "Kategori Induk"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Nyahbintang"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Nyahlanggan"
|
msgstr "Nyahlanggan"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nama pengguna"
|
msgstr "Nama pengguna"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Amaran"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Laman web"
|
msgstr "Laman web"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Legg til bruker"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Tilbake for å logge inn"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Bekreft passord"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Koselig"
|
msgstr "Koselig"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Dra lenken til bokmerkelinjen"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføring
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Overordnet kategori"
|
msgstr "Overordnet kategori"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Fjern stjerne"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Avslutt abonnementet"
|
msgstr "Avslutt abonnementet"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Brukernavn"
|
msgstr "Brukernavn"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Advarsel"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Nettsted"
|
msgstr "Nettsted"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Gebruiker toevoegen"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Beheerder"
|
msgstr "Beheerder"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Terug naar inloggen"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Bevestig wachtwoord"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Gezellig"
|
msgstr "Gezellig"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Link naar bladwijzerbalk slepen"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "In de uitgevouwen weergave markeert het scrollen door items ze als gelez
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Oudercategorie"
|
msgstr "Oudercategorie"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Sterren uit"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Afmelden"
|
msgstr "Afmelden"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Gebruikersnaam"
|
msgstr "Gebruikersnaam"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Waarschuwing"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Legg til bruker"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Tilbake for å logge inn"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Bekreft passord"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Koselig"
|
msgstr "Koselig"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Dra lenken til bokmerkelinjen"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføring
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Overordnet kategori"
|
msgstr "Overordnet kategori"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Fjern stjerne"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Avslutt abonnementet"
|
msgstr "Avslutt abonnementet"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Brukernavn"
|
msgstr "Brukernavn"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Advarsel"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Nettsted"
|
msgstr "Nettsted"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Dodaj użytkownika"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Administracja"
|
msgstr "Administracja"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Powrót do logowania"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Potwierdź hasło"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Przytulny"
|
msgstr "Przytulny"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Przeciągnij link do paska zakładek"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "W widoku rozszerzonym przewijanie wpisów oznacza je jako przeczytane"
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Kategoria nadrzędna"
|
msgstr "Kategoria nadrzędna"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr ""
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Anuluj subskrypcję"
|
msgstr "Anuluj subskrypcję"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nazwa użytkownika"
|
msgstr "Nazwa użytkownika"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Ostrzeżenie"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Strona internetowa"
|
msgstr "Strona internetowa"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Adicionar usuário"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Administrador"
|
msgstr "Administrador"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Voltar para logar"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr "Azul"
|
msgstr "Azul"
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Extensão para o Chrome necessária"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Extensão do navegador"
|
msgstr "Extensão do navegador"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Extensão para o Chrome necessária"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "Aba do navegador"
|
msgstr "Aba do navegador"
|
||||||
@@ -225,6 +230,10 @@ msgstr "Confirmar senha"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Aconchegante"
|
msgstr "Aconchegante"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "Arraste o link para a barra de favoritos"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Na visualização expandida, rolar pelas entradas marca-as como lidas"
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr "Índigo"
|
msgstr "Índigo"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Categoria Pai"
|
msgstr "Categoria Pai"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Desestrelar"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Cancelar inscrição"
|
msgstr "Cancelar inscrição"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Nome de usuário"
|
msgstr "Nome de usuário"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Aviso"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Site"
|
msgstr "Site"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr "Amarelo"
|
msgstr "Amarelo"
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Добавить пользователя"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Админ"
|
msgstr "Админ"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Вернуться к входу"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "Для браузера Chrome требуется расширение"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Расширение для браузера"
|
msgstr "Расширение для браузера"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "Для браузера Chrome требуется расширение"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Подтвердить пароль"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Уютно"
|
msgstr "Уютно"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "Перетащите ссылку на панель закладок"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "В развернутом виде прокрутка записей п
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Родительская категория"
|
msgstr "Родительская категория"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Удалить из избранного"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Отписаться"
|
msgstr "Отписаться"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Имя пользователя"
|
msgstr "Имя пользователя"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Предупреждение"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Веб-сайт"
|
msgstr "Веб-сайт"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Pridať užívateľa"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Správca"
|
msgstr "Správca"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Späť na prihlásenie"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Potvrďte heslo"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Útulný"
|
msgstr "Útulný"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Presuňte odkaz na lištu so záložkami"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "V rozšírenom zobrazení ich rolovanie cez položky označí ako preč
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Rodičovská kategória"
|
msgstr "Rodičovská kategória"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Odobrať hviezdičku"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Zrušte odber"
|
msgstr "Zrušte odber"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Meno používateľa"
|
msgstr "Meno používateľa"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Varovanie"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Webová stránka"
|
msgstr "Webová stránka"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Lägg till användare"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Tillbaka för att logga in"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Bekräfta lösenord"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Mysigt"
|
msgstr "Mysigt"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -309,6 +318,8 @@ msgstr "Dra länken till bokmärkesfältet"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "I utökad vy, rullning genom poster markerar dem som lästa"
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Föräldrakategori"
|
msgstr "Föräldrakategori"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr ""
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Avregistrera"
|
msgstr "Avregistrera"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Användarnamn"
|
msgstr "Användarnamn"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Varning"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Webbplats"
|
msgstr "Webbplats"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "Kullanıcı ekle"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Yönetici"
|
msgstr "Yönetici"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "Giriş yapmak için geri dön"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "Tarayıcı eklentisi"
|
msgstr "Tarayıcı eklentisi"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -225,6 +230,10 @@ msgstr "Şifreyi onayla"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "Rahat"
|
msgstr "Rahat"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "Bağlantıyı yer işareti çubuğuna sürükleyin"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "Genişletilmiş görünümde, girişler arasında gezinmek onları okund
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "Üst Kategori"
|
msgstr "Üst Kategori"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "Yıldızı kaldır"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Aboneliği iptal et"
|
msgstr "Aboneliği iptal et"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "Kullanıcı adı"
|
msgstr "Kullanıcı adı"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "Uyarı"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Web sitesi"
|
msgstr "Web sitesi"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ msgstr "添加用户"
|
|||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "管理员"
|
msgstr "管理员"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Admin user name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/add/CategorySelect.tsx
|
#: src/components/content/add/CategorySelect.tsx
|
||||||
#: src/components/header/Header.tsx
|
#: src/components/header/Header.tsx
|
||||||
#: src/components/sidebar/Tree.tsx
|
#: src/components/sidebar/Tree.tsx
|
||||||
@@ -137,14 +142,14 @@ msgstr "返回登录"
|
|||||||
msgid "Blue"
|
msgid "Blue"
|
||||||
msgstr "蓝"
|
msgstr "蓝"
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
|
||||||
msgid "Browser extension required for Chrome"
|
|
||||||
msgstr "浏览器扩展"
|
|
||||||
|
|
||||||
#: src/pages/app/AboutPage.tsx
|
#: src/pages/app/AboutPage.tsx
|
||||||
msgid "Browser extension"
|
msgid "Browser extension"
|
||||||
msgstr "浏览器扩展"
|
msgstr "浏览器扩展"
|
||||||
|
|
||||||
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
|
msgid "Browser extension required for Chrome"
|
||||||
|
msgstr "浏览器扩展"
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Browser tab"
|
msgid "Browser tab"
|
||||||
msgstr "浏览器标签页"
|
msgstr "浏览器标签页"
|
||||||
@@ -225,6 +230,10 @@ msgstr "确认密码"
|
|||||||
msgid "Cozy"
|
msgid "Cozy"
|
||||||
msgstr "宽松"
|
msgstr "宽松"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Create Admin Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/KeyboardShortcutsHelp.tsx
|
#: src/components/KeyboardShortcutsHelp.tsx
|
||||||
msgid "Ctrl"
|
msgid "Ctrl"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
@@ -309,6 +318,8 @@ msgstr "拖动链接到书签栏"
|
|||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
#: src/pages/admin/AdminUsersPage.tsx
|
#: src/pages/admin/AdminUsersPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
@@ -476,6 +487,10 @@ msgstr "在展开视图中,滚动条目将它们标记为已读"
|
|||||||
msgid "Indigo"
|
msgid "Indigo"
|
||||||
msgstr "靛蓝"
|
msgstr "靛蓝"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Initial Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/content/FeedEntryContextMenu.tsx
|
#: src/components/content/FeedEntryContextMenu.tsx
|
||||||
#: src/components/content/FeedEntryFooter.tsx
|
#: src/components/content/FeedEntryFooter.tsx
|
||||||
msgid "Keep unread"
|
msgid "Keep unread"
|
||||||
@@ -747,6 +762,8 @@ msgid "Parent Category"
|
|||||||
msgstr "父类别"
|
msgstr "父类别"
|
||||||
|
|
||||||
#: src/components/admin/UserEdit.tsx
|
#: src/components/admin/UserEdit.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/LoginPage.tsx
|
#: src/pages/auth/LoginPage.tsx
|
||||||
#: src/pages/auth/RegistrationPage.tsx
|
#: src/pages/auth/RegistrationPage.tsx
|
||||||
@@ -1039,6 +1056,10 @@ msgstr "取消星标"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "取消订阅"
|
msgstr "取消订阅"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "User created."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/ProfileSettings.tsx
|
#: src/components/settings/ProfileSettings.tsx
|
||||||
msgid "User name"
|
msgid "User name"
|
||||||
msgstr "用户名"
|
msgstr "用户名"
|
||||||
@@ -1060,6 +1081,10 @@ msgstr "警告"
|
|||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "网站"
|
msgstr "网站"
|
||||||
|
|
||||||
|
#: src/pages/auth/InitialSetupPage.tsx
|
||||||
|
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/settings/DisplaySettings.tsx
|
#: src/components/settings/DisplaySettings.tsx
|
||||||
msgid "Yellow"
|
msgid "Yellow"
|
||||||
msgstr "黄"
|
msgstr "黄"
|
||||||
|
|||||||
89
commafeed-client/src/pages/auth/InitialSetupPage.tsx
Normal file
89
commafeed-client/src/pages/auth/InitialSetupPage.tsx
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
import { msg } from "@lingui/core/macro"
|
||||||
|
import { useLingui } from "@lingui/react"
|
||||||
|
import { Trans } from "@lingui/react/macro"
|
||||||
|
import { Box, Button, Container, Paper, PasswordInput, Stack, TextInput, Title } from "@mantine/core"
|
||||||
|
import { useForm } from "@mantine/form"
|
||||||
|
import { useAsyncCallback } from "react-async-hook"
|
||||||
|
import { client, errorToStrings } from "@/app/client"
|
||||||
|
import { redirectToRootCategory } from "@/app/redirect/thunks"
|
||||||
|
import { useAppDispatch } from "@/app/store"
|
||||||
|
import type { InitialSetupRequest } from "@/app/types"
|
||||||
|
import { Alert } from "@/components/Alert"
|
||||||
|
import { PageTitle } from "@/pages/PageTitle"
|
||||||
|
|
||||||
|
export function InitialSetupPage() {
|
||||||
|
const dispatch = useAppDispatch()
|
||||||
|
const { _ } = useLingui()
|
||||||
|
|
||||||
|
const form = useForm<InitialSetupRequest>({
|
||||||
|
initialValues: {
|
||||||
|
name: "",
|
||||||
|
password: "",
|
||||||
|
email: "",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const login = useAsyncCallback(client.user.login, {
|
||||||
|
onSuccess: () => {
|
||||||
|
dispatch(redirectToRootCategory())
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const setup = useAsyncCallback(client.user.initialSetup, {
|
||||||
|
onSuccess: () => {
|
||||||
|
login.execute(form.values)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container size="xs">
|
||||||
|
<PageTitle />
|
||||||
|
<Paper>
|
||||||
|
<Title order={2} mb="md">
|
||||||
|
<Trans>Initial Setup</Trans>
|
||||||
|
</Title>
|
||||||
|
<Box mb="md">
|
||||||
|
<Trans>
|
||||||
|
Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get
|
||||||
|
started.
|
||||||
|
</Trans>
|
||||||
|
</Box>
|
||||||
|
{setup.error && (
|
||||||
|
<Box mb="md">
|
||||||
|
<Alert messages={errorToStrings(setup.error)} />
|
||||||
|
</Box>
|
||||||
|
)}
|
||||||
|
<form onSubmit={form.onSubmit(setup.execute)}>
|
||||||
|
<Stack>
|
||||||
|
<TextInput
|
||||||
|
label={<Trans>Admin user name</Trans>}
|
||||||
|
placeholder={_(msg`Admin user name`)}
|
||||||
|
{...form.getInputProps("name")}
|
||||||
|
size="md"
|
||||||
|
required
|
||||||
|
autoCapitalize="off"
|
||||||
|
/>
|
||||||
|
<PasswordInput
|
||||||
|
label={<Trans>Password</Trans>}
|
||||||
|
placeholder={_(msg`Password`)}
|
||||||
|
{...form.getInputProps("password")}
|
||||||
|
size="md"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
<TextInput
|
||||||
|
type="email"
|
||||||
|
label={<Trans>E-mail</Trans>}
|
||||||
|
placeholder={_(msg`E-mail`)}
|
||||||
|
{...form.getInputProps("email")}
|
||||||
|
size="md"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Button type="submit" loading={setup.loading}>
|
||||||
|
<Trans>Create Admin Account</Trans>
|
||||||
|
</Button>
|
||||||
|
</Stack>
|
||||||
|
</form>
|
||||||
|
</Paper>
|
||||||
|
</Container>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ Official docker images for https://github.com/Athou/commafeed/
|
|||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
|
|
||||||
Start CommaFeed with a H2 embedded database. Then login as `admin/admin` on http://localhost:8082/
|
Start CommaFeed with a H2 embedded database. The app will be accessible on http://localhost:8082/
|
||||||
|
|
||||||
### docker
|
### docker
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import jakarta.enterprise.event.Observes;
|
|||||||
import jakarta.inject.Singleton;
|
import jakarta.inject.Singleton;
|
||||||
|
|
||||||
import com.commafeed.backend.feed.FeedRefreshEngine;
|
import com.commafeed.backend.feed.FeedRefreshEngine;
|
||||||
import com.commafeed.backend.service.db.DatabaseStartupService;
|
|
||||||
import com.commafeed.backend.task.TaskScheduler;
|
import com.commafeed.backend.task.TaskScheduler;
|
||||||
import com.commafeed.security.password.PasswordConstraintValidator;
|
import com.commafeed.security.password.PasswordConstraintValidator;
|
||||||
|
|
||||||
@@ -16,7 +15,6 @@ import lombok.RequiredArgsConstructor;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class CommaFeedApplication {
|
public class CommaFeedApplication {
|
||||||
|
|
||||||
private final DatabaseStartupService databaseStartupService;
|
|
||||||
private final FeedRefreshEngine feedRefreshEngine;
|
private final FeedRefreshEngine feedRefreshEngine;
|
||||||
private final TaskScheduler taskScheduler;
|
private final TaskScheduler taskScheduler;
|
||||||
private final CommaFeedConfiguration config;
|
private final CommaFeedConfiguration config;
|
||||||
@@ -24,8 +22,6 @@ public class CommaFeedApplication {
|
|||||||
public void start(@Observes StartupEvent ev) {
|
public void start(@Observes StartupEvent ev) {
|
||||||
PasswordConstraintValidator.setStrict(config.users().strictPasswordPolicy());
|
PasswordConstraintValidator.setStrict(config.users().strictPasswordPolicy());
|
||||||
|
|
||||||
databaseStartupService.populateInitialData();
|
|
||||||
|
|
||||||
feedRefreshEngine.start();
|
feedRefreshEngine.start();
|
||||||
taskScheduler.start();
|
taskScheduler.start();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,5 @@ import lombok.experimental.UtilityClass;
|
|||||||
|
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
public class CommaFeedConstants {
|
public class CommaFeedConstants {
|
||||||
public static final String USERNAME_ADMIN = "admin";
|
|
||||||
public static final String USERNAME_DEMO = "demo";
|
public static final String USERNAME_DEMO = "demo";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,16 @@ package com.commafeed;
|
|||||||
|
|
||||||
import jakarta.annotation.Priority;
|
import jakarta.annotation.Priority;
|
||||||
import jakarta.validation.ValidationException;
|
import jakarta.validation.ValidationException;
|
||||||
|
import jakarta.ws.rs.core.NewCookie;
|
||||||
import jakarta.ws.rs.ext.Provider;
|
import jakarta.ws.rs.ext.Provider;
|
||||||
|
|
||||||
import org.jboss.resteasy.reactive.RestResponse;
|
import org.jboss.resteasy.reactive.RestResponse;
|
||||||
|
import org.jboss.resteasy.reactive.RestResponse.ResponseBuilder;
|
||||||
import org.jboss.resteasy.reactive.RestResponse.Status;
|
import org.jboss.resteasy.reactive.RestResponse.Status;
|
||||||
import org.jboss.resteasy.reactive.server.ServerExceptionMapper;
|
import org.jboss.resteasy.reactive.server.ServerExceptionMapper;
|
||||||
|
|
||||||
|
import com.commafeed.security.CookieService;
|
||||||
|
|
||||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||||
import io.quarkus.security.AuthenticationFailedException;
|
import io.quarkus.security.AuthenticationFailedException;
|
||||||
import io.quarkus.security.UnauthorizedException;
|
import io.quarkus.security.UnauthorizedException;
|
||||||
@@ -18,17 +22,18 @@ import lombok.RequiredArgsConstructor;
|
|||||||
@Priority(1)
|
@Priority(1)
|
||||||
public class ExceptionMappers {
|
public class ExceptionMappers {
|
||||||
|
|
||||||
|
private final CookieService cookieService;
|
||||||
private final CommaFeedConfiguration config;
|
private final CommaFeedConfiguration config;
|
||||||
|
|
||||||
@ServerExceptionMapper(UnauthorizedException.class)
|
@ServerExceptionMapper(UnauthorizedException.class)
|
||||||
public RestResponse<UnauthorizedResponse> unauthorized(UnauthorizedException e) {
|
public RestResponse<UnauthorizedResponse> unauthorized(UnauthorizedException e) {
|
||||||
return RestResponse.status(RestResponse.Status.UNAUTHORIZED,
|
return RestResponse.status(Status.UNAUTHORIZED, new UnauthorizedResponse(e.getMessage(), config.users().allowRegistrations()));
|
||||||
new UnauthorizedResponse(e.getMessage(), config.users().allowRegistrations()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ServerExceptionMapper(AuthenticationFailedException.class)
|
@ServerExceptionMapper(AuthenticationFailedException.class)
|
||||||
public RestResponse<AuthenticationFailed> authenticationFailed(AuthenticationFailedException e) {
|
public RestResponse<AuthenticationFailed> authenticationFailed(AuthenticationFailedException e) {
|
||||||
return RestResponse.status(RestResponse.Status.UNAUTHORIZED, new AuthenticationFailed(e.getMessage()));
|
NewCookie logoutCookie = cookieService.buildLogoutCookie();
|
||||||
|
return ResponseBuilder.create(Status.UNAUTHORIZED, new AuthenticationFailed(e.getMessage())).cookie(logoutCookie).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ServerExceptionMapper(ValidationException.class)
|
@ServerExceptionMapper(ValidationException.class)
|
||||||
|
|||||||
@@ -32,4 +32,8 @@ public class UserRoleDAO extends GenericDAO<UserRole> {
|
|||||||
public Set<Role> findRoles(User user) {
|
public Set<Role> findRoles(User user) {
|
||||||
return findAll(user).stream().map(UserRole::getRole).collect(Collectors.toSet());
|
return findAll(user).stream().map(UserRole::getRole).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long countAdmins() {
|
||||||
|
return query().select(ROLE.count()).from(ROLE).where(ROLE.role.eq(Role.ADMIN)).fetchOne();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.commafeed.backend.service;
|
package com.commafeed.backend.service;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -139,10 +138,6 @@ public class UserService {
|
|||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createAdminUser() {
|
|
||||||
register(CommaFeedConstants.USERNAME_ADMIN, "admin", "admin@commafeed.com", Arrays.asList(Role.ADMIN, Role.USER), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void createDemoUser() {
|
public void createDemoUser() {
|
||||||
register(CommaFeedConstants.USERNAME_DEMO, "demo", "demo@commafeed.com", Collections.singletonList(Role.USER), true);
|
register(CommaFeedConstants.USERNAME_DEMO, "demo", "demo@commafeed.com", Collections.singletonList(Role.USER), true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,23 +25,8 @@ public class DatabaseStartupService {
|
|||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
private final CommaFeedConfiguration config;
|
private final CommaFeedConfiguration config;
|
||||||
|
|
||||||
public void populateInitialData() {
|
public boolean isInitialSetupRequired() {
|
||||||
long count = unitOfWork.call(userDAO::count);
|
return unitOfWork.call(userDAO::count) == 0;
|
||||||
if (count == 0) {
|
|
||||||
unitOfWork.run(this::initialData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initialData() {
|
|
||||||
log.info("populating database with default values");
|
|
||||||
try {
|
|
||||||
userService.createAdminUser();
|
|
||||||
if (config.users().createDemoAccount()) {
|
|
||||||
userService.createDemoUser();
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -43,4 +43,7 @@ public class ServerInfo implements Serializable {
|
|||||||
@Schema(required = true)
|
@Schema(required = true)
|
||||||
private long forceRefreshCooldownDuration;
|
private long forceRefreshCooldownDuration;
|
||||||
|
|
||||||
|
@Schema(required = true)
|
||||||
|
private boolean initialSetupRequired;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.commafeed.frontend.model.request;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import org.eclipse.microprofile.openapi.annotations.media.Schema;
|
||||||
|
|
||||||
|
import com.commafeed.security.password.ValidPassword;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
@Schema(description = "Initial admin account setup request")
|
||||||
|
@Data
|
||||||
|
public class InitialSetupRequest implements Serializable {
|
||||||
|
|
||||||
|
@Schema(description = "admin username", required = true)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "admin password", required = true)
|
||||||
|
@ValidPassword
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Schema(description = "admin email")
|
||||||
|
private String email;
|
||||||
|
}
|
||||||
@@ -26,7 +26,6 @@ import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
|
|||||||
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
|
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
|
||||||
|
|
||||||
import com.codahale.metrics.MetricRegistry;
|
import com.codahale.metrics.MetricRegistry;
|
||||||
import com.commafeed.CommaFeedConstants;
|
|
||||||
import com.commafeed.backend.dao.UserDAO;
|
import com.commafeed.backend.dao.UserDAO;
|
||||||
import com.commafeed.backend.dao.UserRoleDAO;
|
import com.commafeed.backend.dao.UserRoleDAO;
|
||||||
import com.commafeed.backend.model.User;
|
import com.commafeed.backend.model.User;
|
||||||
@@ -101,8 +100,8 @@ public class AdminREST {
|
|||||||
if (req.isAdmin() && !roles.contains(Role.ADMIN)) {
|
if (req.isAdmin() && !roles.contains(Role.ADMIN)) {
|
||||||
userRoleDAO.persist(new UserRole(u, Role.ADMIN));
|
userRoleDAO.persist(new UserRole(u, Role.ADMIN));
|
||||||
} else if (!req.isAdmin() && roles.contains(Role.ADMIN)) {
|
} else if (!req.isAdmin() && roles.contains(Role.ADMIN)) {
|
||||||
if (CommaFeedConstants.USERNAME_ADMIN.equals(u.getName())) {
|
if (userRoleDAO.countAdmins() == 1) {
|
||||||
return Response.status(Status.FORBIDDEN).entity("You cannot remove the admin role from the admin user.").build();
|
return Response.status(Status.FORBIDDEN).entity("You cannot remove the admin role from the last admin user.").build();
|
||||||
}
|
}
|
||||||
for (UserRole userRole : userRoleDAO.findAll(u)) {
|
for (UserRole userRole : userRoleDAO.findAll(u)) {
|
||||||
if (userRole.getRole() == Role.ADMIN) {
|
if (userRole.getRole() == Role.ADMIN) {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import com.commafeed.CommaFeedVersion;
|
|||||||
import com.commafeed.backend.HttpGetter;
|
import com.commafeed.backend.HttpGetter;
|
||||||
import com.commafeed.backend.HttpGetter.HttpResult;
|
import com.commafeed.backend.HttpGetter.HttpResult;
|
||||||
import com.commafeed.backend.feed.ImageProxyUrl;
|
import com.commafeed.backend.feed.ImageProxyUrl;
|
||||||
|
import com.commafeed.backend.service.db.DatabaseStartupService;
|
||||||
import com.commafeed.frontend.model.ServerInfo;
|
import com.commafeed.frontend.model.ServerInfo;
|
||||||
import com.commafeed.security.Roles;
|
import com.commafeed.security.Roles;
|
||||||
|
|
||||||
@@ -39,6 +40,7 @@ public class ServerREST {
|
|||||||
private final HttpGetter httpGetter;
|
private final HttpGetter httpGetter;
|
||||||
private final CommaFeedConfiguration config;
|
private final CommaFeedConfiguration config;
|
||||||
private final CommaFeedVersion version;
|
private final CommaFeedVersion version;
|
||||||
|
private final DatabaseStartupService databaseStartupService;
|
||||||
|
|
||||||
@Path("/get")
|
@Path("/get")
|
||||||
@GET
|
@GET
|
||||||
@@ -57,6 +59,7 @@ public class ServerREST {
|
|||||||
infos.setWebsocketPingInterval(config.websocket().pingInterval().toMillis());
|
infos.setWebsocketPingInterval(config.websocket().pingInterval().toMillis());
|
||||||
infos.setTreeReloadInterval(config.websocket().treeReloadInterval().toMillis());
|
infos.setTreeReloadInterval(config.websocket().treeReloadInterval().toMillis());
|
||||||
infos.setForceRefreshCooldownDuration(config.feedRefresh().forceRefreshCooldownDuration().toMillis());
|
infos.setForceRefreshCooldownDuration(config.feedRefresh().forceRefreshCooldownDuration().toMillis());
|
||||||
|
infos.setInitialSetupRequired(databaseStartupService.isInitialSetupRequired());
|
||||||
return infos;
|
return infos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ import java.net.URISyntaxException;
|
|||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import jakarta.annotation.security.PermitAll;
|
import jakarta.annotation.security.PermitAll;
|
||||||
@@ -36,6 +38,7 @@ import com.commafeed.CommaFeedConfiguration;
|
|||||||
import com.commafeed.CommaFeedConstants;
|
import com.commafeed.CommaFeedConstants;
|
||||||
import com.commafeed.backend.Digests;
|
import com.commafeed.backend.Digests;
|
||||||
import com.commafeed.backend.Urls;
|
import com.commafeed.backend.Urls;
|
||||||
|
import com.commafeed.backend.dao.UnitOfWork;
|
||||||
import com.commafeed.backend.dao.UserDAO;
|
import com.commafeed.backend.dao.UserDAO;
|
||||||
import com.commafeed.backend.dao.UserRoleDAO;
|
import com.commafeed.backend.dao.UserRoleDAO;
|
||||||
import com.commafeed.backend.dao.UserSettingsDAO;
|
import com.commafeed.backend.dao.UserSettingsDAO;
|
||||||
@@ -50,8 +53,10 @@ import com.commafeed.backend.model.UserSettings.ScrollMode;
|
|||||||
import com.commafeed.backend.service.MailService;
|
import com.commafeed.backend.service.MailService;
|
||||||
import com.commafeed.backend.service.PasswordEncryptionService;
|
import com.commafeed.backend.service.PasswordEncryptionService;
|
||||||
import com.commafeed.backend.service.UserService;
|
import com.commafeed.backend.service.UserService;
|
||||||
|
import com.commafeed.backend.service.db.DatabaseStartupService;
|
||||||
import com.commafeed.frontend.model.Settings;
|
import com.commafeed.frontend.model.Settings;
|
||||||
import com.commafeed.frontend.model.UserModel;
|
import com.commafeed.frontend.model.UserModel;
|
||||||
|
import com.commafeed.frontend.model.request.InitialSetupRequest;
|
||||||
import com.commafeed.frontend.model.request.PasswordResetRequest;
|
import com.commafeed.frontend.model.request.PasswordResetRequest;
|
||||||
import com.commafeed.frontend.model.request.ProfileModificationRequest;
|
import com.commafeed.frontend.model.request.ProfileModificationRequest;
|
||||||
import com.commafeed.frontend.model.request.RegistrationRequest;
|
import com.commafeed.frontend.model.request.RegistrationRequest;
|
||||||
@@ -78,9 +83,11 @@ public class UserREST {
|
|||||||
private final UserSettingsDAO userSettingsDAO;
|
private final UserSettingsDAO userSettingsDAO;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
private final PasswordEncryptionService encryptionService;
|
private final PasswordEncryptionService encryptionService;
|
||||||
|
private final DatabaseStartupService databaseStartupService;
|
||||||
private final MailService mailService;
|
private final MailService mailService;
|
||||||
private final CommaFeedConfiguration config;
|
private final CommaFeedConfiguration config;
|
||||||
private final UriInfo uri;
|
private final UriInfo uri;
|
||||||
|
private final UnitOfWork unitOfWork;
|
||||||
|
|
||||||
@Path("/settings")
|
@Path("/settings")
|
||||||
@GET
|
@GET
|
||||||
@@ -231,7 +238,7 @@ public class UserREST {
|
|||||||
public Response saveUserProfile(@Valid @Parameter(required = true) ProfileModificationRequest request) {
|
public Response saveUserProfile(@Valid @Parameter(required = true) ProfileModificationRequest request) {
|
||||||
User user = authenticationContext.getCurrentUser();
|
User user = authenticationContext.getCurrentUser();
|
||||||
if (CommaFeedConstants.USERNAME_DEMO.equals(user.getName())) {
|
if (CommaFeedConstants.USERNAME_DEMO.equals(user.getName())) {
|
||||||
return Response.status(Status.FORBIDDEN).build();
|
return Response.status(Status.FORBIDDEN).entity("the profile of the demo account cannot be modified").build();
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<User> login = userService.login(user.getName(), request.getCurrentPassword());
|
Optional<User> login = userService.login(user.getName(), request.getCurrentPassword());
|
||||||
@@ -276,6 +283,31 @@ public class UserREST {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Path("/initialSetup")
|
||||||
|
@PermitAll
|
||||||
|
@POST
|
||||||
|
@Transactional
|
||||||
|
@Operation(
|
||||||
|
summary = "Create the initial admin account",
|
||||||
|
description = "This endpoint is only available when no users exist in the database")
|
||||||
|
public Response initialSetup(@Valid @Parameter(required = true) InitialSetupRequest req) {
|
||||||
|
boolean initialSetupRequired = databaseStartupService.isInitialSetupRequired();
|
||||||
|
if (!initialSetupRequired) {
|
||||||
|
return Response.status(Status.BAD_REQUEST).entity("Initial setup has already been completed").build();
|
||||||
|
}
|
||||||
|
|
||||||
|
userService.register(req.getName(), req.getPassword(), req.getEmail(), List.of(Role.ADMIN, Role.USER), true);
|
||||||
|
|
||||||
|
if (config.users().createDemoAccount()) {
|
||||||
|
User demo = userDAO.findByName(CommaFeedConstants.USERNAME_DEMO);
|
||||||
|
if (demo == null) {
|
||||||
|
userService.createDemoUser();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response.ok().build();
|
||||||
|
}
|
||||||
|
|
||||||
@Path("/passwordReset")
|
@Path("/passwordReset")
|
||||||
@PermitAll
|
@PermitAll
|
||||||
@POST
|
@POST
|
||||||
@@ -361,9 +393,15 @@ public class UserREST {
|
|||||||
@Operation(summary = "Delete the user account")
|
@Operation(summary = "Delete the user account")
|
||||||
public Response deleteUser() {
|
public Response deleteUser() {
|
||||||
User user = authenticationContext.getCurrentUser();
|
User user = authenticationContext.getCurrentUser();
|
||||||
if (CommaFeedConstants.USERNAME_ADMIN.equals(user.getName()) || CommaFeedConstants.USERNAME_DEMO.equals(user.getName())) {
|
if (CommaFeedConstants.USERNAME_DEMO.equals(user.getName())) {
|
||||||
return Response.status(Status.FORBIDDEN).build();
|
return Response.status(Status.FORBIDDEN).entity("the demo account cannot be deleted").build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set<Role> roles = userRoleDAO.findRoles(user);
|
||||||
|
if (roles.contains(Role.ADMIN) && userRoleDAO.countAdmins() == 1) {
|
||||||
|
return Response.status(Status.FORBIDDEN).entity("The last admin account cannot be deleted").build();
|
||||||
|
}
|
||||||
|
|
||||||
userService.unregister(userDAO.findById(user.getId()));
|
userService.unregister(userDAO.findById(user.getId()));
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package com.commafeed.frontend.servlet;
|
package com.commafeed.frontend.servlet;
|
||||||
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import jakarta.annotation.security.PermitAll;
|
import jakarta.annotation.security.PermitAll;
|
||||||
import jakarta.inject.Singleton;
|
import jakarta.inject.Singleton;
|
||||||
import jakarta.ws.rs.GET;
|
import jakarta.ws.rs.GET;
|
||||||
@@ -11,26 +8,25 @@ import jakarta.ws.rs.core.NewCookie;
|
|||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
import jakarta.ws.rs.core.UriInfo;
|
import jakarta.ws.rs.core.UriInfo;
|
||||||
|
|
||||||
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
|
||||||
import org.eclipse.microprofile.openapi.annotations.Operation;
|
import org.eclipse.microprofile.openapi.annotations.Operation;
|
||||||
|
|
||||||
|
import com.commafeed.security.CookieService;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
@Path("/logout")
|
@Path("/logout")
|
||||||
@PermitAll
|
@PermitAll
|
||||||
@Singleton
|
@Singleton
|
||||||
public class LogoutServlet {
|
public class LogoutServlet {
|
||||||
|
|
||||||
private final UriInfo uri;
|
private final UriInfo uri;
|
||||||
private final String cookieName;
|
private final CookieService cookieService;
|
||||||
|
|
||||||
public LogoutServlet(UriInfo uri, @ConfigProperty(name = "quarkus.http.auth.form.cookie-name") String cookieName) {
|
|
||||||
this.uri = uri;
|
|
||||||
this.cookieName = cookieName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Operation(hidden = true)
|
@Operation(hidden = true)
|
||||||
public Response get() {
|
public Response get() {
|
||||||
NewCookie removeCookie = new NewCookie.Builder(cookieName).maxAge(0).expiry(Date.from(Instant.EPOCH)).path("/").build();
|
NewCookie removeCookie = cookieService.buildLogoutCookie();
|
||||||
return Response.temporaryRedirect(uri.getBaseUri()).cookie(removeCookie).build();
|
return Response.temporaryRedirect(uri.getBaseUri()).cookie(removeCookie).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.commafeed.security;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import jakarta.inject.Singleton;
|
||||||
|
import jakarta.ws.rs.core.NewCookie;
|
||||||
|
|
||||||
|
import io.quarkus.vertx.http.runtime.VertxHttpConfig;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class CookieService {
|
||||||
|
|
||||||
|
private final String cookieName;
|
||||||
|
|
||||||
|
public CookieService(VertxHttpConfig config) {
|
||||||
|
this.cookieName = config.auth().form().cookieName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public NewCookie buildLogoutCookie() {
|
||||||
|
return new NewCookie.Builder(cookieName).maxAge(0).expiry(Date.from(Instant.EPOCH)).path("/").build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,8 +6,6 @@ import jakarta.persistence.EntityManager;
|
|||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.kohsuke.MetaInfServices;
|
import org.kohsuke.MetaInfServices;
|
||||||
|
|
||||||
import com.commafeed.backend.service.db.DatabaseStartupService;
|
|
||||||
|
|
||||||
import io.quarkus.test.junit.callback.QuarkusTestBeforeEachCallback;
|
import io.quarkus.test.junit.callback.QuarkusTestBeforeEachCallback;
|
||||||
import io.quarkus.test.junit.callback.QuarkusTestMethodContext;
|
import io.quarkus.test.junit.callback.QuarkusTestMethodContext;
|
||||||
|
|
||||||
@@ -26,7 +24,5 @@ public class DatabaseReset implements QuarkusTestBeforeEachCallback {
|
|||||||
.getSessionFactory()
|
.getSessionFactory()
|
||||||
.getSchemaManager()
|
.getSchemaManager()
|
||||||
.truncateMappedObjects();
|
.truncateMappedObjects();
|
||||||
|
|
||||||
CDI.current().select(DatabaseStartupService.class).get().populateInitialData();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.commafeed;
|
||||||
|
|
||||||
|
public class TestConstants {
|
||||||
|
public static final String ADMIN_USERNAME = "admin";
|
||||||
|
public static final String ADMIN_PASSWORD = "!Admin1234";
|
||||||
|
}
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.commafeed.e2e;
|
package com.commafeed.e2e;
|
||||||
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.microsoft.playwright.BrowserContext;
|
import com.microsoft.playwright.BrowserContext;
|
||||||
import com.microsoft.playwright.Locator;
|
import com.microsoft.playwright.Locator;
|
||||||
import com.microsoft.playwright.Page;
|
import com.microsoft.playwright.Page;
|
||||||
@@ -20,6 +22,11 @@ class AuthentificationIT {
|
|||||||
@InjectPlaywright
|
@InjectPlaywright
|
||||||
private BrowserContext context;
|
private BrowserContext context;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setup() {
|
||||||
|
PlaywrightTestUtils.initialSetup();
|
||||||
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
void cleanup() {
|
void cleanup() {
|
||||||
context.clearCookies();
|
context.clearCookies();
|
||||||
@@ -29,7 +36,7 @@ class AuthentificationIT {
|
|||||||
void loginFail() {
|
void loginFail() {
|
||||||
Page page = context.newPage();
|
Page page = context.newPage();
|
||||||
page.navigate(getLoginPageUrl());
|
page.navigate(getLoginPageUrl());
|
||||||
PlaywrightTestUtils.login(page, "admin", "wrong_password");
|
PlaywrightTestUtils.login(page, TestConstants.ADMIN_USERNAME, "wrong_password");
|
||||||
PlaywrightAssertions.assertThat(page.getByRole(AriaRole.ALERT)).containsText("wrong username or password");
|
PlaywrightAssertions.assertThat(page.getByRole(AriaRole.ALERT)).containsText("wrong username or password");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.commafeed.e2e;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
|
import com.microsoft.playwright.BrowserContext;
|
||||||
|
import com.microsoft.playwright.Page;
|
||||||
|
import com.microsoft.playwright.assertions.PlaywrightAssertions;
|
||||||
|
import com.microsoft.playwright.options.AriaRole;
|
||||||
|
|
||||||
|
import io.quarkiverse.playwright.InjectPlaywright;
|
||||||
|
import io.quarkiverse.playwright.WithPlaywright;
|
||||||
|
import io.quarkus.test.junit.QuarkusTest;
|
||||||
|
|
||||||
|
@QuarkusTest
|
||||||
|
@WithPlaywright
|
||||||
|
class InitialSetupIT {
|
||||||
|
|
||||||
|
@InjectPlaywright
|
||||||
|
private BrowserContext context;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void createAdminAccount() {
|
||||||
|
Page page = context.newPage();
|
||||||
|
page.navigate("http://localhost:8085");
|
||||||
|
|
||||||
|
page.getByPlaceholder("Admin User Name").fill(TestConstants.ADMIN_USERNAME);
|
||||||
|
page.getByPlaceholder("Password").fill(TestConstants.ADMIN_PASSWORD);
|
||||||
|
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Create Admin Account")).click();
|
||||||
|
|
||||||
|
PlaywrightAssertions.assertThat(page).hasURL("http://localhost:8085/#/app/category/all");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,16 +1,28 @@
|
|||||||
package com.commafeed.e2e;
|
package com.commafeed.e2e;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
|
import com.commafeed.frontend.model.request.InitialSetupRequest;
|
||||||
import com.microsoft.playwright.Page;
|
import com.microsoft.playwright.Page;
|
||||||
import com.microsoft.playwright.Page.GetByRoleOptions;
|
import com.microsoft.playwright.Page.GetByRoleOptions;
|
||||||
import com.microsoft.playwright.options.AriaRole;
|
import com.microsoft.playwright.options.AriaRole;
|
||||||
|
|
||||||
|
import io.restassured.RestAssured;
|
||||||
|
import io.restassured.http.ContentType;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
public class PlaywrightTestUtils {
|
public class PlaywrightTestUtils {
|
||||||
|
|
||||||
|
public static void initialSetup() {
|
||||||
|
InitialSetupRequest req = new InitialSetupRequest();
|
||||||
|
req.setName(TestConstants.ADMIN_USERNAME);
|
||||||
|
req.setPassword(TestConstants.ADMIN_PASSWORD);
|
||||||
|
|
||||||
|
RestAssured.given().body(req).contentType(ContentType.JSON).post("rest/user/initialSetup").then().statusCode(200);
|
||||||
|
}
|
||||||
|
|
||||||
public static void login(Page page) {
|
public static void login(Page page) {
|
||||||
login(page, "admin", "admin");
|
login(page, TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void login(Page page, String username, String password) {
|
public static void login(Page page, String username, String password) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.mockserver.integration.ClientAndServer;
|
|||||||
import org.mockserver.model.HttpRequest;
|
import org.mockserver.model.HttpRequest;
|
||||||
import org.mockserver.model.HttpResponse;
|
import org.mockserver.model.HttpResponse;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.Entries;
|
import com.commafeed.frontend.model.Entries;
|
||||||
import com.microsoft.playwright.BrowserContext;
|
import com.microsoft.playwright.BrowserContext;
|
||||||
import com.microsoft.playwright.Locator;
|
import com.microsoft.playwright.Locator;
|
||||||
@@ -45,7 +46,8 @@ class ReadingIT {
|
|||||||
.withBody(IOUtils.toString(getClass().getResource("/feed/rss.xml"), StandardCharsets.UTF_8))
|
.withBody(IOUtils.toString(getClass().getResource("/feed/rss.xml"), StandardCharsets.UTF_8))
|
||||||
.withDelay(TimeUnit.MILLISECONDS, 100));
|
.withDelay(TimeUnit.MILLISECONDS, 100));
|
||||||
|
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
PlaywrightTestUtils.initialSetup();
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
|
|||||||
@@ -21,10 +21,12 @@ import org.mockserver.integration.ClientAndServer;
|
|||||||
import org.mockserver.model.HttpRequest;
|
import org.mockserver.model.HttpRequest;
|
||||||
import org.mockserver.model.HttpResponse;
|
import org.mockserver.model.HttpResponse;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.Category;
|
import com.commafeed.frontend.model.Category;
|
||||||
import com.commafeed.frontend.model.Entries;
|
import com.commafeed.frontend.model.Entries;
|
||||||
import com.commafeed.frontend.model.Subscription;
|
import com.commafeed.frontend.model.Subscription;
|
||||||
import com.commafeed.frontend.model.request.AddCategoryRequest;
|
import com.commafeed.frontend.model.request.AddCategoryRequest;
|
||||||
|
import com.commafeed.frontend.model.request.InitialSetupRequest;
|
||||||
import com.commafeed.frontend.model.request.SubscribeRequest;
|
import com.commafeed.frontend.model.request.SubscribeRequest;
|
||||||
|
|
||||||
import io.restassured.RestAssured;
|
import io.restassured.RestAssured;
|
||||||
@@ -76,11 +78,20 @@ public abstract class BaseIT {
|
|||||||
mockServerClient.when(FEED_REQUEST).respond(HttpResponse.response().withBody(IOUtils.toString(resource, StandardCharsets.UTF_8)));
|
mockServerClient.when(FEED_REQUEST).respond(HttpResponse.response().withBody(IOUtils.toString(resource, StandardCharsets.UTF_8)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void initialSetup(String userName, String password) {
|
||||||
|
InitialSetupRequest req = new InitialSetupRequest();
|
||||||
|
req.setName(userName);
|
||||||
|
req.setPassword(password);
|
||||||
|
req.setEmail(userName + "@commafeed.com");
|
||||||
|
|
||||||
|
RestAssured.given().body(req).contentType(ContentType.JSON).post("rest/user/initialSetup").then().statusCode(200);
|
||||||
|
}
|
||||||
|
|
||||||
protected List<HttpCookie> login() {
|
protected List<HttpCookie> login() {
|
||||||
List<Header> setCookieHeaders = RestAssured.given()
|
List<Header> setCookieHeaders = RestAssured.given()
|
||||||
.auth()
|
.auth()
|
||||||
.none()
|
.none()
|
||||||
.formParams("j_username", "admin", "j_password", "admin")
|
.formParams("j_username", TestConstants.ADMIN_USERNAME, "j_password", TestConstants.ADMIN_PASSWORD)
|
||||||
.post("j_security_check")
|
.post("j_security_check")
|
||||||
.then()
|
.then()
|
||||||
.statusCode(HttpStatus.SC_OK)
|
.statusCode(HttpStatus.SC_OK)
|
||||||
|
|||||||
@@ -8,9 +8,11 @@ import jakarta.ws.rs.core.HttpHeaders;
|
|||||||
|
|
||||||
import org.apache.hc.core5.http.HttpStatus;
|
import org.apache.hc.core5.http.HttpStatus;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import com.commafeed.ExceptionMappers.UnauthorizedResponse;
|
import com.commafeed.ExceptionMappers.UnauthorizedResponse;
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.Entries;
|
import com.commafeed.frontend.model.Entries;
|
||||||
import com.commafeed.frontend.model.UserModel;
|
import com.commafeed.frontend.model.UserModel;
|
||||||
import com.commafeed.frontend.model.request.MarkRequest;
|
import com.commafeed.frontend.model.request.MarkRequest;
|
||||||
@@ -24,6 +26,11 @@ import io.restassured.http.ContentType;
|
|||||||
@QuarkusTest
|
@QuarkusTest
|
||||||
class SecurityIT extends BaseIT {
|
class SecurityIT extends BaseIT {
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setup() {
|
||||||
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void notLoggedIn() {
|
void notLoggedIn() {
|
||||||
UnauthorizedResponse info = RestAssured.given()
|
UnauthorizedResponse info = RestAssured.given()
|
||||||
@@ -49,7 +56,13 @@ class SecurityIT extends BaseIT {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void basicAuthLogin() {
|
void basicAuthLogin() {
|
||||||
RestAssured.given().auth().preemptive().basic("admin", "admin").get("rest/user/profile").then().statusCode(HttpStatus.SC_OK);
|
RestAssured.given()
|
||||||
|
.auth()
|
||||||
|
.preemptive()
|
||||||
|
.basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD)
|
||||||
|
.get("rest/user/profile")
|
||||||
|
.then()
|
||||||
|
.statusCode(HttpStatus.SC_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -57,7 +70,7 @@ class SecurityIT extends BaseIT {
|
|||||||
RestAssured.given()
|
RestAssured.given()
|
||||||
.auth()
|
.auth()
|
||||||
.preemptive()
|
.preemptive()
|
||||||
.basic("admin", "wrong-password")
|
.basic(TestConstants.ADMIN_USERNAME, "wrong-password")
|
||||||
.get("rest/user/profile")
|
.get("rest/user/profile")
|
||||||
.then()
|
.then()
|
||||||
.statusCode(HttpStatus.SC_UNAUTHORIZED);
|
.statusCode(HttpStatus.SC_UNAUTHORIZED);
|
||||||
@@ -72,12 +85,12 @@ class SecurityIT extends BaseIT {
|
|||||||
void apiKey() {
|
void apiKey() {
|
||||||
// create api key
|
// create api key
|
||||||
ProfileModificationRequest req = new ProfileModificationRequest();
|
ProfileModificationRequest req = new ProfileModificationRequest();
|
||||||
req.setCurrentPassword("admin");
|
req.setCurrentPassword(TestConstants.ADMIN_PASSWORD);
|
||||||
req.setNewApiKey(true);
|
req.setNewApiKey(true);
|
||||||
RestAssured.given()
|
RestAssured.given()
|
||||||
.auth()
|
.auth()
|
||||||
.preemptive()
|
.preemptive()
|
||||||
.basic("admin", "admin")
|
.basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD)
|
||||||
.body(req)
|
.body(req)
|
||||||
.contentType(ContentType.JSON)
|
.contentType(ContentType.JSON)
|
||||||
.post("rest/user/profile")
|
.post("rest/user/profile")
|
||||||
@@ -88,7 +101,7 @@ class SecurityIT extends BaseIT {
|
|||||||
String apiKey = RestAssured.given()
|
String apiKey = RestAssured.given()
|
||||||
.auth()
|
.auth()
|
||||||
.preemptive()
|
.preemptive()
|
||||||
.basic("admin", "admin")
|
.basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD)
|
||||||
.get("rest/user/profile")
|
.get("rest/user/profile")
|
||||||
.then()
|
.then()
|
||||||
.statusCode(HttpStatus.SC_OK)
|
.statusCode(HttpStatus.SC_OK)
|
||||||
@@ -103,7 +116,7 @@ class SecurityIT extends BaseIT {
|
|||||||
long subscriptionId = RestAssured.given()
|
long subscriptionId = RestAssured.given()
|
||||||
.auth()
|
.auth()
|
||||||
.preemptive()
|
.preemptive()
|
||||||
.basic("admin", "admin")
|
.basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD)
|
||||||
.body(subscribeRequest)
|
.body(subscribeRequest)
|
||||||
.contentType(ContentType.JSON)
|
.contentType(ContentType.JSON)
|
||||||
.post("rest/feed/subscribe")
|
.post("rest/feed/subscribe")
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import org.junit.jupiter.api.Assertions;
|
|||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.request.FeedModificationRequest;
|
import com.commafeed.frontend.model.request.FeedModificationRequest;
|
||||||
|
|
||||||
import io.quarkus.test.junit.QuarkusTest;
|
import io.quarkus.test.junit.QuarkusTest;
|
||||||
@@ -40,7 +41,8 @@ class WebSocketIT extends BaseIT {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import org.junit.jupiter.api.BeforeEach;
|
|||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.UserModel;
|
import com.commafeed.frontend.model.UserModel;
|
||||||
import com.commafeed.frontend.model.request.AdminSaveUserRequest;
|
import com.commafeed.frontend.model.request.AdminSaveUserRequest;
|
||||||
import com.commafeed.frontend.model.request.IDRequest;
|
import com.commafeed.frontend.model.request.IDRequest;
|
||||||
@@ -23,7 +24,8 @@ class AdminIT extends BaseIT {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.junit.jupiter.api.Nested;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.Category;
|
import com.commafeed.frontend.model.Category;
|
||||||
import com.commafeed.frontend.model.Entries;
|
import com.commafeed.frontend.model.Entries;
|
||||||
import com.commafeed.frontend.model.Entry;
|
import com.commafeed.frontend.model.Entry;
|
||||||
@@ -35,7 +36,8 @@ import io.restassured.http.ContentType;
|
|||||||
class CategoryIT extends BaseIT {
|
class CategoryIT extends BaseIT {
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.junit.jupiter.api.Nested;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.Entry;
|
import com.commafeed.frontend.model.Entry;
|
||||||
import com.commafeed.frontend.model.FeedInfo;
|
import com.commafeed.frontend.model.FeedInfo;
|
||||||
import com.commafeed.frontend.model.Subscription;
|
import com.commafeed.frontend.model.Subscription;
|
||||||
@@ -43,7 +44,8 @@ class FeedIT extends BaseIT {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.junit.jupiter.api.Assertions;
|
|||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.backend.Digests;
|
import com.commafeed.backend.Digests;
|
||||||
import com.commafeed.frontend.model.Entry;
|
import com.commafeed.frontend.model.Entry;
|
||||||
import com.commafeed.frontend.model.UserModel;
|
import com.commafeed.frontend.model.UserModel;
|
||||||
@@ -28,11 +29,12 @@ class FeverIT extends BaseIT {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
|
||||||
// create api key
|
// create api key
|
||||||
ProfileModificationRequest req = new ProfileModificationRequest();
|
ProfileModificationRequest req = new ProfileModificationRequest();
|
||||||
req.setCurrentPassword("admin");
|
req.setCurrentPassword(TestConstants.ADMIN_PASSWORD);
|
||||||
req.setNewApiKey(true);
|
req.setNewApiKey(true);
|
||||||
RestAssured.given().body(req).contentType(ContentType.JSON).post("rest/user/profile").then().statusCode(HttpStatus.SC_OK);
|
RestAssured.given().body(req).contentType(ContentType.JSON).post("rest/user/profile").then().statusCode(HttpStatus.SC_OK);
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.junit.jupiter.api.Assertions;
|
|||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.Settings;
|
import com.commafeed.frontend.model.Settings;
|
||||||
import com.commafeed.frontend.model.request.PasswordResetRequest;
|
import com.commafeed.frontend.model.request.PasswordResetRequest;
|
||||||
import com.commafeed.integration.BaseIT;
|
import com.commafeed.integration.BaseIT;
|
||||||
@@ -29,7 +30,8 @@ class UserIT extends BaseIT {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
|
||||||
mailbox.clear();
|
mailbox.clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.junit.jupiter.api.AfterEach;
|
|||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.frontend.model.Settings;
|
import com.commafeed.frontend.model.Settings;
|
||||||
import com.commafeed.integration.BaseIT;
|
import com.commafeed.integration.BaseIT;
|
||||||
|
|
||||||
@@ -18,7 +19,8 @@ class CustomCodeIT extends BaseIT {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
|
|||||||
@@ -8,8 +8,10 @@ import jakarta.ws.rs.core.HttpHeaders;
|
|||||||
|
|
||||||
import org.apache.hc.core5.http.HttpStatus;
|
import org.apache.hc.core5.http.HttpStatus;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.integration.BaseIT;
|
import com.commafeed.integration.BaseIT;
|
||||||
|
|
||||||
import io.quarkus.test.junit.QuarkusTest;
|
import io.quarkus.test.junit.QuarkusTest;
|
||||||
@@ -19,6 +21,11 @@ import io.restassured.http.Headers;
|
|||||||
@QuarkusTest
|
@QuarkusTest
|
||||||
class LogoutIT extends BaseIT {
|
class LogoutIT extends BaseIT {
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setup() {
|
||||||
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() {
|
void test() {
|
||||||
List<HttpCookie> cookies = login();
|
List<HttpCookie> cookies = login();
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import org.junit.jupiter.api.AfterEach;
|
|||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.commafeed.TestConstants;
|
||||||
import com.commafeed.integration.BaseIT;
|
import com.commafeed.integration.BaseIT;
|
||||||
|
|
||||||
import io.quarkus.test.junit.QuarkusTest;
|
import io.quarkus.test.junit.QuarkusTest;
|
||||||
@@ -17,7 +18,8 @@ class NextUnreadIT extends BaseIT {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
RestAssured.authentication = RestAssured.preemptive().basic("admin", "admin");
|
initialSetup(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
|
RestAssured.authentication = RestAssured.preemptive().basic(TestConstants.ADMIN_USERNAME, TestConstants.ADMIN_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
|
|||||||
Reference in New Issue
Block a user