Some fixes and translations
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import type { DefaultTheme, LocaleConfig } from 'vitepress'
|
||||
import type { Theme } from '../theme/types'
|
||||
import { components } from '../theme/plugins/component'
|
||||
import 'dotenv/config'
|
||||
|
||||
export const SITE_NAME = 'Kotatsu Website'
|
||||
@@ -65,8 +64,6 @@ export const config: LocaleConfig<Theme.Config> = {
|
||||
message: "<a href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GPL-3.0 Licensed</a> <span class=\"divider\">|</span> <a href=\"/privacy/\">Privacy policy</a>",
|
||||
copyright: `Copyright © 2020 - ${new Date().getFullYear()} Kotatsu Developers`,
|
||||
},
|
||||
|
||||
components: components.filter(component => component.path.startsWith('components/')),
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -80,10 +77,10 @@ function defaultSidebar(): DefaultTheme.SidebarItem[] {
|
||||
text: "Download",
|
||||
link: "/download/",
|
||||
},
|
||||
{
|
||||
/* {
|
||||
text: "Parsers",
|
||||
link: "/parsers/",
|
||||
},
|
||||
}, */
|
||||
{
|
||||
text: "Changelogs",
|
||||
link: "/changelogs/",
|
||||
@@ -209,7 +206,7 @@ function getNav(): DefaultTheme.NavItem[] {
|
||||
link: "/manuals/guides/getting-started",
|
||||
activeMatch: "/manuals/",
|
||||
},
|
||||
{
|
||||
/* {
|
||||
text: "News",
|
||||
link: "/news/",
|
||||
activeMatch: "/news/",
|
||||
@@ -218,6 +215,6 @@ function getNav(): DefaultTheme.NavItem[] {
|
||||
text: "Account",
|
||||
link: "/account/",
|
||||
activeMatch: "/account/"
|
||||
}
|
||||
} */
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { HeadConfig, TransformContext } from "vitepress"
|
||||
import type { DocsPageData } from '../../theme/plugins/component'
|
||||
import type { DocsPageData } from '../../theme/plugins/section'
|
||||
|
||||
function generateMeta(context: TransformContext, hostname: string) {
|
||||
const head: HeadConfig[] = []
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
import type { Theme } from '../theme/types'
|
||||
import type { DocsPageData } from '../theme/plugins/component'
|
||||
import { type HeadConfig, defineConfigWithTheme } from 'vitepress'
|
||||
import { defineConfigWithTheme } from 'vitepress'
|
||||
import { config as ru, searchLocale as searchLocaleRu } from './ru'
|
||||
import { config as root, searchLocale as searchLocaleEn } from './en'
|
||||
import { config as ua, searchLocale as searchLocaleUa } from './ua'
|
||||
import { addPlugins } from '../theme/plugins/markdown'
|
||||
import { components, prepareData } from '../theme/plugins/component'
|
||||
import { sections, prepareData } from '../theme/plugins/section'
|
||||
import { slugify } from 'transliteration'
|
||||
import { fileURLToPath, URL } from 'node:url'
|
||||
import { telegram } from '../../website/icons'
|
||||
import { normalize } from 'vitepress/dist/client/shared'
|
||||
import { tabsMarkdownPlugin } from "vitepress-plugin-tabs"
|
||||
import pluginRewriteAll from 'vite-plugin-rewrite-all';
|
||||
|
||||
@@ -63,7 +61,7 @@ export default defineConfigWithTheme<Theme.Config>({
|
||||
['link', { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap' }],
|
||||
|
||||
['link', { rel: 'icon', href: '/favicon.ico?v=2', sizes: 'any' }],
|
||||
['link', { rel: 'icon', href: '/icon.svg?v=2', type: 'image/svg+xml' }],
|
||||
['link', { rel: 'icon', href: '/logo.svg?v=2', type: 'image/svg+xml' }],
|
||||
['link', { rel: 'apple-touch-icon', href: '/apple-touch-icon.png?v=2' }],
|
||||
['link', { rel: 'manifest', href: '/site.webmanifest' }],
|
||||
],
|
||||
@@ -87,9 +85,16 @@ export default defineConfigWithTheme<Theme.Config>({
|
||||
|
||||
search: {
|
||||
provider: 'local',
|
||||
options: {
|
||||
locales: {
|
||||
...searchLocaleEn,
|
||||
...searchLocaleRu,
|
||||
...searchLocaleUa,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
components,
|
||||
sections,
|
||||
},
|
||||
|
||||
locales: {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import type { DefaultTheme, LocaleConfig } from 'vitepress'
|
||||
import type { Theme } from '../theme/types'
|
||||
import { components } from '../theme/plugins/component'
|
||||
import 'dotenv/config'
|
||||
|
||||
export const SITE_NAME = 'Kotatsu Website'
|
||||
@@ -75,8 +74,6 @@ export const config: LocaleConfig<Theme.Config> = {
|
||||
message: "<a href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">Лицензия GPL-3.0</a> <span class=\"divider\">|</span> <a href=\"/privacy/\">Политика конфиденциальности</a>",
|
||||
copyright: `Copyright © 2020 - ${new Date().getFullYear()} Kotatsu Developers`,
|
||||
},
|
||||
|
||||
components: components.filter(component => component.path.startsWith('ru/components/')),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
import { type Ref, computed } from 'vue'
|
||||
import { type PageData, useData } from 'vitepress'
|
||||
|
||||
export interface Data {
|
||||
lang: Ref<string>
|
||||
}
|
||||
|
||||
const iconMappings = {
|
||||
about: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>information-outline</title><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z" /></svg>',
|
||||
bookmark: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>bookmark-outline</title><path d="M17,18L12,15.82L7,18V5H17M17,3H7A2,2 0 0,0 5,5V21L12,18L19,21V5C19,3.89 18.1,3 17,3Z" /></svg>',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { DefaultTheme, LocaleConfig } from 'vitepress'
|
||||
import type { Theme } from '../theme/types'
|
||||
import { components } from '../theme/plugins/component'
|
||||
import { sections } from '../theme/plugins/section'
|
||||
|
||||
export const SITE_NAME = 'Kotatsu Website'
|
||||
export const META_DESCRIPTION = 'Проста і зручна читалка манги з відкритим вихідним кодом від спільноти і для спільноти, де ви можете знайти і читати вашу улюблену мангу простіше як ніколи.'
|
||||
@@ -73,8 +73,6 @@ export const config: LocaleConfig<Theme.Config> = {
|
||||
message: "<a href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">Ліцензія GPL-3.0</a> <span class=\"divider\">|</span> <a href=\"/privacy/\">Політика конфіденційності</a>",
|
||||
copyright: `Copyright © 2020 - ${new Date().getFullYear()} Kotatsu Developers`,
|
||||
},
|
||||
|
||||
components: components.filter(component => component.path.startsWith('ru/components/')),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { Ref } from 'vue'
|
||||
import { useData, withBase, useRoute } from 'vitepress'
|
||||
import type { DocsPageData } from '../plugins/component'
|
||||
import type { DocsPageData } from '../plugins/section'
|
||||
|
||||
import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue'
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import DefaultTheme from 'vitepress/theme-without-fonts'
|
||||
|
||||
import Home from './Home.vue'
|
||||
import TranslatorWidget from './TranslatorWidget.vue'
|
||||
import ScreenAuthorWidget from './ScreenAuthorWidget.vue'
|
||||
import ScreenTranslatorWidget from './ScreenTranslatorWidget.vue'
|
||||
import Breadcrumbs from './Breadcrumbs.vue'
|
||||
import NotFound from './NotFound.vue'
|
||||
|
||||
@@ -22,7 +22,7 @@ const { Layout } = DefaultTheme
|
||||
<Breadcrumbs />
|
||||
</template>
|
||||
<template #doc-footer-before>
|
||||
<ScreenAuthorWidget />
|
||||
<ScreenTranslatorWidget />
|
||||
</template>
|
||||
<template #not-found>
|
||||
<NotFound />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { type Ref, computed } from 'vue'
|
||||
import { type PageData, useData } from 'vitepress'
|
||||
import type { DocsPageData } from '../plugins/component'
|
||||
import type { DocsPageData } from '../plugins/section'
|
||||
import { type Translator, translators } from '../../../website/translators'
|
||||
|
||||
import { VPImage } from 'vitepress/theme-without-fonts'
|
||||
@@ -15,9 +15,10 @@ export interface Data {
|
||||
|
||||
const { page, frontmatter, lang }: Data = useData()
|
||||
|
||||
const translatorLabel = computed<string>(() => lang.value === 'ru' ? 'Переводчик' : 'Translator')
|
||||
const translatorLabel = computed<string>(() => (lang.value === 'ru') ? ('Переводчик') : ((lang.value === 'ua') ? ('Перекладач') : ('Translator')))
|
||||
|
||||
const translator = computed<Translator>(() => {
|
||||
const data = page.value?.component?.translator || translators[frontmatter.value.translator]
|
||||
const data = page.value?.section?.translator || translators[frontmatter.value.translator]
|
||||
|
||||
if (!data) {
|
||||
return
|
||||
@@ -33,7 +34,7 @@ const translator = computed<Translator>(() => {
|
||||
<template>
|
||||
<article
|
||||
v-if="translator"
|
||||
class="ScreenAuthorWidget"
|
||||
class="ScreenTranslatorWidget"
|
||||
>
|
||||
<VPLink
|
||||
:href="translator.github"
|
||||
@@ -55,12 +56,12 @@ const translator = computed<Translator>(() => {
|
||||
|
||||
|
||||
<style scoped>
|
||||
.ScreenAuthorWidget {
|
||||
.ScreenTranslatorWidget {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) {
|
||||
.ScreenAuthorWidget {
|
||||
.ScreenTranslatorWidget {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { type Ref, computed } from 'vue'
|
||||
import { type PageData, useData } from 'vitepress'
|
||||
import type { DocsPageData } from '../plugins/component'
|
||||
import type { DocsPageData } from '../plugins/section'
|
||||
import { type Translator, translators } from '../../../website/translators'
|
||||
|
||||
import { VPImage } from 'vitepress/theme-without-fonts'
|
||||
@@ -15,9 +15,9 @@ export interface Data {
|
||||
|
||||
const { page, frontmatter, lang }: Data = useData()
|
||||
|
||||
const translatorLabel = computed<string>(() => lang.value === 'en' ? 'Translator' : 'Переводчик')
|
||||
const translatorLabel = computed<string>(() => (lang.value === 'ru') ? ('Переводчик') : ((lang.value === 'ua') ? ('Перекладач') : ('Translator')))
|
||||
const translator = computed<Translator>(() => {
|
||||
const data = page.value?.component?.translator || translators[frontmatter.value.author]
|
||||
const data = page.value?.section?.translator || translators[frontmatter.value.translator]
|
||||
|
||||
if (!data) {
|
||||
return
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Ref, computed } from 'vue'
|
||||
import type { DefaultTheme, SiteData } from 'vitepress'
|
||||
import type { DocsPageData } from '../plugins/component'
|
||||
import type { DocsPageData } from '../plugins/section'
|
||||
import { useData } from 'vitepress'
|
||||
import { ensureStartingSlash } from '../utils'
|
||||
import { getFlatSideBarLinks } from 'vitepress/dist/client/theme-default/support/sidebar'
|
||||
@@ -74,15 +74,15 @@ export function useLangs({
|
||||
}
|
||||
}
|
||||
|
||||
if (!page.value.component) {
|
||||
if (!page.value.section) {
|
||||
return {
|
||||
text: value.label,
|
||||
link: rootLink,
|
||||
}
|
||||
}
|
||||
|
||||
const component = themeConfig.components.find(component => component.title === page.value.component.title)
|
||||
if (!component) {
|
||||
const section = themeConfig.sections.find(section => section.title === page.value.section.title)
|
||||
if (!section) {
|
||||
return {
|
||||
text: value.label,
|
||||
link: rootLink,
|
||||
@@ -91,7 +91,7 @@ export function useLangs({
|
||||
|
||||
return {
|
||||
text,
|
||||
link: component.link
|
||||
link: section.link
|
||||
}
|
||||
}
|
||||
))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { computed } from 'vue'
|
||||
import type { ComputedRef, Ref } from 'vue'
|
||||
import type { DocsPageData } from '../plugins/component'
|
||||
import type { DocsPageData } from '../plugins/section'
|
||||
import { useData } from 'vitepress'
|
||||
import { isActive } from 'vitepress/dist/client/shared'
|
||||
import { getFlatSideBarLinks } from 'vitepress/dist/client/theme-default/support/sidebar'
|
||||
@@ -15,13 +15,13 @@ export function usePrevNext(): ComputedRef {
|
||||
const { page, theme, frontmatter }: Data = useData()
|
||||
|
||||
return computed(() => {
|
||||
const component = page.value.component
|
||||
const section = page.value.section
|
||||
|
||||
if (!component) {
|
||||
if (!section) {
|
||||
return ''
|
||||
}
|
||||
|
||||
const candidates = getFlatSideBarLinks([component])
|
||||
const candidates = getFlatSideBarLinks([section])
|
||||
const index = candidates.findIndex((link) => isActive(page.value.relativePath, link.link))
|
||||
|
||||
const hidePrev =
|
||||
|
||||
@@ -12,7 +12,7 @@ import { generateSidebarItem, getTitleFromContent } from './sidebar'
|
||||
import type { Translator } from '../../../website/translators'
|
||||
import { findPath } from '../utils'
|
||||
|
||||
export interface ComponentData {
|
||||
export interface SectionData {
|
||||
path: string
|
||||
link: string
|
||||
title: string
|
||||
@@ -31,14 +31,26 @@ export interface ComponentData {
|
||||
}
|
||||
|
||||
export interface DocsPageData extends PageData {
|
||||
component?: ComponentData
|
||||
section?: SectionData
|
||||
breadcrumbs?: DefaultTheme.SidebarItem[]
|
||||
}
|
||||
|
||||
export const components: ComponentData[] = fg
|
||||
export const sections: SectionData[] = fg
|
||||
.sync([
|
||||
'website/manuals/faq/explore/*.md',
|
||||
'!website/manuals/faq/explore/index.md',
|
||||
'website/manuals/*.md',
|
||||
'!website/manuals/index.md',
|
||||
'!website/manuals/faq/*/index.md',
|
||||
'!website/manuals/guides/*/index.md',
|
||||
|
||||
'website/ua/manuals/*.md',
|
||||
'!website/ua/manuals/index.md',
|
||||
'!website/ua/manuals/faq/*/index.md',
|
||||
'!website/ua/manuals/guides/*/index.md',
|
||||
|
||||
'website/ru/manuals/*.md',
|
||||
'!website/ru/manuals/index.md',
|
||||
'!website/ru/manuals/faq/*/index.md',
|
||||
'!website/ru/manuals/guides/*/index.md',
|
||||
])
|
||||
.map(file => {
|
||||
const content = readFileSync(file, 'utf-8')
|
||||
@@ -55,7 +67,7 @@ export const components: ComponentData[] = fg
|
||||
} = data
|
||||
|
||||
const filePath = file.substring(file.indexOf('/') + 1)
|
||||
const component: ComponentData = {
|
||||
const section: SectionData = {
|
||||
path: filePath,
|
||||
link: ensureStartingSlash(normalize(filePath)),
|
||||
repository,
|
||||
@@ -68,24 +80,24 @@ export const components: ComponentData[] = fg
|
||||
categories: Array.isArray(categories) ? categories : Array(categories),
|
||||
}
|
||||
|
||||
component.translator = getTranslator(translator)
|
||||
section.translator = getTranslator(translator)
|
||||
|
||||
if (items) {
|
||||
component.items = generateSidebarItem(items, component.link)
|
||||
section.items = generateSidebarItem(items, section.link)
|
||||
}
|
||||
|
||||
return component
|
||||
return section
|
||||
})
|
||||
.sort((a, b) => (a.text && b.text) ? a.text.localeCompare(b.text) : 0)
|
||||
|
||||
export default class DocsComponent {
|
||||
export default class DocsSection {
|
||||
static prepareData(
|
||||
pageData: DocsPageData,
|
||||
siteConfig: SiteConfig,
|
||||
): DocsPageData {
|
||||
const component = components.find(component => pageData.relativePath.startsWith(component.path.replace(/index\.md$/, '')))
|
||||
const section = sections.find(section => pageData.relativePath.startsWith(section.path.replace(/index\.md$/, '')))
|
||||
|
||||
pageData.component = component
|
||||
pageData.section = section
|
||||
pageData.breadcrumbs = findPath(pageData, siteConfig.userConfig)
|
||||
|
||||
pageData.title = !pageData.frontmatter.title && pageData.breadcrumbs.length
|
||||
@@ -93,17 +105,17 @@ export default class DocsComponent {
|
||||
: pageData.title
|
||||
|
||||
if (
|
||||
component
|
||||
section
|
||||
&& !pageData.description
|
||||
&& pageData.component.description
|
||||
&& pageData.section.description
|
||||
) {
|
||||
pageData.description = pageData.component.description
|
||||
pageData.description = pageData.section.description
|
||||
}
|
||||
|
||||
return pageData
|
||||
}
|
||||
}
|
||||
|
||||
export { DocsComponent }
|
||||
export { DocsSection }
|
||||
|
||||
export const { prepareData } = DocsComponent
|
||||
export const { prepareData } = DocsSection
|
||||
@@ -68,6 +68,10 @@
|
||||
[lang|="ru"] {
|
||||
--vp-code-copy-copied-text-content: 'Скопировано';
|
||||
}
|
||||
|
||||
[lang|="ua"] {
|
||||
--vp-code-copy-copied-text-content: 'Скопійовано';
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-blue-1: #7da1e9;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DefaultTheme } from 'vitepress'
|
||||
import type { ComponentData } from '../plugins/component'
|
||||
import type { SectionData } from '../plugins/section'
|
||||
|
||||
export namespace Theme {
|
||||
export interface Sponsor {
|
||||
@@ -10,11 +10,7 @@ export namespace Theme {
|
||||
|
||||
export interface Config extends DefaultTheme.Config {
|
||||
titleSeparator?: string
|
||||
components?: Array<ComponentData>
|
||||
teamSectionTitle?: string
|
||||
|
||||
sponsorLink?: string
|
||||
sponsor?: Sponsor
|
||||
sections?: Array<SectionData>
|
||||
}
|
||||
|
||||
export interface TeamMember extends Omit<DefaultTheme.TeamMember, 'name'> {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { DefaultTheme, UserConfig } from 'vitepress'
|
||||
import type { ComponentData, DocsPageData } from './plugins/component'
|
||||
import type { SectionData, DocsPageData } from './plugins/section'
|
||||
import { normalize } from 'vitepress/dist/client/shared'
|
||||
|
||||
import { type Translator, translators } from '../../website/translators'
|
||||
@@ -29,11 +29,11 @@ export function findPath(
|
||||
path.push({ text: root.text, link: root.link })
|
||||
}
|
||||
|
||||
let tree: DefaultTheme.SidebarItem | ComponentData
|
||||
let tree: DefaultTheme.SidebarItem | SectionData
|
||||
|
||||
if (pageData.component) {
|
||||
const { title, link, items } = pageData.component
|
||||
tree = pageData.component
|
||||
if (pageData.section) {
|
||||
const { title, link, items } = pageData.section
|
||||
tree = pageData.section
|
||||
path.push({ text: title, link, items })
|
||||
} else {
|
||||
const sidebar = Object.entries(localeConfig.sidebar).find(([link]) => searchable.startsWith(link))
|
||||
|
||||
@@ -25,7 +25,7 @@ Learn more in this [Wikipedia article](https://en.wikipedia.org/wiki/Scanlation)
|
||||
Check the removed [parsers list](https://github.com/KotatsuApp/kotatsu-parsers/issues/39) first.
|
||||
|
||||
## Why was a source removed?
|
||||
Extensions can be removed due to several reasons:
|
||||
Sources can be removed due to several reasons:
|
||||
|
||||
* Frequent website changes.
|
||||
* Image scrambling.
|
||||
|
||||
@@ -52,7 +52,7 @@ These are general guidelines as each site has its specific undisclosed limits an
|
||||
:::
|
||||
|
||||
## Widespread issue
|
||||
When everyone experiences a problem, it could be with the extension or app:
|
||||
When everyone experiences a problem, it could be with the source or app:
|
||||
|
||||
1. Check open issues [for the app](https://github.com/KotatsuApp/Kotatsu/issues) and/or [**parsers**](https://github.com/KotatsuApp/kotatsu-parsers/issues).
|
||||
1. Check closed issues ([app](https://github.com/KotatsuApp/Kotatsu/issues?q=is%3Aissue+is%3Aclosed)/[parsers](https://github.com/KotatsuApp/kotatsu-parsers/issues?q=is%3Aissue+is%3Aclosed)) in case it's resolved but not yet released.
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
title: Зробити свій внесок
|
||||
description: Дізнайтеся, як допомогти у перекладі або створенні програми та парсерів.
|
||||
translator: CakesTwix
|
||||
lastUpdated: false
|
||||
editLink: false
|
||||
prev: false
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Завантаження
|
||||
description: Поширені запитання про завантаження.
|
||||
---
|
||||
|
||||
# Downloads
|
||||
# Завантаження
|
||||
Поширені запитання про завантаження.
|
||||
|
||||
## Чому мої завантаження зупинилися на середині?
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Explore
|
||||
description: Help center of Explore section.
|
||||
title: Огляд
|
||||
description: Довідковий центр розділу Огляд.
|
||||
lastUpdated: false
|
||||
editLink: false
|
||||
prev: false
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Local storage
|
||||
description: Frequently Asked Questions about Local storage.
|
||||
title: Локальне сховище
|
||||
description: Поширені запитання про локальне сховище.
|
||||
---
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Random
|
||||
description: Frequently Asked Questions about Random.
|
||||
title: Випадкові серії
|
||||
description: Часті запитання про випадкові серії.
|
||||
---
|
||||
@@ -1,37 +1,37 @@
|
||||
---
|
||||
title: Sources
|
||||
description: Frequently Asked Questions about Sources.
|
||||
title: Джерела
|
||||
description: Поширені запитання про джерела.
|
||||
---
|
||||
|
||||
# Sources
|
||||
Frequently Asked Questions about Sources.
|
||||
# Джерела
|
||||
Поширені запитання про джерела.
|
||||
|
||||
## What are some recommended sources?
|
||||
**Kotatsu** does not endorse or recommend any source, and there is no best source.
|
||||
## Які джерела рекомендується використовувати?
|
||||
**Kotatsu** не схвалює і не рекомендує жодне джерело, і найкращого джерела не існує.
|
||||
|
||||
Instead, we encourage users to spend some time trying out a few sources themselves and discover what sources work best for them.
|
||||
What works well for somebody else might not work well for you.
|
||||
Натомість ми заохочуємо користувачів витратити деякий час на самостійне випробування декількох джерел і виявити, які з них найкраще підходять для них.
|
||||
Те, що добре працює для когось іншого, може не працювати добре для вас.
|
||||
|
||||
::: info Disclaimer
|
||||
**Kotatsu** isn't responsible for slow, down, missing chapters, or subpar image quality of sources as it doesn't host content.
|
||||
::: info Відмова від відповідальності
|
||||
**Kotatsu** не несе відповідальності за повільну роботу, відсутність розділів або низьку якість зображення джерел, оскільки не є хостером контенту.
|
||||
:::
|
||||
|
||||
## What is a scanlator source?
|
||||
Non-officially licensed series are translated by scanlators, often found on their websites or [MangaDex](https://mangadex.org/).
|
||||
Learn more in this [Wikipedia article](https://en.wikipedia.org/wiki/Scanlation).
|
||||
## Що таке джерело сканлятора?
|
||||
Неофіційно ліцензовані серії перекладають сканлятори, часто їх можна знайти на їхніх сайтах або на [MangaDex](https://mangadex.org/).
|
||||
Дізнайтеся більше в цій [статті Вікіпедії] (https://en.wikipedia.org/wiki/Scanlation).
|
||||
|
||||
## How do I request new sources?
|
||||
[Open an issue](https://github.com/KotatsuApp/kotatsu-parsers/issues) on **GitHub** if not already there.
|
||||
Check the removed [parsers list](https://github.com/KotatsuApp/kotatsu-parsers/issues/39) first.
|
||||
## Як запросити нові джерела?
|
||||
[Створіть проблему](https://github.com/KotatsuApp/kotatsu-parsers/issues) на **GitHub**, якщо вона ще не створена.
|
||||
Спочатку перевірте [список вилучених парсерів](https://github.com/KotatsuApp/kotatsu-parsers/issues/39).
|
||||
|
||||
## Why was a source removed?
|
||||
Extensions can be removed due to several reasons:
|
||||
## Чому було видалено джерело?
|
||||
Парсери можуть бути видалені з кількох причин:
|
||||
|
||||
* Frequent website changes.
|
||||
* Image scrambling.
|
||||
* Scanlator removal request.
|
||||
* Paywall implementation.
|
||||
* Reverse engineering needs.
|
||||
* Site shutdown.
|
||||
* Часті зміни на сайті.
|
||||
* Шифрування зображень.
|
||||
* Запит на видалення.
|
||||
* Реалізація платного входу.
|
||||
* Потреби в реінжинірингу.
|
||||
* Закриття сайту.
|
||||
|
||||
Find the list of removed sources [here](https://github.com/KotatsuApp/kotatsu-parsers/issues/39), excluding offline sites.
|
||||
Список вилучених джерел можна знайти [тут](https://github.com/KotatsuApp/kotatsu-parsers/issues/39).
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Suggestions
|
||||
description: Frequently Asked Questions about Suggestions.
|
||||
title: Рекомендації
|
||||
description: Поширені запитання про рекомендації.
|
||||
---
|
||||
@@ -1,15 +1,14 @@
|
||||
---
|
||||
title: Feed
|
||||
titleTemplate: Frequently Asked Questions
|
||||
description: Frequently Asked Questions about the Feed.
|
||||
title: Стрічка
|
||||
description: Поширені запитання про стрічку.
|
||||
---
|
||||
|
||||
# Feed
|
||||
Frequently Asked Questions about the Feed.
|
||||
# Стрічка
|
||||
Поширені запитання про стрічку.
|
||||
|
||||
## Why aren't series updates working?
|
||||
Some Android skins (e.g., **MIUI**) aggressively save battery, potentially shutting down apps in the background.
|
||||
## Чому не працюють оновлення серій?
|
||||
Деякі скіни Android (наприклад, **MIUI**) агресивно економлять заряд акумулятора, потенційно закриваючи програми у фоновому режимі.
|
||||
|
||||
Whitelist **Kotatsu** from your battery saver by going to <nav to="checking"> and tapping **Disable battery optimization**.
|
||||
Вилучіть **Kotatsu** з екрана економії заряду батареї, перейшовши до <nav to="checking"> і натиснувши **Вимкнути оптимізацію заряду батареї**.
|
||||
|
||||
If unsuccessful, refer to [Don't Kill My App](https://dontkillmyapp.com/) for how to disable specific battery-saving options for your device.
|
||||
Якщо це не вдасться, зверніться до [Don't Kill My App](https://dontkillmyapp.com/), щоб дізнатися, як вимкнути певні опції економії заряду акумулятора для вашого пристрою.
|
||||
@@ -1,19 +1,20 @@
|
||||
---
|
||||
title: General
|
||||
description: Frequently Asked Questions
|
||||
title: Загальне
|
||||
description: Поширені запитання
|
||||
translator: CakesTwix
|
||||
---
|
||||
|
||||
# General
|
||||
Frequently Asked Questions
|
||||
# Загальне
|
||||
Поширені запитання
|
||||
|
||||
## Why isn't Kotatsu on the Google Play Store?
|
||||
**Kotatsu** won't be on the **Google Play Store**. **Google** might take down the app due to certain content, which the developers wishes to avoid.
|
||||
## Чому Kotatsu немає в Google Play Маркеті?
|
||||
**Kotatsu** не буде в магазині **Google Play**. **Google** може видалити додаток через певний контент, якого розробники хотіли б уникнути.
|
||||
|
||||
To report **Kotatsu** copycats on the **Google Play Store**, fill out [this form](https://support.google.com/googleplay/android-developer/contact/takedown) following the steps below.
|
||||
Щоб повідомити про підробки **Kotatsu** в **Google Play Store**, заповніть [цю форму](https://support.google.com/googleplay/android-developer/contact/takedown) дотримуючись наведених нижче інструкцій.
|
||||
|
||||
:::details Steps to report Kotatsu copycats
|
||||
1. Go to the page -> three dots menu -> Flag as inappropriate -> Other objection.
|
||||
1. After choosing "Other objection", you may choose to put down any or all of the following:
|
||||
:::details Кроки для повідомлення про копії Kotatsu
|
||||
1. Перейдіть на сторінку -> меню з трьома крапками -> Позначити як недоречне -> Інше заперечення.
|
||||
1. Вибравши "Інше заперечення", ви можете вказати будь-яке або всі наступні заперечення:
|
||||
|
||||
The app infringes on the Google Play Developer Policy by
|
||||
|
||||
@@ -34,16 +35,16 @@ To report **Kotatsu** copycats on the **Google Play Store**, fill out [this form
|
||||
> - Apps that are improperly categorized.
|
||||
:::
|
||||
|
||||
## Is Kotatsu available for iOS/iPadOS?
|
||||
There is no iOS or iPadOS version and neither are there plans for one.
|
||||
Porting is difficult due to the separate codebases of iOS and Android apps.
|
||||
## Чи є Kotatsu на iOS/iPadOS?
|
||||
Версії для iOS чи iPadOS не існує і не планується.
|
||||
Портування ускладнене через окремі кодові бази додатків для iOS та Android.
|
||||
|
||||
Any app proclaiming to be "**Kotatsu for iOS**" is not by us and should be treated as a scam.
|
||||
Будь-який додаток, що проголошує себе "**Kotatsu для iOS**", не створений нами, і його слід розглядати як шахрайство.
|
||||
|
||||
## Can I read light novels?
|
||||
**Kotatsu** can't read light novels; it's an image parser, not a text parser.
|
||||
## Чи можна читати ранобе?
|
||||
**Kotatsu** не може читати ранобе; це аналізатор зображень, а не тексту.
|
||||
|
||||
## Can I stream anime?
|
||||
**Kotatsu** isn't designed for anime streaming.
|
||||
## Чи можна дивитися аніме?
|
||||
**Kotatsu** не призначений для показу аніме.
|
||||
|
||||
Projects using the **Kotatsu** name for anime streaming aren't affiliated with the main project.
|
||||
Проекти, що використовують ім'я **Kotatsu** для показу аніме, не пов'язані з основним проектом.
|
||||
@@ -1,18 +1,17 @@
|
||||
---
|
||||
title: Reader
|
||||
titleTemplate: Frequently Asked Questions
|
||||
description: Frequently Asked Questions about the Reader.
|
||||
title: Читання
|
||||
description: Поширені запитання про читання.
|
||||
---
|
||||
|
||||
# Reader
|
||||
Frequently Asked Questions about the Reader.
|
||||
# Читання
|
||||
Поширені запитання про читання.
|
||||
|
||||
## Why didn't the page load?
|
||||
Besides network-related problems, **Kotatsu** may occasionally fail to recognize certain images.
|
||||
To address this, simply exit and re-enter the reader or click **Try again** button, often resolving the issue.
|
||||
## Чому сторінка не завантажилася?
|
||||
Окрім проблем, пов'язаних з мережею, **Kotatsu** іноді може не розпізнавати певні зображення.
|
||||
Щоб вирішити цю проблему, просто вийдіть і знову увійдіть у програму або натисніть кнопку **Повторити**, що часто вирішує проблему.
|
||||
|
||||
## Can I see two pages at once?
|
||||
Not currently. Creating an effective dual-page reader that accommodates scanlator page inconsistencies and other complexities poses challenges. This feature may be added in the future.
|
||||
## Чи можу я бачити дві сторінки одночасно?
|
||||
Створення ефективної програми для читання двох сторінок, яка враховує невідповідність сторінок та інші складнощі, є складним завданням. Ця функція може бути додана в майбутньому.
|
||||
|
||||
## What do all the settings do?
|
||||
For detailed instructions, please consult the guides section on the website here.
|
||||
## Що роблять всі налаштування?
|
||||
Для отримання детальних інструкцій, будь ласка, зверніться до розділу гайдів на сайті тут.
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
title: Settings
|
||||
description: Frequently Asked Questions about various app settings.
|
||||
title: Налаштування
|
||||
description: Поширені запитання щодо різних налаштувань програми.
|
||||
---
|
||||
|
||||
# Settings
|
||||
Frequently Asked Questions about various app settings.
|
||||
# Налаштування
|
||||
Поширені запитання щодо різних налаштувань програми.
|
||||
|
||||
## Why is taking screenshots blocked?
|
||||
Turn off **Screenshot policy** in <nav to="reader">.
|
||||
## Чому заблоковано створення скріншотів?
|
||||
Вимкніть **Політику скріншотів** у <nav to="reader">.
|
||||
|
||||
## What is DNS over HTTPS?
|
||||
**DNS over HTTPS** (in <nav to="network">) offers secure DNS resolution through HTTPS, preventing attacks.
|
||||
Learn more [here](https://www.cloudflare.com/learning/dns/dns-over-tls/). This may help bypass some basic website blocking.
|
||||
## Що таке DNS через HTTPS?
|
||||
**DNS через HTTPS** (у <nav to="network">) пропонує безпечне вирішення DNS через HTTPS, запобігаючи атакам.
|
||||
Дізнайтеся більше [тут](https://www.cloudflare.com/learning/dns/dns-over-tls/). Це може допомогти обійти деякі основні блокування веб-сайтів.
|
||||
@@ -1,74 +1,73 @@
|
||||
---
|
||||
title: Common issues
|
||||
description: Facing issues with a source or the app? Here's how to tackle common challenges.
|
||||
title: Загальні проблеми
|
||||
description: Виникли проблеми з джерелом або додатком? Ось як вирішити найпоширеніші проблеми.
|
||||
---
|
||||
|
||||
# Common issues
|
||||
# Загальні проблеми
|
||||
|
||||
Facing issues with a source or the app?
|
||||
Here's how to tackle common challenges.
|
||||
Виникли проблеми з джерелом або додатком? Ось як вирішити найпоширеніші проблеми.
|
||||
|
||||
## Basic issues
|
||||
## Базові проблеми
|
||||
|
||||
### Slow loading
|
||||
Sources being slow could stem from site slowness, your internet, or source-imposed rate limits/IP bans.
|
||||
### Повільне завантаження
|
||||
Повільна робота джерел може бути пов'язана з повільною роботою сайту, вашого інтернету або обмеженнями швидкості, встановленими джерелом, чи заборонами на IP-адреси.
|
||||
|
||||
## Advanced errors
|
||||
## Розширені помилки
|
||||
|
||||
### `Unable to resolve host` / `Connection failed` / `Failed to connect to` / `timeout` / `connection reset`
|
||||
These errors indicate connection issues. Possible causes include:
|
||||
Ці помилки вказують на проблеми зі з'єднанням. Можливі причини включають:
|
||||
|
||||
* Weak internet connection.
|
||||
* App lacks internet access.
|
||||
* Your ISP has blocked the site.
|
||||
* The site is down.
|
||||
* Слабке з'єднання з Інтернетом.
|
||||
* Додаток не має доступу до Інтернету.
|
||||
* Ваш провайдер заблокував сайт.
|
||||
* Сайт не працює.
|
||||
|
||||
Try these solutions:
|
||||
Спробуйте ці рішення:
|
||||
|
||||
* Enable **DNS over HTTPS**.
|
||||
* Change network (Wi-Fi, mobile data, VPN).
|
||||
* Reboot router.
|
||||
* Увімкніть **DNS через HTTPS**.
|
||||
* Змініть мережу (Wi-Fi, мобільна передача даних, VPN).
|
||||
* Перезавантажте роутер.
|
||||
|
||||
### `java.security.cert.CertPathValidatorException` / `Chain validation failed`
|
||||
Validation issue with source's certificate.
|
||||
Проблема з валідацією сертифіката джерела.
|
||||
|
||||
Try these solutions:
|
||||
Спробуйте ці рішення:
|
||||
|
||||
* Check expired certificate, use SSL checker.
|
||||
* Set correct device date and time.
|
||||
* Change network (Wi-Fi, mobile data, VPN).
|
||||
* Enable **Ignore SSL errors** in <nav to="network"/>
|
||||
* Reboot device.
|
||||
* Перевірте прострочений сертифікат, скористайтеся перевіркою SSL.
|
||||
* Встановіть правильну дату та час на пристрої.
|
||||
* Змініть мережу (Wi-Fi, мобільна передача даних, VPN).
|
||||
* Увімкніть **Ігнорувати помилки SSL** у <nav to="network"/>.
|
||||
* Перезавантажте пристрій.
|
||||
|
||||
## HTTP errors
|
||||
Encountering HTTP errors? Here's what they mean and how to address them.
|
||||
## Помилки HTTP
|
||||
Виникли помилки HTTP? Ось що вони означають і як їх усунути.
|
||||
|
||||
### `HTTP Error: 403` - Forbidden
|
||||
Possible reasons for this error:
|
||||
* The selected source has Cloudflare protection. Check the [Cloudflare guide](/manuals/guides/troubleshooting/#cloudflare) for solutions.
|
||||
* The source might be down, removed the series, or banned your IP.
|
||||
> Open WebView to confirm.
|
||||
Можливі причини цієї помилки:
|
||||
* Вибране джерело має захист Cloudflare. Зверніться до [Посібника з Cloudflare] (/ua/manuals/guides/troubleshooting/#cloudflare) для вирішення проблеми.
|
||||
* Джерело може не працювати, видалити серію або забанити вашу IP-адресу.
|
||||
> Відкрийте WebView, щоб перевірити.
|
||||
|
||||
### `HTTP Error: 404` - Not Found
|
||||
This error likely indicates a down source or removed series.
|
||||
* Use **WebView** to verify.
|
||||
> Consider switching to a different source for the series.
|
||||
Ця помилка, ймовірно, вказує на непрацююче джерело або видалену серію.
|
||||
* Використовуйте **WebView** для перевірки.
|
||||
> Спробуйте переключитися на інше джерело для цієї серії.
|
||||
|
||||
### `HTTP Error: 429` - Too Many Requests
|
||||
This error suggests the source temporarily banned your IP due to fast downloads/reads.
|
||||
Ця помилка означає, що джерело тимчасово заблокувало ваш IP через швидке завантаження/читання.
|
||||
|
||||
### `HTTP Error: 5xx`
|
||||
Errors like `500`, `502`, etc., indicate server-side issues on the source's end.
|
||||
Помилки типу `500`, `502` і т.д. вказують на проблеми на стороні сервера на стороні джерела.
|
||||
|
||||
[Check the source in WebView](/manuals/guides/troubleshooting/#accessing-websites-via-webview) to confirm if it's down.
|
||||
[Перевірте джерело у WebView](/ua/manuals/guides/troubleshooting/#accessing-websites-via-webview), щоб переконатися, що воно не працює.
|
||||
|
||||
### `HTTP Error: 1006`
|
||||
This error means a temporary IP ban by the source.
|
||||
Ця помилка означає тимчасову заборону IP-адреси джерелом.
|
||||
|
||||
### `HTTP Error: 1020`
|
||||
This error points to violating a firewall rule set by the site owner.
|
||||
The owner might raise Cloudflare protection or block IPs from outside their country.
|
||||
Ця помилка вказує на порушення правил брандмауера, встановлених власником сайту.
|
||||
Власник може підвищити рівень захисту Cloudflare або заблокувати IP-адреси з-за меж своєї країни.
|
||||
|
||||
::: warning
|
||||
For unlisted errors or if instructions don't help, refer to [Diagnosis](/manuals/guides/troubleshooting/diagnosis).
|
||||
::: warning Попередження
|
||||
Якщо помилки не вказані в списку або якщо інструкції не допомагають, зверніться до розділу [Діагностика](/ua/manuals/guides/troubleshooting/diagnosis).
|
||||
:::
|
||||
@@ -1,63 +1,62 @@
|
||||
---
|
||||
title: Diagnosis
|
||||
description: Facing issues with a source or the app? Follow these steps to troubleshoot and find solutions.
|
||||
title: Діагностика
|
||||
description: Виникли проблеми з джерелом або додатком? Виконайте ці кроки, щоб усунути несправності та знайти рішення.
|
||||
---
|
||||
|
||||
# Diagnosis
|
||||
# Діагностика
|
||||
|
||||
Facing issues with a source or the app?
|
||||
Follow these steps to troubleshoot and find solutions.
|
||||
Виникли проблеми з джерелом або додатком? Виконайте ці кроки, щоб усунути несправності та знайти рішення.
|
||||
|
||||
## Primary diagnosis
|
||||
## Первинний діагноз
|
||||
|
||||
1. **Update app**: Go to <nav to="about"> and tap **Check for updates**.
|
||||
1. **Manual series refresh**: Go to <nav to="main_feed"> and drag down to manually refresh problematic series.
|
||||
1. **Test other series**: Try different series from the same source.
|
||||
1. **Update WebView**: Ensure your WebView is current.
|
||||
1. **Public WebView**: Attempt opening series in public WebView. Solve for CAPTCHA or Cloudflare protection if needed.
|
||||
1. **Change connection**: Switch networks (Wi-Fi, mobile data, VPN) and confirm IP change.
|
||||
1. **Collaborative check**: Get others to replicate the error.
|
||||
1. **Source status**: Verify the source's status in a browser.
|
||||
1. **Retry button**: Look for a retry button on the series page.
|
||||
1. **Advanced settings**: Under <nav to="data">, try these options:
|
||||
- Clear thumbnails cache
|
||||
- Clear page cache
|
||||
- Clear network cache
|
||||
- Clear cookies
|
||||
- Under <nav to="network">, try to enable DNS over HTTPS
|
||||
1. **Download issues**: Delete the queue and retry downloads.
|
||||
1. **Restart Kotatsu**: Force close and reopen the app.
|
||||
1. **Оновити програму**: Перейдіть до <nav to="about"> і натисніть **Перевірити наявність оновлень**.
|
||||
1. **Оновлення серій вручну**: Перейдіть до <nav to="main_feed"> і перетягніть вниз, щоб вручну оновити проблемні серії.
|
||||
1. **Перевірити інші серії**: Спробуйте інші серії з того самого джерела.
|
||||
1. **Оновити WebView**: Переконайтеся, що ваш WebView актуальний.
|
||||
1. **Публічний WebView**: Спробуйте відкрити серію у загальнодоступному WebView. Вирішіть проблему за допомогою CAPTCHA або захисту Cloudflare, якщо це необхідно.
|
||||
1. **Змінити з'єднання**: Переключити мережі (Wi-Fi, мобільні дані, VPN) і підтвердити зміну IP-адреси.
|
||||
1. **Спільна перевірка**: Попросіть інших повторити помилку.
|
||||
1. **Статус джерела**: Перевірте статус джерела у браузері.
|
||||
1. **Кнопка повтору**: Натисніть кнопку повтору на сторінці серії.
|
||||
1. **Розширені налаштування**: У розділі <nav to="data"> спробуйте ці параметри:
|
||||
- Очистити кеш мініатюр
|
||||
- Очистити кеш сторінок
|
||||
- Очистити кеш мережі
|
||||
- Очистити файли cookie
|
||||
- У розділі <nav to="network"> спробуйте увімкнути DNS через HTTPS
|
||||
1. **Проблеми із завантаженням**: Видаліть чергу та повторіть завантаження.
|
||||
1. **Перезапустіть Kotatsu**: Примусово закрити та перезапустити програму.
|
||||
|
||||
If any of these solutions help, go to [Personalized Issue](#personalized-issue).
|
||||
If it is not just you, go to [Widespread Issue](#widespread-issue).
|
||||
Якщо будь-яке з цих рішень допоможе, перейдіть до [Персоналізована проблема](#personalized-issue).
|
||||
Якщо проблема не лише у вас, перейдіть до [Поширена проблема](#widespread-issue).
|
||||
|
||||
If none of these solutions help, try asking in our [Telegram group](https://t.me/kotatsuapp).
|
||||
Якщо жодне з цих рішень не допомогло, спробуйте запитати в нашій [Telegram-групі](https://t.me/kotatsuapp).
|
||||
|
||||
State your app version and the source, series, and chapter with the problem.
|
||||
Вкажіть версію програми, а також джерело, серію та розділ, в якому виникла проблема.
|
||||
|
||||
::: tip An app update may fix your issue
|
||||
Wait or check for an app update if you have not already.
|
||||
There are no ETAs for updates.
|
||||
::: tip Оновлення програми може вирішити вашу проблему
|
||||
Зачекайте або перевірте оновлення додатку, якщо ви ще не зробили цього.
|
||||
Очікуваних дат для оновлень немає.
|
||||
:::
|
||||
|
||||
## Personalized issue
|
||||
If you're the only one facing a problem, you might be encountering an IP ban, or other countermeasures set by website owners against programs like **Kotatsu**.
|
||||
## Персоналізована проблема
|
||||
Якщо ви єдиний, хто зіткнувся з проблемою, можливо, ви зіткнулися з забороною IP-адреси або іншими контрзаходами, встановленими власниками веб-сайтів проти таких програм, як **Kotatsu**.
|
||||
|
||||
**To minimize future issues:**
|
||||
- Avoid using downloads with the source.
|
||||
- Reduce the number of series in your favourites/history from that source.
|
||||
**Щоб мінімізувати майбутні проблеми:**
|
||||
- Уникайте завантажень з джерела.
|
||||
- Зменшіть кількість серії у вибраному/історії з цього джерела.
|
||||
|
||||
::: warning
|
||||
These are general guidelines as each site has its specific undisclosed limits and triggers.
|
||||
::: warning Попередження
|
||||
Це загальні рекомендації, оскільки кожен сайт має свої специфічні нерозкриті ліміти та тригери.
|
||||
:::
|
||||
|
||||
## Widespread issue
|
||||
When everyone experiences a problem, it could be with the extension or app:
|
||||
## Поширена проблема
|
||||
Коли у всіх виникають проблеми, це може бути пов'язано з джерелом або додатком:
|
||||
|
||||
1. Check open issues [for the app](https://github.com/KotatsuApp/Kotatsu/issues) and/or [**parsers**](https://github.com/KotatsuApp/kotatsu-parsers/issues).
|
||||
1. Check closed issues ([app](https://github.com/KotatsuApp/Kotatsu/issues?q=is%3Aissue+is%3Aclosed)/[parsers](https://github.com/KotatsuApp/kotatsu-parsers/issues?q=is%3Aissue+is%3Aclosed)) in case it's resolved but not yet released.
|
||||
1. If not found, create a new issue.
|
||||
1. Перевірте відкриті проблеми [для додатку](https://github.com/KotatsuApp/Kotatsu/issues) та/або [**парсерів**](https://github.com/KotatsuApp/kotatsu-parsers/issues).
|
||||
1. Перевірте закриті проблеми ([додаток](https://github.com/KotatsuApp/Kotatsu/issues?q=is%3Aissue+is%3Aclosed)/[парсери](https://github.com/KotatsuApp/kotatsu-parsers/issues?q=is%3Aissue+is%3Aclosed)), якщо вони вирішені, але ще не випущені.
|
||||
1. Якщо не знайдено, створіть нову проблему.
|
||||
|
||||
::: warning
|
||||
If the site itself is problematic, patience is the only solution until it becomes functional again.
|
||||
::: warning Попередження
|
||||
Якщо сайт сам по собі проблематичний, терпіння - єдине рішення, поки він не стане функціональним.
|
||||
:::
|
||||
Reference in New Issue
Block a user