Compare commits

..

294 Commits
4.2.1 ... 4.4.0

Author SHA1 Message Date
Athou
9de19e9f2d release 4.4.0 2024-04-15 16:40:10 +02:00
Athou
fc2eac7f2c align star vertically with feed favicon 2024-04-14 19:46:27 +02:00
Athou
bc6fc01c3f set on_desktop as the default value for icon because we don't have a lot of room on mobile 2024-04-14 18:40:43 +02:00
Athou
85ae70f278 fix combobox labels not displayed correctly 2024-04-14 18:25:45 +02:00
Athou
e415d1d945 remove dependency on bouncycastle 2024-04-14 17:36:35 +02:00
Jérémie Panzer
acb06c3405 Merge pull request #1344 from Athou/dependabot/npm_and_yarn/commafeed-client/lingui-be06312aa6
Bump the lingui group in /commafeed-client with 5 updates
2024-04-14 17:34:04 +02:00
Jérémie Panzer
a137ecb293 Merge pull request #1343 from Athou/dependabot/npm_and_yarn/commafeed-client/vitest-1.5.0
Bump vitest from 1.3.1 to 1.5.0 in /commafeed-client
2024-04-14 17:33:57 +02:00
dependabot[bot]
b4c1aea7c4 Bump the lingui group in /commafeed-client with 5 updates
Bumps the lingui group in /commafeed-client with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@lingui/core](https://github.com/lingui/js-lingui) | `4.7.1` | `4.10.0` |
| [@lingui/macro](https://github.com/lingui/js-lingui) | `4.7.1` | `4.10.0` |
| [@lingui/react](https://github.com/lingui/js-lingui) | `4.7.1` | `4.10.0` |
| [@lingui/cli](https://github.com/lingui/js-lingui) | `4.7.1` | `4.10.0` |
| [@lingui/vite-plugin](https://github.com/lingui/js-lingui) | `4.7.1` | `4.10.0` |


Updates `@lingui/core` from 4.7.1 to 4.10.0
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.1...v4.10.0)

Updates `@lingui/macro` from 4.7.1 to 4.10.0
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.1...v4.10.0)

Updates `@lingui/react` from 4.7.1 to 4.10.0
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.1...v4.10.0)

Updates `@lingui/cli` from 4.7.1 to 4.10.0
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.1...v4.10.0)

Updates `@lingui/vite-plugin` from 4.7.1 to 4.10.0
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.1...v4.10.0)

---
updated-dependencies:
- dependency-name: "@lingui/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lingui
- dependency-name: "@lingui/macro"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lingui
- dependency-name: "@lingui/react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: lingui
- dependency-name: "@lingui/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: lingui
- dependency-name: "@lingui/vite-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: lingui
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 15:22:41 +00:00
dependabot[bot]
a0d86ce94a Bump vitest from 1.3.1 to 1.5.0 in /commafeed-client
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.3.1 to 1.5.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.5.0/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 15:21:20 +00:00
Jérémie Panzer
6ce0e2f151 Merge pull request #1342 from Athou/dependabot/npm_and_yarn/commafeed-client/typescript-5.4.5
Bump typescript from 5.4.2 to 5.4.5 in /commafeed-client
2024-04-14 17:20:31 +02:00
dependabot[bot]
628f7aca90 Bump typescript from 5.4.2 to 5.4.5 in /commafeed-client
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.2 to 5.4.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.2...v5.4.5)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 15:20:26 +00:00
Jérémie Panzer
a4a7d53670 Merge pull request #1346 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-5.2.8
Bump vite from 5.2.7 to 5.2.8 in /commafeed-client
2024-04-14 17:19:40 +02:00
Jérémie Panzer
e76e7879cd Merge pull request #1348 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-dom-18.2.25
Bump @types/react-dom from 18.2.21 to 18.2.25 in /commafeed-client
2024-04-14 17:19:33 +02:00
Jérémie Panzer
7a00e743eb Merge pull request #1347 from Athou/dependabot/npm_and_yarn/commafeed-client/mantine-49597fe963
Bump the mantine group in /commafeed-client with 6 updates
2024-04-14 17:18:53 +02:00
Athou
6e0e692ae8 generate new translations 2024-04-14 17:16:32 +02:00
dependabot[bot]
321b3d4819 Bump the mantine group in /commafeed-client with 6 updates
Bumps the mantine group in /commafeed-client with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core) | `7.6.1` | `7.8.0` |
| [@mantine/form](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form) | `7.6.1` | `7.8.0` |
| [@mantine/hooks](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/hooks) | `7.6.1` | `7.8.0` |
| [@mantine/modals](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/modals) | `7.6.1` | `7.8.0` |
| [@mantine/notifications](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/notifications) | `7.6.1` | `7.8.0` |
| [@mantine/spotlight](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/spotlight) | `7.6.1` | `7.8.0` |


Updates `@mantine/core` from 7.6.1 to 7.8.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.8.0/packages/@mantine/core)

Updates `@mantine/form` from 7.6.1 to 7.8.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.8.0/packages/@mantine/form)

Updates `@mantine/hooks` from 7.6.1 to 7.8.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.8.0/packages/@mantine/hooks)

Updates `@mantine/modals` from 7.6.1 to 7.8.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.8.0/packages/@mantine/modals)

Updates `@mantine/notifications` from 7.6.1 to 7.8.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.8.0/packages/@mantine/notifications)

Updates `@mantine/spotlight` from 7.6.1 to 7.8.0
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.8.0/packages/@mantine/spotlight)

---
updated-dependencies:
- dependency-name: "@mantine/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/form"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/hooks"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/modals"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/notifications"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/spotlight"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 15:12:55 +00:00
Athou
211708255e actually save new settings 2024-04-14 16:59:04 +02:00
Athou
dcc32cb539 use a random available port for tests 2024-04-14 16:49:26 +02:00
dependabot[bot]
c9367afd9d Bump vite from 5.2.7 to 5.2.8 in /commafeed-client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.7 to 5.2.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.8/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 14:29:58 +00:00
dependabot[bot]
af724fbb87 Bump @types/react-dom from 18.2.21 to 18.2.25 in /commafeed-client
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 18.2.21 to 18.2.25.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 14:29:56 +00:00
Jérémie Panzer
9d052f2f59 Merge pull request #1349 from Athou/dependabot/npm_and_yarn/commafeed-client/typescript-eslint/eslint-plugin-7.6.0
Bump @typescript-eslint/eslint-plugin from 7.5.0 to 7.6.0 in /commafeed-client
2024-04-14 16:29:34 +02:00
Jérémie Panzer
e9a9334c03 Merge pull request #1345 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.78
Bump @types/react from 18.2.64 to 18.2.78 in /commafeed-client
2024-04-14 16:29:19 +02:00
Jérémie Panzer
80c9adcf0f Merge pull request #1319 from Athou/dependabot/npm_and_yarn/commafeed-client/reduxjs/toolkit-2.2.3
Bump @reduxjs/toolkit from 2.2.1 to 2.2.3 in /commafeed-client
2024-04-14 16:28:59 +02:00
Jérémie Panzer
13c402d9d0 Merge pull request #1320 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-tsconfig-paths-4.3.2
Bump vite-tsconfig-paths from 4.3.1 to 4.3.2 in /commafeed-client
2024-04-14 16:28:53 +02:00
Jérémie Panzer
5d5dc67a46 Merge pull request #1323 from Athou/dependabot/npm_and_yarn/commafeed-client/fontsource/open-sans-5.0.27
Bump @fontsource/open-sans from 5.0.26 to 5.0.27 in /commafeed-client
2024-04-14 16:28:45 +02:00
Jérémie Panzer
f2330d8346 Merge pull request #1328 from Athou/dependabot/npm_and_yarn/commafeed-client/tss-react-4.9.6
Bump tss-react from 4.9.4 to 4.9.6 in /commafeed-client
2024-04-14 16:28:38 +02:00
Jérémie Panzer
ee061f3362 Merge pull request #1350 from Athou/dependabot/maven/commons-io-commons-io-2.16.1
Bump commons-io:commons-io from 2.16.0 to 2.16.1
2024-04-14 16:27:45 +02:00
Jérémie Panzer
e071cb457f Merge pull request #1310 from Athou/dependabot/maven/io.swagger.core.v3-swagger-maven-plugin-jakarta-2.2.21
Bump io.swagger.core.v3:swagger-maven-plugin-jakarta from 2.2.20 to 2.2.21
2024-04-14 16:27:33 +02:00
Jérémie Panzer
7972dec827 Merge pull request #1311 from Athou/dependabot/maven/io.github.git-commit-id-git-commit-id-maven-plugin-8.0.2
Bump io.github.git-commit-id:git-commit-id-maven-plugin from 8.0.1 to 8.0.2
2024-04-14 16:27:27 +02:00
Jérémie Panzer
41c0200270 Merge pull request #1308 from Athou/dependabot/maven/io.swagger.core.v3-swagger-annotations-2.2.21
Bump io.swagger.core.v3:swagger-annotations from 2.2.20 to 2.2.21
2024-04-14 16:27:18 +02:00
Jérémie Panzer
9e5fa5472a Merge pull request #1307 from Athou/dependabot/maven/io.github.hakky54-sslcontext-kickstart-for-apache5-8.3.4
Bump io.github.hakky54:sslcontext-kickstart-for-apache5 from 8.3.2 to 8.3.4
2024-04-14 16:27:10 +02:00
Jérémie Panzer
0ebab27588 Merge pull request #1297 from Athou/dependabot/maven/com.google.apis-google-api-services-youtube-v3-rev20240310-2.0.0
Bump com.google.apis:google-api-services-youtube from v3-rev20240303-2.0.0 to v3-rev20240310-2.0.0
2024-04-14 16:26:55 +02:00
Athou
0d081bc47e add button in the header to star entry (#1025) 2024-04-14 16:22:51 +02:00
dependabot[bot]
92853a164a Bump @typescript-eslint/eslint-plugin in /commafeed-client
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.5.0 to 7.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.6.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 09:16:34 +00:00
Jérémie Panzer
5d75885352 Merge pull request #1341 from Athou/dependabot/maven/com.microsoft.playwright-playwright-1.43.0
Bump com.microsoft.playwright:playwright from 1.41.2 to 1.43.0
2024-04-14 11:15:40 +02:00
Jérémie Panzer
83b8886846 Merge pull request #1340 from Athou/dependabot/maven/org.apache.maven.plugins-maven-jar-plugin-3.4.0
Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.0
2024-04-14 11:15:33 +02:00
Jérémie Panzer
f3869f92dc Merge pull request #1339 from Athou/dependabot/npm_and_yarn/commafeed-client/eslint-config-love-47.0.0
Bump eslint-config-love from 44.0.0 to 47.0.0 in /commafeed-client
2024-04-14 11:15:26 +02:00
dependabot[bot]
b1c1f2adc4 Bump commons-io:commons-io from 2.16.0 to 2.16.1
Bumps commons-io:commons-io from 2.16.0 to 2.16.1.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 09:12:37 +00:00
Jérémie Panzer
fd8c6c5531 Update dependabot.yml 2024-04-14 11:11:54 +02:00
dependabot[bot]
b37346ad20 Bump @types/react from 18.2.64 to 18.2.78 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.64 to 18.2.78.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 09:09:30 +00:00
dependabot[bot]
1b2e2e6915 Bump com.microsoft.playwright:playwright from 1.41.2 to 1.43.0
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.41.2 to 1.43.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.41.2...v1.43.0)

---
updated-dependencies:
- dependency-name: com.microsoft.playwright:playwright
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 09:08:52 +00:00
dependabot[bot]
f483d569f0 Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.0
Bumps [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/apache/maven-jar-plugin/releases)
- [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.3.0...maven-jar-plugin-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-jar-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 09:08:47 +00:00
dependabot[bot]
b9bbcf1e60 Bump eslint-config-love from 44.0.0 to 47.0.0 in /commafeed-client
Bumps [eslint-config-love](https://github.com/mightyiam/eslint-config-love) from 44.0.0 to 47.0.0.
- [Release notes](https://github.com/mightyiam/eslint-config-love/releases)
- [Changelog](https://github.com/mightyiam/eslint-config-love/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mightyiam/eslint-config-love/compare/v44.0.0...v47.0.0)

---
updated-dependencies:
- dependency-name: eslint-config-love
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-14 09:08:43 +00:00
Athou
3097272179 add button in the header to open entry link (#1333) 2024-04-05 13:38:07 +02:00
Athou
d0b92774bc remove unnecessary curly braces automatically 2024-04-04 08:24:05 +02:00
dependabot[bot]
c82a142c96 Bump vite-tsconfig-paths from 4.3.1 to 4.3.2 in /commafeed-client
Bumps [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases)
- [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v4.3.1...v4.3.2)

---
updated-dependencies:
- dependency-name: vite-tsconfig-paths
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 20:27:13 +00:00
Jérémie Panzer
5b43d416fc Merge pull request #1326 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-5.2.7
Bump vite from 5.1.6 to 5.2.7 in /commafeed-client
2024-04-03 22:26:14 +02:00
Athou
40e1c70fca don't try to mark entries that are not markable (#1303) 2024-04-03 15:47:01 +02:00
Athou
d610f980c7 fix typo 2024-04-03 09:11:06 +02:00
dependabot[bot]
68c8ce1ef3 Bump @reduxjs/toolkit from 2.2.1 to 2.2.3 in /commafeed-client
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.2.1 to 2.2.3.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.2.1...v2.2.3)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-02 19:54:59 +00:00
dependabot[bot]
218a602c0b Bump vite from 5.1.6 to 5.2.7 in /commafeed-client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.6 to 5.2.7.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.7/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-02 19:54:07 +00:00
Jérémie Panzer
cad65e953e Merge pull request #1329 from Athou/dependabot/npm_and_yarn/commafeed-client/axios-1.6.8
Bump axios from 1.6.7 to 1.6.8 in /commafeed-client
2024-04-02 21:54:00 +02:00
Athou
39bc9713e4 update eslint-plugin 2024-04-02 21:52:21 +02:00
Jérémie Panzer
812da21b6f Merge pull request #1330 from Athou/dependabot/npm_and_yarn/commafeed-client/eslint-plugin-react-7.34.1
Bump eslint-plugin-react from 7.34.0 to 7.34.1 in /commafeed-client
2024-04-02 21:44:30 +02:00
Athou
a756783604 readd eslint-config-love now that it has been updated 2024-04-02 21:44:06 +02:00
Athou
16199c5b54 add native browser sharing (#1255) 2024-04-01 20:23:44 +02:00
Jérémie Panzer
3964977a0a Merge pull request #1309 from Athou/dependabot/maven/org.apache.maven.plugins-maven-compiler-plugin-3.13.0
Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0
2024-04-01 20:20:54 +02:00
Jérémie Panzer
f5b4d037ef Merge pull request #1298 from Athou/dependabot/maven/org.postgresql-postgresql-42.7.3
Bump org.postgresql:postgresql from 42.7.2 to 42.7.3
2024-04-01 20:20:46 +02:00
Jérémie Panzer
5929581fee Merge pull request #1316 from Athou/dependabot/maven/commons-io-commons-io-2.16.0
Bump commons-io:commons-io from 2.15.1 to 2.16.0
2024-04-01 20:20:29 +02:00
Jérémie Panzer
92d0d6af47 Merge pull request #1312 from Athou/dependabot/maven/org.projectlombok-lombok-1.18.32
Bump org.projectlombok:lombok from 1.18.30 to 1.18.32
2024-04-01 20:20:22 +02:00
dependabot[bot]
413253e4a9 Bump eslint-plugin-react from 7.34.0 to 7.34.1 in /commafeed-client
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.0 to 7.34.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/v7.34.1/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.0...v7.34.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 09:48:49 +00:00
dependabot[bot]
9c98e7eca1 Bump axios from 1.6.7 to 1.6.8 in /commafeed-client
Bumps [axios](https://github.com/axios/axios) from 1.6.7 to 1.6.8.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.7...v1.6.8)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 09:48:36 +00:00
dependabot[bot]
d3d1aba834 Bump tss-react from 4.9.4 to 4.9.6 in /commafeed-client
Bumps [tss-react](https://github.com/garronej/tss-react) from 4.9.4 to 4.9.6.
- [Release notes](https://github.com/garronej/tss-react/releases)
- [Commits](https://github.com/garronej/tss-react/compare/v4.9.4...v4.9.6)

---
updated-dependencies:
- dependency-name: tss-react
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 09:48:23 +00:00
dependabot[bot]
6dd3ce2e72 Bump @fontsource/open-sans from 5.0.26 to 5.0.27 in /commafeed-client
Bumps [@fontsource/open-sans](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/open-sans) from 5.0.26 to 5.0.27.
- [Changelog](https://github.com/fontsource/font-files/blob/main/fonts/google/open-sans/CHANGELOG.md)
- [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/open-sans)

---
updated-dependencies:
- dependency-name: "@fontsource/open-sans"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 09:46:51 +00:00
dependabot[bot]
398648ac91 Bump commons-io:commons-io from 2.15.1 to 2.16.0
Bumps commons-io:commons-io from 2.15.1 to 2.16.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 09:18:38 +00:00
Jérémie Panzer
28ef9ccfd2 Merge pull request #1314 from WangLei1993/master
Chinese translations
2024-03-28 23:22:32 +01:00
WangLei1993
acab5295cc change and add some Chinese translation 2024-03-29 05:09:04 +08:00
WangLei1993
3d73435446 change and add some Chinese translation 2024-03-29 05:00:39 +08:00
Jérémie Panzer
eab08d2197 Merge pull request #1313 from maaaathis/patch-1
Update german (DE) locale
2024-03-27 19:15:00 +01:00
mathis
d13b96edd1 fix src/pages/app/AboutPage.tsx message 2024-03-27 18:31:05 +01:00
mathis
624aa9cb23 fix src/pages/app/FeedDetailsPage.tsx message 2024-03-27 18:30:36 +01:00
mathis
e76ee6dc9b update german messages 2024-03-27 18:15:30 +01:00
dependabot[bot]
9bf7dbe893 Bump org.projectlombok:lombok from 1.18.30 to 1.18.32
Bumps [org.projectlombok:lombok](https://github.com/projectlombok/lombok) from 1.18.30 to 1.18.32.
- [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown)
- [Commits](https://github.com/projectlombok/lombok/compare/v1.18.30...v1.18.32)

---
updated-dependencies:
- dependency-name: org.projectlombok:lombok
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 09:29:31 +00:00
dependabot[bot]
0610080d2a Bump io.github.git-commit-id:git-commit-id-maven-plugin
Bumps [io.github.git-commit-id:git-commit-id-maven-plugin](https://github.com/git-commit-id/git-commit-id-maven-plugin) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/git-commit-id/git-commit-id-maven-plugin/releases)
- [Commits](https://github.com/git-commit-id/git-commit-id-maven-plugin/compare/v8.0.1...v8.0.2)

---
updated-dependencies:
- dependency-name: io.github.git-commit-id:git-commit-id-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 09:29:24 +00:00
dependabot[bot]
19d91cf07f Bump io.swagger.core.v3:swagger-maven-plugin-jakarta
Bumps io.swagger.core.v3:swagger-maven-plugin-jakarta from 2.2.20 to 2.2.21.

---
updated-dependencies:
- dependency-name: io.swagger.core.v3:swagger-maven-plugin-jakarta
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 09:29:20 +00:00
dependabot[bot]
d9b9b8c3da Bump org.apache.maven.plugins:maven-compiler-plugin
Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.12.1 to 3.13.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.12.1...maven-compiler-plugin-3.13.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 09:29:18 +00:00
dependabot[bot]
0889dc145c Bump io.swagger.core.v3:swagger-annotations from 2.2.20 to 2.2.21
Bumps io.swagger.core.v3:swagger-annotations from 2.2.20 to 2.2.21.

---
updated-dependencies:
- dependency-name: io.swagger.core.v3:swagger-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 09:29:14 +00:00
dependabot[bot]
113a8d49f0 Bump io.github.hakky54:sslcontext-kickstart-for-apache5
Bumps [io.github.hakky54:sslcontext-kickstart-for-apache5](https://github.com/Hakky54/sslcontext-kickstart) from 8.3.2 to 8.3.4.
- [Changelog](https://github.com/Hakky54/sslcontext-kickstart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Hakky54/sslcontext-kickstart/compare/v8.3.2...v8.3.4)

---
updated-dependencies:
- dependency-name: io.github.hakky54:sslcontext-kickstart-for-apache5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 09:29:09 +00:00
Jérémie Panzer
f60a968fb1 Merge pull request #1302 from hywax/master
Update RU locale
2024-03-23 11:28:17 +01:00
hywax
02b060178b Update RU locale №4 2024-03-22 19:20:53 +05:00
hywax
b1f3afd494 Update RU locale №3 2024-03-22 19:17:14 +05:00
hywax
35acac7b93 Update RU locale №2 2024-03-22 19:02:00 +05:00
hywax
9334e7b7a8 Update RU locale 2024-03-22 13:54:48 +05:00
dependabot[bot]
f424314b0d Bump org.postgresql:postgresql from 42.7.2 to 42.7.3
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.2 to 42.7.3.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.2...REL42.7.3)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 09:30:37 +00:00
dependabot[bot]
c4a9025160 Bump com.google.apis:google-api-services-youtube
Bumps com.google.apis:google-api-services-youtube from v3-rev20240303-2.0.0 to v3-rev20240310-2.0.0.

---
updated-dependencies:
- dependency-name: com.google.apis:google-api-services-youtube
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 09:30:33 +00:00
Jérémie Panzer
85a134ef53 Merge pull request #1295 from Athou/dependabot/npm_and_yarn/commafeed-client/follow-redirects-1.15.6
Bump follow-redirects from 1.15.4 to 1.15.6 in /commafeed-client
2024-03-17 10:19:06 +01:00
dependabot[bot]
db1fe0fe91 Bump follow-redirects from 1.15.4 to 1.15.6 in /commafeed-client
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-16 22:39:20 +00:00
Jérémie Panzer
30a45fc329 Merge pull request #1285 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-dom-18.2.21
Bump @types/react-dom from 18.2.19 to 18.2.21 in /commafeed-client
2024-03-11 17:43:43 +01:00
Jérémie Panzer
ce90fc356c Merge pull request #1294 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-5.1.6
Bump vite from 5.1.4 to 5.1.6 in /commafeed-client
2024-03-11 17:43:18 +01:00
Athou
4f50e34b21 npm packages change too frequently and are only used in the client, reduce interval since it's not critical 2024-03-11 17:42:51 +01:00
Jérémie Panzer
8ccf148eaa Merge pull request #1290 from Athou/dependabot/npm_and_yarn/commafeed-client/monaco-editor-0.47.0
Bump monaco-editor from 0.46.0 to 0.47.0 in /commafeed-client
2024-03-11 17:40:40 +01:00
dependabot[bot]
fa343bda20 Bump @types/react-dom from 18.2.19 to 18.2.21 in /commafeed-client
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 18.2.19 to 18.2.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 16:39:57 +00:00
dependabot[bot]
a66f8d7065 Bump vite from 5.1.4 to 5.1.6 in /commafeed-client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.4 to 5.1.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 16:39:33 +00:00
Jérémie Panzer
819003e43c Merge pull request #1292 from Athou/dependabot/npm_and_yarn/commafeed-client/fontsource/open-sans-5.0.26
Bump @fontsource/open-sans from 5.0.25 to 5.0.26 in /commafeed-client
2024-03-11 17:39:17 +01:00
Jérémie Panzer
27800296fb Merge pull request #1291 from Athou/dependabot/npm_and_yarn/commafeed-client/typescript-eslint/eslint-plugin-7.1.1
Bump @typescript-eslint/eslint-plugin from 7.1.0 to 7.1.1 in /commafeed-client
2024-03-11 17:38:54 +01:00
Jérémie Panzer
b869ef072a Merge pull request #1287 from Athou/dependabot/npm_and_yarn/commafeed-client/react-router-dom-6.22.3
Bump react-router-dom from 6.22.2 to 6.22.3 in /commafeed-client
2024-03-11 17:38:46 +01:00
Jérémie Panzer
03dfee468c Merge pull request #1284 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.64
Bump @types/react from 18.2.61 to 18.2.64 in /commafeed-client
2024-03-11 17:38:33 +01:00
Jérémie Panzer
d3275074bb Merge pull request #1286 from Athou/dependabot/npm_and_yarn/commafeed-client/typescript-5.4.2
Bump typescript from 5.3.3 to 5.4.2 in /commafeed-client
2024-03-11 11:52:13 +01:00
Jérémie Panzer
cc0965f69c Merge pull request #1293 from Athou/dependabot/github_actions/softprops/action-gh-release-2
Bump softprops/action-gh-release from 1 to 2
2024-03-11 10:49:02 +01:00
Jérémie Panzer
8e2fa3e153 Merge pull request #1289 from Athou/dependabot/maven/io.github.git-commit-id-git-commit-id-maven-plugin-8.0.1
Bump io.github.git-commit-id:git-commit-id-maven-plugin from 8.0.0 to 8.0.1
2024-03-11 10:34:27 +01:00
dependabot[bot]
df10bd7351 Bump softprops/action-gh-release from 1 to 2
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:31:04 +00:00
dependabot[bot]
080289ca4e Bump @fontsource/open-sans from 5.0.25 to 5.0.26 in /commafeed-client
Bumps [@fontsource/open-sans](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/open-sans) from 5.0.25 to 5.0.26.
- [Changelog](https://github.com/fontsource/font-files/blob/main/fonts/google/open-sans/CHANGELOG.md)
- [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/open-sans)

---
updated-dependencies:
- dependency-name: "@fontsource/open-sans"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:26:09 +00:00
dependabot[bot]
28b821f085 Bump @typescript-eslint/eslint-plugin in /commafeed-client
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.1.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:25:55 +00:00
dependabot[bot]
700f3ec029 Bump monaco-editor from 0.46.0 to 0.47.0 in /commafeed-client
Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.46.0 to 0.47.0.
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/microsoft/monaco-editor/compare/v0.46.0...v0.47.0)

---
updated-dependencies:
- dependency-name: monaco-editor
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:25:15 +00:00
dependabot[bot]
d7b3ed0baa Bump io.github.git-commit-id:git-commit-id-maven-plugin
Bumps [io.github.git-commit-id:git-commit-id-maven-plugin](https://github.com/git-commit-id/git-commit-id-maven-plugin) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/git-commit-id/git-commit-id-maven-plugin/releases)
- [Commits](https://github.com/git-commit-id/git-commit-id-maven-plugin/compare/v8.0.0...v8.0.1)

---
updated-dependencies:
- dependency-name: io.github.git-commit-id:git-commit-id-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:25:07 +00:00
dependabot[bot]
f1711014e5 Bump react-router-dom from 6.22.2 to 6.22.3 in /commafeed-client
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.2 to 6.22.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.3/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:24:27 +00:00
dependabot[bot]
29f2270443 Bump typescript from 5.3.3 to 5.4.2 in /commafeed-client
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.3.3 to 5.4.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:24:02 +00:00
dependabot[bot]
39ee4e771c Bump @types/react from 18.2.61 to 18.2.64 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.61 to 18.2.64.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 09:23:25 +00:00
Jérémie Panzer
6e4d2d57fa Merge pull request #1283 from Athou/dependabot/maven/io.github.git-commit-id-git-commit-id-maven-plugin-8.0.0
Bump io.github.git-commit-id:git-commit-id-maven-plugin from 7.0.0 to 8.0.0
2024-03-07 20:02:15 +01:00
Jérémie Panzer
7cd850a2e8 Merge pull request #1282 from Athou/dependabot/maven/io.dropwizard-dropwizard-dependencies-4.0.7
Bump io.dropwizard:dropwizard-dependencies from 4.0.6 to 4.0.7
2024-03-07 20:01:32 +01:00
Jérémie Panzer
3280023823 Merge pull request #1281 from Athou/dependabot/maven/com.google.apis-google-api-services-youtube-v3-rev20240303-2.0.0
Bump com.google.apis:google-api-services-youtube from v3-rev20240225-2.0.0 to v3-rev20240303-2.0.0
2024-03-07 20:01:19 +01:00
Jérémie Panzer
3646a9610e Merge pull request #1280 from Athou/dependabot/maven/redis.clients-jedis-5.1.2
Bump redis.clients:jedis from 5.1.1 to 5.1.2
2024-03-07 20:00:51 +01:00
dependabot[bot]
ab639b3ee6 Bump io.github.git-commit-id:git-commit-id-maven-plugin
Bumps [io.github.git-commit-id:git-commit-id-maven-plugin](https://github.com/git-commit-id/git-commit-id-maven-plugin) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/git-commit-id/git-commit-id-maven-plugin/releases)
- [Commits](https://github.com/git-commit-id/git-commit-id-maven-plugin/compare/v7.0.0...v8.0.0)

---
updated-dependencies:
- dependency-name: io.github.git-commit-id:git-commit-id-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 18:55:21 +00:00
dependabot[bot]
c85ba3fa75 Bump io.dropwizard:dropwizard-dependencies from 4.0.6 to 4.0.7
Bumps io.dropwizard:dropwizard-dependencies from 4.0.6 to 4.0.7.

---
updated-dependencies:
- dependency-name: io.dropwizard:dropwizard-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 18:55:15 +00:00
dependabot[bot]
193c2aecfb Bump com.google.apis:google-api-services-youtube
Bumps com.google.apis:google-api-services-youtube from v3-rev20240225-2.0.0 to v3-rev20240303-2.0.0.

---
updated-dependencies:
- dependency-name: com.google.apis:google-api-services-youtube
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 18:55:10 +00:00
dependabot[bot]
336de875ca Bump redis.clients:jedis from 5.1.1 to 5.1.2
Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/redis/jedis/releases)
- [Commits](https://github.com/redis/jedis/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: redis.clients:jedis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 18:54:08 +00:00
Athou
eb5012f67e accept .opml extension for opml import 2024-03-05 20:57:08 +01:00
Athou
5c764b9b25 use .opml extension for opml file export 2024-03-05 20:56:51 +01:00
Athou
5da94a7ed0 release 4.3.3 2024-03-05 18:33:44 +01:00
Athou
dfb3006c47 fix OMPL import (#1279) 2024-03-05 18:32:52 +01:00
Athou
e626f36c0a workaround no longer needed 2024-03-05 17:56:52 +01:00
Athou
ff81749559 release 4.3.2 2024-03-04 22:28:03 +01:00
Athou
34db9baa7b add support for unix sockets (#1278) 2024-03-04 21:12:24 +01:00
Jérémie Panzer
541b5ef085 Merge pull request #1274 from Athou/dependabot/npm_and_yarn/commafeed-client/emotion/react-11.11.4
Bump @emotion/react from 11.11.3 to 11.11.4 in /commafeed-client
2024-03-04 10:34:00 +01:00
Jérémie Panzer
a974164ac8 Merge pull request #1275 from Athou/dependabot/npm_and_yarn/commafeed-client/typescript-eslint/eslint-plugin-7.1.0
Bump @typescript-eslint/eslint-plugin from 7.0.2 to 7.1.0 in /commafeed-client
2024-03-04 10:21:47 +01:00
Jérémie Panzer
9ca8358900 Merge pull request #1277 from Athou/dependabot/npm_and_yarn/commafeed-client/eslint-plugin-react-7.34.0
Bump eslint-plugin-react from 7.33.2 to 7.34.0 in /commafeed-client
2024-03-04 10:21:35 +01:00
dependabot[bot]
2bd7b46f11 Bump @emotion/react from 11.11.3 to 11.11.4 in /commafeed-client
Bumps [@emotion/react](https://github.com/emotion-js/emotion) from 11.11.3 to 11.11.4.
- [Release notes](https://github.com/emotion-js/emotion/releases)
- [Changelog](https://github.com/emotion-js/emotion/blob/main/CHANGELOG.md)
- [Commits](https://github.com/emotion-js/emotion/compare/@emotion/react@11.11.3...@emotion/react@11.11.4)

---
updated-dependencies:
- dependency-name: "@emotion/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:21:22 +00:00
Jérémie Panzer
eafe56a967 Merge pull request #1276 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.61
Bump @types/react from 18.2.58 to 18.2.61 in /commafeed-client
2024-03-04 10:21:20 +01:00
Jérémie Panzer
c18cd62d24 Merge pull request #1273 from Athou/dependabot/npm_and_yarn/commafeed-client/react-router-dom-6.22.2
Bump react-router-dom from 6.22.1 to 6.22.2 in /commafeed-client
2024-03-04 10:20:49 +01:00
Jérémie Panzer
180385d6ab Merge pull request #1272 from Athou/dependabot/npm_and_yarn/commafeed-client/fontsource/open-sans-5.0.25
Bump @fontsource/open-sans from 5.0.24 to 5.0.25 in /commafeed-client
2024-03-04 10:20:40 +01:00
dependabot[bot]
838eb8b725 Bump @fontsource/open-sans from 5.0.24 to 5.0.25 in /commafeed-client
Bumps [@fontsource/open-sans](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/open-sans) from 5.0.24 to 5.0.25.
- [Changelog](https://github.com/fontsource/font-files/blob/main/fonts/google/open-sans/CHANGELOG.md)
- [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/open-sans)

---
updated-dependencies:
- dependency-name: "@fontsource/open-sans"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:15:32 +00:00
Jérémie Panzer
b7cb3ee3f7 Merge pull request #1271 from Athou/dependabot/npm_and_yarn/commafeed-client/mantine-f7798005fd
Bump the mantine group in /commafeed-client with 6 updates
2024-03-04 10:13:29 +01:00
dependabot[bot]
0a97e3f8f0 Bump eslint-plugin-react from 7.33.2 to 7.34.0 in /commafeed-client
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.2 to 7.34.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:11:54 +00:00
dependabot[bot]
0229292b48 Bump @types/react from 18.2.58 to 18.2.61 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.58 to 18.2.61.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:11:22 +00:00
dependabot[bot]
c87a965ae1 Bump @typescript-eslint/eslint-plugin in /commafeed-client
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.0.2 to 7.1.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.1.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:10:58 +00:00
dependabot[bot]
baa4122793 Bump react-router-dom from 6.22.1 to 6.22.2 in /commafeed-client
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.1 to 6.22.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:09:20 +00:00
dependabot[bot]
e9a4cb3432 Bump the mantine group in /commafeed-client with 6 updates
Bumps the mantine group in /commafeed-client with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core) | `7.5.3` | `7.6.1` |
| [@mantine/form](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form) | `7.5.3` | `7.6.1` |
| [@mantine/hooks](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/hooks) | `7.5.3` | `7.6.1` |
| [@mantine/modals](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/modals) | `7.5.3` | `7.6.1` |
| [@mantine/notifications](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/notifications) | `7.5.3` | `7.6.1` |
| [@mantine/spotlight](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/spotlight) | `7.5.3` | `7.6.1` |


Updates `@mantine/core` from 7.5.3 to 7.6.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.6.1/packages/@mantine/core)

Updates `@mantine/form` from 7.5.3 to 7.6.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.6.1/packages/@mantine/form)

Updates `@mantine/hooks` from 7.5.3 to 7.6.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.6.1/packages/@mantine/hooks)

Updates `@mantine/modals` from 7.5.3 to 7.6.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.6.1/packages/@mantine/modals)

Updates `@mantine/notifications` from 7.5.3 to 7.6.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.6.1/packages/@mantine/notifications)

Updates `@mantine/spotlight` from 7.5.3 to 7.6.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.6.1/packages/@mantine/spotlight)

---
updated-dependencies:
- dependency-name: "@mantine/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/form"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/hooks"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/modals"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/notifications"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/spotlight"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:08:06 +00:00
Athou
30fc2cb8a4 apply standard js 2024-02-29 13:51:26 +01:00
Jérémie Panzer
25ccece76c Merge pull request #1269 from Athou/dependabot/maven/com.google.apis-google-api-services-youtube-v3-rev20240225-2.0.0
Bump com.google.apis:google-api-services-youtube from v3-rev20240213-2.0.0 to v3-rev20240225-2.0.0
2024-02-28 15:46:04 +01:00
dependabot[bot]
2cb9d2285a Bump com.google.apis:google-api-services-youtube
Bumps com.google.apis:google-api-services-youtube from v3-rev20240213-2.0.0 to v3-rev20240225-2.0.0.

---
updated-dependencies:
- dependency-name: com.google.apis:google-api-services-youtube
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-28 06:27:00 +00:00
Jérémie Panzer
0bb922fb99 Merge pull request #1265 from Athou/dependabot/maven/redis.clients-jedis-5.1.1
Bump redis.clients:jedis from 5.1.0 to 5.1.1
2024-02-26 15:03:41 +01:00
Jérémie Panzer
1c59ec5857 Merge pull request #1266 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.58
Bump @types/react from 18.2.57 to 18.2.58 in /commafeed-client
2024-02-26 14:56:37 +01:00
Jérémie Panzer
f4e97f6350 Merge pull request #1264 from Athou/dependabot/maven/org.apache.maven.plugins-maven-shade-plugin-3.5.2
Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2
2024-02-26 14:56:20 +01:00
Jérémie Panzer
fb355187ee Merge pull request #1263 from Athou/dependabot/maven/io.github.hakky54-sslcontext-kickstart-for-apache5-8.3.2
Bump io.github.hakky54:sslcontext-kickstart-for-apache5 from 8.3.1 to 8.3.2
2024-02-26 14:56:08 +01:00
Jérémie Panzer
89eb4d0535 Merge pull request #1262 from Athou/dependabot/maven/org.mariadb.jdbc-mariadb-java-client-3.3.3
Bump org.mariadb.jdbc:mariadb-java-client from 3.3.2 to 3.3.3
2024-02-26 14:55:56 +01:00
Jérémie Panzer
11fe2f9db8 Merge pull request #1268 from Athou/dependabot/npm_and_yarn/commafeed-client/eslint-8.57.0
Bump eslint from 8.56.0 to 8.57.0 in /commafeed-client
2024-02-26 14:55:37 +01:00
Jérémie Panzer
86acc3850a Merge pull request #1267 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-5.1.4
Bump vite from 5.1.3 to 5.1.4 in /commafeed-client
2024-02-26 14:55:29 +01:00
dependabot[bot]
77bf97c6d6 Bump eslint from 8.56.0 to 8.57.0 in /commafeed-client
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 09:58:06 +00:00
dependabot[bot]
1a96579292 Bump vite from 5.1.3 to 5.1.4 in /commafeed-client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.3 to 5.1.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 09:57:23 +00:00
dependabot[bot]
caccd3802c Bump @types/react from 18.2.57 to 18.2.58 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.57 to 18.2.58.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 09:56:45 +00:00
dependabot[bot]
dce899186b Bump redis.clients:jedis from 5.1.0 to 5.1.1
Bumps [redis.clients:jedis](https://github.com/redis/jedis) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/redis/jedis/releases)
- [Commits](https://github.com/redis/jedis/compare/v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: redis.clients:jedis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 09:21:28 +00:00
dependabot[bot]
5626b39ffa Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2
Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/apache/maven-shade-plugin/releases)
- [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.1...maven-shade-plugin-3.5.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-shade-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 09:21:22 +00:00
dependabot[bot]
5386c99c6b Bump io.github.hakky54:sslcontext-kickstart-for-apache5
Bumps [io.github.hakky54:sslcontext-kickstart-for-apache5](https://github.com/Hakky54/sslcontext-kickstart) from 8.3.1 to 8.3.2.
- [Changelog](https://github.com/Hakky54/sslcontext-kickstart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Hakky54/sslcontext-kickstart/compare/v8.3.1...v8.3.2)

---
updated-dependencies:
- dependency-name: io.github.hakky54:sslcontext-kickstart-for-apache5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 09:21:17 +00:00
dependabot[bot]
c27fae140f Bump org.mariadb.jdbc:mariadb-java-client from 3.3.2 to 3.3.3
Bumps [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/mariadb-corporation/mariadb-connector-j/releases)
- [Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.3.2...3.3.3)

---
updated-dependencies:
- dependency-name: org.mariadb.jdbc:mariadb-java-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 09:21:07 +00:00
Jérémie Panzer
b8b67132f4 Merge pull request #1259 from Athou/dependabot/maven/commafeed-server/org.postgresql-postgresql-42.7.2
Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 in /commafeed-server
2024-02-21 07:24:26 +01:00
dependabot[bot]
5623039084 Bump org.postgresql:postgresql in /commafeed-server
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.1 to 42.7.2.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/commits)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 00:07:10 +00:00
Jérémie Panzer
39ddb256de Merge pull request #1256 from Athou/dependabot/npm_and_yarn/commafeed-client/lingui-e99279c299
Bump the lingui group in /commafeed-client with 5 updates
2024-02-20 21:01:27 +01:00
Jérémie Panzer
71801718dc Merge pull request #1257 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.57
Bump @types/react from 18.2.56 to 18.2.57 in /commafeed-client
2024-02-20 21:01:16 +01:00
Jérémie Panzer
b728e28081 Merge pull request #1258 from Athou/dependabot/npm_and_yarn/commafeed-client/vitest-1.3.1
Bump vitest from 1.3.0 to 1.3.1 in /commafeed-client
2024-02-20 21:00:59 +01:00
dependabot[bot]
bf2de7aecd Bump vitest from 1.3.0 to 1.3.1 in /commafeed-client
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.3.1/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 15:35:46 +00:00
dependabot[bot]
010fb2dccb Bump @types/react from 18.2.56 to 18.2.57 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.56 to 18.2.57.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 15:35:28 +00:00
dependabot[bot]
8517c0f4eb Bump the lingui group in /commafeed-client with 5 updates
Bumps the lingui group in /commafeed-client with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@lingui/core](https://github.com/lingui/js-lingui) | `4.7.0` | `4.7.1` |
| [@lingui/macro](https://github.com/lingui/js-lingui) | `4.7.0` | `4.7.1` |
| [@lingui/react](https://github.com/lingui/js-lingui) | `4.7.0` | `4.7.1` |
| [@lingui/cli](https://github.com/lingui/js-lingui) | `4.7.0` | `4.7.1` |
| [@lingui/vite-plugin](https://github.com/lingui/js-lingui) | `4.7.0` | `4.7.1` |


Updates `@lingui/core` from 4.7.0 to 4.7.1
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.0...v4.7.1)

Updates `@lingui/macro` from 4.7.0 to 4.7.1
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.0...v4.7.1)

Updates `@lingui/react` from 4.7.0 to 4.7.1
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.0...v4.7.1)

Updates `@lingui/cli` from 4.7.0 to 4.7.1
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.0...v4.7.1)

Updates `@lingui/vite-plugin` from 4.7.0 to 4.7.1
- [Release notes](https://github.com/lingui/js-lingui/releases)
- [Changelog](https://github.com/lingui/js-lingui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lingui/js-lingui/compare/v4.7.0...v4.7.1)

---
updated-dependencies:
- dependency-name: "@lingui/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: lingui
- dependency-name: "@lingui/macro"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: lingui
- dependency-name: "@lingui/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: lingui
- dependency-name: "@lingui/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: lingui
- dependency-name: "@lingui/vite-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: lingui
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 15:35:12 +00:00
Athou
09737b4d4c logout now works in dev mode 2024-02-20 10:42:56 +01:00
Athou
88e9a2c2e1 keep more eslint rules enabled 2024-02-20 10:42:44 +01:00
Athou
0d7300c192 use stricter eslint rules 2024-02-19 20:58:47 +01:00
Jérémie Panzer
cb1a00c5cd Merge pull request #1254 from Athou/dependabot/npm_and_yarn/commafeed-client/vitest-1.3.0
Bump vitest from 1.2.2 to 1.3.0 in /commafeed-client
2024-02-19 09:46:07 +01:00
Jérémie Panzer
07a07006cc Merge pull request #1252 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.56
Bump @types/react from 18.2.55 to 18.2.56 in /commafeed-client
2024-02-19 09:45:55 +01:00
Jérémie Panzer
bae7f94f8c Merge pull request #1251 from Athou/dependabot/npm_and_yarn/commafeed-client/fontsource/open-sans-5.0.24
Bump @fontsource/open-sans from 5.0.23 to 5.0.24 in /commafeed-client
2024-02-19 09:45:46 +01:00
Jérémie Panzer
b0832c5917 Merge pull request #1253 from Athou/dependabot/npm_and_yarn/commafeed-client/react-router-dom-6.22.1
Bump react-router-dom from 6.22.0 to 6.22.1 in /commafeed-client
2024-02-19 09:45:36 +01:00
Jérémie Panzer
f72e70cb56 Merge pull request #1250 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-5.1.3
Bump vite from 5.1.2 to 5.1.3 in /commafeed-client
2024-02-19 09:45:06 +01:00
Jérémie Panzer
8cc24e054f Merge pull request #1249 from Athou/dependabot/npm_and_yarn/commafeed-client/mantine-285eda16db
Bump the mantine group in /commafeed-client with 6 updates
2024-02-19 09:44:49 +01:00
dependabot[bot]
48e42228b1 Bump vitest from 1.2.2 to 1.3.0 in /commafeed-client
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.2.2 to 1.3.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.3.0/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 07:19:20 +00:00
dependabot[bot]
46c1af65f0 Bump react-router-dom from 6.22.0 to 6.22.1 in /commafeed-client
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.0 to 6.22.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@6.22.1/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 07:19:01 +00:00
dependabot[bot]
2989407d16 Bump @types/react from 18.2.55 to 18.2.56 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.55 to 18.2.56.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 07:18:44 +00:00
dependabot[bot]
2401e36486 Bump @fontsource/open-sans from 5.0.23 to 5.0.24 in /commafeed-client
Bumps [@fontsource/open-sans](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/open-sans) from 5.0.23 to 5.0.24.
- [Changelog](https://github.com/fontsource/font-files/blob/main/fonts/google/open-sans/CHANGELOG.md)
- [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/open-sans)

---
updated-dependencies:
- dependency-name: "@fontsource/open-sans"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 07:18:27 +00:00
dependabot[bot]
4ee396e667 Bump vite from 5.1.2 to 5.1.3 in /commafeed-client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.2 to 5.1.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 07:18:15 +00:00
dependabot[bot]
08180dd373 Bump the mantine group in /commafeed-client with 6 updates
Bumps the mantine group in /commafeed-client with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core) | `7.5.2` | `7.5.3` |
| [@mantine/form](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form) | `7.5.2` | `7.5.3` |
| [@mantine/hooks](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/hooks) | `7.5.2` | `7.5.3` |
| [@mantine/modals](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/modals) | `7.5.2` | `7.5.3` |
| [@mantine/notifications](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/notifications) | `7.5.2` | `7.5.3` |
| [@mantine/spotlight](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/spotlight) | `7.5.2` | `7.5.3` |


Updates `@mantine/core` from 7.5.2 to 7.5.3
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.3/packages/@mantine/core)

Updates `@mantine/form` from 7.5.2 to 7.5.3
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.3/packages/@mantine/form)

Updates `@mantine/hooks` from 7.5.2 to 7.5.3
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.3/packages/@mantine/hooks)

Updates `@mantine/modals` from 7.5.2 to 7.5.3
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.3/packages/@mantine/modals)

Updates `@mantine/notifications` from 7.5.2 to 7.5.3
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.3/packages/@mantine/notifications)

Updates `@mantine/spotlight` from 7.5.2 to 7.5.3
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.3/packages/@mantine/spotlight)

---
updated-dependencies:
- dependency-name: "@mantine/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/form"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/hooks"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/modals"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/notifications"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/spotlight"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 07:17:41 +00:00
Jérémie Panzer
561513b7ed Merge pull request #1248 from Athou/dependabot/maven/com.google.apis-google-api-services-youtube-v3-rev20240213-2.0.0
Bump com.google.apis:google-api-services-youtube from v3-rev20240211-2.0.0 to v3-rev20240213-2.0.0
2024-02-18 18:32:10 +01:00
dependabot[bot]
9cd7053a90 Bump com.google.apis:google-api-services-youtube
Bumps com.google.apis:google-api-services-youtube from v3-rev20240211-2.0.0 to v3-rev20240213-2.0.0.

---
updated-dependencies:
- dependency-name: com.google.apis:google-api-services-youtube
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-18 08:12:41 +00:00
Jérémie Panzer
72d510bd47 Merge pull request #1245 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-5.1.2
Bump vite from 5.1.1 to 5.1.2 in /commafeed-client
2024-02-15 14:06:25 +01:00
Jérémie Panzer
1085d6aa7a Merge pull request #1244 from Athou/dependabot/npm_and_yarn/commafeed-client/reduxjs/toolkit-2.2.1
Bump @reduxjs/toolkit from 2.1.0 to 2.2.1 in /commafeed-client
2024-02-15 14:06:18 +01:00
Jérémie Panzer
9e0ef9461f Merge pull request #1246 from Athou/dependabot/maven/com.google.apis-google-api-services-youtube-v3-rev20240211-2.0.0
Bump com.google.apis:google-api-services-youtube from v3-rev20240123-2.0.0 to v3-rev20240211-2.0.0
2024-02-15 14:06:09 +01:00
dependabot[bot]
650acb62d5 Bump com.google.apis:google-api-services-youtube
Bumps com.google.apis:google-api-services-youtube from v3-rev20240123-2.0.0 to v3-rev20240211-2.0.0.

---
updated-dependencies:
- dependency-name: com.google.apis:google-api-services-youtube
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-15 09:42:32 +00:00
dependabot[bot]
ff1c8a1eff Bump vite from 5.1.1 to 5.1.2 in /commafeed-client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-15 09:42:21 +00:00
dependabot[bot]
62a4ac46a0 Bump @reduxjs/toolkit from 2.1.0 to 2.2.1 in /commafeed-client
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.1.0 to 2.2.1.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.1.0...v2.2.1)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-15 09:42:03 +00:00
Athou
fafd4c9d54 release 4.3.1 2024-02-12 16:13:34 +01:00
Jérémie Panzer
73b472bc8a Merge pull request #1242 from Athou/dependabot/npm_and_yarn/commafeed-client/mantine-42bf712b6b
Bump the mantine group in /commafeed-client with 6 updates
2024-02-12 11:00:20 +01:00
Jérémie Panzer
1c3be67f76 Merge pull request #1243 from Athou/dependabot/npm_and_yarn/commafeed-client/fontsource/open-sans-5.0.23
Bump @fontsource/open-sans from 5.0.22 to 5.0.23 in /commafeed-client
2024-02-12 10:59:21 +01:00
dependabot[bot]
2a5988b3e7 Bump @fontsource/open-sans from 5.0.22 to 5.0.23 in /commafeed-client
Bumps [@fontsource/open-sans](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/open-sans) from 5.0.22 to 5.0.23.
- [Changelog](https://github.com/fontsource/font-files/blob/main/fonts/google/open-sans/CHANGELOG.md)
- [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/open-sans)

---
updated-dependencies:
- dependency-name: "@fontsource/open-sans"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 09:30:55 +00:00
dependabot[bot]
c5757849f3 Bump the mantine group in /commafeed-client with 6 updates
Bumps the mantine group in /commafeed-client with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core) | `7.5.1` | `7.5.2` |
| [@mantine/form](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form) | `7.5.1` | `7.5.2` |
| [@mantine/hooks](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/hooks) | `7.5.1` | `7.5.2` |
| [@mantine/modals](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/modals) | `7.5.1` | `7.5.2` |
| [@mantine/notifications](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/notifications) | `7.5.1` | `7.5.2` |
| [@mantine/spotlight](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/spotlight) | `7.5.1` | `7.5.2` |


Updates `@mantine/core` from 7.5.1 to 7.5.2
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.2/packages/@mantine/core)

Updates `@mantine/form` from 7.5.1 to 7.5.2
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.2/packages/@mantine/form)

Updates `@mantine/hooks` from 7.5.1 to 7.5.2
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.2/packages/@mantine/hooks)

Updates `@mantine/modals` from 7.5.1 to 7.5.2
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.2/packages/@mantine/modals)

Updates `@mantine/notifications` from 7.5.1 to 7.5.2
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.2/packages/@mantine/notifications)

Updates `@mantine/spotlight` from 7.5.1 to 7.5.2
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.2/packages/@mantine/spotlight)

---
updated-dependencies:
- dependency-name: "@mantine/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/form"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/hooks"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/modals"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/notifications"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
- dependency-name: "@mantine/spotlight"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: mantine
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 09:30:22 +00:00
Athou
b6107c3330 pass theme and colorscheme in tss context to avoid repetitions (#1241) 2024-02-12 07:38:57 +01:00
Athou
3efeed6c85 make sure videos don't overflow parent (#1240) 2024-02-10 21:50:17 +01:00
Athou
be44b0aad1 make sure timestamps are stored in UTC (#1239) 2024-02-10 12:42:22 +01:00
Athou
36152dc47f add an additional day to make sure the timestamp fits in all timezones (#1239) 2024-02-10 12:41:32 +01:00
Athou
32e9cd3e35 release 4.3.0 2024-02-09 20:02:17 +01:00
Athou
4bf8b5696d fix metrics page 2024-02-09 18:41:43 +01:00
Athou
0bf44dbc7b make sure we clean any existing file before starting 2024-02-09 18:32:43 +01:00
Athou
bda3ba4b5c mysql/mariadb lowest timestamp is actually 1970-01-01 00:00:01 (#1239) 2024-02-09 17:31:22 +01:00
Athou
23cff9c1e9 columnDataType is required for addNotNullConstraint on mysql 2024-02-09 17:19:47 +01:00
Athou
9691517335 add null check to userSessions 2024-02-09 17:18:18 +01:00
Jérémie Panzer
b38bd8c312 Merge pull request #1234 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.55
Bump @types/react from 18.2.53 to 18.2.55 in /commafeed-client
2024-02-09 11:10:17 +01:00
Jérémie Panzer
d8ca58389d Merge pull request #1238 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-5.1.1
Bump vite from 5.0.12 to 5.1.1 in /commafeed-client
2024-02-09 11:09:44 +01:00
dependabot[bot]
20a0cd7192 Bump @types/react from 18.2.53 to 18.2.55 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.53 to 18.2.55.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 10:06:24 +00:00
dependabot[bot]
9b895328be Bump vite from 5.0.12 to 5.1.1 in /commafeed-client
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.12 to 5.1.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 10:05:37 +00:00
Jérémie Panzer
cd39ab5f95 Merge pull request #1235 from Athou/dependabot/npm_and_yarn/commafeed-client/monaco-editor-0.46.0
Bump monaco-editor from 0.45.0 to 0.46.0 in /commafeed-client
2024-02-09 11:05:33 +01:00
Jérémie Panzer
a7152a97a6 Merge pull request #1237 from Athou/dependabot/npm_and_yarn/commafeed-client/typescript-eslint/eslint-plugin-6.21.0
Bump @typescript-eslint/eslint-plugin from 6.20.0 to 6.21.0 in /commafeed-client
2024-02-09 11:05:15 +01:00
Jérémie Panzer
3e6e0a0f00 Merge pull request #1233 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-dom-18.2.19
Bump @types/react-dom from 18.2.18 to 18.2.19 in /commafeed-client
2024-02-09 11:04:49 +01:00
dependabot[bot]
2936dd0d32 Bump @typescript-eslint/eslint-plugin in /commafeed-client
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.20.0 to 6.21.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 09:54:35 +00:00
dependabot[bot]
38a838d210 Bump monaco-editor from 0.45.0 to 0.46.0 in /commafeed-client
Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.45.0 to 0.46.0.
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/microsoft/monaco-editor/compare/v0.45.0...v0.46.0)

---
updated-dependencies:
- dependency-name: monaco-editor
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 09:53:12 +00:00
dependabot[bot]
0136fa883d Bump @types/react-dom from 18.2.18 to 18.2.19 in /commafeed-client
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 18.2.18 to 18.2.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-09 09:52:12 +00:00
Athou
b0890df2f3 add a css class for view mode (#1232) 2024-02-09 10:31:27 +01:00
Athou
91acad0dbf don't try to migrate h2 if database does not exist yet 2024-02-09 10:30:15 +01:00
Athou
14e7d70106 simplify websocket session retrieval 2024-02-05 20:27:26 +01:00
Jérémie Panzer
1cc76ba3ee Merge pull request #1230 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.53
Bump @types/react from 18.2.52 to 18.2.53 in /commafeed-client
2024-02-05 09:46:37 +01:00
dependabot[bot]
206800c091 Bump @types/react from 18.2.52 to 18.2.53 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.52 to 18.2.53.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 08:42:50 +00:00
Jérémie Panzer
33749c94e3 Merge pull request #1229 from Athou/dependabot/npm_and_yarn/commafeed-client/prettier-3.2.5
Bump prettier from 3.2.4 to 3.2.5 in /commafeed-client
2024-02-04 19:55:52 +01:00
Jérémie Panzer
8bce887e4c Merge pull request #1228 from Athou/dependabot/maven/io.github.hakky54-sslcontext-kickstart-for-apache5-8.3.1
Bump io.github.hakky54:sslcontext-kickstart-for-apache5 from 8.3.0 to 8.3.1
2024-02-04 19:55:46 +01:00
dependabot[bot]
ca4f73fff6 Bump prettier from 3.2.4 to 3.2.5 in /commafeed-client
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-04 18:47:35 +00:00
dependabot[bot]
26443310c9 Bump io.github.hakky54:sslcontext-kickstart-for-apache5
Bumps [io.github.hakky54:sslcontext-kickstart-for-apache5](https://github.com/Hakky54/sslcontext-kickstart) from 8.3.0 to 8.3.1.
- [Changelog](https://github.com/Hakky54/sslcontext-kickstart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Hakky54/sslcontext-kickstart/compare/v8.3.0...v8.3.1)

---
updated-dependencies:
- dependency-name: io.github.hakky54:sslcontext-kickstart-for-apache5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-04 18:47:02 +00:00
Athou
870593bae8 add H2 migration tool 2024-02-04 18:40:59 +01:00
Jérémie Panzer
cfd5d0faab Merge pull request #1226 from aniol/patch-1
Update messages.po
2024-02-04 08:11:14 +01:00
Aniol
9391c05968 Update messages.po
updated catalan translation
2024-02-04 07:33:44 +01:00
Jérémie Panzer
a13c75981b Merge pull request #1221 from Athou/dependabot/npm_and_yarn/commafeed-client/react-router-dom-6.22.0
Bump react-router-dom from 6.21.1 to 6.22.0 in /commafeed-client
2024-02-03 17:21:28 +01:00
dependabot[bot]
a05baf63c1 Bump react-router-dom from 6.21.1 to 6.22.0 in /commafeed-client
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.21.1 to 6.22.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 16:16:38 +00:00
Jérémie Panzer
32ce265cff Merge pull request #1222 from Athou/dependabot/npm_and_yarn/commafeed-client/prettier-3.2.4
Bump prettier from 3.1.1 to 3.2.4 in /commafeed-client
2024-02-03 17:16:23 +01:00
Jérémie Panzer
b2ad24e7f6 Merge pull request #1223 from Athou/dependabot/npm_and_yarn/commafeed-client/react-icons-5.0.1
Bump react-icons from 4.12.0 to 5.0.1 in /commafeed-client
2024-02-03 17:16:17 +01:00
Jérémie Panzer
fe626ebbe3 Merge pull request #1224 from Athou/dependabot/npm_and_yarn/commafeed-client/react-redux-9.1.0
Bump react-redux from 9.0.4 to 9.1.0 in /commafeed-client
2024-02-03 17:16:10 +01:00
Jérémie Panzer
4431a898a0 Merge pull request #1225 from Athou/dependabot/npm_and_yarn/commafeed-client/vitest-1.2.2
Bump vitest from 1.1.3 to 1.2.2 in /commafeed-client
2024-02-03 17:15:59 +01:00
dependabot[bot]
89bfcfa240 Bump vitest from 1.1.3 to 1.2.2 in /commafeed-client
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.1.3 to 1.2.2.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.2.2/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 16:10:30 +00:00
dependabot[bot]
d046d26f4e Bump react-redux from 9.0.4 to 9.1.0 in /commafeed-client
Bumps [react-redux](https://github.com/reduxjs/react-redux) from 9.0.4 to 9.1.0.
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v9.0.4...v9.1.0)

---
updated-dependencies:
- dependency-name: react-redux
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 16:10:14 +00:00
dependabot[bot]
26b634b1a3 Bump react-icons from 4.12.0 to 5.0.1 in /commafeed-client
Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.12.0 to 5.0.1.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.12.0...v5.0.1)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 16:09:58 +00:00
dependabot[bot]
3ca18bbd36 Bump prettier from 3.1.1 to 3.2.4 in /commafeed-client
Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.1.1...3.2.4)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 16:09:46 +00:00
Jérémie Panzer
7645731fff Merge pull request #1211 from Athou/dependabot/npm_and_yarn/commafeed-client/mantine-5b631ac874
Bump the mantine group in /commafeed-client with 6 updates
2024-02-03 11:51:24 +01:00
Athou
3c116dbabe fix build 2024-02-03 11:44:58 +01:00
dependabot[bot]
3026fd116c Bump the mantine group in /commafeed-client with 6 updates
Bumps the mantine group in /commafeed-client with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core) | `7.3.2` | `7.5.1` |
| [@mantine/form](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form) | `7.3.2` | `7.5.1` |
| [@mantine/hooks](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/hooks) | `7.3.2` | `7.5.1` |
| [@mantine/modals](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/modals) | `7.3.2` | `7.5.1` |
| [@mantine/notifications](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/notifications) | `7.3.2` | `7.5.1` |
| [@mantine/spotlight](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/spotlight) | `7.3.2` | `7.5.1` |


Updates `@mantine/core` from 7.3.2 to 7.5.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.1/packages/@mantine/core)

Updates `@mantine/form` from 7.3.2 to 7.5.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.1/packages/@mantine/form)

Updates `@mantine/hooks` from 7.3.2 to 7.5.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.1/packages/@mantine/hooks)

Updates `@mantine/modals` from 7.3.2 to 7.5.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.1/packages/@mantine/modals)

Updates `@mantine/notifications` from 7.3.2 to 7.5.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.1/packages/@mantine/notifications)

Updates `@mantine/spotlight` from 7.3.2 to 7.5.1
- [Release notes](https://github.com/mantinedev/mantine/releases)
- [Changelog](https://github.com/mantinedev/mantine/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mantinedev/mantine/commits/7.5.1/packages/@mantine/spotlight)

---
updated-dependencies:
- dependency-name: "@mantine/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/form"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/hooks"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/modals"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/notifications"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
- dependency-name: "@mantine/spotlight"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: mantine
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 09:20:11 +00:00
Jérémie Panzer
63fa725a13 Merge pull request #1220 from Athou/dependabot/npm_and_yarn/commafeed-client/reduxjs/toolkit-2.1.0
Bump @reduxjs/toolkit from 2.0.1 to 2.1.0 in /commafeed-client
2024-02-03 10:19:05 +01:00
Jérémie Panzer
ede4e07ff3 Merge pull request #1218 from Athou/dependabot/npm_and_yarn/commafeed-client/eslint-config-standard-with-typescript-43.0.1
Bump eslint-config-standard-with-typescript from 43.0.0 to 43.0.1 in /commafeed-client
2024-02-03 10:18:56 +01:00
dependabot[bot]
de6dfbe8b2 Bump @reduxjs/toolkit from 2.0.1 to 2.1.0 in /commafeed-client
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.0.1...v2.1.0)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 09:13:40 +00:00
Jérémie Panzer
164a57bef5 Merge pull request #1217 from Athou/dependabot/npm_and_yarn/commafeed-client/types/react-18.2.52
Bump @types/react from 18.2.46 to 18.2.52 in /commafeed-client
2024-02-03 10:13:03 +01:00
Jérémie Panzer
fd82b8aaee Merge pull request #1216 from Athou/dependabot/npm_and_yarn/commafeed-client/fontsource/open-sans-5.0.22
Bump @fontsource/open-sans from 5.0.20 to 5.0.22 in /commafeed-client
2024-02-03 10:12:53 +01:00
Jérémie Panzer
facf8b43f2 Merge pull request #1214 from Athou/dependabot/npm_and_yarn/commafeed-client/axios-1.6.7
Bump axios from 1.6.3 to 1.6.7 in /commafeed-client
2024-02-03 10:12:38 +01:00
Jérémie Panzer
3184dfe178 Merge pull request #1213 from Athou/dependabot/npm_and_yarn/commafeed-client/vite-tsconfig-paths-4.3.1
Bump vite-tsconfig-paths from 4.2.3 to 4.3.1 in /commafeed-client
2024-02-03 10:12:27 +01:00
Jérémie Panzer
cc584fd8c8 Merge pull request #1212 from Athou/dependabot/npm_and_yarn/commafeed-client/tss-react-4.9.4
Bump tss-react from 4.9.3 to 4.9.4 in /commafeed-client
2024-02-03 10:12:10 +01:00
Jérémie Panzer
0f8fa1f2e1 Merge pull request #1210 from Athou/dependabot/maven/com.microsoft.playwright-playwright-1.41.2
Bump com.microsoft.playwright:playwright from 1.41.1 to 1.41.2
2024-02-03 10:11:47 +01:00
Jérémie Panzer
d93f7bd20e Merge pull request #1219 from Athou/dependabot/npm_and_yarn/commafeed-client/typescript-eslint/eslint-plugin-6.20.0
Bump @typescript-eslint/eslint-plugin from 6.16.0 to 6.20.0 in /commafeed-client
2024-02-03 10:11:17 +01:00
dependabot[bot]
96aa06d2dd Bump eslint-config-standard-with-typescript in /commafeed-client
Bumps [eslint-config-standard-with-typescript](https://github.com/mightyiam/eslint-config-standard-with-typescript) from 43.0.0 to 43.0.1.
- [Release notes](https://github.com/mightyiam/eslint-config-standard-with-typescript/releases)
- [Changelog](https://github.com/mightyiam/eslint-config-standard-with-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mightyiam/eslint-config-standard-with-typescript/compare/v43.0.0...v43.0.1)

---
updated-dependencies:
- dependency-name: eslint-config-standard-with-typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 09:10:57 +00:00
Jérémie Panzer
fdaff46008 Merge pull request #1215 from Athou/dependabot/npm_and_yarn/commafeed-client/eslint-plugin-prettier-5.1.3
Bump eslint-plugin-prettier from 5.1.2 to 5.1.3 in /commafeed-client
2024-02-03 10:10:12 +01:00
dependabot[bot]
71066cd768 Bump @typescript-eslint/eslint-plugin in /commafeed-client
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.16.0 to 6.20.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.20.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:15:57 +00:00
dependabot[bot]
b9610a9058 Bump @types/react from 18.2.46 to 18.2.52 in /commafeed-client
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.46 to 18.2.52.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:15:29 +00:00
dependabot[bot]
ca027d5a4d Bump @fontsource/open-sans from 5.0.20 to 5.0.22 in /commafeed-client
Bumps [@fontsource/open-sans](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/open-sans) from 5.0.20 to 5.0.22.
- [Changelog](https://github.com/fontsource/font-files/blob/main/fonts/google/open-sans/CHANGELOG.md)
- [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/open-sans)

---
updated-dependencies:
- dependency-name: "@fontsource/open-sans"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:15:21 +00:00
dependabot[bot]
1dea51c705 Bump eslint-plugin-prettier from 5.1.2 to 5.1.3 in /commafeed-client
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.1.2 to 5.1.3.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.1.2...v5.1.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:15:11 +00:00
dependabot[bot]
8edc89f3cc Bump axios from 1.6.3 to 1.6.7 in /commafeed-client
Bumps [axios](https://github.com/axios/axios) from 1.6.3 to 1.6.7.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.3...v1.6.7)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:15:02 +00:00
dependabot[bot]
4cbf32cbb8 Bump vite-tsconfig-paths from 4.2.3 to 4.3.1 in /commafeed-client
Bumps [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths) from 4.2.3 to 4.3.1.
- [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases)
- [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v4.2.3...v4.3.1)

---
updated-dependencies:
- dependency-name: vite-tsconfig-paths
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:14:53 +00:00
dependabot[bot]
a5dc551b6b Bump tss-react from 4.9.3 to 4.9.4 in /commafeed-client
Bumps [tss-react](https://github.com/garronej/tss-react) from 4.9.3 to 4.9.4.
- [Release notes](https://github.com/garronej/tss-react/releases)
- [Commits](https://github.com/garronej/tss-react/compare/v4.9.3...v4.9.4)

---
updated-dependencies:
- dependency-name: tss-react
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:14:43 +00:00
dependabot[bot]
b1e0dbd0b3 Bump com.microsoft.playwright:playwright from 1.41.1 to 1.41.2
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.41.1 to 1.41.2.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.41.1...v1.41.2)

---
updated-dependencies:
- dependency-name: com.microsoft.playwright:playwright
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 08:13:26 +00:00
Athou
58789b15a3 configure dependabot for client dependencies 2024-02-03 09:13:00 +01:00
Athou
c5f58a2fe9 add test to make sure the session has been invalidated 2024-02-02 20:25:27 +01:00
Athou
253ba5f18b remove unused eslint plugins 2024-01-31 20:13:52 +01:00
Athou
ae859178c0 increase pull request limit 2024-01-30 22:42:55 +01:00
Jérémie Panzer
942dc0befe Merge pull request #1206 from Athou/dependabot/maven/com.microsoft.playwright-playwright-1.41.1
Bump com.microsoft.playwright:playwright from 1.40.0 to 1.41.1
2024-01-30 22:42:02 +01:00
Jérémie Panzer
66c4510fd3 Merge pull request #1205 from Athou/dependabot/maven/org.jsoup-jsoup-1.17.2
Bump org.jsoup:jsoup from 1.17.1 to 1.17.2
2024-01-30 22:41:48 +01:00
Jérémie Panzer
feb7de504c Merge pull request #1204 from Athou/dependabot/maven/io.dropwizard-dropwizard-dependencies-4.0.6
Bump io.dropwizard:dropwizard-dependencies from 4.0.5 to 4.0.6
2024-01-30 22:41:38 +01:00
Jérémie Panzer
ec4b809ff9 Merge pull request #1207 from Athou/dependabot/maven/org.gwtproject-gwt-servlet-2.11.0
Bump org.gwtproject:gwt-servlet from 2.10.0 to 2.11.0
2024-01-30 22:41:28 +01:00
Jérémie Panzer
b8d6a5742b Merge pull request #1203 from Athou/dependabot/maven/com.mysql-mysql-connector-j-8.3.0
Bump com.mysql:mysql-connector-j from 8.2.0 to 8.3.0
2024-01-30 22:41:17 +01:00
dependabot[bot]
31c42403a1 Bump org.gwtproject:gwt-servlet from 2.10.0 to 2.11.0
Bumps org.gwtproject:gwt-servlet from 2.10.0 to 2.11.0.

---
updated-dependencies:
- dependency-name: org.gwtproject:gwt-servlet
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:36:11 +00:00
dependabot[bot]
ead97be3cf Bump com.microsoft.playwright:playwright from 1.40.0 to 1.41.1
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.40.0 to 1.41.1.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.40.0...v1.41.1)

---
updated-dependencies:
- dependency-name: com.microsoft.playwright:playwright
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:36:05 +00:00
dependabot[bot]
3ee43f75d6 Bump org.jsoup:jsoup from 1.17.1 to 1.17.2
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.17.1 to 1.17.2.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.17.1...jsoup-1.17.2)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:35:53 +00:00
dependabot[bot]
f77b91540d Bump io.dropwizard:dropwizard-dependencies from 4.0.5 to 4.0.6
Bumps io.dropwizard:dropwizard-dependencies from 4.0.5 to 4.0.6.

---
updated-dependencies:
- dependency-name: io.dropwizard:dropwizard-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:35:34 +00:00
dependabot[bot]
34915c93b8 Bump com.mysql:mysql-connector-j from 8.2.0 to 8.3.0
Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.2.0 to 8.3.0.
- [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/8.x/CHANGES)
- [Commits](https://github.com/mysql/mysql-connector-j/compare/8.2.0...8.3.0)

---
updated-dependencies:
- dependency-name: com.mysql:mysql-connector-j
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:35:26 +00:00
Jérémie Panzer
365044d205 Merge pull request #1202 from Athou/dependabot/maven/io.github.hakky54-sslcontext-kickstart-for-apache5-8.3.0
Bump io.github.hakky54:sslcontext-kickstart-for-apache5 from 8.2.0 to 8.3.0
2024-01-30 22:33:57 +01:00
Jérémie Panzer
46f84ab29e Merge pull request #1198 from Athou/dependabot/maven/org.apache.maven.plugins-maven-surefire-plugin-3.2.5
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5
2024-01-30 22:33:50 +01:00
Jérémie Panzer
2041823f0d Merge pull request #1199 from Athou/dependabot/maven/org.mariadb.jdbc-mariadb-java-client-3.3.2
Bump org.mariadb.jdbc:mariadb-java-client from 3.3.1 to 3.3.2
2024-01-30 22:33:42 +01:00
Jérémie Panzer
ff01d7a87c Merge pull request #1200 from Athou/dependabot/maven/querydsl.version-5.1.0
Bump querydsl.version from 5.0.0 to 5.1.0
2024-01-30 22:33:35 +01:00
Jérémie Panzer
4d905b118a Merge pull request #1201 from Athou/dependabot/maven/com.diffplug.spotless-spotless-maven-plugin-2.43.0
Bump com.diffplug.spotless:spotless-maven-plugin from 2.41.1 to 2.43.0
2024-01-30 22:33:21 +01:00
Athou
6d74b50751 login to docker hub only if we need to be logged in 2024-01-30 22:28:05 +01:00
dependabot[bot]
f12bdf5841 Bump io.github.hakky54:sslcontext-kickstart-for-apache5
Bumps [io.github.hakky54:sslcontext-kickstart-for-apache5](https://github.com/Hakky54/sslcontext-kickstart) from 8.2.0 to 8.3.0.
- [Changelog](https://github.com/Hakky54/sslcontext-kickstart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Hakky54/sslcontext-kickstart/compare/v8.2.0...v8.3.0)

---
updated-dependencies:
- dependency-name: io.github.hakky54:sslcontext-kickstart-for-apache5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:16:26 +00:00
dependabot[bot]
6b89e211d8 Bump com.diffplug.spotless:spotless-maven-plugin from 2.41.1 to 2.43.0
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.41.1 to 2.43.0.
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.41.1...lib/2.43.0)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:16:21 +00:00
dependabot[bot]
1b00e5613a Bump querydsl.version from 5.0.0 to 5.1.0
Bumps `querydsl.version` from 5.0.0 to 5.1.0.

Updates `com.querydsl:querydsl-apt` from 5.0.0 to 5.1.0

Updates `com.querydsl:querydsl-jpa` from 5.0.0 to 5.1.0

---
updated-dependencies:
- dependency-name: com.querydsl:querydsl-apt
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.querydsl:querydsl-jpa
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:16:16 +00:00
dependabot[bot]
050a8b24fc Bump org.mariadb.jdbc:mariadb-java-client from 3.3.1 to 3.3.2
Bumps [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/mariadb-corporation/mariadb-connector-j/releases)
- [Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.3.1...3.3.2)

---
updated-dependencies:
- dependency-name: org.mariadb.jdbc:mariadb-java-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:16:12 +00:00
dependabot[bot]
c5b1ea486c Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.3...surefire-3.2.5)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:16:04 +00:00
Jérémie Panzer
7b8c0ac6ff Merge pull request #1193 from Athou/dependabot/maven/com.google.apis-google-api-services-youtube-v3-rev20240123-2.0.0
Bump com.google.apis:google-api-services-youtube from v3-rev20231011-2.0.0 to v3-rev20240123-2.0.0
2024-01-30 22:12:22 +01:00
Jérémie Panzer
d43039cf9f Merge pull request #1197 from Athou/dependabot/maven/org.apache.maven.plugins-maven-compiler-plugin-3.12.1
Bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.12.1
2024-01-30 22:12:14 +01:00
Jérémie Panzer
3adc043740 Merge pull request #1196 from Athou/dependabot/maven/org.apache.maven.plugins-maven-failsafe-plugin-3.2.5
Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.3 to 3.2.5
2024-01-30 22:11:36 +01:00
Jérémie Panzer
08b95ff3dd Merge pull request #1195 from Athou/dependabot/maven/io.swagger.core.v3-swagger-maven-plugin-jakarta-2.2.20
Bump io.swagger.core.v3:swagger-maven-plugin-jakarta from 2.2.19 to 2.2.20
2024-01-30 22:11:28 +01:00
Jérémie Panzer
e043ce71c3 Merge pull request #1194 from Athou/dependabot/maven/io.swagger.core.v3-swagger-annotations-2.2.20
Bump io.swagger.core.v3:swagger-annotations from 2.2.19 to 2.2.20
2024-01-30 22:11:17 +01:00
Athou
b345319f68 don't try to login to docker hub for pull requests 2024-01-30 22:09:29 +01:00
dependabot[bot]
4c298df9c9 Bump org.apache.maven.plugins:maven-compiler-plugin
Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.11.0 to 3.12.1.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.11.0...maven-compiler-plugin-3.12.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:03:03 +00:00
dependabot[bot]
067e01660a Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.3 to 3.2.5
Bumps [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.3...surefire-3.2.5)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-failsafe-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:02:57 +00:00
dependabot[bot]
c649a04891 Bump io.swagger.core.v3:swagger-maven-plugin-jakarta
Bumps io.swagger.core.v3:swagger-maven-plugin-jakarta from 2.2.19 to 2.2.20.

---
updated-dependencies:
- dependency-name: io.swagger.core.v3:swagger-maven-plugin-jakarta
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:02:51 +00:00
dependabot[bot]
9b9a4f98f4 Bump io.swagger.core.v3:swagger-annotations from 2.2.19 to 2.2.20
Bumps io.swagger.core.v3:swagger-annotations from 2.2.19 to 2.2.20.

---
updated-dependencies:
- dependency-name: io.swagger.core.v3:swagger-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:02:48 +00:00
dependabot[bot]
f8b6f2f237 Bump com.google.apis:google-api-services-youtube
Bumps com.google.apis:google-api-services-youtube from v3-rev20231011-2.0.0 to v3-rev20240123-2.0.0.

---
updated-dependencies:
- dependency-name: com.google.apis:google-api-services-youtube
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 21:02:44 +00:00
Jérémie Panzer
371ce0d160 Create dependabot.yml 2024-01-30 22:01:04 +01:00
Athou
a92a7217ff add a setting to completely disable scrolling to selected entry (#1157) 2024-01-29 20:30:49 +01:00
Athou
e69c230678 bump github action versions to remove warnings 2024-01-26 10:11:41 +01:00
105 changed files with 3944 additions and 1637 deletions

24
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
version: 2
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 50
- package-ecosystem: "npm"
directory: "/commafeed-client"
schedule:
interval: "monthly"
open-pull-requests-limit: 50
groups:
mantine:
patterns:
- "@mantine/*"
lingui:
patterns:
- "@lingui/*"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10

View File

@@ -11,19 +11,19 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
# Setup
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Set up Java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: "temurin"
@@ -42,14 +42,14 @@ jobs:
# Docker
- name: Login to Container Registry
uses: docker/login-action@v2
if: ${{ matrix.java == '17' }}
uses: docker/login-action@v3
if: ${{ matrix.java == '17' && (github.ref_type == 'tag' || github.ref_name == 'master') }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker build and push tag
uses: docker/build-push-action@v4
uses: docker/build-push-action@v5
if: ${{ matrix.java == '17' && github.ref_type == 'tag' }}
with:
context: .
@@ -60,7 +60,7 @@ jobs:
athou/commafeed:${{ github.ref_name }}
- name: Docker build and push master
uses: docker/build-push-action@v4
uses: docker/build-push-action@v5
if: ${{ matrix.java == '17' && github.ref_name == 'master' }}
with:
context: .
@@ -77,7 +77,7 @@ jobs:
version: ${{ github.ref_name }}
- name: Create GitHub release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
if: ${{ matrix.java == '17' && github.ref_type == 'tag' }}
with:
name: CommaFeed ${{ github.ref_name }}

View File

@@ -1,5 +1,38 @@
# Changelog
## [4.4.0]
- add support for sharing using the browser native capabilities if available (#1255)
- add a button in the entry headers to star an entry (#1025)
- add a button in the entry headers to open links in a new tab (#1333)
- add two options in the settings to toggle those buttons
- accept .opml file extension when importing and export with the .opml extension
- the "mark as read" option is no longer shown in the context menu for entries that are too old to be marked as read (
older than `keepStatusDays`) (#1303)
## [4.3.3]
- fix OPML import (#1279)
## [4.3.2]
- added support for unix sockets (#1278)
## [4.3.1]
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database and the database
timezone is not UTC (#1239)
- videos in enclosures can no longer have a width larger than the page (#1240)
## [4.3.0]
- h2 (the embedded database) has been upgraded to 2.2.224
- this version uses a different file format than 2.1.x, the first time you start CommaFeed with this version, the
database will be automatically converted to the new format
- add a setting to completely disable scrolling to selected entry (#1157)
- add a css class reflecting the current view mode to ease custom css rules (#1232)
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database (#1239)
## [4.2.1]
- fix an issue that caused the tree to show an incorrect unread count after a websocket notification because entries

View File

@@ -1,28 +1,38 @@
module.exports = {
env: {
browser: true,
es2021: true
es2021: true,
},
extends: ["standard-with-typescript", "plugin:react/recommended", "plugin:react-hooks/recommended", "plugin:prettier/recommended"],
extends: [
"eslint:recommended",
"standard",
"love",
"plugin:@typescript-eslint/strict-type-checked",
"plugin:@typescript-eslint/stylistic-type-checked",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin:prettier/recommended",
],
settings: {
react: {
version: "detect"
}
version: "detect",
},
},
overrides: [
{
env: {
node: true
node: true,
},
files: [".eslintrc.{js,cjs}"],
parserOptions: {
sourceType: "script"
}
}
sourceType: "script",
},
},
],
parserOptions: {
project: true,
ecmaVersion: "latest",
sourceType: "module"
sourceType: "module",
},
plugins: ["react"],
rules: {
@@ -32,10 +42,11 @@ module.exports = {
"@typescript-eslint/no-floating-promises": "off",
"@typescript-eslint/no-misused-promises": "off",
"@typescript-eslint/prefer-nullish-coalescing": ["error", { ignoreConditionalTests: true }],
"@typescript-eslint/restrict-template-expressions": ["error", { allowNumber: true }],
"@typescript-eslint/strict-boolean-expressions": "off",
"@typescript-eslint/unbound-method": "off",
"react/jsx-curly-brace-presence": ["error", "never"],
"react/no-unescaped-entities": "off",
"react/react-in-jsx-scope": "off",
"react-hooks/exhaustive-deps": "error"
}
"react-hooks/exhaustive-deps": "error",
},
}

File diff suppressed because it is too large Load Diff

View File

@@ -14,24 +14,24 @@
"i18n:extract": "lingui extract --clean"
},
"dependencies": {
"@emotion/react": "^11.11.3",
"@fontsource/open-sans": "^5.0.20",
"@lingui/core": "^4.7.0",
"@lingui/macro": "^4.7.0",
"@lingui/react": "^4.7.0",
"@mantine/core": "^7.3.2",
"@mantine/form": "^7.3.2",
"@mantine/hooks": "^7.3.2",
"@mantine/modals": "^7.3.2",
"@mantine/notifications": "^7.3.2",
"@mantine/spotlight": "^7.3.2",
"@emotion/react": "^11.11.4",
"@fontsource/open-sans": "^5.0.27",
"@lingui/core": "^4.10.0",
"@lingui/macro": "^4.10.0",
"@lingui/react": "^4.10.0",
"@mantine/core": "^7.8.0",
"@mantine/form": "^7.8.0",
"@mantine/hooks": "^7.8.0",
"@mantine/modals": "^7.8.0",
"@mantine/notifications": "^7.8.0",
"@mantine/spotlight": "^7.8.0",
"@monaco-editor/react": "^4.6.0",
"@reduxjs/toolkit": "^2.0.1",
"axios": "^1.6.3",
"@reduxjs/toolkit": "^2.2.3",
"axios": "^1.6.8",
"dayjs": "^1.11.10",
"escape-string-regexp": "^5.0.0",
"interweave": "^13.1.0",
"monaco-editor": "^0.45.0",
"monaco-editor": "^0.47.0",
"mousetrap": "^1.6.5",
"react": "^18.2.0",
"react-async-hook": "^4.0.0",
@@ -39,47 +39,45 @@
"react-dom": "^18.2.0",
"react-draggable": "^4.4.6",
"react-ga4": "^2.1.0",
"react-icons": "^4.12.0",
"react-icons": "^5.0.1",
"react-infinite-scroller": "^1.2.6",
"react-redux": "^9.0.4",
"react-router-dom": "^6.21.1",
"react-redux": "^9.1.0",
"react-router-dom": "^6.22.3",
"react-swipeable": "^7.0.1",
"redoc": "^2.1.3",
"throttle-debounce": "^5.0.0",
"tinycon": "^0.6.8",
"tss-react": "^4.9.3",
"tss-react": "^4.9.6",
"use-local-storage": "^3.0.0",
"websocket-heartbeat-js": "^1.1.3"
},
"devDependencies": {
"@lingui/cli": "^4.7.0",
"@lingui/vite-plugin": "^4.7.0",
"@lingui/cli": "^4.10.0",
"@lingui/vite-plugin": "^4.10.0",
"@types/mousetrap": "^1.6.15",
"@types/react": "^18.2.46",
"@types/react-dom": "^18.2.18",
"@types/react": "^18.2.78",
"@types/react-dom": "^18.2.25",
"@types/react-infinite-scroller": "^1.2.5",
"@types/swagger-ui-react": "^4.18.3",
"@types/throttle-debounce": "^5.0.2",
"@types/tinycon": "^0.6.5",
"@typescript-eslint/eslint-plugin": "^6.16.0",
"@typescript-eslint/eslint-plugin": "^7.6.0",
"@vitejs/plugin-react": "^4.2.1",
"babel-plugin-macros": "^3.1.0",
"eslint": "^8.56.0",
"eslint": "^8.57.0",
"eslint-config-love": "^47.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^43.0.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-n": "^16.5.0",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.33.2",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0",
"prettier": "^3.1.1",
"prettier": "^3.2.5",
"rollup-plugin-visualizer": "^5.12.0",
"typescript": "^5.3.3",
"vite": "^5.0.12",
"typescript": "^5.4.5",
"vite": "^5.2.8",
"vite-plugin-eslint": "^1.8.1",
"vite-tsconfig-paths": "^4.2.3",
"vitest": "^1.1.3",
"vite-tsconfig-paths": "^4.3.2",
"vitest": "^1.5.0",
"vitest-mock-extended": "^1.3.1"
}
}

View File

@@ -5,7 +5,7 @@
<parent>
<groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId>
<version>4.2.1</version>
<version>4.4.0</version>
</parent>
<artifactId>commafeed-client</artifactId>
<name>CommaFeed Client</name>

View File

@@ -1,7 +1,8 @@
import axios from "axios"
import axios, { type AxiosError } from "axios"
import {
type AddCategoryRequest,
type AdminSaveUserRequest,
type AuthenticationError,
type Category,
type CategoryModificationRequest,
type CollapseRequest,
@@ -31,17 +32,18 @@ const axiosInstance = axios.create({ baseURL: "./rest", withCredentials: true })
axiosInstance.interceptors.response.use(
response => response,
error => {
const { status, data } = error.response
if (
(status === 401 && data?.message === "Credentials are required to access this resource.") ||
(status === 403 && data?.message === "You don't have the required role to access this resource.")
) {
if (isAuthenticationError(error)) {
const data = error.response?.data
window.location.hash = data?.allowRegistrations ? "/welcome" : "/login"
}
throw error
}
)
function isAuthenticationError(error: unknown): error is AxiosError<AuthenticationError> {
return axios.isAxiosError(error) && !!error.response && [401, 403].includes(error.response.status)
}
export const client = {
category: {
getRoot: async () => await axiosInstance.get<Category>("category/get"),
@@ -107,14 +109,19 @@ export const client = {
export const errorToStrings = (err: unknown) => {
let strings: string[] = []
if (axios.isAxiosError(err)) {
if (err.response) {
const { data } = err.response
if (typeof data === "string") strings.push(data)
if (typeof data === "object" && data.message) strings.push(data.message as string)
if (typeof data === "object" && data.errors) strings = [...strings, ...data.errors]
}
if (axios.isAxiosError(err) && err.response) {
if (typeof err.response.data === "string") strings.push(err.response.data)
if (isMessageError(err)) strings.push(err.response.data.message)
if (isMessageArrayError(err)) strings = [...strings, ...err.response.data.errors]
}
return strings
}
function isMessageError(err: AxiosError): err is AxiosError<{ message: string }> {
return !!err.response && !!err.response.data && typeof err.response.data === "object" && "message" in err.response.data
}
function isMessageArrayError(err: AxiosError): err is AxiosError<{ errors: string[] }> {
return !!err.response && !!err.response.data && typeof err.response.data === "object" && "errors" in err.response.data
}

View File

@@ -104,6 +104,9 @@ export const Constants = {
entryId: (entry: Entry) => `entry-id-${entry.id}`,
entryContextMenuId: (entry: Entry) => entry.id,
},
tooltip: {
delay: 500,
},
browserExtensionUrl: "https://github.com/Athou/commafeed-browser-extension",
bitcoinWalletAddress: "1dymfUxqCWpyD7a6rQSqNy4rLVDBsAr5e",
}

View File

@@ -1,4 +1,3 @@
/* eslint-disable import/first */
import { configureStore } from "@reduxjs/toolkit"
import { type client } from "app/client"
import { loadEntries, loadMoreEntries, markAllEntries, markEntry } from "app/entries/thunks"
@@ -90,7 +89,7 @@ describe("entries", () => {
expect(store.getState().entries.hasMore).toBe(false)
})
it("marks an entry as read", async () => {
it("marks an entry as read", () => {
const store = configureStore({
reducer: reducers,
preloadedState: {
@@ -117,7 +116,7 @@ describe("entries", () => {
expect(mockClient.entry.mark).toHaveBeenCalledWith({ id: "3", read: true })
})
it("marks all entries as read", async () => {
it("marks all entries as read", () => {
const store = configureStore({
reducer: reducers,
preloadedState: {

View File

@@ -46,11 +46,11 @@ const buildGetEntriesPaginatedRequest = (state: RootState, source: EntrySource,
tag: source.type === "tag" ? source.id : undefined,
keywords: state.entries.search,
})
export const reloadEntries = createAppAsyncThunk("entries/reload", async (arg, thunkApi) => {
export const reloadEntries = createAppAsyncThunk("entries/reload", (arg, thunkApi) => {
const state = thunkApi.getState()
thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false }))
})
export const search = createAppAsyncThunk("entries/search", async (arg: string, thunkApi) => {
export const search = createAppAsyncThunk("entries/search", (arg: string, thunkApi) => {
const state = thunkApi.getState()
thunkApi.dispatch(setSearch(arg))
thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false }))
@@ -64,7 +64,7 @@ export const markEntry = createAppAsyncThunk(
})
},
{
condition: arg => arg.entry.read !== arg.read,
condition: arg => arg.entry.markable && arg.entry.read !== arg.read,
}
)
export const markMultipleEntries = createAppAsyncThunk(
@@ -84,7 +84,7 @@ export const markMultipleEntries = createAppAsyncThunk(
thunkApi.dispatch(reloadTree())
}
)
export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry", async (arg: Entry, thunkApi) => {
export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry", (arg: Entry, thunkApi) => {
const state = thunkApi.getState()
const { entries } = state.entries
@@ -113,13 +113,19 @@ export const markAllEntries = createAppAsyncThunk(
thunkApi.dispatch(reloadTree())
}
)
export const starEntry = createAppAsyncThunk("entries/entry/star", (arg: { entry: Entry; starred: boolean }) => {
client.entry.star({
id: arg.entry.id,
feedId: +arg.entry.feedId,
starred: arg.starred,
})
})
export const starEntry = createAppAsyncThunk(
"entries/entry/star",
(arg: { entry: Entry; starred: boolean }) => {
client.entry.star({
id: arg.entry.id,
feedId: +arg.entry.feedId,
starred: arg.starred,
})
},
{
condition: arg => arg.entry.markable && arg.entry.starred !== arg.starred,
}
)
export const selectEntry = createAppAsyncThunk(
"entries/entry/select",
(
@@ -162,9 +168,9 @@ export const selectEntry = createAppAsyncThunk(
if (arg.scrollToEntry) {
const entryElement = document.getElementById(Constants.dom.entryId(entry))
if (entryElement) {
const alwaysScrollToEntry = state.user.settings?.alwaysScrollToEntry
const scrollMode = state.user.settings?.scrollMode
const entryEntirelyVisible = Constants.layout.isTopVisible(entryElement) && Constants.layout.isBottomVisible(entryElement)
if (alwaysScrollToEntry || !entryEntirelyVisible) {
if (scrollMode === "always" || (scrollMode === "if_needed" && !entryEntirelyVisible)) {
const scrollSpeed = state.user.settings?.scrollSpeed
thunkApi.dispatch(entriesSlice.actions.setScrollingToEntry(true))
scrollToEntry(entryElement, scrollSpeed, () => thunkApi.dispatch(entriesSlice.actions.setScrollingToEntry(false)))

View File

@@ -1,8 +1,35 @@
export type ReadingMode = "all" | "unread"
export type ReadingOrder = "asc" | "desc"
export type ViewMode = "title" | "cozy" | "detailed" | "expanded"
export type ScrollMode = "always" | "never" | "if_needed"
export type IconDisplayMode = "always" | "never" | "on_desktop" | "on_mobile"
export interface AddCategoryRequest {
name: string
parentId?: string
}
export interface Subscription {
id: number
name: string
message?: string
errorCount: number
lastRefresh?: number
nextRefresh?: number
feedUrl: string
feedLink: string
iconUrl: string
unread: number
categoryId?: string
position: number
newestItemTime?: number
filter?: string
}
export interface Category {
id: string
parentId?: string
@@ -26,19 +53,6 @@ export interface CollapseRequest {
collapse: boolean
}
export interface Entries {
name: string
message?: string
errorCount: number
feedLink: string
timestamp: number
hasMore: boolean
offset?: number
limit?: number
entries: Entry[]
ignoredReadStatus: boolean
}
export interface Entry {
id: string
guid: string
@@ -67,6 +81,19 @@ export interface Entry {
tags: string[]
}
export interface Entries {
name: string
message?: string
errorCount: number
feedLink: string
timestamp: number
hasMore: boolean
offset?: number
limit?: number
entries: Entry[]
ignoredReadStatus: boolean
}
export interface FeedInfo {
url: string
title: string
@@ -196,22 +223,6 @@ export interface ServerInfo {
treeReloadInterval: number
}
export interface Settings {
language: string
readingMode: ReadingMode
readingOrder: ReadingOrder
showRead: boolean
scrollMarks: boolean
customCss?: string
customJs?: string
scrollSpeed: number
alwaysScrollToEntry: boolean
markAllAsReadConfirmation: boolean
customContextMenu: boolean
mobileFooter: boolean
sharingSettings: SharingSettings
}
export interface SharingSettings {
email: boolean
gmail: boolean
@@ -223,6 +234,24 @@ export interface SharingSettings {
buffer: boolean
}
export interface Settings {
language: string
readingMode: ReadingMode
readingOrder: ReadingOrder
showRead: boolean
scrollMarks: boolean
customCss?: string
customJs?: string
scrollSpeed: number
scrollMode: ScrollMode
starIconDisplayMode: IconDisplayMode
externalLinkIconDisplayMode: IconDisplayMode
markAllAsReadConfirmation: boolean
customContextMenu: boolean
mobileFooter: boolean
sharingSettings: SharingSettings
}
export interface StarRequest {
id: string
feedId: number
@@ -235,34 +264,11 @@ export interface SubscribeRequest {
categoryId?: string
}
export interface Subscription {
id: number
name: string
message?: string
errorCount: number
lastRefresh?: number
nextRefresh?: number
feedUrl: string
feedLink: string
iconUrl: string
unread: number
categoryId?: string
position: number
newestItemTime?: number
filter?: string
}
export interface TagRequest {
entryId: number
tags: string[]
}
export interface UnreadCount {
feedId?: number
unreadCount?: number
newestItemTime?: number
}
export interface UserModel {
id: number
name: string
@@ -284,8 +290,7 @@ export interface AdminSaveUserRequest {
admin: boolean
}
export type ReadingMode = "all" | "unread"
export type ReadingOrder = "asc" | "desc"
export type ViewMode = "title" | "cozy" | "detailed" | "expanded"
export interface AuthenticationError {
message: string
allowRegistrations: boolean
}

View File

@@ -3,17 +3,19 @@ import { showNotification } from "@mantine/notifications"
import { createSlice, isAnyOf } from "@reduxjs/toolkit"
import { type Settings, type UserModel } from "app/types"
import {
changeAlwaysScrollToEntry,
changeCustomContextMenu,
changeExternalLinkIconDisplayMode,
changeLanguage,
changeMarkAllAsReadConfirmation,
changeMobileFooter,
changeReadingMode,
changeReadingOrder,
changeScrollMarks,
changeScrollMode,
changeScrollSpeed,
changeSharingSetting,
changeShowRead,
changeStarIconDisplayMode,
reloadProfile,
reloadSettings,
reloadTags,
@@ -65,9 +67,17 @@ export const userSlice = createSlice({
if (!state.settings) return
state.settings.scrollMarks = action.meta.arg
})
builder.addCase(changeAlwaysScrollToEntry.pending, (state, action) => {
builder.addCase(changeScrollMode.pending, (state, action) => {
if (!state.settings) return
state.settings.alwaysScrollToEntry = action.meta.arg
state.settings.scrollMode = action.meta.arg
})
builder.addCase(changeStarIconDisplayMode.pending, (state, action) => {
if (!state.settings) return
state.settings.starIconDisplayMode = action.meta.arg
})
builder.addCase(changeExternalLinkIconDisplayMode.pending, (state, action) => {
if (!state.settings) return
state.settings.externalLinkIconDisplayMode = action.meta.arg
})
builder.addCase(changeMarkAllAsReadConfirmation.pending, (state, action) => {
if (!state.settings) return
@@ -91,7 +101,9 @@ export const userSlice = createSlice({
changeScrollSpeed.fulfilled,
changeShowRead.fulfilled,
changeScrollMarks.fulfilled,
changeAlwaysScrollToEntry.fulfilled,
changeScrollMode.fulfilled,
changeStarIconDisplayMode.fulfilled,
changeExternalLinkIconDisplayMode.fulfilled,
changeMarkAllAsReadConfirmation.fulfilled,
changeCustomContextMenu.fulfilled,
changeMobileFooter.fulfilled,

View File

@@ -1,7 +1,7 @@
import { createAppAsyncThunk } from "app/async-thunk"
import { client } from "app/client"
import { reloadEntries } from "app/entries/thunks"
import type { ReadingMode, ReadingOrder, SharingSettings } from "app/types"
import type { IconDisplayMode, ReadingMode, ReadingOrder, ScrollMode, SharingSettings } from "app/types"
export const reloadSettings = createAppAsyncThunk("settings/reload", async () => await client.user.getSettings().then(r => r.data))
export const reloadProfile = createAppAsyncThunk("profile/reload", async () => await client.user.getProfile().then(r => r.data))
@@ -38,11 +38,27 @@ export const changeScrollMarks = createAppAsyncThunk("settings/scrollMarks", (sc
if (!settings) return
client.user.saveSettings({ ...settings, scrollMarks })
})
export const changeAlwaysScrollToEntry = createAppAsyncThunk("settings/alwaysScrollToEntry", (alwaysScrollToEntry: boolean, thunkApi) => {
export const changeScrollMode = createAppAsyncThunk("settings/scrollMode", (scrollMode: ScrollMode, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, alwaysScrollToEntry })
client.user.saveSettings({ ...settings, scrollMode })
})
export const changeStarIconDisplayMode = createAppAsyncThunk(
"settings/starIconDisplayMode",
(starIconDisplayMode: IconDisplayMode, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, starIconDisplayMode })
}
)
export const changeExternalLinkIconDisplayMode = createAppAsyncThunk(
"settings/externalLinkIconDisplayMode",
(externalLinkIconDisplayMode: IconDisplayMode, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, externalLinkIconDisplayMode })
}
)
export const changeMarkAllAsReadConfirmation = createAppAsyncThunk(
"settings/markAllAsReadConfirmation",
(markAllAsReadConfirmation: boolean, thunkApi) => {

View File

@@ -1,5 +1,6 @@
import { ActionIcon, Button, type ButtonVariant, Tooltip, useMantineTheme } from "@mantine/core"
import { type ActionIconVariant } from "@mantine/core/lib/components/ActionIcon/ActionIcon"
import { Constants } from "app/constants"
import { useActionButton } from "hooks/useActionButton"
import { forwardRef, type MouseEventHandler, type ReactNode } from "react"
@@ -22,7 +23,7 @@ export const ActionButton = forwardRef<HTMLButtonElement, ActionButtonProps>((pr
const variant = props.variant ?? "subtle"
const iconOnly = (mobile && !props.showLabelOnMobile) || (!mobile && props.hideLabelOnDesktop)
return iconOnly ? (
<Tooltip label={props.label} openDelay={500}>
<Tooltip label={props.label} openDelay={Constants.tooltip.delay}>
<ActionIcon ref={ref} color={theme.primaryColor} variant={variant} className={props.className} onClick={props.onClick}>
{props.icon}
</ActionIcon>

View File

@@ -1,5 +1,4 @@
import { Box, Center, type MantineTheme, useMantineTheme } from "@mantine/core"
import { useColorScheme } from "hooks/useColorScheme"
import { Box, Center } from "@mantine/core"
import { useState } from "react"
import { TbPhoto } from "react-icons/tb"
import { tss } from "tss"
@@ -18,8 +17,6 @@ interface ImageWithPlaceholderWhileLoadingProps {
const useStyles = tss
.withParams<{
theme: MantineTheme
colorScheme: "light" | "dark"
placeholderWidth?: number
placeholderHeight?: number
placeholderBackgroundColor?: string
@@ -46,11 +43,7 @@ export function ImageWithPlaceholderWhileLoading({
title,
width,
}: ImageWithPlaceholderWhileLoadingProps) {
const theme = useMantineTheme()
const colorScheme = useColorScheme()
const { classes } = useStyles({
theme,
colorScheme,
placeholderWidth,
placeholderHeight,
placeholderBackgroundColor,

View File

@@ -1,5 +1,6 @@
import { Trans } from "@lingui/macro"
import { Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import dayjs from "dayjs"
import { useEffect, useState } from "react"
@@ -13,7 +14,7 @@ export function RelativeDate(props: { date: Date | number | undefined }) {
if (!props.date) return <Trans>N/A</Trans>
const date = dayjs(props.date)
return (
<Tooltip label={date.toDate().toLocaleString()} openDelay={500}>
<Tooltip label={date.toDate().toLocaleString()} openDelay={Constants.tooltip.delay}>
<span>{date.from(dayjs(now))}</span>
</Tooltip>
)

View File

@@ -6,7 +6,7 @@ import { type ReactNode } from "react"
interface CodeEditorProps {
description?: ReactNode
language: "css" | "javascript"
value: string
value?: string
onChange: (value: string | undefined) => void
}

View File

@@ -27,7 +27,7 @@ const init = async () => {
interface RichCodeEditorProps {
height: number | string
language: "css" | "javascript"
value: string
value?: string
onChange: (value: string | undefined) => void
}

View File

@@ -76,7 +76,7 @@ class HighlightMatcher extends Matcher {
return this.doMatch(string, new RegExp(pattern, "i"), () => ({}))
}
replaceWith(children: ChildrenNode, props: unknown): Node {
replaceWith(children: ChildrenNode): Node {
return <Mark>{children}</Mark>
}

View File

@@ -2,14 +2,14 @@ import { BasicHtmlStyles } from "components/content/BasicHtmlStyles"
import { ImageWithPlaceholderWhileLoading } from "components/ImageWithPlaceholderWhileLoading"
export function Enclosure(props: { enclosureType: string; enclosureUrl: string }) {
const hasVideo = props.enclosureType?.startsWith("video")
const hasAudio = props.enclosureType?.startsWith("audio")
const hasImage = props.enclosureType?.startsWith("image")
const hasVideo = props.enclosureType.startsWith("video")
const hasAudio = props.enclosureType.startsWith("audio")
const hasImage = props.enclosureType.startsWith("image")
return (
<BasicHtmlStyles>
{hasVideo && (
<video controls>
<video controls width="100%">
<source src={props.enclosureUrl} type={props.enclosureType} />
</video>
)}

View File

@@ -295,10 +295,10 @@ export function FeedEntries() {
})
)
if (!entries) return <Loader />
return (
<InfiniteScroll
id="entries"
className={`view-mode-${viewMode}`}
initialLoad={false}
loadMore={async () => await (!loading && dispatch(loadMoreEntries()))}
hasMore={hasMore}

View File

@@ -1,16 +1,17 @@
import { Box, Divider, type MantineRadius, type MantineSpacing, type MantineTheme, Paper, useMantineTheme } from "@mantine/core"
import { Box, Divider, type MantineRadius, type MantineSpacing, Paper } from "@mantine/core"
import { Constants } from "app/constants"
import { useAppSelector } from "app/store"
import { type Entry, type ViewMode } from "app/types"
import { useColorScheme } from "hooks/useColorScheme"
import { FeedEntryCompactHeader } from "components/content/header/FeedEntryCompactHeader"
import { FeedEntryHeader } from "components/content/header/FeedEntryHeader"
import { useMobile } from "hooks/useMobile"
import { useViewMode } from "hooks/useViewMode"
import React from "react"
import { useSwipeable } from "react-swipeable"
import { tss } from "tss"
import { FeedEntryBody } from "./FeedEntryBody"
import { FeedEntryCompactHeader } from "./FeedEntryCompactHeader"
import { FeedEntryContextMenu } from "./FeedEntryContextMenu"
import { FeedEntryFooter } from "./FeedEntryFooter"
import { FeedEntryHeader } from "./FeedEntryHeader"
interface FeedEntryProps {
entry: Entry
@@ -26,8 +27,6 @@ interface FeedEntryProps {
const useStyles = tss
.withParams<{
theme: MantineTheme
colorScheme: "light" | "dark"
read: boolean
expanded: boolean
viewMode: ViewMode
@@ -96,12 +95,8 @@ const useStyles = tss
})
export function FeedEntry(props: FeedEntryProps) {
const theme = useMantineTheme()
const colorScheme = useColorScheme()
const { viewMode } = useViewMode()
const { classes, cx } = useStyles({
theme,
colorScheme,
read: props.entry.read,
expanded: props.expanded,
viewMode,
@@ -110,6 +105,15 @@ export function FeedEntry(props: FeedEntryProps) {
maxWidth: props.maxWidth,
})
const externalLinkDisplayMode = useAppSelector(state => state.user.settings?.externalLinkIconDisplayMode)
const starIconDisplayMode = useAppSelector(state => state.user.settings?.starIconDisplayMode)
const mobile = useMobile()
const showExternalLinkIcon =
externalLinkDisplayMode && ["always", mobile ? "on_mobile" : "on_desktop"].includes(externalLinkDisplayMode)
const showStarIcon =
props.entry.markable && starIconDisplayMode && ["always", mobile ? "on_mobile" : "on_desktop"].includes(starIconDisplayMode)
const swipeHandlers = useSwipeable({
onSwipedLeft: props.onSwipedLeft,
})
@@ -154,8 +158,21 @@ export function FeedEntry(props: FeedEntryProps) {
onContextMenu={props.onHeaderRightClick}
>
<Box px={paddingX} py={paddingY} {...swipeHandlers}>
{compactHeader && <FeedEntryCompactHeader entry={props.entry} />}
{!compactHeader && <FeedEntryHeader entry={props.entry} expanded={props.expanded} />}
{compactHeader && (
<FeedEntryCompactHeader
entry={props.entry}
showStarIcon={showStarIcon}
showExternalLinkIcon={showExternalLinkIcon}
/>
)}
{!compactHeader && (
<FeedEntryHeader
entry={props.entry}
expanded={props.expanded}
showStarIcon={showStarIcon}
showExternalLinkIcon={showExternalLinkIcon}
/>
)}
</Box>
</a>
{props.expanded && (

View File

@@ -1,5 +1,5 @@
import { Trans } from "@lingui/macro"
import { Group, type MantineTheme, useMantineTheme } from "@mantine/core"
import { Group } from "@mantine/core"
import { Constants } from "app/constants"
import { markEntriesUpToEntry, markEntry, starEntry } from "app/entries/thunks"
import { redirectToFeed } from "app/redirect/thunks"
@@ -17,28 +17,19 @@ interface FeedEntryContextMenuProps {
}
const iconSize = 16
const useStyles = tss
.withParams<{
theme: MantineTheme
colorScheme: "light" | "dark"
}>()
.create(({ theme, colorScheme }) => ({
menu: {
// apply mantine theme from MenuItem.styles.ts
fontSize: theme.fontSizes.sm,
"--contexify-item-color": `${colorScheme === "dark" ? theme.colors.dark[0] : theme.black} !important`,
"--contexify-activeItem-color": `${colorScheme === "dark" ? theme.colors.dark[0] : theme.black} !important`,
"--contexify-activeItem-bgColor": `${colorScheme === "dark" ? theme.colors.dark[4] : theme.colors.gray[1]} !important`,
},
}))
const useStyles = tss.create(({ theme, colorScheme }) => ({
menu: {
// apply mantine theme from MenuItem.styles.ts
fontSize: theme.fontSizes.sm,
"--contexify-item-color": `${colorScheme === "dark" ? theme.colors.dark[0] : theme.black} !important`,
"--contexify-activeItem-color": `${colorScheme === "dark" ? theme.colors.dark[0] : theme.black} !important`,
"--contexify-activeItem-bgColor": `${colorScheme === "dark" ? theme.colors.dark[4] : theme.colors.gray[1]} !important`,
},
}))
export function FeedEntryContextMenu(props: FeedEntryContextMenuProps) {
const theme = useMantineTheme()
const colorScheme = useColorScheme()
const { classes } = useStyles({
theme,
colorScheme,
})
const { classes } = useStyles()
const sourceType = useAppSelector(state => state.entries.source.type)
const dispatch = useAppDispatch()
const { openLinkInBackgroundTab } = useBrowserExtension()
@@ -76,12 +67,14 @@ export function FeedEntryContextMenu(props: FeedEntryContextMenuProps) {
{props.entry.starred ? <Trans>Unstar</Trans> : <Trans>Star</Trans>}
</Group>
</Item>
<Item onClick={async () => await dispatch(markEntry({ entry: props.entry, read: !props.entry.read }))}>
<Group>
{props.entry.read ? <TbEyeOff size={iconSize} /> : <TbEyeCheck size={iconSize} />}
{props.entry.read ? <Trans>Keep unread</Trans> : <Trans>Mark as read</Trans>}
</Group>
</Item>
{props.entry.markable && (
<Item onClick={async () => await dispatch(markEntry({ entry: props.entry, read: !props.entry.read }))}>
<Group>
{props.entry.read ? <TbEyeOff size={iconSize} /> : <TbEyeCheck size={iconSize} />}
{props.entry.read ? <Trans>Keep unread</Trans> : <Trans>Mark as read</Trans>}
</Group>
</Item>
)}
<Item onClick={async () => await dispatch(markEntriesUpToEntry(props.entry))}>
<Group>
<TbArrowBarToDown size={iconSize} />

View File

@@ -14,14 +14,11 @@ interface FeedEntryFooterProps {
}
export function FeedEntryFooter(props: FeedEntryFooterProps) {
const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings)
const tags = useAppSelector(state => state.user.tags)
const mobile = useMobile()
const { spacing } = useActionButton()
const dispatch = useAppDispatch()
const showSharingButtons = sharingSettings && Object.values(sharingSettings).some(v => v)
const readStatusButtonClicked = async () =>
await dispatch(
markEntry({
@@ -60,16 +57,14 @@ export function FeedEntryFooter(props: FeedEntryFooterProps) {
}
/>
{showSharingButtons && (
<Popover withArrow withinPortal shadow="md" closeOnClickOutside={!mobile}>
<Popover.Target>
<ActionButton icon={<TbShare size={18} />} label={<Trans>Share</Trans>} />
</Popover.Target>
<Popover.Dropdown>
<ShareButtons url={props.entry.url} description={props.entry.title} />
</Popover.Dropdown>
</Popover>
)}
<Popover withArrow withinPortal shadow="md" closeOnClickOutside={!mobile}>
<Popover.Target>
<ActionButton icon={<TbShare size={18} />} label={<Trans>Share</Trans>} />
</Popover.Target>
<Popover.Dropdown>
<ShareButtons url={props.entry.url} description={props.entry.title} />
</Popover.Dropdown>
</Popover>
{tags && (
<Popover withArrow shadow="md" closeOnClickOutside={!mobile}>

View File

@@ -1,69 +1,113 @@
import { ActionIcon, Box, type MantineTheme, SimpleGrid, useMantineTheme } from "@mantine/core"
import { Trans } from "@lingui/macro"
import { ActionIcon, Box, CopyButton, Divider, SimpleGrid } from "@mantine/core"
import { Constants } from "app/constants"
import { useAppSelector } from "app/store"
import { type SharingSettings } from "app/types"
import { useColorScheme } from "hooks/useColorScheme"
import { useBrowserExtension } from "hooks/useBrowserExtension"
import { useMobile } from "hooks/useMobile"
import { type IconType } from "react-icons"
import { TbCheck, TbCopy, TbDeviceDesktopShare, TbDeviceMobileShare } from "react-icons/tb"
import { tss } from "tss"
type Color = `#${string}`
const useStyles = tss
.withParams<{
theme: MantineTheme
colorScheme: "light" | "dark"
color: Color
}>()
.create(({ theme, colorScheme, color }) => ({
socialIcon: {
icon: {
color,
backgroundColor: colorScheme === "dark" ? theme.colors.gray[2] : "white",
borderRadius: "50%",
},
}))
function ShareButton({ url, icon, color }: { url: string; icon: IconType; color: Color }) {
const theme = useMantineTheme()
const colorScheme = useColorScheme()
function ShareButton({ icon, color, onClick }: { icon: IconType; color: Color; onClick: () => void }) {
const { classes } = useStyles({
theme,
colorScheme,
color,
})
const onClick = (e: React.MouseEvent) => {
e.preventDefault()
return (
<ActionIcon variant="transparent" radius="xl" size={32}>
<Box p={6} className={classes.icon} onClick={onClick}>
{icon({ size: 18 })}
</Box>
</ActionIcon>
)
}
function SiteShareButton({ url, icon, color }: { icon: IconType; color: Color; url: string }) {
const onClick = () => {
window.open(url, "", "menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=800,height=600")
}
return <ShareButton icon={icon} color={color} onClick={onClick} />
}
function CopyUrlButton({ url }: { url: string }) {
return (
<ActionIcon variant="transparent">
<a href={url} target="_blank" rel="noreferrer" onClick={onClick}>
<Box p={6} className={classes.socialIcon}>
{icon({ size: 18 })}
</Box>
</a>
</ActionIcon>
<CopyButton value={url}>
{({ copied, copy }) => <ShareButton icon={copied ? TbCheck : TbCopy} color="#000" onClick={copy} />}
</CopyButton>
)
}
function BrowserNativeShareButton({ url, description }: { url: string; description: string }) {
const mobile = useMobile()
const { isBrowserExtensionPopup } = useBrowserExtension()
const onClick = () => {
navigator.share({
title: description,
url,
})
}
return (
<ShareButton
icon={mobile && !isBrowserExtensionPopup ? TbDeviceMobileShare : TbDeviceDesktopShare}
color="#000"
onClick={onClick}
/>
)
}
export function ShareButtons(props: { url: string; description: string }) {
const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings)
const enabledSharingSites = (Object.keys(Constants.sharing) as Array<keyof SharingSettings>).filter(site => sharingSettings?.[site])
const url = encodeURIComponent(props.url)
const desc = encodeURIComponent(props.description)
const clipboardAvailable = typeof navigator.clipboard !== "undefined"
const nativeSharingAvailable = typeof navigator.share !== "undefined"
const showNativeSection = clipboardAvailable || nativeSharingAvailable
const showSharingSites = enabledSharingSites.length > 0
const showDivider = showNativeSection && showSharingSites
const showNoSharingOptionsAvailable = !showNativeSection && !showSharingSites
return (
<SimpleGrid cols={4}>
{(Object.keys(Constants.sharing) as Array<keyof SharingSettings>)
.filter(site => sharingSettings?.[site])
.map(site => (
<ShareButton
key={site}
icon={Constants.sharing[site].icon}
color={Constants.sharing[site].color}
url={Constants.sharing[site].url(url, desc)}
/>
))}
</SimpleGrid>
<>
{showNativeSection && (
<SimpleGrid cols={4}>
{clipboardAvailable && <CopyUrlButton url={props.url} />}
{nativeSharingAvailable && <BrowserNativeShareButton url={props.url} description={props.description} />}
</SimpleGrid>
)}
{showDivider && <Divider my="xs" />}
{showSharingSites && (
<SimpleGrid cols={4}>
{enabledSharingSites.map(site => (
<SiteShareButton
key={site}
icon={Constants.sharing[site].icon}
color={Constants.sharing[site].color}
url={Constants.sharing[site].url(url, desc)}
/>
))}
</SimpleGrid>
)}
{showNoSharingOptionsAvailable && <Trans>No sharing options available.</Trans>}
</>
)
}

View File

@@ -1,6 +1,6 @@
import { t, Trans } from "@lingui/macro"
import { Box, Button, FileInput, Group, Stack } from "@mantine/core"
import { useForm } from "@mantine/form"
import { isNotEmpty, useForm } from "@mantine/form"
import { client, errorToStrings } from "app/client"
import { redirectToSelectedSource } from "app/redirect/thunks"
import { useAppDispatch } from "app/store"
@@ -14,7 +14,7 @@ export function ImportOpml() {
const form = useForm<{ file: File }>({
validate: {
file: v => (v ? null : t`file is required`),
file: isNotEmpty(t`OPML file is required`),
},
})
@@ -38,8 +38,7 @@ export function ImportOpml() {
<FileInput
label={<Trans>OPML file</Trans>}
leftSection={<TbFileImport />}
// https://github.com/mantinedev/mantine/issues/5401
{...{ placeholder: t`OPML file` }}
placeholder={t`OPML file`}
description={
<Trans>
An opml file is an XML file containing feed URLs and categories. You can get an OPML file by exporting your
@@ -48,7 +47,7 @@ export function ImportOpml() {
}
{...form.getInputProps("file")}
required
accept="application/xml"
accept=".xml,.opml"
/>
<Group justify="center">
<Button variant="default" onClick={async () => await dispatch(redirectToSelectedSource())}>

View File

@@ -1,19 +1,21 @@
import { Box, Text } from "@mantine/core"
import { type Entry } from "app/types"
import { FeedFavicon } from "components/content/FeedFavicon"
import { OpenExternalLink } from "components/content/header/OpenExternalLink"
import { Star } from "components/content/header/Star"
import { RelativeDate } from "components/RelativeDate"
import { OnDesktop } from "components/responsive/OnDesktop"
import { useColorScheme } from "hooks/useColorScheme"
import { tss } from "tss"
import { FeedEntryTitle } from "./FeedEntryTitle"
import { FeedFavicon } from "./FeedFavicon"
export interface FeedEntryHeaderProps {
entry: Entry
showStarIcon?: boolean
showExternalLinkIcon?: boolean
}
const useStyles = tss
.withParams<{
colorScheme: "light" | "dark"
read: boolean
}>()
.create(({ colorScheme, read }) => ({
@@ -42,13 +44,12 @@ const useStyles = tss
}))
export function FeedEntryCompactHeader(props: FeedEntryHeaderProps) {
const colorScheme = useColorScheme()
const { classes } = useStyles({
colorScheme,
read: props.entry.read,
})
return (
<Box className={classes.wrapper}>
{props.showStarIcon && <Star entry={props.entry} />}
<Box>
<FeedFavicon url={props.entry.iconUrl} />
</Box>
@@ -65,6 +66,7 @@ export function FeedEntryCompactHeader(props: FeedEntryHeaderProps) {
<RelativeDate date={props.entry.date} />
</Text>
</OnDesktop>
{props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />}
</Box>
)
}

View File

@@ -1,44 +1,50 @@
import { Box, Space, Text } from "@mantine/core"
import { Box, Flex, Space, Text } from "@mantine/core"
import { type Entry } from "app/types"
import { FeedFavicon } from "components/content/FeedFavicon"
import { OpenExternalLink } from "components/content/header/OpenExternalLink"
import { Star } from "components/content/header/Star"
import { RelativeDate } from "components/RelativeDate"
import { useColorScheme } from "hooks/useColorScheme"
import { tss } from "tss"
import { FeedEntryTitle } from "./FeedEntryTitle"
import { FeedFavicon } from "./FeedFavicon"
export interface FeedEntryHeaderProps {
entry: Entry
expanded: boolean
showStarIcon?: boolean
showExternalLinkIcon?: boolean
}
const useStyles = tss
.withParams<{
colorScheme: "light" | "dark"
read: boolean
}>()
.create(({ colorScheme, read }) => ({
headerText: {
main: {
fontWeight: colorScheme === "light" && !read ? "bold" : "inherit",
},
headerSubtext: {
display: "flex",
alignItems: "center",
details: {
fontSize: "90%",
},
}))
export function FeedEntryHeader(props: FeedEntryHeaderProps) {
const colorScheme = useColorScheme()
const { classes } = useStyles({
colorScheme,
read: props.entry.read,
})
return (
<Box>
<Box className={classes.headerText}>
<FeedEntryTitle entry={props.entry} />
</Box>
<Box className={classes.headerSubtext}>
<Flex align="flex-start" justify="space-between">
<Flex align="flex-start" className={classes.main}>
{props.showStarIcon && (
<Box ml={-5}>
<Star entry={props.entry} />
</Box>
)}
<FeedEntryTitle entry={props.entry} />
</Flex>
{props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />}
</Flex>
<Flex align="center" className={classes.details}>
<FeedFavicon url={props.entry.iconUrl} />
<Space w={6} />
<Text c="dimmed">
@@ -46,9 +52,9 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
<span> · </span>
<RelativeDate date={props.entry.date} />
</Text>
</Box>
</Flex>
{props.expanded && (
<Box className={classes.headerSubtext}>
<Box className={classes.details}>
<Text c="dimmed">
{props.entry.author && <span>by {props.entry.author}</span>}
{props.entry.author && props.entry.categories && <span>&nbsp;·&nbsp;</span>}

View File

@@ -0,0 +1,30 @@
import { Trans } from "@lingui/macro"
import { ActionIcon, Anchor, Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import { markEntry } from "app/entries/thunks"
import { useAppDispatch } from "app/store"
import { type Entry } from "app/types"
import { TbExternalLink } from "react-icons/tb"
export function OpenExternalLink(props: { entry: Entry }) {
const dispatch = useAppDispatch()
const onClick = (e: React.MouseEvent) => {
e.stopPropagation()
dispatch(
markEntry({
entry: props.entry,
read: true,
})
)
}
return (
<Anchor href={props.entry.url} target="_blank" rel="noreferrer" onClick={onClick}>
<Tooltip label={<Trans>Open link</Trans>} openDelay={Constants.tooltip.delay}>
<ActionIcon variant="transparent" c="dimmed">
<TbExternalLink size={18} />
</ActionIcon>
</Tooltip>
</Anchor>
)
}

View File

@@ -0,0 +1,29 @@
import { Trans } from "@lingui/macro"
import { ActionIcon, Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import { starEntry } from "app/entries/thunks"
import { useAppDispatch } from "app/store"
import type { Entry } from "app/types"
import { TbStar, TbStarFilled } from "react-icons/tb"
export function Star(props: { entry: Entry }) {
const dispatch = useAppDispatch()
const onClick = (e: React.MouseEvent) => {
e.stopPropagation()
e.preventDefault()
dispatch(
starEntry({
entry: props.entry,
starred: !props.entry.starred,
})
)
}
return (
<Tooltip label={props.entry.starred ? <Trans>Unstar</Trans> : <Trans>Star</Trans>} openDelay={Constants.tooltip.delay}>
<ActionIcon variant="transparent" onClick={onClick}>
{props.entry.starred ? <TbStarFilled size={18} /> : <TbStar size={18} />}
</ActionIcon>
</Tooltip>
)
}

View File

@@ -1,33 +1,64 @@
import { Trans } from "@lingui/macro"
import { Divider, Select, SimpleGrid, Stack, Switch } from "@mantine/core"
import { t, Trans } from "@lingui/macro"
import { Divider, Group, Radio, Select, SimpleGrid, Stack, Switch } from "@mantine/core"
import { type ComboboxData } from "@mantine/core/lib/components/Combobox/Combobox.types"
import { Constants } from "app/constants"
import { useAppDispatch, useAppSelector } from "app/store"
import { type SharingSettings } from "app/types"
import { type IconDisplayMode, type ScrollMode, type SharingSettings } from "app/types"
import {
changeAlwaysScrollToEntry,
changeCustomContextMenu,
changeExternalLinkIconDisplayMode,
changeLanguage,
changeMarkAllAsReadConfirmation,
changeMobileFooter,
changeScrollMarks,
changeScrollMode,
changeScrollSpeed,
changeSharingSetting,
changeShowRead,
changeStarIconDisplayMode,
} from "app/user/thunks"
import { locales } from "i18n"
import { type ReactNode } from "react"
export function DisplaySettings() {
const language = useAppSelector(state => state.user.settings?.language)
const scrollSpeed = useAppSelector(state => state.user.settings?.scrollSpeed)
const showRead = useAppSelector(state => state.user.settings?.showRead)
const scrollMarks = useAppSelector(state => state.user.settings?.scrollMarks)
const alwaysScrollToEntry = useAppSelector(state => state.user.settings?.alwaysScrollToEntry)
const scrollMode = useAppSelector(state => state.user.settings?.scrollMode)
const starIconDisplayMode = useAppSelector(state => state.user.settings?.starIconDisplayMode)
const externalLinkIconDisplayMode = useAppSelector(state => state.user.settings?.externalLinkIconDisplayMode)
const markAllAsReadConfirmation = useAppSelector(state => state.user.settings?.markAllAsReadConfirmation)
const customContextMenu = useAppSelector(state => state.user.settings?.customContextMenu)
const mobileFooter = useAppSelector(state => state.user.settings?.mobileFooter)
const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings)
const dispatch = useAppDispatch()
const scrollModeOptions: Record<ScrollMode, ReactNode> = {
always: <Trans>Always</Trans>,
never: <Trans>Never</Trans>,
if_needed: <Trans>If the entry doesn't entirely fit on the screen</Trans>,
}
const displayModeData: ComboboxData = [
{
value: "always",
label: t`Always`,
},
{
value: "on_desktop",
label: t`On desktop`,
},
{
value: "on_mobile",
label: t`On mobile`,
},
{
value: "never",
label: t`Never`,
},
]
return (
<Stack>
<Select
@@ -40,46 +71,70 @@ export function DisplaySettings() {
onChange={async s => await (s && dispatch(changeLanguage(s)))}
/>
<Switch
label={<Trans>Scroll smoothly when navigating between entries</Trans>}
checked={scrollSpeed ? scrollSpeed > 0 : false}
onChange={async e => await dispatch(changeScrollSpeed(e.currentTarget.checked))}
/>
<Switch
label={<Trans>Always scroll selected entry to the top of the page, even if it fits entirely on screen</Trans>}
checked={alwaysScrollToEntry}
onChange={async e => await dispatch(changeAlwaysScrollToEntry(e.currentTarget.checked))}
/>
<Switch
label={<Trans>Show feeds and categories with no unread entries</Trans>}
checked={showRead}
onChange={async e => await dispatch(changeShowRead(e.currentTarget.checked))}
/>
<Switch
label={<Trans>In expanded view, scrolling through entries mark them as read</Trans>}
checked={scrollMarks}
onChange={async e => await dispatch(changeScrollMarks(e.currentTarget.checked))}
/>
<Switch
label={<Trans>Show confirmation when marking all entries as read</Trans>}
checked={markAllAsReadConfirmation}
onChange={async e => await dispatch(changeMarkAllAsReadConfirmation(e.currentTarget.checked))}
/>
<Switch
label={<Trans>On mobile, show action buttons at the bottom of the screen</Trans>}
checked={mobileFooter}
onChange={async e => await dispatch(changeMobileFooter(e.currentTarget.checked))}
/>
<Divider label={<Trans>Entry headers</Trans>} labelPosition="center" />
<Select
description={<Trans>Show star icon</Trans>}
value={starIconDisplayMode}
data={displayModeData}
onChange={async s => await dispatch(changeStarIconDisplayMode(s as IconDisplayMode))}
/>
<Select
description={<Trans>Show external link icon</Trans>}
value={externalLinkIconDisplayMode}
data={displayModeData}
onChange={async s => await dispatch(changeExternalLinkIconDisplayMode(s as IconDisplayMode))}
/>
<Switch
label={<Trans>Show CommaFeed's own context menu on right click</Trans>}
checked={customContextMenu}
onChange={async e => await dispatch(changeCustomContextMenu(e.currentTarget.checked))}
/>
<Divider label={<Trans>Scrolling</Trans>} labelPosition="center" />
<Radio.Group
label={<Trans>Scroll selected entry to the top of the page</Trans>}
value={scrollMode}
onChange={async value => await dispatch(changeScrollMode(value as ScrollMode))}
>
<Group mt="xs">
{Object.entries(scrollModeOptions).map(e => (
<Radio key={e[0]} value={e[0]} label={e[1]} />
))}
</Group>
</Radio.Group>
<Switch
label={<Trans>On mobile, show action buttons at the bottom of the screen</Trans>}
checked={mobileFooter}
onChange={async e => await dispatch(changeMobileFooter(e.currentTarget.checked))}
label={<Trans>Scroll smoothly when navigating between entries</Trans>}
checked={scrollSpeed ? scrollSpeed > 0 : false}
onChange={async e => await dispatch(changeScrollSpeed(e.currentTarget.checked))}
/>
<Switch
label={<Trans>In expanded view, scrolling through entries mark them as read</Trans>}
checked={scrollMarks}
onChange={async e => await dispatch(changeScrollMarks(e.currentTarget.checked))}
/>
<Divider label={<Trans>Sharing sites</Trans>} labelPosition="center" />

View File

@@ -99,7 +99,7 @@ export function ProfileSettings() {
}
>
<Box>
<Anchor href="rest/feed/export" download="commafeed_opml.xml">
<Anchor href="rest/feed/export" download="commafeed.opml">
<Trans>Download</Trans>
</Anchor>
</Box>

View File

@@ -1,6 +1,5 @@
import { Box, Center, type MantineTheme, useMantineTheme } from "@mantine/core"
import { Box, Center } from "@mantine/core"
import { FeedFavicon } from "components/content/FeedFavicon"
import { useColorScheme } from "hooks/useColorScheme"
import React, { type ReactNode } from "react"
import { tss } from "tss"
import { UnreadCount } from "./UnreadCount"
@@ -20,8 +19,6 @@ interface TreeNodeProps {
const useStyles = tss
.withParams<{
theme: MantineTheme
colorScheme: "dark" | "light"
selected: boolean
hasError: boolean
hasUnread: boolean
@@ -60,11 +57,7 @@ const useStyles = tss
})
export function TreeNode(props: TreeNodeProps) {
const theme = useMantineTheme()
const colorScheme = useColorScheme()
const { classes } = useStyles({
theme,
colorScheme,
selected: props.selected,
hasError: props.hasError,
hasUnread: props.unread > 0,

View File

@@ -1,4 +1,5 @@
import { Badge, Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import { tss } from "tss"
const useStyles = tss.create(() => ({
@@ -16,7 +17,7 @@ export function UnreadCount(props: { unreadCount: number }) {
const count = props.unreadCount >= 10000 ? "10k+" : props.unreadCount
return (
<Tooltip label={props.unreadCount} disabled={props.unreadCount === count}>
<Tooltip label={props.unreadCount} disabled={props.unreadCount === count} openDelay={Constants.tooltip.delay}>
<Badge className={classes.badge} variant="light">
{count}
</Badge>

View File

@@ -49,7 +49,7 @@ export const useBrowserExtension = () => {
)
}
}
const setBadgeUnreadCount = (count: number) => w.postMessage(`set-badge-unread-count:${count}`, "*")
const setBadgeUnreadCount = (count: number | string) => w.postMessage(`set-badge-unread-count:${count}`, "*")
return {
browserExtensionVersion,

View File

@@ -38,9 +38,8 @@ export const useWebSocket = () => {
ws.onopen = () => dispatch(setWebSocketConnected(true))
ws.onclose = () => dispatch(setWebSocketConnected(false))
ws.onmessage = event => {
const { data } = event
if (typeof data === "string") {
handleMessage(dispatch, data)
if (typeof event.data === "string") {
handleMessage(dispatch, event.data)
}
}
}

View File

@@ -6,53 +6,53 @@ import { useEffect } from "react"
interface Locale {
key: string
label: string
daysjsImportFn: () => Promise<ILocale>
dayjsImportFn: () => Promise<ILocale>
}
// add an object to the array to add a new locale
// don't forget to also add it to the 'locales' array in .linguirc
export const locales: Locale[] = [
{ key: "ar", label: "العربية", daysjsImportFn: async () => await import("dayjs/locale/ar") },
{ key: "ca", label: "Català", daysjsImportFn: async () => await import("dayjs/locale/ca") },
{ key: "cs", label: "Čeština", daysjsImportFn: async () => await import("dayjs/locale/cs") },
{ key: "cy", label: "Cymraeg", daysjsImportFn: async () => await import("dayjs/locale/cy") },
{ key: "da", label: "Danish", daysjsImportFn: async () => await import("dayjs/locale/da") },
{ key: "de", label: "Deutsch", daysjsImportFn: async () => await import("dayjs/locale/de") },
{ key: "en", label: "English", daysjsImportFn: async () => await import("dayjs/locale/en") },
{ key: "es", label: "Español", daysjsImportFn: async () => await import("dayjs/locale/es") },
{ key: "fa", label: "فارسی", daysjsImportFn: async () => await import("dayjs/locale/fa") },
{ key: "fi", label: "Suomi", daysjsImportFn: async () => await import("dayjs/locale/fi") },
{ key: "fr", label: "Français", daysjsImportFn: async () => await import("dayjs/locale/fr") },
{ key: "gl", label: "Galician", daysjsImportFn: async () => await import("dayjs/locale/gl") },
{ key: "hu", label: "Magyar", daysjsImportFn: async () => await import("dayjs/locale/hu") },
{ key: "id", label: "Indonesian", daysjsImportFn: async () => await import("dayjs/locale/id") },
{ key: "it", label: "Italiano", daysjsImportFn: async () => await import("dayjs/locale/it") },
{ key: "ja", label: "日本語", daysjsImportFn: async () => await import("dayjs/locale/ja") },
{ key: "ko", label: "한국어", daysjsImportFn: async () => await import("dayjs/locale/ko") },
{ key: "ms", label: "Bahasa Malaysian", daysjsImportFn: async () => await import("dayjs/locale/ms") },
{ key: "nb", label: "Norsk (bokmål)", daysjsImportFn: async () => await import("dayjs/locale/nb") },
{ key: "nl", label: "Nederlands", daysjsImportFn: async () => await import("dayjs/locale/nl") },
{ key: "nn", label: "Norsk (nynorsk)", daysjsImportFn: async () => await import("dayjs/locale/nn") },
{ key: "pl", label: "Polski", daysjsImportFn: async () => await import("dayjs/locale/pl") },
{ key: "pt", label: "Português", daysjsImportFn: async () => await import("dayjs/locale/pt") },
{ key: "ru", label: "Русский", daysjsImportFn: async () => await import("dayjs/locale/ru") },
{ key: "sk", label: "Slovenčina", daysjsImportFn: async () => await import("dayjs/locale/sk") },
{ key: "sv", label: "Svenska", daysjsImportFn: async () => await import("dayjs/locale/sv") },
{ key: "tr", label: "Türkçe", daysjsImportFn: async () => await import("dayjs/locale/tr") },
{ key: "zh", label: "简体中文", daysjsImportFn: async () => await import("dayjs/locale/zh") },
{ key: "ar", label: "العربية", dayjsImportFn: async () => await import("dayjs/locale/ar") },
{ key: "ca", label: "Català", dayjsImportFn: async () => await import("dayjs/locale/ca") },
{ key: "cs", label: "Čeština", dayjsImportFn: async () => await import("dayjs/locale/cs") },
{ key: "cy", label: "Cymraeg", dayjsImportFn: async () => await import("dayjs/locale/cy") },
{ key: "da", label: "Danish", dayjsImportFn: async () => await import("dayjs/locale/da") },
{ key: "de", label: "Deutsch", dayjsImportFn: async () => await import("dayjs/locale/de") },
{ key: "en", label: "English", dayjsImportFn: async () => await import("dayjs/locale/en") },
{ key: "es", label: "Español", dayjsImportFn: async () => await import("dayjs/locale/es") },
{ key: "fa", label: "فارسی", dayjsImportFn: async () => await import("dayjs/locale/fa") },
{ key: "fi", label: "Suomi", dayjsImportFn: async () => await import("dayjs/locale/fi") },
{ key: "fr", label: "Français", dayjsImportFn: async () => await import("dayjs/locale/fr") },
{ key: "gl", label: "Galician", dayjsImportFn: async () => await import("dayjs/locale/gl") },
{ key: "hu", label: "Magyar", dayjsImportFn: async () => await import("dayjs/locale/hu") },
{ key: "id", label: "Indonesian", dayjsImportFn: async () => await import("dayjs/locale/id") },
{ key: "it", label: "Italiano", dayjsImportFn: async () => await import("dayjs/locale/it") },
{ key: "ja", label: "日本語", dayjsImportFn: async () => await import("dayjs/locale/ja") },
{ key: "ko", label: "한국어", dayjsImportFn: async () => await import("dayjs/locale/ko") },
{ key: "ms", label: "Bahasa Malaysian", dayjsImportFn: async () => await import("dayjs/locale/ms") },
{ key: "nb", label: "Norsk (bokmål)", dayjsImportFn: async () => await import("dayjs/locale/nb") },
{ key: "nl", label: "Nederlands", dayjsImportFn: async () => await import("dayjs/locale/nl") },
{ key: "nn", label: "Norsk (nynorsk)", dayjsImportFn: async () => await import("dayjs/locale/nn") },
{ key: "pl", label: "Polski", dayjsImportFn: async () => await import("dayjs/locale/pl") },
{ key: "pt", label: "Português", dayjsImportFn: async () => await import("dayjs/locale/pt") },
{ key: "ru", label: "Русский", dayjsImportFn: async () => await import("dayjs/locale/ru") },
{ key: "sk", label: "Slovenčina", dayjsImportFn: async () => await import("dayjs/locale/sk") },
{ key: "sv", label: "Svenska", dayjsImportFn: async () => await import("dayjs/locale/sv") },
{ key: "tr", label: "Türkçe", dayjsImportFn: async () => await import("dayjs/locale/tr") },
{ key: "zh", label: "简体中文", dayjsImportFn: async () => await import("dayjs/locale/zh") },
]
function activateLocale(locale: string) {
// lingui
import(`./locales/${locale}/messages.po`).then(data => {
i18n.load(locale, data.messages as Messages)
import(`./locales/${locale}/messages.po`).then((data: { messages: Messages }) => {
i18n.load(locale, data.messages)
i18n.activate(locale)
})
// dayjs
locales
.find(l => l.key === locale)
?.daysjsImportFn()
?.dayjsImportFn()
.then(() => dayjs.locale(locale))
}

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "الكل"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "دخول"
msgid "Enter your current password to change profile settings"
msgstr "أدخل كلمة المرور الحالية لتغيير إعدادات ملف التعريف"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "خطأ"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "الملف مطلوب"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "تصفية التعبير"
@@ -407,6 +408,10 @@ msgstr "المرجع نفسه"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "إذا لم يكن فارغًا ، فسيتم تقييم التعبير إلى \"صواب\" أو \"خطأ\". "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "إذا واجهت مشكلة ، فالرجاء الإبلاغ عنها على صفحة مشكلات مشروع GitHub."
@@ -541,6 +546,11 @@ msgstr "الاسم"
msgid "Navigate to a subscription by entering its name"
msgstr "انتقل إلى اشتراك بإدخال اسمه"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "كلمة مرور جديدة"
@@ -566,6 +576,10 @@ msgstr "اختصار العنصر غير المقروء التالي"
msgid "No more entries"
msgstr "لا مزيد من الإدخالات"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "لم يتم العثور على شيء"
@@ -574,6 +588,14 @@ msgstr "لم يتم العثور على شيء"
msgid "Oldest first"
msgstr "الأقدم أولا"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "فتح الإدخال الحالي في علامة تبويب جديدة في الخلفية"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "افتح الرابط"
@@ -635,6 +658,10 @@ msgstr "تصدير OPML"
msgid "OPML file"
msgstr "ملف OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "طلب"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "حفظ"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "قم بالتمرير بسلاسة عند التنقل بين الإدخالات"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "إظهار موجز ويب والفئات التي لا تحتوي على إدخالات غير مقروءة"
@@ -779,6 +818,10 @@ msgstr "إظهار تعليمات اختصار لوحة المفاتيح"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "فضاء"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "النجم"
@@ -881,6 +925,7 @@ msgstr "غير مقروءة"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "إلغاء النجم"

View File

@@ -15,11 +15,11 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
msgstr "<0>CommaFeed és un projecte de codi obert. El codi font està allotjat a </0><1>GitHub</1>."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1>."
msgstr ""
msgstr "<0>La sintaxi completa està disponible </0><1>aquí</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +27,7 @@ msgstr "<0>Teniu un compte?</0><1>Inicieu la sessió!</1>"
#: src/pages/app/DonatePage.tsx
msgid "<0>Hey,</0><1>I'm Jérémie from Belgium and I've been working on CommaFeed in my free time for over 10 years now. Thanks for taking an interest in helping me continue supporting CommaFeed.</1>"
msgstr ""
msgstr "<0>Ei,</0><1> sóc la Jérémie de Bèlgica i fa més de 10 anys que treballo a CommaFeed en el meu temps lliure. Gràcies per interessar-te i ajudar-me a continuar donant suport a CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -68,8 +68,9 @@ msgid "All"
msgstr "Tot"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Sempre"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -85,7 +86,7 @@ msgstr "Analitzar el feed"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Anunci"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
@@ -117,7 +118,7 @@ msgstr "Estàs segur que vols cancel·lar la subscripció a <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Asc"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Available variables are 'title', 'content', 'url' 'author' and 'categories' and their content is converted to lower case to ease string comparison."
@@ -133,11 +134,11 @@ msgstr "Tornar a iniciar sessió"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
msgstr "Extensió del navegador necessària per a Chrome"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Extensió del navegador"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -173,15 +174,15 @@ msgstr "Comproveu que el canal funciona"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Tanca el menu"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Versió de l'extensió del navegador CommaFeed {browserExtensionVersion}."
#: src/components/settings/ProfileSettings.tsx
msgid "CommaFeed is compatible with the Fever API. Use the following URL in your Fever-compatible mobile client. Login with your username and your <0>API key</0>."
msgstr ""
msgstr "CommaFeed és compatible amb l'API Fever. Utilitzeu l'URL següent al vostre client mòbil compatible amb Fever. Inicieu sessió amb el vostre nom d'usuari i la vostra <0>clau API</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -189,7 +190,7 @@ msgstr "CommaFeed següent element no llegit"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed versió {version} ({version})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -201,7 +202,7 @@ msgstr "Compacte"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm"
msgstr "Confirmar"
msgstr "Confirma"
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm password"
@@ -213,7 +214,7 @@ msgstr "Acollidor"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -221,19 +222,19 @@ msgstr "Contrasenya actual"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Codi personalitzat"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Regles CSS personalitzades que s'aplicaran"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Codi JS personalitzat que s'executarà en carregar la pàgina"
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
msgstr "Fosc"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
@@ -258,11 +259,11 @@ msgstr "Suprimeix l'usuari"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Desc"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detallat"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
@@ -272,7 +273,7 @@ msgstr "Mostra"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Donar"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -312,9 +313,13 @@ msgstr "Entra"
msgid "Enter your current password to change profile settings"
msgstr "introduïu la vostra contrasenya actual per canviar la configuració del perfil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr ""
msgstr "Error"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
@@ -331,7 +336,7 @@ msgstr "exporteu les vostres subscripcions i categories com a fitxer OPML que es
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Opcions de l'extensió"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
@@ -345,7 +350,7 @@ msgstr "URL del canal"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Carrega tots els meus feeds ara"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "el fitxer és necessari"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Expressió de filtratge"
@@ -385,7 +386,7 @@ msgstr "URL del feed generat"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Vés a {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -401,12 +402,16 @@ msgstr "Bones"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
msgstr "Id"
#: src/pages/app/FeedDetailsPage.tsx
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Si no està buida, una expressió que s'avalua com a \"vertader\" o \"fals\". "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "Si l'entrada no encaixa del tot a la pantalla"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Si trobeu un problema, informeu-lo a la pàgina de problemes del projecte GitHub."
@@ -447,7 +452,7 @@ msgstr "últim missatge d'actualització"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Clar"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -515,7 +520,7 @@ msgstr "mètriques"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Clic central"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -541,6 +546,11 @@ msgstr "Nom"
msgid "Navigate to a subscription by entering its name"
msgstr "Navegueu a una subscripció introduint-ne el nom"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Mai"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Contrasenya nova"
@@ -566,6 +576,10 @@ msgstr "Següent marcador d'elements no llegit"
msgid "No more entries"
msgstr "No hi ha més entrades"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "No s'ha trobat res"
@@ -575,16 +589,24 @@ msgid "Oldest first"
msgstr "el més vell primer"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr "Al mòbil, mostra els botons d'acció a la part inferior de la pantalla"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "Vaja!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Obre CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -595,20 +617,21 @@ msgid "Open current entry in a new tab in the background"
msgstr "Obre l'entrada actual en una pestanya nova al fons"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Enllaç obert"
msgstr "Obre l'enllaç obert"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Obre l'enllaç a una pestanya de fons nova"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Obre l'enllaç en una pestanya nova"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Obre el menú"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -624,7 +647,7 @@ msgstr "Obrir/tancar l'entrada actual"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
@@ -635,6 +658,10 @@ msgstr "Exportació OPML"
msgid "OPML file"
msgstr "Fitxer OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordre"
@@ -670,7 +697,7 @@ msgstr "Posició"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Anterior"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
@@ -696,7 +723,7 @@ msgstr "API REST"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Clic dret"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Desa"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr "Desplaceu-vos per l'entrada seleccionada fins a la part superior de la pàgina"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Desplaceu-vos suaument quan navegueu entre entrades"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr "Desplaçament"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -753,18 +788,22 @@ msgstr "canvi"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Mostra el menú contextual de CommaFeed fent clic amb el botó dret"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Mostra la confirmació en marcar totes les entrades com a llegides"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Mostra el menú d'entrada (escriptori)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr "Mostra el menú d'entrada (mòbil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
@@ -777,13 +816,17 @@ msgstr "Mostra l'ajuda de la drecera del teclat"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr "Mostra el menú natiu (escriptori)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
msgstr "Inscriu-te"
msgstr "Registra't"
#: src/pages/ErrorPage.tsx
msgid "Something bad just happened..."
@@ -796,6 +839,7 @@ msgstr "Espai"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Estrella"
@@ -824,7 +868,7 @@ msgstr "Éxit"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Feu lliscar la capçalera cap a l'esquerra"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -836,7 +880,7 @@ msgstr "Canvia al tema clar"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Sistema"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -853,7 +897,7 @@ msgstr "Tema"
#: src/components/settings/ProfileSettings.tsx
msgid "This is your API key. It can be used for some read-only API operations and grants access to the Fever API. Use the form at the bottom of the page to generate a new API key"
msgstr ""
msgstr "Aquesta és la vostra clau de l'API. Es pot utilitzar per a algunes operacions de l'API de només lectura i permet accedir a l'API Fever. Utilitzeu el formulari de la part inferior de la pàgina per generar una nova clau d'API."
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -861,11 +905,11 @@ msgstr "Canvia l'estat de lectura de l'entrada actual"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Canvia la barra lateral"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Commuta l'estat destacat de l'entrada actual"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -873,7 +917,7 @@ msgstr "Proveu CommaFeed amb el compte de demostració: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Prova la demostració!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -881,6 +925,7 @@ msgstr "Sense llegir"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desestrellar"
@@ -912,4 +957,4 @@ msgstr "Encara no teniu cap subscripció. "
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Els vostres feeds s'han posat a la cua per actualitzar-los."

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Všechny"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Vstupte"
msgid "Enter your current password to change profile settings"
msgstr "Zadejte své aktuální heslo pro změnu nastavení profilu"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Chyba"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrování výrazu"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Pokud není prázdný, výraz vyhodnocený jako 'true' nebo 'false'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Pokud narazíte na problém, nahlaste jej prosím na stránce problémů projektu GitHub."
@@ -541,6 +546,11 @@ msgstr "Jméno"
msgid "Navigate to a subscription by entering its name"
msgstr "Přejděte na předplatné zadáním jeho názvu"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nové heslo"
@@ -566,6 +576,10 @@ msgstr "Další nepřečtená položka bookmarklet"
msgid "No more entries"
msgstr "Žádné další záznamy"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nic nebylo nalezeno"
@@ -574,6 +588,14 @@ msgstr "Nic nebylo nalezeno"
msgid "Oldest first"
msgstr "Nejdříve nejstarší"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Otevřít aktuální položku na nové kartě na pozadí"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Otevřít odkaz"
@@ -635,6 +658,10 @@ msgstr "Export OPML"
msgid "OPML file"
msgstr "soubor OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Objednávka"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Uložit"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Posouvejte plynule při navigaci mezi položkami"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Zobrazit kanály a kategorie bez nepřečtených položek"
@@ -779,6 +818,10 @@ msgstr "Zobrazit nápovědu ke klávesovým zkratkám"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Vesmír"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Hvězda"
@@ -881,6 +925,7 @@ msgstr "Nepřečteno"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Odstranit hvězdu"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Pawb"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Ewch i mewn"
msgid "Enter your current password to change profile settings"
msgstr "Rhowch eich cyfrinair presennol i newid gosodiadau proffil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Gwall"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "mae angen y ffeil"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Hidlo mynegiant"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Os nad yw'n wag, mynegiad sy'n gwerthuso i 'gwir' neu 'anghywir'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Os byddwch yn dod ar draws mater, rhowch wybod amdano ar dudalen materion y prosiect GitHub."
@@ -541,6 +546,11 @@ msgstr "Enw"
msgid "Navigate to a subscription by entering its name"
msgstr "Llywiwch i danysgrifiad trwy nodi ei enw"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Cyfrinair newydd"
@@ -566,6 +576,10 @@ msgstr "Llyfrnod yr eitem nesaf heb ei darllen"
msgid "No more entries"
msgstr "Dim mwy o gofnodion"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Dim wedi'i ddarganfod"
@@ -574,6 +588,14 @@ msgstr "Dim wedi'i ddarganfod"
msgid "Oldest first"
msgstr "Hynaf yn gyntaf"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Agorwch y cofnod cyfredol mewn tab newydd yn y cefndir"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Dolen agored"
@@ -635,6 +658,10 @@ msgstr "allforio OPML"
msgid "OPML file"
msgstr "ffeil OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "gorchymyn"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Arbed"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Sgroliwch yn esmwyth wrth lywio rhwng cofnodion"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Dangos ffrydiau a chategorïau heb unrhyw gofnodion heb eu darllen"
@@ -779,6 +818,10 @@ msgstr "Dangos cymorth llwybr byr bysellfwrdd"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Gofod"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "seren"
@@ -881,6 +925,7 @@ msgstr "Heb ei ddarllen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "dad-seren"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Alle"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr ""
msgid "Enter your current password to change profile settings"
msgstr "Indtast din nuværende adgangskode for at ændre profilindstillinger"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fejl"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "fil er påkrævet"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrerende udtryk"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Hvis det ikke er tomt, et udtryk, der vurderes til 'sand' eller 'falsk'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Hvis du støder på et problem, bedes du rapportere det på problemsiden for GitHub-projektet."
@@ -541,6 +546,11 @@ msgstr "Navn"
msgid "Navigate to a subscription by entering its name"
msgstr "Naviger til et abonnement ved at indtaste dets navn"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Ny adgangskode"
@@ -566,6 +576,10 @@ msgstr "Næste ulæste emne bogmærke"
msgid "No more entries"
msgstr "Ingen flere poster"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Intet fundet"
@@ -574,6 +588,14 @@ msgstr "Intet fundet"
msgid "Oldest first"
msgstr "Ældst først"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Åbn den aktuelle post i en ny fane i baggrunden"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Åbent link"
@@ -635,6 +658,10 @@ msgstr "OPML eksport"
msgid "OPML file"
msgstr "OPML fil"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestilling"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Gem"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Rul jævnt, når du navigerer mellem poster"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Vis feeds og kategorier uden ulæste poster"
@@ -779,6 +818,10 @@ msgstr "Vis hjælp til tastaturgenveje"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Rum"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjerne"
@@ -881,6 +925,7 @@ msgstr "Ulæst"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""

View File

@@ -15,11 +15,11 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "CommaFeed ist ein Open Source Projekt. Der Quellcode wird auf auf </0><1>GitHub</1> gehostet."
msgstr "<0>CommaFeed ist ein Open Source Projekt. Der Quellcode wird auf auf </0><1>GitHub</1> gehostet."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1>."
msgstr "Vollständiger Syntax ist </0><1>hier</1> verfügbar."
msgstr "<0>Die vollständige Syntax ist </0><1>hier</1> verfügbar."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +27,7 @@ msgstr "<0>Haben Sie ein Konto?</0><1>Melden Sie sich an!</1>"
#: src/pages/app/DonatePage.tsx
msgid "<0>Hey,</0><1>I'm Jérémie from Belgium and I've been working on CommaFeed in my free time for over 10 years now. Thanks for taking an interest in helping me continue supporting CommaFeed.</1>"
msgstr ""
msgstr "<0>Hey,</0><1>Ich bin Jérémie aus Belgien und arbeite seit über 10 Jahren in meiner Freizeit an CommaFeed. Vielen Dank für das Interesse, CommaFeed weiterhin zu unterstützen.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -68,12 +68,13 @@ msgid "All"
msgstr "Alle"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Immer"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
msgstr "Eine E-Mail wurde gesendet, wenn diese Adresse registriert wurde. Bitte den Posteingang prüfen."
msgstr "Falls diese Adresse registriert ist, wurde eine E-Mail gesendet. Bitte den Posteingang prüfen."
#: src/components/content/add/ImportOpml.tsx
msgid "An opml file is an XML file containing feed URLs and categories. You can get an OPML file by exporting your data from other feed reading services."
@@ -169,19 +170,19 @@ msgstr "Das Ändern des Passworts generiert einen neuen API-Schlüssel"
#: src/components/content/add/Subscribe.tsx
msgid "Check that the feed is working"
msgstr "Überprüfen Sie, ob der Feed funktioniert"
msgstr "Überprüfe, ob der Feed funktioniert"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Menü schließen"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "CommaFeed Browser Erweiterung Version {browserExtensionVersion}."
#: src/components/settings/ProfileSettings.tsx
msgid "CommaFeed is compatible with the Fever API. Use the following URL in your Fever-compatible mobile client. Login with your username and your <0>API key</0>."
msgstr ""
msgstr "CommaFeed ist mit der Fever-API kompatibel. Verwenden Sie die folgende URL in Ihrem Fever-kompatiblen mobilen Client. Melden Sie sich mit Ihrem Benutzernamen und Ihrem <0>API-Schlüssel</0> an."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -189,7 +190,7 @@ msgstr "CommaFeed nächstes ungelesenes Element"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed version {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,19 +222,19 @@ msgstr "Aktuelles Passwort"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Eigener Code"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Eigene CSS Regeln die angewandt werden"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Einer JS Code der beim Laden der Seite ausgeführt wird"
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
msgstr "Dunkel"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
@@ -262,7 +263,7 @@ msgstr "Beschr"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detailliert"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
@@ -312,13 +313,17 @@ msgstr "Eintreten"
msgid "Enter your current password to change profile settings"
msgstr "Geben Sie Ihr aktuelles Passwort ein, um die Profileinstellungen zu ändern"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fehler"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Beispiel: {Beispiel}."
msgstr "Beispiel: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "Datei ist erforderlich"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filterausdruck"
@@ -405,7 +406,11 @@ msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Wenn nicht leer, ein Ausdruck, der als „wahr“ oder „falsch“ ausgewertet wird. "
msgstr "Wenn nicht leer, ein Ausdruck, der als „wahr“ oder „falsch“ ausgewertet wird."
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "Wenn der Eintrag nicht ganz auf den Bildschirm passt"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -447,7 +452,7 @@ msgstr "Letzte Aktualisierungsmeldung"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Hell"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -541,6 +546,11 @@ msgstr ""
msgid "Navigate to a subscription by entering its name"
msgstr "Navigieren Sie zu einem Abonnement, indem Sie seinen Namen eingeben"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Niemals"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Neues Passwort"
@@ -566,6 +576,10 @@ msgstr "Lesezeichen für das nächste ungelesene Element"
msgid "No more entries"
msgstr "Keine weiteren Einträge"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nichts gefunden"
@@ -575,16 +589,24 @@ msgid "Oldest first"
msgstr "Älteste zuerst"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr "Auf mobilen Geräten die Aktion-Buttons am unteren Ende des Bildschirms anzeigen"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "Ups!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "CommaFeed öffnen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Aktuellen Eintrag in neuem Tab im Hintergrund öffnen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Link öffnen"
@@ -608,7 +631,7 @@ msgstr "Link in neuem Tab öffnen"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Menü öffnen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -635,6 +658,10 @@ msgstr "OPML-Export"
msgid "OPML file"
msgstr "OPML-Datei"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestellung"
@@ -706,10 +733,18 @@ msgstr "Rechtsklick"
msgid "Save"
msgstr "Speichern"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr "Ausgewählten Eintrag an den Anfang der Seite verschieben"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Schnelles Scrollen beim Navigieren zwischen Einträgen"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr "Scrollen"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -761,10 +796,14 @@ msgstr "Bestätigung beim Markieren von allen Einträgen als gelesen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Eintragsmenü anzeigen (Desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr "Eintragsmenü anzeigen (Handy)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
@@ -777,6 +816,10 @@ msgstr "Tastenkürzel-Hilfe anzeigen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr "Natives Menü anzeigen (Desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
@@ -796,6 +839,7 @@ msgstr "Raum"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stern"
@@ -824,7 +868,7 @@ msgstr "Erfolg"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Kopfzeile nach links schieben"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -853,7 +897,7 @@ msgstr "Thema"
#: src/components/settings/ProfileSettings.tsx
msgid "This is your API key. It can be used for some read-only API operations and grants access to the Fever API. Use the form at the bottom of the page to generate a new API key"
msgstr ""
msgstr "Dies ist Ihr API-Schlüssel. Er kann für einige schreibgeschützte API-Vorgänge verwendet werden und ermöglicht den Zugriff auf die Fever-API. Verwenden Sie das Formular unten auf der Seite, um einen neuen API-Schlüssel zu generieren"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -881,6 +925,7 @@ msgstr "Ungelesen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Stern entfernen"
@@ -908,7 +953,7 @@ msgstr "Webseite"
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Sie haben noch keine Abonnements. "
msgstr "Sie haben noch keine Abonnements."
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."

View File

@@ -68,8 +68,9 @@ msgid "All"
msgstr "All"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
msgstr "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Always"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -312,6 +313,10 @@ msgstr "Enter"
msgid "Enter your current password to change profile settings"
msgstr "Enter your current password to change profile settings"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr "Entry headers"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Error"
@@ -355,10 +360,6 @@ msgstr "Fever API"
msgid "Fever API URL"
msgstr "Fever API URL"
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "file is required"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtering expression"
@@ -407,6 +408,10 @@ msgstr "Id"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "If the entry doesn't entirely fit on the screen"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -541,6 +546,11 @@ msgstr "Name"
msgid "Navigate to a subscription by entering its name"
msgstr "Navigate to a subscription by entering its name"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Never"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "New password"
@@ -566,6 +576,10 @@ msgstr "Next unread item bookmarklet"
msgid "No more entries"
msgstr "No more entries"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr "No sharing options available."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nothing found"
@@ -574,6 +588,14 @@ msgstr "Nothing found"
msgid "Oldest first"
msgstr "Oldest first"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr "On desktop"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr "On mobile"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr "On mobile, show action buttons at the bottom of the screen"
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Open current entry in a new tab in the background"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Open link"
@@ -635,6 +658,10 @@ msgstr "OPML export"
msgid "OPML file"
msgstr "OPML file"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr "OPML file is required"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Order"
@@ -706,10 +733,18 @@ msgstr "Right click"
msgid "Save"
msgstr "Save"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr "Scroll selected entry to the top of the page"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Scroll smoothly when navigating between entries"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr "Scrolling"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr "Show entry menu (desktop)"
msgid "Show entry menu (mobile)"
msgstr "Show entry menu (mobile)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr "Show external link icon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Show feeds and categories with no unread entries"
@@ -779,6 +818,10 @@ msgstr "Show keyboard shortcut help"
msgid "Show native menu (desktop)"
msgstr "Show native menu (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr "Show star icon"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Space"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Star"
@@ -881,6 +925,7 @@ msgstr "Unread"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Unstar"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Todo"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Entrar"
msgid "Enter your current password to change profile settings"
msgstr "Ingrese su contraseña actual para cambiar la configuración del perfil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr ""
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "archivo requerido"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Expresión de filtrado"
@@ -407,6 +408,10 @@ msgstr "Identificación"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Si no está vacío, una expresión que se evalúa como 'verdadero' o 'falso'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Si encuentra un problema, infórmelo en la página de problemas del proyecto GitHub."
@@ -541,6 +546,11 @@ msgstr "Nombre"
msgid "Navigate to a subscription by entering its name"
msgstr "Navegar a una suscripción ingresando su nombre"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nueva contraseña"
@@ -566,6 +576,10 @@ msgstr "Bookmarklet del siguiente elemento no leído"
msgid "No more entries"
msgstr "No más entradas"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nada encontrado"
@@ -574,6 +588,14 @@ msgstr "Nada encontrado"
msgid "Oldest first"
msgstr "más antigua primero"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Abrir la entrada actual en una nueva pestaña en segundo plano"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Abrir enlace"
@@ -635,6 +658,10 @@ msgstr "Exportación OPML"
msgid "OPML file"
msgstr "archivo OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Orden"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Guardar"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Desplazarse suavemente al navegar entre entradas"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Mostrar feeds y categorías sin entradas no leídas"
@@ -779,6 +818,10 @@ msgstr "Mostrar ayuda de atajo de teclado"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Espacio"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "estrella"
@@ -881,6 +925,7 @@ msgstr "No leído"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desmarcar"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "همه"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "وارد شوید"
msgid "Enter your current password to change profile settings"
msgstr "رمز عبور فعلی خود را برای تغییر تنظیمات نمایه وارد کنید"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "خطا"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "فایل مورد نیاز است"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "بیان فیلتر"
@@ -407,6 +408,10 @@ msgstr "شناسه"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "اگر خالی نباشد، عبارتی به \"درست\" یا \"نادرست\" ارزیابی می شود. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "اگر با مشکلی مواجه شدید، لطفاً آن را در صفحه مشکلات پروژه GitHub گزارش دهید."
@@ -541,6 +546,11 @@ msgstr "نام"
msgid "Navigate to a subscription by entering its name"
msgstr "با وارد کردن نام اشتراک، به آن بروید"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "رمز عبور جدید"
@@ -566,6 +576,10 @@ msgstr "بوکمارک مورد خوانده نشده بعدی"
msgid "No more entries"
msgstr "ورودی دیگری وجود ندارد"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "چیزی پیدا نشد"
@@ -574,6 +588,14 @@ msgstr "چیزی پیدا نشد"
msgid "Oldest first"
msgstr "قدیمی ترین اول"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "ورودی فعلی را در یک برگه جدید در پس زمینه باز کنید"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "پیوند را باز کنید"
@@ -635,6 +658,10 @@ msgstr "صادرات OPML"
msgid "OPML file"
msgstr "فایل OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "سفارش"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "ذخیره کنید"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "هنگام پیمایش بین ورودی‌ها به آرامی حرکت کنید"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "فیدها و دسته ها را بدون ورودی خوانده نشده نشان دهید"
@@ -779,6 +818,10 @@ msgstr "نمایش راهنمایی میانبر صفحه کلید"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "فضا"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "ستاره"
@@ -881,6 +925,7 @@ msgstr "خوانده نشده"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Kaikki"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr ""
msgid "Enter your current password to change profile settings"
msgstr "Anna nykyinen salasanasi muuttaaksesi profiiliasetuksia"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Virhe"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "tiedosto vaaditaan"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Suodattava lauseke"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Jos ei tyhjä, lauseke, jonka arvo on \"tosi\" tai \"epätosi\". "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Jos kohtaat ongelman, ilmoita siitä GitHub-projektin ongelmasivulla."
@@ -541,6 +546,11 @@ msgstr "Nimi"
msgid "Navigate to a subscription by entering its name"
msgstr "Siirry tilaukseen kirjoittamalla sen nimi"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Uusi salasana"
@@ -566,6 +576,10 @@ msgstr "Seuraavan lukemattoman kohteen kirjanmerkki"
msgid "No more entries"
msgstr "Ei enää merkintöjä"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Mitään ei löytynyt"
@@ -574,6 +588,14 @@ msgstr "Mitään ei löytynyt"
msgid "Oldest first"
msgstr "Vanhin ensin"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Avaa nykyinen merkintä uudella välilehdellä taustalla"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Avaa linkki"
@@ -635,6 +658,10 @@ msgstr "OPML-vienti"
msgid "OPML file"
msgstr "OPML-tiedosto"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Tilaus"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Tallenna"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Selaa sujuvasti navigoidessasi merkintöjen välillä"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Näytä syötteet ja luokat ilman lukemattomia merkintöjä"
@@ -779,6 +818,10 @@ msgstr "Näytä pikanäppäimen ohje"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Avaruus"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Tähti"
@@ -881,6 +925,7 @@ msgstr "Lukematon"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Poista tähti"

View File

@@ -68,8 +68,9 @@ msgid "All"
msgstr "Tout"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
msgstr "Toujours remonter l'entrée sélectionnée en haut de la page, même si elle s'affiche complètement à l'écran"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Toujours"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -312,6 +313,10 @@ msgstr "Entrer"
msgid "Enter your current password to change profile settings"
msgstr "Entrez votre mot de passe actuel pour changer les paramètres du profil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Erreur"
@@ -355,10 +360,6 @@ msgstr "API Fever"
msgid "Fever API URL"
msgstr "URL API Fever"
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "fichier requis"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Expression de filtrage"
@@ -407,6 +408,10 @@ msgstr "Identifiant"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Si non vide, une expression évaluant à 'vrai' ou 'faux'. Si faux, les nouvelles entrées de ce flux seront marquées comme lues automatiquement."
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "Si l'entrée ne tient pas entièrement sur l'écran"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Si vous rencontrez un problème, merci de le signaler sur la page du projet GitHub."
@@ -541,6 +546,11 @@ msgstr "Nom"
msgid "Navigate to a subscription by entering its name"
msgstr "Naviguer vers un abonnement en entrant son nom"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Jamais"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nouveau mot de passe"
@@ -566,6 +576,10 @@ msgstr "Bookmarklet vers le prochain article non lu"
msgid "No more entries"
msgstr "Fin de la liste"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Aucun résultat"
@@ -575,9 +589,17 @@ msgid "Oldest first"
msgstr "Du plus ancien au plus récent"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr "Sur mobile, afficher les boutons d'action en bas de l'écran"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "Oups !"
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Ouvrir l'entrée actuelle dans un nouvel onglet en arrière-plan"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Ouvrir le lien"
@@ -635,6 +658,10 @@ msgstr "Export du fichier OPML"
msgid "OPML file"
msgstr "Fichier OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordre"
@@ -706,10 +733,18 @@ msgstr "Clic droit"
msgid "Save"
msgstr "Enregistrer"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr "Faire défiler l'entrée sélectionnée vers le haut de la page"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Défilement animé lors de la navigation entre les entrées"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr "Défilement"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr "Afficher les options de l'entrée (ordinateur)"
msgid "Show entry menu (mobile)"
msgstr "Afficher les options de l'entrée (mobile)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Afficher les flux et les catégories pour lesquels tout est déjà lu"
@@ -779,6 +818,10 @@ msgstr "Montrer les raccourcis clavier"
msgid "Show native menu (desktop)"
msgstr "Afficher les options du navigateur (ordinateur)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Espace"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Ajouter aux favoris"
@@ -881,6 +925,7 @@ msgstr "Non lu"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Retirer des favoris"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Todos"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Entra"
msgid "Enter your current password to change profile settings"
msgstr "Introduce o teu contrasinal actual para cambiar a configuración do perfil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Erro"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "é necesario o ficheiro"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Expresión de filtrado"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Se non está baleira, unha expresión que se avalía como \"verdadeiro\" ou \"falso\". "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Se atopas algún problema, infórmao na páxina de problemas do proxecto GitHub."
@@ -541,6 +546,11 @@ msgstr "Nome"
msgid "Navigate to a subscription by entering its name"
msgstr "Navega a unha subscrición introducindo o seu nome"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "novo contrasinal"
@@ -566,6 +576,10 @@ msgstr "Seguinte marcador de elementos non lidos"
msgid "No more entries"
msgstr "Non hai máis entradas"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Non se atopou nada"
@@ -574,6 +588,14 @@ msgstr "Non se atopou nada"
msgid "Oldest first"
msgstr "O máis vello primeiro"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Abre a entrada actual nunha nova pestana en segundo plano"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "ligazón aberta"
@@ -635,6 +658,10 @@ msgstr "Exportación OPML"
msgid "OPML file"
msgstr "ficheiro OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Orde"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Gardar"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Desprácese suavemente ao navegar entre as entradas"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Mostrar fontes e categorías sen entradas sen ler"
@@ -779,6 +818,10 @@ msgstr "Mostrar axuda do atallo do teclado"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Espazo"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "estrela"
@@ -881,6 +925,7 @@ msgstr "Sen ler"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desestrela"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Mind"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr ""
msgid "Enter your current password to change profile settings"
msgstr "Adja meg jelenlegi jelszavát a profilbeállítások módosításához"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Hiba"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "fájl szükséges"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Szűrő kifejezés"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Ha nem üres, akkor 'igaz' vagy 'hamis' értékre kiértékelő kifejezés. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Ha problémát tapasztal, kérjük, jelentse azt a GitHub projekt problémák oldalán."
@@ -541,6 +546,11 @@ msgstr "Név"
msgid "Navigate to a subscription by entering its name"
msgstr "Navigáljon egy előfizetéshez a nevének megadásával"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Új jelszó"
@@ -566,6 +576,10 @@ msgstr "Következő olvasatlan elem könyvjelző"
msgid "No more entries"
msgstr "Nincs több bejegyzés"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Semmi sem található"
@@ -574,6 +588,14 @@ msgstr "Semmi sem található"
msgid "Oldest first"
msgstr "A legidősebb első"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Az aktuális bejegyzés megnyitása egy új lapon a háttérben"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Link megnyitása"
@@ -635,6 +658,10 @@ msgstr ""
msgid "OPML file"
msgstr "OPML fájl"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Rendelés"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Mentés"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Sima görgetés, amikor a bejegyzések között navigál"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Hírcsatornák és kategóriák megjelenítése olvasatlan bejegyzések nélkül"
@@ -779,6 +818,10 @@ msgstr "A billentyűparancsok súgójának megjelenítése"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr ""
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Csillag"
@@ -881,6 +925,7 @@ msgstr "Olvasatlan"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Semua"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Masuk"
msgid "Enter your current password to change profile settings"
msgstr "Masukkan kata sandi Anda saat ini untuk mengubah pengaturan profil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Kesalahan"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "file diperlukan"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Memfilter ekspresi"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Jika tidak kosong, ekspresi mengevaluasi ke 'benar' atau 'salah'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Jika Anda mengalami masalah, harap laporkan di halaman masalah proyek GitHub."
@@ -541,6 +546,11 @@ msgstr "Nama"
msgid "Navigate to a subscription by entering its name"
msgstr "Navigasikan ke langganan dengan memasukkan namanya"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Kata sandi baru"
@@ -566,6 +576,10 @@ msgstr "Bookmarklet item yang belum dibaca berikutnya"
msgid "No more entries"
msgstr "Tidak ada entri lagi"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Tidak ada yang ditemukan"
@@ -574,6 +588,14 @@ msgstr "Tidak ada yang ditemukan"
msgid "Oldest first"
msgstr "Tertua dulu"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Buka entri saat ini di tab baru di latar belakang"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Buka tautan"
@@ -635,6 +658,10 @@ msgstr "ekspor OPML"
msgid "OPML file"
msgstr "file OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Pesan"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Simpan"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Gulir dengan lancar saat menavigasi antar entri"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Tampilkan umpan dan kategori tanpa entri yang belum dibaca"
@@ -779,6 +818,10 @@ msgstr "Tampilkan bantuan pintasan keyboard"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Luar Angkasa"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Bintang"
@@ -881,6 +925,7 @@ msgstr "Belum Dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Hapus bintang"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Tutto"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Invio"
msgid "Enter your current password to change profile settings"
msgstr "Inserisci la tua password attuale per modificare le impostazioni del profilo"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Errore"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "è richiesto il file"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Espressione filtrante"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Se non è vuota, un'espressione valutata come 'vero' o 'falso'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Se riscontri un problema, segnalalo nella pagina dei problemi del progetto GitHub."
@@ -541,6 +546,11 @@ msgstr "Nome"
msgid "Navigate to a subscription by entering its name"
msgstr "Navigare verso un abbonamento inserendo il suo nome"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nuova password"
@@ -566,6 +576,10 @@ msgstr "Segnalibro successivo elemento non letto"
msgid "No more entries"
msgstr "Non ci sono più voci"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Non è stato trovato nulla"
@@ -574,6 +588,14 @@ msgstr "Non è stato trovato nulla"
msgid "Oldest first"
msgstr "Il più vecchio prima"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Apri la voce corrente in una nuova scheda in background"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Apri collegamento"
@@ -635,6 +658,10 @@ msgstr "Esportazione OPML"
msgid "OPML file"
msgstr "file OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordine"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Salva"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Scorrere senza problemi durante la navigazione tra le voci"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Mostra feed e categorie senza voci non lette"
@@ -779,6 +818,10 @@ msgstr "Mostra la guida alle scorciatoie da tastiera"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Spazio"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stella"
@@ -881,6 +925,7 @@ msgstr "Non letto"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Elimina le stelle"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "全員"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "入力"
msgid "Enter your current password to change profile settings"
msgstr "プロファイル設定を変更するには、現在のパスワードを入力してください"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "エラー"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "ファイルが必要です"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "フィルタリング式"
@@ -407,6 +408,10 @@ msgstr "ID"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "空でない場合は、'true' または 'false' に評価される式。 "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "問題が発生した場合は、GitHub プロジェクトの問題ページで報告してください。"
@@ -541,6 +546,11 @@ msgstr "名前"
msgid "Navigate to a subscription by entering its name"
msgstr "名前を入力してサブスクリプションに移動します"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "新しいパスワード"
@@ -566,6 +576,10 @@ msgstr "次の未読アイテムのブックマークレット"
msgid "No more entries"
msgstr "これ以上エントリはありません"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "何も見つかりませんでした"
@@ -574,6 +588,14 @@ msgstr "何も見つかりませんでした"
msgid "Oldest first"
msgstr "古い順"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "現在のエントリをバックグラウンドで新しいタブで開く"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "リンクを開く"
@@ -635,6 +658,10 @@ msgstr "OPML エクスポート"
msgid "OPML file"
msgstr "OPMLファイル"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "オーダー"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "保存"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "エントリ間を移動するときにスムーズにスクロールする"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "未読エントリのないフィードとカテゴリを表示する"
@@ -779,6 +818,10 @@ msgstr "キーボード ショートカットのヘルプを表示"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "スペース"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "スター"
@@ -881,6 +925,7 @@ msgstr "未読"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "スターを外す"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "전체"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "입력"
msgid "Enter your current password to change profile settings"
msgstr "프로필 설정을 변경하려면 현재 비밀번호를 입력하세요."
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "오류"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "파일이 필요합니다"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "필터링 표현식"
@@ -407,6 +408,10 @@ msgstr "아이디"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "비어 있지 않은 경우 'true' 또는 'false'로 평가되는 표현식입니다. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "문제가 발생하면 GitHub 프로젝트의 문제 페이지에서 보고하세요."
@@ -541,6 +546,11 @@ msgstr "이름"
msgid "Navigate to a subscription by entering its name"
msgstr "이름을 입력하여 구독으로 이동"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "새 비밀번호"
@@ -566,6 +576,10 @@ msgstr "읽지 않은 다음 항목 북마크"
msgid "No more entries"
msgstr "더 이상 항목이 없습니다"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "아무것도 찾을 수 없습니다"
@@ -574,6 +588,14 @@ msgstr "아무것도 찾을 수 없습니다"
msgid "Oldest first"
msgstr "가장 오래된 것부터"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "배경의 새 탭에서 현재 항목 열기"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "링크 열기"
@@ -635,6 +658,10 @@ msgstr "OPML 내보내기"
msgid "OPML file"
msgstr "OPML 파일"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "주문"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "저장"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "항목 간 탐색 시 부드럽게 스크롤"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "읽지 않은 항목이 없는 피드 및 카테고리 표시"
@@ -779,6 +818,10 @@ msgstr "키보드 단축키 도움말 표시"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "우주"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "스타"
@@ -881,6 +925,7 @@ msgstr "읽지 않음"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "별표 제거"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Semua"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Masuk"
msgid "Enter your current password to change profile settings"
msgstr "Masukkan kata laluan semasa anda untuk menukar tetapan profil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Ralat"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "fail diperlukan"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Ungkapan penapisan"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Jika tidak kosong, ungkapan yang menilai kepada 'benar' atau 'palsu'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Jika anda menghadapi isu, sila laporkan pada halaman isu projek GitHub."
@@ -541,6 +546,11 @@ msgstr "Nama"
msgid "Navigate to a subscription by entering its name"
msgstr "Navigasi ke langganan dengan memasukkan namanya"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Kata laluan baharu"
@@ -566,6 +576,10 @@ msgstr "Penanda buku item belum dibaca seterusnya"
msgid "No more entries"
msgstr "Tiada lagi penyertaan"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Tiada apa-apa dijumpai"
@@ -574,6 +588,14 @@ msgstr "Tiada apa-apa dijumpai"
msgid "Oldest first"
msgstr "Tertua dahulu"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Buka entri semasa dalam tab baharu di latar belakang"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Buka pautan"
@@ -635,6 +658,10 @@ msgstr "OPML eksport"
msgid "OPML file"
msgstr "Fail OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Perintah"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Jimat"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Tatal dengan lancar apabila menavigasi antara entri"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Tunjukkan suapan dan kategori tanpa entri yang belum dibaca"
@@ -779,6 +818,10 @@ msgstr "Tunjukkan bantuan pintasan papan kekunci"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Angkasa"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Bintang"
@@ -881,6 +925,7 @@ msgstr "Belum dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Nyahbintang"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Alle"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr ""
msgid "Enter your current password to change profile settings"
msgstr "Skriv inn ditt nåværende passord for å endre profilinnstillinger"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Feil"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "fil kreves"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrerende uttrykk"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Hvis det ikke er tomt, et uttrykk som vurderes til 'sant' eller 'usant'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Hvis du støter på et problem, vennligst rapporter det på problemsiden til GitHub-prosjektet."
@@ -541,6 +546,11 @@ msgstr "Navn"
msgid "Navigate to a subscription by entering its name"
msgstr "Naviger til et abonnement ved å skrive inn navnet"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nytt passord"
@@ -566,6 +576,10 @@ msgstr "Neste uleste element bokmerke"
msgid "No more entries"
msgstr "Ingen flere oppføringer"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Ingenting funnet"
@@ -574,6 +588,14 @@ msgstr "Ingenting funnet"
msgid "Oldest first"
msgstr "Eldste først"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Åpne gjeldende oppføring i en ny fane i bakgrunnen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Åpen lenke"
@@ -635,6 +658,10 @@ msgstr "OPML eksport"
msgid "OPML file"
msgstr "OPML-fil"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ord"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Lagre"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Rull jevnt når du navigerer mellom oppføringer"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Vis feeder og kategorier uten uleste oppføringer"
@@ -779,6 +818,10 @@ msgstr "Vis hurtigtasthjelp"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr ""
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjerne"
@@ -881,6 +925,7 @@ msgstr "Ulest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Fjern stjerne"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Alles"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr ""
msgid "Enter your current password to change profile settings"
msgstr "Voer uw huidige wachtwoord in om de profielinstellingen te wijzigen"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fout"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "bestand is vereist"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Uitdrukking filteren"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Indien niet leeg, een uitdrukking die evalueert naar 'true' of 'false'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Als je een probleem tegenkomt, meld dit dan op de pagina met problemen van het GitHub-project."
@@ -541,6 +546,11 @@ msgstr "Naam"
msgid "Navigate to a subscription by entering its name"
msgstr "Navigeer naar een abonnement door de naam in te voeren"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nieuw wachtwoord"
@@ -566,6 +576,10 @@ msgstr "Bookmarklet volgende ongelezen item"
msgid "No more entries"
msgstr "Geen inzendingen meer"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Niets gevonden"
@@ -574,6 +588,14 @@ msgstr "Niets gevonden"
msgid "Oldest first"
msgstr "Oudste eerst"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Open huidig item in een nieuw tabblad op de achtergrond"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Link openen"
@@ -635,6 +658,10 @@ msgstr "OPML-export"
msgid "OPML file"
msgstr "OPML-bestand"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestelling"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Opslaan"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Vloeiend scrollen bij het navigeren tussen items"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Toon feeds en categorieën zonder ongelezen items"
@@ -779,6 +818,10 @@ msgstr "Toon hulp bij sneltoetsen"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Ruimte"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Ster"
@@ -881,6 +925,7 @@ msgstr "Ongelezen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Sterren uit"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Alle"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr ""
msgid "Enter your current password to change profile settings"
msgstr "Skriv inn ditt nåværende passord for å endre profilinnstillinger"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Feil"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "fil kreves"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrerende uttrykk"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Hvis det ikke er tomt, et uttrykk som vurderes til 'sant' eller 'usant'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Hvis du støter på et problem, vennligst rapporter det på problemsiden til GitHub-prosjektet."
@@ -541,6 +546,11 @@ msgstr "Navn"
msgid "Navigate to a subscription by entering its name"
msgstr "Naviger til et abonnement ved å skrive inn navnet"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nytt passord"
@@ -566,6 +576,10 @@ msgstr "Neste uleste element bokmerke"
msgid "No more entries"
msgstr "Ingen flere oppføringer"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Ingenting funnet"
@@ -574,6 +588,14 @@ msgstr "Ingenting funnet"
msgid "Oldest first"
msgstr "Eldste først"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Åpne gjeldende oppføring i en ny fane i bakgrunnen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Åpen lenke"
@@ -635,6 +658,10 @@ msgstr "OPML eksport"
msgid "OPML file"
msgstr "OPML-fil"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ord"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Lagre"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Rull jevnt når du navigerer mellom oppføringer"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Vis feeder og kategorier uten uleste oppføringer"
@@ -779,6 +818,10 @@ msgstr "Vis hurtigtasthjelp"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr ""
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjerne"
@@ -881,6 +925,7 @@ msgstr "Ulest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Fjern stjerne"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Wszystkie"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Wprowadź"
msgid "Enter your current password to change profile settings"
msgstr "Wprowadź swoje aktualne hasło, aby zmienić ustawienia profilu"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Błąd"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "plik jest wymagany"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Wyrażenie filtrujące"
@@ -407,6 +408,10 @@ msgstr "Identyfikator"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Jeśli nie jest puste, wyrażenie oceniające jako „prawda” lub „fałsz”. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Jeśli napotkasz problem, zgłoś go na stronie problemów projektu GitHub."
@@ -541,6 +546,11 @@ msgstr "Nazwa"
msgid "Navigate to a subscription by entering its name"
msgstr "Przejdź do subskrypcji, wpisując jej nazwę"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nowe hasło"
@@ -566,6 +576,10 @@ msgstr "Następny nieprzeczytany element bookmarkletu"
msgid "No more entries"
msgstr "Nie ma więcej wpisów"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nic nie znaleziono"
@@ -574,6 +588,14 @@ msgstr "Nic nie znaleziono"
msgid "Oldest first"
msgstr "Najstarsze jako pierwsze"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Otwórz bieżący wpis w nowej karcie w tle"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Otwórz link"
@@ -635,6 +658,10 @@ msgstr "eksport OPML"
msgid "OPML file"
msgstr "plik OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Porządek"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Zapisz"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Przewijaj płynnie podczas nawigowania między wpisami"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Pokaż kanały i kategorie bez nieprzeczytanych wpisów"
@@ -779,6 +818,10 @@ msgstr "Pokaż pomoc dotyczącą skrótów klawiaturowych"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Przestrzeń"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Gwiazda"
@@ -881,6 +925,7 @@ msgstr "Nieprzeczytane"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Todos"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Entrar"
msgid "Enter your current password to change profile settings"
msgstr "Digite sua senha atual para alterar as configurações do perfil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Erro"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "o arquivo é obrigatório"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrando expressão"
@@ -407,6 +408,10 @@ msgstr "ID"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Se não estiver vazio, uma expressão avaliada como 'true' ou 'false'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Se você encontrar um problema, informe-o na página de problemas do projeto GitHub."
@@ -541,6 +546,11 @@ msgstr "Nome"
msgid "Navigate to a subscription by entering its name"
msgstr "Navegue até uma assinatura digitando seu nome"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nova senha"
@@ -566,6 +576,10 @@ msgstr "Próximo item não lido bookmarklet"
msgid "No more entries"
msgstr "Não há mais entradas"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nada encontrado"
@@ -574,6 +588,14 @@ msgstr "Nada encontrado"
msgid "Oldest first"
msgstr "Mais antigo primeiro"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Abrir a entrada atual em uma nova aba em segundo plano"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Abrir link"
@@ -635,6 +658,10 @@ msgstr "Exportação OPML"
msgid "OPML file"
msgstr "Arquivo OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordem"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Salvar"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Rolar suavemente ao navegar entre as entradas"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Mostrar feeds e categorias sem entradas não lidas"
@@ -779,6 +818,10 @@ msgstr "Mostrar ajuda de atalho de teclado"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Espaço"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Estrela"
@@ -881,6 +925,7 @@ msgstr "Não lido"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desestrelar"

View File

@@ -15,11 +15,11 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
msgstr "<0>CommaFeed - это проект с открытым исходным кодом. Исходный код доступен по адресу </0><1>GitHub</1>."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1>."
msgstr ""
msgstr "<0>Полный синтаксис доступен </0><1>здесь</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +27,7 @@ msgstr "<0>Есть аккаунт?</0><1>Войти!</1>"
#: src/pages/app/DonatePage.tsx
msgid "<0>Hey,</0><1>I'm Jérémie from Belgium and I've been working on CommaFeed in my free time for over 10 years now. Thanks for taking an interest in helping me continue supporting CommaFeed.</1>"
msgstr ""
msgstr "<0>Здравствуйте,</0><1>Я Жереми из Бельгии, и я работаю над CommaFeed в свободное время уже более 10 лет. Спасибо, что проявили интерес и помогли мне продолжить поддержку CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -36,7 +36,7 @@ msgstr "<0>Нужен аккаунт?</0><1>Зарегистрируйтесь!<
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About"
msgstr "О"
msgstr "О CommaFeed"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
@@ -68,8 +68,9 @@ msgid "All"
msgstr "Все"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Всегда"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -77,19 +78,19 @@ msgstr "Электронное письмо было отправлено, ес
#: src/components/content/add/ImportOpml.tsx
msgid "An opml file is an XML file containing feed URLs and categories. You can get an OPML file by exporting your data from other feed reading services."
msgstr "OPML-файл — это XML-файл, содержащий URL-адреса каналов и категории. "
msgstr "Файл opml - это XML-файл, содержащий URL-адреса и категории фидов. Вы можете получить OPML файл, экспортировав данные из других сервисов чтения фидов."
#: src/components/content/add/Subscribe.tsx
msgid "Analyze feed"
msgstr "Анализ канала"
msgstr "Анализ фида"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Объявление"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "ключ API"
msgstr "Ключ API"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
@@ -117,7 +118,7 @@ msgstr "Вы уверены, что хотите отказаться от по
#: src/components/header/Header.tsx
msgid "Asc"
msgstr "возр."
msgstr "По возрастанию"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Available variables are 'title', 'content', 'url' 'author' and 'categories' and their content is converted to lower case to ease string comparison."
@@ -133,11 +134,11 @@ msgstr "Вернуться к входу"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
msgstr "Для браузера Chrome требуется расширение"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Расширение для браузера"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -173,15 +174,15 @@ msgstr "Проверьте, работает ли лента."
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Закрыть меню"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Версия расширения браузера CommaFeed {browserExtensionVersion}."
#: src/components/settings/ProfileSettings.tsx
msgid "CommaFeed is compatible with the Fever API. Use the following URL in your Fever-compatible mobile client. Login with your username and your <0>API key</0>."
msgstr ""
msgstr "CommaFeed совместим с API Fever. Используйте следующий URL-адрес в мобильном клиенте, совместимом с Fever. Войдите в систему, указав свое имя пользователя и <0>API-ключ</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -189,7 +190,7 @@ msgstr "CommaFeed следующий непрочитанный элемент"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed версии {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -213,7 +214,7 @@ msgstr "Уютно"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -221,19 +222,19 @@ msgstr "Текущий пароль"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Пользовательский код"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Пользовательские правила CSS, которые будут применяться"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Пользовательский JS-код, который будет выполняться при загрузке страницы"
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
msgstr "Темная"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
@@ -262,17 +263,17 @@ msgstr "По убыванию"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Подробно"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display"
msgstr "Дисплей"
msgstr "Отображение"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Пожертвование"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -312,6 +313,10 @@ msgstr "Ввод"
msgid "Enter your current password to change profile settings"
msgstr "Введите текущий пароль, чтобы изменить настройки профиля."
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Ошибка"
@@ -331,7 +336,7 @@ msgstr "Экспортируйте свои подписки и категори
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Параметры расширения"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
@@ -345,19 +350,15 @@ msgstr "URL-адрес фида"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Получить весь мой фид сейчас"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "требуется файл"
msgstr "Ссылка Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -375,7 +376,7 @@ msgstr "Сначала сгенерируйте ключ API в своем пр
#: src/components/settings/ProfileSettings.tsx
msgid "Generate new API key"
msgstr "Создать новый ключ API."
msgstr "Создать новый ключ API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -385,7 +386,7 @@ msgstr "Сгенерированный URL фида"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Перейти к {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -401,11 +402,15 @@ msgstr "Сладости"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "идентификатор"
msgstr "Идентификатор"
#: src/pages/app/FeedDetailsPage.tsx
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Если не пусто, выражение оценивается как «истина» или «ложь». "
msgstr "Если не пусто, то выражение, оценивающееся как 'true' или 'false'. Если false, то новые записи для этой ленты будут автоматически помечаться как прочитанные."
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "Если запись не помещается на экране полностью"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -422,7 +427,7 @@ msgstr "В развернутом виде прокрутка записей п
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread"
msgstr "Не читать"
msgstr "Оставить непрочитанным"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
@@ -447,7 +452,7 @@ msgstr "Последнее сообщение об обновлении"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Светлая"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -483,7 +488,7 @@ msgstr "Выйти"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Долгое нажатие"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -515,7 +520,7 @@ msgstr "Метрики"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Средний клик"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -541,6 +546,11 @@ msgstr "Имя"
msgid "Navigate to a subscription by entering its name"
msgstr "Перейдите к подписке, введя ее имя."
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Никогда"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Новый пароль"
@@ -552,7 +562,7 @@ msgstr "Сначала новые"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next"
msgstr "Далее"
msgstr "Следующий"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Next refresh"
@@ -564,7 +574,11 @@ msgstr "Букмарклет следующего непрочитанного
#: src/pages/app/FeedEntriesPage.tsx
msgid "No more entries"
msgstr "Нет больше записей"
msgstr "Записей больше нет"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -575,16 +589,24 @@ msgid "Oldest first"
msgstr "Сначала самые старые"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr "На мобильных устройствах отображать кнопки действий в нижней части экрана"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "Ой!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Открыть CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -595,20 +617,21 @@ msgid "Open current entry in a new tab in the background"
msgstr "Открыть текущую запись в новой вкладке в фоновом режиме."
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Открыть ссылку"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Открыть ссылку в новой фоновой вкладке"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Открыть ссылку в новой вкладке"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Открыть меню"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -624,7 +647,7 @@ msgstr "Открыть/закрыть текущую запись"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr "ОПМЛ"
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
@@ -633,7 +656,11 @@ msgstr "Экспорт OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML-файл"
msgstr "OPML файл"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr "Необходим файл OPML"
#: src/pages/app/AboutPage.tsx
msgid "Order"
@@ -670,7 +697,7 @@ msgstr "Позиция"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Предыдущий"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
@@ -691,12 +718,12 @@ msgstr "Регистрация закрыта для этого экземпля
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "ОТДЫХА API"
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Правый клик"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Сохранить"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr "Прокрутка выбранной записи в верхнюю часть страницы"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Плавная прокрутка при переходе между записями"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr "Прокрутка"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -749,22 +784,26 @@ msgstr "Обмен сайтами"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Сдвиг"
msgstr "Shift"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Показывать контекстное меню CommaFeed при щелчке правой кнопкой мыши"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Показывать подтверждение при отметке всех записей как прочитанных"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Показать меню входа (ПК)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr "Показать меню входа (телефон)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
@@ -777,6 +816,10 @@ msgstr "Показать справку по сочетаниям клавиш."
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr "Показать родное меню (ПК)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
@@ -796,13 +839,14 @@ msgstr "Пробел"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Звезда"
msgstr "В избранное"
#: src/app/constants.ts
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Помечено"
msgstr "Избранное"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
@@ -824,7 +868,7 @@ msgstr "Успех"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Проведите пальцем по заголовку влево"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -836,7 +880,7 @@ msgstr "Переключиться на светлую тему"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Системная"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -853,7 +897,7 @@ msgstr "Тема"
#: src/components/settings/ProfileSettings.tsx
msgid "This is your API key. It can be used for some read-only API operations and grants access to the Fever API. Use the form at the bottom of the page to generate a new API key"
msgstr ""
msgstr "Это ваш ключ API. Он может использоваться для некоторых операций API только для чтения и предоставляет доступ к API Fever. Чтобы сгенерировать новый ключ API, воспользуйтесь формой в нижней части страницы"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -861,28 +905,29 @@ msgstr "Переключить статус чтения текущей запи
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Переключить боковую панель"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Переключение статуса избранное для текущей записи"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Попробуйте CommaFeed на демо-счете: demo/demo"
msgstr "Попробуйте CommaFeed на демо аккаунте: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Попробуйте демо-версию!"
#: src/components/header/Header.tsx
msgid "Unread"
msgstr "непрочитано"
msgstr "Не прочитано"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Снять пометку"
msgstr "Удалить из избранного"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -908,8 +953,8 @@ msgstr "Веб-сайт"
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "У вас пока нет подписок. "
msgstr "У вас еще нет подписок. Почему бы не попробовать добавить их, нажав на знак \"+\" в верхней части страницы?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Ваши каналы были поставлены в очередь на обновление."

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Všetky"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr "Vstúpte"
msgid "Enter your current password to change profile settings"
msgstr "Ak chcete zmeniť nastavenia profilu, zadajte svoje aktuálne heslo"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Chyba"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrovanie výrazu"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Ak nie je prázdny, výraz vyhodnotený ako 'pravda' alebo 'nepravda'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Ak narazíte na problém, nahláste ho na stránke problémov projektu GitHub."
@@ -541,6 +546,11 @@ msgstr "Meno"
msgid "Navigate to a subscription by entering its name"
msgstr "Prejdite na predplatné zadaním jeho názvu"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nové heslo"
@@ -566,6 +576,10 @@ msgstr "Ďalšia neprečítaná položka bookmarklet"
msgid "No more entries"
msgstr "Žiadne ďalšie záznamy"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nič sa nenašlo"
@@ -574,6 +588,14 @@ msgstr "Nič sa nenašlo"
msgid "Oldest first"
msgstr "Najprv najstarší"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Otvorte aktuálny záznam na novej karte na pozadí"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Otvoriť odkaz"
@@ -635,6 +658,10 @@ msgstr "Export OPML"
msgid "OPML file"
msgstr "súbor OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Poriadok"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Uložiť"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Pri navigácii medzi položkami plynulo rolujte"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Zobraziť kanály a kategórie bez neprečítaných záznamov"
@@ -779,6 +818,10 @@ msgstr "Zobraziť pomoc s klávesovými skratkami"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Vesmír"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Hviezda"
@@ -881,6 +925,7 @@ msgstr "Neprečítané"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Odobrať hviezdičku"

View File

@@ -68,7 +68,8 @@ msgid "All"
msgstr "Alla"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
@@ -312,6 +313,10 @@ msgstr ""
msgid "Enter your current password to change profile settings"
msgstr "Ange ditt nuvarande lösenord för att ändra profilinställningar"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fel"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "fil krävs"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrerande uttryck"
@@ -407,6 +408,10 @@ msgstr ""
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Om det inte är tomt, ett uttryck som utvärderas till 'sant' eller 'falskt'. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Om du stöter på ett problem, vänligen rapportera det på problemsidan för GitHub-projektet."
@@ -541,6 +546,11 @@ msgstr "Namn"
msgid "Navigate to a subscription by entering its name"
msgstr "Navigera till ett abonnemang genom att ange dess namn"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nytt lösenord"
@@ -566,6 +576,10 @@ msgstr "Nästa olästa objekt bokmärke"
msgid "No more entries"
msgstr "Inga fler poster"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Inget hittades"
@@ -574,6 +588,14 @@ msgstr "Inget hittades"
msgid "Oldest first"
msgstr "Äldst först"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Öppna aktuell post i en ny flik i bakgrunden"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Öppen länk"
@@ -635,6 +658,10 @@ msgstr ""
msgid "OPML file"
msgstr "OPML-fil"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Beställning"
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "Spara"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Bläddra mjukt när du navigerar mellan poster"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr ""
msgid "Show entry menu (mobile)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Visa flöden och kategorier utan olästa poster"
@@ -779,6 +818,10 @@ msgstr "Visa kortkommandohjälp"
msgid "Show native menu (desktop)"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Rymden"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjärna"
@@ -881,6 +925,7 @@ msgstr "Oläst"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""

View File

@@ -68,8 +68,9 @@ msgid "All"
msgstr "Tümü"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
msgstr "Seçilen girişi her zaman sayfanın üstüne kaydır, ekrana tamamen sığsa bile"
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -312,6 +313,10 @@ msgstr "Girin"
msgid "Enter your current password to change profile settings"
msgstr "Profil ayarlarını değiştirmek için mevcut şifrenizi girin"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "Hata"
@@ -355,10 +360,6 @@ msgstr ""
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "dosya gerekli"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtreleme ifadesi"
@@ -407,6 +408,10 @@ msgstr "Kimlik"
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "Boş değilse, 'doğru' veya 'yanlış' olarak değerlendirilen bir ifade. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
msgstr "Bir sorunla karşılaşırsanız lütfen GitHub projesinin sorunlar sayfasında bildirin."
@@ -541,6 +546,11 @@ msgstr "İsim"
msgid "Navigate to a subscription by entering its name"
msgstr "Adını girerek bir aboneliğe gidin"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Yeni şifre"
@@ -566,6 +576,10 @@ msgstr "Sonraki okunmamış öğe yer imi"
msgid "No more entries"
msgstr "Başka giriş yok"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Hiçbir şey bulunamadı"
@@ -574,6 +588,14 @@ msgstr "Hiçbir şey bulunamadı"
msgid "Oldest first"
msgstr "Önce en eski"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
@@ -595,6 +617,7 @@ msgid "Open current entry in a new tab in the background"
msgstr "Geçerli girişi arka planda yeni bir sekmede aç"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "Bağlantıyı aç"
@@ -635,6 +658,10 @@ msgstr "OPML dışa aktarma"
msgid "OPML file"
msgstr "OPML dosyası"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Sipariş"
@@ -706,10 +733,18 @@ msgstr "Sağ tık"
msgid "Save"
msgstr "Kaydet"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "Girişler arasında gezinirken sorunsuz ilerleyin"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -767,6 +802,10 @@ msgstr "Giriş menüsünü göster (masaüstü)"
msgid "Show entry menu (mobile)"
msgstr "Giriş menüsünü göster (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "Okunmamış girişi olmayan beslemeleri ve kategorileri göster"
@@ -779,6 +818,10 @@ msgstr "Klavye kısayolu yardımını göster"
msgid "Show native menu (desktop)"
msgstr "Orijinal tarayıcı menüsünü göster (masaüstü)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
@@ -796,6 +839,7 @@ msgstr "Uzay"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Yıldız"
@@ -881,6 +925,7 @@ msgstr "Okunmamış"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Yıldızı kaldır"

View File

@@ -15,11 +15,11 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
msgstr "<0>CommaFeed是一个开源项目源码托管在 </0><1>GitHub</1>。"
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1>."
msgstr ""
msgstr "<0>可以使用完整的语法 </0><1>详情</1>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +27,7 @@ msgstr "<0>有帐号吗?</0><1>登录!</1>"
#: src/pages/app/DonatePage.tsx
msgid "<0>Hey,</0><1>I'm Jérémie from Belgium and I've been working on CommaFeed in my free time for over 10 years now. Thanks for taking an interest in helping me continue supporting CommaFeed.</1>"
msgstr ""
msgstr "<0>您好,</0><1>我是来自比利时的Jérémie已经在业余时间开发 CommaFeed 超过十年时间。感谢您有兴趣帮助我继续支持CommaFeed发展。</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -40,7 +40,7 @@ msgstr "关于"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "行动"
msgstr "操作"
#: src/components/content/add/AddCategory.tsx
msgid "Add"
@@ -68,24 +68,25 @@ msgid "All"
msgstr "全部"
#: src/components/settings/DisplaySettings.tsx
msgid "Always scroll selected entry to the top of the page, even if it fits entirely on screen"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "总是"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
msgstr "如果此地址已注册,则已发送电子邮件。"
msgstr "如果此地址已注册,则已发送电子邮件,请检查您的邮箱。"
#: src/components/content/add/ImportOpml.tsx
msgid "An opml file is an XML file containing feed URLs and categories. You can get an OPML file by exporting your data from other feed reading services."
msgstr "opml 文件是包含提要 URL 和类别的 XML 文件。"
msgstr "OPML 文件是包含信息流地址和类别的 XML 文件。您可以通过从其他信息流阅读服务导出数据来获取 OPML 文件。"
#: src/components/content/add/Subscribe.tsx
msgid "Analyze feed"
msgstr "分析饲料"
msgstr "分析信息流"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "公告"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
@@ -93,7 +94,7 @@ msgstr "API 密钥"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "您确定要删除类别<0>{categoryName}</0>吗?"
msgstr "您确定要删除类别 <0>{categoryName}</0> 吗?"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Are you sure you want to delete user <0>{userName}</0> ?"
@@ -101,11 +102,11 @@ msgstr "您确定要删除用户 <0>{userName}</0> 吗?"
#: src/components/settings/ProfileSettings.tsx
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "您确定要删除您的帐户吗?"
msgstr "您确定要删除您的帐户吗?这是不可逆的!"
#: src/components/header/MarkAllAsReadButton.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "您确定要将<0>{sourceLabel}</0> 的所有条目标记为已读吗?"
msgstr "您确定要将 <0>{sourceLabel}</0> 的所有条目标记为已读吗?"
#: src/components/header/MarkAllAsReadButton.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
@@ -117,7 +118,7 @@ msgstr "您确定要退订 <0>{feedName}</0> 吗?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr "升"
msgstr "升"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Available variables are 'title', 'content', 'url' 'author' and 'categories' and their content is converted to lower case to ease string comparison."
@@ -133,11 +134,11 @@ msgstr "返回登录"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
msgstr "浏览器扩展"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "浏览器扩展"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -169,19 +170,19 @@ msgstr "更改密码将生成新的 API 密钥"
#: src/components/content/add/Subscribe.tsx
msgid "Check that the feed is working"
msgstr "检查提要是否正常工作"
msgstr "检查信息流是否正常工作"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "关闭菜单"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "CommaFeed的浏览器扩展版本{browserExtensionVersion}。"
#: src/components/settings/ProfileSettings.tsx
msgid "CommaFeed is compatible with the Fever API. Use the following URL in your Fever-compatible mobile client. Login with your username and your <0>API key</0>."
msgstr ""
msgstr "CommaFeed 和 Fever API 兼容可以在您Fever兼容的移动客户端中使用以下网址通过用户名和<0>API密钥</0>登录。"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -189,11 +190,11 @@ msgstr "CommaFeed 下一个未读项目"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed版本{version} ({revision})"
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
msgstr "紧凑"
msgstr "紧凑"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
@@ -209,11 +210,11 @@ msgstr "确认密码"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "舒适"
msgstr "宽松"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "控制"
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -221,19 +222,19 @@ msgstr "当前密码"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "自定义代码"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "将被应用的自定义CSS规则"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "将在页面加载时执行的自定义JS代码"
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
msgstr "深色"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
@@ -258,11 +259,11 @@ msgstr "删除用户"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr "描述"
msgstr "降序"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "详细"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
@@ -272,7 +273,7 @@ msgstr "显示"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "捐赠"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -306,12 +307,16 @@ msgstr "已启用"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
msgstr "进入"
msgstr "回车"
#: src/components/settings/ProfileSettings.tsx
msgid "Enter your current password to change profile settings"
msgstr "输入您当前的密码以更改配置文件设置"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
#: src/components/Alert.tsx
msgid "Error"
msgstr "错误"
@@ -326,38 +331,34 @@ msgstr "展开"
#: src/components/settings/ProfileSettings.tsx
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "将您的订阅和类别导出为 OPML 文件,可以在其他提要阅读服务中导入"
msgstr "将您的订阅和类别导出为 OPML 文件,可以在其它信息流阅读服务中导入"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "扩展选项"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "提要名称"
msgstr "信息流名称"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
msgstr "供稿网址"
msgstr "信息流网址"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "立即刷新所有信息流"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
#: src/components/content/add/ImportOpml.tsx
msgid "file is required"
msgstr "文件是必需的"
msgstr "Fever API 网址"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -381,11 +382,11 @@ msgstr "生成新的 API 密钥"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url"
msgstr "生成的提要网址"
msgstr "生成信息流网址"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "转到 {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -393,7 +394,7 @@ msgstr "转到全部视图"
#: src/pages/app/AboutPage.tsx
msgid "Go to the API documentation."
msgstr "转到 API 文档"
msgstr "API 文档"
#: src/pages/app/AboutPage.tsx
msgid "Goodies"
@@ -401,11 +402,15 @@ msgstr "好东西"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "身份证"
msgstr "序号"
#: src/pages/app/FeedDetailsPage.tsx
msgid "If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read automatically."
msgstr "如果不为空,则表达式评估为“真”或“假”。"
msgstr "如果不为空,则表达式的计算结果为“真”或“假”。如果为“假”,则此信息流的新条目将自动标记为已读。"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "如果条目不能完全显示在屏幕上"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -413,7 +418,7 @@ msgstr "如果遇到问题请在GitHub项目的issues页面上报告。"
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr "进口"
msgstr "导入"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -447,7 +452,7 @@ msgstr "上次刷新消息"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "浅色"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -483,7 +488,7 @@ msgstr "注销"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "长按"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -515,11 +520,11 @@ msgstr "指标"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "中键单击"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
msgstr "页面下移"
msgstr "下移页面"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page up"
@@ -541,13 +546,18 @@ msgstr "​​名称"
msgid "Navigate to a subscription by entering its name"
msgstr "通过输入订阅名称导航到订阅"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "从不"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "新密码"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "最新优先"
msgstr "最新优先"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
@@ -566,6 +576,10 @@ msgstr "下一个未读项目书签"
msgid "No more entries"
msgstr "没有更多条目"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "没有找到"
@@ -575,16 +589,24 @@ msgid "Oldest first"
msgstr "最早的优先"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgid "On desktop"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr "在移动端,显示屏幕底部的操作按钮"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "哎呀!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "打开 CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -595,20 +617,21 @@ msgid "Open current entry in a new tab in the background"
msgstr "在后台的新选项卡中打开当前条目"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/OpenExternalLink.tsx
msgid "Open link"
msgstr "打开链接"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "在后台的新选项卡中打开链接"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "在新选项卡中打开链接"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "打开菜单"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -624,7 +647,7 @@ msgstr "打开/关闭当前条目"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
@@ -635,13 +658,17 @@ msgstr "OPML 导出"
msgid "OPML file"
msgstr "OPML 文件"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "订单"
msgstr "顺序"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
msgstr "父"
msgstr "父类别"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Parent Category"
@@ -670,7 +697,7 @@ msgstr "位置"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "上一个"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
@@ -696,7 +723,7 @@ msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "右键单击"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
@@ -706,10 +733,18 @@ msgstr ""
msgid "Save"
msgstr "保存"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr "将所选条目滚动到页面顶部"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
msgstr "在条目之间导航时平滑滚动"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr "滚动"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
@@ -749,27 +784,31 @@ msgstr "共享站点"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "换档"
msgstr "Shift"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "右键单击时显示CommaFeed自己的上下文菜单"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "将所有条目标记为已读时显示确认信息"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "显示条目菜单(桌面端)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr "显示条目菜单(移动端)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
msgstr "显示没有未读条目的提要和类别"
msgstr "显示没有未读条目的信息流和类别"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show keyboard shortcut help"
@@ -777,6 +816,10 @@ msgstr "显示键盘快捷键帮助"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr "显示原生菜单(桌面端)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
@@ -792,12 +835,13 @@ msgstr "刚刚发生了不好的事情……"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "空"
msgstr "空"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "星"
msgstr "星"
#: src/app/constants.ts
#: src/components/sidebar/Tree.tsx
@@ -812,7 +856,7 @@ msgstr "订阅"
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe to the feed"
msgstr "订阅订阅源"
msgstr "订阅信息流"
#: src/pages/app/AboutPage.tsx
msgid "Subscribe URL"
@@ -824,7 +868,7 @@ msgstr "成功"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "向左滑动标题"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -836,7 +880,7 @@ msgstr "切换到浅色主题"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "跟随系统"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -845,7 +889,7 @@ msgstr "标签"
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "您要订阅的订阅源的 URL。"
msgstr "您要订阅的信息流的网址。您也可以直接使用网站的网址CommaFeed 会尝试在页面中找到信息流。"
#: src/components/header/ProfileMenu.tsx
msgid "Theme"
@@ -853,19 +897,19 @@ msgstr "主题"
#: src/components/settings/ProfileSettings.tsx
msgid "This is your API key. It can be used for some read-only API operations and grants access to the Fever API. Use the form at the bottom of the page to generate a new API key"
msgstr ""
msgstr "这是您的API 密钥它可以被用于Fever API的只读操作及访问授权。使用页面底部的表单生成一个新的API密钥。"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "切换当前条目的读状态"
msgstr "切换当前条目的读状态"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "切换侧边栏"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "切换当前条目的星标状态"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -873,7 +917,7 @@ msgstr "使用演示帐户试用 CommaFeeddemo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "尝试 demo"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -881,8 +925,9 @@ msgstr "未读"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "解星"
msgstr "取消星标"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -912,4 +957,4 @@ msgstr "您还没有任何订阅。"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "您的订阅已经进入刷新队列。"

View File

@@ -1,44 +1,39 @@
import { Trans } from "@lingui/macro"
import { Box, Button, Container, Group, type MantineTheme, Text, Title, useMantineTheme } from "@mantine/core"
import { Box, Button, Container, Group, Text, Title } from "@mantine/core"
import { TbRefresh } from "react-icons/tb"
import { tss } from "tss"
import { PageTitle } from "./PageTitle"
const useStyles = tss
.withParams<{
theme: MantineTheme
}>()
.create(({ theme }) => ({
root: {
paddingTop: 80,
},
const useStyles = tss.create(({ theme }) => ({
root: {
paddingTop: 80,
},
label: {
textAlign: "center",
fontWeight: "bold",
fontSize: 120,
lineHeight: 1,
marginBottom: `calc(${theme.spacing.xl} * 1.5)`,
color: theme.colors[theme.primaryColor][3],
},
label: {
textAlign: "center",
fontWeight: "bold",
fontSize: 120,
lineHeight: 1,
marginBottom: `calc(${theme.spacing.xl} * 1.5)`,
color: theme.colors[theme.primaryColor][3],
},
title: {
textAlign: "center",
fontWeight: "bold",
fontSize: 32,
},
title: {
textAlign: "center",
fontWeight: "bold",
fontSize: 32,
},
description: {
maxWidth: 540,
margin: "auto",
marginTop: theme.spacing.xl,
marginBottom: `calc(${theme.spacing.xl} * 1.5)`,
},
}))
description: {
maxWidth: 540,
margin: "auto",
marginTop: theme.spacing.xl,
marginBottom: `calc(${theme.spacing.xl} * 1.5)`,
},
}))
export function ErrorPage(props: { error: Error }) {
const theme = useMantineTheme()
const { classes } = useStyles({ theme })
const { classes } = useStyles()
return (
<div className={classes.root}>

View File

@@ -3,8 +3,8 @@ import { Anchor, Box, Center, Container, Divider, Group, Image, Space, Title, us
import { client } from "app/client"
import { redirectToApiDocumentation, redirectToLogin, redirectToRegistration, redirectToRootCategory } from "app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import welcome_page_dark from "assets/welcome_page_dark.png"
import welcome_page_light from "assets/welcome_page_light.png"
import welcomePageDark from "assets/welcome_page_dark.png"
import welcomePageLight from "assets/welcome_page_light.png"
import { ActionButton } from "components/ActionButton"
import { useBrowserExtension } from "hooks/useBrowserExtension"
import { useMobile } from "hooks/useMobile"
@@ -19,7 +19,7 @@ export function WelcomePage() {
const serverInfos = useAppSelector(state => state.server.serverInfos)
const { colorScheme } = useMantineColorScheme()
const dispatch = useAppDispatch()
const image = colorScheme === "light" ? welcome_page_light : welcome_page_dark
const image = colorScheme === "light" ? welcomePageLight : welcomePageDark
const login = useAsyncCallback(client.user.login, {
onSuccess: () => {

View File

@@ -108,7 +108,7 @@ export function AdminUsersPage() {
</Table.Tr>
</Table.Thead>
<Table.Tbody>
{users?.map(u => (
{users.map(u => (
<Table.Tr key={u.id}>
<Table.Td>{u.id}</Table.Td>
<Table.Td>{u.name}</Table.Td>

View File

@@ -14,7 +14,7 @@ const shownMeters: Record<string, string> = {
"com.commafeed.backend.feed.FeedRefreshUpdater.feedUpdated": "Feed update rate",
"com.commafeed.backend.feed.FeedRefreshUpdater.entryCacheHit": "Entry cache hit rate",
"com.commafeed.backend.feed.FeedRefreshUpdater.entryCacheMiss": "Entry cache miss rate",
"com.commafeed.backend.service.DatabaseCleaningService.entriesDeleted": "Entries deleted",
"com.commafeed.backend.service.db.DatabaseCleaningService.entriesDeleted": "Entries deleted",
}
const shownGauges: Record<string, string> = {

View File

@@ -3,7 +3,9 @@ import { HistoryService, RedocStandalone } from "redoc"
// disable redoc url sync because it causes issues with hashrouter
Object.defineProperty(HistoryService.prototype, "replace", {
value: () => {},
value: () => {
// do nothing
},
})
function ApiDocumentationPage() {

View File

@@ -49,11 +49,17 @@ export function FeedEntriesPage(props: FeedEntriesPageProps) {
const dispatch = useAppDispatch()
const titleClicked = () => {
if (props.sourceType === "category") {
dispatch(redirectToCategoryDetails(id))
} else if (props.sourceType === "feed") {
dispatch(redirectToFeedDetails(id))
} else if (props.sourceType === "tag") dispatch(redirectToTagDetails(id))
switch (props.sourceType) {
case "category":
dispatch(redirectToCategoryDetails(id))
break
case "feed":
dispatch(redirectToFeedDetails(id))
break
case "tag":
dispatch(redirectToTagDetails(id))
break
}
}
useEffect(() => {

View File

@@ -1,11 +1,14 @@
import { useMantineTheme } from "@mantine/core"
import { useColorScheme } from "hooks/useColorScheme"
import { createTss } from "tss-react"
const useContext = () => {
// return anything here that will be accessible in tss.create()
// we don't need anything right now
return {}
const theme = useMantineTheme()
const colorScheme = useColorScheme()
return { theme, colorScheme }
}
export const { tss } = createTss({ useContext })
export const useStyles = tss.create({})

View File

@@ -30,6 +30,7 @@ export default defineConfig(env => ({
"/openapi.json": "http://localhost:8083",
"/custom_css.css": "http://localhost:8083",
"/custom_js.js": "http://localhost:8083",
"/logout": "http://localhost:8083",
},
},
build: {

View File

@@ -95,11 +95,11 @@ app:
# -------------------
# for MariaDB
# driverClass is org.mariadb.jdbc.Driver
# url is jdbc:mariadb://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true
# url is jdbc:mariadb://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC
#
# for MySQL
# driverClass is com.mysql.cj.jdbc.Driver
# url is jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true
# url is jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC
#
# for PostgreSQL
# driverClass is org.postgresql.Driver

View File

@@ -95,11 +95,11 @@ app:
# -------------------
# for MariaDB
# driverClass is org.mariadb.jdbc.Driver
# url is jdbc:mariadb://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true
# url is jdbc:mariadb://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC
#
# for MySQL
# driverClass is com.mysql.cj.jdbc.Driver
# url is jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true
# url is jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true&timezone=UTC
#
# for PostgreSQL
# driverClass is org.postgresql.Driver

View File

@@ -6,14 +6,14 @@
<parent>
<groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId>
<version>4.2.1</version>
<version>4.4.0</version>
</parent>
<artifactId>commafeed-server</artifactId>
<name>CommaFeed Server</name>
<properties>
<guice.version>7.0.0</guice.version>
<querydsl.version>5.0.0</querydsl.version>
<querydsl.version>5.1.0</querydsl.version>
<rome.version>2.1.0</rome.version>
</properties>
@@ -22,7 +22,7 @@
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-dependencies</artifactId>
<version>4.0.5</version>
<version>4.0.7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -36,12 +36,12 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.3</version>
<version>3.2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.2.3</version>
<version>3.2.5</version>
<executions>
<execution>
<goals>
@@ -54,7 +54,7 @@
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>7.0.0</version>
<version>8.0.2</version>
<executions>
<execution>
<goals>
@@ -72,7 +72,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.1</version>
<version>3.5.2</version>
<dependencies>
<dependency>
<groupId>org.kordamp.shade</groupId>
@@ -121,7 +121,7 @@
<plugin>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-maven-plugin-jakarta</artifactId>
<version>2.2.19</version>
<version>2.2.21</version>
<?m2e ignore?>
<configuration>
<outputPath>${project.build.directory}/classes/assets</outputPath>
@@ -145,7 +145,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<version>3.4.0</version>
<configuration>
<archive>
<manifest>
@@ -184,7 +184,7 @@
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>2.41.1</version>
<version>2.43.0</version>
<?m2e ignore?>
<executions>
<execution>
@@ -211,13 +211,13 @@
<dependency>
<groupId>com.commafeed</groupId>
<artifactId>commafeed-client</artifactId>
<version>4.2.1</version>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<version>1.18.32</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -239,6 +239,10 @@
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-unix-socket</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-hibernate</artifactId>
@@ -276,7 +280,7 @@
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.2.19</version>
<version>2.2.21</version>
</dependency>
<dependency>
@@ -296,7 +300,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.15.1</version>
<version>2.16.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -332,7 +336,7 @@
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.1.0</version>
<version>5.1.2</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
@@ -364,7 +368,7 @@
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.17.1</version>
<version>1.17.2</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
@@ -384,7 +388,7 @@
<dependency>
<groupId>org.gwtproject</groupId>
<artifactId>gwt-servlet</artifactId>
<version>2.10.0</version>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
@@ -393,35 +397,39 @@
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>sslcontext-kickstart-for-apache5</artifactId>
<version>8.2.0</version>
<version>8.3.4</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-youtube</artifactId>
<version>v3-rev20231011-2.0.0</version>
<version>v3-rev20240310-2.0.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<!-- stay on 2.1 because 2.2 file format changed to version '3' -->
<version>2.1.214</version><!--$NO-MVN-MAN-VER$ -->
</dependency>
<dependency>
<groupId>com.manticore-projects.tools</groupId>
<artifactId>h2migrationtool</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.2.0</version>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.3.1</version>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.1</version>
<version>42.7.3</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
@@ -456,19 +464,6 @@
<version>2.0.1</version>
<scope>test</scope>
</dependency>
<!-- dropwizard pulls bouncycastle 1.77 but mockserver pulls 1.72, causing NoSuchFieldError on BCObjectIdentifiers.sphincsPlus_shake_256 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>1.77</version><!--$NO-MVN-MAN-VER$ -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>1.77</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-testing</artifactId>
@@ -482,7 +477,7 @@
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.40.0</version>
<version>1.43.0</version>
<scope>test</scope>
</dependency>

View File

@@ -1,6 +1,8 @@
package com.commafeed;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.Instant;
import java.util.EnumSet;
import java.util.Set;
@@ -24,8 +26,9 @@ import com.commafeed.backend.model.FeedSubscription;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.backend.service.DatabaseStartupService;
import com.commafeed.backend.service.UserService;
import com.commafeed.backend.service.db.DatabaseStartupService;
import com.commafeed.backend.service.db.H2MigrationService;
import com.commafeed.backend.task.ScheduledTask;
import com.commafeed.frontend.auth.PasswordConstraintValidator;
import com.commafeed.frontend.auth.SecurityCheckFactoryProvider;
@@ -58,6 +61,7 @@ import io.dropwizard.configuration.DefaultConfigurationFactoryFactory;
import io.dropwizard.configuration.EnvironmentVariableSubstitutor;
import io.dropwizard.configuration.SubstitutingSourceProvider;
import io.dropwizard.core.Application;
import io.dropwizard.core.ConfiguredBundle;
import io.dropwizard.core.setup.Bootstrap;
import io.dropwizard.core.setup.Environment;
import io.dropwizard.db.DataSourceFactory;
@@ -93,6 +97,30 @@ public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
configureEnvironmentSubstitutor(bootstrap);
configureObjectMapper(bootstrap.getObjectMapper());
// run h2 migration as the first bundle because we need to migrate before hibernate is initialized
bootstrap.addBundle(new ConfiguredBundle<CommaFeedConfiguration>() {
@Override
public void run(CommaFeedConfiguration config, Environment environment) throws Exception {
DataSourceFactory dataSourceFactory = config.getDataSourceFactory();
String url = dataSourceFactory.getUrl();
if (isFileBasedH2(url)) {
Path path = getFilePath(url);
String user = dataSourceFactory.getUser();
String password = dataSourceFactory.getPassword();
new H2MigrationService().migrateIfNeeded(path, user, password);
}
}
private boolean isFileBasedH2(String url) {
return url.startsWith("jdbc:h2:") && !url.startsWith("jdbc:h2:mem:");
}
private Path getFilePath(String url) {
String name = url.substring("jdbc:h2:".length()).split(";")[0];
return Paths.get(name + ".mv.db");
}
});
bootstrap.addBundle(hibernateBundle = new HibernateBundle<>(AbstractModel.class, Feed.class, FeedCategory.class, FeedEntry.class,
FeedEntryContent.class, FeedEntryStatus.class, FeedEntryTag.class, FeedSubscription.class, User.class, UserRole.class,
UserSettings.class) {

View File

@@ -25,6 +25,7 @@ import com.commafeed.backend.feed.parser.FeedParserResult.Entry;
import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.FeedEntry;
import com.commafeed.backend.model.FeedSubscription;
import com.commafeed.backend.model.Models;
import com.commafeed.backend.model.User;
import com.commafeed.backend.service.FeedEntryService;
import com.commafeed.backend.service.FeedService;
@@ -177,7 +178,7 @@ public class FeedRefreshUpdater {
if (!processed) {
// requeue asap
feed.setDisabledUntil(Instant.EPOCH);
feed.setDisabledUntil(Models.MINIMUM_INSTANT);
}
if (inserted > 0) {

View File

@@ -1,12 +1,24 @@
package com.commafeed.backend.model;
import java.time.Duration;
import java.time.Instant;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.proxy.HibernateProxy;
import org.hibernate.proxy.LazyInitializer;
import lombok.experimental.UtilityClass;
@UtilityClass
public class Models {
public static final Instant MINIMUM_INSTANT = Instant.EPOCH
// mariadb timestamp range starts at 1970-01-01 00:00:01
.plusSeconds(1)
// make sure the timestamp fits for all timezones
.plus(Duration.ofHours(24));
/**
* initialize a proxy
*/
@@ -18,8 +30,8 @@ public class Models {
* extract the id from the proxy without initializing it
*/
public static Long getId(AbstractModel model) {
if (model instanceof HibernateProxy) {
LazyInitializer lazyInitializer = ((HibernateProxy) model).getHibernateLazyInitializer();
if (model instanceof HibernateProxy proxy) {
LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer();
if (lazyInitializer.isUninitialized()) {
return (Long) lazyInitializer.getIdentifier();
}

View File

@@ -35,6 +35,14 @@ public class UserSettings extends AbstractModel {
title, cozy, detailed, expanded
}
public enum ScrollMode {
always, never, if_needed
}
public enum IconDisplayMode {
always, never, on_desktop, on_mobile
}
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false, unique = true)
private User user;
@@ -66,7 +74,18 @@ public class UserSettings extends AbstractModel {
@Column(name = "scroll_speed")
private int scrollSpeed;
private boolean alwaysScrollToEntry;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private ScrollMode scrollMode;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private IconDisplayMode starIconDisplayMode;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private IconDisplayMode externalLinkIconDisplayMode;
private boolean markAllAsReadConfirmation;
private boolean customContextMenu;
private boolean mobileFooter;

View File

@@ -12,6 +12,7 @@ import com.commafeed.backend.favicon.AbstractFaviconFetcher;
import com.commafeed.backend.favicon.Favicon;
import com.commafeed.backend.feed.FeedUtils;
import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.Models;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
@@ -45,7 +46,7 @@ public class FeedService {
feed.setUrl(url);
feed.setNormalizedUrl(normalizedUrl);
feed.setNormalizedUrlHash(normalizedUrlHash);
feed.setDisabledUntil(Instant.EPOCH);
feed.setDisabledUntil(Models.MINIMUM_INSTANT);
feedDAO.saveOrUpdate(feed);
}
return feed;

View File

@@ -1,4 +1,4 @@
package com.commafeed.backend.service;
package com.commafeed.backend.service.db;
import java.time.Instant;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.commafeed.backend.service;
package com.commafeed.backend.service.db;
import java.util.HashMap;
import java.util.Map;
@@ -9,6 +9,7 @@ import org.hibernate.SessionFactory;
import com.commafeed.CommaFeedConfiguration;
import com.commafeed.backend.dao.UnitOfWork;
import com.commafeed.backend.dao.UserDAO;
import com.commafeed.backend.service.UserService;
import io.dropwizard.lifecycle.Managed;
import jakarta.inject.Inject;

View File

@@ -0,0 +1,84 @@
package com.commafeed.backend.service.db;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import com.manticore.h2.H2MigrationTool;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@RequiredArgsConstructor
@Slf4j
public class H2MigrationService {
public void migrateIfNeeded(Path path, String user, String password) {
if (Files.notExists(path)) {
return;
}
int format;
try {
format = getH2FileFormat(path);
} catch (IOException e) {
throw new RuntimeException("could not detect H2 format", e);
}
if (format == 2) {
try {
migrate(path, user, password, "2.1.214", "2.2.224");
} catch (Exception e) {
throw new RuntimeException("could not migrate H2 to format 3", e);
}
}
}
public int getH2FileFormat(Path path) throws IOException {
try (BufferedReader reader = Files.newBufferedReader(path)) {
String headers = reader.readLine();
return Stream.of(headers.split(","))
.filter(h -> h.startsWith("format:"))
.map(h -> h.split(":")[1])
.map(Integer::parseInt)
.findFirst()
.orElseThrow(() -> new RuntimeException("could not find format in H2 file headers"));
}
}
private void migrate(Path path, String user, String password, String fromVersion, String toVersion) throws Exception {
log.info("migrating H2 database at {} from format {} to format {}", path, fromVersion, toVersion);
Path scriptPath = path.resolveSibling("script-" + System.currentTimeMillis() + ".sql");
Path newVersionPath = path.resolveSibling(path.getFileName() + "." + getPatchVersion(toVersion) + ".mv.db");
Path oldVersionBackupPath = path.resolveSibling(path.getFileName() + "." + getPatchVersion(fromVersion) + ".backup");
Files.deleteIfExists(scriptPath);
Files.deleteIfExists(newVersionPath);
Files.deleteIfExists(oldVersionBackupPath);
H2MigrationTool.readDriverRecords();
new H2MigrationTool().migrate(fromVersion, toVersion, path.toAbsolutePath().toString(), user, password,
scriptPath.toAbsolutePath().toString(), "", "", false, false, "");
if (!Files.exists(newVersionPath)) {
throw new RuntimeException("H2 migration failed, new version file not found");
}
Files.move(path, oldVersionBackupPath);
Files.move(newVersionPath, path);
Files.delete(oldVersionBackupPath);
Files.delete(scriptPath);
log.info("migrated H2 database from format {} to format {}", fromVersion, toVersion);
}
private String getPatchVersion(String version) {
return StringUtils.substringAfterLast(version, ".");
}
}

View File

@@ -3,7 +3,7 @@ package com.commafeed.backend.task;
import java.util.concurrent.TimeUnit;
import com.commafeed.CommaFeedConfiguration;
import com.commafeed.backend.service.DatabaseCleaningService;
import com.commafeed.backend.service.db.DatabaseCleaningService;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

View File

@@ -5,7 +5,7 @@ import java.time.Instant;
import java.util.concurrent.TimeUnit;
import com.commafeed.CommaFeedConfiguration;
import com.commafeed.backend.service.DatabaseCleaningService;
import com.commafeed.backend.service.db.DatabaseCleaningService;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

View File

@@ -4,7 +4,7 @@ import java.time.Instant;
import java.util.concurrent.TimeUnit;
import com.commafeed.CommaFeedConfiguration;
import com.commafeed.backend.service.DatabaseCleaningService;
import com.commafeed.backend.service.db.DatabaseCleaningService;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

View File

@@ -2,7 +2,7 @@ package com.commafeed.backend.task;
import java.util.concurrent.TimeUnit;
import com.commafeed.backend.service.DatabaseCleaningService;
import com.commafeed.backend.service.db.DatabaseCleaningService;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

View File

@@ -2,7 +2,7 @@ package com.commafeed.backend.task;
import java.util.concurrent.TimeUnit;
import com.commafeed.backend.service.DatabaseCleaningService;
import com.commafeed.backend.service.db.DatabaseCleaningService;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

View File

@@ -42,9 +42,22 @@ public class Settings implements Serializable {
private int scrollSpeed;
@Schema(
description = "always scroll selected entry to the top of the page, even if it fits entirely on screen",
description = "whether to scroll to the selected entry",
allowableValues = "always,never,if_needed",
requiredMode = RequiredMode.REQUIRED)
private boolean alwaysScrollToEntry;
private String scrollMode;
@Schema(
description = "whether to show the star icon in the header of entries",
allowableValues = "always,never,on_desktop,on_mobile",
requiredMode = RequiredMode.REQUIRED)
private String starIconDisplayMode;
@Schema(
description = "whether to show the external link icon in the header of entries",
allowableValues = "always,never,on_desktop,on_mobile",
requiredMode = RequiredMode.REQUIRED)
private String externalLinkIconDisplayMode;
@Schema(description = "ask for confirmation when marking all entries as read", requiredMode = RequiredMode.REQUIRED)
private boolean markAllAsReadConfirmation;

View File

@@ -22,8 +22,10 @@ import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.backend.model.UserSettings.IconDisplayMode;
import com.commafeed.backend.model.UserSettings.ReadingMode;
import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.commafeed.backend.model.UserSettings.ScrollMode;
import com.commafeed.backend.service.MailService;
import com.commafeed.backend.service.PasswordEncryptionService;
import com.commafeed.backend.service.UserService;
@@ -108,7 +110,9 @@ public class UserREST {
s.setCustomJs(settings.getCustomJs());
s.setLanguage(settings.getLanguage());
s.setScrollSpeed(settings.getScrollSpeed());
s.setAlwaysScrollToEntry(settings.isAlwaysScrollToEntry());
s.setScrollMode(settings.getScrollMode().name());
s.setStarIconDisplayMode(settings.getStarIconDisplayMode().name());
s.setExternalLinkIconDisplayMode(settings.getExternalLinkIconDisplayMode().name());
s.setMarkAllAsReadConfirmation(settings.isMarkAllAsReadConfirmation());
s.setCustomContextMenu(settings.isCustomContextMenu());
s.setMobileFooter(settings.isMobileFooter());
@@ -129,7 +133,9 @@ public class UserREST {
s.setScrollMarks(true);
s.setLanguage("en");
s.setScrollSpeed(400);
s.setAlwaysScrollToEntry(false);
s.setScrollMode(ScrollMode.if_needed.name());
s.setStarIconDisplayMode(IconDisplayMode.always.name());
s.setExternalLinkIconDisplayMode(IconDisplayMode.always.name());
s.setMarkAllAsReadConfirmation(true);
s.setCustomContextMenu(true);
s.setMobileFooter(false);
@@ -158,7 +164,9 @@ public class UserREST {
s.setCustomJs(CommaFeedApplication.USERNAME_DEMO.equals(user.getName()) ? "" : settings.getCustomJs());
s.setLanguage(settings.getLanguage());
s.setScrollSpeed(settings.getScrollSpeed());
s.setAlwaysScrollToEntry(settings.isAlwaysScrollToEntry());
s.setScrollMode(ScrollMode.valueOf(settings.getScrollMode()));
s.setStarIconDisplayMode(IconDisplayMode.valueOf(settings.getStarIconDisplayMode()));
s.setExternalLinkIconDisplayMode(IconDisplayMode.valueOf(settings.getExternalLinkIconDisplayMode()));
s.setMarkAllAsReadConfirmation(settings.isMarkAllAsReadConfirmation());
s.setCustomContextMenu(settings.isCustomContextMenu());
s.setMobileFooter(settings.isMobileFooter());

View File

@@ -3,7 +3,6 @@ package com.commafeed.frontend.ws;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import com.codahale.metrics.Gauge;
import com.codahale.metrics.MetricRegistry;
@@ -38,13 +37,8 @@ public class WebSocketSessions {
}
public void sendMessage(User user, String text) {
Set<Session> userSessions = sessions.entrySet()
.stream()
.filter(e -> e.getKey().equals(user.getId()))
.flatMap(e -> e.getValue().stream())
.collect(Collectors.toSet());
if (!userSessions.isEmpty()) {
Set<Session> userSessions = sessions.get(user.getId());
if (userSessions != null && !userSessions.isEmpty()) {
log.debug("sending '{}' to {} users via websocket", text, userSessions.size());
for (Session userSession : userSessions) {
if (userSession.isOpen()) {

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet id="convert-alwaysScrollToEntry-to-scrollMode" author="athou">
<validCheckSum>9:663bcc7c6df5b832ec2109a3afcff5c6</validCheckSum>
<addColumn tableName="USERSETTINGS">
<column name="scrollMode" type="VARCHAR(32)" />
</addColumn>
<update tableName="USERSETTINGS">
<column name="scrollMode" value="always" />
<where>alwaysScrollToEntry = true</where>
</update>
<update tableName="USERSETTINGS">
<column name="scrollMode" value="if_needed" />
<where>alwaysScrollToEntry = false</where>
</update>
<addNotNullConstraint tableName="USERSETTINGS" columnName="scrollMode" columnDataType="VARCHAR(32)" />
<dropColumn tableName="USERSETTINGS" columnName="alwaysScrollToEntry" />
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet id="add-icon-display-modes" author="athou">
<validCheckSum>9:078593b238a4639a97a3cd82f7e5e30d</validCheckSum>
<addColumn tableName="USERSETTINGS">
<column name="starIconDisplayMode" type="VARCHAR(32)" value="on_desktop">
<constraints nullable="false" />
</column>
<column name="externalLinkIconDisplayMode" type="VARCHAR(32)" value="on_desktop">
<constraints nullable="false" />
</column>
</addColumn>
</changeSet>
</databaseChangeLog>

View File

@@ -29,5 +29,7 @@
<include file="changelogs/db.changelog-4.0.xml" />
<include file="changelogs/db.changelog-4.1.xml" />
<include file="changelogs/db.changelog-4.2.xml" />
<include file="changelogs/db.changelog-4.3.xml" />
<include file="changelogs/db.changelog-4.4.xml" />
</databaseChangeLog>

View File

@@ -5,15 +5,19 @@ import java.sql.SQLException;
import javax.sql.DataSource;
import org.mockserver.socket.PortFactory;
import com.codahale.metrics.MetricRegistry;
import io.dropwizard.testing.ConfigOverride;
import io.dropwizard.testing.ResourceHelpers;
import io.dropwizard.testing.junit5.DropwizardAppExtension;
public class CommaFeedDropwizardAppExtension extends DropwizardAppExtension<CommaFeedConfiguration> {
public CommaFeedDropwizardAppExtension() {
super(CommaFeedApplication.class, ResourceHelpers.resourceFilePath("config.test.yml"));
super(CommaFeedApplication.class, ResourceHelpers.resourceFilePath("config.test.yml"),
ConfigOverride.config("server.applicationConnectors[0].port", String.valueOf(PortFactory.findFreePort())));
}
@Override

View File

@@ -134,14 +134,6 @@ class HttpGetterTest {
Assertions.assertEquals("ok", new String(result.getContent()));
}
@Test
void ignoreInvalidSsl() throws Exception {
this.mockServerClient.when(HttpRequest.request().withMethod("GET")).respond(HttpResponse.response().withBody("ok"));
HttpResult result = getter.getBinary("https://localhost:" + this.mockServerClient.getPort(), TIMEOUT);
Assertions.assertEquals("ok", new String(result.getContent()));
}
@Test
void lastModifiedReturns304() {
this.mockServerClient.when(HttpRequest.request().withMethod("GET").withHeader(HttpHeaders.IF_MODIFIED_SINCE, "123456"))

View File

@@ -0,0 +1,29 @@
package com.commafeed.backend.service.db;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Objects;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
class H2MigrationServiceTest {
@TempDir
private Path root;
@Test
void testMigrateIfNeeded() throws IOException {
Path path = root.resolve("database.mv.db");
Files.copy(Objects.requireNonNull(getClass().getResourceAsStream("/h2-migration/database-v2.1.214.mv.db")), path);
H2MigrationService service = new H2MigrationService();
Assertions.assertEquals(2, service.getH2FileFormat(path));
service.migrateIfNeeded(path, "sa", "sa");
Assertions.assertEquals(3, service.getH2FileFormat(path));
}
}

Some files were not shown because too many files have changed in this diff Show More