Compare commits

...

1083 Commits

Author SHA1 Message Date
Athou
2e1e5257b4 release 7.2.1 2026-08-03 09:06:32 +02:00
Athou
bc6e767953 prevent XXS in third party apps
CommaFeed React client already strips malicious "javascript:" urls but we might as well not store those in the database
2026-08-03 08:47:01 +02:00
Jérémie Panzer
b9eceaae73 Merge pull request #2255 from Athou/renovate/vite-8.x
chore(deps): update dependency vite to v8.2.0
2026-08-03 08:46:22 +02:00
renovate[bot]
8ad9ba7d74 chore(deps): update react monorepo 2026-08-03 01:41:07 +00:00
renovate[bot]
10bb4b7936 chore(deps): update dependency vite to v8.2.0 2026-08-02 12:46:43 +00:00
renovate[bot]
ab3127cef9 chore(deps): update dependency @vitejs/plugin-react to v6.0.5 2026-08-02 12:46:33 +00:00
Athou
5d64e2f21e correctly handle root favicons for non-default ports 2026-08-02 07:26:44 +02:00
renovate[bot]
e404c9ce3b chore(deps): update dependency npm to v12.0.2 2026-08-01 22:16:06 +00:00
Jérémie Panzer
0c5a71650c Merge pull request #2254 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to v1.19.0
2026-08-02 00:15:20 +02:00
renovate[bot]
8ce9eb8537 fix(deps): update dependency axios to v1.19.0 2026-08-01 20:46:05 +00:00
renovate[bot]
1ce0e4af97 chore(deps): update dependency jsdom to v30.0.1 2026-08-01 10:11:03 +00:00
Jérémie Panzer
44ad42a8a5 Merge pull request #2252 from Athou/renovate/patch-react-router-monorepo
fix(deps): update dependency react-router-dom to v7.18.2
2026-08-01 12:09:31 +02:00
Jérémie Panzer
f213726c40 Merge pull request #2251 from Athou/renovate/react-draggable-4.7.x
fix(deps): update dependency react-draggable to v4.7.1
2026-08-01 12:09:08 +02:00
renovate[bot]
972d424846 fix(deps): update dependency react-router-dom to v7.18.2 2026-08-01 09:19:12 +00:00
renovate[bot]
6049263137 fix(deps): update dependency react-draggable to v4.7.1 2026-08-01 09:19:02 +00:00
Athou
ae2dc7f066 update google java format and let renovate know about it 2026-08-01 11:17:50 +02:00
Athou
503d129f22 increase timeout even more because tests are still flaky 2026-08-01 11:13:41 +02:00
renovate[bot]
543ec3bbb1 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6.3 2026-07-31 17:48:01 +00:00
renovate[bot]
bed45127c4 chore(deps): update dependency @biomejs/biome to v2.5.6 2026-07-31 15:42:20 +00:00
Jérémie Panzer
71f10b0a62 Merge pull request #2250 from Athou/renovate/patch-react-querybuilder
fix(deps): update react-querybuilder to v8.21.2
2026-07-31 07:42:57 +02:00
renovate[bot]
cb235289c4 fix(deps): update react-querybuilder to v8.21.2 2026-07-31 03:05:02 +00:00
renovate[bot]
0b07c65320 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.8 2026-07-30 23:29:02 +00:00
Jérémie Panzer
868f65d7c9 Merge pull request #2249 from Athou/renovate/jsdom-30.x
chore(deps): update dependency jsdom to v30
2026-07-30 11:02:50 +02:00
Jérémie Panzer
07715383f4 Merge pull request #2248 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to v9.5.0
2026-07-30 11:02:48 +02:00
renovate[bot]
29d10debdb chore(deps): update dependency jsdom to v30 2026-07-30 08:36:37 +00:00
renovate[bot]
cd640da960 fix(deps): update mantine monorepo to v9.5.0 2026-07-30 08:36:26 +00:00
Jérémie Panzer
56ecb4a2f4 Merge pull request #2247 from Athou/renovate/org.jsoup-jsoup-1.x
fix(deps): update dependency org.jsoup:jsoup to v1.23.1
2026-07-30 07:23:53 +02:00
renovate[bot]
00161fd549 fix(deps): update dependency org.jsoup:jsoup to v1.23.1 2026-07-30 04:54:33 +00:00
renovate[bot]
a602ce17cd fix(deps): update dependency io.github.hakky54:ayza-for-apache5 to v10.0.6 2026-07-29 23:04:12 +00:00
renovate[bot]
672588d08b chore(deps): update node.js to v24.18.1 2026-07-29 21:06:29 +00:00
renovate[bot]
5fa2579275 chore(deps): update dependency com.github.eirslett:frontend-maven-plugin to v2.0.2 2026-07-29 20:12:39 +00:00
Jérémie Panzer
09bc317797 Merge pull request #2246 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-7.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.5.0
2026-07-29 22:12:10 +02:00
renovate[bot]
440c1ada50 chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.5.0 2026-07-29 18:38:26 +00:00
Athou
911a5ca099 reorder imports using google java format 2026-07-29 20:36:03 +02:00
Jérémie Panzer
65017f6b76 Merge pull request #2244 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.38.0
2026-07-29 20:33:12 +02:00
Athou
64fb5ef3a2 fix warning 2026-07-29 18:24:14 +02:00
Jérémie Panzer
dda389a50f Merge pull request #2245 from Athou/renovate/react-querybuilder
fix(deps): update react-querybuilder to v8.21.0
2026-07-29 17:15:10 +02:00
renovate[bot]
419ad4fb6a fix(deps): update react-querybuilder to v8.21.0 2026-07-29 14:10:05 +00:00
Jérémie Panzer
ebae46f06b Merge pull request #2243 from Athou/renovate/docker-login-action-4.x
chore(deps): update docker/login-action action to v4.6.0
2026-07-29 16:09:58 +02:00
renovate[bot]
ac25accb31 fix(deps): update quarkus.version to v3.38.0 2026-07-29 14:09:50 +00:00
Jérémie Panzer
3c7eb90e50 Merge pull request #2242 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.9.0
2026-07-29 16:09:03 +02:00
renovate[bot]
4b3973f3fa chore(deps): update docker/login-action action to v4.6.0 2026-07-29 12:34:35 +00:00
renovate[bot]
6ddbe40c3c chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.9.0 2026-07-29 12:34:30 +00:00
Jérémie Panzer
d5164750e4 Merge pull request #2241 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to v6.6.0
2026-07-27 17:40:01 +02:00
renovate[bot]
822fbd8add fix(deps): update linguijs monorepo to v6.6.0 2026-07-27 14:46:27 +00:00
Jérémie Panzer
3a341d0707 Merge pull request #2240 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.9.0
2026-07-27 07:42:59 +02:00
renovate[bot]
23884fcbda chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.9.0 2026-07-27 05:15:46 +00:00
renovate[bot]
3b16674f98 chore(deps): lock file maintenance 2026-07-27 00:51:21 +00:00
renovate[bot]
d5eb3e1bb1 chore(deps): update dependency vite-plugin-checker to v0.14.5 2026-07-25 13:00:37 +00:00
renovate[bot]
8d47b38fd4 chore(deps): update dependency @vitejs/plugin-react to v6.0.4 2026-07-25 05:45:24 +00:00
renovate[bot]
04fb3282fa fix(deps): update react monorepo to v19.2.8 2026-07-25 00:34:50 +00:00
renovate[bot]
bcce130b82 chore(deps): update docker/login-action action to v4.5.1 2026-07-24 20:05:24 +00:00
renovate[bot]
e5d336f6ba fix(deps): update mantine monorepo to v9.4.2 2026-07-24 11:08:55 +00:00
renovate[bot]
2d741f6e1e chore(deps): update dependency @biomejs/biome to v2.5.5 2026-07-24 10:03:13 +00:00
Jérémie Panzer
2968dff118 Merge pull request #2237 from Athou/renovate/major-testing-library-monorepo
chore(deps): update dependency @testing-library/jest-dom to v7
2026-07-23 22:25:02 +02:00
renovate[bot]
0c244ec154 chore(deps): update dependency @testing-library/jest-dom to v7 2026-07-23 19:50:05 +00:00
Jérémie Panzer
34cd337992 Merge pull request #2235 from Athou/renovate/monaco-editor-0.x
fix(deps): update dependency monaco-editor to v0.56.0
2026-07-23 21:49:33 +02:00
Jérémie Panzer
1703cb7b93 Merge pull request #2236 from Athou/renovate/docker-login-action-4.x
chore(deps): update docker/login-action action to v4.5.0
2026-07-23 21:00:06 +02:00
Athou
dc89faa4a1 adapt to new paths 2026-07-23 20:58:07 +02:00
renovate[bot]
3eccfe8ccc chore(deps): update docker/login-action action to v4.5.0 2026-07-23 17:29:45 +00:00
renovate[bot]
6e34f6831c fix(deps): update dependency monaco-editor to v0.56.0 2026-07-23 14:01:52 +00:00
renovate[bot]
b7ebcd6a23 fix(deps): update quarkus.version to v3.37.4 2026-07-23 10:00:31 +00:00
Jérémie Panzer
8b7efe056d Merge pull request #2234 from Athou/renovate/fontsource-monorepo
fix(deps): update dependency @fontsource/open-sans to v5.3.0
2026-07-22 08:33:33 +02:00
renovate[bot]
87cb392516 fix(deps): update dependency @fontsource/open-sans to v5.3.0 2026-07-22 05:25:49 +00:00
Jérémie Panzer
aa11cb48f2 Merge pull request #2233 from Athou/renovate/querydsl.version
fix(deps): update querydsl.version to v7.5
2026-07-21 23:31:17 +02:00
renovate[bot]
36a29a393c fix(deps): update querydsl.version to v7.5 2026-07-21 21:08:45 +00:00
renovate[bot]
99f1b45866 chore(deps): update actions/checkout action to v7.0.1 2026-07-21 02:00:56 +00:00
renovate[bot]
9e8d529af3 chore(deps): lock file maintenance 2026-07-20 03:58:17 +00:00
renovate[bot]
bb80641b40 chore(deps): update dependency vite to v8.1.5 2026-07-19 10:03:19 +00:00
renovate[bot]
a2ed16c6fd chore(deps): update dependency @biomejs/biome to v2.5.4 2026-07-18 04:35:49 +00:00
renovate[bot]
4f10f57837 fix(deps): update quarkus.version to v3.37.3 2026-07-15 21:27:37 +00:00
Jérémie Panzer
28f40cd6fe Merge pull request #2230 from Athou/renovate/graalvm-setup-graalvm-1.6.x
chore(deps): update graalvm/setup-graalvm action to v1.6.3
2026-07-14 22:21:04 +02:00
renovate[bot]
89a84a0c83 chore(deps): update graalvm/setup-graalvm action to v1.6.3 2026-07-14 10:01:24 +00:00
Jérémie Panzer
ebcda50a34 Merge pull request #2229 from Athou/renovate/actions-setup-node-7.x
chore(deps): update actions/setup-node action to v7
2026-07-14 09:09:34 +02:00
renovate[bot]
8640e62b77 chore(deps): update actions/setup-node action to v7 2026-07-14 06:21:50 +00:00
Jérémie Panzer
d0418eea89 Merge pull request #2227 from Athou/renovate/actions-setup-node-6.x
chore(deps): update actions/setup-node action to v6.5.0
2026-07-14 08:20:45 +02:00
Jérémie Panzer
41ba067daf Merge pull request #2228 from Athou/renovate/debian-13.x
chore(deps): update debian docker tag to v13.6
2026-07-14 08:19:52 +02:00
renovate[bot]
53346997b6 chore(deps): update debian docker tag to v13.6 2026-07-14 05:14:26 +00:00
renovate[bot]
87a632761e chore(deps): update actions/setup-node action to v6.5.0 2026-07-14 05:14:22 +00:00
renovate[bot]
998ebc43a3 chore(deps): update dependency npm to v12.0.1 2026-07-13 19:32:59 +00:00
renovate[bot]
945e312c41 chore(deps): update dependency vite to v8.1.4 2026-07-12 07:51:07 +00:00
Jérémie Panzer
963a562100 Merge pull request #2224 from Athou/renovate/typescript-7.x
chore(deps): update dependency typescript to v7
2026-07-12 09:49:47 +02:00
Athou
4be961b68b temporary disable checker plugin until TypeScript 7 exposes a stable api 2026-07-12 08:59:24 +02:00
Jérémie Panzer
02a9140c13 Merge pull request #2226 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.8.0
2026-07-12 08:52:40 +02:00
renovate[bot]
5ea60ce6d6 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.8.0 2026-07-12 06:03:35 +00:00
Jérémie Panzer
e9e7be0fc6 Merge pull request #2225 from Athou/renovate/npm-12.x
chore(deps): update dependency npm to v12
2026-07-12 04:39:00 +02:00
renovate[bot]
60c30f2683 chore(deps): update dependency npm to v12 2026-07-11 23:25:34 +00:00
renovate[bot]
a17e69d37d chore(deps): update dependency typescript to v7 2026-07-11 17:37:46 +00:00
renovate[bot]
157f75d33e chore(deps): update dependency @biomejs/biome to v2.5.3 2026-07-11 10:52:37 +00:00
Athou
30a14c73ff specify that docker/podman can be used if graalvm is not found 2026-07-11 09:09:27 +02:00
Athou
27cece3afb release 7.2.0 2026-07-10 10:47:30 +02:00
Jérémie Panzer
8124ecb51f Merge pull request #2222 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to v6.5.0
2026-07-10 08:19:14 +02:00
renovate[bot]
e67c4c8670 fix(deps): update linguijs monorepo to v6.5.0 2026-07-09 16:48:53 +00:00
renovate[bot]
fcc6798d63 fix(deps): update dependency style-to-object to v2.0.2 2026-07-09 16:48:41 +00:00
renovate[bot]
d313ebfc69 chore(deps): update dependency vitest to v4.1.10 2026-07-09 08:48:42 +00:00
renovate[bot]
6edb8f00f6 fix(deps): update quarkus.version to v3.37.2 2026-07-08 20:59:14 +00:00
renovate[bot]
98a261d457 fix(deps): update dependency style-to-object to v2.0.1 2026-07-07 21:44:59 +00:00
renovate[bot]
e97a69f475 chore(deps): update graalvm/setup-graalvm action to v1.6.2 2026-07-07 18:59:06 +00:00
Jérémie Panzer
e9dc284b26 Merge pull request #2221 from Athou/renovate/graalvm-setup-graalvm-1.6.x
chore(deps): update graalvm/setup-graalvm action to v1.6.1
2026-07-07 09:24:17 +02:00
renovate[bot]
856c52c64b chore(deps): update graalvm/setup-graalvm action to v1.6.1 2026-07-06 23:03:42 +00:00
renovate[bot]
386a4a32ef chore(deps): lock file maintenance 2026-07-06 01:33:25 +00:00
renovate[bot]
dbdb40ff01 chore(deps): update dependency vite to v8.1.3 (#2220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-05 12:54:36 +00:00
Athou
1bd9b71215 use google java formatter to avoid downloading eclipse during build 2026-07-05 11:14:17 +02:00
Athou
f4dc279ec9 lombok is required at runtime for sneakyThrow 2026-07-05 09:02:57 +02:00
Athou
ca8438623d prevent access to ULA and CGNAT addresses 2026-07-05 08:48:02 +02:00
Jérémie Panzer
b81aac71f5 Merge pull request #2218 from Athou/renovate/biomejs-biome-2.5.x
chore(deps): update dependency @biomejs/biome to v2.5.2
2026-07-05 08:07:39 +02:00
Jérémie Panzer
a4e0d28fa2 Merge pull request #2219 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-7.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.4.0
2026-07-05 08:07:05 +02:00
renovate[bot]
56d4e4bbb1 chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.4.0 2026-07-04 20:37:01 +00:00
renovate[bot]
af1d10529b chore(deps): update dependency @biomejs/biome to v2.5.2 2026-07-04 16:40:46 +00:00
Athou
a5f84a3f6d search now also works for starred entries (#2217) 2026-07-04 17:57:08 +02:00
renovate[bot]
69dfbc81cc chore(deps): update dependency vite to v8.1.2 2026-07-04 01:29:31 +00:00
Jérémie Panzer
34408ccdb0 Merge pull request #2215 from Athou/renovate/react-icons-5.x
fix(deps): update dependency react-icons to v5.7.0
2026-07-04 03:28:52 +02:00
renovate[bot]
b0522a6e5d fix(deps): update dependency react-icons to v5.7.0 2026-07-03 20:43:38 +00:00
renovate[bot]
2a559a07c0 chore(deps): update dependency org.apache.maven.plugins:maven-help-plugin to v3.5.2 2026-07-03 20:43:16 +00:00
Athou
bdf2a6a915 the Pocket service has been discontinued 2026-07-03 22:40:38 +02:00
Jérémie Panzer
e814f75872 Merge pull request #2216 from Athou/renovate/graalvm-setup-graalvm-1.x
chore(deps): update graalvm/setup-graalvm action to v1.6.0
2026-07-03 20:16:57 +02:00
renovate[bot]
c0e0791854 chore(deps): update graalvm/setup-graalvm action to v1.6.0 2026-07-03 16:40:35 +00:00
renovate[bot]
17dbdb66bf chore(deps): update dependency vite to v8.1.1 2026-07-03 15:25:47 +00:00
Jérémie Panzer
6e3e9add36 Merge pull request #2214 from Athou/renovate/docker-login-action-4.x
chore(deps): update docker/login-action action to v4.4.0
2026-07-03 17:24:52 +02:00
renovate[bot]
5b25011853 chore(deps): update docker/login-action action to v4.4.0 2026-07-03 14:46:14 +00:00
Jérémie Panzer
804b24b2d6 Merge pull request #2213 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.18.0
2026-07-03 07:19:00 +02:00
renovate[bot]
de98b0f7c2 fix(deps): update dependency react-router-dom to v7.18.1 2026-07-02 23:52:17 +00:00
renovate[bot]
709de70fa9 chore(deps): update dependency npm to v11.18.0 2026-07-02 18:37:34 +00:00
renovate[bot]
1b7bc11f9d chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.3.0-jre docker digest to 43ec947 2026-07-02 14:59:22 +00:00
Jérémie Panzer
bbcaacf3dd Merge pull request #2212 from Athou/renovate/docker-setup-buildx-action-4.x
chore(deps): update docker/setup-buildx-action action to v4.2.0
2026-07-02 16:58:33 +02:00
renovate[bot]
e816b1262c chore(deps): update docker/setup-buildx-action action to v4.2.0 2026-07-02 11:32:24 +00:00
Jérémie Panzer
fc019333dc Merge pull request #2211 from Athou/renovate/docker-login-action-4.x
chore(deps): update docker/login-action action to v4.3.0
2026-07-02 13:31:37 +02:00
renovate[bot]
56b0ddbc34 chore(deps): update docker/login-action action to v4.3.0 2026-07-02 09:08:11 +00:00
renovate[bot]
bb74d27d52 fix(deps): update quarkus.version to v3.37.1 2026-07-02 05:24:05 +00:00
Jérémie Panzer
7b1d19ca71 Merge pull request #2210 from Athou/renovate/docker-setup-qemu-action-4.x
chore(deps): update docker/setup-qemu-action action to v4.2.0
2026-07-02 07:23:33 +02:00
Jérémie Panzer
af961678bd Merge pull request #2209 from Athou/renovate/docker-build-push-action-7.x
chore(deps): update docker/build-push-action action to v7.3.0
2026-07-02 07:23:24 +02:00
Jérémie Panzer
1579242644 Merge pull request #2208 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-7.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.3.0
2026-07-02 07:23:18 +02:00
renovate[bot]
2a45f5c596 chore(deps): update docker/setup-qemu-action action to v4.2.0 2026-07-02 01:00:10 +00:00
renovate[bot]
c4560c49b0 chore(deps): update docker/build-push-action action to v7.3.0 2026-07-02 01:00:05 +00:00
Athou
2b7f75d9ef fix tests 2026-07-02 02:56:08 +02:00
renovate[bot]
5f68bcbd46 chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.3.0 2026-07-01 23:54:29 +00:00
renovate[bot]
c93c072259 fix(deps): update mantine monorepo to v9.4.1 2026-07-01 23:54:20 +00:00
Jérémie Panzer
516344a993 Merge pull request #2206 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.8.0
2026-06-30 08:15:35 +02:00
renovate[bot]
4d42fe5a0b chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.8.0 2026-06-30 05:11:59 +00:00
renovate[bot]
47bf132fff fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6.2 2026-06-29 23:55:24 +00:00
renovate[bot]
04a9d48505 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.7 2026-06-29 19:44:00 +00:00
renovate[bot]
3716ddcf15 chore(deps): lock file maintenance 2026-06-29 03:37:40 +00:00
Jérémie Panzer
6c3ab40cb6 Merge pull request #2205 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.7.0
2026-06-29 05:35:54 +02:00
renovate[bot]
b7270974e5 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.7.0 2026-06-28 18:05:25 +00:00
renovate[bot]
9bfc53e77a fix(deps): update react-querybuilder to v8.20.2 2026-06-28 18:05:20 +00:00
renovate[bot]
f34fac8d17 chore(deps): update dependency @vitejs/plugin-react to v6.0.3 2026-06-26 13:36:32 +00:00
Jérémie Panzer
555c11649e Merge pull request #2204 from Athou/renovate/vite-8.x
chore(deps): update dependency vite to v8.1.0
2026-06-26 15:35:39 +02:00
Jérémie Panzer
c308c5d606 Merge pull request #2182 from Athou/renovate/biomejs-biome-2.x
chore(deps): update dependency @biomejs/biome to v2.5.1
2026-06-26 15:35:34 +02:00
Athou
54e9615994 add svg titles 2026-06-26 14:10:54 +02:00
renovate[bot]
b0b3b323fd chore(deps): update dependency vite to v8.1.0 2026-06-26 12:01:42 +00:00
renovate[bot]
f740a0b8ba chore(deps): update dependency @biomejs/biome to v2.5.1 2026-06-26 12:01:31 +00:00
renovate[bot]
e154675e72 fix(deps): update dependency axios to v1.18.1 2026-06-25 18:30:55 +00:00
Jérémie Panzer
2b3d3261de Merge pull request #2203 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to v9.4.0
2026-06-25 20:30:14 +02:00
renovate[bot]
fab525ca56 fix(deps): update mantine monorepo to v9.4.0 2026-06-25 17:09:08 +00:00
Jérémie Panzer
1c273d1c1a Merge pull request #2201 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.37.0
2026-06-24 19:04:03 +02:00
renovate[bot]
90d684367c fix(deps): update quarkus.version to v3.37.0 2026-06-24 15:22:44 +00:00
renovate[bot]
1ffc544ab0 chore(deps): update debian:13.5 docker digest to d07d1b5 2026-06-24 07:28:54 +00:00
Jérémie Panzer
cde0cceee1 Merge pull request #2200 from Athou/renovate/node-24.x
chore(deps): update node.js to v24.18.0
2026-06-24 09:28:15 +02:00
renovate[bot]
1604fbc55c chore(deps): update node.js to v24.18.0 2026-06-24 00:45:25 +00:00
Jérémie Panzer
6f586e8866 Merge pull request #2199 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-7.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.2.0
2026-06-23 09:14:52 +02:00
renovate[bot]
c53455ad61 chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.2.0 2026-06-22 22:13:00 +00:00
renovate[bot]
77b3c609f3 chore(deps): lock file maintenance 2026-06-22 05:10:43 +00:00
Jérémie Panzer
3b84598d99 Merge pull request #2197 from Athou/renovate/react-draggable-4.x
fix(deps): update dependency react-draggable to v4.7.0
2026-06-22 07:09:06 +02:00
renovate[bot]
6f536c0981 fix(deps): update dependency react-draggable to v4.7.0 2026-06-21 21:36:40 +00:00
renovate[bot]
1f881ea252 fix(deps): update react-querybuilder to v8.20.1 2026-06-21 21:36:29 +00:00
Jérémie Panzer
b14df1b3cb Merge pull request #2196 from Athou/renovate/react-querybuilder
fix(deps): update react-querybuilder to v8.20.0
2026-06-21 15:23:57 +02:00
renovate[bot]
e13763baa3 fix(deps): update react-querybuilder to v8.20.0 2026-06-21 09:52:35 +00:00
Jérémie Panzer
502ef67a71 Merge pull request #2192 from Athou/renovate/vite-plugin-checker-0.14.x
chore(deps): update dependency vite-plugin-checker to v0.14.4
2026-06-20 21:21:29 +02:00
renovate[bot]
05cab626df chore(deps): update dependency vite-plugin-checker to v0.14.4 2026-06-20 17:53:07 +00:00
renovate[bot]
c7d54af7ad fix(deps): update mantine monorepo to v9.3.2 2026-06-19 22:03:44 +00:00
Jérémie Panzer
ad195fcd80 Merge pull request #2194 from Athou/renovate/react-router-monorepo
fix(deps): update react-router monorepo to v7.18.0
2026-06-20 00:02:36 +02:00
renovate[bot]
b87c68d598 fix(deps): update react-router monorepo to v7.18.0 2026-06-19 19:03:39 +00:00
Jérémie Panzer
33af37ed2e Merge pull request #2191 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to v6.4.0
2026-06-19 12:16:44 +02:00
renovate[bot]
c4113fc92b fix(deps): update linguijs monorepo to v6.4.0 2026-06-19 09:49:58 +00:00
renovate[bot]
ed40025d26 fix(deps): update quarkus.version to v3.36.3 2026-06-19 03:23:19 +00:00
Jérémie Panzer
752008a551 Merge pull request #2190 from Athou/renovate/actions-checkout-7.x
chore(deps): update actions/checkout action to v7
2026-06-19 05:22:13 +02:00
renovate[bot]
a8bf970dca chore(deps): update actions/checkout action to v7 2026-06-18 20:43:45 +00:00
renovate[bot]
5b94bcdfdd chore(deps): update vitest monorepo to v4.1.9 2026-06-18 09:31:04 +00:00
Jérémie Panzer
a66a0e9485 Merge pull request #2187 from Athou/renovate/graalvm-setup-graalvm-1.5.x
chore(deps): update graalvm/setup-graalvm action to v1.5.6
2026-06-18 11:26:32 +02:00
renovate[bot]
80755e15b8 chore(deps): update graalvm/setup-graalvm action to v1.5.6 2026-06-18 06:49:13 +00:00
Jérémie Panzer
8cede0c6e0 Merge pull request #2188 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to v1.18.0
2026-06-18 08:45:44 +02:00
Jérémie Panzer
9556f0f7d2 Merge pull request #2189 from Athou/renovate/node-24.x
chore(deps): update node.js to v24.17.0
2026-06-18 08:45:36 +02:00
renovate[bot]
1b80f3060c chore(deps): update node.js to v24.17.0 2026-06-18 05:41:34 +00:00
renovate[bot]
00811f0be3 fix(deps): update dependency axios to v1.18.0 2026-06-17 22:02:57 +00:00
Jérémie Panzer
0fdfc2c59c Merge pull request #2186 from Athou/renovate/style-to-object-2.x
fix(deps): update dependency style-to-object to v2
2026-06-17 17:46:31 +02:00
renovate[bot]
8d25562a76 fix(deps): update dependency style-to-object to v2 2026-06-17 14:14:50 +00:00
Jérémie Panzer
1d0d9d4be6 Merge pull request #2185 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.7.0
2026-06-16 11:46:39 +02:00
renovate[bot]
9ed4559625 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.7.0 2026-06-16 09:09:09 +00:00
renovate[bot]
2a53e8f15d chore(deps): update graalvm/setup-graalvm action to v1.5.5 2026-06-16 03:56:30 +00:00
Jérémie Panzer
15fbd18f31 Merge pull request #2184 from Athou/renovate/querydsl.version
fix(deps): update querydsl.version to v7.4.0
2026-06-16 05:55:32 +02:00
renovate[bot]
2c248a7ca1 fix(deps): update querydsl.version to v7.4.0 2026-06-15 21:52:53 +00:00
Jérémie Panzer
94d8fdb4ab Merge pull request #2183 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-7.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.1.0
2026-06-15 23:45:05 +02:00
renovate[bot]
3596439ed4 chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7.1.0 2026-06-15 20:48:14 +00:00
Jérémie Panzer
bc732a52ce Merge pull request #2179 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.17.0
2026-06-15 13:21:46 +02:00
renovate[bot]
ef096899a2 chore(deps): update dependency npm to v11.17.0 2026-06-15 09:48:49 +00:00
Jérémie Panzer
bf4bcf740e Merge pull request #2180 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.6.0
2026-06-15 11:39:11 +02:00
renovate[bot]
679281ac26 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.6.0 2026-06-15 06:12:58 +00:00
renovate[bot]
bde3d1408b fix(deps): update react-querybuilder to v8.19.1 2026-06-14 05:09:50 +00:00
Jérémie Panzer
3621a96d3f Merge pull request #2178 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to v6.3.0
2026-06-13 19:01:49 +02:00
renovate[bot]
6583ad114f fix(deps): update linguijs monorepo to v6.3.0 2026-06-13 15:48:28 +00:00
renovate[bot]
f4e42165bf fix(deps): update dependency dev.cel:cel to v0.13.1 2026-06-13 12:21:08 +00:00
Athou
00d7be735a static random fields should not be used with graalvm as they are seeded at compile time and thus not random anymore 2026-06-13 12:03:50 +02:00
Athou
1388fba8e4 apply xml cleaning to opml files 2026-06-13 11:32:57 +02:00
Athou
c43644861f use a secure algorithm to generate image urls so that only server-side generated urls can be used 2026-06-13 11:21:16 +02:00
renovate[bot]
831ca599b8 chore(deps): update dependency com.github.eirslett:frontend-maven-plugin to v2.0.1 2026-06-12 16:36:09 +00:00
Athou
43fbd03292 remove husky and lint-staged 2026-06-12 10:12:47 +02:00
Athou
1efd04f6c5 fix wrapping of long titles 2026-06-12 10:10:02 +02:00
Jérémie Panzer
e89ccfd74b Merge pull request #2177 from Athou/renovate/patch-protobuf-monorepo
fix(deps): update protobuf monorepo to v4.35.1
2026-06-12 09:53:06 +02:00
renovate[bot]
622486160c fix(deps): update protobuf monorepo to v4.35.1 2026-06-12 05:26:54 +00:00
renovate[bot]
6d172cae9e fix(deps): update quarkus.version to v3.36.2 2026-06-12 04:36:06 +00:00
renovate[bot]
91b60fb147 fix(deps): update mantine monorepo to v9.3.1 2026-06-12 01:54:16 +00:00
renovate[bot]
3f9b7f48d5 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.5 2026-06-11 19:27:17 +00:00
renovate[bot]
3599fdec65 chore(deps): update debian:13.5 docker digest to fe7312b 2026-06-11 16:02:59 +00:00
Jérémie Panzer
00e86974b3 Merge pull request #2176 from Athou/renovate/react-querybuilder
fix(deps): update react-querybuilder to v8.19.0
2026-06-11 05:37:46 +02:00
renovate[bot]
2aa897eb80 fix(deps): update react-querybuilder to v8.19.0 2026-06-11 03:11:56 +00:00
renovate[bot]
ce9706b860 chore(deps): update react monorepo to v19.2.17 2026-06-08 22:49:26 +00:00
Jérémie Panzer
e140dfe556 Merge pull request #2174 from Athou/renovate/react-router-monorepo
fix(deps): update react-router monorepo to v7.17.0
2026-06-08 08:01:57 +02:00
renovate[bot]
4a1b845ac2 chore(deps): lock file maintenance 2026-06-08 01:47:00 +00:00
renovate[bot]
573f8af57e fix(deps): update react-router monorepo to v7.17.0 2026-06-07 17:15:57 +00:00
Jérémie Panzer
33445c93e8 Merge pull request #2173 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-7.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7
2026-06-07 08:44:16 +02:00
Athou
f7fcb659f7 fix build 2026-06-07 07:34:00 +02:00
renovate[bot]
b0aa723c2f chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v7 2026-06-06 17:58:01 +00:00
Jérémie Panzer
48dca41738 Merge pull request #2172 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to v1.17.0
2026-06-06 15:55:32 +02:00
renovate[bot]
873d6f487f fix(deps): update dependency axios to v1.17.0 2026-06-06 09:44:37 +00:00
Jérémie Panzer
c8d73b129e Merge pull request #2156 from Athou/renovate/querydsl.version
fix(deps): update querydsl.version to v7.3.0
2026-06-06 06:27:00 +02:00
renovate[bot]
c63e9e1cd2 fix(deps): update querydsl.version to v7.3.0 2026-06-05 21:47:04 +00:00
Jérémie Panzer
def2ad84bb Merge pull request #2171 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to v9.3.0
2026-06-05 15:24:57 +02:00
renovate[bot]
52510e9817 fix(deps): update mantine monorepo to v9.3.0 2026-06-05 10:33:10 +00:00
renovate[bot]
69a95488ce fix(deps): update react monorepo 2026-06-04 22:50:59 +00:00
Jérémie Panzer
636841f647 Merge pull request #2170 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to v6.2.0
2026-06-04 18:13:54 +02:00
renovate[bot]
1ea521236c fix(deps): update linguijs monorepo to v6.2.0 2026-06-04 13:37:49 +00:00
renovate[bot]
6966efeda5 chore(deps): update dependency vite to v8.0.16 2026-06-04 10:09:32 +00:00
Jérémie Panzer
66ad0c3548 Merge pull request #2169 from Athou/renovate/react-querybuilder
fix(deps): update react-querybuilder to v8.18.0
2026-06-04 12:00:32 +02:00
renovate[bot]
e061ccbf79 chore(deps): update vitest monorepo to v4.1.8 2026-06-04 09:08:43 +00:00
renovate[bot]
30cc6a111d chore(deps): update dependency vite to v8.0.15 2026-06-04 04:46:24 +00:00
renovate[bot]
8416ce5124 fix(deps): update react-querybuilder to v8.18.0 2026-06-04 01:33:04 +00:00
renovate[bot]
0cacfe391b fix(deps): update quarkus.version to v3.36.1 (#2168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-03 18:16:42 +00:00
renovate[bot]
c0eaab48cd chore(deps): update graalvm/setup-graalvm action to v1.5.4 2026-06-03 15:05:10 +00:00
renovate[bot]
c696bc3545 chore(deps): update dependency lint-staged to v17.0.7 2026-06-03 14:05:03 +00:00
renovate[bot]
72505954a9 chore(deps): update dependency lint-staged to v17.0.6 2026-06-02 18:11:51 +00:00
renovate[bot]
49159dba5c chore(deps): update actions/checkout action to v6.0.3 2026-06-02 17:34:01 +00:00
renovate[bot]
41e2d89abc chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.3.0-jre docker digest to 9ff5b13 2026-06-02 16:48:04 +00:00
Jérémie Panzer
6e7de97d93 Merge pull request #2167 from Athou/renovate/react-draggable-4.x
fix(deps): update dependency react-draggable to v4.6.0
2026-06-02 05:57:46 +02:00
renovate[bot]
2f20e6b498 fix(deps): update dependency react-draggable to v4.6.0 2026-06-01 20:10:53 +00:00
Jérémie Panzer
ecf9158fd7 Merge pull request #2166 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to v7.16.0
2026-06-01 07:19:20 +02:00
renovate[bot]
dc7e7321f3 fix(deps): update dependency react-router-dom to v7.16.0 2026-05-31 21:24:56 +00:00
Jérémie Panzer
0f087ad2a0 Merge pull request #2165 from Athou/renovate/react-querybuilder
fix(deps): update react-querybuilder to v8.17.0
2026-05-31 08:06:48 +02:00
renovate[bot]
ff19a6e9eb fix(deps): update react-querybuilder to v8.17.0 2026-05-31 04:53:55 +00:00
renovate[bot]
8cec0c0779 fix(deps): update mantine monorepo to v9.2.2 2026-05-30 21:42:00 +00:00
Jérémie Panzer
314384f8e7 Merge pull request #2164 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.16.0
2026-05-30 23:40:36 +02:00
Jérémie Panzer
6c75ad95ad Merge pull request #2163 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.5.0
2026-05-30 23:40:02 +02:00
renovate[bot]
76e3b3caff chore(deps): update dependency npm to v11.16.0 2026-05-30 20:56:38 +00:00
renovate[bot]
c8f71480c9 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.5.0 2026-05-30 20:56:33 +00:00
renovate[bot]
9172a0cf9c chore(deps): update dependency @biomejs/biome to v2.4.16 2026-05-30 18:07:43 +00:00
renovate[bot]
eb476c6023 fix(deps): update react-querybuilder to v8.16.2 2026-05-30 00:38:03 +00:00
Jérémie Panzer
da4f3bd38e Merge pull request #2162 from Athou/renovate/vite-plugin-checker-0.x
chore(deps): update dependency vite-plugin-checker to v0.14.1
2026-05-29 19:13:53 +02:00
renovate[bot]
c65d628a36 chore(deps): update dependency vite-plugin-checker to v0.14.1 2026-05-29 15:43:11 +00:00
renovate[bot]
589b8c3afc fix(deps): update dependency dayjs to v1.11.21 2026-05-29 05:49:39 +00:00
Jérémie Panzer
2684051da0 Merge pull request #2161 from Athou/renovate/org.apache.maven.plugins-maven-surefire-plugin-3.5.x
chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.6
2026-05-28 13:07:25 +02:00
renovate[bot]
200db68d05 chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.6 2026-05-28 02:37:33 +00:00
renovate[bot]
f6d8d32a01 chore(deps): update dependency org.apache.maven.plugins:maven-failsafe-plugin to v3.5.6 2026-05-27 22:55:28 +00:00
Jérémie Panzer
72d5af5bb0 Merge pull request #2160 from Athou/renovate/docker-setup-qemu-action-4.x
chore(deps): update docker/setup-qemu-action action to v4.1.0
2026-05-27 21:58:58 +02:00
Jérémie Panzer
aabbc54cbb Merge pull request #2159 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.6.0
2026-05-27 21:58:50 +02:00
renovate[bot]
09b523bf56 chore(deps): update docker/setup-qemu-action action to v4.1.0 2026-05-27 19:09:41 +00:00
renovate[bot]
5dc7f522bf chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.6.0 2026-05-27 16:16:17 +00:00
Jérémie Panzer
fd58a42824 Merge pull request #2158 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.36.0
2026-05-27 12:58:43 +02:00
Jérémie Panzer
0a6d1c85ed Merge pull request #2157 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-6.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v6.1.0
2026-05-27 12:58:40 +02:00
renovate[bot]
13f84a260c fix(deps): update quarkus.version to v3.36.0 2026-05-27 09:38:52 +00:00
renovate[bot]
4132ad9a97 chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v6.1.0 2026-05-27 09:38:46 +00:00
Athou
1faba92ecc remove unused relationships 2026-05-27 07:28:19 +02:00
renovate[bot]
b93fc86663 fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.39 2026-05-26 00:28:53 +00:00
renovate[bot]
7123036e8d chore(deps): lock file maintenance 2026-05-25 02:01:46 +00:00
Jérémie Panzer
cce4ea4dc6 Merge pull request #2155 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to v6.1.0
2026-05-25 01:49:13 +02:00
renovate[bot]
b8f7df1555 fix(deps): update linguijs monorepo to v6.1.0 2026-05-24 13:45:25 +00:00
renovate[bot]
ba8cc0477c chore(deps): update dependency vite to v8.0.14 2026-05-24 09:26:55 +00:00
Jérémie Panzer
010026bc88 Merge pull request #2154 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.15.0
2026-05-24 07:07:15 +02:00
renovate[bot]
a1ba34caf2 chore(deps): update dependency npm to v11.15.0 2026-05-23 20:45:10 +00:00
renovate[bot]
1214380bee chore(deps): update dependency vitest to v4.1.7 2026-05-23 12:43:21 +00:00
Athou
03eb09c68c limit the number of favicon retries 2026-05-23 11:17:59 +02:00
renovate[bot]
055d503862 chore(deps): update dependency @types/react to v19.2.15 2026-05-22 23:03:14 +00:00
Athou
5755ff762b Trie is thread-safe, no need to recreate one every time 2026-05-22 20:29:48 +02:00
Jérémie Panzer
88e24787e8 Merge pull request #2153 from Athou/renovate/docker-setup-buildx-action-4.x
chore(deps): update docker/setup-buildx-action action to v4.1.0
2026-05-22 20:25:02 +02:00
renovate[bot]
ed32d07ac4 chore(deps): update docker/setup-buildx-action action to v4.1.0 2026-05-22 18:04:22 +00:00
Jérémie Panzer
3a917fcebe Merge pull request #2152 from Athou/renovate/docker-login-action-4.x
chore(deps): update docker/login-action action to v4.2.0
2026-05-22 15:41:58 +02:00
renovate[bot]
3535068ca8 chore(deps): update docker/login-action action to v4.2.0 2026-05-22 13:03:48 +00:00
Jérémie Panzer
4c39d4b96b Merge pull request #2150 from Athou/renovate/docker-build-push-action-7.x
chore(deps): update docker/build-push-action action to v7.2.0
2026-05-21 21:27:31 +02:00
renovate[bot]
8e864c6793 chore(deps): update docker/build-push-action action to v7.2.0 2026-05-21 18:41:32 +00:00
Jérémie Panzer
aeffecced3 Merge pull request #2151 from Athou/renovate/node-24.x
chore(deps): update node.js to v24.16.0
2026-05-21 19:54:18 +02:00
renovate[bot]
4be42dc1e2 chore(deps): update node.js to v24.16.0 2026-05-21 17:03:21 +00:00
Jérémie Panzer
bdf6c62c29 Merge pull request #2149 from Athou/renovate/org.mock-server-mockserver-junit-jupiter-6.x
chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v6
2026-05-21 07:37:36 +02:00
Athou
a4592e5199 fix tests 2026-05-21 04:48:43 +02:00
renovate[bot]
a5268f082d chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v6 2026-05-20 19:50:45 +00:00
Jérémie Panzer
b556e72922 Merge pull request #2148 from Athou/renovate/patch-quarkus.version
fix(deps): update quarkus.version to v3.35.4
2026-05-20 21:50:23 +02:00
renovate[bot]
3602d2533a fix(deps): update quarkus.version to v3.35.4 2026-05-20 15:46:05 +00:00
Jérémie Panzer
681f2c766a Merge pull request #2147 from Athou/renovate/mindsers-changelog-reader-action-2.x
chore(deps): update mindsers/changelog-reader-action action to v2.4.0
2026-05-20 14:11:52 +02:00
renovate[bot]
6e0a136cd1 chore(deps): update mindsers/changelog-reader-action action to v2.4.0 2026-05-20 10:37:59 +00:00
Jérémie Panzer
9e9945a1cc Merge pull request #2146 from Athou/renovate/debian-13.5
chore(deps): update debian:13.5 docker digest to 4ae6766
2026-05-20 08:46:39 +02:00
renovate[bot]
3368cead8b chore(deps): update debian:13.5 docker digest to 4ae6766 2026-05-20 04:16:03 +00:00
Jérémie Panzer
a7b5126b4a Merge pull request #2145 from Athou/renovate/protobuf-monorepo
fix(deps): update dependency com.google.protobuf:protobuf-java to v4.35.0
2026-05-20 06:15:49 +02:00
Jérémie Panzer
a9ef1a03dc Merge pull request #2144 from Athou/renovate/debian-13.x
chore(deps): update debian docker tag to v13.5
2026-05-20 06:15:22 +02:00
Jérémie Panzer
bc0ec8dbfa Merge pull request #2143 from Athou/renovate/mindsers-changelog-reader-action-2.x
chore(deps): update mindsers/changelog-reader-action action to v2.3.0
2026-05-20 06:15:02 +02:00
renovate[bot]
7bef009922 fix(deps): update dependency com.google.protobuf:protobuf-java to v4.35.0 2026-05-20 01:03:49 +00:00
renovate[bot]
9a467bc27b chore(deps): update debian docker tag to v13.5 2026-05-20 01:03:45 +00:00
renovate[bot]
e3934c9403 chore(deps): update mindsers/changelog-reader-action action to v2.3.0 2026-05-19 22:42:24 +00:00
renovate[bot]
af337aa4d0 chore(deps): update dependency lint-staged to v17.0.5 2026-05-19 13:45:40 +00:00
Jérémie Panzer
313d3a01ec Merge pull request #2141 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to v2.12.0
2026-05-19 07:20:37 +02:00
Jérémie Panzer
feb9876cf5 Merge pull request #2142 from Athou/renovate/react-redux-9.x
fix(deps): update dependency react-redux to v9.3.0
2026-05-19 07:20:32 +02:00
renovate[bot]
9c3a5cb820 fix(deps): update dependency react-redux to v9.3.0 2026-05-18 19:12:38 +00:00
renovate[bot]
e219f781bf fix(deps): update dependency @reduxjs/toolkit to v2.12.0 2026-05-18 19:12:29 +00:00
renovate[bot]
21ecd6ae05 chore(deps): lock file maintenance 2026-05-18 00:37:57 +00:00
renovate[bot]
2449902c3d chore(deps): update dependency @vitejs/plugin-react to v6.0.2 2026-05-17 20:56:33 +00:00
renovate[bot]
c1a55037ba chore(deps): update dependency maven to v3.9.16 2026-05-17 19:48:01 +00:00
Jérémie Panzer
646a8122c0 Merge pull request #2140 from Athou/renovate/patch-react-router-monorepo
fix(deps): update dependency react-router-dom to v7.15.1
2026-05-17 21:47:37 +02:00
renovate[bot]
edc4e6c508 fix(deps): update dependency react-router-dom to v7.15.1 2026-05-17 18:40:58 +00:00
renovate[bot]
5ddeb7b156 fix(deps): update mantine monorepo to v9.2.1 2026-05-17 17:25:02 +00:00
renovate[bot]
306624e55f chore(deps): update dependency vite to v8.0.13 2026-05-17 12:41:35 +00:00
renovate[bot]
6a9ca65cbc fix(deps): update react-querybuilder to v8.16.1 2026-05-16 21:39:23 +00:00
renovate[bot]
7db0026a0c fix(deps): update dependency axios to v1.16.1 2026-05-16 16:37:50 +00:00
Jérémie Panzer
7358705248 Merge pull request #2137 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to v9.2.0
2026-05-16 07:58:01 +02:00
Jérémie Panzer
0b9ee2eec9 Merge pull request #2139 from Athou/renovate/dev.cel-cel-0.x
fix(deps): update dependency dev.cel:cel to v0.13.0
2026-05-16 07:57:48 +02:00
renovate[bot]
42eaf7fc39 fix(deps): update dependency dev.cel:cel to v0.13.0 2026-05-16 01:25:48 +00:00
renovate[bot]
6783cac9b4 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.5.1 2026-05-16 01:25:45 +00:00
renovate[bot]
628106ce88 fix(deps): update dependency tss-react to v4.9.21 2026-05-15 16:29:21 +00:00
Jérémie Panzer
1ce69b31a7 Merge pull request #2136 from Athou/renovate/yaml-2.x
chore(deps): update dependency yaml to v2.9.0
2026-05-15 08:01:15 +02:00
Jérémie Panzer
912ac11842 Merge pull request #2138 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.5.0
2026-05-15 07:57:38 +02:00
renovate[bot]
5f2fad560c chore(deps): update dependency yaml to v2.9.0 2026-05-14 21:28:25 +00:00
renovate[bot]
b300f364a7 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.5.0 2026-05-14 21:28:13 +00:00
renovate[bot]
049ec41d13 fix(deps): update mantine monorepo to v9.2.0 2026-05-14 16:49:16 +00:00
renovate[bot]
f0d17bc84e chore(deps): update dependency vitest to v4.1.6 2026-05-14 16:49:07 +00:00
renovate[bot]
cc442d7409 chore(deps): update dependency vite to v8.0.12 2026-05-14 08:51:10 +00:00
renovate[bot]
80bac26f21 fix(deps): update quarkus.version to v3.35.3 2026-05-13 17:00:07 +00:00
renovate[bot]
015c39e6f4 chore(deps): update dependency lint-staged to v17.0.4 2026-05-12 21:11:12 +00:00
renovate[bot]
e0ec3a4ebd chore(deps): update dependency @biomejs/biome to v2.4.15 2026-05-12 17:27:19 +00:00
renovate[bot]
a022de5cc3 chore(deps): update dependency npm to v11.14.1 2026-05-11 20:50:59 +00:00
renovate[bot]
a7b5e1e18c chore(deps): update dependency lint-staged to v17.0.3 2026-05-11 17:57:10 +00:00
renovate[bot]
b8695df1c8 fix(deps): update dependency io.github.hakky54:ayza-for-apache5 to v10.0.5 2026-05-11 11:10:01 +00:00
renovate[bot]
5e4382d1d2 chore(deps): lock file maintenance 2026-05-11 01:26:50 +00:00
Athou
ce983f4906 fix flaky test 2026-05-10 21:19:35 +02:00
Athou
4a8be29616 add support for declared icons in feeds (#2048) 2026-05-10 21:05:33 +02:00
renovate[bot]
1622eb642a chore(deps): update dependency vite to v8.0.11 2026-05-10 10:37:18 +00:00
Jérémie Panzer
422d992484 Merge pull request #2135 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.14.0
2026-05-10 12:36:28 +02:00
renovate[bot]
1065af1233 chore(deps): update dependency npm to v11.14.0 2026-05-09 20:56:38 +00:00
renovate[bot]
dde39d83be fix(deps): update react monorepo to v19.2.6 2026-05-09 16:44:07 +00:00
Jérémie Panzer
94fe7617bf Merge pull request #2134 from Athou/renovate/lint-staged-17.x
chore(deps): update dependency lint-staged to v17
2026-05-09 17:08:52 +02:00
Jérémie Panzer
e781d85b7c Merge pull request #2133 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to v7.15.0
2026-05-09 17:08:35 +02:00
renovate[bot]
c30c9ca380 chore(deps): update dependency lint-staged to v17 2026-05-09 13:42:20 +00:00
renovate[bot]
c395916af9 chore(deps): update debian:13.4 docker digest to e2d08da 2026-05-09 04:41:33 +00:00
renovate[bot]
1a4037e360 fix(deps): update dependency react-router-dom to v7.15.0 2026-05-08 16:51:27 +00:00
Athou
f207bfaddd format empty records and anonymous types as a single line 2026-05-08 17:56:26 +02:00
Jérémie Panzer
3dd298c0c8 Merge pull request #2132 from Athou/renovate/react-querybuilder
fix(deps): update react-querybuilder to v8.16.0 (minor)
2026-05-08 08:29:30 +02:00
renovate[bot]
8e2e4da7c3 fix(deps): update react-querybuilder to v8.16.0 2026-05-08 05:58:29 +00:00
renovate[bot]
418e3c109c chore(deps): update graalvm/setup-graalvm action to v1.5.3 2026-05-06 18:39:48 +00:00
Jérémie Panzer
cfda63a609 Merge pull request #2131 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to v1.16.0
2026-05-06 07:22:28 +02:00
renovate[bot]
ba68276bfb fix(deps): update dependency axios to v1.16.0 2026-05-05 19:30:57 +00:00
renovate[bot]
97c700024a chore(deps): update dependency yaml to v2.8.4 2026-05-05 10:10:38 +00:00
renovate[bot]
d4f67d726c chore(deps): update dependency @biomejs/biome to v2.4.14 2026-05-04 20:37:34 +00:00
Jérémie Panzer
ea87fa3e5a Merge pull request #2130 from Athou/renovate/io.quarkiverse.playwright-quarkus-playwright-2.3.x
chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.4
2026-05-04 22:36:37 +02:00
renovate[bot]
d12d247b3e chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.4 2026-05-04 20:07:06 +00:00
renovate[bot]
c4a23915bd fix(deps): update quarkus.version to v3.35.2 2026-05-04 19:06:39 +00:00
Athou
8645c57d13 simplify settings thunks 2026-05-04 08:03:57 +02:00
Jérémie Panzer
b170e0bc17 Merge pull request #2129 from Athou/renovate/patch-linguijs-monorepo
fix(deps): update linguijs monorepo to v6.0.1 (patch)
2026-05-04 08:03:53 +02:00
renovate[bot]
4199f514f9 fix(deps): update linguijs monorepo to v6.0.1 2026-05-04 05:28:51 +00:00
renovate[bot]
c96efb3bb4 chore(deps): lock file maintenance 2026-05-04 00:57:15 +00:00
renovate[bot]
d5571e0196 chore(deps): update dependency jsdom to v29.1.1 2026-05-03 09:41:32 +00:00
Athou
9f7f87b4ae move handlers in Layout because they actually only apply to the reader pages 2026-05-02 15:04:33 +02:00
renovate[bot]
4b03fce85d chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.4.2 2026-05-02 06:12:23 +00:00
renovate[bot]
4b28d1c635 chore(deps): update ibm-semeru-runtimes docker tag to open-jdk-25.0.3.0-jre 2026-05-01 11:59:50 +00:00
Jérémie Panzer
a5e803177f Merge pull request #2128 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.35.1 (minor)
2026-05-01 13:59:25 +02:00
renovate[bot]
9462f284a4 fix(deps): update quarkus.version to v3.35.1 2026-05-01 11:33:13 +00:00
renovate[bot]
4b0f6bd61b fix(deps): update mantine monorepo to v9.1.1 2026-04-30 21:05:02 +00:00
Jérémie Panzer
d6c85214ef Merge pull request #2127 from Athou/renovate/jsdom-29.x
chore(deps): update dependency jsdom to v29.1.0
2026-04-30 07:18:31 +02:00
renovate[bot]
de770cf801 chore(deps): update dependency jsdom to v29.1.0 2026-04-30 04:39:54 +00:00
renovate[bot]
dae0f740c2 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.4.1 2026-04-27 17:36:06 +00:00
Athou
9452c3e74c remove warning 2026-04-27 18:01:02 +02:00
Athou
f826f1d543 create comparator only once 2026-04-27 18:01:02 +02:00
Athou
fd13c80e5a allow reuse of TLS connections 2026-04-27 17:52:40 +02:00
Athou
75871348d5 compile pattern once 2026-04-27 17:46:50 +02:00
renovate[bot]
0140e88595 chore(deps): lock file maintenance 2026-04-27 00:53:02 +00:00
renovate[bot]
e620b1254b chore(deps): update dependency @biomejs/biome to v2.4.13 2026-04-26 17:49:57 +00:00
Jérémie Panzer
77cfcf6c58 Merge pull request #2123 from Athou/renovate/major-linguijs-monorepo
fix(deps): update linguijs monorepo to v6 (major)
2026-04-26 16:07:22 +02:00
Athou
04e9df3d0a the format and the formatOptions fields have been removed 2026-04-26 15:43:42 +02:00
renovate[bot]
a953134089 chore(deps): update dependency vite to v8.0.10 2026-04-26 06:27:27 +00:00
Jérémie Panzer
88b9c0d783 Merge pull request #2125 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.13.0
2026-04-26 08:26:50 +02:00
renovate[bot]
ff7e0ba95b chore(deps): update dependency npm to v11.13.0 2026-04-25 20:53:09 +00:00
renovate[bot]
53dfbcaf00 fix(deps): update linguijs monorepo to v6 2026-04-25 13:00:15 +00:00
renovate[bot]
d8fca22c00 fix(deps): update dependency react-router-dom to v7.14.2 (#2122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-25 05:15:30 +00:00
renovate[bot]
4fb5963bd9 fix(deps): update dependency axios to v1.15.2 2026-04-24 19:10:13 +00:00
Jérémie Panzer
862d81f446 Merge pull request #2121 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to v9.1.0 (minor)
2026-04-24 21:09:22 +02:00
renovate[bot]
8ae7943b94 fix(deps): update mantine monorepo to v9.1.0 2026-04-24 17:36:15 +00:00
renovate[bot]
46e947d779 chore(deps): update dependency vitest to v4.1.5 2026-04-24 14:58:06 +00:00
renovate[bot]
7780d6020f chore(deps): update dependency vite to v8.0.9 2026-04-23 07:05:57 +00:00
renovate[bot]
e5803b46f2 fix(deps): update quarkus.version to v3.34.6 2026-04-22 22:04:58 +00:00
renovate[bot]
d776090298 fix(deps): update dependency axios to v1.15.1 2026-04-22 18:11:13 +00:00
renovate[bot]
f2f3111d49 chore(deps): update debian:13.4 docker digest to 35b8ff7 2026-04-22 06:50:35 +00:00
renovate[bot]
dff1b957cd fix(deps): update dependency org.projectlombok:lombok to v1.18.46 2026-04-22 01:21:16 +00:00
Athou
b1ec50c3cb increase timeout to prevent flaky tests 2026-04-20 11:06:03 +02:00
renovate[bot]
85aa188287 chore(deps): lock file maintenance 2026-04-20 08:11:06 +00:00
renovate[bot]
e7d6526da9 fix(deps): update dependency org.jsoup:jsoup to v1.22.2 2026-04-20 07:28:37 +00:00
Jérémie Panzer
d67c6fcc00 Merge pull request #2119 from Athou/renovate/actions-setup-node-6.x
chore(deps): update actions/setup-node action to v6.4.0
2026-04-20 09:25:22 +02:00
renovate[bot]
d9bf084300 chore(deps): update actions/setup-node action to v6.4.0 2026-04-20 06:58:42 +00:00
Athou
da3977b0e2 fix error message not correctly returned 2026-04-20 08:39:24 +02:00
renovate[bot]
7df930bccc chore(deps): update dependency typescript to v6.0.3 2026-04-20 00:42:50 +00:00
renovate[bot]
11f73a1a53 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6.1 2026-04-19 12:22:35 +00:00
Jérémie Panzer
2bbcd55e48 Merge pull request #2118 from Athou/renovate/react-querybuilder
fix(deps): update react-querybuilder to v8.15.0 (minor)
2026-04-19 14:21:37 +02:00
renovate[bot]
43890b8d5c fix(deps): update react-querybuilder to v8.15.0 2026-04-19 11:54:36 +00:00
Athou
b6b8e3741b group react-querybuilder and @react-querybuilder/mantine together 2026-04-19 13:53:45 +02:00
Jérémie Panzer
c39f00c336 Merge pull request #2114 from Athou/renovate/vite-plugin-checker-0.x
chore(deps): update dependency vite-plugin-checker to v0.13.0
2026-04-19 08:04:06 +02:00
renovate[bot]
e48eaacfef chore(deps): update dependency vite-plugin-checker to v0.13.0 2026-04-18 13:49:45 +00:00
renovate[bot]
6d97691388 chore(deps): update dependency @biomejs/biome to v2.4.12 2026-04-17 21:33:53 +00:00
renovate[bot]
d64cc996bc chore(deps): update dependency maven to v3.9.15 2026-04-17 14:05:43 +00:00
renovate[bot]
617d66c9b9 fix(deps): update quarkus.version to v3.34.5 2026-04-17 05:06:55 +00:00
Jérémie Panzer
0fc50d2105 Merge pull request #2113 from Athou/renovate/rolldown-plugin-babel-0.2.x
fix(deps): update dependency @rolldown/plugin-babel to v0.2.3
2026-04-17 07:06:29 +02:00
renovate[bot]
2bb9f28569 fix(deps): update dependency @rolldown/plugin-babel to v0.2.3 2026-04-17 01:09:52 +00:00
renovate[bot]
c1580b8359 fix(deps): update dependency react-router-dom to v7.14.1 2026-04-16 21:56:46 +00:00
Jérémie Panzer
dde235825d Merge pull request #2111 from Athou/renovate/patch-mantine-monorepo
fix(deps): update mantine monorepo to v9.0.2 (patch)
2026-04-16 19:07:20 +02:00
renovate[bot]
eac13b4025 fix(deps): update mantine monorepo to v9.0.2 2026-04-16 15:40:07 +00:00
Athou
59cc9c2706 add explicit dependency 2026-04-16 17:38:54 +02:00
Athou
40e20a0d33 use exact versions 2026-04-16 16:25:54 +02:00
Jérémie Panzer
a42679acaa Merge pull request #2112 from Athou/renovate/node-24.x
chore(deps): update node.js to v24.15.0
2026-04-16 13:28:55 +02:00
renovate[bot]
fd2e8fcdb8 chore(deps): update node.js to v24.15.0 2026-04-16 10:57:14 +00:00
Athou
ebd5a15152 cache npm dependencies during CI build 2026-04-15 09:22:04 +02:00
Athou
6cdd110304 release 7.1.0 2026-04-15 07:45:15 +02:00
Jérémie Panzer
3181cda2e0 Merge pull request #2110 from Athou/renovate/actions-upload-pages-artifact-5.x
chore(deps): update actions/upload-pages-artifact action to v5
2026-04-14 09:21:31 +02:00
renovate[bot]
2659c7fc02 chore(deps): update actions/upload-pages-artifact action to v5 2026-04-14 06:47:52 +00:00
renovate[bot]
5747ae3429 fix(deps): update dependency axios to ^1.15.0 2026-04-13 05:02:56 +00:00
renovate[bot]
8d60be0e3f chore(deps): lock file maintenance 2026-04-13 01:02:19 +00:00
renovate[bot]
7e3f801a5a chore(deps): update dependency @biomejs/biome to v2.4.11 2026-04-12 16:59:32 +00:00
renovate[bot]
687ef53c65 chore(deps): update dependency vitest to ^4.1.4 2026-04-12 08:58:19 +00:00
renovate[bot]
a1fe9e727e chore(deps): update dependency vite to ^8.0.8 2026-04-12 04:30:28 +00:00
renovate[bot]
6d625c88d3 fix(deps): update react monorepo to ^19.2.5 2026-04-11 20:26:25 +00:00
renovate[bot]
c314e2de6b chore(deps): update dependency vitest to ^4.1.3 2026-04-11 01:40:15 +00:00
renovate[bot]
bd08b95390 chore(deps): update actions/upload-artifact digest to 043fb46 2026-04-10 21:11:12 +00:00
renovate[bot]
aed0cca7e1 chore(deps): update dependency vite to ^8.0.7 2026-04-10 16:53:01 +00:00
renovate[bot]
7d7761fb8d chore(deps): update docker/build-push-action digest to bcafcac 2026-04-10 13:24:27 +00:00
Athou
6d2fb5acc2 refactor 2026-04-10 15:17:27 +02:00
Athou
ec35d846cf Merge branch 'perf/batch-guid-check-on-feed-refresh' of https://github.com/ingokegel/commafeed into ingokegel-perf/batch-guid-check-on-feed-refresh 2026-04-10 14:22:32 +02:00
Ingo Kegel
1d23907652 Use batched IN clause for GUID existence check during feed refresh
Instead of fetching all existing GUID hashes for a feed from the database only check the GUIDs present in the current feed XML using a SQL IN clause. GUIDs are partitioned into batches of 1000.

Also adds an integration test verifying that refreshing an up-to-date feed does not create duplicate entries.
2026-04-10 10:13:37 +02:00
renovate[bot]
efc6c10ace fix(deps): update quarkus.version to v3.34.3 2026-04-08 19:39:10 +00:00
renovate[bot]
47a8ad5244 chore(deps): update debian:13.4 docker digest to 3352c2e 2026-04-07 06:43:23 +00:00
Athou
5d879c4619 update all dependencies 2026-04-07 08:42:07 +02:00
Jérémie Panzer
6e0dd3d064 Merge pull request #2094 from Athou/renovate/typescript-6.x
chore(deps): update dependency typescript to v6
2026-04-07 03:23:40 +02:00
Athou
4657a403d0 adapt to typescript 6.0 api 2026-04-07 02:42:44 +02:00
Jérémie Panzer
bf09a07fe2 Merge pull request #2108 from Athou/renovate/org.passay-passay-2.x
fix(deps): update dependency org.passay:passay to v2
2026-04-07 02:28:34 +02:00
Jérémie Panzer
927802ca88 Merge pull request #2096 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.4.0
2026-04-07 02:13:55 +02:00
Athou
3d5bc9ef0e adapt to passay 2.0 api 2026-04-07 02:11:37 +02:00
Jérémie Panzer
706ad7e44d Merge pull request #2107 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.14.0
2026-04-07 02:06:30 +02:00
Jérémie Panzer
88206f521b Merge pull request #2102 from Athou/renovate/io.github.git-commit-id-git-commit-id-maven-plugin-10.x
chore(deps): update dependency io.github.git-commit-id:git-commit-id-maven-plugin to v10
2026-04-06 20:27:07 +02:00
renovate[bot]
af786b4c11 fix(deps): update dependency org.passay:passay to v2 2026-04-06 18:26:35 +00:00
renovate[bot]
d4c749c997 fix(deps): update dependency react-router-dom to ^7.14.0 2026-04-06 18:26:28 +00:00
Jérémie Panzer
b5aa25cd0b Merge pull request #2093 from Athou/renovate/actions-deploy-pages-5.x
chore(deps): update actions/deploy-pages action to v5
2026-04-06 20:25:27 +02:00
Jérémie Panzer
ae49fb6dad Merge pull request #2092 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.34.2 (minor)
2026-04-06 20:25:17 +02:00
Jérémie Panzer
3e24d17951 Merge pull request #2090 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.12.1
2026-04-06 20:25:06 +02:00
renovate[bot]
22030e6907 chore(deps): update dependency io.github.git-commit-id:git-commit-id-maven-plugin to v10 2026-04-03 13:24:55 +00:00
renovate[bot]
39fdcb9af3 chore(deps): update dependency @biomejs/biome to v2.4.10 2026-04-02 20:55:13 +00:00
renovate[bot]
866998f98b chore(deps): update docker/login-action digest to 4907a6d 2026-04-02 18:53:38 +00:00
renovate[bot]
0fa71f76e8 fix(deps): update quarkus.version to v3.34.2 2026-04-02 13:57:27 +00:00
renovate[bot]
317f655128 chore(deps): update graalvm/setup-graalvm digest to 60c2672 2026-04-02 09:27:39 +00:00
renovate[bot]
a871426f31 chore(deps): update dependency typescript to v6 2026-04-01 17:58:10 +00:00
renovate[bot]
2caf9ff38a chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.4.0 2026-04-01 17:57:52 +00:00
renovate[bot]
1de3a57d50 chore(deps): update graalvm/setup-graalvm digest to 2149f39 2026-03-31 14:12:33 +00:00
renovate[bot]
bed1355d63 fix(deps): update linguijs monorepo to ^5.9.4 (#2101)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-31 05:49:21 +00:00
renovate[bot]
189f9b4f26 fix(deps): update dependency axios to ^1.14.0 2026-03-30 20:50:54 +00:00
renovate[bot]
931b5a22e6 chore(deps): lock file maintenance 2026-03-30 05:50:15 +00:00
renovate[bot]
4c9e0a8b74 fix(deps): update dependency @react-querybuilder/mantine to ^8.14.3 (#2098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-30 05:48:48 +00:00
renovate[bot]
589472314b chore(deps): update dependency npm to v11.12.1 2026-03-29 21:36:53 +00:00
renovate[bot]
f11657fdee fix(deps): update dependency react-querybuilder to ^8.14.3 2026-03-29 21:36:40 +00:00
renovate[bot]
e4ec081357 chore(deps): update dependency vitest to ^4.1.2 2026-03-29 16:49:20 +00:00
renovate[bot]
9e55527a2b chore(deps): update dependency vite to ^8.0.3 2026-03-29 09:18:01 +00:00
renovate[bot]
cca70ffcec chore(deps): update dependency @biomejs/biome to v2.4.9 2026-03-28 12:57:11 +00:00
renovate[bot]
2a6a717ef2 fix(deps): update dependency react-querybuilder to ^8.14.2 (#2095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-28 04:57:16 +00:00
renovate[bot]
11043554c2 fix(deps): update dependency @react-querybuilder/mantine to ^8.14.2 2026-03-27 21:36:47 +00:00
renovate[bot]
cdbef468d7 fix(deps): update dependency react-router-dom to ^7.13.2 2026-03-27 01:19:23 +00:00
renovate[bot]
4705b75580 chore(deps): update dependency vitest to ^4.1.1 2026-03-26 21:24:23 +00:00
renovate[bot]
245ccf889e chore(deps): update dependency vite to ^8.0.2 2026-03-26 18:20:14 +00:00
renovate[bot]
2ad0a3d622 chore(deps): update actions/deploy-pages action to v5 2026-03-25 20:26:46 +00:00
renovate[bot]
e775f774b5 chore(deps): update node.js to v24.14.1 2026-03-25 01:42:38 +00:00
renovate[bot]
ad2aec44e5 chore(deps): update dependency yaml to ^2.8.3 2026-03-24 12:58:01 +00:00
renovate[bot]
11d3effc28 chore(deps): update dependency jsdom to ^29.0.1 2026-03-23 04:57:54 +00:00
renovate[bot]
2ef12e2868 fix(deps): update mantine monorepo to ^8.3.18 (#2084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-23 04:57:27 +00:00
renovate[bot]
ed8c5ce1ea chore(deps): lock file maintenance 2026-03-23 00:39:56 +00:00
renovate[bot]
33e507efe5 chore(deps): update dependency vite to ^8.0.1 2026-03-22 13:45:17 +00:00
renovate[bot]
c425f5cf6a chore(deps): update dependency @biomejs/biome to v2.4.8 2026-03-21 16:56:21 +00:00
renovate[bot]
fc76d7e609 fix(deps): update dependency @rolldown/plugin-babel to ^0.2.2 2026-03-21 08:51:10 +00:00
renovate[bot]
1b24bf33ed fix(deps): update dependency com.google.protobuf:protobuf-java to v4.34.1 2026-03-20 18:02:04 +00:00
Ingo Kegel
16036897cb Merge branch 'Athou:master' into perf/batch-guid-check-on-feed-refresh 2026-03-19 19:25:09 +01:00
renovate[bot]
58ff378735 fix(deps): update dependency io.github.hakky54:ayza-for-apache5 to v10.0.4 2026-03-19 13:44:43 +00:00
Jérémie Panzer
1cee04a233 Merge pull request #2088 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.4.0
2026-03-19 00:03:44 +01:00
renovate[bot]
ac11a0efb8 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.4.0 2026-03-18 21:29:01 +00:00
renovate[bot]
f2ea1e3f7a fix(deps): update dependency io.quarkus.platform:quarkus-bom to v3.32.4 2026-03-18 18:07:29 +00:00
Ingo Kegel
76dbbdfbf9 batch guid existence check on feed refresh
Instead of querying the database once per entry to check if it already
exists, fetch all existing guids for a feed in a single query upfront
and filter new entries in memory before the per-entry loop.

The per-entry findExisting call inside addEntry is kept as a safety net
for concurrent inserts, but is now only reached for new entries.

Profiling in real usage showed a ~50% reduction in guidHash queries,
with the check falling from the most expensive query to sixth in the ranking.
2026-03-18 18:56:40 +01:00
Jérémie Panzer
153970c146 Merge pull request #2087 from Athou/renovate/jsdom-29.x
chore(deps): update dependency jsdom to v29
2026-03-18 13:46:24 +01:00
renovate[bot]
c21287e642 chore(deps): update dependency jsdom to v29 2026-03-18 12:13:28 +00:00
Athou
284942a82e add feature-request to the list of exempted labels 2026-03-18 13:00:44 +01:00
Jérémie Panzer
e796916e73 Merge pull request #2085 from Athou/renovate/com.ibm.icu-icu4j-78.x
fix(deps): update dependency com.ibm.icu:icu4j to v78.3
2026-03-18 12:42:41 +01:00
renovate[bot]
004db1762c fix(deps): update dependency com.ibm.icu:icu4j to v78.3 2026-03-17 22:35:16 +00:00
renovate[bot]
8e05ba8820 chore(deps): update dependency lint-staged to ^16.4.0 (#2083)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-17 20:33:50 +00:00
renovate[bot]
f4f386b5e5 chore(deps): update dependency lint-staged to ^16.3.4 2026-03-17 09:01:31 +00:00
Jérémie Panzer
ecbf8bec23 Merge pull request #2082 from Athou/renovate/debian-13.x
chore(deps): update debian docker tag to v13.4
2026-03-17 07:29:17 +01:00
renovate[bot]
5d8c09ccda chore(deps): update debian docker tag to v13.4 2026-03-17 00:35:37 +00:00
renovate[bot]
47c5c3d8a0 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.3 2026-03-16 21:27:52 +00:00
renovate[bot]
3ddce16d5b chore(deps): update graalvm/setup-graalvm digest to 03e8abf 2026-03-16 18:35:24 +00:00
renovate[bot]
acefdc44d9 chore(deps): lock file maintenance 2026-03-16 01:07:15 +00:00
renovate[bot]
d05c5b9d7f chore(deps): update dependency npm to v11.11.1 2026-03-15 04:53:39 +00:00
renovate[bot]
5d1237d1f4 chore(deps): update ncipollo/release-action digest to 339a818 2026-03-15 01:34:06 +00:00
Athou
6bac8631ac output mantine as its own chunk because it is quite large 2026-03-14 20:20:51 +01:00
Athou
2c803327ad upgrade to vite 8 2026-03-13 22:35:20 +01:00
renovate[bot]
451ae5bc51 chore(deps): update dependency lint-staged to ^16.3.3 2026-03-13 05:46:24 +00:00
renovate[bot]
f41ce8c878 chore(deps): update graalvm/setup-graalvm digest to 6e327d2 2026-03-12 19:12:27 +00:00
renovate[bot]
177c54c813 chore(deps): update dependency maven to v3.9.14 2026-03-12 14:46:09 +00:00
Jérémie Panzer
3765e32fd4 Merge pull request #2079 from Athou/renovate/protobuf-monorepo
fix(deps): update dependency com.google.protobuf:protobuf-java to v4.34.0
2026-03-12 08:19:25 +01:00
renovate[bot]
aab7a16d18 fix(deps): update dependency com.google.protobuf:protobuf-java to v4.34.0 2026-03-12 06:26:40 +00:00
Athou
f2463af63c cel update 2026-03-12 07:25:36 +01:00
renovate[bot]
212c2c3b56 fix(deps): update quarkus.version to v3.32.3 2026-03-11 22:48:05 +00:00
renovate[bot]
3ab00b0cdd chore(deps): update actions/download-artifact digest to 3e5f45b 2026-03-11 17:53:34 +00:00
renovate[bot]
fad85e9299 fix(deps): update dependency org.projectlombok:lombok to v1.18.44 2026-03-11 02:48:12 +00:00
renovate[bot]
3cd5e203e2 fix(deps): update mantine monorepo to ^8.3.16 (#2076)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-09 08:40:30 +00:00
Jérémie Panzer
7b081fa870 Merge pull request #2077 from Athou/renovate/biomejs-biome-2.4.x
chore(deps): update dependency @biomejs/biome to v2.4.6
2026-03-09 09:08:37 +01:00
renovate[bot]
5ce22051d4 chore(deps): update dependency @biomejs/biome to v2.4.6 2026-03-09 07:19:20 +00:00
Jérémie Panzer
1e59489fa5 Merge pull request #2078 from Athou/renovate/lock-file-maintenance
chore(deps): lock file maintenance
2026-03-09 08:18:42 +01:00
renovate[bot]
1e691b1255 chore(deps): lock file maintenance 2026-03-09 01:10:36 +00:00
Jérémie Panzer
61e1bef63f Merge pull request #2074 from Athou/renovate/maven-3.9.x
chore(deps): update dependency maven to v3.9.13
2026-03-07 03:45:01 +01:00
renovate[bot]
46dbb78fbf chore(deps): update dependency maven to v3.9.13 2026-03-07 01:16:46 +00:00
renovate[bot]
99890707b3 chore(deps): update dependency lint-staged to ^16.3.2 2026-03-06 21:20:05 +00:00
Jérémie Panzer
f54c841fdc Merge pull request #2073 from Athou/renovate/react-icons-5.x
fix(deps): update dependency react-icons to ^5.6.0
2026-03-06 17:37:19 +01:00
renovate[bot]
e2a6009ee9 fix(deps): update dependency react-icons to ^5.6.0 2026-03-06 10:39:30 +00:00
Jérémie Panzer
a34dd15040 Merge pull request #2072 from Athou/renovate/docker-build-push-action-7.x
chore(deps): update docker/build-push-action action to v7
2026-03-06 07:20:22 +01:00
renovate[bot]
24c934003d chore(deps): update docker/build-push-action action to v7 2026-03-05 21:51:18 +00:00
renovate[bot]
5300e1a245 chore(deps): update dependency @biomejs/biome to v2.4.5 2026-03-05 18:43:33 +00:00
Jérémie Panzer
90381c670b Merge pull request #2071 from Athou/renovate/org.apache.maven.plugins-maven-resources-plugin-3.x
chore(deps): update dependency org.apache.maven.plugins:maven-resources-plugin to v3.5.0
2026-03-05 14:08:00 +01:00
renovate[bot]
23edea93db chore(deps): update dependency org.apache.maven.plugins:maven-resources-plugin to v3.5.0 2026-03-05 12:25:30 +00:00
Jérémie Panzer
a51712e363 Merge pull request #2070 from Athou/renovate/docker-setup-buildx-action-4.x
chore(deps): update docker/setup-buildx-action action to v4
2026-03-05 13:25:03 +01:00
renovate[bot]
4310e979e1 chore(deps): update docker/setup-buildx-action action to v4 2026-03-05 09:47:18 +00:00
renovate[bot]
f690b76d87 fix(deps): update quarkus.version to v3.32.2 2026-03-05 01:25:51 +00:00
Jérémie Panzer
ac29594b67 Merge pull request #2069 from Athou/renovate/docker-setup-qemu-action-4.x
chore(deps): update docker/setup-qemu-action action to v4
2026-03-04 15:29:50 +01:00
renovate[bot]
93f535bb87 chore(deps): update docker/setup-qemu-action action to v4 2026-03-04 13:38:20 +00:00
Jérémie Panzer
076eb3cf42 Merge pull request #2068 from Athou/renovate/docker-login-action-4.x
chore(deps): update docker/login-action action to v4
2026-03-04 14:35:47 +01:00
Athou
7b2e0fffbd reduce timeout for tests to speed up shutdown 2026-03-04 14:19:56 +01:00
renovate[bot]
8eaab0dbc3 chore(deps): update docker/login-action action to v4 2026-03-04 12:59:09 +00:00
Athou
eaa5bc896e stop the application between tests to make sure that there are no active transactions when we truncate the tables 2026-03-04 13:58:06 +01:00
renovate[bot]
42d1db5fc3 chore(deps): update dependency lint-staged to ^16.3.1 2026-03-04 12:09:08 +00:00
Athou
78c017ddaf wait for tasks to complete when shutting down 2026-03-04 12:49:06 +01:00
renovate[bot]
231551d743 chore(deps): update dependency lint-staged to ^16.3.0 (#2067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-03 21:56:21 +00:00
Jérémie Panzer
d0984eaba7 Merge pull request #2066 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.3.0
2026-03-03 06:05:51 +01:00
renovate[bot]
15854a72d1 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.3.0 2026-03-03 01:56:14 +00:00
renovate[bot]
7fd2bf0eda fix(deps): update dependency axios to ^1.13.6 2026-03-02 18:15:22 +00:00
renovate[bot]
6a10a2167e chore(deps): lock file maintenance 2026-03-02 01:25:14 +00:00
Jérémie Panzer
1ba99d255c Merge pull request #2063 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.11.0
2026-03-01 00:43:13 +01:00
renovate[bot]
ff1c2947b6 chore(deps): update dependency npm to v11.11.0 2026-02-28 23:17:20 +00:00
Jérémie Panzer
a690d2e0db Merge pull request #2062 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.3.0
2026-03-01 00:16:55 +01:00
renovate[bot]
a3df327396 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.3.0 2026-02-28 20:52:06 +00:00
Jérémie Panzer
ede0016d8e Merge pull request #2060 from Athou/renovate/major-github-artifact-actions
chore(deps): update github artifact actions (major)
2026-02-26 22:57:55 +01:00
renovate[bot]
c19b091795 chore(deps): update github artifact actions 2026-02-26 20:39:27 +00:00
renovate[bot]
9e62c8b9f3 fix(deps): update linguijs monorepo to ^5.9.2 2026-02-26 20:39:23 +00:00
renovate[bot]
9f30dc181c fix(deps): update dependency react-router-dom to ^7.13.1 2026-02-26 18:02:38 +00:00
Jérémie Panzer
37fe44f860 Merge pull request #2059 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.32.1 (minor)
2026-02-25 20:23:16 +01:00
renovate[bot]
68aaab8467 fix(deps): update quarkus.version to v3.32.1 2026-02-25 16:48:25 +00:00
renovate[bot]
b951ed1fcd chore(deps): update debian:13.3 docker digest to 3615a74 2026-02-24 21:53:17 +00:00
Jérémie Panzer
9bd9dc568a Merge pull request #2058 from Athou/renovate/node-24.x
chore(deps): update node.js to v24.14.0
2026-02-24 21:18:33 +01:00
renovate[bot]
29e4356fee chore(deps): update node.js to v24.14.0 2026-02-24 17:22:57 +00:00
renovate[bot]
0ed31eaa99 chore(deps): update dependency @biomejs/biome to v2.4.4 2026-02-23 21:56:45 +00:00
Jérémie Panzer
1e9869b217 Merge pull request #2057 from Athou/renovate/npm-11.10.x
chore(deps): update dependency npm to v11.10.1
2026-02-23 07:21:35 +01:00
renovate[bot]
78cfc2c827 chore(deps): update dependency npm to v11.10.1 2026-02-23 05:33:44 +00:00
renovate[bot]
a6e5a0d125 chore(deps): lock file maintenance 2026-02-23 00:55:55 +00:00
renovate[bot]
ea13aecd27 chore(deps): update dependency @biomejs/biome to v2.4.3 2026-02-22 21:47:30 +00:00
Athou
d838e8f28f fix occasional flicker 2026-02-22 14:36:25 +01:00
Athou
c9a7b9e17c ensure the indicator is not shown above the app header 2026-02-22 11:47:13 +01:00
Athou
8fe2d0bc0e fix typo 2026-02-21 23:58:49 +01:00
Athou
71e2f1e1e6 kill biome on build to prevent unlink errors on Windows 2026-02-21 23:55:08 +01:00
Athou
1ce9d1b9b2 prevent title line wrapping 2026-02-21 23:39:38 +01:00
Athou
b3d6ae467f reduce code duplication 2026-02-21 23:24:03 +01:00
Athou
da8d720dc4 don't show a pointer on hover 2026-02-21 22:58:49 +01:00
Athou
824c38f8ce show unread count on mobile only 2026-02-21 22:52:32 +01:00
Athou
b0579a70d8 Merge branch 'master' of https://github.com/lpoirothattermann/commafeed into lpoirothattermann-master 2026-02-21 22:28:03 +01:00
Athou
f195eb6d0d release 7.0.0 2026-02-21 22:26:40 +01:00
Louis POIROT--HATTERMANN
f9fe2d0976 feat: add unread count badge next to title 2026-02-21 18:54:23 +01:00
renovate[bot]
2aeadc8f67 chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.5 2026-02-21 17:05:08 +00:00
renovate[bot]
ee3eaa1166 chore(deps): update dependency org.apache.maven.plugins:maven-failsafe-plugin to v3.5.5 2026-02-21 12:54:17 +00:00
Athou
5dce143756 rename thunk for consistency 2026-02-20 17:24:31 +01:00
Athou
33a0568895 delay task so that it doesn't run at the same time at OrphanedContentsCleanupTask 2026-02-20 15:55:09 +01:00
Athou
721d728906 prevent SSRF by blocking redirects from public websites to local addresses 2026-02-20 15:07:11 +01:00
Athou
c55cbaf373 add missing translations 2026-02-20 15:05:35 +01:00
Athou
3fd5cfdecd add a setting to mark entries of a feed as read after a number of days (#2041) 2026-02-20 13:24:40 +01:00
Jérémie Panzer
f87d3359c2 Merge pull request #2054 from canoine/patch-10
Update fr/messages.po
2026-02-20 10:12:49 +01:00
canoine
37f27849bd Update fr/messages.po
Not sure for the "Topic" translation...
2026-02-20 09:48:29 +01:00
Athou
6fe326f052 cleanup 2026-02-19 23:21:09 +01:00
Athou
de7e4e9c69 add a button for testing push notification settings 2026-02-19 22:50:34 +01:00
Athou
6861fe303b add a small description for push notifications 2026-02-19 18:01:52 +01:00
Athou
ba3214bf10 remove the possibility to receive notifications when subscribing because that sends a lot of notifications, one for each entry in the feed 2026-02-19 16:08:54 +01:00
Athou
bcce77495a bump dependencies 2026-02-19 14:49:18 +01:00
Athou
a165d2b27e Merge remote-tracking branch 'origin/renovate/patch-quarkus.version' 2026-02-18 21:02:48 +01:00
renovate[bot]
e63714cab0 chore(deps): update dependency @biomejs/biome to ^2.4.0 2026-02-18 21:02:32 +01:00
renovate[bot]
390c21dd91 fix(deps): update quarkus.version to v3.31.4 2026-02-18 19:55:53 +00:00
Jérémie Panzer
9defea9c8e Merge pull request #2052 from Athou/renovate/biomejs-biome-2.x
chore(deps): update dependency @biomejs/biome to v2.4.0
2026-02-18 20:54:35 +01:00
Athou
5906173de7 Merge branch 'lpoirothattermann-master' 2026-02-18 20:53:50 +01:00
Athou
a81de48cfb change the default value of blockLocalAddresses 2026-02-18 20:53:23 +01:00
Athou
2be61e8b1c refactor 2026-02-18 20:37:11 +01:00
renovate[bot]
4d7fc9f354 chore(deps): update dependency @biomejs/biome to v2.4.0 2026-02-18 17:35:31 +00:00
renovate[bot]
e11fd7b3a1 chore(deps): update dependency jsdom to ^28.1.0 2026-02-18 04:37:15 +00:00
renovate[bot]
cc0348b113 chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.2_10-jre docker digest to b02e4cd 2026-02-18 01:48:45 +00:00
Athou
77bb948bf2 remove unnecessary divider 2026-02-17 20:34:24 +01:00
Athou
8e2adcbce4 fix wrong merge conflict resolve 2026-02-17 20:34:06 +01:00
Athou
bb141203a8 fix missing translations 2026-02-17 20:33:59 +01:00
Jérémie Panzer
579c22df65 Merge pull request #2049 from canoine/patch-9
Update fr/messages.po
2026-02-16 21:34:53 +01:00
canoine
694e8291de Update fr/messages.po
New filtering entries translated.
2026-02-16 18:26:03 +01:00
renovate[bot]
367259fd31 chore(deps): lock file maintenance 2026-02-16 02:10:12 +00:00
Louis POIROT--HATTERMANN
e54151d2eb feat: send notification for new entries with Gotify, ntfy or Pushover, configurable per feed. 2026-02-15 18:45:28 +01:00
Jérémie Panzer
ca2c687f26 Merge pull request #2044 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.10.0
2026-02-15 16:20:37 +01:00
Athou
d444a7080d migrate filtering expressions to safer CEL and add a query builder 2026-02-15 16:13:10 +01:00
renovate[bot]
08bfcded7f chore(deps): update dependency @biomejs/biome to v2.3.15 2026-02-15 12:35:42 +00:00
renovate[bot]
1c9e4f978b chore(deps): update dependency vite-tsconfig-paths to ^6.1.1 2026-02-15 01:06:08 +00:00
renovate[bot]
a5f1fba6ee chore(deps): update dependency npm to v11.10.0 2026-02-14 17:37:17 +00:00
renovate[bot]
88f1cf1913 chore(deps): update dependency @types/react to ^19.2.14 2026-02-14 13:35:26 +00:00
renovate[bot]
1fb69d2861 fix(deps): update linguijs monorepo to ^5.9.1 2026-02-14 10:09:00 +00:00
renovate[bot]
3aeff66522 chore(deps): update dependency @vitejs/plugin-react to ^5.1.4 2026-02-13 09:48:06 +00:00
renovate[bot]
114cbe0ec5 chore(deps): update docker/build-push-action digest to 10e90e3 2026-02-12 17:55:15 +00:00
renovate[bot]
bfe94222b7 fix(deps): update quarkus.version to v3.31.3 2026-02-11 21:00:14 +00:00
renovate[bot]
30061abc54 chore(deps): update docker/build-push-action digest to 601a80b 2026-02-11 18:48:17 +00:00
renovate[bot]
126e07489b fix(deps): update dependency axios to ^1.13.5 2026-02-11 13:48:03 +00:00
renovate[bot]
bd2577c089 chore(deps): update docker/build-push-action digest to ee4ca42 2026-02-11 13:15:00 +00:00
renovate[bot]
5039c61e98 chore(deps): update node.js to v24.13.1 2026-02-10 20:28:00 +00:00
renovate[bot]
5f34ab3d7e chore(deps): update dependency vite-tsconfig-paths to ^6.1.0 2026-02-10 17:49:55 +00:00
Athou
fee47427cf verify i18n extraction has been run before committing 2026-02-10 11:32:24 +01:00
renovate[bot]
15c8289a01 chore(deps): update ibm-semeru-runtimes docker tag to open-jdk-25.0.2_10-jre 2026-02-10 00:25:53 +00:00
Athou
141a863079 release 6.2.0 2026-02-09 19:32:22 +01:00
Athou
6fa8d4be34 keep starred entries (#1581) 2026-02-09 06:59:41 +01:00
renovate[bot]
984e8a44d5 chore(deps): lock file maintenance 2026-02-09 01:33:44 +00:00
renovate[bot]
bdb296bce2 chore(deps): update dependency @types/react to ^19.2.13 2026-02-08 14:02:01 +00:00
Jérémie Panzer
955a9084c3 Merge pull request #2042 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.9.0
2026-02-08 05:23:05 +01:00
renovate[bot]
70f486b0eb chore(deps): update dependency npm to v11.9.0 2026-02-07 21:45:56 +00:00
renovate[bot]
0bc383c6a8 chore(deps): update dependency @types/react to ^19.2.11 2026-02-07 13:12:20 +00:00
renovate[bot]
0bb2b36585 chore(deps): update dependency @biomejs/biome to v2.3.14 2026-02-06 16:48:35 +00:00
Jérémie Panzer
9e3a24753a Merge pull request #2040 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.2.0
2026-02-06 02:20:48 +01:00
renovate[bot]
f2c400799e chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.2.0 2026-02-05 21:38:36 +00:00
renovate[bot]
25a8c8a7e3 chore(deps): update dependency @vitejs/plugin-react to ^5.1.3 2026-02-05 10:32:18 +00:00
Jérémie Panzer
8f95d89fc6 Merge pull request #2039 from Athou/renovate/jsdom-28.x
chore(deps): update dependency jsdom to v28
2026-02-05 11:30:07 +01:00
renovate[bot]
39b0cdb9d5 chore(deps): update dependency jsdom to v28 2026-02-05 09:42:39 +00:00
renovate[bot]
42e06b848e fix(deps): update quarkus.version to v3.31.2 2026-02-04 17:56:35 +00:00
renovate[bot]
7c3a13b1c4 fix(deps): update mantine monorepo to ^8.3.14 2026-02-04 12:45:49 +00:00
Jérémie Panzer
151248fce2 Merge pull request #2038 from xmgz/master
Update gl messages.po
2026-02-04 07:13:01 +01:00
ghose
6e8d6fe063 Update gl messages.po
up to date gl translation
2026-02-04 04:09:30 +00:00
renovate[bot]
ca2da5e631 chore(deps): update actions/checkout digest to de0fac2 2026-02-03 16:36:24 +00:00
renovate[bot]
6cd3b70201 chore(deps): update debian:13.3 docker digest to 2c91e48 2026-02-03 14:08:51 +00:00
renovate[bot]
2dcfba75b5 chore(deps): update jaywcjlove/markdown-to-html-cli action to v5.0.4 2026-02-03 09:32:58 +00:00
Jérémie Panzer
44a51b03d3 Merge pull request #2037 from Athou/renovate/org.apache.maven.plugins-maven-compiler-plugin-3.x
chore(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.15.0
2026-02-02 06:14:39 +01:00
renovate[bot]
6ee9e9831e chore(deps): lock file maintenance 2026-02-02 01:56:05 +00:00
renovate[bot]
68c717cee8 chore(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.15.0 2026-02-01 21:36:26 +00:00
Jérémie Panzer
b15fc02c34 Merge pull request #2035 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.1.0
2026-02-01 07:38:58 +01:00
renovate[bot]
033ebfb497 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13.1.0 2026-01-31 20:23:47 +00:00
renovate[bot]
4cceaa7650 fix(deps): update dependency axios to ^1.13.4 2026-01-30 21:51:52 +00:00
renovate[bot]
5df47f1396 chore(deps): update dependency @types/react to ^19.2.10 2026-01-30 12:33:18 +00:00
renovate[bot]
903f35c01b fix(deps): update react monorepo to ^19.2.4 2026-01-29 20:53:17 +00:00
renovate[bot]
6a34f94277 chore(deps): update dependency @biomejs/biome to v2.3.13 2026-01-29 17:09:33 +00:00
Athou
dcc143eb7d upgrade to quarkus 3.31 2026-01-28 18:04:16 +01:00
renovate[bot]
fb47bf27e8 fix(deps): update dependency axios to ^1.13.3 2026-01-28 16:39:42 +00:00
renovate[bot]
dcf969ff2e chore(deps): update docker/login-action digest to c94ce9f 2026-01-28 13:35:35 +00:00
renovate[bot]
32c1318355 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.2.1 2026-01-27 22:36:42 +00:00
Jérémie Panzer
8ca6b89da4 Merge pull request #2033 from Athou/renovate/patch-react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.13.0
2026-01-27 07:21:39 +01:00
renovate[bot]
b46c3a15f3 fix(deps): update dependency react-router-dom to ^7.13.0 2026-01-27 04:49:15 +00:00
renovate[bot]
cbc5e014f7 chore(deps): update dependency vite-tsconfig-paths to ^6.0.5 (#2032)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 04:48:45 +00:00
renovate[bot]
8925b248e4 fix(deps): update linguijs monorepo to ^5.9.0 2026-01-26 22:16:14 +00:00
renovate[bot]
cc6aa2bbc5 chore(deps): update dependency @biomejs/biome to v2.3.12 2026-01-26 17:45:44 +00:00
Athou
1989aaf8b4 release 6.1.1 2026-01-26 15:47:39 +01:00
Athou
c90c91b748 fix old starred entries not loading if they were marked as read (#2031) 2026-01-26 15:45:50 +01:00
Athou
bca23db213 remvoe unused jacoco plugin 2026-01-26 13:39:50 +01:00
renovate[bot]
c9a92d2043 chore(deps): lock file maintenance 2026-01-26 05:00:06 +00:00
renovate[bot]
c48e06fa46 fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.38 2026-01-26 02:10:23 +00:00
renovate[bot]
5529eced91 chore(deps): update dependency vitest to ^4.0.18 2026-01-25 20:53:59 +00:00
Athou
2a0d935471 release 6.1.0 2026-01-25 10:58:32 +01:00
Athou
6c68fda572 make "disable pull to refresh" false by default (#2030) 2026-01-25 10:49:11 +01:00
Jérémie Panzer
861c1fc3dc Merge pull request #2029 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.8.0
2026-01-25 05:04:32 +01:00
renovate[bot]
5971bb4255 chore(deps): update dependency npm to v11.8.0 2026-01-25 01:59:43 +00:00
renovate[bot]
76ba360631 chore(deps): update dependency @types/react to ^19.2.9 2026-01-23 19:59:17 +00:00
renovate[bot]
89d3ff3c90 fix(deps): update quarkus.version to v3.30.8 2026-01-23 12:23:43 +00:00
renovate[bot]
34024a913d fix(deps): update mantine monorepo to ^8.3.13 2026-01-23 10:50:58 +00:00
Athou
a858380121 cleanup 2026-01-23 08:34:10 +01:00
Jérémie Panzer
e1dc870005 Merge pull request #2028 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.2.0
2026-01-23 02:04:25 +01:00
renovate[bot]
2fc1cac869 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.2.0 2026-01-23 00:39:57 +00:00
renovate[bot]
f627ff4958 chore(deps): update dependency @testing-library/react to ^16.3.2 2026-01-22 13:07:35 +00:00
renovate[bot]
5ff8e51948 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.2 2026-01-21 22:06:21 +00:00
renovate[bot]
538f25c6bb fix(deps): update quarkus.version to v3.30.7 2026-01-21 15:56:51 +00:00
Jérémie Panzer
65100ba279 Merge pull request #2026 from WangLei1993/master
add Chinese translation for new entry
2026-01-20 20:55:40 +01:00
WangLei1993
79fd470bbf add Chinese translation for new entry 2026-01-21 01:32:16 +08:00
Jérémie Panzer
866d74665b Merge pull request #2025 from canoine/patch-8
Update fr/messages.po
2026-01-20 14:13:04 +01:00
canoine
29da74f038 Update fr/messages.po
New etries translated
2026-01-20 13:56:59 +01:00
Athou
3c8ac35a46 make password match rule reusable 2026-01-20 08:54:48 +01:00
Athou
afe957ba59 create a dedicated password reset page (#2023) 2026-01-19 20:55:26 +01:00
renovate[bot]
7e50e99351 fix(deps): update linguijs monorepo to ^5.8.0 2026-01-19 10:48:25 +00:00
renovate[bot]
62ce462cc8 chore(deps): lock file maintenance 2026-01-19 03:48:36 +00:00
Jérémie Panzer
108cb06f43 Merge pull request #2024 from Athou/renovate/org.codehaus.mojo-properties-maven-plugin-1.x
chore(deps): update dependency org.codehaus.mojo:properties-maven-plugin to v1.3.0
2026-01-19 04:47:18 +01:00
renovate[bot]
95a38675bc chore(deps): update dependency org.codehaus.mojo:properties-maven-plugin to v1.3.0 2026-01-19 00:35:24 +00:00
Athou
714681bc50 don't set "en" as the default language, use the preferred language of the browser (#2018) 2026-01-17 20:09:23 +01:00
Athou
0f8d91d997 close profile menu on scroll (#2019) 2026-01-16 15:53:40 +01:00
Jérémie Panzer
562297a82f Merge pull request #2022 from WangLei1993/master
add Chinese translation for new entry
2026-01-16 15:40:53 +01:00
WangLei1993
b108bf06e5 add Chinese translation for new entry 2026-01-16 22:21:00 +08:00
renovate[bot]
3c819066fd chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.1_8-jre docker digest to e12d5f2 2026-01-16 02:15:00 +00:00
Athou
5f30cb7e2e reuse validation rule 2026-01-16 01:08:25 +01:00
Athou
5a95b95801 validate password in the frontend too (#2017) 2026-01-15 21:36:00 +01:00
renovate[bot]
eb573fdc8b chore(deps): update dependency vitest to ^4.0.17 2026-01-15 14:58:31 +00:00
Jérémie Panzer
238ea54e98 Merge pull request #2020 from canoine/patch-7
Update fr/messages.po
2026-01-15 08:56:05 +01:00
canoine
e4dfc47fb8 Update fr/messages.po
Translation of the new entries.
2026-01-15 07:28:50 +01:00
Jérémie Panzer
a1491c779a Merge pull request #2015 from WangLei1993/master
add Chinese translation for new entry
2026-01-14 20:08:02 +01:00
WangLei1993
dabd7552be add Chinese translation for new entry 2026-01-15 01:06:19 +08:00
Jérémie Panzer
0a4c56af1f Merge pull request #2014 from Athou/renovate/node-24.x
chore(deps): update node.js to v24.13.0
2026-01-13 19:44:55 +01:00
renovate[bot]
c3dae5b92c chore(deps): update node.js to v24.13.0 2026-01-13 14:11:32 +00:00
renovate[bot]
2c3105b526 chore(deps): update debian:13.3 docker digest to 5cf544f 2026-01-13 14:11:28 +00:00
renovate[bot]
20f5081ac8 chore(deps): update dependency @types/react to ^19.2.8 2026-01-13 10:49:24 +00:00
Jérémie Panzer
3091eb9d14 Merge pull request #2013 from Athou/renovate/debian-13.x
chore(deps): update debian docker tag to v13.3
2026-01-13 06:52:42 +01:00
renovate[bot]
5bdda42239 chore(deps): update debian docker tag to v13.3 2026-01-13 04:51:00 +00:00
renovate[bot]
7eda8b7662 chore(deps): update dependency vite-tsconfig-paths to ^6.0.4 2026-01-13 02:08:08 +00:00
renovate[bot]
fc94ce5d2b fix(deps): update mantine monorepo to ^8.3.12 2026-01-12 14:23:32 +00:00
renovate[bot]
e5d7161ab7 chore(deps): lock file maintenance 2026-01-12 01:10:34 +00:00
Jérémie Panzer
f725cb7fa4 Merge pull request #2012 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.12.0
2026-01-10 21:35:47 +01:00
renovate[bot]
830e689fe8 fix(deps): update dependency react-router-dom to ^7.12.0 2026-01-10 20:02:47 +00:00
Athou
2832e8c638 release 6.0.0 2026-01-10 21:01:59 +01:00
Athou
d711cbab49 requiring an email address for users is now configurable (#1914) 2026-01-10 18:11:35 +01:00
Athou
2e8fd737af remove complex password requirements (#1916) 2026-01-10 17:53:48 +01:00
Athou
a080ede15b add a setup landing page instead of creating a default admin account 2026-01-10 17:30:22 +01:00
renovate[bot]
ab3d41508f chore(deps): update dependency vite to ^7.3.1 2026-01-10 08:41:14 +00:00
Jérémie Panzer
1ab4a5e925 Merge pull request #2010 from Athou/renovate/com.ibm.icu-icu4j-78.x
fix(deps): update dependency com.ibm.icu:icu4j to v78.2
2026-01-09 05:03:28 +01:00
renovate[bot]
543ce08be6 fix(deps): update dependency com.ibm.icu:icu4j to v78.2 2026-01-08 21:59:38 +00:00
renovate[bot]
21829056ba fix(deps): update mantine monorepo to ^8.3.11 2026-01-08 05:55:36 +00:00
renovate[bot]
1af59c87d0 fix(deps): update quarkus.version to v3.30.6 2026-01-07 18:36:59 +00:00
Athou
799e6c082c cleanup 2026-01-06 22:53:37 +01:00
renovate[bot]
09635cf0fd chore(deps): update dependency @biomejs/biome to v2.3.11 2026-01-06 18:14:17 +00:00
renovate[bot]
1dfbd30471 chore(deps): update graalvm/setup-graalvm digest to 54b4f5a 2026-01-05 20:54:23 +00:00
renovate[bot]
48e0a77d1f chore(deps): lock file maintenance 2026-01-05 08:03:28 +00:00
Jérémie Panzer
7ae8594c00 Merge pull request #2009 from Athou/renovate/com.puppycrawl.tools-checkstyle-13.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13
2026-01-05 09:02:06 +01:00
Athou
19663b0f38 Java 25+ is now required 2026-01-05 07:25:26 +01:00
renovate[bot]
4bcb9adb83 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v13 2026-01-05 01:41:55 +00:00
Athou
f7505298d7 postgresql 18+ changed the docker mount point (#2008) 2026-01-03 10:26:59 +01:00
Athou
df722ffa8b fix typo (#2007) 2026-01-02 22:00:36 +01:00
renovate[bot]
2a852fe08d fix(deps): update dependency io.github.hakky54:ayza-for-apache5 to v10.0.3 2026-01-02 09:36:08 +00:00
Jérémie Panzer
540f796200 Merge pull request #2006 from Athou/renovate/org.jsoup-jsoup-1.x
fix(deps): update dependency org.jsoup:jsoup to v1.22.1
2026-01-01 08:42:47 +01:00
renovate[bot]
b726ac84fe fix(deps): update dependency org.jsoup:jsoup to v1.22.1 2026-01-01 07:02:22 +00:00
renovate[bot]
61ac2bb6a3 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.3.1 2025-12-31 16:00:34 +00:00
Athou
5d702b3992 release 5.12.1 2025-12-31 08:51:22 +01:00
Athou
3bf4a004d4 ReadKit sends the md5 hash of the password in uppercase (#1602) 2025-12-30 20:22:41 +01:00
renovate[bot]
7ac5876d2d chore(deps): update debian:13.2 docker digest to c71b05e 2025-12-30 08:26:00 +00:00
renovate[bot]
0f18c612af chore(deps): update dependency jsdom to ^27.4.0 2025-12-29 14:33:16 +00:00
renovate[bot]
03f4a3c478 chore(deps): lock file maintenance 2025-12-29 01:32:07 +00:00
Jérémie Panzer
7069343cf4 Merge pull request #2005 from xmgz/master
Update po.gl
2025-12-27 17:13:41 +01:00
ghose
7fae79f2c5 Update po.gl
new strings and minor fixes
2025-12-27 15:48:49 +00:00
Jérémie Panzer
66b714ed39 Merge pull request #2004 from aniol/patch-4
Update messages.po
2025-12-25 09:35:36 +01:00
Aniol
d371ebe354 Update messages.po 2025-12-25 09:14:10 +01:00
renovate[bot]
9093d0d5e5 fix(deps): update quarkus.version to v3.30.5 2025-12-24 14:26:55 +00:00
Athou
1139df0637 use existing constants 2025-12-24 07:02:01 +01:00
Athou
c1810de316 use a brotli decoder that uses java and not native code 2025-12-23 17:01:19 +01:00
Athou
863ced57f8 specify explicitly what encoders we support, don't rely on httpclient5 autodetection 2025-12-23 16:21:10 +01:00
Athou
2147aeb4ae some client seems to send an empty since_id param 2025-12-23 11:16:07 +01:00
Athou
a810b4fc9a add a test for brotli decompression 2025-12-23 08:53:18 +01:00
Athou
abcbb61b4c make quarkus add brotli4j to the native image 2025-12-23 08:07:46 +01:00
Athou
83332223ef httpclient now uses brotli4j 2025-12-23 08:04:53 +01:00
renovate[bot]
fd8d981ea0 chore(deps): lock file maintenance 2025-12-22 00:50:14 +00:00
renovate[bot]
03e3ade09d chore(deps): update dependency org.codehaus.mojo:exec-maven-plugin to v3.6.3 2025-12-21 22:07:09 +00:00
renovate[bot]
68305f2e00 chore(deps): update dependency vite-tsconfig-paths to ^6.0.3 2025-12-21 14:30:18 +00:00
Jérémie Panzer
b7d6b06242 Merge pull request #2003 from canoine/patch-6
Update fr/messages.po
2025-12-21 09:08:02 +01:00
canoine
9098050c5a Update fr/messages.po
New entries translated
2025-12-21 07:24:01 +01:00
Jérémie Panzer
0147ec0a6a Merge pull request #2000 from Athou/renovate/org.apache.httpcomponents.client5-httpclient5-5.x
fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6
2025-12-20 22:26:40 +01:00
Jérémie Panzer
c6b71605d0 Merge pull request #2002 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.11.0
2025-12-20 22:05:01 +01:00
Jérémie Panzer
64009c82e9 Merge pull request #2001 from WangLei1993/master
add Chinese translation for new entry
2025-12-20 22:03:51 +01:00
renovate[bot]
5b24cb370f fix(deps): update dependency react-router-dom to ^7.11.0 2025-12-20 18:08:18 +00:00
renovate[bot]
2d261cd97b chore(deps): update dependency @biomejs/biome to ^2.3.10 2025-12-20 18:08:10 +00:00
WangLei1993
9455d91b3d add Chinese translation for new entry 2025-12-20 21:32:08 +08:00
renovate[bot]
cb645c56b4 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6 2025-12-20 12:47:34 +00:00
renovate[bot]
1a6b91dee5 chore(deps): update dependency vite-tsconfig-paths to ^6.0.2 2025-12-20 07:40:42 +00:00
Jérémie Panzer
8d2edad488 Merge pull request #1999 from Athou/renovate/com.github.eirslett-frontend-maven-plugin-2.x
chore(deps): update dependency com.github.eirslett:frontend-maven-plugin to v2
2025-12-20 08:39:50 +01:00
renovate[bot]
522e26b1fa chore(deps): update dependency com.github.eirslett:frontend-maven-plugin to v2 2025-12-19 22:06:14 +00:00
renovate[bot]
259b22c255 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.5.2 2025-12-19 22:06:11 +00:00
renovate[bot]
b61cf82b46 chore(deps): update dependency vitest to ^4.0.16 2025-12-19 15:47:32 +00:00
renovate[bot]
4f06f7424c chore(deps): update docker/setup-buildx-action digest to 8d2750c 2025-12-19 14:33:40 +00:00
Athou
d2d65437f8 add a description to indicate that scrolling issues can occur with this setting (closes #1998) 2025-12-19 07:47:22 +01:00
renovate[bot]
3ae0f7558e chore(deps): update dependency @biomejs/biome to v2.3.9 2025-12-18 18:38:22 +00:00
renovate[bot]
604801686d chore(deps): update dependency @testing-library/react to ^16.3.1 2025-12-18 14:01:55 +00:00
Jérémie Panzer
554d4190ff Merge pull request #1997 from Athou/renovate/vite-7.x
chore(deps): update dependency vite to ^7.3.0
2025-12-18 11:25:17 +01:00
renovate[bot]
1d71390349 chore(deps): update dependency vite to ^7.3.0 2025-12-18 10:03:19 +00:00
Jérémie Panzer
fe24c6d682 Merge pull request #1996 from Athou/renovate/vite-tsconfig-paths-6.x
chore(deps): update dependency vite-tsconfig-paths to v6
2025-12-18 06:56:19 +01:00
renovate[bot]
4359d91a23 chore(deps): update dependency vite-tsconfig-paths to v6 2025-12-18 02:55:58 +00:00
renovate[bot]
ae42eac7fd fix(deps): update dependency @reduxjs/toolkit to ^2.11.2 2025-12-18 02:55:48 +00:00
renovate[bot]
37a8888a32 fix(deps): update quarkus.version to v3.30.4 2025-12-17 17:47:52 +00:00
renovate[bot]
2d7e065d39 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.1 2025-12-17 14:02:45 +00:00
renovate[bot]
35cf640691 chore(deps): update dependency maven to v3.9.12 2025-12-17 00:14:05 +00:00
renovate[bot]
b308fbe0ad fix(deps): update linguijs monorepo to ^5.7.0 2025-12-15 18:05:24 +00:00
renovate[bot]
d5e2b51b6d chore(deps): lock file maintenance 2025-12-15 00:45:30 +00:00
renovate[bot]
9b7844542d fix(deps): update react monorepo to ^19.2.3 2025-12-15 00:10:13 +00:00
Jérémie Panzer
9f6fac0d58 Merge pull request #1994 from Athou/renovate/com.puppycrawl.tools-checkstyle-12.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.3.0
2025-12-13 23:15:06 +01:00
renovate[bot]
f6011dc3f2 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.3.0 2025-12-13 18:11:46 +00:00
Jérémie Panzer
fdb7fa21f6 Merge pull request #1993 from Athou/renovate/major-github-artifact-actions
chore(deps): update github artifact actions (major)
2025-12-13 00:00:15 +01:00
Jérémie Panzer
29bbe41e51 Merge pull request #1992 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.7.0
2025-12-12 23:47:40 +01:00
renovate[bot]
004ada8204 chore(deps): update github artifact actions 2025-12-12 22:26:38 +00:00
renovate[bot]
9a2894944c chore(deps): update dependency npm to v11.7.0 2025-12-12 22:26:33 +00:00
Athou
dfcff5029b add a section in the readme about the public instance 2025-12-12 14:23:24 +01:00
renovate[bot]
853fc600dd fix(deps): update mantine monorepo to ^8.3.10 2025-12-12 10:13:22 +00:00
Jérémie Panzer
a546b21755 Merge pull request #1991 from Athou/renovate/vite-plugin-checker-0.x
chore(deps): update dependency vite-plugin-checker to ^0.12.0
2025-12-11 22:12:22 +01:00
renovate[bot]
e40c4e3779 chore(deps): update dependency vite-plugin-checker to ^0.12.0 2025-12-11 18:31:01 +00:00
Jérémie Panzer
60cbf6cff3 Merge pull request #1990 from Athou/renovate/jsdom-27.x
chore(deps): update dependency jsdom to ^27.3.0
2025-12-11 19:29:50 +01:00
renovate[bot]
6d3f4b98d7 chore(deps): update dependency jsdom to ^27.3.0 2025-12-11 13:54:40 +00:00
renovate[bot]
4812a2b401 chore(deps): update dependency @vitejs/plugin-react to ^5.1.2 2025-12-11 13:54:34 +00:00
renovate[bot]
5f99376d58 fix(deps): update dependency @reduxjs/toolkit to ^2.11.1 2025-12-11 06:44:06 +00:00
renovate[bot]
3e76c142c3 chore(deps): update dependency vite to ^7.2.7 2025-12-11 03:42:05 +00:00
renovate[bot]
28f23a73af fix(deps): update quarkus.version to v3.30.3 2025-12-10 21:09:55 +00:00
Jérémie Panzer
68b94fed8e Merge pull request #1988 from Athou/renovate/node-24.x
chore(deps): update node.js to v24.12.0
2025-12-10 22:09:07 +01:00
renovate[bot]
657b02727c chore(deps): update node.js to v24.12.0 2025-12-10 19:34:28 +00:00
Jérémie Panzer
7d7a10073c Merge pull request #1986 from WangLei1993/master
add Chinese translation for new entry
2025-12-10 14:00:35 +01:00
WangLei1993
9d5f0c791c add Chinese translation for new entry 2025-12-10 18:03:29 +08:00
renovate[bot]
212493e4ff chore(deps): update debian:13.2 docker digest to 0d01188 2025-12-09 06:31:22 +00:00
renovate[bot]
9fc8e9c6d7 fix(deps): update dependency tss-react to ^4.9.20 2025-12-08 21:07:55 +00:00
Jérémie Panzer
f69ddb71a0 Merge pull request #1985 from Athou/renovate/io.quarkiverse.playwright-quarkus-playwright-2.x
chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.0
2025-12-08 22:07:18 +01:00
renovate[bot]
290beec0c5 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.3.0 2025-12-08 19:23:38 +00:00
renovate[bot]
dcb2f6f8cd chore(deps): lock file maintenance (#1984)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 12:57:56 +00:00
renovate[bot]
d200845906 fix(deps): update dependency react-router-dom to ^7.10.1 2025-12-07 17:56:45 +00:00
renovate[bot]
a52e02695d fix(deps): update react monorepo to ^19.2.1 2025-12-06 17:05:09 +00:00
renovate[bot]
febd7c3063 fix(deps): update dependency react-router-dom to ^7.10.0 2025-12-05 20:52:10 +00:00
renovate[bot]
d5ae0b99f0 chore(deps): update dependency vitest to ^4.0.15 2025-12-05 16:42:10 +00:00
Athou
8b10c608fc add data-feed-id to articles (#1983) 2025-12-05 08:07:02 +01:00
renovate[bot]
0d49b91cc6 chore(deps): update dependency vite to ^7.2.6 2025-12-04 06:10:37 +00:00
renovate[bot]
2af4b83e09 fix(deps): update quarkus.version to v3.30.2 2025-12-03 18:20:55 +00:00
Jérémie Panzer
cde3ca3d9e Merge pull request #1982 from Athou/renovate/lock-file-maintenance
chore(deps): lock file maintenance
2025-12-03 19:18:23 +01:00
renovate[bot]
429798190a chore(deps): lock file maintenance 2025-12-03 17:52:25 +00:00
renovate[bot]
583db4c70f chore(deps): update dependency yaml to ^2.8.2 2025-12-03 09:41:05 +00:00
renovate[bot]
3ec35eec91 chore(deps): update actions/checkout digest to 8e8c483 2025-12-02 18:57:36 +00:00
Jérémie Panzer
65bfbfc7fd Merge pull request #1980 from Athou/renovate/graalvm-setup-graalvm-digest
chore(deps): update graalvm/setup-graalvm digest to 790e289
2025-12-02 15:27:11 +01:00
renovate[bot]
1b93701df2 chore(deps): update graalvm/setup-graalvm digest to 790e289 2025-12-02 13:45:00 +00:00
Athou
d6debc55f5 remove unused sonar config 2025-12-02 14:44:18 +01:00
renovate[bot]
87fd9ae686 chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.1_8-jre docker digest to d88c854 2025-12-02 02:57:02 +00:00
renovate[bot]
3225a3b337 fix(deps): update linguijs monorepo to ^5.6.1 2025-12-01 13:02:27 +00:00
Jérémie Panzer
4eb98a6c31 Merge pull request #1979 from Athou/renovate/com.puppycrawl.tools-checkstyle-12.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.2.0
2025-12-01 07:50:28 +01:00
renovate[bot]
38a6e2fc98 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.2.0 2025-11-30 16:34:53 +00:00
renovate[bot]
c171cf1487 chore(deps): update dependency @biomejs/biome to ^2.3.8 2025-11-30 13:00:00 +00:00
Jérémie Panzer
b64a0f1d55 Merge pull request #1978 from mortenfyhn/svg-favicon
Add SVG favicon option
2025-11-29 16:19:17 +01:00
Morten Fyhn Amundsen
3ab124b2db Add SVG favicon option
The existing 16x16 pixel favicon looks a bit pixelated. This adds an SVG favicon option based on the existing SVG logo file but cropped tighter similar to the existing favicon. That makes it nice and crisp.
2025-11-29 15:08:54 +01:00
Jérémie Panzer
d710f3995f Merge pull request #1977 from Athou/renovate/org.apache.maven.plugins-maven-resources-plugin-3.x
chore(deps): update dependency org.apache.maven.plugins:maven-resources-plugin to v3.4.0
2025-11-29 06:07:29 +01:00
Jérémie Panzer
f53c209082 Merge pull request #1976 from Athou/renovate/org.apache.maven.plugins-maven-assembly-plugin-3.x
chore(deps): update dependency org.apache.maven.plugins:maven-assembly-plugin to v3.8.0
2025-11-29 06:07:07 +01:00
renovate[bot]
9997be3462 chore(deps): update dependency org.apache.maven.plugins:maven-resources-plugin to v3.4.0 2025-11-29 01:14:50 +00:00
renovate[bot]
c3b06e375c chore(deps): update dependency org.apache.maven.plugins:maven-assembly-plugin to v3.8.0 2025-11-29 01:14:46 +00:00
renovate[bot]
1476c5a932 chore(deps): update dependency vitest to ^4.0.14 2025-11-28 18:05:45 +00:00
renovate[bot]
8e1c9b9703 chore(deps): update dependency @biomejs/biome to v2.3.8 2025-11-27 13:47:14 +00:00
renovate[bot]
27c89f7cc7 chore(deps): update dependency @types/react to ^19.2.7 2025-11-27 10:58:30 +00:00
Jérémie Panzer
9210198766 Merge pull request #1973 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.11.0
2025-11-27 05:46:41 +01:00
renovate[bot]
ce6fa0bf8f fix(deps): update dependency @reduxjs/toolkit to ^2.11.0 2025-11-27 04:07:51 +00:00
Jérémie Panzer
cd6629b424 Merge pull request #1972 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.30.1 (minor)
2025-11-26 17:38:55 +01:00
renovate[bot]
f25a62ad71 fix(deps): update quarkus.version to v3.30.1 2025-11-26 16:02:56 +00:00
renovate[bot]
cec3c872b6 chore(deps): update graalvm/setup-graalvm digest to dec5790 2025-11-26 12:38:46 +00:00
Athou
e666e71281 remove unused rollup-plugin-visualizer 2025-11-26 08:53:10 +01:00
renovate[bot]
3d0c303d41 chore(deps): update dependency npm to v11.6.4 2025-11-25 21:52:24 +00:00
renovate[bot]
d70a97cf77 fix(deps): update mantine monorepo to ^8.3.9 2025-11-25 13:35:39 +00:00
renovate[bot]
c67c433258 chore(deps): update dependency vitest to ^4.0.13 2025-11-24 17:46:02 +00:00
renovate[bot]
0da6bd5ab6 chore(deps): update dependency @biomejs/biome to ^2.3.7 2025-11-24 09:47:58 +00:00
Jérémie Panzer
e5cdb1580e Merge pull request #1970 from Athou/renovate/monaco-editor-0.x
fix(deps): update dependency monaco-editor to ^0.55.1
2025-11-24 04:54:35 +01:00
renovate[bot]
2c10292073 fix(deps): update dependency monaco-editor to ^0.55.1 2025-11-23 20:50:57 +00:00
Athou
30036a456e Merge branch 'dcelasun-chore/jdk-25' 2025-11-23 21:36:56 +01:00
Athou
6349ae9e2b fix for java.lang.NoClassDefFoundError: Could not initialize class org.jboss.threads.JDKSpecific$ThreadAccess 2025-11-23 17:53:00 +01:00
Athou
8d746669c3 Merge branch 'chore/jdk-25' of https://github.com/dcelasun/commafeed into dcelasun-chore/jdk-25 2025-11-23 17:46:35 +01:00
renovate[bot]
0081abc9a7 chore(deps): update dependency vitest to ^4.0.12 2025-11-23 13:01:25 +00:00
renovate[bot]
a2f9ac05fe chore(deps): update dependency vite to ^7.2.4 2025-11-23 08:44:04 +00:00
renovate[bot]
6c1f24bad7 chore(deps): update dependency @biomejs/biome to v2.3.7 2025-11-21 08:53:14 +00:00
Jérémie Panzer
77cd01e91f Merge pull request #1969 from Athou/renovate/actions-checkout-6.x
chore(deps): update actions/checkout action to v6
2025-11-21 08:03:07 +01:00
renovate[bot]
5487aac81d fix(deps): update dependency io.github.hakky54:ayza-for-apache5 to v10.0.2 2025-11-20 21:47:01 +00:00
renovate[bot]
8a6257dc63 chore(deps): update actions/checkout action to v6 2025-11-20 18:06:19 +00:00
Athou
8146c69ebf release 5.12.0 2025-11-20 06:58:55 +01:00
renovate[bot]
78ece1abf2 chore(deps): update dependency npm to v11.6.3 2025-11-20 01:58:00 +00:00
renovate[bot]
baab35c4c5 fix(deps): update quarkus.version to v3.29.4 2025-11-19 21:01:43 +00:00
Athou
357f9d46f9 enable the disablePullToRefresh setting by default to mimic what was done before the setting was added 2025-11-19 15:10:29 +01:00
Jérémie Panzer
4eb26302a7 Merge pull request #1967 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.1.0
2025-11-19 09:06:06 +01:00
renovate[bot]
a2071d9527 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3.1.0 2025-11-19 01:30:34 +00:00
Jérémie Panzer
65c32c52ff Merge pull request #1966 from Athou/renovate/debian-13.x
chore(deps): update debian docker tag to v13.2
2025-11-18 08:08:02 +01:00
renovate[bot]
fa4353f47d chore(deps): update debian docker tag to v13.2 2025-11-18 06:13:55 +00:00
renovate[bot]
46fea1a3e5 chore(deps): update dependency vitest to ^4.0.10 2025-11-18 04:25:51 +00:00
renovate[bot]
497cf111d1 chore(deps): update dependency @types/react to ^19.2.6 2025-11-18 03:19:16 +00:00
renovate[bot]
b1f2fd26e3 chore(deps): update actions/checkout digest to 93cb6ef 2025-11-17 22:43:16 +00:00
renovate[bot]
ae60d4a60f chore(deps): update dependency @biomejs/biome to v2.3.6 2025-11-17 11:13:56 +00:00
Athou
ae78e4691d make "disable pull to refresh" a setting (#1168) 2025-11-17 09:02:52 +01:00
Athou
9c058cf6d6 disable xml entity expansion limits enabled in JDK24+ (#1961) 2025-11-17 06:43:55 +01:00
renovate[bot]
1ac9af23c5 chore(deps): lock file maintenance 2025-11-17 02:41:41 +00:00
renovate[bot]
f783bb660e fix(deps): update dependency style-to-object to ^1.0.14 2025-11-16 12:42:51 +00:00
Athou
e5c271ca1c add support for more emojis (#1955) 2025-11-16 09:37:36 +01:00
renovate[bot]
f927247955 fix(deps): update mantine monorepo to ^8.3.8 2025-11-15 13:36:11 +00:00
renovate[bot]
087e38bec8 chore(deps): update dependency @types/react to ^19.2.5 2025-11-14 23:57:15 +00:00
renovate[bot]
bab3c8e6b0 fix(deps): update quarkus.version to v3.29.3 2025-11-14 16:35:26 +00:00
renovate[bot]
54ac5d9e27 chore(deps): update dependency vitest to ^4.0.9 2025-11-14 10:05:26 +00:00
renovate[bot]
36519d9053 chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.1_8-jre docker digest to 015afe2 2025-11-14 05:49:21 +00:00
renovate[bot]
ccce4c622d fix(deps): update dependency react-router-dom to ^7.9.6 2025-11-13 21:02:11 +00:00
renovate[bot]
4cbf677e55 chore(deps): update react monorepo 2025-11-12 22:05:12 +00:00
renovate[bot]
1dbac44a93 chore(deps): update dependency @vitejs/plugin-react to ^5.1.1 2025-11-12 13:33:44 +00:00
Jérémie Panzer
7e1cfb5cd2 Merge pull request #1965 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to ^5.6.0 (minor)
2025-11-12 22:32:10 +09:00
renovate[bot]
df9fb956fa fix(deps): update linguijs monorepo to ^5.6.0 2025-11-12 11:35:12 +00:00
Jérémie Panzer
16dc383f2b Merge pull request #1964 from Athou/renovate/jsdom-27.x
chore(deps): update dependency jsdom to ^27.2.0
2025-11-12 20:33:53 +09:00
Jérémie Panzer
0dd7c4851b Merge pull request #1963 from Athou/renovate/com.puppycrawl.tools-checkstyle-12.1.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.1.2
2025-11-12 20:33:28 +09:00
renovate[bot]
fce4e75eef chore(deps): update dependency jsdom to ^27.2.0 2025-11-12 09:09:24 +00:00
renovate[bot]
16b578a76d chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.1.2 2025-11-12 09:09:16 +00:00
renovate[bot]
483db9881e chore(deps): update node.js to v24.11.1 2025-11-12 02:53:15 +00:00
renovate[bot]
a4053c6084 chore(deps): update dependency @types/react to ^19.2.3 2025-11-11 23:57:09 +00:00
renovate[bot]
e4f4b46047 chore(deps): update dependency @biomejs/biome to v2.3.5 2025-11-11 18:32:41 +00:00
Jérémie Panzer
36f77d5408 Merge pull request #1962 from Athou/renovate/org.sonarsource.scanner.maven-sonar-maven-plugin-5.x
chore(deps): update dependency org.sonarsource.scanner.maven:sonar-maven-plugin to v5.3.0.6276
2025-11-11 06:43:39 +09:00
renovate[bot]
b3533771dc chore(deps): update dependency org.sonarsource.scanner.maven:sonar-maven-plugin to v5.3.0.6276 2025-11-10 19:41:32 +00:00
renovate[bot]
45372cba92 chore(deps): lock file maintenance 2025-11-10 01:01:27 +00:00
renovate[bot]
dd7fb5bb0d fix(deps): update mantine monorepo to ^8.3.7 2025-11-09 13:53:33 +00:00
renovate[bot]
41bdc19a22 chore(deps): update dependency io.quarkus.platform:quarkus-maven-plugin to v3.29.2 2025-11-08 17:02:37 +00:00
renovate[bot]
8b7f22021a chore(deps): update dependency vitest to ^4.0.8 2025-11-07 16:13:57 +00:00
renovate[bot]
f0160e4d2b chore(deps): update dependency vite to ^7.2.2 2025-11-07 10:47:20 +00:00
renovate[bot]
39d727f98f fix(deps): update quarkus.version to v3.29.1 2025-11-06 22:57:39 +00:00
renovate[bot]
13cc8ac70d chore(deps): update dependency vite to ^7.2.1 (#1960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 18:07:54 +00:00
renovate[bot]
eb2a219ec8 fix(deps): update dependency axios to ^1.13.2 2025-11-05 23:07:57 +00:00
renovate[bot]
4a59565b20 chore(deps): update docker/setup-qemu-action digest to c7c5346 2025-11-05 19:42:18 +00:00
renovate[bot]
4b7fa96308 chore(deps): update dependency @biomejs/biome to v2.3.4 2025-11-05 14:44:25 +00:00
Jérémie Panzer
1ebc8a1e7b Merge pull request #1959 from Athou/renovate/vite-7.x
chore(deps): update dependency vite to ^7.2.0
2025-11-05 23:43:30 +09:00
renovate[bot]
df2a9aae20 chore(deps): update dependency vite to ^7.2.0 2025-11-05 13:03:49 +00:00
renovate[bot]
dd8287c9d7 chore(deps): update ibm-semeru-runtimes docker tag to open-jdk-25.0.1_8-jre 2025-11-05 07:06:59 +00:00
renovate[bot]
22fcb08dad fix(deps): update dependency @reduxjs/toolkit to ^2.10.1 2025-11-05 03:04:14 +00:00
renovate[bot]
8c2cf181bd chore(deps): update dependency vitest to ^4.0.7 2025-11-04 21:31:09 +00:00
renovate[bot]
69adae36b6 chore(deps): update debian:13.1 docker digest to 01a723b 2025-11-04 16:45:27 +00:00
Jérémie Panzer
8ab700dfa9 Merge pull request #1957 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.10.0
2025-11-04 10:33:02 +01:00
renovate[bot]
0177529b45 fix(deps): update dependency @reduxjs/toolkit to ^2.10.0 2025-11-04 07:57:22 +00:00
renovate[bot]
4c6ae3364e chore(deps): update dependency @biomejs/biome to v2.3.3 2025-11-03 11:48:29 +00:00
renovate[bot]
6df8511a6d chore(deps): lock file maintenance 2025-11-03 00:39:22 +00:00
renovate[bot]
6fa39517f8 fix(deps): update dependency react-router-dom to ^7.9.5 2025-11-01 01:44:03 +00:00
renovate[bot]
c69ce39424 chore(deps): update dependency vitest to ^4.0.6 2025-10-31 20:23:24 +00:00
Jérémie Panzer
a47f6736ac Merge pull request #1956 from Athou/renovate/jsdom-27.x
chore(deps): update dependency jsdom to ^27.1.0
2025-10-31 21:22:17 +01:00
renovate[bot]
79bd7cfff3 chore(deps): update dependency jsdom to ^27.1.0 2025-10-31 11:51:25 +00:00
renovate[bot]
bc02f23f0f fix(deps): update dependency dayjs to ^1.11.19 2025-10-31 11:51:10 +00:00
renovate[bot]
715dffb6c8 chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.0_36-jre docker digest to 7cee2dc 2025-10-31 04:41:07 +00:00
renovate[bot]
702b3eb971 chore(deps): update dependency vitest to ^4.0.5 2025-10-30 21:52:45 +00:00
Jérémie Panzer
17f62bf491 Merge pull request #1954 from Athou/renovate/com.ibm.icu-icu4j-78.x
fix(deps): update dependency com.ibm.icu:icu4j to v78
2025-10-30 22:51:40 +01:00
renovate[bot]
28471302ee fix(deps): update dependency com.ibm.icu:icu4j to v78 2025-10-30 20:32:35 +00:00
renovate[bot]
d8bfdd5d3b fix(deps): update linguijs monorepo to ^5.5.2 2025-10-30 15:58:30 +00:00
Jérémie Panzer
a36e68e9c3 Merge pull request #1953 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.29.0 (minor)
2025-10-29 20:46:30 +01:00
renovate[bot]
343aed16fb fix(deps): update quarkus.version to v3.29.0 2025-10-29 17:06:51 +00:00
renovate[bot]
142d873c8b fix(deps): update mantine monorepo to ^8.3.6 2025-10-29 10:10:47 +00:00
renovate[bot]
a94b3e05d3 fix(deps): update dependency axios to ^1.13.1 2025-10-29 03:13:02 +00:00
Jérémie Panzer
26a79d58f0 Merge pull request #1952 from Athou/renovate/node-24.x
chore(deps): update node.js to v24
2025-10-29 04:12:10 +01:00
renovate[bot]
7c5e68e47d chore(deps): update node.js to v24 2025-10-28 20:36:14 +00:00
renovate[bot]
ba68627060 chore(deps): update dependency @biomejs/biome to v2.3.2 2025-10-28 20:36:01 +00:00
renovate[bot]
5bb6a7d4d4 chore(deps): update dependency vitest to ^4.0.4 2025-10-27 20:42:25 +00:00
Jérémie Panzer
76f7999046 Merge pull request #1951 from Athou/renovate/querydsl.version
fix(deps): update querydsl.version to v7.1 (minor)
2025-10-27 21:41:31 +01:00
renovate[bot]
547693df4f fix(deps): update querydsl.version to v7.1 2025-10-27 20:06:14 +00:00
Jérémie Panzer
0206f8211a Merge pull request #1950 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to ^1.13.0
2025-10-27 21:05:06 +01:00
renovate[bot]
e061f2e259 fix(deps): update dependency axios to ^1.13.0 2025-10-27 18:12:02 +00:00
renovate[bot]
560ccff04a chore(deps): update graalvm/setup-graalvm digest to eec4810 2025-10-27 09:49:45 +00:00
renovate[bot]
2f0a84557b chore(deps): lock file maintenance 2025-10-27 00:39:04 +00:00
renovate[bot]
3ae7318ded chore(deps): update dependency @biomejs/biome to v2.3.1 2025-10-26 21:53:19 +00:00
renovate[bot]
6b7d66e833 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.1.1 2025-10-26 18:28:31 +00:00
renovate[bot]
ec8e594a5c fix(deps): update dependency style-to-object to ^1.0.12 2025-10-25 02:16:11 +00:00
renovate[bot]
858041772e chore(deps): update dependency vitest to ^4.0.3 2025-10-24 22:17:14 +00:00
Jérémie Panzer
b355c04d87 Merge pull request #1948 from Athou/renovate/major-github-artifact-actions
chore(deps): update github artifact actions (major)
2025-10-25 00:15:30 +02:00
renovate[bot]
4918eaf752 chore(deps): update github artifact actions 2025-10-24 19:37:52 +00:00
Jérémie Panzer
80706f006d Merge pull request #1947 from Athou/renovate/vitejs-plugin-react-5.x
chore(deps): update dependency @vitejs/plugin-react to ^5.1.0
2025-10-24 21:37:11 +02:00
Jérémie Panzer
8a7fec1207 Merge pull request #1946 from Athou/renovate/biomejs-biome-2.x
chore(deps): update dependency @biomejs/biome to v2.3.0
2025-10-24 21:36:43 +02:00
renovate[bot]
22a5b6e85e chore(deps): update dependency @vitejs/plugin-react to ^5.1.0 2025-10-24 16:33:16 +00:00
renovate[bot]
a51c533712 chore(deps): update dependency @biomejs/biome to v2.3.0 2025-10-24 16:33:08 +00:00
renovate[bot]
1f74674a11 chore(deps): update dependency vitest to ^4.0.2 2025-10-24 00:56:41 +00:00
renovate[bot]
2eada58ce5 chore(deps): update dependency vite to ^7.1.12 2025-10-23 13:30:21 +00:00
Jérémie Panzer
31e74bd4a8 Merge pull request #1945 from Athou/renovate/patch-quarkus.version
fix(deps): update quarkus.version to v3.28.5 (patch)
2025-10-23 15:29:26 +02:00
renovate[bot]
903f73ee78 fix(deps): update quarkus.version to v3.28.5 2025-10-23 04:51:46 +00:00
renovate[bot]
b21198b239 fix(deps): update dependency io.github.hakky54:ayza-for-apache5 to v10.0.1 2025-10-23 00:49:27 +00:00
renovate[bot]
e20ff09457 fix(deps): update dependency @reduxjs/toolkit to ^2.9.2 2025-10-22 23:07:16 +00:00
Jérémie Panzer
674393eabc Merge pull request #1944 from Athou/renovate/major-vitest-monorepo
chore(deps): update dependency vitest to v4
2025-10-23 01:06:24 +02:00
renovate[bot]
d78a131713 chore(deps): update dependency vitest to v4 2025-10-22 22:10:33 +00:00
renovate[bot]
e3816bf05b chore(deps): update dependency @biomejs/biome to v2.2.7 2025-10-22 11:53:45 +00:00
renovate[bot]
37fe1c60cc chore(deps): update debian:13.1 docker digest to 72547dd 2025-10-21 05:50:15 +00:00
Jérémie Panzer
e705a0d32b Merge pull request #1942 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.21.0
2025-10-21 04:01:46 +02:00
renovate[bot]
eb658a644b chore(deps): update node.js to v22.21.0 2025-10-21 00:52:29 +00:00
Jérémie Panzer
cb905bfc8c Merge pull request #1941 from Athou/renovate/io.quarkiverse.playwright-quarkus-playwright-2.x
chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.2.1
2025-10-21 01:49:14 +02:00
renovate[bot]
d0accf6a84 chore(deps): update dependency io.quarkiverse.playwright:quarkus-playwright to v2.2.1 2025-10-20 21:50:57 +00:00
renovate[bot]
55e6f89fc1 chore(deps): update dependency vite to ^7.1.11 2025-10-20 09:34:48 +00:00
renovate[bot]
60695a0ffc chore(deps): lock file maintenance 2025-10-20 02:37:10 +00:00
Jérémie Panzer
8a8e4655cd Merge pull request #1940 from Athou/renovate/com.puppycrawl.tools-checkstyle-12.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.1.0
2025-10-19 20:16:35 +02:00
renovate[bot]
2f4b390be1 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.1.0 2025-10-19 17:55:02 +00:00
renovate[bot]
31146cc713 chore(deps): update dependency org.codehaus.mojo:exec-maven-plugin to v3.6.2 2025-10-19 08:44:03 +00:00
renovate[bot]
9e020ff268 chore(deps): update dependency jsdom to ^27.0.1 2025-10-18 09:56:15 +00:00
Athou
7e825192d0 enforce user password validation when created in the admin view (#1937) 2025-10-17 10:19:02 +02:00
Athou
8871ae894f handle invalid relative urls (#1939) 2025-10-17 09:04:38 +02:00
renovate[bot]
2808f4b1a2 fix(deps): update dependency @reduxjs/toolkit to ^2.9.1 2025-10-17 06:05:31 +00:00
renovate[bot]
0324c22061 fix(deps): update quarkus.version to v3.28.4 2025-10-16 18:47:22 +00:00
D. Can Celasun
57227f9544 chore: Switch to GraalVM 25
JDK 25 is the new LTS after 21.
2025-10-16 18:04:50 +01:00
renovate[bot]
59c5131f1a chore(deps): update dependency rollup-plugin-visualizer to ^6.0.5 2025-10-16 13:58:50 +00:00
Athou
ccbc07d7d8 don't show "Star/Unstar" in the context menu if the entry is not markable (#1935) 2025-10-15 07:11:48 +02:00
renovate[bot]
a0247f0036 fix(deps): update mantine monorepo to ^8.3.5 2025-10-14 21:01:50 +00:00
renovate[bot]
0979c2767b chore(deps): update dependency vite to ^7.1.10 2025-10-14 17:07:41 +00:00
renovate[bot]
9a9613bba3 chore(deps): update dependency @types/react-dom to ^19.2.2 2025-10-13 16:44:29 +00:00
Jérémie Panzer
6451f5f3b7 Merge pull request #1931 from Athou/renovate/biomejs-biome-2.2.x
chore(deps): update dependency @biomejs/biome to v2.2.6
2025-10-13 15:34:10 +02:00
Athou
4a4430ce9b fix build 2025-10-13 13:45:03 +02:00
renovate[bot]
a38d3dcf72 chore(deps): update dependency @biomejs/biome to v2.2.6 2025-10-13 10:35:05 +00:00
renovate[bot]
60e1e0d037 chore(deps): lock file maintenance 2025-10-13 01:48:54 +00:00
Athou
8071b85b3d remove unused workflows 2025-10-12 14:53:25 +02:00
Jérémie Panzer
c867bfb846 Merge pull request #1929 from aniol/patch-3
Update messages.po
2025-10-12 13:51:59 +02:00
Aniol
24b32ab69b Update messages.po
The translation has been reviewed, and some tweaks have been applied.
2025-10-12 09:20:09 +02:00
renovate[bot]
b1fc65262f chore(deps): update dependency org.jacoco:jacoco-maven-plugin to v0.8.14 2025-10-12 01:05:50 +00:00
renovate[bot]
5af3fea74c chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12.0.1 2025-10-11 21:37:13 +00:00
Athou
dde38985e4 use stable react compiler 2025-10-11 13:24:07 +02:00
Athou
3f0084fa1c make the app appear as "commafeed" when listing processes 2025-10-11 13:23:23 +02:00
renovate[bot]
8936d4fdce chore(deps): update github/codeql-action digest to f443b60 2025-10-10 18:40:20 +00:00
renovate[bot]
4c47b7d838 fix(deps): update linguijs monorepo to ^5.5.1 2025-10-10 12:34:48 +00:00
Jérémie Panzer
093a9cb8e4 Merge pull request #1927 from xmgz/master
Complete, Fix and Review galician (gl) translation
2025-10-10 14:33:46 +02:00
ghose
f27b3f8933 fixing line breaks not needed
there were many line breaks which did not were needed. Now  removed.
2025-10-10 12:13:41 +00:00
ghose
74a9e48e55 adding back header info 2025-10-10 05:36:38 +00:00
ghose
bafef26ffc Update messages.po
cleaning header
2025-10-10 05:33:53 +00:00
ghose
f8e66170bf consistency and fixes
first review
2025-10-10 05:33:01 +00:00
renovate[bot]
00bf99fe5a fix(deps): update mantine monorepo to ^8.3.4 2025-10-10 00:52:58 +00:00
renovate[bot]
05dd66177f chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.0_36-jre docker digest to f31cc59 2025-10-09 22:58:37 +00:00
renovate[bot]
d5a9e6401e fix(deps): update quarkus.version to v3.28.3 2025-10-09 17:51:36 +00:00
Jérémie Panzer
660ba67433 Merge pull request #1925 from Athou/renovate/com.puppycrawl.tools-checkstyle-12.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12
2025-10-09 19:50:55 +02:00
renovate[bot]
7ad948065b chore(deps): update dependency com.puppycrawl.tools:checkstyle to v12 2025-10-09 16:59:22 +00:00
ghose
40fcb85c93 missing text chains
there were about 80 text chains missing.
2025-10-09 12:52:45 +00:00
renovate[bot]
dcddb80f7b fix(deps): update dependency react-router-dom to ^7.9.4 2025-10-09 01:06:10 +00:00
renovate[bot]
8e349aea19 chore(deps): update dependency npm to v11.6.2 2025-10-08 21:03:39 +00:00
Jérémie Panzer
3d72725ae0 Merge pull request #1924 from Athou/renovate/github-codeql-action-4.x
chore(deps): update github/codeql-action action to v4
2025-10-08 06:36:34 +02:00
renovate[bot]
270cb340f5 chore(deps): update github/codeql-action action to v4 2025-10-07 19:00:38 +00:00
Jérémie Panzer
42b5462889 Merge pull request #1892 from Athou/renovate/monaco-editor-0.x
fix(deps): update dependency monaco-editor to ^0.54.0
2025-10-07 20:59:58 +02:00
renovate[bot]
b98ab8d011 fix(deps): update dependency monaco-editor to ^0.54.0 2025-10-07 12:51:51 +00:00
renovate[bot]
b4264a8ba3 chore(deps): update react monorepo 2025-10-07 10:14:49 +00:00
renovate[bot]
a395246d1e chore(deps): update dependency @types/react to ^19.2.1 2025-10-06 21:11:32 +00:00
renovate[bot]
4b7a2afd07 chore(deps): lock file maintenance 2025-10-06 03:45:30 +00:00
renovate[bot]
7f49ff20cf chore(deps): update dependency org.codehaus.mojo:exec-maven-plugin to v3.6.1 2025-10-06 02:13:46 +00:00
renovate[bot]
4e9995e610 fix(deps): update dependency style-to-object to ^1.0.11 (#1923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 16:35:01 +00:00
renovate[bot]
9f61442cec chore(deps): update dependency vite to ^7.1.9 2025-10-03 05:30:16 +00:00
renovate[bot]
9339847d09 fix(deps): update mantine monorepo to ^8.3.3 2025-10-02 20:21:36 +00:00
Athou
39e57cb3ef fix warning 2025-10-02 22:06:24 +02:00
Athou
f3a574d05c reformat table 2025-10-02 22:02:28 +02:00
Athou
297c76006a use more records 2025-10-02 21:54:40 +02:00
renovate[bot]
62d025d827 chore(deps): update dependency vite to ^7.1.8 2025-10-02 16:37:35 +00:00
renovate[bot]
999799ea68 chore(deps): update github/codeql-action digest to 64d10c1 2025-10-02 15:25:23 +00:00
renovate[bot]
331f68253e chore(deps): update dependency rollup-plugin-visualizer to ^6.0.4 2025-10-02 13:54:43 +00:00
renovate[bot]
70d3c7a4be chore(deps): update dependency @biomejs/biome to v2.2.5 2025-10-02 13:00:18 +00:00
renovate[bot]
b3c75a0286 chore(deps): update ibm-semeru-runtimes:open-jdk-25.0.0_36-jre docker digest to 8ae0733 2025-10-02 11:54:35 +00:00
renovate[bot]
9946120304 chore(deps): update graalvm/setup-graalvm digest to 2a24120 2025-10-02 09:03:55 +00:00
Athou
7030a67389 Merge branch 'renovate/ibm-semeru-runtimes-25.x' 2025-10-02 06:24:06 +02:00
Jérémie Panzer
eda5ef6965 Merge pull request #1921 from Athou/renovate/patch-testing-library-monorepo
chore(deps): update dependency @testing-library/jest-dom to ^6.9.1
2025-10-02 06:18:06 +02:00
Jérémie Panzer
0324479fda Merge pull request #1922 from Athou/renovate/react-monorepo
fix(deps): update react monorepo to ^19.2.0 (minor)
2025-10-02 06:18:00 +02:00
Athou
aeafecb88d update semeru pattern 2025-10-02 06:17:52 +02:00
renovate[bot]
fde7fbe21a chore(deps): update ibm-semeru-runtimes docker tag to v25 2025-10-02 00:34:50 +00:00
renovate[bot]
7116efc490 fix(deps): update react monorepo to ^19.2.0 2025-10-02 00:34:44 +00:00
renovate[bot]
1ac6058200 chore(deps): update dependency @testing-library/jest-dom to ^6.9.1 2025-10-02 00:34:27 +00:00
renovate[bot]
32b80b64f4 chore(deps): update react monorepo 2025-10-01 19:24:44 +00:00
Jérémie Panzer
9e348767dc Merge pull request #1920 from Athou/renovate/peter-evans-dockerhub-description-5.x
chore(deps): update peter-evans/dockerhub-description action to v5
2025-10-01 21:23:52 +02:00
Jérémie Panzer
bce72e1152 Merge pull request #1904 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.28.2 (minor)
2025-10-01 21:23:45 +02:00
renovate[bot]
64aba75be2 chore(deps): update peter-evans/dockerhub-description action to v5 2025-10-01 18:13:24 +00:00
renovate[bot]
ca65e13f9a fix(deps): update quarkus.version to v3.28.2 2025-10-01 18:13:15 +00:00
renovate[bot]
54797607c6 chore(deps): update dependency typescript to ^5.9.3 2025-10-01 03:33:28 +00:00
Jérémie Panzer
e174254a95 Merge pull request #1918 from Athou/renovate/testing-library-monorepo
chore(deps): update dependency @testing-library/jest-dom to ^6.9.0
2025-09-30 22:03:33 +02:00
renovate[bot]
4378e24b49 chore(deps): update dependency @testing-library/jest-dom to ^6.9.0 2025-09-30 19:28:02 +00:00
renovate[bot]
35d276ea98 chore(deps): update debian:13.1 docker digest to fd8f5a1 2025-09-30 11:44:47 +00:00
Jérémie Panzer
678c89d9c0 Merge pull request #1917 from Athou/renovate/org.codehaus.mojo-exec-maven-plugin-3.x
chore(deps): update dependency org.codehaus.mojo:exec-maven-plugin to v3.6.0
2025-09-30 13:44:11 +02:00
renovate[bot]
0a42223de0 chore(deps): update dependency org.codehaus.mojo:exec-maven-plugin to v3.6.0 2025-09-30 10:39:26 +00:00
renovate[bot]
54d3f3b007 chore(deps): update dependency @types/react to ^19.1.16 2025-09-30 06:14:38 +00:00
renovate[bot]
3ee58ee464 chore(deps): update debian:13.1 docker digest to 9dfe31a 2025-09-30 01:58:58 +00:00
renovate[bot]
3b5ff016fe chore(deps): update docker/login-action digest to 5e57cd1 2025-09-29 12:55:55 +00:00
Jérémie Panzer
8a8e786f5e Merge pull request #1913 from Athou/renovate/vite-plugin-checker-0.x
chore(deps): update dependency vite-plugin-checker to ^0.11.0
2025-09-29 12:30:24 +02:00
renovate[bot]
2a15f68ffb chore(deps): update dependency vite-plugin-checker to ^0.11.0 2025-09-29 10:10:00 +00:00
renovate[bot]
9387e014c1 chore(deps): lock file maintenance 2025-09-29 02:12:14 +00:00
renovate[bot]
1ef37fcaff chore(deps): update dependency @types/react to ^19.1.15 2025-09-28 15:23:14 +00:00
Jérémie Panzer
c5906a481f Merge pull request #1910 from Athou/renovate/com.puppycrawl.tools-checkstyle-11.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v11.1.0
2025-09-28 17:21:38 +02:00
renovate[bot]
ac0bc916a1 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v11.1.0 2025-09-28 13:57:20 +00:00
Athou
5bbe76d56e remove log.trace calls 2025-09-28 07:36:12 +02:00
Athou
1e6195d74c add coverage for in-page url fallback 2025-09-28 07:36:12 +02:00
Athou
85acea7e64 fix warning 2025-09-28 07:36:12 +02:00
renovate[bot]
0e4ff99602 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.5.1 2025-09-28 01:39:52 +00:00
renovate[bot]
575d2a0940 chore(deps): update dependency @vitejs/plugin-react to ^5.0.4 2025-09-27 20:22:58 +00:00
Athou
c548462eef cleanup 2025-09-27 19:10:41 +02:00
Jérémie Panzer
3b4cc66b24 Merge pull request #1909 from RazyAnas/master
Fix off-by-one error in HttpGetter.toByteArray response size check
2025-09-27 19:07:19 +02:00
AnasRazy /
6d7273f822 Merge pull request #1 from RazyAnas/RazyAnas-patch-1
What this PR does:
Fixes an off-by-one error in HttpGetter.toByteArray where responses of exactly maxBytes were being rejected. Now allows responses up to maxBytes, and only throws if the response is larger.

Why this change is needed:
Some feeds return responses exactly equal to the limit. Current implementation incorrectly throws an exception, breaking parsing.

How it works:
Reads up to maxBytes + 1 bytes.
If actual size exceeds maxBytes, throws exception. Otherwise returns full content.

Other notes:
No breaking API changes.
Safe for existing usage.
2025-09-27 15:35:16 +05:30
AnasRazy /
65014d330a Fix off-by-one bug in HttpGetter.toByteArray()
What this PR does:
Fixes an off-by-one error in HttpGetter.toByteArray where responses of exactly maxBytes were being rejected.
Now allows responses up to maxBytes, and only throws if the response is larger.

Why this change is needed:
Some feeds return responses exactly equal to the limit.
Current implementation incorrectly throws an exception, breaking parsing.

How it works:
Reads up to maxBytes + 1 bytes.
If actual size exceeds maxBytes, throws exception.
Otherwise returns full content.

Other notes:
No breaking API changes.
Safe for existing usage.
2025-09-27 15:32:31 +05:30
renovate[bot]
d9e3cf0190 fix(deps): update dependency react-router-dom to ^7.9.3 2025-09-27 04:27:25 +00:00
renovate[bot]
2d8ee54d28 chore(deps): update dependency @types/react to ^19.1.14 2025-09-27 01:45:49 +00:00
renovate[bot]
98c3bb780d chore(deps): update github/codeql-action digest to 3599b3b 2025-09-26 21:56:48 +00:00
renovate[bot]
7247c10615 chore(deps): update dependency com.github.eirslett:frontend-maven-plugin to v1.15.4 2025-09-26 04:52:35 +00:00
Athou
0787284d80 mvn wrapper update 2025-09-26 06:51:52 +02:00
renovate[bot]
1c73bffc95 chore(deps): update github/codeql-action digest to 303c0ae 2025-09-25 12:31:52 +00:00
Jérémie Panzer
6f79815933 Merge pull request #1905 from Athou/renovate/patch-react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.9.2
2025-09-25 08:37:03 +02:00
renovate[bot]
bb108d594a fix(deps): update dependency react-router-dom to ^7.9.2 2025-09-25 05:08:53 +00:00
Jérémie Panzer
f7716c8834 Merge pull request #1906 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-3.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3
2025-09-25 07:07:51 +02:00
Jérémie Panzer
5ba076b1dd Merge pull request #1907 from Athou/renovate/npm-11.6.x
chore(deps): update dependency npm to v11.6.1
2025-09-25 07:04:47 +02:00
renovate[bot]
7861b5a414 chore(deps): update dependency npm to v11.6.1 2025-09-25 05:04:27 +00:00
Athou
f36a5988d8 quarkus build is not yet stable with java 25 2025-09-25 07:03:48 +02:00
renovate[bot]
8b57240db3 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v3 2025-09-24 21:05:17 +00:00
Jérémie Panzer
7b52efd2d1 Merge pull request #1903 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.20.0
2025-09-24 16:42:26 +02:00
renovate[bot]
4901b838e2 chore(deps): update node.js to v22.20.0 2025-09-24 14:10:30 +00:00
Jérémie Panzer
2313a60f32 Merge pull request #1902 from Athou/renovate/patch-mantine-monorepo
fix(deps): update mantine monorepo to ^8.3.2 (patch)
2025-09-24 07:25:17 +02:00
renovate[bot]
c38e958588 fix(deps): update mantine monorepo to ^8.3.2 2025-09-23 23:39:27 +00:00
Jérémie Panzer
43b1e14f41 Merge pull request #1901 from Athou/renovate/graalvm-setup-graalvm-digest
chore(deps): update graalvm/setup-graalvm digest to e140024
2025-09-23 16:18:56 +02:00
renovate[bot]
1e23b3c355 chore(deps): update graalvm/setup-graalvm digest to e140024 2025-09-23 10:35:05 +00:00
Jérémie Panzer
85e1556148 Merge pull request #1900 from Athou/renovate/vite-7.1.x
chore(deps): update dependency vite to ^7.1.7
2025-09-22 16:07:12 +02:00
renovate[bot]
b65f333a89 chore(deps): update dependency vite to ^7.1.7 2025-09-22 06:54:21 +00:00
renovate[bot]
3dbcbb8280 chore(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.14.1 2025-09-22 05:17:18 +00:00
renovate[bot]
06e464854a chore(deps): lock file maintenance 2025-09-22 01:55:24 +00:00
306 changed files with 25567 additions and 19387 deletions

1
.github/stale.yml vendored
View File

@@ -7,6 +7,7 @@ exemptLabels:
- pinned
- security
- enhancement
- feature-request
- bug
# Label to use when marking an issue as stale
staleLabel: wontfix

View File

@@ -23,18 +23,24 @@ jobs:
steps:
# Checkout
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
# Setup
- name: Set up GraalVM
uses: graalvm/setup-graalvm@aba6a077d71fbfc02138d7470c4ad6e7f85bd2a9 # v1
uses: graalvm/setup-graalvm@0def53c0fd8534bc13416c9469f5be45265824fd # v1.6.3
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: "graalvm"
cache: "maven"
- name: Set up NodeJS cache
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: "npm"
cache-dependency-path: 'commafeed-client/package-lock.json'
- name: Install Playwright dependencies
run: sudo apt-get install -y libgbm1
if: matrix.os != 'windows-latest'
@@ -48,39 +54,39 @@ jobs:
run: mkdir -p target/pages/documentation/custom-css
- name: Convert readme file to html
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
uses: jaywcjlove/markdown-to-html-cli@cff9330af4ca8048b197a76d9eb1db189c2a7cee # v5.0.4
with:
source: README.md
output: target/pages/index.html
- name: Convert config documentation to html
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
uses: jaywcjlove/markdown-to-html-cli@cff9330af4ca8048b197a76d9eb1db189c2a7cee # v5.0.4
with:
source: commafeed-server/target/quarkus-generated-doc/config/commafeed-server.md
output: target/pages/documentation/index.html
- name: Convert custom css documentation to html
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
uses: jaywcjlove/markdown-to-html-cli@cff9330af4ca8048b197a76d9eb1db189c2a7cee # v5.0.4
with:
source: documentation/CUSTOMCSS.md
output: target/pages/documentation/custom-css/index.html
# Upload artifacts
- name: Upload cross-platform app
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: matrix.os == 'ubuntu-latest' # we only need to upload the cross-platform artifact once per database
with:
name: commafeed-${{ matrix.database }}-jvm
path: commafeed-server/target/commafeed-*.zip
- name: Upload native executable
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
path: commafeed-server/target/commafeed-*-runner*
- name: Upload pages
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
if: matrix.os == 'ubuntu-latest' && matrix.database == 'h2' # we only need to upload the pages once
with:
path: target/pages
@@ -98,23 +104,23 @@ jobs:
steps:
# Checkout
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
# Setup
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
- name: Install required packages
run: sudo apt-get install -y rename unzip
# Prepare artifacts
- name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: commafeed-${{ matrix.database }}-*
path: ./artifacts
@@ -135,7 +141,7 @@ jobs:
# Docker
- name: Login to Container Registry
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
if: ${{ env.DOCKERHUB_USERNAME != '' }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
@@ -143,7 +149,7 @@ jobs:
## build but don't push for PRs and renovate
- name: Docker build - native
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.native
@@ -151,7 +157,7 @@ jobs:
platforms: linux/amd64,linux/arm64/v8
- name: Docker build - jvm
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.jvm
@@ -160,7 +166,7 @@ jobs:
## build and push tag
- name: Docker build and push tag - native
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
if: ${{ github.ref_type == 'tag' }}
with:
context: .
@@ -172,7 +178,7 @@ jobs:
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}
- name: Docker build and push tag - jvm
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
if: ${{ github.ref_type == 'tag' }}
with:
context: .
@@ -185,7 +191,7 @@ jobs:
## build and push master
- name: Docker build and push master - native
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
if: ${{ github.ref_name == 'master' }}
with:
context: .
@@ -195,7 +201,7 @@ jobs:
tags: athou/commafeed:master-${{ matrix.database }}
- name: Docker build and push master - jvm
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
if: ${{ github.ref_name == 'master' }}
with:
context: .
@@ -215,12 +221,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: commafeed-*
path: ./artifacts
@@ -230,13 +236,13 @@ jobs:
run: chmod +x artifacts/*-runner
- name: Extract Changelog Entry
uses: mindsers/changelog-reader-action@32aa5b4c155d76c94e4ec883a223c947b2f02656 # v2
uses: mindsers/changelog-reader-action@1faaf50aa09d5793d9a100819973df801febfb31 # v2.4.0
id: changelog_reader
with:
version: ${{ github.ref_name }}
- name: Create GitHub release
uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1
uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd # v1.21.0
with:
name: CommaFeed ${{ github.ref_name }}
body: ${{ steps.changelog_reader.outputs.changes }}
@@ -249,12 +255,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Update Docker Hub Description
uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4
uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -274,5 +280,5 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
- uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
id: deployment

View File

@@ -1,78 +0,0 @@
# This workflow uses actions that are not certified by GitHub. They are provided
# by a third-party and are governed by separate terms of service, privacy
# policy, and support documentation.
name: Scorecard supply-chain security
on:
# For Branch-Protection check. Only the default branch is supported. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
branch_protection_rule:
# To guarantee Maintained check is occasionally updated. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: '42 13 * * 4'
push:
branches: [ "master" ]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
# `publish_results: true` only works when run from the default branch. conditional can be removed if disabled.
if: github.event.repository.default_branch == github.ref_name || github.event_name == 'pull_request'
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Needed to publish results and get a badge (see publish_results below).
id-token: write
# Uncomment the permissions below if installing in a private repository.
# contents: read
# actions: read
steps:
- name: "Checkout code"
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2
with:
results_file: results.sarif
results_format: sarif
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecard on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
# Public repositories:
# - Publish results to OpenSSF REST API for easy access by consumers
# - Allows the repository to include the Scorecard badge.
# - See https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories:
# - `publish_results` will always be set to `false`, regardless
# of the value entered here.
publish_results: true
# (Optional) Uncomment file_mode if you have a .gitattributes with files marked export-ignore
# file_mode: git
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: SARIF file
path: results.sarif
retention-days: 5
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@192325c86100d080feab897ff886c34abd4c83a3 # v3
with:
sarif_file: results.sarif

View File

@@ -1,41 +0,0 @@
name: SonarQube
permissions:
contents: read
on:
push:
branches:
- master
pull_request:
types: [ opened, synchronize, reopened ]
env:
JAVA_VERSION: 25
jobs:
build:
runs-on: ubuntu-latest
steps:
# Checkout
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
fetch-depth: 0
# Setup
- name: Set up GraalVM
uses: graalvm/setup-graalvm@aba6a077d71fbfc02138d7470c4ad6e7f85bd2a9 # v1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: "graalvm"
cache: "maven"
- name: Install Playwright dependencies
run: sudo apt-get install -y libgbm1
# Run test coverage and SonarQube analysis
- name: Analyze with SonarQube
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn --batch-mode verify sonar:sonar -Dsonar.projectKey=Athou_commafeed

View File

@@ -1,18 +1,3 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
wrapperVersion=3.3.4
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip

View File

@@ -1,5 +1,72 @@
# Changelog
## [7.2.1]
- correctly handle favicons hosted at the root of the domain for feeds with non-default ports
- prevent XXS injections in third party apps. The CommaFeed React client was already stripping malicious "javascript:" URLs, they are now filtered during feed parsing and no longer stored in the database/served through the REST API.
## [7.2.0]
- Add support for icons declared in feeds. This is useful for feeds exposed by RSS bridges (#2048)
- Search now also works for starred entries (#2217)
- The error message when subscribing to a feed is now properly displayed again
- Small performance improvements to the feed refresh engine
- Removed the Pocket sharing feature because the Pocket service has been discontinued
- Prevent the image proxy feature to access any URL to avoid SSRF attacks
- Strengthened the SSRF protection by also blocking ULA and CGNAT ranges
- Prevent DDOS attacks by filtering OPML files during imports
## [7.1.0]
- Display the unread count in the header on mobile, since the tree is hidden by default and the unread count is not visible otherwise (#2055)
- The feed refresh engine is now a little bit more performant (#2089)
- On shutdown, give the feed refresh engine some time to finish refreshing feeds before killing it. This is controlled by the new `commafeed.shutdown-timeout` setting, which defaults to 2 seconds
## [7.0.0]
- Replaced the JEXL filter expression for marking feed entries as read automatically with a user-friendly visual query builder. Expressions are now evaluated with Common Expression Language, which is safer than JEXL and sanboxed by default.
- Added a per-feed setting for sending push notifications to ntfy, Gotify or Pushover when new feed entries are discovered (#1610)
- Added a per-feed setting for marking entries as read after a number of days (#2041)
- The default value of `commafeed.http-client.block-local-addresses` is now false, allowing users to subscribe to feeds only available on their local network. This may be a security risk (SSRF) if your instance is accessible by untrusted users, so you may want to set it to true if you host a public instance of CommaFeed with user registeration enabled.
- When `commafeed.http-client.block-local-addresses` is enabled, SSRF is now also mitigated by blocking public websites redirecting to local ones.
## [6.2.0]
- Starred entries are no longer deleted after a certain amount of time, they are now kept indefinitely. The new `commafeed.database.cleanup.keep-starred-entries` setting can be disabled to restore the previous behavior if you want to keep deleting starred entries during normal entries cleanup (#1581)
## [6.1.1]
- Fix old starred entries not loading if they were marked as read (#2031)
## [6.1.0]
- When clicking on the password reset link, a random password is no longer generated automatically. The user is now redirected to a page where they can set their own password (#2023)
- Use browser preferred language instead of English when using CommaFeed for the first time (#2018)
- The profile menu is now closed when scrolling the page (#2019)
- The "disable pull to refresh" feature is now disabled by default (#2030)
## [6.0.0]
- When booting CommaFeed for the first time, the default "admin" account is no longer created automatically. A setup wizard will guide you through the creation of an admin account
- Default password complexity requirements have been lowered for local network deployments, where strict password rules are often unnecessary. The `commafeed.users.strict-password-policy` setting has been replaced by `commafeed.users.minimum-password-length` with a default value of `4` (#1916)
- Email addresses are no longer required when creating users and when they update their profile. The `commafeed.users.email-address-required` setting has been added to restore the previous behavior (#1914)
- Java 25+ is now required to build and run CommaFeed
## [5.12.1]
- The favicon is now crispier (#1978)
- The ReadKit iOS app now works via the Fever API (#1602)
## [5.12.0]
- Added a setting to disable the "disable pull to refresh" feature because it messes with some browsers (#1168)
- Emojis in feeds are now correctly displayed (#1955)
- Don't show "Star/Unstar" in the context menu if the entry is too old to be starred (#1935)
- Invalid relative urls in feeds no longer prevent those feeds from being parsed (#1939)
- Fix an issue that could prevent large feeds from being parsed when using Java 24+ (#1961)
- Enforce user password validation when created in the admin view (#1937)
- The process in the docker native image is now called "commafeed" instead of "application"
## [5.11.1]
- The search limit of 3 characters has been removed (#1887)

View File

@@ -17,6 +17,7 @@ Google Reader inspired self-hosted RSS reader, based on Quarkus and React/TypeSc
- REST API
- Fever-compatible API for native mobile apps
- Can automatically mark articles as read based on user-defined rules
- Push notifications when new articles are published
- Highly customizable with [custom CSS](https://athou.github.io/commafeed/documentation/custom-css) and JavaScript
- [Browser extension](https://github.com/Athou/commafeed-browser-extension)
- Compiles to native code for blazing fast startup and low memory usage
@@ -26,11 +27,18 @@ Google Reader inspired self-hosted RSS reader, based on Quarkus and React/TypeSc
- MySQL
- MariaDB
## Deployment
## Usage
### Public instance
A free public instance is available at https://www.commafeed.com.
It has no ads, no tracking, and your data is never exploited or sold to third parties. The service is funded entirely through donations.
However, this public instance does have a few limitations compared to self-hosted setups, outlined [here](https://github.com/Athou/commafeed/discussions/1567).
### Docker
Docker is the easiest way to get started with CommaFeed.
Docker is the easiest way to get started with self-hosted CommaFeed.
Docker images are built automatically and are available at https://hub.docker.com/r/athou/commafeed
@@ -62,8 +70,8 @@ memory usage.
./mvnw clean package [-P<database> [-Pnative]] [-DskipTests]
- `<database>` can be one of `h2`, `postgresql`, `mysql` or `mariadb`. The default is `h2`.
- `-Pnative` compiles the application to native code. This requires GraalVM to be installed (`GRAALVM_HOME` environment
variable pointing to a GraalVM installation).
- `-Pnative` compiles the application to native code. This requires either GraalVM to be installed (`GRAALVM_HOME` environment
variable pointing to a GraalVM installation) or a container environment to be available (docker/podman/...).
- `-DskipTests` to speed up the build process by skipping tests.
When the build is complete:
@@ -103,7 +111,7 @@ There are multiple ways to configure CommaFeed:
- Environment variables (keys in UPPER_CASE)
- a `.env` file in the working directory (keys in UPPER_CASE)
The properties file is recommended because CommaFeed will be able to warn about invalid properties and typos.
When in doubt, the properties file is recommended because CommaFeed will be able to warn about invalid properties and typos.
All [CommaFeed settings](https://athou.github.io/commafeed/documentation) are optional and have sensible default values.
@@ -113,7 +121,6 @@ meaning that you will have to log back in after each restart of the application.
All other Quarkus settings can be found [here](https://quarkus.io/guides/all-config).
When started, the server will listen on http://localhost:8082.
The default user is `admin` and the default password is `admin`.
### Updates

View File

@@ -23,9 +23,6 @@ dist-ssr
*.sln
*.sw?
# rollup-plugin-visualizer
/stats.html
# vite
vite.config.ts.timestamp-*.mjs

View File

@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
"$schema": "https://biomejs.dev/schemas/2.5.6/schema.json",
"formatter": {
"indentStyle": "space",
"indentWidth": 4,

View File

@@ -2,6 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<link rel="manifest" href="manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

View File

@@ -1,4 +1,5 @@
import type { LinguiConfig } from "@lingui/conf"
import { formatter } from "@lingui/format-po"
const config: LinguiConfig = {
locales: [
@@ -38,11 +39,9 @@ const config: LinguiConfig = {
exclude: ["src/locales/**"],
},
],
format: "po",
formatOptions: {
origins: true,
format: formatter({
lineNumbers: false,
},
}),
sourceLocale: "en",
fallbackLocales: {
default: "en",

File diff suppressed because it is too large Load Diff

View File

@@ -15,69 +15,70 @@
"i18n:extract": "lingui extract --clean"
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@fontsource/open-sans": "^5.2.7",
"@lingui/core": "^5.5.0",
"@lingui/react": "^5.5.0",
"@mantine/core": "^8.3.1",
"@mantine/form": "^8.3.1",
"@mantine/hooks": "^8.3.1",
"@mantine/modals": "^8.3.1",
"@mantine/notifications": "^8.3.1",
"@mantine/spotlight": "^8.3.1",
"@monaco-editor/react": "^4.7.0",
"@reduxjs/toolkit": "^2.9.0",
"axios": "^1.12.2",
"dayjs": "^1.11.17",
"escape-string-regexp": "^5.0.0",
"interweave": "^13.1.1",
"monaco-editor": "^0.52.2",
"mousetrap": "^1.6.5",
"react": "^19.1.1",
"react-async-hook": "^4.0.0",
"react-contexify": "^6.0.0",
"react-device-detect": "^2.2.3",
"react-dom": "^19.1.1",
"react-draggable": "^4.5.0",
"react-icons": "^5.5.0",
"react-infinite-scroller": "^1.2.6",
"react-redux": "^9.2.0",
"react-router-dom": "^7.9.1",
"react-swipeable": "^7.0.2",
"style-to-object": "^1.0.9",
"throttle-debounce": "^5.0.2",
"tinycon": "^0.6.8",
"tss-react": "^4.9.19",
"websocket-heartbeat-js": "^1.1.3"
"@emotion/react": "11.14.0",
"@fontsource/open-sans": "5.3.0",
"@lingui/core": "6.6.0",
"@lingui/react": "6.6.0",
"@mantine/core": "9.5.0",
"@mantine/dates": "9.5.0",
"@mantine/form": "9.5.0",
"@mantine/hooks": "9.5.0",
"@mantine/modals": "9.5.0",
"@mantine/notifications": "9.5.0",
"@mantine/spotlight": "9.5.0",
"@monaco-editor/react": "4.7.0",
"@react-querybuilder/mantine": "8.21.2",
"@reduxjs/toolkit": "2.12.0",
"@rolldown/plugin-babel": "0.2.3",
"axios": "1.19.0",
"dayjs": "1.11.21",
"escape-string-regexp": "5.0.0",
"interweave": "13.1.1",
"monaco-editor": "0.56.0",
"mousetrap": "1.6.5",
"react": "19.2.8",
"react-async-hook": "4.0.0",
"react-contexify": "6.0.0",
"react-dom": "19.2.8",
"react-draggable": "4.7.1",
"react-icons": "5.7.0",
"react-infinite-scroller": "1.2.6",
"react-querybuilder": "8.21.2",
"react-redux": "9.3.0",
"react-router-dom": "7.18.2",
"react-swipeable": "7.0.2",
"style-to-object": "2.0.2",
"throttle-debounce": "5.0.2",
"tinycon": "0.6.8",
"tss-react": "4.9.21",
"websocket-heartbeat-js": "1.1.3"
},
"devDependencies": {
"@biomejs/biome": "^2.2.4",
"@lingui/babel-plugin-lingui-macro": "^5.5.0",
"@lingui/cli": "^5.5.0",
"@lingui/vite-plugin": "^5.5.0",
"@testing-library/jest-dom": "^6.8.0",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/mousetrap": "^1.6.15",
"@types/react": "^19.1.13",
"@types/react-dom": "^19.1.9",
"@types/react-infinite-scroller": "^1.2.5",
"@types/throttle-debounce": "^5.0.2",
"@types/tinycon": "^0.6.7",
"@vitejs/plugin-react": "^5.0.3",
"babel-plugin-react-compiler": "^19.1.0-rc.3",
"jsdom": "^27.0.0",
"rollup-plugin-visualizer": "^6.0.3",
"typescript": "^5.9.2",
"vite": "^7.1.6",
"vite-plugin-checker": "^0.10.3",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.2.4",
"yaml": "^2.8.1"
"@biomejs/biome": "2.5.6",
"@lingui/babel-plugin-lingui-macro": "6.6.0",
"@lingui/cli": "6.6.0",
"@lingui/vite-plugin": "6.6.0",
"@testing-library/jest-dom": "7.0.0",
"@testing-library/react": "16.3.2",
"@testing-library/user-event": "14.6.1",
"@types/mousetrap": "1.6.15",
"@types/react": "19.2.18",
"@types/react-dom": "19.2.4",
"@types/react-infinite-scroller": "1.2.5",
"@types/throttle-debounce": "5.0.2",
"@types/tinycon": "0.6.7",
"@vitejs/plugin-react": "6.0.5",
"babel-plugin-react-compiler": "1.0.0",
"jsdom": "30.0.1",
"typescript": "7.0.2",
"vite": "8.2.0",
"vite-plugin-checker": "0.14.5",
"vitest": "4.1.10",
"yaml": "2.9.0"
},
"overrides": {
"react-infinite-scroller": {
"react": "^19.1.1"
"react": "19.2.8"
}
}
}

View File

@@ -6,19 +6,16 @@
<parent>
<groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId>
<version>5.11.1</version>
<version>7.2.1</version>
</parent>
<artifactId>commafeed-client</artifactId>
<name>CommaFeed Client</name>
<properties>
<sonar.sources>package.json,src</sonar.sources>
<sonar.coverage.exclusions>**/*</sonar.coverage.exclusions>
<!-- renovate: datasource=node-version depName=node -->
<node.version>v22.19.0</node.version>
<node.version>v24.18.1</node.version>
<!-- renovate: datasource=npm depName=npm -->
<npm.version>11.6.0</npm.version>
<npm.version>12.0.2</npm.version>
</properties>
<build>
@@ -26,7 +23,7 @@
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.15.1</version>
<version>2.0.2</version>
<?m2e ignore?>
<executions>
<execution>
@@ -75,7 +72,7 @@
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<version>3.5.0</version>
<executions>
<execution>
<id>copy web interface to resources</id>
@@ -97,4 +94,49 @@
</plugin>
</plugins>
</build>
<profiles>
<!-- This profile is used to kill the Biome process on Windows -->
<!-- npm ci can fail if Biome is running (e.g., in the IDE) because it locks some files -->
<profile>
<id>kill-biome</id>
<activation>
<os>
<family>Windows</family>
</os>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.6.3</version>
<executions>
<execution>
<id>kill-biome</id>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>taskkill</executable>
<arguments>
<argument>/F</argument>
<argument>/IM</argument>
<argument>biome.exe</argument>
</arguments>
<successCodes>
<successCode>0</successCode>
<!-- taskkill returns 128 if the process is not found, which is fine in this case -->
<successCode>128</successCode>
</successCodes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="393.84613"
width="393.84613"
viewBox="0 0 5.0480766 5.0480766"
version="1.1"
id="svg3"
xmlns="http://www.w3.org/2000/svg">
<title>CommaFeed favicon</title>
<defs
id="defs3" />
<rect
fill="#f88a14"
rx="0.53846151"
ry="0.53846151"
height="5.0480766"
width="5.0480766"
id="rect1"
x="0"
y="0"
style="stroke-width:0.769231" />
<path
d="m 1.3450904,0.64548657 c 2.9002,0 2.9002,2.91010003 2.9002,2.91010003"
fill="none"
stroke="#ffffff"
stroke-linecap="round"
stroke-width="0.78125"
id="path1" />
<path
d="m 1.3377904,1.9915866 c 1.5705,-0.00908 1.5705,1.5639 1.5705,1.5639"
fill="none"
stroke="#ffffff"
stroke-linecap="round"
stroke-width="0.78125"
id="path2" />
<path
d="m 2.0192904,3.5227866 c 0,0.23366 -0.10712,0.47418 -0.24663,0.6537 -0.1814,0.2333 -0.5705,0.5618 -0.6913,0.5653 0.0402,-0.0662 0.263,-0.5654 0.2563,-0.5654 -0.36423004,0 -0.65950004,-0.29265 -0.65950004,-0.65365 0,-0.361 0.29527,-0.65365 0.65950004,-0.65365 0.36423,0 0.68159,0.29265 0.68159,0.65365 z"
fill="#ffffff"
id="path3" />
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,24 +1,19 @@
import { i18n } from "@lingui/core"
import { I18nProvider } from "@lingui/react"
import { MantineProvider } from "@mantine/core"
import { MantineProvider, v8CssVariablesResolver } from "@mantine/core"
import { ModalsProvider } from "@mantine/modals"
import { Notifications } from "@mantine/notifications"
import type React from "react"
import { useEffect, useState } from "react"
import { isSafari } from "react-device-detect"
import { useEffect } from "react"
import { HashRouter, Navigate, Route, Routes, useNavigate } from "react-router-dom"
import Tinycon from "tinycon"
import { Constants } from "@/app/constants"
import { redirectTo } from "@/app/redirect/slice"
import { redirectToInitialSetup } from "@/app/redirect/thunks"
import { reloadServerInfos } from "@/app/server/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store"
import { categoryUnreadCount } from "@/app/utils"
import { DisablePullToRefresh } from "@/components/DisablePullToRefresh"
import { ErrorBoundary } from "@/components/ErrorBoundary"
import { Header } from "@/components/header/Header"
import { Tree } from "@/components/sidebar/Tree"
import { useAppLoading } from "@/hooks/useAppLoading"
import { useBrowserExtension } from "@/hooks/useBrowserExtension"
import { useI18n } from "@/i18n"
import { AdminUsersPage } from "@/pages/admin/AdminUsersPage"
import { MetricsPage } from "@/pages/admin/MetricsPage"
@@ -31,8 +26,10 @@ import { FeedEntriesPage } from "@/pages/app/FeedEntriesPage"
import Layout from "@/pages/app/Layout"
import { SettingsPage } from "@/pages/app/SettingsPage"
import { TagDetailsPage } from "@/pages/app/TagDetailsPage"
import { InitialSetupPage } from "@/pages/auth/InitialSetupPage"
import { LoginPage } from "@/pages/auth/LoginPage"
import { PasswordRecoveryPage } from "@/pages/auth/PasswordRecoveryPage"
import { PasswordResetPage } from "@/pages/auth/PasswordResetPage"
import { RegistrationPage } from "@/pages/auth/RegistrationPage"
import { WelcomePage } from "@/pages/WelcomePage"
@@ -46,6 +43,8 @@ function Providers(
<I18nProvider i18n={i18n}>
<MantineProvider
defaultColorScheme="auto"
// keep using css variables from mantine v8
cssVariablesResolver={v8CssVariablesResolver}
theme={{
primaryColor: primaryColor,
fontFamily: "Open Sans",
@@ -83,9 +82,11 @@ function AppRoutes() {
<Routes>
<Route path="/" element={<Navigate to={`/app/category/${Constants.categories.all.id}`} replace />} />
<Route path="welcome" element={<WelcomePage />} />
<Route path="setup" element={<InitialSetupPage />} />
<Route path="login" element={<LoginPage />} />
<Route path="register" element={<RegistrationPage />} />
<Route path="passwordRecovery" element={<PasswordRecoveryPage />} />
<Route path="passwordReset" element={<PasswordResetPage />} />
<Route path="app" element={<Layout header={<Header />} sidebar={<Tree />} sidebarVisible={sidebarVisible} />}>
<Route path="category">
<Route path=":id" element={<FeedEntriesPage sourceType="category" />} />
@@ -113,6 +114,18 @@ function AppRoutes() {
)
}
function InitialSetupHandler() {
const serverInfos = useAppSelector(state => state.server.serverInfos)
const dispatch = useAppDispatch()
useEffect(() => {
if (serverInfos?.initialSetupRequired) {
dispatch(redirectToInitialSetup())
}
}, [serverInfos, dispatch])
return null
}
function RedirectHandler() {
const target = useAppSelector(state => state.redirect.to)
const dispatch = useAppDispatch()
@@ -128,78 +141,8 @@ function RedirectHandler() {
return null
}
function UnreadCountTitleHandler({
enabled,
}: Readonly<{
enabled?: boolean
}>) {
const root = useAppSelector(state => state.tree.rootCategory)
const unreadCount = categoryUnreadCount(root)
return <title>{enabled && unreadCount > 0 ? `(${unreadCount}) CommaFeed` : "CommaFeed"}</title>
}
function UnreadCountFaviconHandler({ enabled }: { enabled?: boolean }) {
const root = useAppSelector(state => state.tree.rootCategory)
const unreadCount = categoryUnreadCount(root)
useEffect(() => {
if (enabled && unreadCount > 0) {
Tinycon.setBubble(unreadCount)
} else {
Tinycon.reset()
}
}, [unreadCount, enabled])
return null
}
function BrowserExtensionBadgeUnreadCountHandler() {
const root = useAppSelector(state => state.tree.rootCategory)
const { setBadgeUnreadCount } = useBrowserExtension()
useEffect(() => {
if (!root) return
const unreadCount = categoryUnreadCount(root)
setBadgeUnreadCount(unreadCount)
}, [root, setBadgeUnreadCount])
return null
}
function CustomJsHandler() {
const [scriptLoaded, setScriptLoaded] = useState(false)
const { loading } = useAppLoading()
useEffect(() => {
if (scriptLoaded || loading) {
return
}
const script = document.createElement("script")
script.src = "custom_js.js"
script.async = true
document.body.appendChild(script)
setScriptLoaded(true)
}, [scriptLoaded, loading])
return null
}
function CustomCssHandler() {
useEffect(() => {
const link = document.createElement("link")
link.rel = "stylesheet"
link.type = "text/css"
link.href = "custom_css.css"
document.head.appendChild(link)
}, [])
return null
}
export function App() {
useI18n()
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
const dispatch = useAppDispatch()
useEffect(() => {
@@ -208,19 +151,8 @@ export function App() {
return (
<Providers>
<UnreadCountTitleHandler enabled={unreadCountTitle} />
<UnreadCountFaviconHandler enabled={unreadCountFavicon} />
<BrowserExtensionBadgeUnreadCountHandler />
<CustomJsHandler />
<CustomCssHandler />
{/* disable pull-to-refresh as it messes with vertical scrolling
safari behaves weirdly when overscroll-behavior is set to none so we disable it only for other browsers
https://github.com/Athou/commafeed/issues/1168
*/}
{!isSafari && <DisablePullToRefresh />}
<HashRouter>
<InitialSetupHandler />
<RedirectHandler />
<AppRoutes />
</HashRouter>

View File

@@ -12,12 +12,15 @@ import type {
FeedModificationRequest,
GetEntriesPaginatedRequest,
IDRequest,
InitialSetupRequest,
LoginRequest,
MarkRequest,
Metrics,
MultipleMarkRequest,
PasswordResetConfirmationRequest,
PasswordResetRequest,
ProfileModificationRequest,
PushNotificationSettings,
RegistrationRequest,
ServerInfo,
Settings,
@@ -32,16 +35,17 @@ const axiosInstance = axios.create({ baseURL: "./rest", withCredentials: true })
axiosInstance.interceptors.response.use(
response => response,
error => {
if (isAuthenticationError(error)) {
if (isAuthenticationError(error) && window.location.hash !== "#/login") {
const data = error.response?.data
window.location.hash = data?.allowRegistrations ? "/welcome" : "/login"
window.location.reload()
}
throw error
}
)
function isAuthenticationError(error: unknown): error is AxiosError<AuthenticationError> {
return axios.isAxiosError(error) && !!error.response && [401, 403].includes(error.response.status)
return axios.isAxiosError(error) && error.response?.status === 401
}
export const client = {
@@ -93,9 +97,13 @@ export const client = {
})
},
register: async (req: RegistrationRequest) => await axiosInstance.post("user/register", req),
initialSetup: async (req: InitialSetupRequest) => await axiosInstance.post("user/initialSetup", req),
passwordReset: async (req: PasswordResetRequest) => await axiosInstance.post("user/passwordReset", req),
passwordResetCallback: async (req: PasswordResetConfirmationRequest) => await axiosInstance.post("user/passwordResetCallback", req),
getSettings: async () => await axiosInstance.get<Settings>("user/settings"),
saveSettings: async (settings: Settings) => await axiosInstance.post("user/settings", settings),
sendTestPushNotification: async (settings: PushNotificationSettings) =>
await axiosInstance.post("user/pushNotificationTest", settings),
getProfile: async () => await axiosInstance.get<UserModel>("user/profile"),
saveProfile: async (req: ProfileModificationRequest) => await axiosInstance.post("user/profile", req),
deleteProfile: async () => await axiosInstance.post("user/profile/deleteAccount"),

View File

@@ -1,6 +1,6 @@
import type { IconType } from "react-icons"
import { FaAt } from "react-icons/fa"
import { SiBuffer, SiFacebook, SiGmail, SiInstapaper, SiPocket, SiTumblr, SiX } from "react-icons/si"
import { SiBuffer, SiFacebook, SiGmail, SiInstapaper, SiTumblr, SiX } from "react-icons/si"
import type { Category, Entry, SharingSettings } from "./types"
const categories: Record<string, Omit<Category, "name">> = {
@@ -58,12 +58,6 @@ const sharing: {
color: "#375672",
url: (url, desc) => `https://www.tumblr.com/share/link?url=${url}&name=${desc}`,
},
pocket: {
label: "Pocket",
icon: SiPocket,
color: "#EF4154",
url: (url, desc) => `https://getpocket.com/save?url=${url}&title=${desc}`,
},
instapaper: {
label: "Instapaper",
icon: SiInstapaper,

View File

@@ -40,7 +40,9 @@ export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_,
const state = thunkApi.getState()
const { source } = state.entries
const offset =
state.user.settings?.readingMode === "all" ? state.entries.entries.length : state.entries.entries.filter(e => !e.read).length
state.user.settings?.readingMode === "all" || (source.type === "category" && source.id === "starred")
? state.entries.entries.length
: state.entries.entries.filter(e => !e.read).length
const endpoint = getEndpoint(state.entries.source.type)
const result = await endpoint(buildGetEntriesPaginatedRequest(state, source, offset))
return result.data

View File

@@ -6,6 +6,8 @@ export const redirectToLogin = createAppAsyncThunk("redirect/login", (_, thunkAp
export const redirectToRegistration = createAppAsyncThunk("redirect/register", (_, thunkApi) => thunkApi.dispatch(redirectTo("/register")))
export const redirectToInitialSetup = createAppAsyncThunk("redirect/initialSetup", (_, thunkApi) => thunkApi.dispatch(redirectTo("/setup")))
export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", () => {
window.location.href = "api-documentation/"
})

View File

@@ -1,5 +1,5 @@
import { configureStore } from "@reduxjs/toolkit"
import { type TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"
import { shallowEqual, type TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"
import { entriesSlice } from "@/app/entries/slice"
import { redirectSlice } from "@/app/redirect/slice"
import { serverSlice } from "@/app/server/slice"
@@ -41,3 +41,4 @@ export type AppDispatch = typeof store.dispatch
export const useAppDispatch: () => AppDispatch = useDispatch
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
export const useShallowEqualAppSelector: TypedUseSelectorHook<RootState> = selector => useSelector(selector, shallowEqual)

View File

@@ -27,6 +27,7 @@ const createFeed = (id: number, unread: number): Subscription => ({
feedUrl: "",
feedLink: "",
iconUrl: "",
pushNotificationsEnabled: true,
})
const root = createCategory("root")

View File

@@ -28,6 +28,9 @@ export interface Subscription {
position: number
newestItemTime?: number
filter?: string
filterLegacy?: string
pushNotificationsEnabled: boolean
autoMarkAsReadAfterDays?: number
}
export interface Category {
@@ -109,6 +112,8 @@ export interface FeedModificationRequest {
categoryId?: string
position?: number
filter?: string
pushNotificationsEnabled: boolean
autoMarkAsReadAfterDays?: number
}
export interface GetEntriesRequest {
@@ -196,6 +201,12 @@ export interface PasswordResetRequest {
email: string
}
export interface PasswordResetConfirmationRequest {
email: string
token: string
password: string
}
export interface ProfileModificationRequest {
currentPassword: string
email: string
@@ -209,17 +220,27 @@ export interface RegistrationRequest {
email: string
}
export interface InitialSetupRequest {
name: string
password: string
email?: string
}
export interface ServerInfo {
announcement?: string
version: string
gitCommit: string
allowRegistrations: boolean
emailAddressRequired: boolean
smtpEnabled: boolean
demoAccountEnabled: boolean
websocketEnabled: boolean
websocketPingInterval: number
treeReloadInterval: number
forceRefreshCooldownDuration: number
initialSetupRequired: boolean
minimumPasswordLength: number
pushNotificationsEnabled: boolean
}
export interface SharingSettings {
@@ -228,13 +249,22 @@ export interface SharingSettings {
facebook: boolean
twitter: boolean
tumblr: boolean
pocket: boolean
instapaper: boolean
buffer: boolean
}
export type PushNotificationType = "ntfy" | "gotify" | "pushover"
export interface PushNotificationSettings {
type?: PushNotificationType
serverUrl?: string
userId?: string
userSecret?: string
topic?: string
}
export interface Settings {
language: string
language?: string
readingMode: ReadingMode
readingOrder: ReadingOrder
showRead: boolean
@@ -252,8 +282,10 @@ export interface Settings {
mobileFooter: boolean
unreadCountTitle: boolean
unreadCountFavicon: boolean
disablePullToRefresh: boolean
primaryColor?: string
sharingSettings: SharingSettings
pushNotificationSettings: PushNotificationSettings
}
export interface LocalSettings {

View File

@@ -1,30 +1,8 @@
import { t } from "@lingui/core/macro"
import { showNotification } from "@mantine/notifications"
import { createSlice, isAnyOf, type PayloadAction } from "@reduxjs/toolkit"
import { createSlice, type PayloadAction } from "@reduxjs/toolkit"
import type { LocalSettings, Settings, UserModel, ViewMode } from "@/app/types"
import {
changeCustomContextMenu,
changeEntriesToKeepOnTopWhenScrolling,
changeExternalLinkIconDisplayMode,
changeLanguage,
changeMarkAllAsReadConfirmation,
changeMarkAllAsReadNavigateToUnread,
changeMobileFooter,
changePrimaryColor,
changeReadingMode,
changeReadingOrder,
changeScrollMarks,
changeScrollMode,
changeScrollSpeed,
changeSharingSetting,
changeShowRead,
changeStarIconDisplayMode,
changeUnreadCountFavicon,
changeUnreadCountTitle,
reloadProfile,
reloadSettings,
reloadTags,
} from "./thunks"
import { changeSettings, reloadProfile, reloadSettings, reloadTags } from "./thunks"
interface UserState {
settings?: Settings
@@ -71,104 +49,16 @@ export const userSlice = createSlice({
builder.addCase(reloadTags.fulfilled, (state, action) => {
state.tags = action.payload
})
builder.addCase(changeReadingMode.pending, (state, action) => {
builder.addCase(changeSettings.pending, (state, action) => {
if (!state.settings) return
state.settings.readingMode = action.meta.arg
state.settings = { ...state.settings, ...action.meta.arg }
})
builder.addCase(changeReadingOrder.pending, (state, action) => {
if (!state.settings) return
state.settings.readingOrder = action.meta.arg
builder.addCase(changeSettings.fulfilled, () => {
showNotification({
message: t`Settings saved.`,
color: "green",
})
})
builder.addCase(changeLanguage.pending, (state, action) => {
if (!state.settings) return
state.settings.language = action.meta.arg
})
builder.addCase(changeScrollSpeed.pending, (state, action) => {
if (!state.settings) return
state.settings.scrollSpeed = action.meta.arg ? 400 : 0
})
builder.addCase(changeShowRead.pending, (state, action) => {
if (!state.settings) return
state.settings.showRead = action.meta.arg
})
builder.addCase(changeScrollMarks.pending, (state, action) => {
if (!state.settings) return
state.settings.scrollMarks = action.meta.arg
})
builder.addCase(changeScrollMode.pending, (state, action) => {
if (!state.settings) return
state.settings.scrollMode = action.meta.arg
})
builder.addCase(changeEntriesToKeepOnTopWhenScrolling.pending, (state, action) => {
if (!state.settings) return
state.settings.entriesToKeepOnTopWhenScrolling = 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
state.settings.markAllAsReadConfirmation = action.meta.arg
})
builder.addCase(changeMarkAllAsReadNavigateToUnread.pending, (state, action) => {
if (!state.settings) return
state.settings.markAllAsReadNavigateToNextUnread = action.meta.arg
})
builder.addCase(changeCustomContextMenu.pending, (state, action) => {
if (!state.settings) return
state.settings.customContextMenu = action.meta.arg
})
builder.addCase(changeMobileFooter.pending, (state, action) => {
if (!state.settings) return
state.settings.mobileFooter = action.meta.arg
})
builder.addCase(changeUnreadCountTitle.pending, (state, action) => {
if (!state.settings) return
state.settings.unreadCountTitle = action.meta.arg
})
builder.addCase(changeUnreadCountFavicon.pending, (state, action) => {
if (!state.settings) return
state.settings.unreadCountFavicon = action.meta.arg
})
builder.addCase(changePrimaryColor.pending, (state, action) => {
if (!state.settings) return
state.settings.primaryColor = action.meta.arg
})
builder.addCase(changeSharingSetting.pending, (state, action) => {
if (!state.settings) return
state.settings.sharingSettings[action.meta.arg.site] = action.meta.arg.value
})
builder.addMatcher(
isAnyOf(
changeLanguage.fulfilled,
changeScrollSpeed.fulfilled,
changeShowRead.fulfilled,
changeScrollMarks.fulfilled,
changeScrollMode.fulfilled,
changeEntriesToKeepOnTopWhenScrolling.fulfilled,
changeStarIconDisplayMode.fulfilled,
changeExternalLinkIconDisplayMode.fulfilled,
changeMarkAllAsReadConfirmation.fulfilled,
changeMarkAllAsReadNavigateToUnread.fulfilled,
changeCustomContextMenu.fulfilled,
changeMobileFooter.fulfilled,
changeUnreadCountTitle.fulfilled,
changeUnreadCountFavicon.fulfilled,
changePrimaryColor.fulfilled,
changeSharingSetting.fulfilled
),
() => {
showNotification({
message: t`Settings saved.`,
color: "green",
})
}
)
},
})

View File

@@ -1,7 +1,6 @@
import { createAppAsyncThunk } from "@/app/async-thunk"
import { client } from "@/app/client"
import { reloadEntries } from "@/app/entries/thunks"
import type { IconDisplayMode, ReadingMode, ReadingOrder, ScrollMode, SharingSettings } from "@/app/types"
import type { Settings } from "@/app/types"
export const reloadSettings = createAppAsyncThunk("settings/reload", async () => await client.user.getSettings().then(r => r.data))
@@ -9,142 +8,8 @@ export const reloadProfile = createAppAsyncThunk("profile/reload", async () => a
export const reloadTags = createAppAsyncThunk("entries/tags", async () => await client.entry.getTags().then(r => r.data))
export const changeReadingMode = createAppAsyncThunk("settings/readingMode", (readingMode: ReadingMode, thunkApi) => {
export const changeSettings = createAppAsyncThunk("settings/change", async (newSettings: Partial<Settings>, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, readingMode })
thunkApi.dispatch(reloadEntries())
await client.user.saveSettings({ ...settings, ...newSettings })
})
export const changeReadingOrder = createAppAsyncThunk("settings/readingOrder", (readingOrder: ReadingOrder, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, readingOrder })
thunkApi.dispatch(reloadEntries())
})
export const changeLanguage = createAppAsyncThunk("settings/language", (language: string, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, language })
})
export const changeScrollSpeed = createAppAsyncThunk("settings/scrollSpeed", (speed: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, scrollSpeed: speed ? 400 : 0 })
})
export const changeShowRead = createAppAsyncThunk("settings/showRead", (showRead: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, showRead })
})
export const changeScrollMarks = createAppAsyncThunk("settings/scrollMarks", (scrollMarks: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, scrollMarks })
})
export const changeScrollMode = createAppAsyncThunk("settings/scrollMode", (scrollMode: ScrollMode, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, scrollMode })
})
export const changeEntriesToKeepOnTopWhenScrolling = createAppAsyncThunk(
"settings/entriesToKeepOnTopWhenScrolling",
(entriesToKeepOnTopWhenScrolling: number, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, entriesToKeepOnTopWhenScrolling })
}
)
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) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, markAllAsReadConfirmation })
}
)
export const changeMarkAllAsReadNavigateToUnread = createAppAsyncThunk(
"settings/markAllAsReadNavigateToUnread",
(markAllAsReadNavigateToNextUnread: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, markAllAsReadNavigateToNextUnread })
}
)
export const changeCustomContextMenu = createAppAsyncThunk("settings/customContextMenu", (customContextMenu: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, customContextMenu })
})
export const changeMobileFooter = createAppAsyncThunk("settings/mobileFooter", (mobileFooter: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, mobileFooter })
})
export const changeUnreadCountTitle = createAppAsyncThunk("settings/unreadCountTitle", (unreadCountTitle: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, unreadCountTitle })
})
export const changeUnreadCountFavicon = createAppAsyncThunk("settings/unreadCountFavicon", (unreadCountFavicon: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, unreadCountFavicon })
})
export const changePrimaryColor = createAppAsyncThunk("settings/primaryColor", (primaryColor: string, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, primaryColor })
})
export const changeSharingSetting = createAppAsyncThunk(
"settings/sharingSetting",
(
sharingSetting: {
site: keyof SharingSettings
value: boolean
},
thunkApi
) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({
...settings,
sharingSettings: {
...settings.sharingSettings,
[sharingSetting.site]: sharingSetting.value,
},
})
}
)

View File

@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg height="512" width="512" viewBox="0 0 6.5625 6.5625" xmlns="http://www.w3.org/2000/svg">
<title>CommaFeed logo</title>
<rect fill="#f88a14" rx="0.7" ry="0.7" height="6.5625" width="6.5625" />
<path d="m1.9761,1.5289c2.9002,0,2.9002,2.9101,2.9002,2.9101" fill="none" stroke="#FFF" stroke-linecap="round"
stroke-width="0.78125" />
stroke-width="0.78125" />
<path d="m1.9688,2.875c1.5705-0.00908,1.5705,1.5639,1.5705,1.5639" fill="none" stroke="#FFF" stroke-linecap="round"
stroke-width="0.78125" />
stroke-width="0.78125" />
<path d="m2.6503,4.4062c0,0.23366-0.10712,0.47418-0.24663,0.6537-0.1814,0.2333-0.5705,0.5618-0.6913,0.5653,0.0402-0.0662,0.263-0.5654,0.2563-0.5654-0.36423,0-0.6595-0.29265-0.6595-0.65365s0.29527-0.65365,0.6595-0.65365,0.68159,0.29265,0.68159,0.65365z"
fill="#FFF" />
fill="#FFF" />
</svg>

Before

Width:  |  Height:  |  Size: 791 B

After

Width:  |  Height:  |  Size: 831 B

View File

@@ -1,7 +1,6 @@
import type { MessageDescriptor } from "@lingui/core"
import { useLingui } from "@lingui/react"
import { ActionIcon, Box, Button, type ButtonVariant, Tooltip, useMantineTheme } from "@mantine/core"
import type { ActionIconVariant } from "@mantine/core/lib/components/ActionIcon/ActionIcon"
import { ActionIcon, type ActionIconVariant, Box, Button, type ButtonVariant, Tooltip, useMantineTheme } from "@mantine/core"
import { forwardRef, type MouseEventHandler, type ReactNode } from "react"
import { Constants } from "@/app/constants"
import { useActionButton } from "@/hooks/useActionButton"

View File

@@ -1,4 +0,0 @@
html,
body {
overscroll-behavior: none;
}

View File

@@ -1,4 +1,3 @@
export const DisablePullToRefresh = () => {
import("./DisablePullToRefresh.css")
return null
export const DisablePullToRefresh = ({ enabled }: { enabled: boolean | undefined }) => {
return enabled ? <style>{`html, body { overscroll-behavior: none; }`}</style> : null
}

View File

@@ -14,6 +14,7 @@ interface ImageWithPlaceholderWhileLoadingProps {
placeholderHeight?: number
placeholderBackgroundColor?: string
placeholderIconSize?: number
onError?: (e: React.SyntheticEvent<HTMLImageElement, Event>) => void
}
const useStyles = tss
@@ -44,6 +45,7 @@ export function ImageWithPlaceholderWhileLoading({
title,
width,
style,
onError,
}: Readonly<ImageWithPlaceholderWhileLoadingProps>) {
const { classes } = useStyles({
placeholderWidth,
@@ -70,6 +72,7 @@ export function ImageWithPlaceholderWhileLoading({
width={width}
height={height}
onLoad={() => setLoading(false)}
onError={onError}
style={{
...style,
display: loading ? "none" : (style?.display ?? "initial"),

View File

@@ -0,0 +1,19 @@
import { Trans } from "@lingui/react/macro"
import { Checkbox, type CheckboxProps } from "@mantine/core"
import type { ReactNode } from "react"
import { useAppSelector } from "@/app/store"
export const ReceivePushNotificationsChechbox = (props: CheckboxProps) => {
const pushNotificationsEnabled = useAppSelector(state => state.server.serverInfos?.pushNotificationsEnabled)
const pushNotificationsConfigured = useAppSelector(state => !!state.user.settings?.pushNotificationSettings.type)
const disabled = !pushNotificationsEnabled || !pushNotificationsConfigured
let description: ReactNode = ""
if (!pushNotificationsEnabled) {
description = <Trans>Push notifications are not enabled on this CommaFeed instance.</Trans>
} else if (!pushNotificationsConfigured) {
description = <Trans>Push notifications are not configured in your user settings.</Trans>
}
return <Checkbox label={<Trans>Receive push notifications</Trans>} disabled={disabled} description={description} {...props} />
}

View File

@@ -7,11 +7,11 @@ const init = async () => {
async getWorker(_, label) {
let worker: typeof import("*?worker")
if (label === "css") {
worker = await import("monaco-editor/esm/vs/language/css/css.worker?worker")
worker = await import("monaco-editor/language/css/css.worker?worker")
} else if (label === "javascript") {
worker = await import("monaco-editor/esm/vs/language/typescript/ts.worker?worker")
worker = await import("monaco-editor/language/typescript/ts.worker?worker")
} else {
worker = await import("monaco-editor/esm/vs/editor/editor.worker?worker")
worker = await import("monaco-editor/editor/editor.worker?worker")
}
return new worker.default()
},

View File

@@ -145,6 +145,7 @@ export function FeedEntry(props: Readonly<FeedEntryProps>) {
component="article"
id={Constants.dom.entryId(props.entry)}
data-id={props.entry.id}
data-feed-id={props.entry.feedId}
withBorder
radius={borderRadius}
className={cx(classes.paper, {

View File

@@ -61,19 +61,21 @@ export function FeedEntryContextMenu(props: Readonly<FeedEntryContextMenuProps>)
<Separator />
<Item onClick={async () => await dispatch(starEntry({ entry: props.entry, starred: !props.entry.starred }))}>
<Group>
{props.entry.starred ? <TbStarOff size={iconSize} /> : <TbStar size={iconSize} />}
{props.entry.starred ? <Trans>Unstar</Trans> : <Trans>Star</Trans>}
</Group>
</Item>
{props.entry.markable && (
<Item onClick={async () => await dispatch(markEntry({ entry: props.entry, read: !props.entry.read }))}>
<Group>
{props.entry.read ? <TbMail size={iconSize} /> : <TbMailOpened size={iconSize} />}
{props.entry.read ? <Trans>Keep unread</Trans> : <Trans>Mark as read</Trans>}
</Group>
</Item>
<>
<Item onClick={async () => await dispatch(starEntry({ entry: props.entry, starred: !props.entry.starred }))}>
<Group>
{props.entry.starred ? <TbStarOff size={iconSize} /> : <TbStar size={iconSize} />}
{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 ? <TbMail size={iconSize} /> : <TbMailOpened 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>

View File

@@ -1,3 +1,5 @@
import { useTimeout } from "@mantine/hooks"
import { useState } from "react"
import { ImageWithPlaceholderWhileLoading } from "@/components/ImageWithPlaceholderWhileLoading"
export interface FeedFaviconProps {
@@ -6,9 +8,23 @@ export interface FeedFaviconProps {
}
export function FeedFavicon({ url, size = 18 }: Readonly<FeedFaviconProps>) {
// the backend always returns a favicon except when the feed has never been fetched
// this can happen when the user subscribes to a feed, the feed is added to the tree but the feed has not been fetched yet
// in this case we retry every second up to 3 times until the feed is fetched and the favicon is available
const [timestamp, setTimestamp] = useState(0)
const [retryCount, setRetryCount] = useState(0)
const { start: retry } = useTimeout(() => setTimestamp(Date.now()), 1000)
const urlWithTimestamp = url + (timestamp === 0 ? "" : `?t=${timestamp}`)
const handleError = () => {
if (retryCount < 3) {
setRetryCount(c => c + 1)
retry()
}
}
return (
<ImageWithPlaceholderWhileLoading
src={url}
src={urlWithTimestamp}
alt="feed favicon"
width={size}
height={size}
@@ -16,6 +32,7 @@ export function FeedFavicon({ url, size = 18 }: Readonly<FeedFaviconProps>) {
placeholderHeight={size}
placeholderBackgroundColor="inherit"
placeholderIconSize={size}
onError={handleError}
/>
)
}

View File

@@ -1,7 +1,6 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Select, type SelectProps } from "@mantine/core"
import type { ComboboxItem } from "@mantine/core/lib/components/Combobox/Combobox.types"
import { type ComboboxItem, Select, type SelectProps } from "@mantine/core"
import { Constants } from "@/app/constants"
import { useAppSelector } from "@/app/store"
import type { Category } from "@/app/types"

View File

@@ -0,0 +1,118 @@
import { Stack } from "@mantine/core"
import { MantineValueSelector, QueryBuilderMantine } from "@react-querybuilder/mantine"
import {
type CombinatorSelectorProps,
defaultOperators,
defaultRuleProcessorCEL,
type Field,
type FormatQueryOptions,
formatQuery,
QueryBuilder,
type RuleGroupType,
} from "react-querybuilder"
import { isCELIdentifier, isCELMember, isCELStringLiteral, parseCEL } from "react-querybuilder/parseCEL"
import "react-querybuilder/dist/query-builder.css"
const fields: Field[] = [
{ name: "title", label: "Title" },
{ name: "content", label: "Content" },
{ name: "url", label: "URL" },
{ name: "author", label: "Author" },
{ name: "categories", label: "Categories" },
{ name: "titleLower", label: "Title (lower case)" },
{ name: "contentLower", label: "Content (lower case)" },
{ name: "urlLower", label: "URL (lower case)" },
{ name: "authorLower", label: "Author (lower case)" },
{ name: "categoriesLower", label: "Categories (lower case)" },
]
const textOperators = new Set(["=", "!=", "contains", "beginsWith", "endsWith", "doesNotContain", "doesNotBeginWith", "doesNotEndWith"])
function toCelString(query: RuleGroupType): string {
if (query.rules.length === 0) {
return ""
}
const celFormatOptions: FormatQueryOptions = {
format: "cel",
ruleProcessor: (rule, options, meta) => {
if (rule.operator === "matches") {
const escapedValue = String(rule.value).replaceAll("\\", "\\\\").replaceAll('"', String.raw`\"`)
return `${rule.field}.matches("${escapedValue}")`
}
return defaultRuleProcessorCEL(rule, options, meta)
},
}
return formatQuery(query, celFormatOptions)
}
function fromCelString(celString: string): RuleGroupType {
return parseCEL(celString ?? "", {
customExpressionHandler: expr => {
if (
isCELMember(expr) &&
expr.right?.value === "matches" &&
expr.left &&
isCELIdentifier(expr.left) &&
expr.list &&
isCELStringLiteral(expr.list.value[0])
) {
return {
field: expr.left.value,
operator: "matches",
value: JSON.parse(expr.list.value[0].value),
}
}
return null
},
})
}
const getOperators = () => {
const filteredDefault = defaultOperators.filter(op => textOperators.has(op.name))
return [
...filteredDefault,
{
name: "matches",
label: "matches pattern",
},
]
}
function CombinatorSelector(props: Readonly<CombinatorSelectorProps>) {
if (props.rules.length === 0) {
return null
}
return <MantineValueSelector {...props} />
}
interface FilteringExpressionEditorProps {
initialValue: string | undefined
onChange: (value: string) => void
}
export function FilteringExpressionEditor({ initialValue, onChange }: Readonly<FilteringExpressionEditorProps>) {
const handleQueryChange = (newQuery: RuleGroupType) => {
onChange(toCelString(newQuery))
}
return (
<Stack gap="sm">
<QueryBuilderMantine>
<QueryBuilder
fields={fields}
defaultQuery={fromCelString(initialValue ?? "")}
onQueryChange={handleQueryChange}
getOperators={getOperators}
addRuleToNewGroups
resetOnFieldChange={false}
controlClassnames={{ queryBuilder: "queryBuilder-branches" }}
controlElements={{ combinatorSelector: CombinatorSelector }}
/>
</QueryBuilderMantine>
</Stack>
)
}

View File

@@ -1,20 +1,30 @@
import { Highlight } from "@mantine/core"
import { useAppSelector } from "@/app/store"
import type { Entry } from "@/app/types"
import { tss } from "@/tss"
export interface FeedEntryTitleProps {
entry: Entry
}
const useStyles = tss.create(() => ({
content: {
textWrap: "inherit",
},
}))
export function FeedEntryTitle(props: Readonly<FeedEntryTitleProps>) {
const search = useAppSelector(state => state.entries.search)
const keywords = search?.split(" ")
const { classes } = useStyles()
return (
<Highlight
inherit
highlight={keywords ?? ""}
// make sure ellipsis is shown when title is too long
span
className={classes.content}
>
{props.entry.title}
</Highlight>

View File

@@ -19,7 +19,7 @@ import {
} from "react-icons/tb"
import { markAllAsReadWithConfirmationIfRequired, reloadEntries, search, selectNextEntry, selectPreviousEntry } from "@/app/entries/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store"
import { changeReadingMode, changeReadingOrder } from "@/app/user/thunks"
import { changeSettings } from "@/app/user/thunks"
import { ActionButton } from "@/components/ActionButton"
import { Loader } from "@/components/Loader"
import { useActionButton } from "@/hooks/useActionButton"
@@ -73,6 +73,25 @@ export function Header() {
}, [setValues, searchFromStore])
if (!settings) return <Loader />
const toggleReadingMode = async () => {
await dispatch(
changeSettings({
readingMode: settings.readingMode === "all" ? "unread" : "all",
})
)
dispatch(reloadEntries())
}
const toggleReadingOrder = async () => {
await dispatch(
changeSettings({
readingOrder: settings.readingOrder === "asc" ? "desc" : "asc",
})
)
dispatch(reloadEntries())
}
return (
<Center className="cf-toolbar-wrapper">
<HeaderToolbar>
@@ -121,12 +140,12 @@ export function Header() {
<ActionButton
icon={settings.readingMode === "all" ? <TbEye size={iconSize} /> : <TbEyeOff size={iconSize} />}
label={settings.readingMode === "all" ? msg`All` : msg`Unread`}
onClick={async () => await dispatch(changeReadingMode(settings.readingMode === "all" ? "unread" : "all"))}
onClick={toggleReadingMode}
/>
<ActionButton
icon={settings.readingOrder === "asc" ? <TbSortAscending size={iconSize} /> : <TbSortDescending size={iconSize} />}
label={settings.readingOrder === "asc" ? msg`Asc` : msg`Desc`}
onClick={async () => await dispatch(changeReadingOrder(settings.readingOrder === "asc" ? "desc" : "asc"))}
onClick={toggleReadingOrder}
/>
<Popover>

View File

@@ -12,7 +12,7 @@ import {
} from "@mantine/core"
import { showNotification } from "@mantine/notifications"
import dayjs from "dayjs"
import { type ReactNode, useState } from "react"
import { type ReactNode, useEffect, useState } from "react"
import {
TbChartLine,
TbHeartFilled,
@@ -29,6 +29,7 @@ import {
TbUsers,
TbWorldDownload,
} from "react-icons/tb"
import { throttle } from "throttle-debounce"
import { client } from "@/app/client"
import { redirectToAbout, redirectToAdminUsers, redirectToDonate, redirectToMetrics, redirectToSettings } from "@/app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store"
@@ -96,6 +97,14 @@ const viewModeData: ViewModeControlItem[] = [
export function ProfileMenu(props: Readonly<ProfileMenuProps>) {
const [opened, setOpened] = useState(false)
// close profile menu on scroll
useEffect(() => {
const listener = throttle(100, () => setOpened(false))
window.addEventListener("scroll", listener)
return () => window.removeEventListener("scroll", listener)
}, [])
const now = useNow()
const profile = useAppSelector(state => state.user.profile)
const admin = useAppSelector(state => state.user.profile?.admin)

View File

@@ -1,49 +1,29 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Box, Divider, Group, NumberInput, Radio, Select, type SelectProps, SimpleGrid, Stack, Switch } from "@mantine/core"
import type { ComboboxData } from "@mantine/core/lib/components/Combobox/Combobox.types"
import {
Box,
type ComboboxData,
Divider,
Group,
Loader,
NumberInput,
Radio,
Select,
type SelectProps,
SimpleGrid,
Stack,
Switch,
} from "@mantine/core"
import type { ReactNode } from "react"
import { Constants } from "@/app/constants"
import { useAppDispatch, useAppSelector } from "@/app/store"
import type { IconDisplayMode, ScrollMode, SharingSettings } from "@/app/types"
import {
changeCustomContextMenu,
changeEntriesToKeepOnTopWhenScrolling,
changeExternalLinkIconDisplayMode,
changeLanguage,
changeMarkAllAsReadConfirmation,
changeMarkAllAsReadNavigateToUnread,
changeMobileFooter,
changePrimaryColor,
changeScrollMarks,
changeScrollMode,
changeScrollSpeed,
changeSharingSetting,
changeShowRead,
changeStarIconDisplayMode,
changeUnreadCountFavicon,
changeUnreadCountTitle,
} from "@/app/user/thunks"
import { changeSettings } from "@/app/user/thunks"
import { locales } from "@/i18n"
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 scrollMode = useAppSelector(state => state.user.settings?.scrollMode)
const entriesToKeepOnTop = useAppSelector(state => state.user.settings?.entriesToKeepOnTopWhenScrolling)
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 markAllAsReadNavigateToNextUnread = useAppSelector(state => state.user.settings?.markAllAsReadNavigateToNextUnread)
const customContextMenu = useAppSelector(state => state.user.settings?.customContextMenu)
const mobileFooter = useAppSelector(state => state.user.settings?.mobileFooter)
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings)
const primaryColor = useAppSelector(state => state.user.settings?.primaryColor) || Constants.theme.defaultPrimaryColor
const settings = useAppSelector(state => state.user.settings)
const { _ } = useLingui()
const dispatch = useAppDispatch()
@@ -95,94 +75,66 @@ export function DisplaySettings() {
</Group>
)
if (!settings) return <Loader />
return (
<Stack>
<Divider label={<Trans>Display</Trans>} labelPosition="center" />
<Select
label={<Trans>Language</Trans>}
value={language}
value={settings.language}
data={locales.map(l => ({
value: l.key,
label: l.label,
}))}
onChange={async s => await (s && dispatch(changeLanguage(s)))}
onChange={language => language && dispatch(changeSettings({ language }))}
/>
<Select
label={<Trans>Primary color</Trans>}
data={colorData}
value={primaryColor}
onChange={async value => value && (await dispatch(changePrimaryColor(value)))}
value={settings.primaryColor}
onChange={primaryColor => primaryColor && dispatch(changeSettings({ primaryColor }))}
renderOption={colorRenderer}
/>
<Switch
label={<Trans>Show feeds and categories with no unread entries</Trans>}
checked={showRead}
onChange={async e => await dispatch(changeShowRead(e.currentTarget.checked))}
checked={settings.showRead}
onChange={e => dispatch(changeSettings({ showRead: 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))}
checked={settings.markAllAsReadConfirmation}
onChange={e => dispatch(changeSettings({ markAllAsReadConfirmation: e.currentTarget.checked }))}
/>
<Switch
label={<Trans>Navigate to the next category/feed with unread entries when marking all entries as read</Trans>}
checked={markAllAsReadNavigateToNextUnread}
onChange={async e => await dispatch(changeMarkAllAsReadNavigateToUnread(e.currentTarget.checked))}
checked={settings.markAllAsReadNavigateToNextUnread}
onChange={e => dispatch(changeSettings({ markAllAsReadNavigateToNextUnread: 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>Browser tab</Trans>} labelPosition="center" />
<Switch
label={<Trans>Show unread count in tab title</Trans>}
checked={unreadCountTitle}
onChange={async e => await dispatch(changeUnreadCountTitle(e.currentTarget.checked))}
/>
<Switch
label={<Trans>Show unread count in tab favicon</Trans>}
checked={unreadCountFavicon}
onChange={async e => await dispatch(changeUnreadCountFavicon(e.currentTarget.checked))}
/>
<Divider label={<Trans>Entry headers</Trans>} labelPosition="center" />
<Select
label={<Trans>Show star icon</Trans>}
value={starIconDisplayMode}
data={displayModeData}
onChange={async s => await dispatch(changeStarIconDisplayMode(s as IconDisplayMode))}
/>
<Select
label={<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))}
checked={settings.mobileFooter}
onChange={e => dispatch(changeSettings({ mobileFooter: e.currentTarget.checked }))}
/>
<Divider label={<Trans>Scrolling</Trans>} labelPosition="center" />
<Switch
label={<Trans>Disable "Pull to refresh" browser behavior</Trans>}
description={<Trans>This setting can cause scrolling issues on some browsers (e.g. Safari)</Trans>}
checked={settings.disablePullToRefresh}
onChange={e => dispatch(changeSettings({ disablePullToRefresh: e.currentTarget.checked }))}
/>
<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))}
value={settings.scrollMode}
onChange={value => dispatch(changeSettings({ scrollMode: value }))}
>
<Group mt="xs">
{Object.entries(scrollModeOptions).map(e => (
@@ -195,20 +147,56 @@ export function DisplaySettings() {
label={<Trans>Entries to keep above the selected entry when scrolling</Trans>}
description={<Trans>Only applies to compact, cozy and detailed modes</Trans>}
min={0}
value={entriesToKeepOnTop}
onChange={async value => await dispatch(changeEntriesToKeepOnTopWhenScrolling(+value))}
value={settings.entriesToKeepOnTopWhenScrolling}
onChange={value => dispatch(changeSettings({ entriesToKeepOnTopWhenScrolling: +value }))}
/>
<Switch
label={<Trans>Scroll smoothly when navigating between entries</Trans>}
checked={scrollSpeed ? scrollSpeed > 0 : false}
onChange={async e => await dispatch(changeScrollSpeed(e.currentTarget.checked))}
checked={settings.scrollSpeed ? settings.scrollSpeed > 0 : false}
onChange={e => dispatch(changeSettings({ scrollSpeed: e.currentTarget.checked ? 400 : 0 }))}
/>
<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))}
checked={settings.scrollMarks}
onChange={e => dispatch(changeSettings({ scrollMarks: e.currentTarget.checked }))}
/>
<Divider label={<Trans>Browser tab</Trans>} labelPosition="center" />
<Switch
label={<Trans>Show unread count in tab title</Trans>}
checked={settings.unreadCountTitle}
onChange={e => dispatch(changeSettings({ unreadCountTitle: e.currentTarget.checked }))}
/>
<Switch
label={<Trans>Show unread count in tab favicon</Trans>}
checked={settings.unreadCountFavicon}
onChange={e => dispatch(changeSettings({ unreadCountFavicon: e.currentTarget.checked }))}
/>
<Divider label={<Trans>Entry headers</Trans>} labelPosition="center" />
<Select
label={<Trans>Show star icon</Trans>}
value={settings.starIconDisplayMode}
data={displayModeData}
onChange={value => dispatch(changeSettings({ starIconDisplayMode: value as IconDisplayMode }))}
/>
<Select
label={<Trans>Show external link icon</Trans>}
value={settings.externalLinkIconDisplayMode}
data={displayModeData}
onChange={value => dispatch(changeSettings({ externalLinkIconDisplayMode: value as IconDisplayMode }))}
/>
<Switch
label={<Trans>Show CommaFeed's own context menu on right click</Trans>}
checked={settings.customContextMenu}
onChange={e => dispatch(changeSettings({ customContextMenu: e.currentTarget.checked }))}
/>
<Divider label={<Trans>Sharing sites</Trans>} labelPosition="center" />
@@ -218,12 +206,14 @@ export function DisplaySettings() {
<Switch
key={site}
label={Constants.sharing[site].label}
checked={sharingSettings?.[site]}
onChange={async e =>
await dispatch(
changeSharingSetting({
site,
value: e.currentTarget.checked,
checked={settings.sharingSettings[site]}
onChange={e =>
dispatch(
changeSettings({
sharingSettings: {
...settings.sharingSettings,
[site]: e.currentTarget.checked,
},
})
)
}

View File

@@ -1,4 +1,3 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Anchor, Box, Button, Checkbox, Divider, Group, Input, PasswordInput, Stack, Text, TextInput } from "@mantine/core"
@@ -13,6 +12,7 @@ import { useAppDispatch, useAppSelector } from "@/app/store"
import type { ProfileModificationRequest } from "@/app/types"
import { reloadProfile } from "@/app/user/thunks"
import { Alert } from "@/components/Alert"
import { useValidationRules } from "@/hooks/useValidationRules"
interface FormData extends ProfileModificationRequest {
newPasswordConfirmation?: string
@@ -20,13 +20,17 @@ interface FormData extends ProfileModificationRequest {
export function ProfileSettings() {
const profile = useAppSelector(state => state.user.profile)
const serverInfos = useAppSelector(state => state.server.serverInfos)
const dispatch = useAppDispatch()
const { _ } = useLingui()
const validationRules = useValidationRules()
const form = useForm<FormData>({
validate: {
newPasswordConfirmation: (value, values) => (value !== values.newPassword ? _(msg`Passwords do not match`) : null),
newPassword: validationRules.password,
newPasswordConfirmation: (value, values) => validationRules.passwordConfirmation(value, values.newPassword),
},
validateInputOnChange: true,
})
const { setValues } = form
@@ -134,7 +138,12 @@ export function ProfileSettings() {
required
{...form.getInputProps("currentPassword")}
/>
<TextInput type="email" label={<Trans>E-mail</Trans>} {...form.getInputProps("email")} required />
<TextInput
type="email"
label={<Trans>E-mail</Trans>}
{...form.getInputProps("email")}
required={serverInfos?.emailAddressRequired}
/>
<PasswordInput
label={<Trans>New password</Trans>}
description={<Trans>Changing password will generate a new API key</Trans>}

View File

@@ -0,0 +1,124 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Button, Divider, Group, Select, Stack, TextInput } from "@mantine/core"
import { useForm } from "@mantine/form"
import { useEffect } from "react"
import { useAsyncCallback } from "react-async-hook"
import { TbDeviceFloppy, TbSend } from "react-icons/tb"
import { client, errorToStrings } from "@/app/client"
import { redirectToSelectedSource } from "@/app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store"
import type { PushNotificationSettings as PushNotificationSettingsModel } from "@/app/types"
import { changeSettings } from "@/app/user/thunks"
import { Alert } from "@/components/Alert"
export function PushNotificationSettings() {
const notificationSettings = useAppSelector(state => state.user.settings?.pushNotificationSettings)
const pushNotificationsEnabled = useAppSelector(state => state.server.serverInfos?.pushNotificationsEnabled)
const { _ } = useLingui()
const dispatch = useAppDispatch()
const form = useForm<PushNotificationSettingsModel>()
useEffect(() => {
if (notificationSettings) form.initialize(notificationSettings)
}, [form.initialize, notificationSettings])
const handleSubmit = (values: PushNotificationSettingsModel) => {
dispatch(changeSettings({ pushNotificationSettings: values }))
}
const sendTestPushNotification = useAsyncCallback(client.user.sendTestPushNotification)
const typeInputProps = form.getInputProps("type")
if (!pushNotificationsEnabled) {
return <Trans>Push notifications are not enabled on this CommaFeed instance.</Trans>
}
return (
<form onSubmit={form.onSubmit(handleSubmit)}>
<Stack>
{sendTestPushNotification.status === "success" && (
<Alert level="success" messages={[_(msg`Test notification sent successfully.`)]} />
)}
{sendTestPushNotification.status === "error" && (
<Alert level="error" messages={errorToStrings(sendTestPushNotification.error)} />
)}
<Select
label={<Trans>Push notification service</Trans>}
description={
<Trans>
Receive push notifications when new feed entries are discovered. Enable "Receive push notifications" in the
settings of each feed for which you want to receive notifications.
</Trans>
}
data={[
{ value: "ntfy", label: "ntfy" },
{ value: "gotify", label: "Gotify" },
{ value: "pushover", label: "Pushover" },
]}
clearable
{...typeInputProps}
onChange={value => {
typeInputProps.onChange(value)
form.setFieldValue("serverUrl", "")
form.setFieldValue("topic", "")
form.setFieldValue("userSecret", "")
form.setFieldValue("userId", "")
}}
/>
{form.values.type === "ntfy" && (
<>
<TextInput
label={<Trans>Server URL</Trans>}
placeholder="https://ntfy.sh"
required
{...form.getInputProps("serverUrl")}
/>
<TextInput label={<Trans>Topic</Trans>} placeholder="commafeed" required {...form.getInputProps("topic")} />
<TextInput label={<Trans>Access token</Trans>} {...form.getInputProps("userSecret")} />
</>
)}
{form.values.type === "gotify" && (
<>
<TextInput
label={<Trans>Server URL</Trans>}
placeholder="https://gotify.example.com"
required
{...form.getInputProps("serverUrl")}
/>
<TextInput label={<Trans>App token</Trans>} required {...form.getInputProps("userSecret")} />
</>
)}
{form.values.type === "pushover" && (
<>
<TextInput label={<Trans>User key</Trans>} required {...form.getInputProps("userId")} />
<TextInput label={<Trans>API token</Trans>} required {...form.getInputProps("userSecret")} />
</>
)}
<Group>
<Button variant="default" onClick={async () => await dispatch(redirectToSelectedSource())}>
<Trans>Cancel</Trans>
</Button>
<Button type="submit" leftSection={<TbDeviceFloppy size={16} />}>
<Trans>Save</Trans>
</Button>
<Divider orientation="vertical" />
<Button
variant="outline"
leftSection={<TbSend size={16} />}
onClick={() => sendTestPushNotification.execute(form.values)}
loading={sendTestPushNotification.loading}
>
<Trans>Test</Trans>
</Button>
</Group>
</Stack>
</form>
)
}

View File

@@ -95,6 +95,7 @@ export function Tree() {
expanded={false}
level={0}
hasError={false}
hasWarning={false}
onClick={categoryClicked}
/>
)
@@ -110,6 +111,7 @@ export function Tree() {
expanded={false}
level={0}
hasError={false}
hasWarning={false}
onClick={categoryClicked}
/>
)
@@ -118,6 +120,7 @@ export function Tree() {
if (!isCategoryDisplayed(category)) return null
const hasError = !category.expanded && flattenCategoryTree(category).some(c => c.feeds.some(f => f.errorCount > errorThreshold))
const hasWarning = !category.expanded && flattenCategoryTree(category).some(c => c.feeds.some(f => !!f.filterLegacy))
return (
<TreeNode
id={category.id}
@@ -130,6 +133,7 @@ export function Tree() {
expanded={category.expanded}
level={level}
hasError={hasError}
hasWarning={hasWarning}
onClick={categoryClicked}
onIconClick={e => categoryIconClicked(e, category)}
key={category.id}
@@ -151,6 +155,7 @@ export function Tree() {
selected={source.type === "feed" && source.id === String(feed.id)}
level={level}
hasError={feed.errorCount > errorThreshold}
hasWarning={!!feed.filterLegacy}
onClick={feedClicked}
key={feed.id}
/>
@@ -168,6 +173,7 @@ export function Tree() {
selected={source.type === "tag" && source.id === tag}
level={0}
hasError={false}
hasWarning={false}
onClick={tagClicked}
key={tag}
/>

View File

@@ -15,6 +15,7 @@ interface TreeNodeProps {
expanded?: boolean
level: number
hasError: boolean
hasWarning: boolean
hasNewEntries: boolean
onClick: (e: React.MouseEvent, id: string) => void
onIconClick?: (e: React.MouseEvent, id: string) => void
@@ -24,15 +25,18 @@ const useStyles = tss
.withParams<{
selected: boolean
hasError: boolean
hasWarning: boolean
hasUnread: boolean
}>()
.create(({ theme, colorScheme, selected, hasError, hasUnread }) => {
.create(({ theme, colorScheme, selected, hasError, hasWarning, hasUnread }) => {
let backgroundColor = "inherit"
if (selected) backgroundColor = colorScheme === "dark" ? theme.colors.dark[4] : theme.colors.gray[1]
let color: string
if (hasError) {
color = theme.colors.red[6]
} else if (hasWarning) {
color = theme.colors.yellow[6]
} else if (colorScheme === "dark") {
color = hasUnread ? theme.colors.dark[0] : theme.colors.dark[3]
} else {
@@ -63,6 +67,7 @@ export function TreeNode(props: Readonly<TreeNodeProps>) {
const { classes } = useStyles({
selected: props.selected,
hasError: props.hasError,
hasWarning: props.hasWarning,
hasUnread: props.unread > 0,
})
return (

View File

@@ -6,7 +6,11 @@ const useStyles = tss.create(() => ({
badge: {
width: "3.2rem",
// for some reason, mantine Badge has "cursor: 'default'"
cursor: "pointer",
cursor: "inherit",
},
indicator: {
// ensure the indicator is not shown above the app header
zIndex: 0,
},
}))
@@ -23,7 +27,15 @@ export function UnreadCount(
const count = props.unreadCount >= 10000 ? "10k+" : props.unreadCount
return (
<Tooltip label={props.unreadCount} disabled={props.unreadCount === count} openDelay={Constants.tooltip.delay}>
<Indicator disabled={!props.showIndicator} size={4} offset={10} position="middle-start">
<Indicator
disabled={!props.showIndicator}
size={4}
offset={10}
position="middle-start"
classNames={{
indicator: classes.indicator,
}}
>
<Badge className={`${classes.badge} cf-badge`} variant="light" fullWidth>
{count}
</Badge>

3
commafeed-client/src/globals.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
// required because of noUncheckedSideEffectImports
// https://www.typescriptlang.org/tsconfig/#noUncheckedSideEffectImports
declare module "@fontsource/open-sans"

View File

@@ -0,0 +1,17 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { useAppSelector } from "@/app/store"
export function useValidationRules() {
const minimumPasswordLength = useAppSelector(state => state.server.serverInfos?.minimumPasswordLength)
const { _ } = useLingui()
return {
password: (value: string | undefined) =>
value && minimumPasswordLength && value.length < minimumPasswordLength
? _(msg`Password must be at least ${minimumPasswordLength} characters`)
: null,
passwordConfirmation: (newPasswordConfirmation: string | undefined, newPassword: string | undefined) =>
newPasswordConfirmation && newPasswordConfirmation !== newPassword ? _(msg`Passwords do not match`) : null,
}
}

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed هو مشروع مفتوح المصدر. يتم استضافة المصادر على </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,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>"
@@ -38,6 +34,10 @@ msgstr "<0> هل تحتاج إلى حساب؟ </0> <1> اشترك! </ 1>"
msgid "About"
msgstr "حول"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "رمز الوصول"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "الإجراءات"
@@ -60,6 +60,10 @@ msgstr "إضافة مستخدم"
msgid "Admin"
msgstr "إداري"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "اسم مستخدم المسؤول"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "إداري"
msgid "All"
msgstr "الكل"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "دائمًا"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "تحليل التغذية"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "إعلان"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "مفتاح API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "رمز API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "رمز التطبيق"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "هل أنت متأكد أنك تريد حذف الفئة <0> {categoryName} </0>؟"
@@ -122,32 +133,37 @@ msgid "Asc"
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."
msgstr "المتغيرات المتاحة هي \"العنوان\" و \"المحتوى\" و \"url\" و \"المؤلف\" و \"الفئات\" ويتم تحويل محتواها إلى أحرف صغيرة لتسهيل مقارنة السلسلة."
msgid "Auto-mark as read"
msgstr "وضع علامة مقروء تلقائيًا"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "العودة"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "العودة لتسجيل الدخول"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "أزرق"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "إضافة المتصفح"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "إضافة المتصفح مطلوبة لـ Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "علامة تبويب المتصفح"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "قم ببناء تعبير تصفية لتحديد ما تريد قراءته. سيتم وضع علامة مقروء على الإدخالات التي لا تتطابق تلقائيًا."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "إلغاء"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "تأكد من عمل الخلاصة"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "إغلاق القائمة"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: 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. استخدم عنوان URL التالي في تطبيق الهاتف المتوافق مع Fever. قم بتسجيل الدخول باستخدام اسم المستخدم و <0>مفتاح API</0> الخاص بك."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,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"
@@ -221,10 +234,18 @@ msgstr "تأكيد"
msgid "Confirm password"
msgstr "تأكيد كلمة المرور"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "تأكيد كلمة المرور"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "دافئ"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "إنشاء حساب مسؤول"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "السيطرة"
@@ -235,34 +256,37 @@ 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/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "سيان"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "داكن"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "تاريخ الإنشاء"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "أيام"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "حذف"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "حذف الحساب"
@@ -281,7 +305,11 @@ msgstr "تنازلي"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "مفصل"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "تعطيل سلوك المتصفح \"اسحب للتحديث\""
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "عرض"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "تبرع"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "اسحب الرابط إلى شريط الإشارات"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "البريد الإلكتروني"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "عنوان البريد الإلكتروني"
@@ -334,20 +361,16 @@ msgstr "أدخل كلمة المرور الحالية لتغيير إعدادا
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "عدد الإدخالات التي يجب الاحتفاظ بها فوق الإدخال المحدد عند التمرير"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "عناوين الإدخالات"
#: src/components/Alert.tsx
msgid "Error"
msgstr "خطأ"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "مثال: {مثال}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "موسع"
@@ -359,13 +382,12 @@ 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 "اسم الخلاصة"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,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 ""
msgstr "رابط Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "تصفية التعبير"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "حجم الخط"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "التحديث الإجباري للخلاصات غير متاح بعد."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "رابط الخلاصة المولدة"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "الذهاب إلى {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "الأشياء الجيدة"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "عنبي"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "رمادي"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "أخضر"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "إذا لم يكن فارغًا ، فسيتم تقييم التعبير إلى \"صواب\" أو \"خطأ\". "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "إذا كان الإدخال لا يتناسب تمامًا مع الشاشة"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "في العرض الموسع ، التمرير عبر الإدخالات
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "نيلي"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "الإعداد الأولي"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "رابط إعادة تعيين كلمة المرور غير صالح. يرجى طلب رابط جديد."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "آخر رسالة تحديث"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "فاتح"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "ليموني"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "رابط"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "رابط الوثائق"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "تحميل الاشتراكات ..."
msgid "Loading tags..."
msgstr "تحميل العلامات ..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "تسجيل الخروج"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "ضغط مطول"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "وضع علامة كمقروء"
msgid "Mark as read up to here"
msgstr "وضع علامة كمقروءة حتى هنا"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "ضع علامة مقروء على الإدخالات في هذه الخلاصة بعد هذا العدد من الأيام. اتركه فارغًا للتعطيل."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "المقاييس"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "نقرة بالزر الأوسط"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -604,17 +633,20 @@ msgstr "انتقل إلى اشتراك بإدخال اسمه"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "انتقل إلى الفئة/الخلاصة التالية التي تحتوي على إدخالات غير مقروءة عند تمييز الكل كمقروء"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "أبدا"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "كلمة مرور جديدة"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "كلمة مرور جديدة"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "الأحدث أولاً"
@@ -638,7 +670,7 @@ msgstr "لا مزيد من الإدخالات"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "لا توجد خيارات مشاركة متاحة."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,27 +682,27 @@ msgstr "الأقدم أولا"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "على سطح المكتب"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "على الهاتف"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "على الهاتف، أظهر أزرار الإجراءات في أسفل الشاشة"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "ينطبق فقط على الأوضاع المضغوطة، والدافئة، والمفصلة"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "اوووه!"
msgstr "عذراً!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "افتح CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ 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"
@@ -711,28 +743,27 @@ msgstr "فتح / إغلاق الإدخال الحالي"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "تصدير OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "ملف OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "ملف OPML مطلوب"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "برتقالي"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "طلب"
msgstr "ترتيب"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,49 +774,77 @@ msgid "Parent Category"
msgstr "الفئة الأصل"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "كلمة المرور"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "يجب أن تكون كلمة المرور على الأقل {minimumPasswordLength} أحرف"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "استعادة كلمة المرور"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "كلمات المرور غير متطابقة"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "وردي"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position"
msgstr "المنـصب"
msgstr "المنصب"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "السابق"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "اللون الأساسي"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "الملف الشخصي"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "خدمة إشعارات الدفع"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "إشعارات الدفع"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "لم يتم تكوين إشعارات الدفع في إعدادات المستخدم الخاصة بك."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "إشعارات الدفع غير مفعلة في مثيل CommaFeed هذا."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "تلقي إشعارات الدفع"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "تلقي إشعارات الدفع عند اكتشاف إدخالات خلاصة جديدة. قم بتمكين \"تلقي إشعارات الدفع\" في إعدادات كل خلاصة تريد تلقي إشعارات لها."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "استعادة كلمة السر"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "أحمر"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "تحديث"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "تم إغلاق التسجيلات في مثيل CommaFeed هذا"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "إعادة تعيين كلمة المرور"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
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
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "حفظ"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "تمرير الإدخال المحدد إلى أعلى الصفحة"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "قم بالتمرير بسلاسة عند التنقل بين الإدخ
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "التمرير"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "بحث"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "تحديد الخلاصة/الفئة التالية غير المقروءة"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "تحديد الخلاصة/الفئة السابقة غير المقروءة"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "رابط الخادم"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "مشاركة"
msgid "Sharing sites"
msgstr "مشاركة المواقع"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "الحلقة"
#: 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 ""
msgstr "إظهار قائمة الإدخال (الهاتف)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "إظهار أيقونة الرابط الخارجي"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "إظهار تعليمات اختصار لوحة المفاتيح"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "إظهار القائمة الأصلية (سطح المكتب)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "إظهار أيقونة النجمة"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "إظهار عدد غير المقروء في أيقونة التبويب"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "إظهار عدد غير المقروء في عنوان التبويب"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "قم بالتسجيل"
msgid "Something bad just happened..."
msgstr "شيء سيء حدث للتو ..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "فضاء"
@@ -941,7 +1002,6 @@ msgstr "النجم"
msgid "Starred"
msgstr "مميز بنجمة"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "النجاح"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "اسحب الرأس لليسار"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "قم بالتبديل إلى النسق الفاتح"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "النظام"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "الكلمات"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "أزرق مخضر"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "اختبار"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
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."
@@ -992,9 +1059,18 @@ msgstr "عنوان URL للتغذية التي تريد الاشتراك فيه
msgid "Theme"
msgstr "الموضوع"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "تحتوي هذه الخلاصة على فلتر قديم لا يمكن تحريره ولا يتم تطبيقه. يرجى إعادة إنشاء الفلتر باستخدام محرر التعبيرات الجديد. كان تعبير الفلتر القديم هو: <0>{0}</0>"
#: 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 للقراءة فقط ويمنح الوصول إلى Fever API. استخدم النموذج الموجود في أسفل الصفحة لإنشاء مفتاح API جديد"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "هذا الإعداد يمكن أن يسبب مشاكل في التمرير في بعض المتصفحات (مثل Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,19 +1078,23 @@ msgstr "تبديل قراءة حالة الإدخال الحالي"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "تبديل الشريط الجانبي"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "تبديل الحالة المميزة بنجمة للإدخال الحالي"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "موضوع"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "جرب CommaFeed باستخدام الحساب التجريبي: تجريبي / تجريبي"
msgstr "جرب CommaFeed باستخدام الحساب التجريبي: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "جرب النسخة التجريبية!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "غير مقروءة"
msgid "Unstar"
msgstr "إلغاء النجم"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "إلغاء الاشتراك"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "مفتاح المستخدم"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "اسم المستخدم"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "اسم المستخدم أو البريد الإلكتروني"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "بنفسجي"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "تحذير"
msgid "Website"
msgstr "موقع الكتروني"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "مرحباً! يبدو أن هذه هي المرة الأولى التي تقوم فيها بتشغيل CommaFeed. يرجى إنشاء حساب مسؤول للبدء."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
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 "تم وضع خلاصاتك في قائمة الانتظار للتحديث."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "تم تغيير كلمة المرور الخاصة بك. يمكنك الآن تسجيل الدخول باستخدام كلمة المرور الجديدة."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
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><2>.</2>"
msgstr "<0>La sintaxi completa està disponible </0><1>aquí</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>Teniu un compte?</0><1>Inicieu la sessió!</1>"
@@ -38,13 +34,17 @@ msgstr "<0>Necessites un compte?</0><1>Registreu-vos!</1>"
msgid "About"
msgstr "Sobre"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Token d'accés"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Accions"
#: src/components/content/add/AddCategory.tsx
msgid "Add"
msgstr "Afegir"
msgstr "Afegeix"
#: src/pages/app/AddPage.tsx
msgid "Add category"
@@ -60,6 +60,10 @@ msgstr "Afegeix usuari"
msgid "Admin"
msgstr "Administrador"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nom d'usuari de l'administrador"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "Administrador"
msgid "All"
msgstr "Tot"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Sempre"
@@ -83,7 +86,7 @@ msgstr "Un fitxer opml és un fitxer XML que conté URL i categories de canals.
#: src/components/content/add/Subscribe.tsx
msgid "Analyze feed"
msgstr "Analitzar el feed"
msgstr "Analitza el canal"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
@@ -91,11 +94,19 @@ msgstr "Anunci"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "clau API"
msgstr "Clau API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token d'API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token d'aplicació"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Estàs segur que vols suprimir la categoria <0>{categoryName}</0>?"
msgstr "Esteu segur que voleu suprimir la categoria <0>{categoryName}</0>?"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Are you sure you want to delete user <0>{userName}</0> ?"
@@ -115,57 +126,59 @@ msgstr "Esteu segur que voleu marcar les entrades més antigues de {threshold} d
#: src/pages/app/FeedDetailsPage.tsx
msgid "Are you sure you want to unsubscribe from <0>{feedName}</0>?"
msgstr "Estàs segur que vols cancel·lar la subscripció a <0>{feedName}</0>?"
msgstr "Esteu segur que voleu cancel·lar la subscripció a <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
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."
msgstr "Les variables disponibles són \"títol\", \"contingut\", \"url\" \"autor\" i \"categories\" i el seu contingut es converteix en minúscules per facilitar la comparació de cadenes."
msgid "Auto-mark as read"
msgstr "Marcar com a llegit automàticament"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Enrere"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Tornar a iniciar sessió"
msgstr "Torna a iniciar sessió"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr "Blau"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extensió del navegador"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Extensió del navegador necessària per a Chrome"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Extensió del navegador"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr "Pestanya del navegador"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Creeu una expressió de filtratge per indicar què voleu llegir. Les entrades que no coincideixin es marcaran com a llegides automàticament."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Cancel·la"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -221,10 +234,18 @@ msgstr "Confirma"
msgid "Confirm password"
msgstr "Confirmeu la contrasenya"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Confirma la contrasenya"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Acollidor"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Crea un compte d'administrador"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -258,11 +279,14 @@ msgstr "Fosc"
msgid "Date created"
msgstr "Data de creació"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dies"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Eliminar"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Suprimeix el compte"
@@ -283,6 +307,10 @@ msgstr "Desc"
msgid "Detailed"
msgstr "Detallat"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Desactiva el comportament \"Arrossega per actualitzar\"\\ del navegador"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "Arrossegueu l'enllaç a la barra d'adreces d'interès"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "Correu electrònic"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Adreça de correu electrònic"
@@ -322,7 +349,7 @@ msgstr "Edita l'usuari"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled"
msgstr "activat"
msgstr "Activat"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
@@ -344,10 +371,6 @@ msgstr "Encapçalaments d'entrada"
msgid "Error"
msgstr "Error"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Exemple: {exemple}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Ampliat"
@@ -365,7 +388,6 @@ msgstr "Opcions de l'extensió"
msgid "Feed name"
msgstr "Nom del canal"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -430,7 +452,7 @@ msgstr "Vés a la documentació de l'API."
#: src/pages/app/AboutPage.tsx
msgid "Goodies"
msgstr "Bones"
msgstr "Extres"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
@@ -448,10 +470,6 @@ msgstr "Verd"
msgid "Id"
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"
@@ -472,6 +490,14 @@ msgstr "En la vista ampliada, en desplaçar-se per les entrades, es marquen com
msgid "Indigo"
msgstr "Indi"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Configuració inicial"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "L'enllaç de restabliment de la contrasenya no és vàlid. Sol·liciteu-ne un de nou."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread"
@@ -532,7 +558,6 @@ msgstr "S'estan carregant les subscripcions..."
msgid "Loading tags..."
msgstr "Carregant les etiquetes..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "Marca com a llegit"
msgid "Mark as read up to here"
msgstr "Marca com a llegit fins aquí"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Marca les entrades d'aquest feed com a llegides després d'aquest nombre de dies. Deixeu-ho buit per desactivar-lo."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "mètriques"
@@ -606,7 +635,6 @@ msgstr "Navegueu a una subscripció introduint-ne el nom"
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr "Navega a la següent categoria/canal amb entrades no llegides quan es marquen totes les entrades com a llegides"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Mai"
@@ -615,6 +643,10 @@ msgstr "Mai"
msgid "New password"
msgstr "Contrasenya nova"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Contrasenya nova"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "El més nou primer"
@@ -650,7 +682,7 @@ msgstr "el més vell primer"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr "A l'scriptori"
msgstr "A l'escriptori"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
@@ -717,7 +749,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "Exportació OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "Fitxer OPML"
@@ -743,18 +774,21 @@ msgid "Parent Category"
msgstr "Categoria pare"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Contrasenya"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "La contrasenya ha de tenir almenys {minimumPasswordLength} caràcters"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Recuperació de contrasenya"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Les contrasenyes no coincideixen"
@@ -779,6 +813,31 @@ msgstr "Color primari"
msgid "Profile"
msgstr "Perfil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Servei de notificacions push"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Notificacions push"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Les notificacions push no estan configurades a la vostra configuració d'usuari."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Les notificacions push no estan activades en aquesta instància de CommaFeed."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Rep notificacions push"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Rebre notificacions push quan es descobreixin noves entrades de feed. Activeu \"Rep notificacions push\" a la configuració de cada feed per al qual vulgueu rebre notificacions."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Recuperar la contrasenya"
@@ -796,11 +855,14 @@ msgstr "Actualitzar"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Els registres estan tancats en aquesta instància de CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Restableix la contrasenya"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "API REST"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Clic dret"
@@ -808,6 +870,7 @@ msgstr "Clic dret"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,8 +889,6 @@ msgid "Scrolling"
msgstr "Desplaçament"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Cerca"
@@ -840,6 +901,10 @@ msgstr "Selecciona el següent canal/categoria no llegit"
msgid "Select previous unread feed/category"
msgstr "Selecciona el canal/categoria anterior sense llegir"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL del servidor"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Posa el focus a la següent entrada sense obrir-la"
@@ -864,8 +929,6 @@ msgstr "Comparteix"
msgid "Sharing sites"
msgstr "Compartir a altres llocs web"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "canvi"
@@ -914,7 +977,6 @@ msgstr "Mostra el recompte de no llegits a la icona de favorits de la pestanya"
msgid "Show unread count in tab title"
msgstr "Mostra el recompte de no llegits al títol de la pestanya"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Registra't"
msgid "Something bad just happened..."
msgstr "Acaba de passar una cosa dolenta..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Espai"
@@ -941,7 +1002,6 @@ msgstr "Estrella"
msgid "Starred"
msgstr "Estrellat"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -975,7 +1035,6 @@ msgstr "Canvia al tema clar"
msgid "System"
msgstr "Sistema"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Etiquetes"
@@ -984,6 +1043,14 @@ msgstr "Etiquetes"
msgid "Teal"
msgstr "Blau verdós"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Prova"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "La notificació de prova s'ha enviat correctament."
#: 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 "l'URL del canal al qual us voleu subscriure. "
@@ -992,10 +1059,19 @@ msgstr "l'URL del canal al qual us voleu subscriure. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Aquest feed té un filtre heretat que no es pot editar i no s'aplica. Torneu a crear el filtre amb el nou editor d'expressions. L'expressió del filtre heretat era: <0>{0}</0>"
#: 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 "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/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Aquesta configuració pot causar problemes de desplaçament en alguns navegadors (per exemple, Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Canvia l'estat de lectura de l'entrada actual"
@@ -1008,6 +1084,10 @@ msgstr "Canvia la barra lateral"
msgid "Toggle starred status of current entry"
msgstr "Commuta l'estat destacat de l'entrada actual"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Tema"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Proveu CommaFeed amb el compte de demostració: demo/demo"
@@ -1026,16 +1106,18 @@ msgstr "Sense llegir"
msgid "Unstar"
msgstr "Desestrellar"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Donar-se de baixa"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Clau d'usuari"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nom d'usuari"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nom d'usuari o correu electrònic"
@@ -1052,6 +1134,10 @@ msgstr "Avís"
msgid "Website"
msgstr "Lloc web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Benvingut! Sembla que aquesta és la primera vegada que executeu CommaFeed. Creeu un compte d'administrador per començar."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "Groc"
@@ -1063,3 +1149,7 @@ msgstr "Encara no teniu cap subscripció. "
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Els vostres feeds s'han posat a la cua per actualitzar-los."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "La vostra contrasenya s'ha canviat. Ara podeu iniciar la sessió amb la vostra nova contrasenya."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed je open-source projekt. Zdrojové kódy jsou hostovány na </0><1>GitHubu</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Máte účet?</0><1>Přihlaste se!</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>Ahoj,</0><1>jsem Jérémie z Belgie a na CommaFeed pracuji ve svém volném čase již více než 10 let. Děkuji za váš zájem mi pomoci i nadále podporovat CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Potřebujete účet?</0><1>Zaregistrujte se!</1>"
msgid "About"
msgstr "Asi"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Přístupový token"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Akce"
@@ -60,6 +60,10 @@ msgstr "Přidat uživatele"
msgid "Admin"
msgstr "Správce"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Uživatelské jméno správce"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Správce"
msgid "All"
msgstr "Všechny"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Vždy"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analyzujte krmivo"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Oznámení"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "Klíč API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token aplikace"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Opravdu chcete smazat kategorii <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Opravdu se chcete odhlásit z odběru <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Vzestupně"
#: 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."
msgstr "Dostupné proměnné jsou 'název', 'obsah', 'url', 'autor' a 'kategorie' a jejich obsah je převeden na malá písmena, aby se usnadnilo porovnávání řetězců."
msgid "Auto-mark as read"
msgstr "Automaticky označit jako přečtené"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Zpět"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Zpět k přihlášení"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Modrá"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Rozšíření prohlížeče"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Pro Chrome je vyžadováno rozšíření prohlížeče"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Karta prohlížeče"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Vytvořte výraz filtru pro určení toho, co chcete číst. Položky, které neodpovídají, budou automaticky označeny jako přečtené."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Zrušit"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Zkontrolujte, zda zdroj funguje"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Zavřít menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Verze rozšíření prohlížeče 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 je kompatibilní s Fever API. Použijte následující URL ve svém mobilním klientovi kompatibilním s Fever. Přihlaste se pomocí svého uživatelského jména a svého <0>klíče API</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed další nepřečtená položka"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed verze {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Potvrdit"
msgid "Confirm password"
msgstr "Potvrďte heslo"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Potvrdit heslo"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Útulný"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Vytvořit účet správce"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Aktuální heslo"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Vlastní kód"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Vlastní pravidla CSS, která budou použita"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Vlastní kód JS, který bude spuštěn při načtení stránky"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Azurová"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Tmavá"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Datum vytvoření"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dní"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Smazat"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Smazat účet"
@@ -277,11 +301,15 @@ msgstr "Smazat uživatele"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Sestupně"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detailní"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Zakázat chování prohlížeče \"Potažením obnovit\""
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Displej"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Darovat"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Přetáhněte odkaz na lištu záložek"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr ""
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-mailová adresa"
@@ -334,20 +361,16 @@ msgstr "Zadejte své aktuální heslo pro změnu nastavení profilu"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Počet položek, které mají zůstat nad vybranou položkou při posouvání"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Hlavičky položek"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Chyba"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Příklad: {příklad}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Rozbaleno"
@@ -359,13 +382,12 @@ msgstr "Exportujte svá předplatná a kategorie jako soubor OPML, který lze im
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Možnosti rozšíření"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Název zdroje"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "URL zdroje"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Aktualizovat všechny mé zdroje"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "URL Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Filtrování výrazu"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Velikost písma"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Vynucené stahování zdrojů zatím není k dispozici."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Generovaná adresa URL zdroje"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Přejít na {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Dobroty"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Hroznová"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Šedá"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Zelená"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Pokud není prázdný, výraz vyhodnocený jako 'true' nebo 'false'. "
msgstr "ID"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Pokud se položka nevejde celá na obrazovku"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -462,7 +480,7 @@ msgstr "Pokud narazíte na problém, nahlaste jej prosím na stránce problémů
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Importovat"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -470,7 +488,15 @@ msgstr "V rozšířeném zobrazení je procházením označíte jako přečtené
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigová"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Počáteční nastavení"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Neplatný odkaz pro resetování hesla. Požádejte prosím o nový."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Poslední obnovovací zpráva"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Světlá"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limetková"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Odkaz"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Odkaz na dokumentaci"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Načítání odběrů..."
msgid "Loading tags..."
msgstr "Načítání značek..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,12 +569,12 @@ msgstr "Odhlášení"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Dlouhé stisknutí"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users"
msgstr "Spravujte uživatele"
msgstr "Spravovat uživatele"
#: src/components/header/Header.tsx
msgid "Mark all as read"
@@ -570,13 +595,17 @@ msgstr "Označit jako přečtené"
msgid "Mark as read up to here"
msgstr "Označit jako přečtené až sem"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Označit položky v tomto zdroji jako přečtené po tomto počtu dní. Pro zakázání ponechte prázdné."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metriky"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Kliknutí prostředním tlačítkem"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Přesuňte stránku nahoru"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Přejděte na předplatné zadáním jeho názvu"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Po označení všech položek jako přečtených přejít na další kategorii/zdroj s nepřečtenými položkami"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Nikdy"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nové heslo"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nové heslo"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Nejnovější jako první"
@@ -638,11 +670,11 @@ msgstr "Žádné další záznamy"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Nejsou k dispozici žádné možnosti sdílení."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Nic nebylo nalezeno"
msgstr "Nebylo nic nalezeno"
#: src/pages/app/AboutPage.tsx
msgid "Oldest first"
@@ -650,19 +682,19 @@ msgstr "Nejdříve nejstarší"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Na desktopu"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Na mobilu"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Na mobilu zobrazovat akční tlačítka v dolní části obrazovky"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Platí pouze pro režimy kompaktní, útulný a detailní"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Jejda!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Otevřít CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Otevřít odkaz"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Otevřít odkaz na nové kartě na pozadí"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Otevřít odkaz na nové kartě"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Otevřít menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Otevřít/zavřít aktuální položku"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "Export OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "soubor OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "Soubor OPML je vyžadován"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oranžová"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Objednávka"
msgstr "Pořadí"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Rodičovská kategorie"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Heslo"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Heslo musí mít alespoň {minimumPasswordLength} znaků"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Obnovení hesla"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Hesla se neshodují"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Růžová"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Pozice"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Předchozí"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Primární barva"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Služba push oznámení"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push oznámení"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push oznámení nejsou ve vašem uživatelském nastavení nakonfigurována."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push oznámení nejsou na této instanci CommaFeed povolena."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Přijímat push oznámení"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Přijímat push oznámení, když jsou objeveny nové položky zdroje. Povolte \"Přijímat push oznámení\" v nastavení každého zdroje, pro který chcete dostávat oznámení."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Obnovte heslo"
msgstr "Obnovit heslo"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Červená"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Obnovit"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "V této instanci CommaFeed jsou registrace uzavřeny"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Obnovit heslo"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Kliknutí pravým tlačítkem"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Uložit"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Posunout vybranou položku na začátek stránky"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,26 +886,28 @@ msgstr "Posouvejte plynule při navigaci mezi položkami"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Posouvání"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Hledej"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Vybrat další nepřečtený zdroj/kategorii"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Vybrat předchozí nepřečtený zdroj/kategorii"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL serveru"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Zaměřte se na další položku, aniž byste ji otevřeli"
msgstr "Zaměřit se na další položku, aniž byste ji otevřeli"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on previous entry without opening it"
@@ -864,35 +929,33 @@ msgstr "Sdílejte"
msgid "Sharing sites"
msgstr "Stránky pro sdílení"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Směna"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Zobrazovat vlastní kontextové menu CommaFeed při kliknutí pravým tlačítkem"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Zobrazovat potvrzení při označování všech položek jako přečtených"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Zobrazit menu položky (desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Zobrazit menu položky (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Zobrazovat ikonu externího odkazu"
#: 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"
msgstr "Zobrazit zdroje a kategorie bez nepřečtených položek"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show keyboard shortcut help"
@@ -900,31 +963,29 @@ msgstr "Zobrazit nápovědu ke klávesovým zkratkám"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Zobrazit nativní menu (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Zobrazovat ikonu hvězdičky"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Zobrazovat počet nepřečtených v ikoně karty"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Zobrazovat počet nepřečtených v názvu karty"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
msgstr "Zaregistrujte se"
msgstr "Zaregistrovat se"
#: src/pages/ErrorPage.tsx
msgid "Something bad just happened..."
msgstr "Právě se stalo něco špatného..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Vesmír"
@@ -941,7 +1002,6 @@ msgstr "Hvězda"
msgid "Starred"
msgstr "S hvězdičkou"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,28 +1021,35 @@ msgstr "Úspěch"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Přejetím po hlavičce doleva"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
msgstr "Přepněte na tmavý motiv"
msgstr "Přepnout na tmavý motiv"
#: src/pages/WelcomePage.tsx
msgid "Switch to light theme"
msgstr "Přepněte na světlé téma"
msgstr "Přepnout na světlý motiv"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Systémový"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Značky"
msgstr "Štítky"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Šedozelená"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Testovat"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testovací oznámení bylo úspěšně odesláno."
#: 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."
@@ -992,21 +1059,34 @@ msgstr "Adresa URL kanálu, k jehož odběru se chcete přihlásit. "
msgid "Theme"
msgstr "Téma"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Tento zdroj má zastaralý filtr, který nelze upravovat a není aplikován. Znovu vytvořte filtr pomocí nového editoru výrazů. Původní výraz filtru byl: <0>{0}</0>"
#: 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 "Toto je váš klíč API. Lze jej použít pro některé operace API pouze pro čtení a poskytuje přístup k Fever API. Pro vygenerování nového klíče API použijte formulář v dolní části stránky."
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Toto nastavení může u některých prohlížečů (např. Safari) způsobovat problémy s posouváním"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Přepne stav čtení aktuálního záznamu"
msgstr "Přepnout stav přečtení aktuální položky"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Přepnout boční panel"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Přepnout označení hvězdičkou u aktuální položky"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Téma"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Vyzkoušejte CommaFeed s demo účtem: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Vyzkoušejte demo!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Nepřečteno"
msgid "Unstar"
msgstr "Odstranit hvězdu"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Odhlásit odběr"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Uživatelský klíč"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Uživatelské jméno"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Uživatelské jméno nebo e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Fialová"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1050,16 +1132,24 @@ msgstr "Varování"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Website"
msgstr "Webové stránky"
msgstr "Webová stránka"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Vítejte! Zdá se, že je to poprvé, co spouštíte CommaFeed. Chcete-li začít, vytvořte si účet správce."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Žlutá"
#: 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 "Zatím nemáte žádné předplatné. "
msgstr "Zatím nemáte žádné odběry. Proč nezkusit nějaký přidat kliknutím na znaménko + v horní části stránky?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Vaše zdroje byly zařazeny do fronty k aktualizaci."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Vaše heslo bylo změněno. Nyní se můžete přihlásit pomocí nového hesla."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>Mae CommaFeed yn brosiect ffynhonnell agored. Mae'r ffynonellau wedi'u hysbysebu ar </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>A oes gennych gyfrif?</0><1>Mewngofnodi!</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>Hei,</0><1>Jérémie o Wlad Belg ydw i ac rwyf wedi bod yn gweithio ar CommaFeed yn fy amser sbâr ers dros 10 mlynedd bellach. Diolch am ddangos diddordeb mewn fy helpu i barhau i gefnogi CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Angen cyfrif?</0><1>Ymunwch!</1>"
msgid "About"
msgstr "Ynghylch"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Tocyn mynediad"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Camau gweithredu"
@@ -60,6 +60,10 @@ msgstr "Ychwanegu defnyddiwr"
msgid "Admin"
msgstr "Gweinyddol"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Enw defnyddiwr gweinyddwr"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Gweinyddol"
msgid "All"
msgstr "Pawb"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Bob amser"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Dadansoddi porthiant"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Cyhoeddiad"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "Allwedd API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Tocyn API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Tocyn ap"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Ydych chi'n siŵr eich bod am ddileu categori <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Ydych chi'n siŵr eich bod am ddad-danysgrifio o <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Esgynol"
#: 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."
msgstr "Y newidynnau sydd ar gael yw 'teitl', 'cynnwys', 'url' 'awdur' a 'chategorïau' ac mae eu cynnwys yn cael ei drosi i lythrennau bach er mwyn hwyluso cymhariaeth llinynnol."
msgid "Auto-mark as read"
msgstr "Hunan-farcio fel wedi'i ddarllen"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Yn ôl"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Yn ôl i fewngofnodi"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Glas"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Estyniad porwr"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Mae angen estyniad porwr ar gyfer Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Tab porwr"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Adeiladwch fynegiant hidlo i nodi'r hyn rydych chi am ei ddarllen. Bydd cofnodion nad ydynt yn cyfateb yn cael eu marcio fel rhai wedi'u darllen yn awtomatig."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Diddymu"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Gwiriwch fod y porthiant yn gweithio"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Cau'r ddewislen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Fersiwn estyniad porwr 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 "Mae CommaFeed yn gydnaws â'r Fever API. Defnyddiwch y URL canlynol yn eich cleient symudol sy'n gydnaws â Fever. Mewngofnodwch gyda'ch enw defnyddiwr a'ch <0>allwedd API</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed eitem nesaf heb ei darllen"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "Fersiwn CommaFeed {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Cadarnhau"
msgid "Confirm password"
msgstr "Cadarnhau'r cyfrinair"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Cadarnhau Cyfrinair"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "clyd"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Creu Cyfrif Gweinyddwr"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Cyfrinair presennol"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Cod arferol"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Rheolau CSS arferol a fydd yn cael eu cymhwyso"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Cod JS arferol a fydd yn cael ei weithredu wrth lwytho'r dudalen"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Cyan"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Tywyll"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Dyddiad creu"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "diwrnodau"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Dileu"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Dileu cyfrif"
@@ -281,7 +305,11 @@ msgstr "Rhag"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Manwl"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Analluogi ymddygiad porwr \"Tynnu i adnewyddu\""
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Arddangos"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Cyfrannu"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Llusgwch y ddolen i'r bar nod tudalen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-bost"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "cyfeiriad e-bost"
@@ -334,20 +361,16 @@ msgstr "Rhowch eich cyfrinair presennol i newid gosodiadau proffil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Cofnodion i'w cadw uwchben y cofnod a ddewiswyd wrth sgrolio"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Penawdau cofnodion"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Gwall"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "enghraifft: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Ehangu"
@@ -359,13 +382,12 @@ msgstr "Allforio eich tanysgrifiadau a'ch categorïau fel ffeil OPML y gellir ei
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Opsiynau estyniad"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Enw porthiant"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "URL porthiant"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Cyrchu fy holl borthiannau nawr"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "URL Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Hidlo mynegiant"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Maint ffont"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Nid yw gorfodi nôl porthiannau ar gael eto."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "url porthiant a gynhyrchir"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Ewch i {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "nwyddau"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Grawnwin"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Llwyd"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Gwyrdd"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Os nad yw'n wag, mynegiad sy'n gwerthuso i 'gwir' neu 'anghywir'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Os nad yw'r cofnod yn ffitio'n gyfan gwbl ar y sgrin"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "Mewn gwedd estynedig, mae sgrolio trwy gofnodion yn nodi eu bod wedi'u d
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigó"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Gosodiad Cychwynnol"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Dolen ailosod cyfrinair annilys. Gofynnwch am un newydd."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,21 +526,21 @@ msgstr "Neges adnewyddu ddiwethaf"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Golau"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Leim"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link"
msgstr "Cyswllt"
msgstr "Dolen"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Dolen i'r ddogfennaeth"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Yn llwytho tanysgrifiadau..."
msgid "Loading tags..."
msgstr "Wrthi'n llwytho tagiau..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Allgofnodi"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Gwasg hir"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Marciwch ei fod wedi'i ddarllen"
msgid "Mark as read up to here"
msgstr "Marciwch fel y darllenwyd hyd yma"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Marciwch gofnodion yn y porthiant hwn fel rhai wedi'u darllen ar ôl y nifer hwn o ddiwrnodau. Gadewch yn wag i analluogi."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "metrigau"
msgstr "Metrigau"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Clic canol"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -604,17 +633,20 @@ msgstr "Llywiwch i danysgrifiad trwy nodi ei enw"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Llywiwch i'r categori/porthiant nesaf gyda chofnodion heb eu darllen wrth farcio pob cofnod fel un wedi'i ddarllen"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Byth"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Cyfrinair newydd"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Cyfrinair Newydd"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Y diweddaraf yn gyntaf"
@@ -638,11 +670,11 @@ msgstr "Dim mwy o gofnodion"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Dim opsiynau rhannu ar gael."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Dim wedi'i ddarganfod"
msgstr "Heb ddarganfod dim"
#: src/pages/app/AboutPage.tsx
msgid "Oldest first"
@@ -650,19 +682,19 @@ msgstr "Hynaf yn gyntaf"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Ar bwrdd gwaith"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Ar ffôn symudol"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Ar ffonau symudol, dangoswch fotymau gweithredu ar waelod y sgrin"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Yn berthnasol i foddau cryno, clyd a manwl yn unig"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Wps!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Agor CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Dolen agored"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Agor dolen mewn tab cefndir newydd"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Agor dolen mewn tab newydd"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Agor dewislen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Agor / cau'r cofnod cyfredol"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "allforio OPML"
msgstr "Allforio OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "ffeil OPML"
msgstr "Ffeil OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "Mae angen ffeil OPML"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oren"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "gorchymyn"
msgstr "Trefn"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,49 +774,77 @@ msgid "Parent Category"
msgstr "Categori Rhiant"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "cyfrinair"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Rhaid i'r cyfrinair fod o leiaf {minimumPasswordLength} nod"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Adfer Cyfrinair"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Nid yw cyfrineiriau yn cyfateb"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Pinc"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position"
msgstr "Swydd"
msgstr "Safle"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Blaenorol"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Lliw sylfaenol"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Proffil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Gwasanaeth hysbysu gwthio"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Hysbysiadau gwthio"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Nid yw hysbysiadau gwthio wedi'u ffurfweddu yn eich gosodiadau defnyddiwr."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Nid yw hysbysiadau gwthio wedi'u galluogi ar yr achos CommaFeed hwn."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Derbyn hysbysiadau gwthio"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Derbyn hysbysiadau gwthio pan ddarganfyddir cofnodion porthiant newydd. Galluogi \"Derbyn hysbysiadau gwthio\" yng ngosodiadau pob porthiant yr ydych am dderbyn hysbysiadau ar ei gyfer."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Adfer cyfrinair"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Coch"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Adnewyddu"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Mae cofrestriadau ar gau ar yr achos CommaFeed hwn"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Ailosod Cyfrinair"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Clic dde"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Arbed"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Sgroliwch y cofnod a ddewiswyd i frig y dudalen"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Sgroliwch yn esmwyth wrth lywio rhwng cofnodion"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Sgrolio"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Chwilio"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Dewiswch y porthiant/categori nesaf heb ei ddarllen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Dewiswch y porthiant/categori blaenorol heb ei ddarllen"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL y gweinydd"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Rhannu"
msgid "Sharing sites"
msgstr "Rhannu gwefannau"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "shifft"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Dangos dewislen cyd-destun CommaFeed ei hun ar glic dde"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Dangos cadarnhad wrth farcio pob cofnod fel un wedi'i ddarllen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Dangos dewislen cofnodion (penbwrdd)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Dangos dewislen cofnodion (symudol)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Dangos eicon dolen allanol"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Dangos cymorth llwybr byr bysellfwrdd"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Dangos dewislen frodorol (penbwrdd)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Dangos eicon seren"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Dangos nifer heb ei ddarllen yn ffaficon y tab"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Dangos nifer heb ei ddarllen yn nheitl y tab"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Cofrestrwch"
msgid "Something bad just happened..."
msgstr "Mae rhywbeth drwg newydd ddigwydd ..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Gofod"
@@ -941,7 +1002,6 @@ msgstr "seren"
msgid "Starred"
msgstr "serennog"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Llwyddiant"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Sychwch y pennawd i'r chwith"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Newid i thema golau"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "System"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Tagiau"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Corhwyad"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Prawf"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Anfonwyd yr hysbysiad prawf yn llwyddiannus."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "Y URL ar gyfer y porthwr rydych chi am danysgrifio iddo. "
msgid "Theme"
msgstr "Thema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Mae gan y porthiant hwn hen hidlydd na ellir ei olygu ac nid yw'n cael ei gymhwyso. Crëwch yr hidlydd eto gan ddefnyddio'r golygydd mynegiant newydd. Yr hen fynegiant hidlo oedd: <0>{0}</0>"
#: 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 "Dyma'ch allwedd API. Gellir ei ddefnyddio ar gyfer rhai gweithrediadau API darllen-yn-unig ac mae'n caniatáu mynediad i'r Fever API. Defnyddiwch y ffurflen ar waelod y dudalen i gynhyrchu allwedd API newydd"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Gall y gosodiad hwn achosi problemau sgrolio ar rai porwyr (e.g. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Toglo statws darllen y cofnod cyfredol"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Toglo bar ochr"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Toglo statws serennog y cofnod cyfredol"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Pwnc"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Rhowch gynnig ar CommaFeed gyda'r cyfrif demo: demo / demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Rhowch gynnig ar y demo!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Heb ei ddarllen"
msgid "Unstar"
msgstr "dad-seren"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Dad-danysgrifio"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Allwedd defnyddiwr"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Enw defnyddiwr"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Enw Defnyddiwr neu E-bost"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Fioled"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Rhybudd"
msgid "Website"
msgstr "Gwefan"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Croeso! Ymddengys mai dyma'r tro cyntaf i chi redeg CommaFeed. Creuwch gyfrif gweinyddwr i ddechrau."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Melyn"
#: 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 "Nid oes gennych unrhyw danysgrifiadau eto. "
msgstr "Nid oes gennych unrhyw danysgrifiadau eto. Pam na rhoi cynnig ar ychwanegu un trwy glicio ar y marc + ar dop y dudalen?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Mae eich porthiannau wedi'u rhoi mewn ciw i'w hadnewyddu."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Mae eich cyfrinair wedi cael ei newid. Gallwch nawr fewngofnodi gyda'ch cyfrinair newydd."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed er et open-source projekt. Kildekoden er hostet på </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Har du en konto?</0><1>Log ind!</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>Hej,</0><1>jeg er Jérémie fra Belgien, og jeg har arbejdet på CommaFeed i min fritid i over 10 år nu. Tak for din interesse i at hjælpe mig med fortsat at støtte CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Har du brug for en konto?</0><1>Tilmeld dig!</1>"
msgid "About"
msgstr "Omkring"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Adgangstoken"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Handlinger"
@@ -58,7 +58,11 @@ msgstr "Tilføj bruger"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin"
msgstr ""
msgstr "Administrator"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Administrator brugernavn"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
@@ -68,10 +72,9 @@ msgstr ""
msgid "All"
msgstr "Alle"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Altid"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analyser foder"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Meddelelse"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "API-nøgle"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API-token"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "App-token"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Er du sikker på, at du vil slette kategori <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Er du sikker på, at du vil afmelde <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Stigende"
#: 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."
msgstr "Tilgængelige variabler er 'title', 'content', 'url' 'author' og 'category', og deres indhold konverteres til små bogstaver for at lette strengsammenligning."
msgid "Auto-mark as read"
msgstr "Marker automatisk som læst"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Tilbage"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Tilbage for at logge ind"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Blå"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Browserudvidelse"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Browserudvidelse påkrævet til Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Browserfane"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Byg et filterudtryk for at angive, hvad du vil læse. Indlæg, der ikke matcher, vil automatisk blive markeret som læst."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Annuller"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Tjek, at foderet virker"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Luk menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "CommaFeed browserudvidelse 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 er kompatibel med Fever API. Brug følgende URL i din Fever-kompatible mobilklient. Log ind med dit brugernavn og din <0>API-nøgle</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed næste ulæste 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,13 +234,21 @@ msgstr "Bekræft"
msgid "Confirm password"
msgstr "Bekræft adgangskode"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Bekræft adgangskode"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Hyggeligt"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Opret administratorkonto"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Nuværende adgangskode"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Brugerdefineret kode"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Brugerdefinerede CSS-regler, der vil blive anvendt"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Brugerdefineret JS-kode, der vil blive eksekveret ved sideindlæsning"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Cyan"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Mørk"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Dato oprettet"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dage"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Slet"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Slet konto"
@@ -277,11 +301,15 @@ msgstr "Slet bruger"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Faldende"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detaljeret"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Deaktiver browserens \"Træk for at opdatere\"-adfærd"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,11 +320,11 @@ msgstr "Skærm"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Doner"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
msgstr ""
msgstr "Download"
#: src/pages/app/AboutPage.tsx
msgid "Drag link to bookmark bar"
@@ -305,12 +333,11 @@ msgstr "Træk linket til bogmærkelinjen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr ""
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-mailadresse"
@@ -326,7 +353,7 @@ msgstr "Aktiveret"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
msgstr ""
msgstr "Enter"
#: src/components/settings/ProfileSettings.tsx
msgid "Enter your current password to change profile settings"
@@ -334,20 +361,16 @@ msgstr "Indtast din nuværende adgangskode for at ændre profilindstillinger"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Indlæg der skal holdes over det valgte indlæg ved rulning"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Indlægsoverskrifter"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fejl"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Eksempel: {eksempel}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Udvidet"
@@ -359,29 +382,28 @@ msgstr "Eksporter dine abonnementer og kategorier som en OPML-fil, der kan impor
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Indstillinger for udvidelse"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
msgstr ""
msgstr "Feed URL"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Hent alle mine feeds nu"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever API URL"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Filtrerende udtryk"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Skriftstørrelse"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Tvunget hentning af feeds er endnu ikke tilgængelig."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Genereret feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Gå til {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Godbidder"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Grape"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Grå"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Grøn"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Hvis det ikke er tomt, et udtryk, der vurderes til 'sand' eller 'falsk'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Hvis indlægget ikke passer helt på skærmen"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -462,7 +480,7 @@ msgstr "Hvis du støder på et problem, bedes du rapportere det på problemsiden
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Importer"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -470,7 +488,15 @@ msgstr "I udvidet visning markerer du dem som læst, når du ruller gennem poste
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Oprindelig opsætning"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Ugyldigt link til nulstilling af adgangskode. Anmod venligst om et nyt."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,21 +526,21 @@ msgstr "Sidste opdateringsmeddelelse"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Lys"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Lime"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link"
msgstr ""
msgstr "Link"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Link til dokumentationen"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Indlæser abonnementer..."
msgid "Loading tags..."
msgstr "Indlæser tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Log ud"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Langt tryk"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Markér som læst"
msgid "Mark as read up to here"
msgstr "Markér som læst indtil her"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Marker indlæg i dette feed som læst efter dette antal dage. Lad stå tomt for at deaktivere."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr ""
msgstr "Metrikker"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Midterklik"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Flyt siden op"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Naviger til et abonnement ved at indtaste dets navn"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Naviger til næste kategori/feed med ulæste indlæg, når alle indlæg markeres som læst"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Aldrig"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Ny adgangskode"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Ny adgangskode"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Nyeste først"
@@ -638,7 +670,7 @@ msgstr "Ingen flere poster"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Ingen delingsmuligheder tilgængelige."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Ældst først"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "På desktop"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "På mobil"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "På mobil, vis handlingsknapper i bunden af skærmen"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Gælder kun for tilstandene kompakt, hyggelig og detaljeret"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Hovsa!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Åbn CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Åbent link"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Åbn link i ny baggrundsfane"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Åbn link i ny fane"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Åbn menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Åbn/luk aktuel indgang"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "OPML eksport"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML fil"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML-fil er påkrævet"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Orange"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestilling"
msgstr "Rækkefølge"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,49 +774,77 @@ msgid "Parent Category"
msgstr "Forældrekategori"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Adgangskode"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Adgangskoden skal være på mindst {minimumPasswordLength} tegn"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Gendannelse af adgangskode"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Adgangskoder stemmer ikke overens"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Pink"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position"
msgstr ""
msgstr "Position"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Forrige"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Primær farve"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push-meddelelsestjeneste"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push-meddelelser"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push-meddelelser er ikke konfigureret i dine brugerindstillinger."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push-meddelelser er ikke aktiveret på denne CommaFeed-instans."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Modtag push-meddelelser"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Modtag push-meddelelser, når nye feed-indlæg opdages. Aktiver \"Modtag push-meddelelser\" i indstillingerne for hvert feed, du ønsker at modtage meddelelser for."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Gendan adgangskode"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Rød"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Opdater"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registreringer er lukket på denne CommaFeed-instans"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Nulstil adgangskode"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Højreklik"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Gem"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Rul valgte indlæg til toppen af siden"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Rul jævnt, når du navigerer mellem poster"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Rulning"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Søg"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Vælg næste ulæste feed/kategori"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Vælg forrige ulæste feed/kategori"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Server-URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Del"
msgid "Sharing sites"
msgstr "Delingssider"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Skift"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Vis CommaFeeds egen kontekstmenu ved højreklik"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Vis bekræftelse, når alle indlæg markeres som læst"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Vis indlægsmenu (desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Vis indlægsmenu (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Vis eksternt link-ikon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Vis hjælp til tastaturgenveje"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Vis indfødt menu (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Vis stjerneikon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Vis ulæst antal i fanens favicon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Vis ulæst antal i fanens titel"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Tilmeld dig"
msgid "Something bad just happened..."
msgstr "Der er lige sket noget slemt..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Rum"
@@ -941,7 +1002,6 @@ msgstr "Stjerne"
msgid "Starred"
msgstr "Medvirkende"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -953,7 +1013,7 @@ msgstr "Abonner på feedet"
#: src/pages/app/AboutPage.tsx
msgid "Subscribe URL"
msgstr ""
msgstr "Tilmeldings-URL"
#: src/components/Alert.tsx
msgid "Success"
@@ -961,7 +1021,7 @@ msgstr "Succes"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Stryg overskrift til venstre"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Skift til lystema"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "System"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr ""
msgstr "Tags"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Blågrøn"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testmeddelelse sendt med succes."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "URL'en til det feed, du vil abonnere på. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Dette feed har et ældre filter, der ikke kan redigeres og ikke anvendes. Genopret venligst filteret ved hjælp af den nye udtrykseditor. Det ældre filterudtryk var: <0>{0}</0>"
#: 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 "Dette er din API-nøgle. Den kan bruges til visse skrivebeskyttede API-operationer og giver adgang til Fever API. Brug formularen nederst på siden til at generere en ny API-nøgle"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Denne indstilling kan forårsage rulleproblemer på visse browsere (f.eks. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Skift læsestatus for den aktuelle post"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Skift sidebjælke"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Skift stjernemarkering for aktuel post"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Emne"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Prøv CommaFeed med demokontoen: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Prøv demoen!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1024,25 +1104,27 @@ msgstr "Ulæst"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
msgstr "Fjern stjerne"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Afmeld"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Brugernøgle"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Brugernavn"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Brugernavn eller e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Violet"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Advarsel"
msgid "Website"
msgstr "Hjemmeside"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Velkommen! Det ser ud til at være første gang, du kører CommaFeed. Opret venligst en administratorkonto for at komme i gang."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Gul"
#: 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 "Du har ingen abonnementer endnu. "
msgstr "Du har ingen abonnementer endnu. Hvorfor ikke prøve at tilføje en ved at klikke på +-tegnet øverst på siden?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Dine feeds er blevet sat i kø til opdatering."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Din adgangskode er blevet ændret. Du kan nu logge ind med din nye adgangskode."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
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><2>.</2>"
msgstr "<0>Die vollständige Syntax ist </0><1>hier</1> verfügbar<2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>Haben Sie ein Konto?</0><1>Melden Sie sich an!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Benötigen Sie ein Konto?</0><1>Hier geht's zur Registrierung!</1>"
msgid "About"
msgstr "Über"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Zugriffstoken"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Aktionen"
@@ -60,6 +60,10 @@ msgstr "Benutzer hinzufügen"
msgid "Admin"
msgstr "Verwaltung"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Administrator-Benutzername"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "Verwaltung"
msgid "All"
msgstr "Alle"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Immer"
@@ -93,6 +96,14 @@ msgstr "Ankündigung"
msgid "API key"
msgstr "API-Schlüssel"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API-Token"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "App-Token"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Sind Sie sicher, dass Sie die Kategorie <0>{categoryName}</0> löschen möchten?"
@@ -122,32 +133,37 @@ msgid "Asc"
msgstr "Aufsteigend"
#: 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."
msgstr "Verfügbare Variablen sind „Titel“, „Inhalt“, „URL“, „Autor“ und „Kategorien“, und ihr Inhalt wird in Kleinbuchstaben umgewandelt, um den String-Vergleich zu erleichtern."
msgid "Auto-mark as read"
msgstr "Automatisch als gelesen markieren"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Zurück"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Zurück zum Login"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Blau"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Browser-Erweiterung"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Browser-Erweiterung für Chrome benötigt"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Browser-Erweiterung"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Browsertab"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Erstellen Sie einen Filterausdruck, um anzugeben, was Sie lesen möchten. Einträge, die nicht übereinstimmen, werden automatisch als gelesen markiert."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Abbrechen"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -187,7 +200,7 @@ msgstr "Menü schließen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Befehl"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
@@ -221,10 +234,18 @@ msgstr "Bestätigen"
msgid "Confirm password"
msgstr "Passwort bestätigen"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Passwort bestätigen"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Gemütlich"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Administrator-Konto erstellen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Strg"
@@ -247,7 +268,7 @@ msgstr "Einer JS Code der beim Laden der Seite ausgeführt wird"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Cyan"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -258,11 +279,14 @@ msgstr "Dunkel"
msgid "Date created"
msgstr "Erstellungsdatum"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "Tage"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Löschen"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Konto löschen"
@@ -283,6 +307,10 @@ msgstr "Beschr"
msgid "Detailed"
msgstr "Detailliert"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Browser-Verhalten \"Zum Aktualisieren ziehen\" deaktivieren"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "Link in Lesezeichenleiste ziehen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-Mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-Mail-Adresse"
@@ -334,20 +361,16 @@ msgstr "Geben Sie Ihr aktuelles Passwort ein, um die Profileinstellungen zu änd
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Anzahl der Einträge, die beim Scrollen über dem ausgewählten Eintrag bleiben sollen"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Eintragsüberschriften"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fehler"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Beispiel: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Erweitert"
@@ -365,7 +388,6 @@ msgstr "Erweiterungsoptionen"
msgid "Feed name"
msgstr "Feedname"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -377,11 +399,11 @@ msgstr "Alle Feeds jetzt abrufen"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever-API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever-API-URL"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Filterausdruck"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Schriftgröße"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Das Erzwingen des Feed-Abrufs ist noch nicht verfügbar."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -434,23 +456,19 @@ msgstr "Goodies"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Traube"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Grau"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Grün"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "ID"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
@@ -470,7 +488,15 @@ msgstr "In der erweiterten Ansicht werden Einträge beim Scrollen als gelesen ma
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Ersteinrichtung"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Ungültiger Link zum Zurücksetzen des Passworts. Bitte fordern Sie einen neuen an."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -504,7 +530,7 @@ msgstr "Hell"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limette"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Verbindung"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Link zur Dokumentation"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Abonnements werden geladen..."
msgid "Loading tags..."
msgstr "Tags werden geladen..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "Als gelesen markieren"
msgid "Mark as read up to here"
msgstr "Bis hierhin als gelesen markieren"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Markieren Sie Einträge in diesem Feed nach dieser Anzahl von Tagen als gelesen. Leer lassen zum Deaktivieren."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metriken"
@@ -596,7 +625,7 @@ msgstr "n.v."
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name"
msgstr ""
msgstr "Name"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Navigate to a subscription by entering its name"
@@ -604,9 +633,8 @@ msgstr "Navigieren Sie zu einem Abonnement, indem Sie seinen Namen eingeben"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Navigieren Sie zum nächsten Feed/Kategorie mit ungelesenen Einträgen, wenn Sie alle Einträge als gelesen markieren"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Niemals"
@@ -615,6 +643,10 @@ msgstr "Niemals"
msgid "New password"
msgstr "Neues Passwort"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Neues Passwort"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Neueste zuerst"
@@ -638,7 +670,7 @@ msgstr "Keine weiteren Einträge"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Keine Optionen zum Teilen verfügbar."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,11 +682,11 @@ msgstr "Älteste zuerst"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Auf dem Desktop"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Auf dem Handy"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
@@ -662,7 +694,7 @@ msgstr "Auf mobilen Geräten die Aktion-Buttons am unteren Ende des Bildschirms
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Gilt nur für die Modi Kompakt, Gemütlich und Detailliert"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -711,24 +743,23 @@ msgstr "Aktuellen Eintrag öffnen/schließen"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "OPML-Export"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML-Datei"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML-Datei ist erforderlich"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Orange"
#: src/pages/app/AboutPage.tsx
msgid "Order"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Übergeordnete Kategorie"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Passwort"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Passwort muss mindestens {minimumPasswordLength} Zeichen lang sein"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Passwortwiederherstellung"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Rosa"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -773,19 +807,44 @@ msgstr "Vorheriges"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Primärfarbe"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push-Benachrichtigungsdienst"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push-Benachrichtigungen"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push-Benachrichtigungen sind in Ihren Benutzereinstellungen nicht konfiguriert."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push-Benachrichtigungen sind auf dieser CommaFeed-Instanz nicht aktiviert."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Push-Benachrichtigungen erhalten"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Erhalten Sie Push-Benachrichtigungen, wenn neue Feed-Einträge entdeckt werden. Aktivieren Sie \"Push-Benachrichtigungen erhalten\" in den Einstellungen jedes Feeds, für den Sie Benachrichtigungen erhalten möchten."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Kennwort wiederherstellen"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Rot"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,11 +855,14 @@ msgstr "Aktualisieren"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registrierungen sind für diese CommaFeed-Instanz geschlossen"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Passwort zurücksetzen"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REST-API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Rechtsklick"
@@ -808,6 +870,7 @@ msgstr "Rechtsklick"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,19 +889,21 @@ msgid "Scrolling"
msgstr "Scrollen"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Suche"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Nächsten ungelesenen Feed/Kategorie auswählen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Vorherigen ungelesenen Feed/Kategorie auswählen"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Server-URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,8 +929,6 @@ msgstr "Teilen"
msgid "Sharing sites"
msgstr "Seiten teilen"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Verschiebung"
@@ -888,7 +951,7 @@ msgstr "Eintragsmenü anzeigen (Handy)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Symbol für externen Link anzeigen"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -904,17 +967,16 @@ msgstr "Natives Menü anzeigen (Desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Stern-Symbol anzeigen"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Anzahl ungelesener Nachrichten im Tab-Favicon anzeigen"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Anzahl ungelesener Nachrichten im Tab-Titel anzeigen"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Melden Sie sich an"
msgid "Something bad just happened..."
msgstr "Etwas Schlimmes ist gerade passiert..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Raum"
@@ -941,7 +1002,6 @@ msgstr "Stern"
msgid "Starred"
msgstr "Markiert"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -973,16 +1033,23 @@ msgstr "Zum Lightmode wechseln"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "System"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr ""
msgstr "Tags"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Blaugrün"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testbenachrichtigung erfolgreich gesendet."
#: 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."
@@ -992,10 +1059,19 @@ msgstr "Die URL für den Feed, den Sie abonnieren möchten. "
msgid "Theme"
msgstr "Thema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Dieser Feed verfügt über einen veralteten Filter, der nicht bearbeitet werden kann und nicht angewendet wird. Bitte erstellen Sie den Filter mit dem neuen Ausdruckseditor neu. Der veraltete Filterausdruck war: <0>{0}</0>"
#: 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 "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/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Diese Einstellung kann auf einigen Browsern (z. B. Safari) zu Scrollproblemen führen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Lesestatus des aktuellen Eintrags umschalten"
@@ -1008,6 +1084,10 @@ msgstr "Sidebar an- und ausschalten"
msgid "Toggle starred status of current entry"
msgstr "Markierungsstatus des aktuellen Eintrags ändern"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Thema"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Testen Sie CommaFeed mit dem Demokonto: demo/demo"
@@ -1026,23 +1106,25 @@ msgstr "Ungelesen"
msgid "Unstar"
msgstr "Stern entfernen"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Abbestellen"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Benutzerschlüssel"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Benutzername"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Benutzername oder E-Mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Violett"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,9 +1134,13 @@ msgstr "Warnung"
msgid "Website"
msgstr "Webseite"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Willkommen! Dies scheint das erste Mal zu sein, dass Sie CommaFeed ausführen. Bitte erstellen Sie ein Administrator-Konto, um zu beginnen."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Gelb"
#: 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?"
@@ -1063,3 +1149,7 @@ msgstr "Sie haben noch keine Abonnements."
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Ihr Feed wurde für die Aktualisierung eingereiht."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Ihr Passwort wurde geändert. Sie können sich nun mit Ihrem neuen Passwort anmelden."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>Complete syntax is available </0><1>here</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>Have an account?</0><1>Log in!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Need an account?</0><1>Sign up!</1>"
msgid "About"
msgstr "About"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Access token"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Actions"
@@ -60,6 +60,10 @@ msgstr "Add user"
msgid "Admin"
msgstr "Admin"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Admin user name"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "Admin"
msgid "All"
msgstr "All"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Always"
@@ -93,6 +96,14 @@ msgstr "Announcement"
msgid "API key"
msgstr "API key"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API token"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "App token"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Are you sure you want to delete category <0>{categoryName}</0>?"
@@ -122,14 +133,15 @@ msgid "Asc"
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."
msgstr "Available variables are 'title', 'content', 'url' 'author' and 'categories' and their content is converted to lower case to ease string comparison."
msgid "Auto-mark as read"
msgstr "Auto-mark as read"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Back"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Back to log in"
@@ -137,35 +149,36 @@ msgstr "Back to log in"
msgid "Blue"
msgstr "Blue"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Browser extension"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Browser extension required for Chrome"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Browser extention"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr "Browser tab"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Cancel"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -221,10 +234,18 @@ msgstr "Confirm"
msgid "Confirm password"
msgstr "Confirm password"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Confirm Password"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Cozy"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Create Admin Account"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -258,11 +279,14 @@ msgstr "Dark"
msgid "Date created"
msgstr "Date created"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "days"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Delete"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Delete account"
@@ -283,6 +307,10 @@ msgstr "Desc"
msgid "Detailed"
msgstr "Detailed"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Disable \"Pull to refresh\" browser behavior"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "Drag link to bookmark bar"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-mail address"
@@ -344,10 +371,6 @@ msgstr "Entry headers"
msgid "Error"
msgstr "Error"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Example: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Expanded"
@@ -365,7 +388,6 @@ msgstr "Extension options"
msgid "Feed name"
msgstr "Feed name"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -448,10 +470,6 @@ msgstr "Green"
msgid "Id"
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 "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"
@@ -472,6 +490,14 @@ msgstr "In expanded view, scrolling through entries mark them as read"
msgid "Indigo"
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Initial Setup"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Invalid password reset link. Please request a new one."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread"
@@ -532,7 +558,6 @@ msgstr "Loading subscriptions..."
msgid "Loading tags..."
msgstr "Loading tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "Mark as read"
msgid "Mark as read up to here"
msgstr "Mark as read up to here"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Mark entries in this feed as read after this number of days. Leave empty to disable."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metrics"
@@ -606,7 +635,6 @@ msgstr "Navigate to a subscription by entering its name"
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr "Navigate to the next category/feed with unread entries when marking all entries as read"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Never"
@@ -615,6 +643,10 @@ msgstr "Never"
msgid "New password"
msgstr "New password"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "New Password"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Newest first"
@@ -717,7 +749,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "OPML export"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML file"
@@ -743,18 +774,21 @@ msgid "Parent Category"
msgstr "Parent Category"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Password"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Password must be at least {minimumPasswordLength} characters"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Password Recovery"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Passwords do not match"
@@ -779,6 +813,31 @@ msgstr "Primary color"
msgid "Profile"
msgstr "Profile"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push notification service"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push notifications"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push notifications are not configured in your user settings."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push notifications are not enabled on this CommaFeed instance."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Receive push notifications"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Recover password"
@@ -796,11 +855,14 @@ msgstr "Refresh"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registrations are closed on this CommaFeed instance"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Reset Password"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Right click"
@@ -808,6 +870,7 @@ msgstr "Right click"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,8 +889,6 @@ msgid "Scrolling"
msgstr "Scrolling"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Search"
@@ -840,6 +901,10 @@ msgstr "Select next unread feed/category"
msgid "Select previous unread feed/category"
msgstr "Select previous unread feed/category"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Server URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Set focus on next entry without opening it"
@@ -864,8 +929,6 @@ msgstr "Share"
msgid "Sharing sites"
msgstr "Sharing sites"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Shift"
@@ -914,7 +977,6 @@ msgstr "Show unread count in tab favicon"
msgid "Show unread count in tab title"
msgstr "Show unread count in tab title"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Sign up"
msgid "Something bad just happened..."
msgstr "Something bad just happened..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Space"
@@ -941,7 +1002,6 @@ msgstr "Star"
msgid "Starred"
msgstr "Starred"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -975,7 +1035,6 @@ msgstr "Switch to light theme"
msgid "System"
msgstr "System"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Tags"
@@ -984,6 +1043,14 @@ msgstr "Tags"
msgid "Teal"
msgstr "Teal"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Test notification sent successfully."
#: 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 "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."
@@ -992,10 +1059,19 @@ msgstr "The URL for the feed you want to subscribe to. You can also use the webs
msgid "Theme"
msgstr "Theme"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
#: 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 "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"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "This setting can cause scrolling issues on some browsers (e.g. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Toggle read status of current entry"
@@ -1008,6 +1084,10 @@ msgstr "Toggle sidebar"
msgid "Toggle starred status of current entry"
msgstr "Toggle starred status of current entry"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Topic"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Try out CommaFeed with the demo account: demo/demo"
@@ -1026,16 +1106,18 @@ msgstr "Unread"
msgid "Unstar"
msgstr "Unstar"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Unsubscribe"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "User key"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "User name"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "User Name or E-mail"
@@ -1052,6 +1134,10 @@ msgstr "Warning"
msgid "Website"
msgstr "Website"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "Yellow"
@@ -1063,3 +1149,7 @@ msgstr "You don't have any subscriptions yet. Why not try adding one by clicking
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Your feeds have been queued for refresh."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Your password has been changed. You can now log in with your new password."

View File

@@ -18,10 +18,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed es un proyecto de código abierto. El código fuente está hospedado en </0><1>GitHub</1>."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>La sintaxis completa está disponible </0><1>aquí</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>¿Tienes una cuenta?</0><1>¡Inicia sesión!</1>"
@@ -39,6 +35,10 @@ msgstr "<0>¿Necesitas una cuenta?</0><1>¡Regístrate!</1>"
msgid "About"
msgstr "Acerca de"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Token de acceso"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Acciones"
@@ -61,6 +61,10 @@ msgstr "Añadir usuario"
msgid "Admin"
msgstr "Administrador"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nombre de usuario administrador"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -69,7 +73,6 @@ msgstr "Administrador"
msgid "All"
msgstr "Todo"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Siempre"
@@ -94,6 +97,14 @@ msgstr "Anuncio"
msgid "API key"
msgstr "Clave API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token de API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token de aplicación"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "¿Estás seguro de que deseas eliminar la categoría <0>{categoryName}</0>?"
@@ -123,50 +134,52 @@ msgid "Asc"
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."
msgstr "Las variables disponibles son 'título', 'contenido', 'url', 'autor' y 'categorías' y su contenido se convierte a minúsculas para facilitar la comparación de cadenas."
msgid "Auto-mark as read"
msgstr "Marcar como leído automáticamente"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Atrás"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Volver a iniciar sesión"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Azul"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extensión del navegador"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Se requiere extensión de navegador para Chrome"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Extensión del navegador"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr "Pestaña del navegador"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Crea una expresión de filtrado para indicar lo que quieres leer. Las entradas que no coincidan se marcarán como leídas automáticamente."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Cancelar"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -222,10 +235,18 @@ msgstr "Confirmar"
msgid "Confirm password"
msgstr "Confirmar contraseña"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Confirmar contraseña"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Acogedor"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Crear cuenta de administrador"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -248,7 +269,7 @@ msgstr "Código JS personalizado que se ejecutará al cargar la página"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Cian"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -259,11 +280,14 @@ msgstr "Oscuro"
msgid "Date created"
msgstr "Fecha de creación"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "días"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Borrar"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Borrar cuenta"
@@ -284,6 +308,10 @@ msgstr "Desc"
msgid "Detailed"
msgstr "Detallado"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Desactivar el comportamiento \"Arrastrar para actualizar\" del navegador"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -306,12 +334,11 @@ msgstr "Arrastra el enlace a la barra de marcadores"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "Correo electrónico"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Dirección de correo electrónico"
@@ -345,10 +372,6 @@ msgstr "Encabezados de las entradas"
msgid "Error"
msgstr "Error"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Ejemplo: {ejemplo}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Expandido"
@@ -366,7 +389,6 @@ msgstr "Opciones de la extensión"
msgid "Feed name"
msgstr "Nombre del feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -390,11 +412,11 @@ msgstr "Expresión de filtrado"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Tamaño de fuente"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Forzar la actualización de los feeds aún no está disponible."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -435,24 +457,20 @@ msgstr "Golosinas"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Uva"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Gris"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Verde"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Identificación"
#: 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á vacía, una expresión que se evalúa como \"verdadera\" o \"falso\". Si es falso, las nuevas entradas de este feed se marcarán como leídas automáticamente."
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "Si la entrada no cabe completamente en la pantalla"
@@ -471,7 +489,15 @@ msgstr "En la vista ampliada, al desplazarse por las entradas marcarlas como le
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Índigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Configuración inicial"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Enlace de restablecimiento de contraseña no válido. Por favor, solicita uno nuevo."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -505,7 +531,7 @@ msgstr "Claro"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Lima"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -515,7 +541,7 @@ msgstr "Enlace"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Enlace a la documentación"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -533,7 +559,6 @@ msgstr "Cargando suscripciones..."
msgid "Loading tags..."
msgstr "Cargando etiquetas..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -571,6 +596,10 @@ msgstr "Marcar como leído"
msgid "Mark as read up to here"
msgstr "Marcar como leído hasta aquí"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Marcar las entradas de este feed como leídas después de este número de días. Dejar vacío para desactivar."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Métricas"
@@ -605,9 +634,8 @@ msgstr "Navegar a una suscripción introduciendo su nombre"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Navegar a la siguiente categoría/feed con entradas no leídas al marcar todas como leídas"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Nunca"
@@ -616,6 +644,10 @@ msgstr "Nunca"
msgid "New password"
msgstr "Nueva contraseña"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nueva contraseña"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Las más recientes primero"
@@ -718,7 +750,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "Exportar OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "Archivo OPML"
@@ -729,7 +760,7 @@ msgstr "Es necesario un archivo OPML"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Naranja"
#: src/pages/app/AboutPage.tsx
msgid "Order"
@@ -744,24 +775,27 @@ msgid "Parent Category"
msgstr "Categoría principal"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Contraseña"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "La contraseña debe tener al menos {minimumPasswordLength} caracteres"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Recuperación de contraseña"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Las contraseñas no coinciden"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Rosa"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -774,19 +808,44 @@ msgstr "Previo"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Color primario"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Perfil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Servicio de notificaciones push"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Notificaciones push"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Las notificaciones push no están configuradas en tus ajustes de usuario."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Las notificaciones push no están habilitadas en esta instancia de CommaFeed."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Recibir notificaciones push"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Recibir notificaciones push cuando se descubran nuevas entradas. Activa \"Recibir notificaciones push\" en los ajustes de cada feed del que quieras recibir notificaciones."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Recuperar contraseña"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Rojo"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -797,11 +856,14 @@ msgstr "Actualizar"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Los registros están cerrados en esta instancia de CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Restablecer contraseña"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "API REST"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Clic derecho"
@@ -809,6 +871,7 @@ msgstr "Clic derecho"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -827,19 +890,21 @@ msgid "Scrolling"
msgstr "Desplazarse"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Buscar"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Seleccionar el siguiente feed/categoría no leído"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Seleccionar el anterior feed/categoría no leído"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL del servidor"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -865,8 +930,6 @@ msgstr "Compartir"
msgid "Sharing sites"
msgstr "Compartir sitios"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Shift"
@@ -915,7 +978,6 @@ msgstr "Mostrar recuento de no leídos en la pestaña favicon"
msgid "Show unread count in tab title"
msgstr "Mostrar recuento de no leídos en el título de la pestaña"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -925,7 +987,6 @@ msgstr "Registrarse"
msgid "Something bad just happened..."
msgstr "Algo malo acaba de pasar..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Espacio"
@@ -942,7 +1003,6 @@ msgstr "Estrella"
msgid "Starred"
msgstr "Destacado"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -976,14 +1036,21 @@ msgstr "Cambiar a tema claro"
msgid "System"
msgstr "Sistema"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Etiquetas"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Verde azulado"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Probar"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Notificación de prueba enviada con éxito."
#: 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."
@@ -993,10 +1060,19 @@ msgstr "La URL del feed al que desea suscribirse. También puede utilizar la URL
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Este feed tiene un filtro heredado que no se puede editar y no se aplica. Por favor, vuelve a crear el filtro usando el nuevo editor de expresiones. La expresión del filtro heredado era: <0>{0}</0>"
#: 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 "Esta es su clave API. Se puede utilizar para algunas operaciones API de solo lectura y otorga acceso a Fever API. Utilice el formulario en la parte inferior de la página para generar una nueva clave API"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Este ajuste puede causar problemas de desplazamiento en algunos navegadores (por ejemplo, Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Alternar estado de lectura de la entrada actual"
@@ -1009,6 +1085,10 @@ msgstr "Alternar barra lateral"
msgid "Toggle starred status of current entry"
msgstr "Alternar estado destacado de la entrada actual"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Tema"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Prueba CommaFeed con la cuenta de demostración: demo/demo"
@@ -1027,23 +1107,25 @@ msgstr "No leído"
msgid "Unstar"
msgstr "Desmarcar"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Cancelar suscripción"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Clave de usuario"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nombre de usuario"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nombre de usuario o correo electrónico"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Violeta"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1053,9 +1135,13 @@ msgstr "Advertencia"
msgid "Website"
msgstr "Sitio web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "¡Bienvenido! Parece que esta es la primera vez que ejecutas CommaFeed. Por favor, crea una cuenta de administrador para empezar."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Amarillo"
#: 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?"
@@ -1064,3 +1150,7 @@ msgstr "Aún no tienes ninguna suscripción. ¿Por qué no intentas agregar una
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Tus feeds se han puesto en cola para actualizarse."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Tu contraseña ha sido cambiada. Ahora puedes iniciar sesión con tu nueva contraseña."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed یک پروژه متن باز است. سورس‌ها در </0><1>GitHub</1> میزبانی می‌شوند."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,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>من جرمی از بلژیک هستم و بیش از 10 سال است که در اوقات فراغت خود روی CommaFeed کار می کنم. از علاقه شما به کمک به من برای ادامه حمایت از CommaFeed متشکرم.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>به یک حساب نیاز دارید؟</0><1>ثبت نام کنید
msgid "About"
msgstr "در مورد"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "رمز دسترسی"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "اعمال"
@@ -60,6 +60,10 @@ msgstr "افزودن کاربر"
msgid "Admin"
msgstr "مدیر"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "نام کاربری مدیر"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "مدیر"
msgid "All"
msgstr "همه"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "همیشه"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "خوراک را تجزیه و تحلیل کنید"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "اطلاعیه"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "کلید API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "توکن API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "توکن اپلیکیشن"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "آیا مطمئن هستید که می خواهید دسته <0>{categoryName}</0> را حذف کنید؟"
@@ -122,32 +133,37 @@ msgid "Asc"
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."
msgstr "متغیرهای موجود عبارتند از «عنوان»، «محتوا»، «url» «نویسنده» و «دسته‌ها» و محتوای آن‌ها برای سهولت مقایسه رشته‌ها به حروف کوچک تبدیل می‌شود."
msgid "Auto-mark as read"
msgstr "علامت‌گذاری خودکار به عنوان خوانده شده"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "برگشت"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "بازگشت برای ورود به سیستم"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "آبی"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "افزونه مرورگر"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "برای کروم افزونه مرورگر لازم است"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "زبانه مرورگر"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "یک عبارت فیلتر بسازید تا نشان دهید چه چیزی را می خواهید بخوانید. ورودی هایی که مطابقت ندارند به طور خودکار به عنوان خوانده شده علامت گذاری می شوند."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "لغو"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "بررسی کنید که خوراک کار می کند"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "بستن منو"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: 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"
@@ -203,7 +216,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"
@@ -221,13 +234,21 @@ msgstr "تأیید کنید"
msgid "Confirm password"
msgstr "رمز عبور را تأیید کنید"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "تأیید رمز عبور"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "دنج"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "ایجاد حساب مدیر"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ 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/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "فیروزه‌ای"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "تیره"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "تاریخ ایجاد"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "روز"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "حذف کنید"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "حذف حساب"
@@ -281,7 +305,11 @@ msgstr "توصیف"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "مفصل"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "غیرفعال کردن رفتار مرورگر «کشیدن برای نوسازی»"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "نمایش"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "حمایت مالی"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "پیوند را به نوار نشانک بکشید"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "ایمیل"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "آدرس ایمیل"
@@ -334,20 +361,16 @@ msgstr "رمز عبور فعلی خود را برای تغییر تنظیمات
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "تعداد ورودی‌هایی که هنگام پیمایش باید بالای ورودی انتخاب‌شده باقی بمانند"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "سرصفحه های ورودی"
#: src/components/Alert.tsx
msgid "Error"
msgstr "خطا"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "مثال: {مثال}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "گسترش یافت"
@@ -359,13 +382,12 @@ msgstr "اشتراک ها و دسته های خود را به عنوان یک ف
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "گزینه های افزونه"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "نام فید"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,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 ""
msgstr "URL مربوط به Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "بیان فیلتر"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "اندازه قلم"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "واکشی اجباری فیدها هنوز در دسترس نیست."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "آدرس اینترنتی فید تولید شده"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "برو به {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "خوبی ها"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "عنبی"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "خاکستری"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "سبز"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "اگر خالی نباشد، عبارتی به \"درست\" یا \"نادرست\" ارزیابی می شود. "
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "اگر ورودی کاملاً در صفحه نمایش جا نمی شود"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "در نمای بازشده، پیمایش در ورودی‌ها، آن
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "نیلی"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "تنظیمات اولیه"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "لینک بازنشانی رمز عبور نامعتبر است. لطفا درخواست جدید بدهید."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "آخرین پیام تازه کردن"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "روشن"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "لیمویی"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "پیوند"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "پیوند به مستندات"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "بارگیری اشتراک ها..."
msgid "Loading tags..."
msgstr "بارگیری برچسب ها..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,12 +569,12 @@ msgstr "خروج"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "فشار طولانی"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users"
msgstr "کاربران را مدیریت کنید"
msgstr "مدیریت کاربران"
#: src/components/header/Header.tsx
msgid "Mark all as read"
@@ -570,13 +595,17 @@ msgstr "علامت گذاری به عنوان خوانده شده"
msgid "Mark as read up to here"
msgstr "تا اینجا به عنوان خوانده شده علامت بزنید"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "ورودی های این فید را بعد از این تعداد روز به عنوان خوانده شده علامت گذاری کنید. برای غیرفعال کردن خالی بگذارید."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "متریک"
msgstr "شاخص‌ها"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "کلیک وسط"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "صفحه را به بالا ببرید"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "ناموجود"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "با وارد کردن نام اشتراک، به آن بروید"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "هنگام علامت‌گذاری همه ورودی‌ها به‌عنوان خوانده‌شده، به دسته‌بندی/فید بعدی با ورودی‌های خوانده‌نشده بروید"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "هرگز"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "رمز عبور جدید"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "رمز عبور جدید"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "ابتدا جدیدترین"
@@ -638,7 +670,7 @@ msgstr "ورودی دیگری وجود ندارد"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "هیچ گزینه اشتراک گذاری در دسترس نیست."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,27 +682,27 @@ msgstr "قدیمی ترین اول"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "در دسکتاپ"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "در موبایل"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "در موبایل، دکمه‌های عمل را در پایین صفحه نشان بده"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "فقط برای حالت های فشرده، دنج و مفصل اعمال می شود"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "اوه!"
msgstr "اوپس!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "باز کردن CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ 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"
@@ -711,28 +743,27 @@ msgstr "باز کردن/بستن ورودی فعلی"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "صادرات OPML"
msgstr "خروجی OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "فایل OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "فایل OPML الزامی است"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "نارنجی"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "سفارش"
msgstr "ترتیب"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "دسته والد"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "رمز عبور"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "رمز عبور باید حداقل {minimumPasswordLength} کاراکتر باشد"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "بازیابی رمز عبور"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "گذرواژه ها مطابقت ندارند"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "صورتی"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "موقعیت"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "قبلی"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "رنگ اصلی"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "نمایه"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "سرویس اعلان فشاری"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "اعلان های فشاری"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "اعلان‌های فشاری در تنظیمات کاربر شما پیکربندی نشده‌اند."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "اعلان‌های فشاری در این نمونه CommaFeed فعال نیستند."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "دریافت اعلان های فشاری"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "هنگام کشف ورودی های فید جدید، اعلان های فشاری دریافت کنید. «دریافت اعلان‌های فشاری» را در تنظیمات هر فیدی که می‌خواهید برای آن اعلان‌ها دریافت کنید، فعال کنید."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "بازیابی رمز عبور"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "قرمز"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "تازه کردن"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "ثبت نام در این نمونه CommaFeed بسته شده است"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "بازنشانی رمز عبور"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
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
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "ذخیره کنید"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "پیمایش ورودی انتخاب شده به بالای صفحه"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "هنگام پیمایش بین ورودی‌ها به آرامی حرک
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "پیمایش"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "جستجو"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "انتخاب فید/دسته بعدی خوانده نشده"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "انتخاب فید/دسته قبلی خوانده نشده"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "آدرس سرور"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,35 +929,33 @@ msgstr "به اشتراک بگذارید"
msgid "Sharing sites"
msgstr "اشتراک گذاری سایت ها"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "شیفت"
#: 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 ""
msgstr "نمایش منوی ورودی (موبایل)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
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"
@@ -900,21 +963,20 @@ msgstr "نمایش راهنمایی میانبر صفحه کلید"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "نمایش منوی بومی (دسکتاپ)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "نمایش آیکون ستاره"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "نمایش تعداد خوانده نشده در فاویکون زبانه"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "نمایش تعداد خوانده نشده در عنوان زبانه"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "ثبت نام کنید"
msgid "Something bad just happened..."
msgstr "اتفاق بدی افتاد..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "فضا"
@@ -941,7 +1002,6 @@ msgstr "ستاره"
msgid "Starred"
msgstr "ستاره دار"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "موفقیت"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "کشیدن هدر به سمت چپ"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -969,20 +1029,27 @@ msgstr "تغییر به تم تیره"
#: src/pages/WelcomePage.tsx
msgid "Switch to light theme"
msgstr "روی زمینه روشن"
msgstr "تغییر به تم روشن"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "سیستم"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "برچسب ها"
msgstr "برچسب‌ها"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "آبی مایل به سبز"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "تست"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
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."
@@ -992,9 +1059,18 @@ msgstr "URL فیدی که می خواهید در آن مشترک شوید. "
msgid "Theme"
msgstr "تم"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "این فید دارای یک فیلتر قدیمی است که قابل ویرایش نیست و اعمال نمی‌شود. لطفاً فیلتر را با استفاده از ویرایشگر جدید بازسازی کنید. عبارت فیلتر قدیمی: <0>{0}</0>"
#: 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 فقط خواندنی استفاده کرد و دسترسی به Fever API را فراهم می‌کند. از فرم پایین صفحه برای تولید کلید جدید استفاده کنید"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "این تنظیم ممکن است در برخی مرورگرها (مانند سافاری) باعث مشکلات پیمایش شود"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "وضعیت خواندن ورودی فعلی را تغییر دهید"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "تغییر وضعیت نوار کناری"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "تغییر وضعیت ستاره‌دار بودن ورودی فعلی"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "موضوع"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "CommaFeed را با حساب آزمایشی امتحان کنید: دم
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "دمو را امتحان کنید!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1024,25 +1104,27 @@ msgstr "خوانده نشده"
#: 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
msgid "Unsubscribe"
msgstr "لغو اشتراک"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "کلید کاربر"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "نام کاربری"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "نام کاربری یا ایمیل"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "بنفش"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "هشدار"
msgid "Website"
msgstr "وب سایت"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "خوش آمدید! به نظر می‌رسد این اولین بار است که CommaFeed را اجرا می‌کنید. لطفاً برای شروع یک حساب مدیر ایجاد کنید."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
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 "فیدهای شما برای نوسازی در صف قرار گرفتند."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "رمز عبور شما تغییر کرد. اکنون می توانید با رمز عبور جدید خود وارد شوید."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed on avoimen lähdekoodin projekti. Lähdekoodia isännöidään osoitteessa </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Onko sinulla tili?</0><1>Kirjaudu sisään!</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>Hei,</0><1>Olen Jérémie Belgiasta ja olen työskennellyt CommaFeedin parissa vapaa-ajallani jo yli 10 vuoden ajan. Kiitos mielenkiinnostasi auttaa minua jatkamaan CommaFeedin tukemista.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Tarvitsetko tilin?</0><1>Rekisteröidy!</1>"
msgid "About"
msgstr "Noin"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Käyttöoikeustunnus"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Toimet"
@@ -60,6 +60,10 @@ msgstr "Lisää käyttäjä"
msgid "Admin"
msgstr "Järjestelmänvalvoja"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Järjestelmänvalvojan käyttäjänimi"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Järjestelmänvalvoja"
msgid "All"
msgstr "Kaikki"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Aina"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analysoi syöte"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Ilmoitus"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "API-avain"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API-tunnus"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Sovellustunnus"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Haluatko varmasti poistaa luokan <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Haluatko varmasti peruuttaa kohteen <0>{feedName}</0> tilauksen?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Nouseva"
#: 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."
msgstr "Käytettävissä olevat muuttujat ovat 'title', 'content', 'url' 'author' ja 'categories', ja niiden sisältö muunnetaan pienillä kirjaimilla merkkijonojen vertailun helpottamiseksi."
msgid "Auto-mark as read"
msgstr "Merkitse automaattisesti luetuksi"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Takaisin"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Takaisin sisäänkirjautumiseen"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Sininen"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Selainlaajennus"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Selainlaajennus vaaditaan Chromessa"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Selaimen välilehti"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Rakenna suodatinlauseke määrittääksesi, mitä haluat lukea. Merkinnät, jotka eivät täsmää, merkitään luetuiksi automaattisesti."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Peruuta"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Tarkista, että syöttö toimii"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Sulje valikko"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "CommaFeed-selainlaajennuksen versio {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 on yhteensopiva Fever-API:n kanssa. Käytä seuraavaa URL-osoitetta Fever-yhteensopivassa mobiiliohjelmassasi. Kirjaudu sisään käyttäjätunnuksellasi ja <0>API-avaimellasi</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed seuraava lukematon kohde"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed-versio {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Vahvista"
msgid "Confirm password"
msgstr "Vahvista salasana"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Vahvista salasana"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Viihtyisä"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Luo ylläpitäjän tili"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Nykyinen salasana"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Mukautettu koodi"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Sovellettavat mukautetut CSS-säännöt"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Mukautettu JS-koodi, joka suoritetaan sivun latautuessa"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Syaani"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Tumma"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Luontipäivämäärä"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "päivää"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Poista"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Poista tili"
@@ -277,11 +301,15 @@ msgstr "Poista käyttäjä"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Laskeva"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Yksityiskohtainen"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Ota pois käytöstä selaimen \"Vedä päivittääksesi\" -toiminto"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Näyttö"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Lahjoita"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Vedä linkki kirjanmerkkipalkkiin"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "Sähköposti"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Sähköpostiosoite"
@@ -326,7 +353,7 @@ msgstr "Käytössä"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
msgstr ""
msgstr "Enter"
#: src/components/settings/ProfileSettings.tsx
msgid "Enter your current password to change profile settings"
@@ -334,20 +361,16 @@ msgstr "Anna nykyinen salasanasi muuttaaksesi profiiliasetuksia"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Merkintöjen määrä, joka pidetään valitun merkinnän yläpuolella vieritettäessä"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Merkintöjen otsikot"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Virhe"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Esimerkki: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Laajennettu"
@@ -359,13 +382,12 @@ msgstr "Vie tilauksesi ja luokat OPML-tiedostona, joka voidaan tuoda muihin syö
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Laajennuksen asetukset"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Syötteen nimi"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "Syötteen URL-osoite"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Nouda kaikki syötteeni nyt"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever-API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever-API:n URL-osoite"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Suodattava lauseke"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Fonttikoko"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Syötteiden pakotettu nouto ei ole vielä käytettävissä."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Luotu syötteen URL-osoite"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Siirry kohteeseen {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Hyvää"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Viinirypäle"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Harmaa"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Vihreä"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Jos ei tyhjä, lauseke, jonka arvo on \"tosi\" tai \"epätosi\". "
msgstr "Tunnus"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Jos merkintä ei mahdu kokonaan näytölle"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "Merkitse ne luetuiksi laajennetussa näkymässä vierittämällä merkin
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Alkuasetukset"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Virheellinen salasanan palautuslinkki. Pyydä uusi."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Viimeinen päivitysviesti"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Vaalea"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limetinvihreä"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Linkki"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Linkki dokumentaatioon"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Ladataan tilauksia..."
msgid "Loading tags..."
msgstr "Ladataan tunnisteita..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Uloskirjautuminen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Pitkä painallus"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Merkitse luetuksi"
msgid "Mark as read up to here"
msgstr "Merkitse luetuksi tähän asti"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Merkitse tämän syötteen merkinnät luetuiksi näin monen päivän kuluttua. Jätä tyhjäksi poistaaksesi käytöstä."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr ""
msgstr "Metriikat"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Keskipainike"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Siirrä sivua ylöspäin"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "–"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Siirry tilaukseen kirjoittamalla sen nimi"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Siirry seuraavaan luokkaan/syötteeseen, jossa on lukemattomia merkintöjä, kun kaikki merkinnät merkitään luetuiksi"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Ei koskaan"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Uusi salasana"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Uusi salasana"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Uusin ensin"
@@ -638,7 +670,7 @@ msgstr "Ei enää merkintöjä"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Jakamisvaihtoehtoja ei ole saatavilla."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Vanhin ensin"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Työpöydällä"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Mobiilissa"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Mobiilissa näytä toimintopainikkeet näytön alareunassa"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Koskee vain kompakti-, viihtyisä- ja yksityiskohtainen-tiloja"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Hups!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Avaa CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Avaa linkki"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Avaa linkki uudessa välilehdessä taustalla"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Avaa linkki uudessa välilehdessä"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Avaa valikko"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Avaa/sulje nykyinen merkintä"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "OPML-vienti"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML-tiedosto"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML-tiedosto vaaditaan"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oranssi"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Tilaus"
msgstr "Järjestys"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Pääluokka"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Salasana"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Salasanan on oltava vähintään {minimumPasswordLength} merkkiä pitkä"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Salasanan palautus"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Salasanat eivät täsmää"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Vaaleanpunainen"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Sijainti"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Edellinen"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Ensisijainen väri"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profiili"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push-ilmoituspalvelu"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push-ilmoitukset"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push-ilmoituksia ei ole määritetty käyttäjäasetuksissasi."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push-ilmoitukset eivät ole käytössä tässä CommaFeed-instanssissa."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Vastaanota push-ilmoituksia"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Vastaanota push-ilmoituksia, kun uusia syötemerkintöjä löytyy. Ota käyttöön \"Vastaanota push-ilmoituksia\" jokaisen syötteen asetuksissa, josta haluat saada ilmoituksia."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Palauta salasana"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Punainen"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Päivitä"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Tämän CommaFeed-esiintymän rekisteröinnit on suljettu"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Nollaa salasana"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST-API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Oikea napsautus"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Tallenna"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Vieritä valittu merkintä sivun yläreunaan"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Selaa sujuvasti navigoidessasi merkintöjen välillä"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Vieritys"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Etsi"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Valitse seuraava lukematon syöte/luokka"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Valitse edellinen lukematon syöte/luokka"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Palvelimen URL-osoite"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,35 +929,33 @@ msgstr "Jaa"
msgid "Sharing sites"
msgstr "Sivustojen jakaminen"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Vaihto"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Näytä CommaFeedin oma kontekstivalikko oikealla napsautuksella"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Näytä vahvistus, kun kaikki merkinnät merkitään luetuiksi"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Näytä merkintävalikko (työpöytä)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Näytä merkintävalikko (mobiili)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Näytä ulkoisen linkin kuvake"
#: 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ä"
msgstr "Näytä syötteet ja luokat, joissa ei ole lukemattomia merkintöjä"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show keyboard shortcut help"
@@ -900,21 +963,20 @@ msgstr "Näytä pikanäppäimen ohje"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Näytä natiivivalikko (työpöytä)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Näytä tähtikuvake"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Näytä lukemattomien määrä välilehden kuvakkeessa"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Näytä lukemattomien määrä välilehden otsikossa"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Rekisteröidy"
msgid "Something bad just happened..."
msgstr "Jotain pahaa tapahtui juuri..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Avaruus"
@@ -941,7 +1002,6 @@ msgstr "Tähti"
msgid "Starred"
msgstr "Tähdellä merkitty"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Onnistui"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Pyyhkäise otsikkoa vasemmalle"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Vaihda vaaleaan teemaan"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Järjestelmä"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr ""
msgstr "Tunnisteet"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Sinivihreä"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Testi"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testi-ilmoitus lähetetty onnistuneesti."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "Sen syötteen URL-osoite, jonka haluat tilata. "
msgid "Theme"
msgstr "Teema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Tässä syötteessä on vanha suodatin, jota ei voi muokata ja jota ei sovelleta. Luo suodatin uudelleen käyttämällä uutta lauseke-editoria. Vanha suodatinlauseke oli: <0>{0}</0>"
#: 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 "Tämä on API-avaimesi. Sitä voidaan käyttää joihinkin vain luku -API-toimintoihin ja se antaa pääsyn Fever-API:iin. Käytä sivun alareunassa olevaa lomaketta uuden API-avaimen luomiseen"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Tämä asetus voi aiheuttaa vieritysongelmia joissakin selaimissa (esim. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Vaihda nykyisen merkinnän lukutila"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Vaihda sivupalkkia"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Vaihda nykyisen merkinnän tähtimerkintää"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Aihe"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Kokeile CommaFeediä demotilillä: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Kokeile demoa!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Lukematon"
msgid "Unstar"
msgstr "Poista tähti"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Peruuta tilaus"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Käyttäjäavain"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Käyttäjänimi"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Käyttäjänimi tai sähköpostiosoite"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Violetti"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Varoitus"
msgid "Website"
msgstr "Verkkosivusto"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Tervetuloa! Näyttää siltä, että suoritat CommaFeediä ensimmäistä kertaa. Luo ylläpitäjän tili aloittaaksesi."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Keltainen"
#: 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 "Sinulla ei ole vielä tilauksia. "
msgstr "Sinulla ei ole vielä tilauksia. Mikset kokeilisi lisätä sellaista napsauttamalla sivun yläreunassa olevaa +-merkkiä?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Syötteesi on asetettu jonoon päivitystä varten."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Salasanasi on vaihdettu. Voit nyt kirjautua sisään uudella salasanallasi."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed est un projet open-source. Les sources sont hébergées sur </0><1>GitHub</1>."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>La syntaxe complète est disponible </0><1>ici</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>Déjà un compte ?</0><1>Connectez-vous !</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Besoin d'un compte ?</0><1>Enregistrez-vous !</1>"
msgid "About"
msgstr "À propos"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Jeton d'accès"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Actions"
@@ -60,6 +60,10 @@ msgstr "Ajouter un utilisateur"
msgid "Admin"
msgstr "Administrateur"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nom de l'administrateur"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "Administrateur"
msgid "All"
msgstr "Tout"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Toujours"
@@ -93,6 +96,14 @@ msgstr "Annonces"
msgid "API key"
msgstr "Clé API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Jeton API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Jeton Appli"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Êtes-vous sûr de vouloir supprimer la catégorie <0>{categoryName}</0> ?"
@@ -122,14 +133,15 @@ msgid "Asc"
msgstr "Ascendant"
#: 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."
msgstr "Les variables disponibles sont 'title', 'content', 'url' 'author' et 'categories' et leur contenu est converti en minuscules pour faciliter la comparaison de chaînes."
msgid "Auto-mark as read"
msgstr "Marquer automatiquement comme lu"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Retour"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Retour à la connexion"
@@ -137,35 +149,36 @@ msgstr "Retour à la connexion"
msgid "Blue"
msgstr "Bleu"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extension navigateur"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "L'extension navigateur est nécessaire sur Chrome"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Extension navigateur"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr "Onglet navigateur"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Créez une expression régulière pour filtrer ce que vous voulez lire. Les entrées qui ne correspondent pas seront automatiquement marquées comme lues."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Annuler"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -221,10 +234,18 @@ msgstr "Confirmer"
msgid "Confirm password"
msgstr "Confirmer le mot de passe"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Confirmer le mot de passe"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Cozy"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Créer un compte adminstrateur"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -258,11 +279,14 @@ msgstr "Foncé"
msgid "Date created"
msgstr "Date de création"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "jours"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Effacer"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Effacer le compte"
@@ -283,6 +307,10 @@ msgstr "Descendant"
msgid "Detailed"
msgstr "Vue détaillée"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Désactiver la fonction \"tirer pour rafraîchir\" du navigateur"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "Déplacez le lien vers la barre de favoris"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Adresse e-mail"
@@ -344,10 +371,6 @@ msgstr "En-têtes de l'entrée"
msgid "Error"
msgstr "Erreur"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Exemple : {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Vue étendue"
@@ -365,7 +388,6 @@ msgstr "Options de l'extension"
msgid "Feed name"
msgstr "Nom du flux"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -448,10 +470,6 @@ msgstr "Vert"
msgid "Id"
msgstr "Identifiant"
#: 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 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"
@@ -472,6 +490,14 @@ msgstr "En mode de lecture étendu, marquer les éléments comme lus lorsque la
msgid "Indigo"
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Configuration initiale"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Lien de réinitialisation de mot de passse invalide. Recommencez la procédure."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread"
@@ -532,7 +558,6 @@ msgstr "Chargement des abonnements..."
msgid "Loading tags..."
msgstr "Chargement des marqueurs..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "Marquer comme lu"
msgid "Mark as read up to here"
msgstr "Marquer comme lu jusqu'ici"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Marquer les entrées de ce flux comme lues après ce nombre de jours. Laissez vide pour désactiver."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Métriques"
@@ -606,7 +635,6 @@ msgstr "Naviguer vers un abonnement en entrant son nom"
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr "Aller vers la catégorie/le flux comportant des entrées non lues suivant après avoir marqué toutes les entrées lues"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Jamais"
@@ -615,6 +643,10 @@ msgstr "Jamais"
msgid "New password"
msgstr "Nouveau mot de passe"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nouveau mot de passe"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Plus récent en premier"
@@ -717,7 +749,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "Export du fichier OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "Fichier OPML"
@@ -743,18 +774,21 @@ msgid "Parent Category"
msgstr "Catégorie parente"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Mot de passe"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Le mot de passe doit mesurer au moins {minimumPasswordLength} caractères"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Récupération de mot de passe"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Les mots de passe ne correspondent pas"
@@ -779,6 +813,31 @@ msgstr "Couleur d'ambiance"
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Service de notifications Push"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Notifications Push"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Les notifications Push ne sont pas configurées dans vos préférences."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Les notifications Push ne sont pas disponibles dans cette instance CommaFeed."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Envoyer des notifications Push"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Permet de recevoir des notifications Push quand des nouvelles entrées sont découvertes pour un flux. Activez \"Envoyer des notifications Push\" dans les paramètres des flux pour lesquels vous souhaitez être notifié."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Récupérer le mot de passe"
@@ -796,11 +855,14 @@ msgstr "Rafraîchir"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Les inscriptions sont fermées sur cette instance de CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Réinitialiser le mot de passe"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "API REST"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Clic droit"
@@ -808,6 +870,7 @@ msgstr "Clic droit"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,8 +889,6 @@ msgid "Scrolling"
msgstr "Défilement"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Rechercher"
@@ -840,6 +901,10 @@ msgstr "Sélectionner l'article non lu suivant/la catégorie non lue suivante"
msgid "Select previous unread feed/category"
msgstr "Sélectionner l'article non lu précédent/la catégorie non lue précédente"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL du serveur"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Sélectionner l'article suivant sans l'ouvrir"
@@ -864,8 +929,6 @@ msgstr "Partager"
msgid "Sharing sites"
msgstr "Sites de partage"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Maj"
@@ -914,7 +977,6 @@ msgstr "Afficher le nombre d'entrées non lues dans la favicône de l'onglet"
msgid "Show unread count in tab title"
msgstr "Afficher le nombre d'entrées non lues dans le titre de l'onglet"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Créer un compte"
msgid "Something bad just happened..."
msgstr "Quelque chose s'est mal passé..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Espace"
@@ -941,7 +1002,6 @@ msgstr "Ajouter aux favoris"
msgid "Starred"
msgstr "Favoris"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -975,7 +1035,6 @@ msgstr "Activer le mode clair"
msgid "System"
msgstr "Système"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Marqueurs"
@@ -984,6 +1043,14 @@ msgstr "Marqueurs"
msgid "Teal"
msgstr "Bleu-vert"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Notification de test envoyée avec succès."
#: 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 "L'URL du flux auquel vous souhaitez vous abonner. Vous pouvez aussi utiliser l'URL du site directement et CommaFeed va essayer de trouver le flux dans la page."
@@ -992,10 +1059,19 @@ msgstr "L'URL du flux auquel vous souhaitez vous abonner. Vous pouvez aussi util
msgid "Theme"
msgstr "Thème"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Ce flux est configuré avec un filtre obsolète, qui ne peut être ni modifié ni appliqué. Vous devez recréer ce filtre à l'aide du nouvel éditeur d'expressions régulières. Le filtre configuré était : <0>{0}</0>"
#: 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 "Ceci est votre clef API. Elle peut être utilisée pour certaines opérations en lecture seule et donne accès à l'API Fever. Utilisez le formulaire en bas de la page pour générer une nouvelle clef API"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Cette fonctinnalité peut causer des problèmes de défilement sur certains navigateurs (Safari, par exemple)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Marquer l'entrée actuelle comme lue/non lue"
@@ -1008,6 +1084,10 @@ msgstr "Montrer/cacher la barre latérale"
msgid "Toggle starred status of current entry"
msgstr "Montrer/cacher le statut favori de l'entrée"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Sujet"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Essayez CommaFeed avec le compte de démonstration : demo/demo"
@@ -1026,16 +1106,18 @@ msgstr "Non lu"
msgid "Unstar"
msgstr "Retirer des favoris"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Se désabonner"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Clé utilisateur"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nom"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nom d'utilisateur ou e-mail"
@@ -1052,6 +1134,10 @@ msgstr "Attention"
msgid "Website"
msgstr "Site web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Bienvenue ! Il semble que ce soit le premier démarrage de Commafeed. Avant tout, vous devez créer un compte administrateur."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "Jaune"
@@ -1063,3 +1149,7 @@ msgstr "Vous n'avez pas encore d'abonnements. Pourquoi ne pas essayer d'en ajout
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Vos flux sont en cours de rafraîchissement"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Votre mot de passe a été modifié. Vous pouvez vous connecter avec votre nouveau mot de passe."

File diff suppressed because it is too large Load Diff

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>A CommaFeed egy nyílt forráskódú projekt. A források a </0><1>GitHubon</1> érhetőek el."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Van fiókja?</0><1>Jelentkezzen be!</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>Szia,</0><1>Jérémie vagyok Belgiumból, és immár több mint 10 éve foglalkozom a CommaFeeddzel a szabadidőmben. Köszönöm, hogy segítesz a CommaFeed támogatásának folytatásában.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,13 +34,17 @@ msgstr "<0>Fiókra van szüksége?</0><1>Regisztráljon!</1>"
msgid "About"
msgstr "Kb"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Hozzáférési token"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Műveletek"
#: src/components/content/add/AddCategory.tsx
msgid "Add"
msgstr ""
msgstr "Hozzáadás"
#: src/pages/app/AddPage.tsx
msgid "Add category"
@@ -58,7 +58,11 @@ msgstr "Felhasználó hozzáadása"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin"
msgstr ""
msgstr "Adminisztráció"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Adminisztrátor felhasználóneve"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
@@ -68,10 +72,9 @@ msgstr ""
msgid "All"
msgstr "Mind"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Mindig"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Hírcsatorna elemzése"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Bejelentés"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "API kulcs"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API token"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "App token"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Biztosan törölni szeretné a(z) <0>{categoryName}</0> kategóriát?"
@@ -119,35 +130,40 @@ msgstr "Biztosan le szeretne iratkozni a következőről: <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Növekvő"
#: 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."
msgstr "A rendelkezésre álló változók a következők: 'cím', 'tartalom', 'url' 'szerző' és 'kategóriák', és tartalmukat a rendszer kisbetűssé alakítja a karakterlánc-összehasonlítás megkönnyítése érdekében."
msgid "Auto-mark as read"
msgstr "Automatikus megjelölés olvasottként"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Vissza"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Vissza a bejelentkezéshez"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Kék"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Böngésző kiterjesztés"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Chrome-hoz böngészőbővítmény szükséges"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Böngésző fül"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Hozzon létre egy szűrőkifejezést annak megjelölésére, hogy mit szeretne olvasni. A nem egyező bejegyzések automatikusan olvasottként lesznek megjelölve."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Mégse"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Ellenőrizze, hogy a feed működik-e"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Menü bezárása"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "CommaFeed böngészőbővítmény {browserExtensionVersion} verzió."
#: 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 "A CommaFeed kompatibilis a Fever API-val. Használja a következő URL-t Fever-kompatibilis mobilkliensében. Jelentkezzen be felhasználónevével és <0>API-kulcsával</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed következő olvasatlan elem"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed {version} ({revision}) verzió."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Erősítse meg"
msgid "Confirm password"
msgstr "Erősítse meg a jelszót"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Jelszó megerősítése"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Hangulatos"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Adminisztrátori fiók létrehozása"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Jelenlegi jelszó"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Egyedi kód"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Alkalmazandó egyedi CSS szabályok"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Az oldal betöltésekor végrehajtandó egyedi JS kód"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Ciánkék"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Sötét"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Létrehozás dátuma"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "nap"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Törlés"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Fiók törlése"
@@ -277,11 +301,15 @@ msgstr "Felhasználó törlése"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Csökkenő"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Részletes"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "A böngésző „Húzza a frissítéshez” funkciójának letiltása"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Kijelző"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Adományozás"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Húzza a hivatkozást a könyvjelzősávra"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr ""
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-mail cím"
@@ -326,7 +353,7 @@ msgstr "Engedélyezve"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
msgstr ""
msgstr "Enter"
#: src/components/settings/ProfileSettings.tsx
msgid "Enter your current password to change profile settings"
@@ -334,20 +361,16 @@ msgstr "Adja meg jelenlegi jelszavát a profilbeállítások módosításához"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Görgetéskor a kiválasztott bejegyzés felett tartandó bejegyzések száma"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Bejegyzés fejlécek"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Hiba"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Példa: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Kiterjesztve"
@@ -359,29 +382,28 @@ msgstr "Exportálja előfizetéseit és kategóriáit OPML-fájlként, amely imp
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Bővítmény beállításai"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Hírcsatorna neve"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
msgstr ""
msgstr "Feed URL"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Összes feed frissítése most"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever API URL"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Szűrő kifejezés"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Betűméret"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "A feedek kényszerített lekérése még nem érhető el."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Hírcsatorna generált URL-je"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Ugrás ide: {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Jók"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Szőlő"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Szürke"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Zöld"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Ha nem üres, akkor 'igaz' vagy 'hamis' értékre kiértékelő kifejezés. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Ha a bejegyzés nem fér el teljesen a képernyőn"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "Kibontott nézetben a bejegyzések görgetése olvasottként jelöli meg
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigókék"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Kezdeti beállítás"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Érvénytelen jelszó-visszaállítási link. Kérjen egy újat."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,21 +526,21 @@ msgstr "Utolsó frissítési üzenet"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Világos"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limeszín"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link"
msgstr ""
msgstr "Hivatkozás"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Link a dokumentációhoz"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Előfizetések betöltése..."
msgid "Loading tags..."
msgstr "Címkék betöltése..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Kijelentkezés"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Hosszú gombnyomás"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Megjelölés olvasottként"
msgid "Mark as read up to here"
msgstr "Megjelölés idáig olvasottként"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Ennyi nap után jelölje meg olvasottként a hírcsatorna bejegyzéseit. Letiltáshoz hagyja üresen."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr ""
msgstr "Metrikák"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Középső kattintás"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Mozgassa felfelé az oldalt"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Navigáljon egy előfizetéshez a nevének megadásával"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Navigálás a következő olvasatlan bejegyzéseket tartalmazó kategóriára/hírcsatornára, ha minden bejegyzést olvasottnak jelöl"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Soha"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Új jelszó"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Új jelszó"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "A legújabbak először"
@@ -638,7 +670,7 @@ msgstr "Nincs több bejegyzés"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Nincsenek elérhető megosztási lehetőségek."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "A legidősebb első"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Asztali gépen"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Mobilon"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Mobilon mutassa a műveletgombokat a képernyő alján"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Csak a kompakt, hangulatos és részletes módokra vonatkozik"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Hoppá!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "CommaFeed megnyitása"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Link megnyitása"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Link megnyitása új háttérlapokon"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Link megnyitása új lapon"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Menü megnyitása"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Aktuális bejegyzés megnyitása/zárása"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr ""
msgstr "OPML exportálás"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML fájl"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML fájl megadása kötelező"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Narancssárga"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Rendelés"
msgstr "Sorrend"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Szülő kategória"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Jelszó"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "A jelszónak legalább {minimumPasswordLength} karakterből kell állnia"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Jelszó helyreállítás"
msgstr "Jelszó helyreállítása"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "A jelszavak nem egyeznek"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Rózsaszín"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Pozíció"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Előző"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Elsődleges szín"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push értesítési szolgáltatás"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push értesítések"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "A push értesítések nincsenek konfigurálva a felhasználói beállításokban."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "A push értesítések nincsenek engedélyezve ezen a CommaFeed példányon."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Push értesítések fogadása"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Push értesítések fogadása új feed-bejegyzések felfedezésekor. Engedélyezze a „Push értesítések fogadása” opciót minden olyan feed beállításaiban, amelyről értesítést szeretne kapni."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Jelszó helyreállítása"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Piros"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Frissítés"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "A regisztrációk le vannak zárva ezen a CommaFeed példányon"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Jelszó visszaállítása"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Jobb klikk"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Mentés"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "A kiválasztott bejegyzés görgetése az oldal tetejére"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Sima görgetés, amikor a bejegyzések között navigál"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Görgetés"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Keresés"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Következő olvasatlan feed/kategória kiválasztása"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Előző olvasatlan feed/kategória kiválasztása"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Szerver URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,35 +929,33 @@ msgstr "Oszd meg"
msgid "Sharing sites"
msgstr "Webhelyek megosztása"
#: src/components/KeyboardShortcutsHelp.tsx
#: 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 "A CommaFeed saját környezeti menüjének megjelenítése jobb gombbal történő kattintáskor"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Megerősítés kérése, ha minden bejegyzést olvasottnak jelöl"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Bejegyzés menü megjelenítése (asztali gép)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Bejegyzés menü megjelenítése (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Külső hivatkozás ikon megjelenítése"
#: 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"
msgstr "Az olvasatlan bejegyzés nélküli feedek és kategóriák megjelenítése"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show keyboard shortcut help"
@@ -900,34 +963,32 @@ msgstr "A billentyűparancsok súgójának megjelenítése"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Natív menü megjelenítése (asztali gép)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Csillag ikon megjelenítése"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Olvasatlan darabszám megjelenítése a tab faviconján"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Olvasatlan darabszám megjelenítése a tab címében"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
msgstr "Regisztráljon"
msgstr "Regisztráció"
#: src/pages/ErrorPage.tsx
msgid "Something bad just happened..."
msgstr "Valami rossz történt..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr ""
msgstr "Szóköz"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -941,7 +1002,6 @@ msgstr "Csillag"
msgid "Starred"
msgstr "Csillaggal megjelölve"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Siker"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Fejléc elhúzása balra"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Váltás világos témára"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Rendszer"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Címkék"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Kékeszöld"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Teszt"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "A tesztértesítés sikeresen elküldve."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "Az előfizetni kívánt hírcsatorna URL-je. "
msgid "Theme"
msgstr "Téma"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Ez a feed egy régi szűrővel rendelkezik, amely nem szerkeszthető és nem kerül alkalmazásra. Kérjük, hozza létre újra a szűrőt az új kifejezésszerkesztővel. A régi szűrőkifejezés a következő volt: <0>{0}</0>"
#: 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 "Ez az Ön API-kulcsa. Felhasználható néhány írásvédett API-művelethez, és hozzáférést biztosít a Fever API-hoz. Használja az oldal alján található űrlapot egy új API-kulcs létrehozásához"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Ez a beállítás görgetési problémákat okozhat egyes böngészőkben (pl. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Az aktuális bejegyzés olvasási állapotának váltása"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Oldalsáv ki/be"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Az aktuális bejegyzés csillagozott állapotának váltása"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Téma"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Próbálja ki a CommaFeed-et a demo fiókkal: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Próbálja ki a demót!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1024,25 +1104,27 @@ msgstr "Olvasatlan"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
msgstr "Csillag eltávolítása"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Leiratkozás"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Felhasználói kulcs"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Felhasználónév"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Felhasználói név vagy e-mail cím"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Ibolyakék"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,9 +1134,13 @@ msgstr "Figyelem"
msgid "Website"
msgstr "Webhely"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Üdvözöljük! Úgy tűnik, ez az első alkalom, hogy a CommaFeedet futtatja. Kérjük, hozzon létre egy rendszergazdai fiókot a kezdéshez."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Sárga"
#: 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?"
@@ -1062,4 +1148,8 @@ msgstr "Még nincs előfizetése. "
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "A feedek bekerültek a frissítési várólistára."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "A jelszava megváltozott. Most már bejelentkezhet az új jelszavával."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed adalah proyek sumber terbuka. Sumbernya di-host di </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Punya akun?</0><1>Masuk!</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>Hai,</0><1>Saya Jérémie dari Belgia dan saya telah mengerjakan CommaFeed di waktu luang saya selama lebih dari 10 tahun sekarang. Terima kasih telah tertarik membantu saya terus mendukung CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Butuh akun?</0><1>Daftar!</1>"
msgid "About"
msgstr "Tentang"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Token akses"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Tindakan"
@@ -58,7 +58,11 @@ msgstr "Tambahkan pengguna"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin"
msgstr ""
msgstr "Admin"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nama pengguna admin"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
@@ -68,10 +72,9 @@ msgstr ""
msgid "All"
msgstr "Semua"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Selalu"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analisis umpan"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Pengumuman"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "kunci API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token aplikasi"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Anda yakin ingin menghapus kategori <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Yakin ingin berhenti berlangganan <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Menaik"
#: 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."
msgstr "Variabel yang tersedia adalah 'judul', 'konten', 'url' 'penulis' dan 'kategori' dan kontennya diubah menjadi huruf kecil untuk memudahkan perbandingan string."
msgid "Auto-mark as read"
msgstr "Tandai otomatis sebagai telah dibaca"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Kembali"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Kembali untuk masuk"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Biru"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Ekstensi browser"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Ekstensi browser diperlukan untuk Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Tab browser"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Bangun ekspresi filter untuk menunjukkan apa yang ingin Anda baca. Entri yang tidak cocok akan ditandai sebagai telah dibaca secara otomatis."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Batal"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Periksa apakah umpannya berfungsi"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Tutup menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Ekstensi browser CommaFeed versi {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 kompatibel dengan Fever API. Gunakan URL berikut di klien seluler Anda yang kompatibel dengan Fever. Login dengan nama pengguna dan <0>kunci API</0> Anda."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed item yang belum dibaca berikutnya"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "Versi CommaFeed {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Konfirmasi"
msgid "Confirm password"
msgstr "Konfirmasi kata sandi"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Konfirmasi Kata Sandi"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Nyaman"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Buat Akun Admin"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Kata sandi saat ini"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Kode khusus"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Aturan CSS khusus yang akan diterapkan"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Kode JS khusus yang akan dieksekusi saat pemuatan halaman"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Sian"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Gelap"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Tanggal dibuat"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "hari"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Hapus"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Hapus akun"
@@ -277,11 +301,15 @@ msgstr "Hapus pengguna"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Menurun"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detail"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Nonaktifkan perilaku browser \"Tarik untuk menyegarkan\""
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Tampilan"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Donasi"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Seret tautan ke bilah bookmark"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "Email"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Alamat email"
@@ -334,20 +361,16 @@ msgstr "Masukkan kata sandi Anda saat ini untuk mengubah pengaturan profil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Entri yang harus tetap berada di atas entri yang dipilih saat menggulir"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Header entri"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Kesalahan"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Contoh: {contoh}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Diperluas"
@@ -359,13 +382,12 @@ msgstr "Ekspor langganan dan kategori Anda sebagai file OPML yang dapat diimpor
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Opsi ekstensi"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Nama umpan"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "URL Umpan"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Ambil semua umpan saya sekarang"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "URL Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Memfilter ekspresi"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Ukuran font"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Pengambilan paksa umpan belum tersedia."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Url umpan yang dihasilkan"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Buka {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,31 +456,27 @@ msgstr "Pernak-pernik"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Anggur"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Abu-abu"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Hijau"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Jika tidak kosong, ekspresi mengevaluasi ke 'benar' atau 'salah'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Jika entri tidak sepenuhnya muat di layar"
#: 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."
msgstr "Jika Anda menemui masalah, harap laporkan di halaman masalah proyek GitHub."
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
@@ -470,7 +488,15 @@ msgstr "Dalam tampilan yang diperluas, menggulir entri menandainya sebagai telah
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Nila"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Pengaturan Awal"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Tautan pengaturan ulang kata sandi tidak valid. Silakan minta yang baru."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Pesan penyegaran terakhir"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Terang"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limau"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Tautan"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Tautan ke dokumentasi"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Memuat langganan..."
msgid "Loading tags..."
msgstr "Memuat tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Keluar"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Tekan lama"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Tandai sebagai telah dibaca"
msgid "Mark as read up to here"
msgstr "Tandai sebagai telah dibaca sampai di sini"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Tandai entri dalam umpan ini sebagai telah dibaca setelah jumlah hari ini. Biarkan kosong untuk menonaktifkan."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metrik"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Klik tengah"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -604,17 +633,20 @@ msgstr "Navigasikan ke langganan dengan memasukkan namanya"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Navigasikan ke kategori/umpan berikutnya dengan entri yang belum dibaca saat menandai semua entri sebagai telah dibaca"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Tidak pernah"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Kata sandi baru"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Kata Sandi Baru"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Terbaru dulu"
@@ -638,7 +670,7 @@ msgstr "Tidak ada entri lagi"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Tidak ada opsi berbagi yang tersedia."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Tertua dulu"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Di desktop"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Di seluler"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Di seluler, tampilkan tombol tindakan di bagian bawah layar"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Hanya berlaku untuk mode ringkas, nyaman, dan detail"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Ups!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Buka CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Buka tautan"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Buka tautan di tab latar belakang baru"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Buka tautan di tab baru"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Buka menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Buka/tutup entri saat ini"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "ekspor OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "file OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "File OPML diperlukan"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oranye"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Pesan"
msgstr "Urutan"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Kategori Induk"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Kata Sandi"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Kata sandi harus minimal {minimumPasswordLength} karakter"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Pemulihan Kata Sandi"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Kata sandi tidak cocok"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Merah Muda"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Posisi"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Sebelumnya"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Warna utama"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Layanan notifikasi push"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Notifikasi push"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Notifikasi push tidak dikonfigurasi dalam pengaturan pengguna Anda."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Notifikasi push tidak diaktifkan pada instans CommaFeed ini."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Terima notifikasi push"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Terima notifikasi push saat entri umpan baru ditemukan. Aktifkan \"Terima notifikasi push\" di pengaturan setiap umpan yang ingin Anda terima notifikasinya."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Pulihkan kata sandi"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Merah"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Segarkan"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Pendaftaran ditutup pada instans CommaFeed ini"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Atur Ulang Kata Sandi"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Klik kanan"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Simpan"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Gulir entri yang dipilih ke bagian atas halaman"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Gulir dengan lancar saat menavigasi antar entri"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Menggulir"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Pencarian"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Pilih umpan/kategori belum dibaca berikutnya"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Pilih umpan/kategori belum dibaca sebelumnya"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL Server"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Bagikan"
msgid "Sharing sites"
msgstr "Berbagi situs"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Pergeseran"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Tampilkan menu konteks CommaFeed sendiri pada klik kanan"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Tampilkan konfirmasi saat menandai semua entri sebagai telah dibaca"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Tampilkan menu entri (desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Tampilkan menu entri (seluler)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Tampilkan ikon tautan eksternal"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Tampilkan bantuan pintasan keyboard"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Tampilkan menu asli (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Tampilkan ikon bintang"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Tampilkan jumlah yang belum dibaca di favicon tab"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Tampilkan jumlah yang belum dibaca di judul tab"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,10 +986,9 @@ msgstr "Daftar"
msgid "Something bad just happened..."
msgstr "Sesuatu yang buruk baru saja terjadi..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Luar Angkasa"
msgstr "Spasi"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -941,7 +1002,6 @@ msgstr "Bintang"
msgid "Starred"
msgstr "Berbintang"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Sukses"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Geser header ke kiri"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Beralih ke tema terang"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Sistem"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Tag"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Hijau Kebiruan"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Tes"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Notifikasi tes berhasil dikirim."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "URL untuk umpan yang ingin Anda langgani. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Umpan ini memiliki filter lama yang tidak dapat diedit dan tidak diterapkan. Silakan buat ulang filter menggunakan editor ekspresi baru. Ekspresi filter lama adalah: <0>{0}</0>"
#: 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 "Ini adalah kunci API Anda. Ini dapat digunakan untuk beberapa operasi API baca-saja dan memberikan akses ke Fever API. Gunakan formulir di bagian bawah halaman untuk membuat kunci API baru"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Pengaturan ini dapat menyebabkan masalah pengguliran pada beberapa browser (misalnya Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Beralih status baca entri saat ini"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Beralih bilah sisi"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Beralih status berbintang entri saat ini"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Topik"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Cobalah CommaFeed dengan akun demo: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Coba demonya!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Belum Dibaca"
msgid "Unstar"
msgstr "Hapus bintang"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Berhenti berlangganan"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Kunci pengguna"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nama pengguna"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nama Pengguna atau Email"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Violet"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Peringatan"
msgid "Website"
msgstr "Situs Web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Selamat datang! Ini sepertinya pertama kalinya Anda menjalankan CommaFeed. Silakan buat akun administrator untuk memulai."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Kuning"
#: 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 "Anda belum memiliki langganan. "
msgstr "Anda belum memiliki langganan. Mengapa tidak mencoba menambahkannya dengan mengklik tanda + di bagian atas halaman?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Umpan Anda telah dimasukkan ke antrean untuk penyegaran."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Kata sandi Anda telah diubah. Sekarang Anda dapat masuk dengan kata sandi baru Anda."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed è un progetto open-source. I sorgenti sono ospitati su </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Hai un account?</0><1>Accedi!</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>Ehi,</0><1>sono Jérémie dal Belgio e lavoro a CommaFeed nel mio tempo libero da oltre 10 anni. Grazie per l'interesse nell'aiutarmi a continuare a supportare CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Hai bisogno di un account?</0><1>Registrati!</1>"
msgid "About"
msgstr "Circa"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Token di accesso"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Azioni"
@@ -60,6 +60,10 @@ msgstr "Aggiungi utente"
msgid "Admin"
msgstr "Ammin"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nome utente amministratore"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Ammin"
msgid "All"
msgstr "Tutto"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Sempre"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analizza feed"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Annuncio"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "Chiave API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token app"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Sei sicuro di voler eliminare la categoria <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Sei sicuro di voler annullare l'iscrizione 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."
msgstr "Le variabili disponibili sono 'titolo', 'contenuto', 'url' 'autore' e 'categorie' e il loro contenuto viene convertito in minuscolo per facilitare il confronto delle stringhe."
msgid "Auto-mark as read"
msgstr "Contrassegna automaticamente come letto"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Indietro"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Torna per accedere"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Blu"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Estensione del browser"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Estensione del browser richiesta per Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Scheda del browser"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Crea un'espressione di filtro per indicare cosa vuoi leggere. Le voci che non corrispondono verranno contrassegnate automaticamente come lette."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Annulla"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Verifica che il feed funzioni"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Chiudi menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Versione dell'estensione del browser 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 è compatibile con l'API Fever. Utilizza il seguente URL nel tuo client mobile compatibile con Fever. Accedi con il tuo nome utente e la tua <0>chiave API</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed successivo elemento non letto"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed versione {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,10 +234,18 @@ msgstr "Conferma"
msgid "Confirm password"
msgstr "Conferma password"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Conferma password"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Accogliente"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Crea account amministratore"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "ctrl"
@@ -235,34 +256,37 @@ msgstr "Password attuale"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Codice personalizzato"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Regole CSS personalizzate che verranno applicate"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Codice JS personalizzato che verrà eseguito al caricamento della pagina"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Ciano"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Scuro"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Data di creazione"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "giorni"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Elimina"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Elimina account"
@@ -277,11 +301,15 @@ msgstr "Elimina utente"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Desc"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Dettagliato"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Disabilita il comportamento del browser \"Trascina per aggiornare\""
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Visualizzazione"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Dona"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Trascina il collegamento sulla barra dei preferiti"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr ""
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Indirizzo e-mail"
@@ -334,20 +361,16 @@ msgstr "Inserisci la tua password attuale per modificare le impostazioni del pro
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Voci da mantenere sopra la voce selezionata durante lo scorrimento"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Intestazioni delle voci"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Errore"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Esempio: {esempio}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Espanso"
@@ -359,13 +382,12 @@ msgstr "Esporta le tue iscrizioni e categorie come file OPML che può essere imp
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Opzioni estensione"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Nome del feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "URL feed"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Aggiorna tutti i miei feed ora"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "API Fever"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "URL API Fever"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Espressione filtrante"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Dimensione carattere"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "L'aggiornamento forzato dei feed non è ancora disponibile."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "URL feed generato"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Vai a {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Chicche"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Uva"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Grigio"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Verde"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Se non è vuota, un'espressione valutata come 'vero' o 'falso'. "
msgstr "ID"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Se la voce non entra interamente nello schermo"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "Nella vista espansa, scorrendo le voci contrassegnale come lette"
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indaco"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Configurazione iniziale"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Link di ripristino password non valido. Richiedine uno nuovo."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Ultimo messaggio di aggiornamento"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Chiaro"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Lime"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Collegamento"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Link alla documentazione"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Caricamento abbonamenti..."
msgid "Loading tags..."
msgstr "Caricamento tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Disconnessione"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Pressione prolungata"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Contrassegna come letto"
msgid "Mark as read up to here"
msgstr "Contrassegna come letto fino a qui"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Contrassegna le voci in questo feed come lette dopo questo numero di giorni. Lascia vuoto per disabilitare."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metriche"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Clic centrale"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Sposta la pagina in alto"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "N/D"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Navigare verso un abbonamento inserendo il suo nome"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Passa alla categoria/feed successivo con voci non lette quando contrassegni tutte le voci come lette"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Mai"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nuova password"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nuova password"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Il più recente prima"
@@ -638,11 +670,11 @@ msgstr "Non ci sono più voci"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Nessuna opzione di condivisione disponibile."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
msgstr "Non è stato trovato nulla"
msgstr "Nessun risultato trovato"
#: src/pages/app/AboutPage.tsx
msgid "Oldest first"
@@ -650,19 +682,19 @@ msgstr "Il più vecchio prima"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Su computer"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Su mobile"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Su mobile, mostra i pulsanti di azione in fondo allo schermo"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Si applica solo alle modalità compatta, accogliente e dettagliata"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Ops!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Apri CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Apri collegamento"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Apri collegamento in una nuova scheda in background"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Apri collegamento in una nuova scheda"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Apri menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,24 +743,23 @@ msgstr "Apri/chiudi voce corrente"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "Esportazione OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "file OPML"
msgstr "File OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "Il file OPML è richiesto"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Arancione"
#: src/pages/app/AboutPage.tsx
msgid "Order"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Categoria padre"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr ""
msgstr "Password"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "La password deve contenere almeno {minimumPasswordLength} caratteri"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Recupero password"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Le password non corrispondono"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Rosa"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Posizione"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Precedente"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Colore primario"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profilo"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Servizio di notifiche push"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Notifiche push"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Le notifiche push non sono configurate nelle tue impostazioni utente."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Le notifiche push non sono abilitate su questa istanza di CommaFeed."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Ricevi notifiche push"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Ricevi notifiche push quando vengono scoperte nuove voci nel feed. Abilita \"Ricevi notifiche push\" nelle impostazioni di ogni feed per cui desideri ricevere notifiche."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Recupera password"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Rosso"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Aggiorna"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Le registrazioni sono chiuse su questa istanza CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Reimposta password"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "API REST"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Clic destro"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Salva"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Scorri la voce selezionata verso la parte superiore della pagina"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Scorrere senza problemi durante la navigazione tra le voci"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Scorrimento"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Cerca"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Seleziona il feed/categoria non letto successivo"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Seleziona il feed/categoria non letto precedente"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL del server"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Condividi"
msgid "Sharing sites"
msgstr "Condivisione di siti"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Cambio"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Mostra il menu contestuale di CommaFeed al clic destro"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Mostra conferma quando contrassegni tutte le voci come lette"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Mostra menu voce (computer)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Mostra menu voce (mobile)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Mostra l'icona del collegamento esterno"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Mostra la guida alle scorciatoie da tastiera"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Mostra menu nativo (computer)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Mostra l'icona a stella"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Mostra il numero di non letti nella favicon della scheda"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Mostra il numero di non letti nel titolo della scheda"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Iscriviti"
msgid "Something bad just happened..."
msgstr "È appena successo qualcosa di brutto..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Spazio"
@@ -941,7 +1002,6 @@ msgstr "Stella"
msgid "Starred"
msgstr "Speciali"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Successo"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Scorri l'intestazione a sinistra"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -969,20 +1029,27 @@ msgstr "Passa al tema scuro"
#: src/pages/WelcomePage.tsx
msgid "Switch to light theme"
msgstr "Passa al tema della luce"
msgstr "Passa al tema chiaro"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Sistema"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Tag"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Teal"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Notifica di prova inviata con successo."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "L'URL del feed a cui vuoi iscriverti. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Questo feed ha un filtro legacy che non può essere modificato e non viene applicato. Ricrea il filtro utilizzando il nuovo editor di espressioni. L'espressione del filtro legacy era: <0>{0}</0>"
#: 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 "Questa è la tua chiave API. Può essere utilizzata per alcune operazioni API di sola lettura e garantisce l'accesso all'API Fever. Utilizza il modulo in fondo alla pagina per generare una nuova chiave API"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Questa impostazione può causare problemi di scorrimento su alcuni browser (ad es. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,19 +1078,23 @@ msgstr "Commuta lo stato di lettura della voce corrente"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Attiva/disattiva barra laterale"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Attiva/disattiva stato speciale della voce corrente"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Argomento"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Prova CommaFeed con il conto demo: demo/demo"
msgstr "Prova CommaFeed con l'account demo: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Prova la demo!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Non letto"
msgid "Unstar"
msgstr "Elimina le stelle"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Annulla iscrizione"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Chiave utente"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nome utente"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nome utente o e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Viola"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Avviso"
msgid "Website"
msgstr "Sito web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Benvenuto! Sembra che sia la prima volta che esegui CommaFeed. Crea un account amministratore per iniziare."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Giallo"
#: 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 "Non hai ancora abbonamenti. "
msgstr "Non hai ancora nessun abbonamento. Perché non provi ad aggiungerne uno cliccando sul segno + in cima alla pagina?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "I tuoi feed sono stati messi in coda per l'aggiornamento."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "La tua password è stata cambiata. Ora puoi accedere con la tua nuova password."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed はオープンソースのプロジェクトです。 ソースは以下でホストされています </0><1>GitHub</1>。"
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>完全な syntax </0><1>こちら</1>で利用可能です<2>。</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>アカウントをお持ちですか?</0><1>ログインしてください!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>アカウントが必要ですか?</0><1>サインアップ!</1>"
msgid "About"
msgstr "About"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "アクセストークン"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "アクション"
@@ -60,6 +60,10 @@ msgstr "ユーザー追加"
msgid "Admin"
msgstr "管理者"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "管理者ユーザー名"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "管理者"
msgid "All"
msgstr "すべて"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "常に"
@@ -93,6 +96,14 @@ msgstr "お知らせ"
msgid "API key"
msgstr "APIキー"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "APIトークン"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "アプリトークン"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "カテゴリ <0>{categoryName}</0> を削除してもよろしいですか?"
@@ -122,50 +133,52 @@ msgid "Asc"
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."
msgstr "使用可能な変数は「title」、「content」、「url」、「author」、および「categories」であり、それらのコンテンツは文字列の比較を容易にするために小文字に変換されます。"
msgid "Auto-mark as read"
msgstr "自動的に既読にする"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "戻る"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "ログインに戻る"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "ブルー"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "ブラウザー拡張"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Chromeのブラウザー拡張が必要です"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "ブラウザー拡張"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr "ブラウザータブ"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "読みたい内容を指定するためのフィルタ式を作成します。一致しないエントリは自動的に既読としてマークされます。"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "キャンセル"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -221,10 +234,18 @@ msgstr "確認"
msgid "Confirm password"
msgstr "パスワード確認"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "パスワードの確認"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Cozy"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "管理者アカウントの作成"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -247,7 +268,7 @@ msgstr "ページ読み込み時に実行されるカスタムJSコード"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "シアン"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -258,11 +279,14 @@ msgstr "ダーク"
msgid "Date created"
msgstr "作成日"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "日"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "削除"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "アカウント削除"
@@ -283,6 +307,10 @@ msgstr "説明"
msgid "Detailed"
msgstr "詳細"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "ブラウザの「プルして更新」動作を無効にする"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "リンクをブックマークバーにドラッグ"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "メール"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "メールアドレス"
@@ -344,10 +371,6 @@ msgstr "エントリーヘッダー"
msgid "Error"
msgstr "エラー"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "例: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "拡張"
@@ -365,7 +388,6 @@ msgstr "拡張機能オプション"
msgid "Feed name"
msgstr "フィード名"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -389,7 +411,7 @@ msgstr "フィルタリング式"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "フォントサイズ"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
@@ -434,24 +456,20 @@ msgstr "グッズ"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "グレープ"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "グレー"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "グリーン"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "空でない場合は、'true' または 'false' に評価される式。 'false' の場合、このフィードの新しいエントリーは自動的に既読としてマークされます。"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "エントリーが画面に完全に収まらない場合"
@@ -470,7 +488,15 @@ msgstr "展開ビューでエントリーをスクロールすると、それら
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "インディゴ"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "初期設定"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "無効なパスワードリセットリンクです。新しいリンクをリクエストしてください。"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -504,7 +530,7 @@ msgstr "ライト"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "ライム"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "リンク"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "ドキュメントへのリンク"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "サブスクリプションを読み込んでいます..."
msgid "Loading tags..."
msgstr "タグを読み込んでいます..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "既読にする"
msgid "Mark as read up to here"
msgstr "ここまで既読にする"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "この日数経過後に、このフィードのエントリを既読としてマークします。無効にするには空のままにしてください。"
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "メトリックス"
@@ -604,9 +633,8 @@ msgstr "名前を入力してサブスクリプションに移動します"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "すべてのエントリーを既読にするとき、未読エントリーのある次のカテゴリ/フィードに移動する"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "しない"
@@ -615,6 +643,10 @@ msgstr "しない"
msgid "New password"
msgstr "新しいパスワード"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "新しいパスワード"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "最新順"
@@ -717,7 +749,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "OPML エクスポート"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPMLファイル"
@@ -728,7 +759,7 @@ msgstr "OPMLファイルは必要です"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "オレンジ"
#: src/pages/app/AboutPage.tsx
msgid "Order"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "親カテゴリ"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "パスワード"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "パスワードは {minimumPasswordLength} 文字以上である必要があります"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "パスワード回復"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "パスワードが一致しません"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "ピンク"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -773,19 +807,44 @@ msgstr "前へ"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "プライマリカラー"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "プロフィール"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "プッシュ通知サービス"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "プッシュ通知"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "ユーザー設定でプッシュ通知が設定されていません。"
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "この CommaFeed インスタンスではプッシュ通知が有効になっていません。"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "プッシュ通知を受け取る"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "新しいフィードエントリが発見されたときにプッシュ通知を受け取ります。通知を受け取りたい各フィードの設定で「プッシュ通知を受け取る」を有効にしてください。"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "パスワードの回復"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "レッド"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,11 +855,14 @@ msgstr "リフレッシュ"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "このCommaFeedインスタンスの登録は終了しています"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "パスワードをリセット"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "右クリック"
@@ -808,6 +870,7 @@ msgstr "右クリック"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,19 +889,21 @@ msgid "Scrolling"
msgstr "スクロール"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "検索"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "次の未読フィード/カテゴリを選択"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "前の未読フィード/カテゴリを選択"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "サーバーURL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,8 +929,6 @@ msgstr "シェア"
msgid "Sharing sites"
msgstr "共有サイト"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Shift"
@@ -914,7 +977,6 @@ msgstr "未読数をタブのアイコンに表示する"
msgid "Show unread count in tab title"
msgstr "未読数をタブのタイトルに表示する"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "サインアップ"
msgid "Something bad just happened..."
msgstr "何か悪いことが起きました..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Space"
@@ -941,7 +1002,6 @@ msgstr "スター"
msgid "Starred"
msgstr "スター付き"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -975,14 +1035,21 @@ msgstr "ライトテーマに切り替え"
msgid "System"
msgstr "システム"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "タグ"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "ティール"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "テスト"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
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."
@@ -992,10 +1059,19 @@ msgstr "購読したいフィードのURL。ウェブサイトのURLを直接使
msgid "Theme"
msgstr "テーマ"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "このフィードには、編集できず適用もされない古い形式のフィルタがあります。新しい式エディタを使用してフィルタを再作成してください。古いフィルタ式は次のとおりでした: <0>{0}</0>"
#: 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 "これはあなたのAPIキーです。いくつかの読み取り専用API操作に使用できます。これにより、Fever APIへのアクセスが可能になります。ページの下部のフォームを使用して新しいAPIキーを生成します。"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "この設定により、一部のブラウザ(Safari など)でスクロールの問題が発生する可能性があります。"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "現在のエントリーの読み取りステータスを切り替えます"
@@ -1008,6 +1084,10 @@ msgstr "サイドバーを切り替える"
msgid "Toggle starred status of current entry"
msgstr "現在のエントリーのスターステータスを切り替える"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "トピック"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "デモアカウントでCommaFeedを試す: demo/demo"
@@ -1026,23 +1106,25 @@ msgstr "未読"
msgid "Unstar"
msgstr "スターを外す"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "退会"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "ユーザーキー"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "ユーザー名"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "ユーザー名またはメールアドレス"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "バイオレット"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,9 +1134,13 @@ msgstr "警告"
msgid "Website"
msgstr "ウェブサイト"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "ようこそ!CommaFeedを初めて実行するようです。開始するには管理者アカウントを作成してください。"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
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?"
@@ -1063,3 +1149,7 @@ msgstr "まだサブスクリプションがありません。上部の + 記号
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "フィードの更新がキューに登録されました。"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "パスワードが変更されました。新しいパスワードでログインできます。"

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed는 오픈 소스 프로젝트입니다. 소스는 </0><1>GitHub</1>에 호스팅됩니다."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,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이며 10년 넘게 여가 시간에 CommaFeed를 개발해 왔습니다. CommaFeed를 계속 지원할 수 있도록 관심을 가져주셔서 감사합니다.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>계정이 필요하십니까?</0><1>가입하세요!</1>"
msgid "About"
msgstr "정보"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "액세스 토큰"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "액션"
@@ -60,6 +60,10 @@ msgstr "사용자 추가"
msgid "Admin"
msgstr "관리자"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "관리자 사용자 이름"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "관리자"
msgid "All"
msgstr "전체"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "항상"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "피드 분석"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "공지사항"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "API 키"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API 토큰"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "앱 토큰"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "<0>{categoryName}</0> 카테고리를 삭제하시겠습니까?"
@@ -122,32 +133,37 @@ msgid "Asc"
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."
msgstr "사용 가능한 변수는 'title', 'content', 'url' 'author' 및 'categories'이며 해당 내용은 문자열 비교를 쉽게 하기 위해 소문자로 변환됩니다."
msgid "Auto-mark as read"
msgstr "자동으로 읽음 표시"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "뒤로"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "로그인으로 돌아가기"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "블루"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "브라우저 확장 프로그램"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Chrome에는 브라우저 확장 프로그램이 필요합니다"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "브라우저 탭"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "읽고 싶은 항목을 지정하기 위한 필터 표현식을 작성합니다. 일치하지 않는 항목은 자동으로 읽음으로 표시됩니다."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "취소"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "피드가 작동하는지 확인"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "메뉴 닫기"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: 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 호환 모바일 클라이언트에서 다음 URL을 사용하십시오. 사용자 이름과 <0>API 키</0>로 로그인하십시오."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "다음 읽지 않은 항목을 쉼표로 피드"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed 버전 {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,10 +234,18 @@ msgstr "확인"
msgid "Confirm password"
msgstr "비밀번호 확인"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "비밀번호 확인"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "코지"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "관리자 계정 생성"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "컨트롤"
@@ -235,34 +256,37 @@ 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/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "시안"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "다크"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "생성 날짜"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "일"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "삭제"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "계정 삭제"
@@ -281,7 +305,11 @@ msgstr "설명"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "상세히"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "브라우저의 \"당겨서 새로고침\" 동작 비활성화"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "디스플레이"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "기부"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "링크를 북마크바로 드래그"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "이메일"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "이메일 주소"
@@ -334,20 +361,16 @@ msgstr "프로필 설정을 변경하려면 현재 비밀번호를 입력하세
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "스크롤 시 선택한 항목 위에 유지할 항목 수"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "항목 헤더"
#: src/components/Alert.tsx
msgid "Error"
msgstr "오류"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "예: {예}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "확장"
@@ -359,13 +382,12 @@ msgstr "구독 및 카테고리를 다른 피드 읽기 서비스에서 가져
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "확장 프로그램 옵션"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "피드 이름"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,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 ""
msgstr "Fever API URL"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "필터링 표현식"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "글꼴 크기"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "피드 강제 가져오기는 아직 사용할 수 없습니다."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "생성된 피드 URL"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "{0} (으)로 이동"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "굿즈"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "그레이프"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "그레이"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "그린"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "비어 있지 않은 경우 'true' 또는 'false'로 평가되는 표현식입니다. "
msgstr "ID"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "항목이 화면에 완전히 들어맞지 않는 경우"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "확장 보기에서 항목을 스크롤하면 읽은 것으로 표시됩
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "인디고"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "초기 설정"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "유효하지 않은 비밀번호 재설정 링크입니다. 새 링크를 요청하십시오."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "마지막 새로고침 메시지"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "라이트"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "라임"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "링크"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "문서 링크"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "구독 로드 중..."
msgid "Loading tags..."
msgstr "태그 로드 중..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "로그아웃"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "길게 누르기"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "읽은 상태로 표시"
msgid "Mark as read up to here"
msgstr "여기까지 읽은 것으로 표시"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "이 피드의 항목을 이 일수 후에 읽음으로 표시합니다. 비활성화하려면 비워 두십시오."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "메트릭스"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "중간 클릭"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -604,17 +633,20 @@ msgstr "이름을 입력하여 구독으로 이동"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "모든 항목을 읽음으로 표시할 때 읽지 않은 항목이 있는 다음 카테고리/피드로 이동"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "안 함"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "새 비밀번호"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "새 비밀번호"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "최신순"
@@ -638,7 +670,7 @@ msgstr "더 이상 항목이 없습니다"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "사용 가능한 공유 옵션이 없습니다."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "가장 오래된 것부터"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "데스크톱에서"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "모바일에서"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "모바일에서는 화면 하단에 작업 버튼 표시"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "컴팩트, 코지, 상세 모드에만 적용됩니다."
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "앗!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "CommaFeed 열기"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ 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"
@@ -711,28 +743,27 @@ msgstr "현재 항목 열기/닫기"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "OPML 내보내기"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML 파일"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML 파일이 필요합니다"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "오렌지"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "주문"
msgstr "순서"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "부모 카테고리"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "비밀번호"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "비밀번호는 {minimumPasswordLength}자 이상이어야 합니다."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "비밀번호 복구"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "비밀번호가 일치하지 않습니다"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "핑크"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "위치"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "이전"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "기본 색상"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "프로필"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "푸시 알림 서비스"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "푸시 알림"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "사용자 설정에서 푸시 알림이 구성되지 않았습니다."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "이 CommaFeed 인스턴스에서는 푸시 알림이 활성화되지 않았습니다."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "푸시 알림 받기"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "새 피드 항목이 발견되면 푸시 알림을 받습니다. 알림을 받으려는 각 피드의 설정에서 \"푸시 알림 받기\"를 활성화하십시오."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "비밀번호 복구"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "레드"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "새로 고침"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "이 CommaFeed 인스턴스에 대한 등록이 마감되었습니다."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "비밀번호 재설정"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
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
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "저장"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "선택한 항목을 페이지 상단으로 스크롤"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "항목 간 탐색 시 부드럽게 스크롤"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "스크롤"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "검색"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "다음 읽지 않은 피드/카테고리 선택"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "이전 읽지 않은 피드/카테고리 선택"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "서버 URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "공유"
msgid "Sharing sites"
msgstr "사이트 공유"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "시프트"
#: 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 ""
msgstr "항목 메뉴 표시 (모바일)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "외부 링크 아이콘 표시"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "키보드 단축키 도움말 표시"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "기본 메뉴 표시 (데스크톱)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "별표 아이콘 표시"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "탭 파비콘에 읽지 않은 개수 표시"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "탭 제목에 읽지 않은 개수 표시"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "가입"
msgid "Something bad just happened..."
msgstr "뭔가 안 좋은 일이 일어났어..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "우주"
@@ -941,7 +1002,6 @@ msgstr "스타"
msgid "Starred"
msgstr "별표"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "성공"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "헤더를 왼쪽으로 스와이프"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "밝은 테마로 전환"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "시스템"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "태그"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "청록색"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "테스트"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
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."
@@ -992,9 +1059,18 @@ msgstr "구독하려는 피드의 URL입니다. "
msgid "Theme"
msgstr "테마"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "이 피드에는 편집할 수 없고 적용되지 않는 기존 필터가 있습니다. 새 표현식 편집기를 사용하여 필터를 다시 만드십시오. 기존 필터 표현식은 <0>{0}</0>이었습니다."
#: 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 작업에 사용할 수 있으며 Fever API에 대한 액세스 권한을 부여합니다. 새 API 키를 생성하려면 페이지 하단의 양식을 사용하십시오."
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "이 설정은 일부 브라우저(예: Safari)에서 스크롤 문제를 일으킬 수 있습니다."
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "현재 항목의 읽기 상태 전환"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "사이드바 전환"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "현재 항목의 별표 표시 상태 전환"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "주제"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "데모 계정으로 CommaFeed를 사용해 보세요: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "데모를 시도해 보세요!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "읽지 않음"
msgid "Unstar"
msgstr "별표 제거"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "구독 취소"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "사용자 키"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "사용자 이름"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "사용자 이름 또는 이메일"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "바이올렛"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "경고"
msgid "Website"
msgstr "웹사이트"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "환영합니다! CommaFeed를 처음 실행하는 것 같습니다. 시작하려면 관리자 계정을 만드십시오."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
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 "피드가 새로 고침을 위해 대기열에 추가되었습니다."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "비밀번호가 변경되었습니다. 이제 새 비밀번호로 로그인할 수 있습니다."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed ialah projek sumber terbuka. Sumber dihoskan pada </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Ada akaun?</0><1>Log masuk!</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>Hai,</0><1>Saya Jérémie dari Belgium dan saya telah mengusahakan CommaFeed pada masa lapang saya selama lebih 10 tahun sekarang. Terima kasih kerana berminat untuk membantu saya terus menyokong CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Perlukan akaun?</0><1>Daftar!</1>"
msgid "About"
msgstr "Mengenai"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Token akses"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Tindakan"
@@ -60,6 +60,10 @@ msgstr "Tambah pengguna"
msgid "Admin"
msgstr "Pentadbir"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nama pengguna pentadbir"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Pentadbir"
msgid "All"
msgstr "Semua"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Sentiasa"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Menganalisis suapan"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Pengumuman"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "Kunci API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token aplikasi"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Adakah anda pasti mahu memadamkan kategori <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Adakah anda pasti mahu berhenti melanggan <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Menaik"
#: 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."
msgstr "Pembolehubah yang tersedia ialah 'tajuk', 'kandungan', 'url' 'pengarang' dan 'kategori' dan kandungannya ditukar kepada huruf kecil untuk memudahkan perbandingan rentetan."
msgid "Auto-mark as read"
msgstr "Tanda automatik sebagai dibaca"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Kembali"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Kembali untuk log masuk"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Biru"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Ekstensi penyemak imbas"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Ekstensi penyemak imbas diperlukan untuk Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Tab penyemak imbas"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Bina ungkapan penapis untuk menunjukkan perkara yang anda mahu baca. Entri yang tidak sepadan akan ditandakan sebagai dibaca secara automatik."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Batal"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Semak sama ada suapan berfungsi"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Tutup menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Ekstensi penyemak imbas CommaFeed versi {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 serasi dengan Fever API. Gunakan URL berikut dalam klien mudah alih serasi Fever anda. Log masuk dengan nama pengguna anda dan <0>kunci API</0> anda."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed item belum dibaca seterusnya"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "Versi CommaFeed {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Sahkan"
msgid "Confirm password"
msgstr "Sahkan kata laluan"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Sahkan Kata Laluan"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Nyaman"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Cipta Akaun Pentadbir"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Kata laluan semasa"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Kod tersuai"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Aturan CSS tersuai yang akan digunakan"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Kod JS tersuai yang akan dilaksanakan semasa memuatkan halaman"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Sian"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Gelap"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Tarikh dibuat"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "hari"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Padam"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Padam akaun"
@@ -281,7 +305,11 @@ msgstr "Dec"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Terperinci"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Lumpuhkan kelakuan penyemak imbas \"Tarik untuk muat semula\""
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Paparan"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Derma"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Seret pautan ke bar penanda halaman"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-mel"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Alamat e-mel"
@@ -334,20 +361,16 @@ msgstr "Masukkan kata laluan semasa anda untuk menukar tetapan profil"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Entri untuk dikekalkan di atas entri yang dipilih semasa menatal"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Kepala entri"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Ralat"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Contoh: {example}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Dikembangkan"
@@ -359,13 +382,12 @@ msgstr "Eksport langganan dan kategori anda sebagai fail OPML yang boleh diimpor
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Pilihan ekstensi"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Nama suapan"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "URL Suapan"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Ambil semua suapan saya sekarang"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "URL Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Ungkapan penapisan"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Saiz fon"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Pengambilan paksa suapan belum lagi tersedia."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Url suapan yang dijana"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Pergi ke {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -430,31 +452,27 @@ msgstr "Pergi ke dokumentasi API."
#: src/pages/app/AboutPage.tsx
msgid "Goodies"
msgstr ""
msgstr "Barangan"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Anggur"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Kelabu"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Hijau"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Jika tidak kosong, ungkapan yang menilai kepada 'benar' atau 'palsu'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Jika entri tidak muat sepenuhnya pada skrin"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -462,7 +480,7 @@ msgstr "Jika anda menghadapi isu, sila laporkan pada halaman isu projek GitHub."
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Import"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -470,7 +488,15 @@ msgstr "Dalam paparan yang diperluas, menatal melalui entri menandakannya sebaga
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Persediaan Awal"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Pautan tetapan semula kata laluan tidak sah. Sila minta yang baharu."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Mesej muat semula terakhir"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Terang"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limau"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Pautan"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Pautan ke dokumentasi"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Memuatkan langganan..."
msgid "Loading tags..."
msgstr "Memuatkan tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Log Keluar"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Tekan lama"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Tandakan sebagai dibaca"
msgid "Mark as read up to here"
msgstr "Tandai sebagai dibaca sehingga di sini"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Tandakan entri dalam suapan ini sebagai dibaca selepas bilangan hari ini. Biarkan kosong untuk melumpuhkan."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metrik"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Klik tengah"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -604,17 +633,20 @@ msgstr "Navigasi ke langganan dengan memasukkan namanya"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Navigasi ke kategori/suapan seterusnya dengan entri yang belum dibaca apabila menandakan semua entri sebagai dibaca"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Tidak pernah"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Kata laluan baharu"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Kata Laluan Baharu"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Terbaharu dahulu"
@@ -638,7 +670,7 @@ msgstr "Tiada lagi penyertaan"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Tiada pilihan perkongsian tersedia."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Tertua dahulu"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Pada desktop"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Pada mudah alih"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Pada mudah alih, tunjukkan butang tindakan di bahagian bawah skrin"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Hanya terpakai pada mod padat, nyaman dan terperinci"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Aduh!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Buka CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Buka pautan"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Buka pautan dalam tab latar belakang baharu"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Buka pautan dalam tab baharu"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Buka menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Buka/tutup entri semasa"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "OPML eksport"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "Fail OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "Fail OPML diperlukan"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oren"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Perintah"
msgstr "Pesanan"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Kategori Induk"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Kata Laluan"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Kata laluan mestilah sekurang-kurangnya {minimumPasswordLength} aksara"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Pemulihan Kata Laluan"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Kata laluan tidak sepadan"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Merah jambu"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Kedudukan"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Sebelumnya"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Warna primer"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Perkhidmatan pemberitahuan tolak"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Pemberitahuan tolak"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Pemberitahuan tolak tidak dikonfigurasikan dalam tetapan pengguna anda."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Pemberitahuan tolak tidak didayakan pada contoh CommaFeed ini."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Terima pemberitahuan tolak"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Terima pemberitahuan tolak apabila entri suapan baharu ditemui. Dayakan \"Terima pemberitahuan tolak\" dalam tetapan setiap suapan yang anda ingin terima pemberitahuan."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Pulihkan kata laluan"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Merah"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Muat semula"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Pendaftaran ditutup pada contoh CommaFeed ini"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Tetap Semula Kata Laluan"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REHAT API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Klik kanan"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Jimat"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Tatal entri yang dipilih ke bahagian atas halaman"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Tatal dengan lancar apabila menavigasi antara entri"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Menatal"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Cari"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Pilih suapan/kategori belum dibaca seterusnya"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Pilih suapan/kategori belum dibaca sebelumnya"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL Pelayan"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Kongsi"
msgid "Sharing sites"
msgstr "Berkongsi tapak"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Anjakan"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Tunjukkan menu konteks CommaFeed sendiri pada klik kanan"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Tunjukkan pengesahan apabila menandakan semua entri sebagai dibaca"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Tunjukkan menu entri (desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Tunjukkan menu entri (mudah alih)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Tunjukkan ikon pautan luaran"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Tunjukkan bantuan pintasan papan kekunci"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Tunjukkan menu asli (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Tunjukkan ikon bintang"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Tunjukkan kiraan belum dibaca dalam favicon tab"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Tunjukkan kiraan belum dibaca dalam tajuk tab"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Daftar"
msgid "Something bad just happened..."
msgstr "Sesuatu yang buruk baru saja berlaku..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Angkasa"
@@ -941,7 +1002,6 @@ msgstr "Bintang"
msgid "Starred"
msgstr "Dibintangi"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Kejayaan"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Leret pengepala ke kiri"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Tukar kepada tema cahaya"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Sistem"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Tag"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Teal"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Ujian"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Pemberitahuan ujian berjaya dihantar."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "URL untuk suapan yang anda ingin langgan. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Suapan ini mempunyai penapis warisan yang tidak boleh diedit dan tidak digunakan. Sila buat semula penapis menggunakan editor ungkapan baharu. Ungkapan penapis warisan ialah: <0>{0}</0>"
#: 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 "Ini ialah kunci API anda. Ia boleh digunakan untuk beberapa operasi API baca sahaja dan memberikan akses kepada Fever API. Gunakan borang di bahagian bawah halaman untuk menjana kunci API baharu"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Tetapan ini boleh menyebabkan isu penatallan pada sesetengah penyemak imbas (cth. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Togol status bacaan entri semasa"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Togol bar sisi"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Togol status berbintang entri semasa"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Topik"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Cuba CommaFeed dengan akaun demo: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Cuba demo!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Belum dibaca"
msgid "Unstar"
msgstr "Nyahbintang"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Nyahlanggan"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Kunci pengguna"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nama pengguna"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nama Pengguna atau E-mel"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Violet"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Amaran"
msgid "Website"
msgstr "Laman web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Selamat datang! Ini nampaknya kali pertama anda menjalankan CommaFeed. Sila cipta akaun pentadbir untuk bermula."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Kuning"
#: 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 "Anda belum mempunyai sebarang langganan lagi. "
msgstr "Anda belum mempunyai sebarang langganan lagi. Mengapa tidak cuba menambah satu dengan mengklik pada tanda + di bahagian atas halaman?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Suapan anda telah dibariskan untuk muat semula."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Kata laluan anda telah ditukar. Anda kini boleh log masuk dengan kata laluan baharu anda."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed er et åpen kildekode-prosjekt. Kildekoden er hostet på </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Har du en konto?</0><1>Logg på!</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>Hei,</0><1>Jeg er Jérémie fra Belgia, og jeg har jobbet med CommaFeed på fritiden i over 10 år nå. Takk for interessen i å hjelpe meg med å fortsette å støtte CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>"
msgid "About"
msgstr "Omtrent"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Tilgangstoken"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Handlinger"
@@ -58,7 +58,11 @@ msgstr "Legg til bruker"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin"
msgstr ""
msgstr "Administrator"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Administrator brukernavn"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
@@ -68,10 +72,9 @@ msgstr ""
msgid "All"
msgstr "Alle"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Alltid"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analyser feed"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Kunngjøring"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "API-nøkkel"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API-token"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "App-token"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Er du sikker på at du vil slette kategori <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Er du sikker på at du vil avslutte abonnementet på <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Stigende"
#: 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."
msgstr "Tilgjengelige variabler er 'tittel', 'innhold', 'url' 'forfatter' og 'kategorier', og innholdet deres konverteres til små bokstaver for å lette strengsammenligning."
msgid "Auto-mark as read"
msgstr "Marker automatisk som lest"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Tilbake"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Tilbake for å logge inn"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Blå"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Nettleserutvidelse"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Nettleserutvidelse kreves for Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Nettleserfane"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Bygg et filteruttrykk for å angi hva du vil lese. Oppføringer som ikke samsvarer, vil bli markert som lest automatisk."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Avbryt"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Sjekk at feeden fungerer"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Lukk meny"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "CommaFeed nettleserutvidelse versjon {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 er kompatibel med Fever API. Bruk følgende URL i din Fever-kompatible mobilklient. Logg inn med brukernavn og din <0>API-nøkkel</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed neste uleste element"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed versjon {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Bekreft"
msgid "Confirm password"
msgstr "Bekreft passord"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Bekreft passord"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Koselig"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Opprett administratorkonto"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Gjeldende passord"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Egendefinert kode"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Egendefinerte CSS-regler som vil bli brukt"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Egendefinert JS-kode som vil bli kjørt ved sideinnlasting"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Syan"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Mørk"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Dato opprettet"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dager"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Slett"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Slett konto"
@@ -277,11 +301,15 @@ msgstr "Slett bruker"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Synkende"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detaljert"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Deaktiver \"Dra for å oppdatere\"-adferd i nettleseren"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Visning"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Doner"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Dra lenken til bokmerkelinjen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-post"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-postadresse"
@@ -326,7 +353,7 @@ msgstr "Aktivert"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
msgstr ""
msgstr "Enter"
#: src/components/settings/ProfileSettings.tsx
msgid "Enter your current password to change profile settings"
@@ -334,20 +361,16 @@ msgstr "Skriv inn ditt nåværende passord for å endre profilinnstillinger"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Oppføringer som skal beholdes over valgt oppføring ved rulling"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Oppføringsoverskrifter"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Feil"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Eksempel: {eksempel}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Utvidet"
@@ -359,13 +382,12 @@ msgstr "Eksporter abonnementene og kategoriene dine som en OPML-fil som kan impo
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Utvidelsesvalg"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,27 +395,27 @@ msgstr "Feed-URL"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Hent alle mine feeder nå"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever API-URL"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
msgstr "Filtrerende uttrykk"
msgstr "Filtreringsuttrykk"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Skriftstørrelse"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Tvunget henting av feeder er ikke tilgjengelig ennå."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Generert feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Gå til {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,43 +456,47 @@ msgstr "Godbiter"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Drue"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Grå"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Grønn"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Hvis det ikke er tomt, et uttrykk som vurderes til 'sant' eller 'usant'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Hvis oppføringen ikke får plass på skjermen"
#: 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."
msgstr "Hvis du støter på et problem, vennligst rapporter det på GitHub-prosjektets side for feilmeldinger."
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Importer"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføringer"
msgstr "I utvidet visning vil rulling gjennom oppføringer merke dem som lest"
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Innledende oppsett"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Ugyldig lenke for tilbakestilling av passord. Vennligst be om en ny."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,21 +526,21 @@ msgstr "Siste oppdateringsmelding"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Lys"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Lime"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link"
msgstr ""
msgstr "Lenke"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Lenke til dokumentasjonen"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Laster abonnementer..."
msgid "Loading tags..."
msgstr "Laster tagger..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Logg ut"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Langt trykk"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Merk som lest"
msgid "Mark as read up to here"
msgstr "Merk som lest frem til her"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Marker oppføringer i denne feeden som lest etter dette antall dager. La den stå tom for å deaktivere."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Beregninger"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Midtklikk"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Flytt siden opp"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Naviger til et abonnement ved å skrive inn navnet"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Naviger til neste kategori/feed med uleste oppføringer når du markerer alle oppføringer som lest"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Aldri"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nytt passord"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nytt passord"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Nyeste først"
@@ -638,7 +670,7 @@ msgstr "Ingen flere oppføringer"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Ingen delingsalternativer tilgjengelig."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,27 +682,27 @@ msgstr "Eldste først"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "På skrivebord"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "På mobil"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "På mobil, vis handlingsknapper nederst på skjermen"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Gjelder kun for kompakt, koselig og detaljert modus"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
msgstr "Beklager!"
msgstr "Oi!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Åpne CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Åpen lenke"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Åpne lenke i ny bakgrunnsfane"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Åpne lenke i ny fane"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Åpne meny"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Åpne/lukk gjeldende oppføring"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "OPML eksport"
msgstr "OPML-eksport"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML-fil"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML-fil kreves"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oransje"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ord"
msgstr "Rekkefølge"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Overordnet kategori"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Passord"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Passordet må være minst {minimumPasswordLength} tegn"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Passordgjenoppretting"
msgstr "Gjenoppretting av passord"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Passordene samsvarer ikke"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Rosa"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Posisjon"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Forrige"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Primærfarge"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Skyvevarslingstjeneste"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Skyvevarsler"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Skyvevarsler er ikke konfigurert i brukerinnstillingene dine."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Skyvevarsler er ikke aktivert på denne CommaFeed-forekomsten."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Motta skyvevarsler"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Motta skyvevarsler når nye feedoppføringer blir oppdaget. Aktiver \"Motta skyvevarsler\" i innstillingene for hver feed du ønsker å motta varsler for."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Gjenopprett passord"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Rød"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Oppdater"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registreringer er stengt på denne CommaFeed-forekomsten"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Tilbakestill passord"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Høyreklikk"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Lagre"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Rull valgt oppføring til toppen av siden"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Rull jevnt når du navigerer mellom oppføringer"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Rulling"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Søk"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Velg neste uleste feed/kategori"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Velg forrige uleste feed/kategori"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Server-URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Del"
msgid "Sharing sites"
msgstr "Delingssider"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Skift"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Vis CommaFeeds egen kontekstmeny ved høyreklikk"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Vis bekreftelse når alle oppføringer markeres som lest"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Vis oppføringsmeny (skrivebord)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Vis oppføringsmeny (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Vis ekstern lenke-ikon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Vis hurtigtasthjelp"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Vis innebygd meny (skrivebord)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Vis stjerneikon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Vis antall uleste i fanens favicon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Vis antall uleste i fanetittelen"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,10 +986,9 @@ msgstr "Meld deg på"
msgid "Something bad just happened..."
msgstr "Noe ille skjedde akkurat..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr ""
msgstr "Mellomrom"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -941,7 +1002,6 @@ msgstr "Stjerne"
msgid "Starred"
msgstr "Stjerne"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Suksess"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Sveip overskriften til venstre"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Bytt til lystema"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "System"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr ""
msgstr "Tagger"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Teal"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testvarsel sendt uten feil."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "URL-en til feeden du vil abonnere på. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Denne feeden har et utdatert filter som ikke kan redigeres og ikke blir brukt. Vennligst opprett filteret på nytt med den nye uttrykkseditoren. Det utdaterte filteruttrykket var: <0>{0}</0>"
#: 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 "Dette er API-nøkkelen din. Den kan brukes til enkelte skrivebeskyttede API-operasjoner og gir tilgang til Fever API. Bruk skjemaet nederst på siden for å generere en ny API-nøkkel"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Denne innstillingen kan forårsake rulleproblemer i enkelte nettlesere (f.eks. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Veksle lesestatus for gjeldende oppføring"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Veksle sidelinje"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Veksle stjernestatus for gjeldende oppføring"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Emne"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Prøv CommaFeed med demokontoen: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Prøv demoen!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Ulest"
msgid "Unstar"
msgstr "Fjern stjerne"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Avslutt abonnementet"
msgstr "Avslutt abonnement"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Brukernøkkel"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Brukernavn"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Brukernavn eller e-post"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Fiolett"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Advarsel"
msgid "Website"
msgstr "Nettsted"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Velkommen! Det ser ut til å være første gang du kjører CommaFeed. Vennligst opprett en administratorkonto for å komme i gang."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Gul"
#: 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 "Du har ingen abonnementer ennå. "
msgstr "Du har ingen abonnementer ennå. Hvorfor ikke prøve å legge til ett ved å klikke på +-tegnet øverst på siden?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Feeder er lagt i kø for oppdatering."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Passordet ditt er endret. Du kan nå logge inn med ditt nye passord."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed is een open-source project. De broncode wordt gehost op </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Heb je een account?</0><1>Log in!</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>Hé,</0><1>ik ben Jérémie uit België en ik werk al meer dan 10 jaar in mijn vrije tijd aan CommaFeed. Bedankt voor je interesse om me te helpen CommaFeed te blijven ondersteunen.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Een account nodig?</0><1>Meld je aan!</1>"
msgid "About"
msgstr "Over"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Toegangstoken"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Acties"
@@ -60,6 +60,10 @@ msgstr "Gebruiker toevoegen"
msgid "Admin"
msgstr "Beheerder"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Gebruikersnaam beheerder"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Beheerder"
msgid "All"
msgstr "Alles"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Altijd"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analyseer feed"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Aankondiging"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "API-sleutel"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API-token"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "App-token"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Weet je zeker dat je categorie <0>{categoryName}</0> wilt verwijderen?"
@@ -119,35 +130,40 @@ msgstr "Weet je zeker dat je je wilt afmelden voor <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Oplopend"
#: 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."
msgstr "Beschikbare variabelen zijn 'titel', 'inhoud', 'url', 'auteur' en 'categorieën' en hun inhoud wordt geconverteerd naar kleine letters om het vergelijken van tekenreeksen te vergemakkelijken."
msgid "Auto-mark as read"
msgstr "Automatisch als gelezen markeren"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Terug"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Terug naar inloggen"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Blauw"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Browser extensie"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Browser extensie vereist voor Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Browsertabblad"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Maak een filterexpressie om aan te geven wat u wilt lezen. Items die niet overeenkomen, worden automatisch als gelezen gemarkeerd."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Annuleren"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Controleer of de feed werkt"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Menu sluiten"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "CommaFeed browser extensie versie {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 is compatibel met de Fever API. Gebruik de volgende URL in uw Fever-compatibele mobiele client. Log in met uw gebruikersnaam en uw <0>API-sleutel</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,11 +216,11 @@ msgstr "CommaFeed volgende ongelezen item"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed versie {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
msgstr ""
msgstr "Compact"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
@@ -221,13 +234,21 @@ msgstr "Bevestigen"
msgid "Confirm password"
msgstr "Bevestig wachtwoord"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Bevestig wachtwoord"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Gezellig"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Beheerdersaccount aanmaken"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Huidig ​​wachtwoord"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Aangepaste code"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Aangepaste CSS-regels die worden toegepast"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Aangepaste JS-code die wordt uitgevoerd bij het laden van de pagina"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Cyaan"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Donker"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Datum gemaakt"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dagen"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Verwijderen"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Account verwijderen"
@@ -281,7 +305,11 @@ msgstr "Beschrijving"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Gedetailleerd"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Schakel browsergedrag \"Pullen om te verversen\" uit"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Weergave"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Doneren"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Link naar bladwijzerbalk slepen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr ""
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-mailadres"
@@ -326,7 +353,7 @@ msgstr "Ingeschakeld"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
msgstr ""
msgstr "Enter"
#: src/components/settings/ProfileSettings.tsx
msgid "Enter your current password to change profile settings"
@@ -334,20 +361,16 @@ msgstr "Voer uw huidige wachtwoord in om de profielinstellingen te wijzigen"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Items die boven de geselecteerde vermelding moeten blijven tijdens het scrollen"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Itemkoppen"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fout"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Voorbeeld: {voorbeeld}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Uitgebreid"
@@ -359,13 +382,12 @@ msgstr "Exporteer uw abonnementen en categorieën als een OPML-bestand dat kan w
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Extensie opties"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Feednaam"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "Feed-URL"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Haal nu al mijn feeds op"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever API-URL"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Uitdrukking filteren"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Lettergrootte"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Geforceerd ophalen van feeds is nog niet beschikbaar."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Gegenereerde feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Ga naar {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Goederen"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Druif"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Grijs"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Groen"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Indien niet leeg, een uitdrukking die evalueert naar 'true' of 'false'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Als de vermelding niet helemaal op het scherm past"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -462,7 +480,7 @@ msgstr "Als je een probleem tegenkomt, meld dit dan op de pagina met problemen v
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Importeren"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -470,7 +488,15 @@ msgstr "In de uitgevouwen weergave markeert het scrollen door items ze als gelez
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Initiële setup"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Ongeldige wachtwoordherstellink. Vraag een nieuwe aan."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,21 +526,21 @@ msgstr "Laatste verversingsbericht"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Licht"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limoen"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link"
msgstr ""
msgstr "Link"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Link naar de documentatie"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Abonnementen laden..."
msgid "Loading tags..."
msgstr "Tags laden..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Uitloggen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Lang indrukken"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Markeren als gelezen"
msgid "Mark as read up to here"
msgstr "Markeer als gelezen tot hier"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Markeer items in deze feed als gelezen na dit aantal dagen. Laat leeg om uit te schakelen."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metrieken"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Middelklik"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Verplaats de pagina omhoog"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "n.v.t."
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Navigeer naar een abonnement door de naam in te voeren"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Navigeer naar de volgende categorie/feed met ongelezen items wanneer alle items als gelezen worden gemarkeerd"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Nooit"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nieuw wachtwoord"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nieuw wachtwoord"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Nieuwste eerst"
@@ -638,7 +670,7 @@ msgstr "Geen inzendingen meer"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Geen deelopties beschikbaar."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Oudste eerst"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Op desktop"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Op mobiel"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Op mobiel actieknoppen onderaan het scherm tonen"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Geldt alleen voor compacte, gezellige en gedetailleerde modi"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Oeps!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Open CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Link openen"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Open link in nieuw tabblad op de achtergrond"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Open link in nieuw tabblad"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Menu openen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Huidige invoer openen/sluiten"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "OPML-export"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML-bestand"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML-bestand is vereist"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oranje"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestelling"
msgstr "Volgorde"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Oudercategorie"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Wachtwoord"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Wachtwoord moet minimaal {minimumPasswordLength} tekens bevatten"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Wachtwoordherstel"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Wachtwoorden komen niet overeen"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Roze"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Positie"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Vorige"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Primaire kleur"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profiel"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push-notificatieservice"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push-notificaties"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push-notificaties zijn niet geconfigureerd in je gebruikersinstellingen."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push-notificaties zijn niet ingeschakeld op deze CommaFeed-instantie."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Ontvang push-notificaties"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Ontvang push-notificaties wanneer nieuwe feeditems worden ontdekt. Schakel \"Ontvang push-notificaties\" in bij de instellingen van elke feed waarvoor je notificaties wilt ontvangen."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "wachtwoord herstellen"
msgstr "Wachtwoord herstellen"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Rood"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Vernieuwen"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registraties zijn gesloten op deze CommaFeed-instantie"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Wachtwoord herstellen"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REST-API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Rechtermuisklik"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Opslaan"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Geselecteerde vermelding naar de bovenkant van de pagina scrollen"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,26 +886,28 @@ msgstr "Vloeiend scrollen bij het navigeren tussen items"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Scrollen"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Zoeken"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Selecteer volgende ongelezen feed/categorie"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Selecteer vorige ongelezen feed/categorie"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Server-URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Stel de focus in op het volgende item zonder het te openen"
msgstr "Focus op volgende vermelding zonder deze te openen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on previous entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Delen"
msgid "Sharing sites"
msgstr "Sites delen"
#: src/components/KeyboardShortcutsHelp.tsx
#: 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 "Toon het eigen contextmenu van CommaFeed bij rechtsklikken"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Toon bevestiging bij het als gelezen markeren van alle items"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Toon itemmenu (desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Toon itemmenu (mobiel)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Toon icoon voor externe link"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Toon hulp bij sneltoetsen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Toon native menu (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Toon ster-icoon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Toon aantal ongelezen in tabblad-favicon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Toon aantal ongelezen in tabbladtitel"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Aanmelden"
msgid "Something bad just happened..."
msgstr "Er is net iets ergs gebeurd..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Ruimte"
@@ -941,7 +1002,6 @@ msgstr "Ster"
msgid "Starred"
msgstr "Met ster"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,28 +1021,35 @@ msgstr "Succes"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Veeg koptekst naar links"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
msgstr "Overschakelen naar donker thema"
msgstr "Schakel over naar donker thema"
#: src/pages/WelcomePage.tsx
msgid "Switch to light theme"
msgstr "Overschakelen naar lichtthema"
msgstr "Schakel over naar licht thema"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Systeem"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr ""
msgstr "Tags"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Groenblauw"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testnotificatie succesvol verzonden."
#: 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."
@@ -992,21 +1059,34 @@ msgstr "De URL voor de feed waarop u zich wilt abonneren. "
msgid "Theme"
msgstr "Thema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Deze feed heeft een legacy-filter dat niet kan worden bewerkt en niet wordt toegepast. Maak het filter opnieuw met de nieuwe expressie-editor. De legacy-filterexpressie was: <0>{0}</0>"
#: 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 "Dit is je API-sleutel. Het kan worden gebruikt voor sommige alleen-lezen API-bewerkingen en geeft toegang tot de Fever API. Gebruik het formulier onderaan de pagina om een nieuwe API-sleutel te genereren"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Deze instelling kan scrollproblemen veroorzaken in sommige browsers (bijv. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Toggle leesstatus van huidige invoer"
msgstr "Leesstatus van huidig item omschakelen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Zijbalk omschakelen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Sterstatus van huidig item omschakelen"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Onderwerp"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Probeer CommaFeed uit met het demo-account: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Probeer de demo!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Ongelezen"
msgid "Unstar"
msgstr "Sterren uit"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Afmelden"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Gebruikerssleutel"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Gebruikersnaam"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Gebruikersnaam of e-mailadres"
msgstr "Gebruikersnaam of e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Violet"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1050,16 +1132,24 @@ msgstr "Waarschuwing"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Website"
msgstr ""
msgstr "Website"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Welkom! Dit lijkt de eerste keer te zijn dat je CommaFeed draait. Maak een beheerdersaccount aan om aan de slag te gaan."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Geel"
#: 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 "Je hebt nog geen abonnementen. "
msgstr "Je hebt nog geen abonnementen. Waarom probeer je er niet een toe te voegen door op het +-teken bovenaan de pagina te klikken?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Je feeds zijn in de wachtrij geplaatst voor verversing."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Je wachtwoord is gewijzigd. Je kunt nu inloggen met je nieuwe wachtwoord."

File diff suppressed because it is too large Load Diff

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed to projekt o otwartym kodzie źródłowym. Kod źródłowy znajduje się na </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Masz konto?</0><1>Zaloguj się!<//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>Hej,</0><1>Jestem Jérémie z Belgii i od ponad 10 lat rozwijam CommaFeed w wolnym czasie. Dziękuję za zainteresowanie pomocą w dalszym wspieraniu projektu CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Potrzebujesz konta?</0><1>Zarejestruj się!</1>"
msgid "About"
msgstr "O"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Token dostępu"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Akcje"
@@ -60,6 +60,10 @@ msgstr "Dodaj użytkownika"
msgid "Admin"
msgstr "Administracja"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nazwa użytkownika administratora"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Administracja"
msgid "All"
msgstr "Wszystkie"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Zawsze"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -87,12 +90,20 @@ msgstr "Analizuj kanał"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Ogłoszenie"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "klucz API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token aplikacji"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Czy na pewno chcesz usunąć kategorię <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Czy na pewno chcesz zrezygnować z subskrypcji <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Rosnąco"
#: 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."
msgstr "Dostępne zmienne to „tytuł”, „treść”, „adres URL”, „autor” i „kategorie”, a ich zawartość jest konwertowana na małe litery, aby ułatwić porównanie ciągów."
msgid "Auto-mark as read"
msgstr "Automatycznie oznaczaj jako przeczytane"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Powrót"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Powrót do logowania"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Niebieski"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Rozszerzenie przeglądarki"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Wymagane rozszerzenie przeglądarki dla Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Karta przeglądarki"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Zbuduj wyrażenie filtrujące, aby wskazać, co chcesz czytać. Wpisy, które nie pasują, zostaną automatycznie oznaczone jako przeczytane."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Anuluj"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Sprawdź, czy kanał działa"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Zamknij menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Wersja rozszerzenia przeglądarki 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 jest kompatybilny z API Fever. Użyj następującego adresu URL w swoim kliencie mobilnym zgodnym z Fever. Zaloguj się przy użyciu swojej nazwy użytkownika i <0>klucza API</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "Przecinek następny nieprzeczytany element"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "Wersja CommaFeed {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Potwierdź"
msgid "Confirm password"
msgstr "Potwierdź hasło"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Potwierdź hasło"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Przytulny"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Utwórz konto administratora"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "aktualne hasło"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Własny kod"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Niestandardowe reguły CSS, które zostaną zastosowane"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Niestandardowy kod JS, który zostanie wykonany po załadowaniu strony"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Błękitny"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Ciemny"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Data utworzenia"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dni"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Usuń"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Usuń konto"
@@ -281,18 +305,22 @@ msgstr "Opis"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Szczegółowy"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Wyłącz zachowanie przeglądarki „Przeciągnij, aby odświeżyć”"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display"
msgstr "Wyświetlacz"
msgstr "Wyświetlanie"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Przekaż darowiznę"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Przeciągnij link do paska zakładek"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr ""
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Adres e-mail"
@@ -334,20 +361,16 @@ msgstr "Wprowadź swoje aktualne hasło, aby zmienić ustawienia profilu"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Wpisy do pozostawienia nad wybranym wpisem podczas przewijania"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Nagłówki wpisów"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Błąd"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Przykład: {przykład}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Rozszerzony"
@@ -359,13 +382,12 @@ msgstr "Eksportuj swoje subskrypcje i kategorie jako plik OPML, który można za
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Opcje rozszerzenia"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "nazwa kanału"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "URL kanału"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Pobierz teraz wszystkie moje kanały"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "URL API Fever"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Wyrażenie filtrujące"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Rozmiar czcionki"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Wymuszanie pobierania kanałów nie jest jeszcze dostępne."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Wygenerowany adres URL kanału"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Idź do {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Gadżety"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Winogronowy"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Szary"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Zielony"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Identyfikator"
#: 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 "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 ""
msgstr "Jeśli wpis nie mieści się w całości na ekranie"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -462,7 +480,7 @@ msgstr "Jeśli napotkasz problem, zgłoś go na stronie problemów projektu GitH
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Importuj"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -470,7 +488,15 @@ msgstr "W widoku rozszerzonym przewijanie wpisów oznacza je jako przeczytane"
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indygo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Wstępna konfiguracja"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Nieprawidłowy link do resetowania hasła. Proszę poprosić o nowy."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,21 +526,21 @@ msgstr "wiadomość o ostatnim odświeżeniu"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Jasny"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limonkowy"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link"
msgstr ""
msgstr "Link"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Link do dokumentacji"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Ładowanie subskrypcji..."
msgid "Loading tags..."
msgstr "Ładowanie tagów..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Wyloguj"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Długie naciśnięcie"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Oznacz jako przeczytane"
msgid "Mark as read up to here"
msgstr "Oznacz jako przeczytane do tej pory"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Oznaczaj wpisy w tym kanale jako przeczytane po tej liczbie dni. Pozostaw puste, aby wyłączyć."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metryki"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Kliknięcie środkowym przyciskiem"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -604,17 +633,20 @@ msgstr "Przejdź do subskrypcji, wpisując jej nazwę"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Przejdź do następnej kategorii/kanału z nieprzeczytanymi wpisami po oznaczeniu wszystkich wpisów jako przeczytane"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Nigdy"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nowe hasło"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nowe hasło"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Najnowsze jako pierwsze"
@@ -638,7 +670,7 @@ msgstr "Nie ma więcej wpisów"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Brak dostępnych opcji udostępniania."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Najstarsze jako pierwsze"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Na komputerze"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Na urządzeniu mobilnym"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Na urządzeniu mobilnym pokazuj przyciski akcji na dole ekranu"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Dotyczy tylko trybów kompaktowego, przytulnego i szczegółowego"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Ups!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Otwórz CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Otwórz link"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Otwórz link w nowej karcie w tle"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Otwórz link w nowej karcie"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Otwórz menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Otwórz/zamknij bieżący wpis"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "eksport OPML"
msgstr "Eksport OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "plik OPML"
msgstr "Plik OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "Plik OPML jest wymagany"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Pomarańczowy"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Porządek"
msgstr "Kolejność"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Kategoria nadrzędna"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Hasło"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Hasło musi mieć co najmniej {minimumPasswordLength} znaków"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Odzyskiwanie hasła"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Hasła nie pasują"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Różowy"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Pozycja"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Poprzedni"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Kolor podstawowy"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Usługa powiadomień push"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Powiadomienia push"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Powiadomienia push nie są skonfigurowane w ustawieniach użytkownika."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Powiadomienia push nie są włączone w tej instancji CommaFeed."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Otrzymuj powiadomienia push"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Otrzymuj powiadomienia push, gdy zostaną odkryte nowe wpisy w kanale. Włącz opcję „Otrzymuj powiadomienia push” w ustawieniach każdego kanału, dla którego chcesz otrzymywać powiadomienia."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Odzyskaj hasło"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Czerwony"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Odśwież"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Rejestracje są zamknięte w tej instancji CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Zresetuj hasło"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Prawe kliknięcie"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Zapisz"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Przewiń wybraną pozycję na górę strony"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Przewijaj płynnie podczas nawigowania między wpisami"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Przewijanie"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Szukaj"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Wybierz następny nieprzeczytany kanał/kategorię"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Wybierz poprzedni nieprzeczytany kanał/kategorię"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL serwera"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Udostępnij"
msgid "Sharing sites"
msgstr "Udostępnianie witryn"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "zmiana"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Pokazuj własne menu kontekstowe CommaFeed po kliknięciu prawym przyciskiem myszy"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Pokazuj potwierdzenie podczas oznaczania wszystkich wpisów jako przeczytane"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Pokaż menu wpisu (komputer)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Pokaż menu wpisu (urządzenie mobilne)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Pokazuj ikonę linku zewnętrznego"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Pokaż pomoc dotyczącą skrótów klawiaturowych"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Pokaż natywne menu (komputer)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Pokazuj ikonę gwiazdki"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Pokazuj liczbę nieprzeczytanych na ikonie karty"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Pokazuj liczbę nieprzeczytanych w tytule karty"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Zarejestruj się"
msgid "Something bad just happened..."
msgstr "Coś złego właśnie się stało..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Przestrzeń"
@@ -941,7 +1002,6 @@ msgstr "Gwiazda"
msgid "Starred"
msgstr "Oznaczone gwiazdką"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Sukces"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Przesuń nagłówek w lewo"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Przełącz na jasny motyw"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Systemowy"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Tagi"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Morski"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testowe powiadomienie wysłane pomyślnie."
#: 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."
@@ -992,29 +1059,42 @@ msgstr "URL kanału, który chcesz subskrybować. "
msgid "Theme"
msgstr "Motyw"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Ten kanał ma stary filtr, którego nie można edytować i który nie jest stosowany. Proszę utworzyć filtr ponownie, korzystając z nowego edytora wyrażeń. Stare wyrażenie filtra to: <0>{0}</0>"
#: 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 "To jest Twój klucz API. Może być używany do niektórych operacji API tylko do odczytu i zapewnia dostęp do API Fever. Użyj formularza na dole strony, aby wygenerować nowy klucz API"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "To ustawienie może powodować problemy z przewijaniem w niektórych przeglądarkach (np. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Przełącz stan odczytu bieżącego wpisu"
msgstr "Przełącz status przeczytania bieżącego wpisu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Przełącz pasek boczny"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Przełącz status oznaczenia gwiazdką bieżącego wpisu"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Temat"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Wypróbuj CommaFeed z kontem demo: demo/demo"
msgstr "Wypróbuj CommaFeed na koncie demo: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Wypróbuj demo!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1024,25 +1104,27 @@ msgstr "Nieprzeczytane"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
msgstr "Usuń gwiazdkę"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Anuluj subskrypcję"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Klucz użytkownika"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nazwa użytkownika"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nazwa użytkownika lub e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Fioletowy"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Ostrzeżenie"
msgid "Website"
msgstr "Strona internetowa"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Witaj! Wygląda na to, że uruchamiasz CommaFeed po raz pierwszy. Aby rozpocząć, utwórz konto administratora."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Żółty"
#: 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 "Nie masz jeszcze żadnych subskrypcji. "
msgstr "Nie masz jeszcze żadnych subskrypcji. Może spróbujesz dodać jedną, klikając znak + u góry strony?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Twoje kanały zostały zakolejkowane do odświeżenia."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Twoje hasło zostało zmienione. Możesz się teraz zalogować za pomocą nowego hasła."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed é um projeto de código abrto. O código está hospedado no </0><1>GitHub</1>."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>Sintaxe completa disponível </0><1>aqui</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>Tem uma conta?</0><1>Faça login!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Precisa de uma conta?</0><1>Inscreva-se!</1>"
msgid "About"
msgstr "Sobre"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Token de acesso"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Ações"
@@ -60,6 +60,10 @@ msgstr "Adicionar usuário"
msgid "Admin"
msgstr "Administrador"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Nome de usuário do administrador"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "Administrador"
msgid "All"
msgstr "Todos"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Sempre"
@@ -93,6 +96,14 @@ msgstr "Aviso"
msgid "API key"
msgstr "chave de API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token de API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token do aplicativo"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Tem certeza de que deseja excluir a categoria <0>{categoryName}</0>?"
@@ -122,14 +133,15 @@ msgid "Asc"
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."
msgstr "As variáveis ​​disponíveis são 'título', 'conteúdo', 'url' 'autor' e 'categorias' e seu conteúdo é convertido em letras minúsculas para facilitar a comparação de strings."
msgid "Auto-mark as read"
msgstr "Marcar automaticamente como lido"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Voltar"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Voltar para logar"
@@ -137,35 +149,36 @@ msgstr "Voltar para logar"
msgid "Blue"
msgstr "Azul"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extensão do navegador"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Extensão para o Chrome necessária"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Extensão do navegador"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr "Aba do navegador"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Crie uma expressão de filtro para indicar o que você deseja ler. As entradas que não corresponderem serão marcadas como lidas automaticamente."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Cancelar"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -221,10 +234,18 @@ msgstr "Confirmar"
msgid "Confirm password"
msgstr "Confirmar senha"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Confirmar senha"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Aconchegante"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Criar conta de administrador"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -258,11 +279,14 @@ msgstr "Escuro"
msgid "Date created"
msgstr "Data de criação"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dias"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Excluir"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Excluir conta"
@@ -283,6 +307,10 @@ msgstr "Desc"
msgid "Detailed"
msgstr "Detalhado"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Desativar o comportamento do navegador \"Puxar para atualizar\""
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "Arraste o link para a barra de favoritos"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Endereço de e-mail"
@@ -344,10 +371,6 @@ msgstr "Cabeçalho das entredas"
msgid "Error"
msgstr "Erro"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Exemplo: {exemplo}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Expandido"
@@ -365,7 +388,6 @@ msgstr "Opções da extensão"
msgid "Feed name"
msgstr "Nome do feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -448,10 +470,6 @@ msgstr "Verde"
msgid "Id"
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 "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 "Se a entrafa não couber por completo na tela"
@@ -472,6 +490,14 @@ msgstr "Na visualização expandida, rolar pelas entradas marca-as como lidas"
msgid "Indigo"
msgstr "Índigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Configuração inicial"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Link de redefinição de senha inválido. Solicite um novo."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread"
@@ -532,7 +558,6 @@ msgstr "Carregando assinaturas..."
msgid "Loading tags..."
msgstr "Carregando tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "Marcar como lido"
msgid "Mark as read up to here"
msgstr "Marcar como lido até aqui"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Marcar as entradas neste feed como lidas após este número de dias. Deixe vazio para desativar."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Métricas"
@@ -606,7 +635,6 @@ msgstr "Navegue até uma assinatura digitando seu nome"
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr "Navegar para a próxima categoria/feed com entradas não lidas quando todas as entrafas forem lidas"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Nunca"
@@ -615,6 +643,10 @@ msgstr "Nunca"
msgid "New password"
msgstr "Nova senha"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nova senha"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Mais novo primeiro"
@@ -717,7 +749,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "Exportação OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "Arquivo OPML"
@@ -743,18 +774,21 @@ msgid "Parent Category"
msgstr "Categoria Pai"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Senha"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "A senha deve ter pelo menos {minimumPasswordLength} caracteres"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Recuperação de Senha"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Senhas não coincidem"
@@ -779,6 +813,31 @@ msgstr "Cor primária"
msgid "Profile"
msgstr "Perfil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Serviço de notificação push"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Notificações push"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "As notificações push não estão configuradas nas suas configurações de usuário."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "As notificações push não estão ativadas nesta instância do CommaFeed."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Receber notificações push"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Receba notificações push quando novas entradas de feed forem descobertas. Ative \"Receber notificações push\" nas configurações de cada feed para o qual deseja receber notificações."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Recuperar senha"
@@ -796,11 +855,14 @@ msgstr "Atualizar"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Os registros estão fechados nesta instância do CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Redefinir senha"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "API REST"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Clique com o botão direito"
@@ -808,6 +870,7 @@ msgstr "Clique com o botão direito"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,8 +889,6 @@ msgid "Scrolling"
msgstr "Deslizar"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Pesquisar"
@@ -840,6 +901,10 @@ msgstr "Selecionar próximo feed/categoria não lido"
msgid "Select previous unread feed/category"
msgstr "Selecionar feed/categoria não lido anterior"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL do servidor"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Definir o foco na próxima entrada sem abri-la"
@@ -864,8 +929,6 @@ msgstr "Compartilhar"
msgid "Sharing sites"
msgstr "Compartilhando sites"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Shift"
@@ -914,7 +977,6 @@ msgstr "Mostrar contagem de não lidos no favion da aba"
msgid "Show unread count in tab title"
msgstr "Mostrar contagem de não lidos no título da aba"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Inscreva-se"
msgid "Something bad just happened..."
msgstr "Algo ruim acabou de acontecer..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Espaço"
@@ -941,7 +1002,6 @@ msgstr "Estrela"
msgid "Starred"
msgstr "Com estrela"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -975,7 +1035,6 @@ msgstr "Mudar para tema claro"
msgid "System"
msgstr "Sistema"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Etiquetas"
@@ -984,6 +1043,14 @@ msgstr "Etiquetas"
msgid "Teal"
msgstr "Azul petróleo"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Teste"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Notificação de teste enviada com sucesso."
#: 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 "A URL do feed que você deseja assinar. "
@@ -992,10 +1059,19 @@ msgstr "A URL do feed que você deseja assinar. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Este feed tem um filtro legado que não pode ser editado e não é aplicado. Recrie o filtro usando o novo editor de expressões. A expressão do filtro legado era: <0>{0}</0>"
#: 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 "Esta é sua chave de API. Ela pode ser usada para algumas operações somente leitura da API e concede acesso à API do Fever. Use o formulário abaixo para gerar uma nova chave de API"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Esta configuração pode causar problemas de rolagem em alguns navegadores (ex: Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Alternar o status de leitura da entrada atual"
@@ -1008,6 +1084,10 @@ msgstr "Alternar barra lateral"
msgid "Toggle starred status of current entry"
msgstr "Alternar estrela da entrada atual"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Tópico"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Experimente o CommaFeed com a conta demo: demo/demo"
@@ -1026,16 +1106,18 @@ msgstr "Não lido"
msgid "Unstar"
msgstr "Desestrelar"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Cancelar inscrição"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Chave do usuário"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Nome de usuário"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Nome de usuário ou e-mail"
@@ -1052,6 +1134,10 @@ msgstr "Aviso"
msgid "Website"
msgstr "Site"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Bem-vindo! Esta parece ser a primeira vez que você está executando o CommaFeed. Crie uma conta de administrador para começar."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "Amarelo"
@@ -1063,3 +1149,7 @@ msgstr "Você ainda não tem nenhuma assinatura. "
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Seus feed foram enfileirados para atualização"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Sua senha foi alterada. Agora você pode fazer login com sua nova senha."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed - это проект с открытым исходным кодом. Исходный код доступен по адресу </0><1>GitHub</1>."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>Полный синтаксис доступен </0><1>здесь</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>Есть аккаунт?</0><1>Войти!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Нужен аккаунт?</0><1>Зарегистрируйтесь!<
msgid "About"
msgstr "О CommaFeed"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Токен доступа"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Действия"
@@ -60,6 +60,10 @@ msgstr "Добавить пользователя"
msgid "Admin"
msgstr "Админ"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Имя администратора"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "Админ"
msgid "All"
msgstr "Все"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "Всегда"
@@ -93,6 +96,14 @@ msgstr "Объявление"
msgid "API key"
msgstr "Ключ API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API токен"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Токен приложения"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Вы уверены, что хотите удалить категорию <0>{categoryName}</0>?"
@@ -122,32 +133,37 @@ msgid "Asc"
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."
msgstr "Доступными переменными являются «заголовок», «контент», «url», «автор» и «категории», и их содержимое преобразуется в нижний регистр для облегчения сравнения строк."
msgid "Auto-mark as read"
msgstr "Автоматически помечать как прочитанное"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Назад"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Вернуться к входу"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Синий"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Расширение для браузера"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Для браузера Chrome требуется расширение"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Расширение для браузера"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Вкладка браузера"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Создайте выражение фильтра, чтобы указать, что вы хотите читать. Записи, которые не соответствуют выражению, будут автоматически помечены как прочитанные."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Отмена"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -187,7 +200,7 @@ msgstr "Закрыть меню"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
@@ -221,10 +234,18 @@ msgstr "Подтвердить"
msgid "Confirm password"
msgstr "Подтвердить пароль"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Подтвердите пароль"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Уютно"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Создать учетную запись администратора"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -247,7 +268,7 @@ msgstr "Пользовательский JS-код, который будет в
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Голубой"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -258,11 +279,14 @@ msgstr "Темная"
msgid "Date created"
msgstr "Дата создания"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "дней"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Удалить"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Удалить учетную запись"
@@ -283,6 +307,10 @@ msgstr "По убыванию"
msgid "Detailed"
msgstr "Подробно"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Отключить поведение браузера «Потяните для обновления»"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "Перетащите ссылку на панель закладок"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "Электронная почта"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "Адрес электронной почты"
@@ -334,20 +361,16 @@ msgstr "Введите текущий пароль, чтобы изменить
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Количество записей, которые должны оставаться над выбранной записью при прокрутке"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Заголовки записей"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Ошибка"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Пример: {пример}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Расширенный"
@@ -365,7 +388,6 @@ msgstr "Параметры расширения"
msgid "Feed name"
msgstr "Имя фида"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -389,11 +411,11 @@ msgstr "Выражение фильтрации"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Размер шрифта"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Принудительное получение фидов пока недоступно."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -434,24 +456,20 @@ msgstr "Сладости"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Виноградный"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Серый"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Зеленый"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Если не пусто, то выражение, оценивающееся как 'true' или 'false'. Если false, то новые записи для этой ленты будут автоматически помечаться как прочитанные."
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "Если запись не помещается на экране полностью"
@@ -470,7 +488,15 @@ msgstr "В развернутом виде прокрутка записей п
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Индиго"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Начальная настройка"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Неверная ссылка для сброса пароля. Пожалуйста, запросите новую."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -504,7 +530,7 @@ msgstr "Светлая"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Лаймовый"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Ссылка"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Ссылка на документацию"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Загрузка подписок..."
msgid "Loading tags..."
msgstr "Загрузка тегов..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "Отметить как прочитанное"
msgid "Mark as read up to here"
msgstr "Отметить как прочитанное до этого места"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Помечать записи в этом фиде как прочитанные через указанное количество дней. Оставьте пустым, чтобы отключить."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Метрики"
@@ -604,9 +633,8 @@ msgstr "Перейдите к подписке, введя ее имя."
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Переходить к следующей категории/фиду с непрочитанными записями при пометке всех записей как прочитанных"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "Никогда"
@@ -615,6 +643,10 @@ msgstr "Никогда"
msgid "New password"
msgstr "Новый пароль"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Новый пароль"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Сначала новые"
@@ -638,7 +670,7 @@ msgstr "Записей больше нет"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Нет доступных вариантов для обмена."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,11 +682,11 @@ msgstr "Сначала самые старые"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "На ПК"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "На телефоне"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
@@ -662,7 +694,7 @@ msgstr "На мобильных устройствах отображать кн
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Применяется только к компактному, уютному и подробному режимам"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -717,7 +749,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "Экспорт OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML файл"
@@ -728,7 +759,7 @@ msgstr "Необходим файл OPML"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Оранжевый"
#: src/pages/app/AboutPage.tsx
msgid "Order"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Родительская категория"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Пароль"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Пароль должен содержать не менее {minimumPasswordLength} символов"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Восстановление пароля"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Пароли не совпадают"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Розовый"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -773,19 +807,44 @@ msgstr "Предыдущий"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Основной цвет"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Профиль"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Служба пуш-уведомлений"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Пуш-уведомления"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Пуш-уведомления не настроены в ваших пользовательских настройках."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Пуш-уведомления не включены в этом экземпляре CommaFeed."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Получать пуш-уведомления"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Получайте пуш-уведомления при обнаружении новых записей в фиде. Включите «Получать пуш-уведомления» в настройках каждого фида, для которого вы хотите получать уведомления."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Восстановить пароль"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Красный"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,11 +855,14 @@ msgstr "Обновить"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Регистрация закрыта для этого экземпляра CommaFeed."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Сброс пароля"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Правый клик"
@@ -808,6 +870,7 @@ msgstr "Правый клик"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,19 +889,21 @@ msgid "Scrolling"
msgstr "Прокрутка"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Поиск"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Выбрать следующий непрочитанный фид/категорию"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Выбрать предыдущий непрочитанный фид/категорию"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL сервера"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,8 +929,6 @@ msgstr "Поделиться"
msgid "Sharing sites"
msgstr "Обмен сайтами"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Shift"
@@ -888,7 +951,7 @@ msgstr "Показать меню входа (телефон)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Показывать значок внешней ссылки"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -904,17 +967,16 @@ msgstr "Показать родное меню (ПК)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Показывать значок звезды"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Показывать количество непрочитанных во вкладке favicon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Показывать количество непрочитанных в заголовке вкладки"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Зарегистрироваться"
msgid "Something bad just happened..."
msgstr "Только что случилось что-то плохое..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Пробел"
@@ -941,7 +1002,6 @@ msgstr "В избранное"
msgid "Starred"
msgstr "Избранное"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -975,14 +1035,21 @@ msgstr "Переключиться на светлую тему"
msgid "System"
msgstr "Системная"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Теги"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Бирюзовый"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Тест"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
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."
@@ -992,10 +1059,19 @@ msgstr "URL канала, на который вы хотите подписат
msgid "Theme"
msgstr "Тема"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Этот фид имеет устаревший фильтр, который нельзя редактировать и который не применяется. Пожалуйста, создайте фильтр заново, используя новый редактор выражений. Устаревшее выражение фильтра было: <0>{0}</0>"
#: 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 "Это ваш ключ API. Он может использоваться для некоторых операций API только для чтения и предоставляет доступ к API Fever. Чтобы сгенерировать новый ключ API, воспользуйтесь формой в нижней части страницы"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Этот параметр может вызвать проблемы с прокруткой в некоторых браузерах (например, Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Переключить статус чтения текущей записи"
@@ -1008,6 +1084,10 @@ msgstr "Переключить боковую панель"
msgid "Toggle starred status of current entry"
msgstr "Переключение статуса избранное для текущей записи"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Тема"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "Попробуйте CommaFeed на демо аккаунте: demo/demo"
@@ -1026,23 +1106,25 @@ msgstr "Не прочитано"
msgid "Unstar"
msgstr "Удалить из избранного"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Отписаться"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Ключ пользователя"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Имя пользователя"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Имя пользователя или адрес электронной почты"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Фиолетовый"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,9 +1134,13 @@ msgstr "Предупреждение"
msgid "Website"
msgstr "Веб-сайт"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Добро пожаловать! Похоже, вы запускаете CommaFeed в первый раз. Пожалуйста, создайте учетную запись администратора, чтобы начать работу."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
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?"
@@ -1063,3 +1149,7 @@ msgstr "У вас еще нет подписок. Почему бы не поп
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Ваши каналы были поставлены в очередь на обновление."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Ваш пароль был изменен. Теперь вы можете войти с новым паролем."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed je open-source projekt. Zdrojové kódy sú hostované na </0><1>GitHub-e</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Máte účet?</0><1>Prihláste sa!</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>Ahoj,</0><1>som Jérémie z Belgicka a na CommaFeed pracujem vo svojom voľnom čase už viac ako 10 rokov. Ďakujem za záujem pomôcť mi pokračovať v podpore CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Potrebujete účet?</0><1>Zaregistrujte sa!</1>"
msgid "About"
msgstr "Asi"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Prístupový token"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Akcie"
@@ -60,6 +60,10 @@ msgstr "Pridať užívateľa"
msgid "Admin"
msgstr "Správca"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Meno správcu"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Správca"
msgid "All"
msgstr "Všetky"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Vždy"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -83,16 +86,24 @@ msgstr "Súbor opml je súbor XML obsahujúci adresy URL kanálov a kategórie.
#: src/components/content/add/Subscribe.tsx
msgid "Analyze feed"
msgstr "Analyzujte krmivo"
msgstr "Analyzovať feed"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Oznámenie"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "Kľúč API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "Token API"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Token aplikácie"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Naozaj chcete odstrániť kategóriu <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Naozaj chcete zrušiť odber kanála <0>{feedName}</0>?"
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Vzostupne"
#: 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."
msgstr "Dostupné premenné sú 'názov', 'obsah', 'url', 'autor' a 'kategórie' a ich obsah je skonvertovaný na malé písmená, aby sa uľahčilo porovnávanie reťazcov."
msgid "Auto-mark as read"
msgstr "Automaticky označiť ako prečítané"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Späť"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Späť na prihlásenie"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Modrá"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Rozšírenie prehliadača"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Pre Chrome sa vyžaduje rozšírenie prehliadača"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Karta prehliadača"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Vytvorte výraz filtra na určenie toho, čo chcete čítať. Záznamy, ktoré sa nezhodujú, budú automaticky označené ako prečítané."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Zrušiť"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Skontrolujte, či feed funguje"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Zatvoriť menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Rozšírenie prehliadača CommaFeed verzie {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 je kompatibilný s Fever API. Vo svojom mobilnom klientovi kompatibilnom s Fever použite nasledujúcu adresu URL. Prihláste sa pomocou svojho používateľského mena a <0>kľúča API</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed ďalšia neprečítaná položka"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "Verzia CommaFeed {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Potvrdiť"
msgid "Confirm password"
msgstr "Potvrďte heslo"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Potvrdiť heslo"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Útulný"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Vytvoriť účet správcu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Aktuálne heslo"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Vlastný kód"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Vlastné pravidlá CSS, ktoré sa použijú"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Vlastný kód JS, ktorý sa vykoná pri načítaní stránky"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Azúrová"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Tmavá"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Dátum vytvorenia"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dni"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Vymazať"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Vymažte účet"
@@ -277,11 +301,15 @@ msgstr "Vymažte používateľa"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Zostupne"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detailný"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Zakázať správanie prehliadača „Potiahnutím obnoviť“"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Displej"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Darovať"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Presuňte odkaz na lištu so záložkami"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr ""
msgstr "E-mail"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-mailová adresa"
@@ -334,20 +361,16 @@ msgstr "Ak chcete zmeniť nastavenia profilu, zadajte svoje aktuálne heslo"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Záznamy, ktoré sa majú ponechať nad vybraným záznamom pri rolovaní"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Hlavičky záznamov"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Chyba"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Príklad: {príklad}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Rozšírené"
@@ -359,13 +382,12 @@ msgstr "Exportujte svoje odbery a kategórie ako súbor OPML, ktorý je možné
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Možnosti rozšírenia"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Názov informačného kanála"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "URL informačného kanála"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Načítať všetky moje feedy teraz"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Adresa URL rozhrania Fever API"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Filtrovanie výrazu"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Veľkosť písma"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Vynútené načítanie kanálov ešte nie je k dispozícii."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Generovaná adresa URL informačného kanála"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Prejsť na {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Dobrôtky"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Hroznová"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Sivá"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Zelená"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Ak nie je prázdny, výraz vyhodnotený ako 'pravda' alebo 'nepravda'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Ak sa záznam úplne nezmestí na obrazovku"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -462,7 +480,7 @@ msgstr "Ak narazíte na problém, nahláste ho na stránke problémov projektu G
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Importovať"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -470,7 +488,15 @@ msgstr "V rozšírenom zobrazení ich rolovanie cez položky označí ako preč
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Počiatočné nastavenie"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Neplatný odkaz na obnovenie hesla. Vyžiadajte si prosím nový."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Posledná obnovovacia správa"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Svetlá"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limetková"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Odkaz"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Odkaz na dokumentáciu"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Načítavam odbery..."
msgid "Loading tags..."
msgstr "Načítavam značky..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Odhlásenie"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Dlhé stlačenie"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Označiť ako prečítané"
msgid "Mark as read up to here"
msgstr "Označiť ako prečítané až sem"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Označte záznamy v tomto kanáli ako prečítané po tomto počte dní. Ak chcete túto funkciu zakázať, ponechajte prázdne."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metriky"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Kliknutie stredným tlačidlom"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Posuňte stránku nahor"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Prejdite na predplatné zadaním jeho názvu"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Pri označovaní všetkých položiek ako prečítaných prejdite na ďalšiu kategóriu/kanál s neprečítanými položkami"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Nikdy"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nové heslo"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nové heslo"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Najnovšie ako prvé"
@@ -638,7 +670,7 @@ msgstr "Žiadne ďalšie záznamy"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Nie sú k dispozícii žiadne možnosti zdieľania."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Najprv najstarší"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Na deesktope"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Na mobile"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "V mobile zobrazovať tlačidlá akcií v spodnej časti obrazovky"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Platí len pre kompaktný, útulný a detailný režim"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Ojoj!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Otvoriť CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Otvoriť odkaz"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Otvoriť odkaz na novej karte na pozadí"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Otvoriť odkaz na novej karte"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Otvoriť menu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Otvoriť/zatvoriť aktuálny záznam"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr "Export OPML"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "súbor OPML"
msgstr "Súbor OPML"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "Vyžaduje sa súbor OPML"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Oranžová"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Poriadok"
msgstr "Poradie"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Rodičovská kategória"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Heslo"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Heslo musí mať aspoň {minimumPasswordLength} znakov"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Obnovenie hesla"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Heslá sa nezhodujú"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Ružová"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -769,23 +803,48 @@ msgstr "Pozícia"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Predchádzajúci"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Primárna farba"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Služba push notifikácií"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push notifikácie"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push notifikácie nie sú nakonfigurované vo vašich používateľských nastaveniach."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push notifikácie nie sú v tejto inštancii CommaFeed povolené."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Prijímať push notifikácie"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Dostávajte push notifikácie, keď sa zistia nové záznamy v kanáloch. Povoľte „Prijímať push notifikácie“ v nastaveniach každého kanála, pre ktorý chcete dostávať notifikácie."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Obnoviť heslo"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Červená"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Obnoviť"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "V tejto inštancii CommaFeed sú registrácie uzavreté"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Obnoviť heslo"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Kliknutie pravým tlačidlom"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Uložiť"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Posunúť vybraný záznam na vrch stránky"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Pri navigácii medzi položkami plynulo rolujte"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Rolovanie"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Hľadaj"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Vybrať ďalší neprečítaný kanál/kategóriu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Vybrať predchádzajúci neprečítaný kanál/kategóriu"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "URL servera"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Zdieľať"
msgid "Sharing sites"
msgstr "Zdieľanie stránok"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Smena"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Zobraziť vlastné kontextové menu CommaFeed pri kliknutí pravým tlačidlom"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Zobraziť potvrdenie pri označovaní všetkých záznamov ako prečítaných"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Zobraziť menu záznamu (desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Zobraziť menu záznamu (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Zobraziť ikonu externého odkazu"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Zobraziť pomoc s klávesovými skratkami"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Zobraziť natívne menu (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Zobraziť ikonu hviezdičky"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Zobraziť počet neprečítaných v ikone karty"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Zobraziť počet neprečítaných v názve karty"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,10 +986,9 @@ msgstr "Zaregistrujte sa"
msgid "Something bad just happened..."
msgstr "Práve sa stalo niečo zlé..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Vesmír"
msgstr "Medzera"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -941,7 +1002,6 @@ msgstr "Hviezda"
msgid "Starred"
msgstr "S hviezdičkou"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Úspech"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Potiahnutie hlavičky doľava"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Prepnite na svetlú tému"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Systém"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Značky"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Teal"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testovacie oznámenie bolo úspešne odoslané."
#: 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."
@@ -992,21 +1059,34 @@ msgstr "URL zdroja, na odber ktorého sa chcete prihlásiť. "
msgid "Theme"
msgstr "Téma"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Tento kanál má starší filter, ktorý sa nedá upravovať a nepoužíva sa. Znova vytvorte filter pomocou nového editora výrazov. Pôvodný výraz filtra bol: <0>{0}</0>"
#: 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 "Toto je váš kľúč API. Môže sa použiť na niektoré operácie rozhrania API len na čítanie a poskytuje prístup k rozhraniu Fever API. Na vygenerovanie nového kľúča API použite formulár v dolnej časti stránky."
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Toto nastavenie môže spôsobiť problémy s rolovaním v niektorých prehliadačoch (napr. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "Prepne stav čítania aktuálneho záznamu"
msgstr "Prepnúť stav čítania aktuálneho záznamu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Prepnúť bočný panel"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Prepnúť stav aktuálneho záznamu s hviezdičkou"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Téma"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Vyskúšajte CommaFeed s demo účtom: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Vyskúšajte demo!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1026,23 +1106,25 @@ msgstr "Neprečítané"
msgid "Unstar"
msgstr "Odobrať hviezdičku"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Zrušte odber"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Používateľský kľúč"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Meno používateľa"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Meno používateľa alebo e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Fialová"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Varovanie"
msgid "Website"
msgstr "Webová stránka"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Vitajte! Zdá sa, že CommaFeed spúšťate prvýkrát. Ak chcete začať, vytvorte si účet správcu."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Žltá"
#: 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 "Zatiaľ nemáte žiadne odbery. "
msgstr "Zatiaľ nemáte žiadne odbery. Prečo neskúsite pridať jeden kliknutím na znak + v hornej časti stránky?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Vaše kanály boli zaradené do frontu na obnovenie."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Vaše heslo bolo zmenené. Teraz sa môžete prihlásiť pomocou nového hesla."

View File

@@ -15,11 +15,7 @@ msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr ""
msgstr "<0>CommaFeed är ett projekt med öppen källkod. Källkoden finns på </0><1>GitHub</1>."
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
@@ -27,7 +23,7 @@ msgstr "<0>Har du ett konto?</0><1>Logga in!</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>Hej,</0><1>jag är Jérémie från Belgien och jag har arbetat på CommaFeed på min fritid i över 10 år nu. Tack för att du visar intresse för att hjälpa mig fortsätta stödja CommaFeed.</1>"
#: src/pages/auth/LoginPage.tsx
msgid "<0>Need an account?</0><1>Sign up!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Behöver du ett konto?</0><1>Registrera dig!</1>"
msgid "About"
msgstr "Ungefär"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Åtkomsttoken"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Handlingar"
@@ -58,7 +58,11 @@ msgstr "Lägg till användare"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin"
msgstr ""
msgstr "Admin"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Administratörsanvändarnamn"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
@@ -68,10 +72,9 @@ msgstr ""
msgid "All"
msgstr "Alla"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Alltid"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -83,16 +86,24 @@ msgstr "En opml-fil är en XML-fil som innehåller feed-URL:er och kategorier. "
#: src/components/content/add/Subscribe.tsx
msgid "Analyze feed"
msgstr "Analysera foder"
msgstr "Analysera flöde"
#: src/components/AnnouncementDialog.tsx
msgid "Announcement"
msgstr ""
msgstr "Meddelande"
#: src/components/settings/ProfileSettings.tsx
msgid "API key"
msgstr "API-nyckel"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API-token"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "App-token"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "Är du säker på att du vill ta bort kategori <0>{categoryName}</0>?"
@@ -119,35 +130,40 @@ msgstr "Är du säker på att du vill avsluta prenumerationen på <0>{feedName}<
#: src/components/header/Header.tsx
msgid "Asc"
msgstr ""
msgstr "Stigande"
#: 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."
msgstr "Tillgängliga variabler är 'titel', 'innehåll', 'url' 'författare' och 'kategorier' och deras innehåll konverteras till gemener för att underlätta strängjämförelse."
msgid "Auto-mark as read"
msgstr "Markera automatiskt som läst"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Tillbaka"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Tillbaka för att logga in"
msgstr "Tillbaka till inloggning"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Blå"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Webbläsartillägg"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr ""
msgstr "Webbläsartillägg krävs för Chrome"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Webbläsarflik"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Skapa ett filteruttryck för att ange vad du vill läsa. Poster som inte matchar kommer att markeras som lästa automatiskt."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "Avbryt"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,19 +196,19 @@ msgstr "Kontrollera att matningen fungerar"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Stäng meny"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
msgstr ""
msgstr "Webbläsartillägget CommaFeed 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 är kompatibelt med Fever API. Använd följande URL i din Fever-kompatibla mobilklient. Logga in med ditt användarnamn och din <0>API-nyckel</0>."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -203,7 +216,7 @@ msgstr "CommaFeed nästa olästa objekt"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed version {version} ({revision})."
msgstr ""
msgstr "CommaFeed version {version} ({revision})."
#: src/components/header/ProfileMenu.tsx
msgid "Compact"
@@ -221,13 +234,21 @@ msgstr "Bekräfta"
msgid "Confirm password"
msgstr "Bekräfta lösenord"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Bekräfta lösenord"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Mysigt"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Skapa administratörskonto"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr ""
msgstr "Ctrl"
#: src/components/settings/ProfileSettings.tsx
msgid "Current password"
@@ -235,34 +256,37 @@ msgstr "Aktuellt lösenord"
#: src/pages/app/SettingsPage.tsx
msgid "Custom code"
msgstr ""
msgstr "Egen kod"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom CSS rules that will be applied"
msgstr ""
msgstr "Egna CSS-regler som kommer att tillämpas"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Custom JS code that will be executed on page load"
msgstr ""
msgstr "Egen JS-kod som kommer att köras vid sidladdning"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Cyan"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Mörkt"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Datum skapat"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "dagar"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Ta bort"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Radera konto"
@@ -277,11 +301,15 @@ msgstr "Ta bort användare"
#: src/components/header/Header.tsx
msgid "Desc"
msgstr ""
msgstr "Fallande"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detaljerad"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Inaktivera „Dra för att uppdatera”-beteende i webbläsaren"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Visa"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Donera"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Dra länken till bokmärkesfältet"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-post"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-postadress"
@@ -326,7 +353,7 @@ msgstr "Aktiverad"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter"
msgstr ""
msgstr "Enter"
#: src/components/settings/ProfileSettings.tsx
msgid "Enter your current password to change profile settings"
@@ -334,20 +361,16 @@ msgstr "Ange ditt nuvarande lösenord för att ändra profilinställningar"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Antal poster att behålla ovanför markerad post vid rullning"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Postrubriker"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Fel"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Exempel: {exempel}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Utökad"
@@ -359,13 +382,12 @@ msgstr "Exportera dina prenumerationer och kategorier som en OPML-fil som kan im
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options"
msgstr ""
msgstr "Tilläggsalternativ"
#: src/components/content/add/Subscribe.tsx
msgid "Feed name"
msgstr "Flödesnamn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -373,15 +395,15 @@ msgstr "Flödes-URL"
#: src/components/header/ProfileMenu.tsx
msgid "Fetch all my feeds now"
msgstr ""
msgstr "Hämta alla mina flöden nu"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever API-URL"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Filtrerande uttryck"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Teckenstorlek"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Tvingad hämtning av flöden är inte tillgänglig än."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -418,7 +440,7 @@ msgstr "Genererad feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
msgstr "Gå till {0}"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Go to the All view"
@@ -434,27 +456,23 @@ msgstr "Godsaker"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Lila"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Grå"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Grön"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
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 "Om det inte är tomt, ett uttryck som utvärderas till 'sant' eller 'falskt'. "
msgstr "Id"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr ""
msgstr "Om posten inte får plats helt på skärmen"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -462,7 +480,7 @@ msgstr "Om du stöter på ett problem, vänligen rapportera det på problemsidan
#: src/components/content/add/ImportOpml.tsx
msgid "Import"
msgstr ""
msgstr "Importera"
#: src/components/settings/DisplaySettings.tsx
msgid "In expanded view, scrolling through entries mark them as read"
@@ -470,7 +488,15 @@ msgstr "I utökad vy, rullning genom poster markerar dem som lästa"
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "Indigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Initial konfiguration"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Ogiltig länk för återställning av lösenord. Vänligen begär en ny."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Senaste uppdateringsmeddelande"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Ljust"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Lime"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Länk"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Länk till dokumentationen"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Laddar prenumerationer..."
msgid "Loading tags..."
msgstr "Laddar taggar..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -544,7 +569,7 @@ msgstr "Logga ut"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Long press"
msgstr ""
msgstr "Långt tryck"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -570,13 +595,17 @@ msgstr "Markera som läst"
msgid "Mark as read up to here"
msgstr "Markera som läst hit"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Markera poster i detta flöde som lästa efter detta antal dagar. Lämna tomt för att inaktivera."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Mätverk"
msgstr "Mätvärden"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Middle click"
msgstr ""
msgstr "Mittenklick"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Move the page down"
@@ -589,7 +618,7 @@ msgstr "Flytta sidan uppåt"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A"
msgstr ""
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
@@ -604,17 +633,20 @@ msgstr "Navigera till ett abonnemang genom att ange dess namn"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Navigera till nästa kategori/flöde med olästa poster när alla poster markeras som lästa"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Aldrig"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Nytt lösenord"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nytt lösenord"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Nyast först"
@@ -638,7 +670,7 @@ msgstr "Inga fler poster"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Inga delningsalternativ tillgängliga."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Äldst först"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "På desktop"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "På mobil"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "På mobil, visa handlingsknappar längst ner på skärmen"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Gäller endast för lägena kompakt, mysigt och detaljerat"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -670,7 +702,7 @@ msgstr "Hoppsan!"
#: src/components/header/Header.tsx
msgid "Open CommaFeed"
msgstr ""
msgstr "Öppna CommaFeed"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open current entry in a new tab"
@@ -687,15 +719,15 @@ msgstr "Öppen länk"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new background tab"
msgstr ""
msgstr "Öppna länk i ny bakgrundsflik"
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Open link in new tab"
msgstr ""
msgstr "Öppna länk i ny flik"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Öppna meny"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -711,28 +743,27 @@ msgstr "Öppna/stäng aktuell ingång"
#: src/pages/app/AddPage.tsx
msgid "OPML"
msgstr ""
msgstr "OPML"
#: src/components/settings/ProfileSettings.tsx
msgid "OPML export"
msgstr ""
msgstr "OPML-export"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML-fil"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML-fil krävs"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Orange"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Beställning"
msgstr "Ordning"
#: src/components/content/add/AddCategory.tsx
msgid "Parent"
@@ -743,49 +774,77 @@ msgid "Parent Category"
msgstr "Föräldrakategori"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Lösenord"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Lösenordet måste vara minst {minimumPasswordLength} tecken"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Lösenordsåterställning"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Lösenorden matchar inte"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Rosa"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position"
msgstr ""
msgstr "Position"
#: src/components/header/Header.tsx
msgid "Previous"
msgstr ""
msgstr "Föregående"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Primärfärg"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push-notifieringstjänst"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push-notifieringar"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push-notifieringar är inte konfigurerade i dina användarinställningar."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Push-notifieringar är inte aktiverade på denna CommaFeed-instans."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Ta emot push-notifieringar"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Ta emot push-notifieringar när nya flödesposter upptäcks. Aktivera „Ta emot push-notifieringar” i inställningarna för varje flöde som du vill få notifieringar för."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Återställ lösenord"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Röd"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,18 +855,22 @@ msgstr "Uppdatera"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registreringar är stängda på denna CommaFeed-instans"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Återställ lösenord"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr ""
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr ""
msgstr "Högerklick"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Spara"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Rulla markerad post till toppen av sidan"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Bläddra mjukt när du navigerar mellan poster"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Rullning"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Sök"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Välj nästa olästa flöde/kategori"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Välj föregående olästa flöde/kategori"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Server-URL"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,31 +929,29 @@ msgstr "Dela"
msgid "Sharing sites"
msgstr "Delningssajter"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Skift"
#: src/components/settings/DisplaySettings.tsx
msgid "Show CommaFeed's own context menu on right click"
msgstr ""
msgstr "Visa CommaFeeds egna kontextmeny vid högerklick"
#: src/components/settings/DisplaySettings.tsx
msgid "Show confirmation when marking all entries as read"
msgstr ""
msgstr "Visa bekräftelse när alla poster markeras som lästa"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (desktop)"
msgstr ""
msgstr "Visa postmeny (desktop)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show entry menu (mobile)"
msgstr ""
msgstr "Visa postmeny (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Visa ikon för extern länk"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -900,21 +963,20 @@ msgstr "Visa kortkommandohjälp"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Show native menu (desktop)"
msgstr ""
msgstr "Visa infödd meny (desktop)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Visa stjärnikon"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Visa antal olästa i flikikonen"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Visa antal olästa i fliktiteln"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Anmäl dig"
msgid "Something bad just happened..."
msgstr "Något dåligt hände precis..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Rymden"
@@ -941,7 +1002,6 @@ msgstr "Stjärna"
msgid "Starred"
msgstr "Starmed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Framgång"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Svep rubriken åt vänster"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Byt till ljustema"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "System"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Taggar"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Blågrön"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Testnotifiering skickades utan fel."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "URL:en för flödet du vill prenumerera på. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Detta flöde har ett gammalt filter som inte kan redigeras och inte tillämpas. Skapa filtret på nytt med den nya uttryckseditorern. Det gamla filteruttrycket var: <0>{0}</0>"
#: 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 "Detta är din API-nyckel. Den kan användas för vissa skrivskyddade API-operationer och ger åtkomst till Fever API. Använd formuläret längst ner på sidan för att generera en ny API-nyckel"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Denna inställning kan orsaka rullningsproblem i vissa webbläsare (t.ex. Safari)"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1002,11 +1078,15 @@ msgstr "Växla lässtatus för aktuell post"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle sidebar"
msgstr ""
msgstr "Växla sidofält"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Växla stjärnstatus för aktuell post"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Ämne"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1014,7 +1094,7 @@ msgstr "Prova CommaFeed med demokontot: demo/demo"
#: src/pages/WelcomePage.tsx
msgid "Try the demo!"
msgstr ""
msgstr "Prova demon!"
#: src/components/header/Header.tsx
msgid "Unread"
@@ -1024,25 +1104,27 @@ msgstr "Oläst"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
msgstr "Ta bort stjärna"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Avregistrera"
msgstr "Avsluta prenumeration"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Användarnyckel"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Användarnamn"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Användarnamn eller e-post"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Lila"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,14 +1134,22 @@ msgstr "Varning"
msgid "Website"
msgstr "Webbplats"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Välkommen! Det verkar vara första gången du kör CommaFeed. Skapa ett administratörskonto för att komma igång."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Gul"
#: 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 "Du har inga prenumerationer än. "
msgstr "Du har inga prenumerationer än. Varför inte prova att lägga till en genom att klicka på +-tecknet högst upp på sidan?"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr ""
msgstr "Dina flöden har köats för uppdatering."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Ditt lösenord har ändrats. Du kan nu logga in med ditt nya lösenord."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed açık kaynak kodlu bir proje. Kaynak kodları </0><1>GitHub</1>'da."
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>Tüm sözdizimi </0><1>burada</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>Hesabınız var mı?</0><1>Giriş yapın!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>Bir hesaba mı ihtiyacınız var?</0><1>Kaydolun!</1>"
msgid "About"
msgstr "Hakkında"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "Erişim jetonu"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "Eylemler"
@@ -60,6 +60,10 @@ msgstr "Kullanıcı ekle"
msgid "Admin"
msgstr "Yönetici"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "Yönetici kullanıcı adı"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,10 +72,9 @@ msgstr "Yönetici"
msgid "All"
msgstr "Tümü"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr ""
msgstr "Her zaman"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "An email has been sent if this address was registered. Check your inbox."
@@ -93,6 +96,14 @@ msgstr "Duyuru"
msgid "API key"
msgstr "API anahtarı"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API jetonu"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "Uygulama jetonu"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "<0>{categoryName}</0> kategorisini silmek istediğinizden emin misiniz?"
@@ -122,32 +133,37 @@ msgid "Asc"
msgstr "Artan"
#: 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."
msgstr "Mevcut değişkenler 'title', 'content', 'url' 'yazar' ve 'kategoriler'dir ve dize karşılaştırmasını kolaylaştırmak için içerikleri küçük harfe dönüştürülür."
msgid "Auto-mark as read"
msgstr "Otomatik olarak okundu olarak işaretle"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "Geri"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "Giriş yapmak için geri dön"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
msgstr "Mavi"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Tarayıcı eklentisi"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Tarayıcı eklentisi"
msgstr "Chrome için tarayıcı eklentisi gereklidir"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "Tarayıcı sekmesi"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "Ne okumak istediğinizi belirtmek için bir filtre ifadesi oluşturun. Eşleşmeyen girişler otomatik olarak okundu olarak işaretlenecektir."
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
@@ -155,17 +171,14 @@ msgstr ""
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "İptal"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -183,11 +196,11 @@ msgstr "Feed'in çalışıp çalışmadığını kontrol edin"
#: src/pages/app/Layout.tsx
msgid "Close menu"
msgstr ""
msgstr "Menüyü kapat"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
@@ -195,7 +208,7 @@ msgstr "CommaFeed tarayıcı eklentisi sürüm {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 ile uyumludur. Fever uyumlu mobil istemcinizde aşağıdaki URL'yi kullanın. Kullanıcı adınız ve <0>API anahtarınız</0> ile giriş yapın."
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed next unread item"
@@ -221,10 +234,18 @@ msgstr "Onayla"
msgid "Confirm password"
msgstr "Şifreyi onayla"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Şifreyi Onayla"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "Rahat"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Yönetici Hesabı Oluştur"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -247,22 +268,25 @@ msgstr "Sayfa yüklendiğinde çalıştırılacak özel JS kodu"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
msgstr "Macenta"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark"
msgstr ""
msgstr "Koyu"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
msgstr "Oluşturulma tarihi"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "gün"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "Sil"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "Hesabı sil"
@@ -281,7 +305,11 @@ msgstr "Açılış"
#: src/components/header/ProfileMenu.tsx
msgid "Detailed"
msgstr ""
msgstr "Detaylı"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "Tarayıcının \"Yenilemek için çek\" davranışını devre dışı bırak"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
@@ -292,7 +320,7 @@ msgstr "Ekran"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate"
msgstr ""
msgstr "Bağış Yap"
#: src/components/settings/ProfileSettings.tsx
msgid "Download"
@@ -305,12 +333,11 @@ msgstr "Bağlantıyı yer işareti çubuğuna sürükleyin"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "E-posta"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "E-posta adresi"
@@ -334,20 +361,16 @@ msgstr "Profil ayarlarını değiştirmek için mevcut şifrenizi girin"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "Kaydırma sırasında seçilen girişin üzerinde tutulacak giriş sayısı"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
msgstr ""
msgstr "Giriş başlıkları"
#: src/components/Alert.tsx
msgid "Error"
msgstr "Hata"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "Örnek: {örnek}."
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "Genişletilmiş"
@@ -365,7 +388,6 @@ msgstr "Eklenti ayarları"
msgid "Feed name"
msgstr "Yayın adı"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -377,11 +399,11 @@ msgstr "Tüm feed'lerimi şimdi çek"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API"
msgstr ""
msgstr "Fever API"
#: src/components/settings/ProfileSettings.tsx
msgid "Fever API URL"
msgstr ""
msgstr "Fever API URL'si"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Filtering expression"
@@ -389,11 +411,11 @@ msgstr "Filtreleme ifadesi"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
msgstr "Yazı boyutu"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "Beslemeleri zorla çekme özelliği henüz mevcut değil."
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
@@ -434,27 +456,23 @@ msgstr "İyilikler"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
msgstr "Üzüm"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
msgstr "Gri"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
msgstr "Yeşil"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Kimlik"
#: 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 "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 ""
msgstr "Eğer giriş ekrana tamamen sığmıyorsa"
#: src/pages/app/AboutPage.tsx
msgid "If you encounter an issue, please report it on the issues page of the GitHub project."
@@ -470,7 +488,15 @@ msgstr "Genişletilmiş görünümde, girişler arasında gezinmek onları okund
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
msgstr "İndigo"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "Başlangıç Kurulumu"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "Geçersiz şifre sıfırlama bağlantısı. Lütfen yeni bir tane isteyin."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
@@ -500,11 +526,11 @@ msgstr "Son yenileme mesajı"
#: src/components/header/ProfileMenu.tsx
msgid "Light"
msgstr ""
msgstr "Açık"
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
msgstr "Limon"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -514,7 +540,7 @@ msgstr "Bağlantı"
#: src/components/settings/CustomCodeSettings.tsx
msgid "Link to the documentation"
msgstr ""
msgstr "Belgelere bağlantı"
#: src/hooks/useAppLoading.ts
msgid "Loading profile..."
@@ -532,7 +558,6 @@ msgstr "Abonelikler yükleniyor..."
msgid "Loading tags..."
msgstr "Etiketler yükleniyor..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "Okundu olarak işaretle"
msgid "Mark as read up to here"
msgstr "Buraya kadar okundu olarak işaretle"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "Bu beslemedeki girişleri şu kadar gün sonra okundu olarak işaretle. Devre dışı bırakmak için boş bırakın."
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "Metrikler"
@@ -604,17 +633,20 @@ msgstr "Adını girerek bir aboneliğe gidin"
#: src/components/settings/DisplaySettings.tsx
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr ""
msgstr "Tüm girişleri okundu olarak işaretlerken okunmamış girişleri olan bir sonraki kategoriye/beslemeye git"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr ""
msgstr "Asla"
#: src/components/settings/ProfileSettings.tsx
msgid "New password"
msgstr "Yeni şifre"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Yeni Şifre"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "Önce en yenisi"
@@ -638,7 +670,7 @@ msgstr "Başka giriş yok"
#: src/components/content/ShareButtons.tsx
msgid "No sharing options available."
msgstr ""
msgstr "Paylaşım seçeneği mevcut değil."
#: src/components/sidebar/TreeSearch.tsx
msgid "Nothing found"
@@ -650,19 +682,19 @@ msgstr "Önce en eski"
#: src/components/settings/DisplaySettings.tsx
msgid "On desktop"
msgstr ""
msgstr "Masaüstünde"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile"
msgstr ""
msgstr "Mobilde"
#: src/components/settings/DisplaySettings.tsx
msgid "On mobile, show action buttons at the bottom of the screen"
msgstr ""
msgstr "Mobilde, eylem düğmelerini ekranın altında göster"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "Yalnızca kompakt, rahat ve detaylı modlar için geçerlidir"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -695,7 +727,7 @@ msgstr "Bağlantıyı yeni sekmede aç"
#: src/pages/app/Layout.tsx
msgid "Open menu"
msgstr ""
msgstr "Menüyü aç"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Open next entry"
@@ -717,18 +749,17 @@ msgstr "OPML"
msgid "OPML export"
msgstr "OPML dışa aktarma"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML dosyası"
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file is required"
msgstr ""
msgstr "OPML dosyası gereklidir"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
msgstr "Turuncu"
#: src/pages/app/AboutPage.tsx
msgid "Order"
@@ -743,24 +774,27 @@ msgid "Parent Category"
msgstr "Üst Kategori"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Şifre"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "Şifre en az {minimumPasswordLength} karakter olmalıdır"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "Parola Kurtarma"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "Parolalar eşleşmiyor"
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
msgstr "Pembe"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
@@ -773,19 +807,44 @@ msgstr "Önceki"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
msgstr "Birincil renk"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "Push bildirim servisi"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "Push bildirimleri"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "Push bildirimleri kullanıcı ayarlarınızda yapılandırılmamış."
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "Bu CommaFeed örneğinde push bildirimleri etkin değil."
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "Push bildirimlerini al"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "Yeni besleme girişleri keşfedildiğinde push bildirimleri alın. Bildirim almak istediğiniz her beslemenin ayarlarında \"Push bildirimlerini al\" seçeneğini etkinleştirin."
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "Şifreyi kurtar"
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
msgstr "Kırmızı"
#: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
@@ -796,11 +855,14 @@ msgstr "Yenile"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "Bu CommaFeed örneğinde kayıtlar kapalı"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Şifreyi Sıfırla"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "Sağ tık"
@@ -808,6 +870,7 @@ msgstr "Sağ tık"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -815,7 +878,7 @@ msgstr "Kaydet"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll selected entry to the top of the page"
msgstr ""
msgstr "Seçilen girişi sayfanın üstüne kaydır"
#: src/components/settings/DisplaySettings.tsx
msgid "Scroll smoothly when navigating between entries"
@@ -823,22 +886,24 @@ msgstr "Girişler arasında gezinirken sorunsuz ilerleyin"
#: src/components/settings/DisplaySettings.tsx
msgid "Scrolling"
msgstr ""
msgstr "Kaydırma"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "Ara"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
msgstr "Sonraki okunmamış beslemeyi/kategoriyi seç"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
msgstr "Önceki okunmamış beslemeyi/kategoriyi seç"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "Sunucu URL'si"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
@@ -864,8 +929,6 @@ msgstr "Paylaş"
msgid "Sharing sites"
msgstr "Siteleri paylaşma"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Vardiya"
@@ -888,7 +951,7 @@ msgstr "Giriş menüsünü göster (mobil)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show external link icon"
msgstr ""
msgstr "Harici bağlantı simgesini göster"
#: src/components/settings/DisplaySettings.tsx
msgid "Show feeds and categories with no unread entries"
@@ -904,17 +967,16 @@ msgstr "Orijinal tarayıcı menüsünü göster (masaüstü)"
#: src/components/settings/DisplaySettings.tsx
msgid "Show star icon"
msgstr ""
msgstr "Yıldız simgesini göster"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "Sekme simgesinde okunmamış sayısını göster"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "Sekme başlığında okunmamış sayısını göster"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "Kaydolun"
msgid "Something bad just happened..."
msgstr "Az önce kötü bir şey oldu..."
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "Uzay"
@@ -941,7 +1002,6 @@ msgstr "Yıldız"
msgid "Starred"
msgstr "Yıldızlı"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -961,7 +1021,7 @@ msgstr "Başarı"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Swipe header to the left"
msgstr ""
msgstr "Başlığı sola kaydır"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
@@ -973,16 +1033,23 @@ msgstr "Aydınlık temaya geç"
#: src/components/header/ProfileMenu.tsx
msgid "System"
msgstr ""
msgstr "Sistem"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "Etiketler"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
msgstr "Camgöbeği"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "Test"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
msgstr "Test bildirimi başarıyla gönderildi."
#: 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."
@@ -992,9 +1059,18 @@ msgstr "Abone olmak istediğiniz beslemenin URL'si. "
msgid "Theme"
msgstr "Tema"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "Bu beslemenin düzenlenemeyen ve uygulanmayan eski bir filtresi var. Lütfen yeni ifade düzenleyiciyi kullanarak filtreyi yeniden oluşturun. Eski filtre ifadesi şuydu: <0>{0}</0>"
#: 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 "Bu sizin API anahtarınızdır. Bazı salt okunur API işlemleri için kullanılabilir ve Fever API'sine erişim sağlar. Yeni bir API anahtarı oluşturmak için sayfanın altındaki formu kullanın"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "Bu ayar bazı tarayıcılarda (örneğin Safari) kaydırma sorunlarına neden olabilir"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
@@ -1006,7 +1082,11 @@ msgstr "Kenar çubuğunu göster/gizle"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle starred status of current entry"
msgstr ""
msgstr "Geçerli girişin yıldızlı durumunu değiştir"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "Konu"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
@@ -1026,23 +1106,25 @@ msgstr "Okunmamış"
msgid "Unstar"
msgstr "Yıldızı kaldır"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "Aboneliği iptal et"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "Kullanıcı anahtarı"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "Kullanıcı adı"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "Kullanıcı Adı veya E-posta"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
msgstr "Menekşe"
#: src/components/Alert.tsx
msgid "Warning"
@@ -1052,9 +1134,13 @@ msgstr "Uyarı"
msgid "Website"
msgstr "Web sitesi"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Hoş geldiniz! Görünüşe göre CommaFeed'i ilk kez çalıştırıyorsunuz. Başlamak için lütfen bir yönetici hesabı oluşturun."
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
msgstr "Sarı"
#: 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?"
@@ -1063,3 +1149,7 @@ msgstr "Henüz aboneliğiniz yok. Sayfanın üstündeki + işaretiyle feed ekley
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "Feed'leriniz yenileme için sıraya alındı."
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "Şifreniz değiştirildi. Artık yeni şifrenizle giriş yapabilirsiniz."

View File

@@ -17,10 +17,6 @@ msgstr ""
msgid "<0>CommaFeed is an open-source project. Sources are hosted on </0><1>GitHub</1>."
msgstr "<0>CommaFeed是一个开源项目,源码托管在 </0><1>GitHub</1>。"
#: src/pages/app/FeedDetailsPage.tsx
msgid "<0>Complete syntax is available </0><1>here</1><2>.</2>"
msgstr "<0>可以使用完整的语法 </0><1>详情</1><2>.</2>"
#: src/pages/auth/RegistrationPage.tsx
msgid "<0>Have an account?</0><1>Log in!</1>"
msgstr "<0>有帐号吗?</0><1>登录!</1>"
@@ -38,6 +34,10 @@ msgstr "<0>需要一个帐户?</0><1>注册!</1>"
msgid "About"
msgstr "关于"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Access token"
msgstr "访问令牌"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Actions"
msgstr "操作"
@@ -60,6 +60,10 @@ msgstr "添加用户"
msgid "Admin"
msgstr "管理员"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Admin user name"
msgstr "管理员用户名"
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
@@ -68,7 +72,6 @@ msgstr "管理员"
msgid "All"
msgstr "全部"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Always"
msgstr "总是"
@@ -93,6 +96,14 @@ msgstr "公告"
msgid "API key"
msgstr "API 密钥"
#: src/components/settings/PushNotificationSettings.tsx
msgid "API token"
msgstr "API 令牌"
#: src/components/settings/PushNotificationSettings.tsx
msgid "App token"
msgstr "应用令牌"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?"
msgstr "您确定要删除类别 <0>{categoryName}</0> 吗?"
@@ -122,14 +133,15 @@ msgid "Asc"
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."
msgstr "可用变量为'title'、'content'、'url'、'author'和'categories',它们的内容被转换为小写以方便字符串比较。"
msgid "Auto-mark as read"
msgstr "自动标记为已读"
#: src/components/content/add/Subscribe.tsx
msgid "Back"
msgstr "返回"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in"
msgstr "返回登录"
@@ -137,35 +149,36 @@ msgstr "返回登录"
msgid "Blue"
msgstr "蓝"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "浏览器扩展"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "浏览器扩展"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr "浏览器标签页"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read automatically."
msgstr "构建过滤表达式以指示您想阅读的内容。不匹配的条目将被自动标记为已读。"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Cancel"
msgstr "取消"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
@@ -221,10 +234,18 @@ msgstr "确认"
msgid "Confirm password"
msgstr "确认密码"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "确认密码"
#: src/components/header/ProfileMenu.tsx
msgid "Cozy"
msgstr "宽松"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "创建管理员帐号"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl"
msgstr "Ctrl"
@@ -258,11 +279,14 @@ msgstr "暗黑"
msgid "Date created"
msgstr "创建日期"
#: src/pages/app/FeedDetailsPage.tsx
msgid "days"
msgstr "天"
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Delete"
msgstr "删除"
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Delete account"
msgstr "删除帐号"
@@ -283,6 +307,10 @@ msgstr "降序"
msgid "Detailed"
msgstr "详细"
#: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "禁用浏览器的“下拉刷新”功能"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
@@ -305,12 +333,11 @@ msgstr "拖动链接到书签栏"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail"
msgstr "电子邮件"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "E-mail address"
msgstr "电子邮件地址"
@@ -344,10 +371,6 @@ msgstr "条目头部"
msgid "Error"
msgstr "错误"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Example: {example}."
msgstr "示例:{示例}。"
#: src/components/header/ProfileMenu.tsx
msgid "Expanded"
msgstr "展开"
@@ -365,7 +388,6 @@ msgstr "扩展选项"
msgid "Feed name"
msgstr "信息流名称"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Feed URL"
@@ -448,10 +470,6 @@ msgstr "绿"
msgid "Id"
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 "如果不为空,则表达式的计算结果为“真”或“假”。如果为“假”,则此信息流的新条目将自动标记为已读。"
#: src/components/settings/DisplaySettings.tsx
msgid "If the entry doesn't entirely fit on the screen"
msgstr "如果条目不能完全显示在屏幕上"
@@ -472,6 +490,14 @@ msgstr "在展开视图中,滚动条目将它们标记为已读"
msgid "Indigo"
msgstr "靛蓝"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Initial Setup"
msgstr "初始化设置"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Invalid password reset link. Please request a new one."
msgstr "密码重置链接无效,请重新申请。"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread"
@@ -532,7 +558,6 @@ msgstr "正在加载订阅..."
msgid "Loading tags..."
msgstr "正在加载标签..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Log in"
@@ -570,6 +595,10 @@ msgstr "标记为已读"
msgid "Mark as read up to here"
msgstr "标记为已读到这里"
#: src/pages/app/FeedDetailsPage.tsx
msgid "Mark entries in this feed as read after this number of days. Leave empty to disable."
msgstr "在此天数后将此信息流中的条目标记为已读。留空以禁用。"
#: src/components/header/ProfileMenu.tsx
msgid "Metrics"
msgstr "指标"
@@ -606,7 +635,6 @@ msgstr "通过输入订阅名称导航到订阅"
msgid "Navigate to the next category/feed with unread entries when marking all entries as read"
msgstr "将所有条目标记为已读时导航到下一个包含未读条目的类别/信息流"
#: src/components/settings/DisplaySettings.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Never"
msgstr "从不"
@@ -615,6 +643,10 @@ msgstr "从不"
msgid "New password"
msgstr "新密码"
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "新密码"
#: src/pages/app/AboutPage.tsx
msgid "Newest first"
msgstr "最新的优先"
@@ -717,7 +749,6 @@ msgstr "OPML"
msgid "OPML export"
msgstr "OPML 导出"
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/ImportOpml.tsx
msgid "OPML file"
msgstr "OPML 文件"
@@ -743,18 +774,21 @@ msgid "Parent Category"
msgstr "父类别"
#: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "密码"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "密码最少需要 {minimumPasswordLength} 个字符"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery"
msgstr "密码恢复"
#: src/components/settings/ProfileSettings.tsx
#: src/hooks/useValidationRules.ts
msgid "Passwords do not match"
msgstr "密码不匹配"
@@ -779,6 +813,31 @@ msgstr "主颜色"
msgid "Profile"
msgstr "配置文件"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notification service"
msgstr "推送通知服务"
#: src/pages/app/SettingsPage.tsx
msgid "Push notifications"
msgstr "推送通知"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Push notifications are not configured in your user settings."
msgstr "您的用户设置中未配置推送通知。"
#: src/components/ReceivePushNotificationsChechbox.tsx
#: src/components/settings/PushNotificationSettings.tsx
msgid "Push notifications are not enabled on this CommaFeed instance."
msgstr "此 CommaFeed 实例未启用推送通知。"
#: src/components/ReceivePushNotificationsChechbox.tsx
msgid "Receive push notifications"
msgstr "接收推送通知"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Receive push notifications when new feed entries are discovered. Enable \"Receive push notifications\" in the settings of each feed for which you want to receive notifications."
msgstr "当发现新的信息流条目时接收推送通知。在您希望接收通知的每个信息流设置中启用“接收推送通知”。"
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Recover password"
msgstr "找回密码"
@@ -796,11 +855,14 @@ msgstr "刷新"
msgid "Registrations are closed on this CommaFeed instance"
msgstr "此 CommaFeed 实例上的注册已关闭"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "重置密码"
#: src/pages/app/AboutPage.tsx
msgid "REST API"
msgstr "REST API"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Right click"
msgstr "右键单击"
@@ -808,6 +870,7 @@ msgstr "右键单击"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/PushNotificationSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save"
@@ -826,8 +889,6 @@ msgid "Scrolling"
msgstr "滚动"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search"
msgstr "搜索"
@@ -840,6 +901,10 @@ msgstr "选择下一个未读信息流/类别"
msgid "Select previous unread feed/category"
msgstr "选择上一个未读信息流/类别"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Server URL"
msgstr "服务器网址"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "将焦点放在下一个条目而不打开它"
@@ -864,8 +929,6 @@ msgstr "分享"
msgid "Sharing sites"
msgstr "共享站点"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Shift"
msgstr "Shift"
@@ -914,7 +977,6 @@ msgstr "在标签页图标上显示未读数量"
msgid "Show unread count in tab title"
msgstr "在标签页标题中显示未读数量"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
msgid "Sign up"
@@ -924,7 +986,6 @@ msgstr "注册"
msgid "Something bad just happened..."
msgstr "刚刚发生了不好的事情……"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Space"
msgstr "空格"
@@ -941,7 +1002,6 @@ msgstr "星标"
msgid "Starred"
msgstr "已加星标"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
msgid "Subscribe"
@@ -975,7 +1035,6 @@ msgstr "切换到浅色主题"
msgid "System"
msgstr "跟随系统"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Tags"
msgstr "标签"
@@ -984,6 +1043,14 @@ msgstr "标签"
msgid "Teal"
msgstr "青绿"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test"
msgstr "测试"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Test notification sent successfully."
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 "您要订阅的信息流的网址。您也可以直接使用网站的网址,CommaFeed 会尝试在页面中找到信息流。"
@@ -992,10 +1059,19 @@ msgstr "您要订阅的信息流的网址。您也可以直接使用网站的网
msgid "Theme"
msgstr "主题"
#. placeholder {0}: feed.filterLegacy
#: src/pages/app/FeedDetailsPage.tsx
msgid "This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using the new expression editor. The legacy filter expression was: <0>{0}</0>"
msgstr "此信息流具有无法编辑且未应用的旧版过滤器。请使用新的表达式编辑器重新创建过滤器。旧版过滤器表达式为:<0>{0}</0>"
#: 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 "这是您的API 密钥,它可以被用于Fever API的只读操作及访问授权。使用页面底部的表单生成一个新的API密钥。"
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr "此设置在部分浏览器(例如 Safari)中可能导致滚动问题"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry"
msgstr "切换当前条目的阅读状态"
@@ -1008,6 +1084,10 @@ msgstr "切换侧边栏"
msgid "Toggle starred status of current entry"
msgstr "切换当前条目的星标状态"
#: src/components/settings/PushNotificationSettings.tsx
msgid "Topic"
msgstr "主题"
#: src/pages/auth/LoginPage.tsx
msgid "Try out CommaFeed with the demo account: demo/demo"
msgstr "使用演示帐户试用 CommaFeed:demo/demo"
@@ -1026,16 +1106,18 @@ msgstr "未读"
msgid "Unstar"
msgstr "取消星标"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Unsubscribe"
msgstr "取消订阅"
#: src/components/settings/PushNotificationSettings.tsx
msgid "User key"
msgstr "用户密钥"
#: src/components/settings/ProfileSettings.tsx
msgid "User name"
msgstr "用户名"
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "User Name or E-mail"
msgstr "用户名或电子邮件"
@@ -1052,6 +1134,10 @@ msgstr "警告"
msgid "Website"
msgstr "网站"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "欢迎!当前页仅当您第一次使用CommaFeed时出现,请创建一个管理员帐号以开始使用。"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "黄"
@@ -1063,3 +1149,7 @@ msgstr "您还没有任何订阅。"
#: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh."
msgstr "您的订阅已经进入刷新队列。"
#: src/pages/auth/PasswordResetPage.tsx
msgid "Your password has been changed. You can now log in with your new password."
msgstr "您的密码已更改。您现在可以使用新密码登录。"

View File

@@ -19,10 +19,8 @@ const shownGauges: Record<string, string> = {
"com.commafeed.backend.feed.FeedRefreshEngine.queue.size": "Feed Refresh Engine queue size",
"com.commafeed.backend.feed.FeedRefreshEngine.worker.active": "Feed Refresh Engine active HTTP workers",
"com.commafeed.backend.feed.FeedRefreshEngine.updater.active": "Feed Refresh Engine active database update workers",
"com.commafeed.backend.HttpGetter.pool.max": "HttpGetter max pool size",
"com.commafeed.backend.HttpGetter.pool.size": "HttpGetter current pool size",
"com.commafeed.backend.HttpGetter.pool.leased": "HttpGetter active connections",
"com.commafeed.backend.HttpGetter.pool.pending": "HttpGetter waiting for a connection",
"com.commafeed.backend.feed.FeedRefreshEngine.notifier.active": "Feed Refresh Engine active push notifications workers",
"com.commafeed.backend.feed.FeedRefreshEngine.notifier.queue": "Feed Refresh Engine queued push notifications workers",
"com.commafeed.backend.HttpGetter.cache.size": "HttpGetter cached entries",
"com.commafeed.backend.HttpGetter.cache.memoryUsage": "HttpGetter cache memory usage",
"com.commafeed.frontend.ws.WebSocketSessions.users": "WebSocket users",
@@ -35,10 +33,11 @@ export function MetricsPage() {
setLoading: state => ({ ...state, loading: true }),
})
const { execute } = query
useEffect(() => {
const interval = setInterval(() => query.execute(), 2000)
const interval = setInterval(() => execute(), 2000)
return () => clearInterval(interval)
}, [query.execute])
}, [execute])
if (!query.result) return <Loader />
const { meters, gauges } = query.result.data

View File

@@ -107,7 +107,7 @@ export function AboutPage() {
<List>
<List.Item>
<Anchor href={Constants.browserExtensionUrl} target="_blank" rel="noreferrer">
<Trans>Browser extention</Trans>
<Trans>Browser extension</Trans>
</Anchor>
</List.Item>
<List.Item>

View File

@@ -1,10 +1,27 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Anchor, Box, Button, Code, Container, Divider, Group, Input, NumberInput, Stack, Text, TextInput, Title } from "@mantine/core"
import {
Anchor,
Box,
Button,
Code,
Container,
Divider,
Group,
Input,
Alert as MantineAlert,
NumberInput,
Stack,
Text,
TextInput,
Title,
} from "@mantine/core"
import { useForm } from "@mantine/form"
import { openConfirmModal } from "@mantine/modals"
import { useEffect } from "react"
import { useAsync, useAsyncCallback } from "react-async-hook"
import { TbDeviceFloppy, TbTrash } from "react-icons/tb"
import { TbAlertTriangle, TbDeviceFloppy, TbTrash } from "react-icons/tb"
import { useParams } from "react-router-dom"
import { client, errorToStrings } from "@/app/client"
import { redirectToRootCategory, redirectToSelectedSource } from "@/app/redirect/thunks"
@@ -13,46 +30,17 @@ import { reloadTree } from "@/app/tree/thunks"
import type { FeedModificationRequest } from "@/app/types"
import { Alert } from "@/components/Alert"
import { CategorySelect } from "@/components/content/add/CategorySelect"
import { FilteringExpressionEditor } from "@/components/content/edit/FilteringExpressionEditor"
import { Loader } from "@/components/Loader"
import { ReceivePushNotificationsChechbox } from "@/components/ReceivePushNotificationsChechbox"
import { RelativeDate } from "@/components/RelativeDate"
function FilteringExpressionDescription() {
const example = <Code>url.contains('youtube') or (author eq 'athou' and title.contains('github'))</Code>
return (
<div>
<div>
<Trans>
If not empty, an expression evaluating to 'true' or 'false'. If false, new entries for this feed will be marked as read
automatically.
</Trans>
</div>
<div>
<Trans>
Available variables are 'title', 'content', 'url' 'author' and 'categories' and their content is converted to lower case
to ease string comparison.
</Trans>
</div>
<div>
<Trans>Example: {example}.</Trans>
</div>
<div>
<Trans>
<span>Complete syntax is available </span>
<a href="https://commons.apache.org/proper/commons-jexl/reference/syntax.html" target="_blank" rel="noreferrer">
here
</a>
<span>.</span>
</Trans>
</div>
</div>
)
}
export function FeedDetailsPage() {
const { id } = useParams()
if (!id) throw Error("id required")
if (!id) throw new Error("id required")
const apiKey = useAppSelector(state => state.user.profile?.apiKey)
const { _ } = useLingui()
const dispatch = useAppDispatch()
const query = useAsync(async () => await client.feed.get(id), [id])
const feed = query.result?.data
@@ -158,11 +146,36 @@ export function FeedDetailsPage() {
<TextInput label={<Trans>Name</Trans>} {...form.getInputProps("name")} required />
<CategorySelect label={<Trans>Category</Trans>} {...form.getInputProps("categoryId")} clearable />
<NumberInput label={<Trans>Position</Trans>} {...form.getInputProps("position")} required min={0} />
<TextInput
label={<Trans>Filtering expression</Trans>}
description={<FilteringExpressionDescription />}
{...form.getInputProps("filter")}
<ReceivePushNotificationsChechbox {...form.getInputProps("pushNotificationsEnabled", { type: "checkbox" })} />
<NumberInput
label={<Trans>Auto-mark as read</Trans>}
description={<Trans>Mark entries in this feed as read after this number of days. Leave empty to disable.</Trans>}
suffix={` ${_(msg`days`)}`}
{...form.getInputProps("autoMarkAsReadAfterDays")}
min={1}
max={3650}
/>
<Input.Wrapper
label={<Trans>Filtering expression</Trans>}
description={
<Trans>
Build a filter expression to indicate what you want to read. Entries that don't match will be marked as read
automatically.
</Trans>
}
>
{feed.filterLegacy && (
<MantineAlert color="yellow" icon={<TbAlertTriangle />}>
<Trans>
This feed has a legacy filter that cannot be edited and is not applied. Please recreate the filter using
the new expression editor. The legacy filter expression was: <Code>{feed.filterLegacy}</Code>
</Trans>
</MantineAlert>
)}
<Box mt="xs">
<FilteringExpressionEditor initialValue={feed.filter} onChange={value => form.setFieldValue("filter", value)} />
</Box>
</Input.Wrapper>
<Group>
<Button variant="default" onClick={async () => await dispatch(redirectToSelectedSource())}>

View File

@@ -8,9 +8,11 @@ import { Constants } from "@/app/constants"
import type { EntrySourceType } from "@/app/entries/slice"
import { loadEntries } from "@/app/entries/thunks"
import { redirectToCategoryDetails, redirectToFeedDetails, redirectToTagDetails } from "@/app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store"
import { flattenCategoryTree } from "@/app/utils"
import { useAppDispatch, useAppSelector, useShallowEqualAppSelector } from "@/app/store"
import { categoryHasNewEntries, categoryUnreadCount, flattenCategoryTree } from "@/app/utils"
import { FeedEntries } from "@/components/content/FeedEntries"
import { UnreadCount } from "@/components/sidebar/UnreadCount"
import { useMobile } from "@/hooks/useMobile"
import { tss } from "@/tss"
function NoSubscriptionHelp() {
@@ -33,6 +35,12 @@ const useStyles = tss.create(() => ({
sourceWebsiteLink: {
color: "inherit",
textDecoration: "none",
overflow: "hidden",
},
titleText: {
overflow: "hidden",
textOverflow: "ellipsis",
whiteSpace: "nowrap",
},
}))
@@ -48,6 +56,33 @@ export function FeedEntriesPage(props: Readonly<FeedEntriesPageProps>) {
const sourceLabel = useAppSelector(state => state.entries.sourceLabel)
const sourceWebsiteUrl = useAppSelector(state => state.entries.sourceWebsiteUrl)
const hasMore = useAppSelector(state => state.entries.hasMore)
const mobile = useMobile()
const sidebarVisible = useAppSelector(state => state.tree.sidebarVisible)
const { unreadCount, hasNewEntries } = useShallowEqualAppSelector(state => {
const root = state.tree.rootCategory
if (!root) return { unreadCount: 0, hasNewEntries: false }
if (props.sourceType === "category") {
const category = id === Constants.categories.all.id ? root : flattenCategoryTree(root).find(c => c.id === id)
return {
unreadCount: categoryUnreadCount(category),
hasNewEntries: categoryHasNewEntries(category),
}
}
if (props.sourceType === "feed") {
const feed = flattenCategoryTree(root)
.flatMap(c => c.feeds)
.find(f => f.id === +id)
return {
unreadCount: feed?.unread ?? 0,
hasNewEntries: !!feed?.hasNewEntries,
}
}
return { unreadCount: 0, hasNewEntries: false }
})
const showUnreadCount = mobile || !sidebarVisible
const dispatch = useAppDispatch()
let title: React.ReactNode = sourceLabel
@@ -89,16 +124,23 @@ export function FeedEntriesPage(props: Readonly<FeedEntriesPageProps>) {
return (
// add some room at the bottom of the page in order to be able to scroll the current entry at the top of the page when expanding
<Box mb={viewport.height * 0.7}>
<Group gap="xl" className="cf-entries-title">
<Group className="cf-entries-title" wrap="nowrap">
{sourceWebsiteUrl && (
<a href={sourceWebsiteUrl} target="_blank" rel="noreferrer" className={classes.sourceWebsiteLink}>
<Title order={3}>{title}</Title>
<Title order={3} className={classes.titleText}>
{title}
</Title>
</a>
)}
{!sourceWebsiteUrl && <Title order={3}>{title}</Title>}
{!sourceWebsiteUrl && (
<Title order={3} className={classes.titleText}>
{title}
</Title>
)}
<ActionIcon onClick={titleClicked} variant="subtle" color={theme.primaryColor}>
<TbEdit size={18} />
</ActionIcon>
{showUnreadCount && <UnreadCount unreadCount={unreadCount} showIndicator={hasNewEntries} />}
</Group>
<FeedEntries />

View File

@@ -1,10 +1,11 @@
import { msg } from "@lingui/core/macro"
import { ActionIcon, AppShell, Box, Center, Group, ScrollArea, Title, useMantineTheme } from "@mantine/core"
import { type ReactNode, type RefObject, Suspense, useEffect, useRef } from "react"
import { type ReactNode, type RefObject, Suspense, useEffect, useRef, useState } from "react"
import Draggable from "react-draggable"
import { TbMenu2, TbPlus, TbX } from "react-icons/tb"
import { Outlet } from "react-router-dom"
import { useSwipeable } from "react-swipeable"
import Tinycon from "tinycon"
import { Constants } from "@/app/constants"
import { redirectToAdd, redirectToRootCategory } from "@/app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store"
@@ -12,8 +13,10 @@ import { setMobileMenuOpen } from "@/app/tree/slice"
import { reloadTree } from "@/app/tree/thunks"
import { setSidebarWidth } from "@/app/user/slice"
import { reloadProfile, reloadSettings, reloadTags } from "@/app/user/thunks"
import { categoryUnreadCount } from "@/app/utils"
import { ActionButton } from "@/components/ActionButton"
import { AnnouncementDialog } from "@/components/AnnouncementDialog"
import { DisablePullToRefresh } from "@/components/DisablePullToRefresh"
import { Loader } from "@/components/Loader"
import { Logo } from "@/components/Logo"
import { MarkAllAsReadConfirmationDialog } from "@/components/MarkAllAsReadConfirmationDialog"
@@ -51,6 +54,78 @@ function LogoAndTitle() {
)
}
function UnreadCountTitleHandler({
enabled,
}: Readonly<{
enabled?: boolean
}>) {
const root = useAppSelector(state => state.tree.rootCategory)
const unreadCount = categoryUnreadCount(root)
return <title>{enabled && unreadCount > 0 ? `(${unreadCount}) CommaFeed` : "CommaFeed"}</title>
}
function UnreadCountFaviconHandler({ enabled }: { enabled?: boolean }) {
const root = useAppSelector(state => state.tree.rootCategory)
const unreadCount = categoryUnreadCount(root)
useEffect(() => {
if (enabled && unreadCount > 0) {
Tinycon.setBubble(unreadCount)
} else {
Tinycon.reset()
}
}, [unreadCount, enabled])
return null
}
function BrowserExtensionBadgeUnreadCountHandler() {
const root = useAppSelector(state => state.tree.rootCategory)
const { setBadgeUnreadCount } = useBrowserExtension()
useEffect(() => {
if (!root) return
const unreadCount = categoryUnreadCount(root)
setBadgeUnreadCount(unreadCount)
}, [root, setBadgeUnreadCount])
return null
}
function CustomJsHandler() {
const [scriptLoaded, setScriptLoaded] = useState(false)
const { loading } = useAppLoading()
useEffect(() => {
if (scriptLoaded || loading) {
return
}
const script = document.createElement("script")
script.src = "custom_js.js"
script.async = true
document.body.appendChild(script)
setScriptLoaded(true)
return () => script.remove()
}, [scriptLoaded, loading])
return null
}
function CustomCssHandler() {
useEffect(() => {
const link = document.createElement("link")
link.rel = "stylesheet"
link.type = "text/css"
link.href = "custom_css.css"
document.head.appendChild(link)
return () => link.remove()
}, [])
return null
}
const useStyles = tss
.withParams<{
sidebarWidth: number
@@ -75,6 +150,9 @@ export default function Layout(props: Readonly<LayoutProps>) {
const draggableSeparator = useRef<HTMLDivElement>(null)
const { loading } = useAppLoading()
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
const disablePullToRefresh = useAppSelector(state => state.user.settings?.disablePullToRefresh)
const mobileMenuOpen = useAppSelector(state => state.tree.mobileMenuOpen)
const webSocketConnected = useAppSelector(state => state.server.webSocketConnected)
const treeReloadInterval = useAppSelector(state => state.server.serverInfos?.treeReloadInterval)
@@ -173,61 +251,69 @@ export default function Layout(props: Readonly<LayoutProps>) {
if (loading) return <LoadingPage />
return (
<Box {...swipeHandlers}>
<AppShell
header={{ height: Constants.layout.headerHeight, collapsed: headerInFooter }}
footer={{ height: Constants.layout.headerHeight, collapsed: !headerInFooter }}
navbar={{
width: sidebarWidth,
breakpoint: Constants.layout.mobileBreakpoint,
collapsed: { mobile: !mobileMenuOpen, desktop: !props.sidebarVisible },
}}
padding={{ base: 6, [Constants.layout.mobileBreakpointName]: "md" }}
>
<AppShell.Header>{!headerInFooter && header}</AppShell.Header>
<AppShell.Footer>{headerInFooter && header}</AppShell.Footer>
<AppShell.Navbar p={sidebarPadding}>
<AppShell.Section grow component={ScrollArea} mx="-sm" px="sm">
<Box className={classes.sidebarContent}>{props.sidebar}</Box>
</AppShell.Section>
</AppShell.Navbar>
<OnDesktop>
<Draggable
nodeRef={draggableSeparator as RefObject<HTMLElement>}
axis="x"
defaultPosition={{
x: sidebarWidth,
y: 0,
}}
bounds={{
left: 120,
right: 1000,
}}
grid={[30, 30]}
onDrag={(_e, data) => {
dispatch(setSidebarWidth(data.x))
}}
>
<Box
ref={draggableSeparator}
style={{
position: "fixed",
height: "100%",
width: "10px",
cursor: "ew-resize",
<>
<UnreadCountTitleHandler enabled={unreadCountTitle} />
<UnreadCountFaviconHandler enabled={unreadCountFavicon} />
<BrowserExtensionBadgeUnreadCountHandler />
<CustomJsHandler />
<CustomCssHandler />
<DisablePullToRefresh enabled={disablePullToRefresh} />
<Box {...swipeHandlers}>
<AppShell
header={{ height: Constants.layout.headerHeight, collapsed: headerInFooter }}
footer={{ height: Constants.layout.headerHeight, collapsed: !headerInFooter }}
navbar={{
width: sidebarWidth,
breakpoint: Constants.layout.mobileBreakpoint,
collapsed: { mobile: !mobileMenuOpen, desktop: !props.sidebarVisible },
}}
padding={{ base: 6, [Constants.layout.mobileBreakpointName]: "md" }}
>
<AppShell.Header>{!headerInFooter && header}</AppShell.Header>
<AppShell.Footer>{headerInFooter && header}</AppShell.Footer>
<AppShell.Navbar p={sidebarPadding}>
<AppShell.Section grow component={ScrollArea} mx="-sm" px="sm">
<Box className={classes.sidebarContent}>{props.sidebar}</Box>
</AppShell.Section>
</AppShell.Navbar>
<OnDesktop>
<Draggable
nodeRef={draggableSeparator as RefObject<HTMLElement>}
axis="x"
defaultPosition={{
x: sidebarWidth,
y: 0,
}}
/>
</Draggable>
</OnDesktop>
bounds={{
left: 120,
right: 1000,
}}
grid={[30, 30]}
onDrag={(_e, data) => {
dispatch(setSidebarWidth(data.x))
}}
>
<Box
ref={draggableSeparator}
style={{
position: "fixed",
height: "100%",
width: "10px",
cursor: "ew-resize",
}}
/>
</Draggable>
</OnDesktop>
<AppShell.Main>
<Suspense fallback={<Loader />}>
<AnnouncementDialog />
<MarkAllAsReadConfirmationDialog />
<Outlet />
</Suspense>
</AppShell.Main>
</AppShell>
</Box>
<AppShell.Main>
<Suspense fallback={<Loader />}>
<AnnouncementDialog />
<MarkAllAsReadConfirmationDialog />
<Outlet />
</Suspense>
</AppShell.Main>
</AppShell>
</Box>
</>
)
}

View File

@@ -1,9 +1,10 @@
import { Trans } from "@lingui/react/macro"
import { Container, Tabs } from "@mantine/core"
import { TbCode, TbPhoto, TbUser } from "react-icons/tb"
import { TbBell, TbCode, TbPhoto, TbUser } from "react-icons/tb"
import { CustomCodeSettings } from "@/components/settings/CustomCodeSettings"
import { DisplaySettings } from "@/components/settings/DisplaySettings"
import { ProfileSettings } from "@/components/settings/ProfileSettings"
import { PushNotificationSettings } from "@/components/settings/PushNotificationSettings"
export function SettingsPage() {
return (
@@ -13,6 +14,9 @@ export function SettingsPage() {
<Tabs.Tab value="display" leftSection={<TbPhoto size={16} />}>
<Trans>Display</Trans>
</Tabs.Tab>
<Tabs.Tab value="push-notifications" leftSection={<TbBell size={16} />}>
<Trans>Push notifications</Trans>
</Tabs.Tab>
<Tabs.Tab value="customCode" leftSection={<TbCode size={16} />}>
<Trans>Custom code</Trans>
</Tabs.Tab>
@@ -25,6 +29,10 @@ export function SettingsPage() {
<DisplaySettings />
</Tabs.Panel>
<Tabs.Panel value="push-notifications" pt="xl">
<PushNotificationSettings />
</Tabs.Panel>
<Tabs.Panel value="customCode" pt="xl">
<CustomCodeSettings />
</Tabs.Panel>

View File

@@ -0,0 +1,95 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Box, Button, Container, Paper, PasswordInput, Stack, TextInput, Title } from "@mantine/core"
import { useForm } from "@mantine/form"
import { useAsyncCallback } from "react-async-hook"
import { client, errorToStrings } from "@/app/client"
import { redirectToRootCategory } from "@/app/redirect/thunks"
import { useAppDispatch } from "@/app/store"
import type { InitialSetupRequest } from "@/app/types"
import { Alert } from "@/components/Alert"
import { useValidationRules } from "@/hooks/useValidationRules"
import { PageTitle } from "@/pages/PageTitle"
export function InitialSetupPage() {
const dispatch = useAppDispatch()
const { _ } = useLingui()
const validationRules = useValidationRules()
const form = useForm<InitialSetupRequest>({
initialValues: {
name: "",
password: "",
email: "",
},
validate: {
password: validationRules.password,
},
validateInputOnChange: true,
})
const login = useAsyncCallback(client.user.login, {
onSuccess: () => {
dispatch(redirectToRootCategory())
},
})
const setup = useAsyncCallback(client.user.initialSetup, {
onSuccess: () => {
login.execute(form.values)
},
})
return (
<Container size="xs">
<PageTitle />
<Paper>
<Title order={2} mb="md">
<Trans>Initial Setup</Trans>
</Title>
<Box mb="md">
<Trans>
Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get
started.
</Trans>
</Box>
{setup.error && (
<Box mb="md">
<Alert messages={errorToStrings(setup.error)} />
</Box>
)}
<form onSubmit={form.onSubmit(setup.execute)}>
<Stack>
<TextInput
label={<Trans>Admin user name</Trans>}
placeholder={_(msg`Admin user name`)}
{...form.getInputProps("name")}
size="md"
required
autoCapitalize="off"
/>
<PasswordInput
label={<Trans>Password</Trans>}
placeholder={_(msg`Password`)}
{...form.getInputProps("password")}
size="md"
required
/>
<TextInput
type="email"
label={<Trans>E-mail</Trans>}
placeholder={_(msg`E-mail`)}
{...form.getInputProps("email")}
size="md"
/>
<Button type="submit" loading={setup.loading}>
<Trans>Create Admin Account</Trans>
</Button>
</Stack>
</form>
</Paper>
</Container>
)
}

View File

@@ -0,0 +1,119 @@
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Anchor, Box, Button, Center, Container, Group, Paper, PasswordInput, Stack, Title } from "@mantine/core"
import { useForm } from "@mantine/form"
import { useState } from "react"
import { useAsyncCallback } from "react-async-hook"
import { Link, useSearchParams } from "react-router-dom"
import { client, errorToStrings } from "@/app/client"
import { Alert } from "@/components/Alert"
import { useValidationRules } from "@/hooks/useValidationRules"
import { PageTitle } from "@/pages/PageTitle"
interface PasswordResetFormValues {
password: string
passwordConfirmation: string
}
export function PasswordResetPage() {
const [message, setMessage] = useState("")
const [searchParams] = useSearchParams()
const { _ } = useLingui()
const validationRules = useValidationRules()
const email = searchParams.get("email") ?? ""
const token = searchParams.get("token") ?? ""
const form = useForm<PasswordResetFormValues>({
initialValues: {
password: "",
passwordConfirmation: "",
},
validate: {
password: validationRules.password,
passwordConfirmation: (value, values) => validationRules.passwordConfirmation(value, values.password),
},
validateInputOnChange: true,
})
const resetPassword = useAsyncCallback(client.user.passwordResetCallback, {
onSuccess: () => {
setMessage(_(msg`Your password has been changed. You can now log in with your new password.`))
form.reset()
},
})
const isMissingParams = !email || !token
return (
<Container size="xs">
<PageTitle />
<Paper>
<Title order={2} mb="md">
<Trans>Reset Password</Trans>
</Title>
{resetPassword.error && (
<Box mb="md">
<Alert messages={errorToStrings(resetPassword.error)} />
</Box>
)}
{isMissingParams && (
<Box mb="md">
<Alert messages={[_(msg`Invalid password reset link. Please request a new one.`)]} />
</Box>
)}
{message && (
<Box mb="md">
<Alert level="success" messages={[message]} />
</Box>
)}
{!isMissingParams && !message && (
<form
onSubmit={form.onSubmit(values => {
resetPassword.execute({
email,
token,
password: values.password,
})
})}
>
<Stack>
<PasswordInput
label={<Trans>New Password</Trans>}
placeholder={_(msg`New Password`)}
{...form.getInputProps("password")}
size="md"
required
/>
<PasswordInput
label={<Trans>Confirm Password</Trans>}
placeholder={_(msg`Confirm Password`)}
{...form.getInputProps("passwordConfirmation")}
size="md"
required
/>
<Button type="submit" loading={resetPassword.loading}>
<Trans>Reset Password</Trans>
</Button>
</Stack>
</form>
)}
<Center mt="md">
<Group>
<Anchor component={Link} to="/login">
<Trans>Back to log in</Trans>
</Anchor>
</Group>
</Center>
</Paper>
</Container>
)
}

View File

@@ -10,12 +10,14 @@ import { redirectToRootCategory } from "@/app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store"
import type { RegistrationRequest } from "@/app/types"
import { Alert } from "@/components/Alert"
import { useValidationRules } from "@/hooks/useValidationRules"
import { PageTitle } from "@/pages/PageTitle"
export function RegistrationPage() {
const serverInfos = useAppSelector(state => state.server.serverInfos)
const dispatch = useAppDispatch()
const { _ } = useLingui()
const validationRules = useValidationRules()
const form = useForm<RegistrationRequest>({
initialValues: {
@@ -23,6 +25,10 @@ export function RegistrationPage() {
password: "",
email: "",
},
validate: {
password: validationRules.password,
},
validateInputOnChange: true,
})
const login = useAsyncCallback(client.user.login, {
@@ -72,7 +78,7 @@ export function RegistrationPage() {
placeholder={_(msg`E-mail address`)}
{...form.getInputProps("email")}
size="md"
required
required={serverInfos.emailAddressRequired}
/>
<PasswordInput
label={<Trans>Password</Trans>}

View File

@@ -8,12 +8,11 @@
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": true,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "Node",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,

View File

@@ -1,29 +1,20 @@
import { lingui } from "@lingui/vite-plugin"
import react from "@vitejs/plugin-react"
import { visualizer } from "rollup-plugin-visualizer"
import babel from "@rolldown/plugin-babel"
import react, { reactCompilerPreset } from "@vitejs/plugin-react"
import { defineConfig } from "vite"
import checker from "vite-plugin-checker"
import tsconfigPaths from "vite-tsconfig-paths"
// https://vitejs.dev/config/
export default defineConfig(() => ({
plugins: [
react({
babel: {
plugins: [
// support for lingui macros
// needs to be before the react compiler plugin
"@lingui/babel-plugin-lingui-macro",
// react compiler
["babel-plugin-react-compiler", { target: "19" }],
],
},
react(),
babel({
presets: [reactCompilerPreset()],
plugins: ["@lingui/babel-plugin-lingui-macro"],
}),
lingui(),
tsconfigPaths(),
visualizer(),
checker({
typescript: true,
// temporary disabled until TypeScript 7 exposes a stable api
// typescript: true,
biome: {
command: "check",
flags: "--error-on-warnings",
@@ -45,22 +36,32 @@ export default defineConfig(() => ({
"/logout": "http://localhost:8083",
},
},
build: {
chunkSizeWarningLimit: 3500,
rollupOptions: {
output: {
manualChunks: id => {
// output mantine as its own chunk because it is quite large
if (id.includes("@mantine")) {
return "mantine"
}
},
},
},
resolve: {
tsconfigPaths: true,
},
legacy: {
// required for websocket-heartbeat-js
inconsistentCjsInterop: true,
},
test: {
environment: "jsdom",
globals: true,
setupFiles: "./src/setupTests.ts",
},
build: {
chunkSizeWarningLimit: 4000,
rolldownOptions: {
output: {
codeSplitting: {
groups: [
// output mantine as its own chunk because it is quite large
{
name: "mantine",
test: "@mantine",
},
],
},
},
},
},
}))

View File

@@ -1,401 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="23">
<profile kind="CodeFormatterProfile" name="CommaFeed" version="23">
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_switch_case_arrow_operator" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant" value="49"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_permitted_types" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_annotations" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="49"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_permitted_types_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.javadoc_do_not_separate_block_tags" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.keep_switch_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_arrow" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="140"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.align_selector_in_method_invocation_on_expression_first_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_switch_case_with_arrow_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_colon" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="49"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="49"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="49"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_switch_case_with_arrow" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="49"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assertion_message" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_permitted_types" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="140"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
</profile>
</profiles>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="charset" value="UTF-8" />
<property name="fileExtensions" value="java" />
@@ -40,11 +40,6 @@
<module name="AvoidStarImport" />
<module name="AvoidStaticImport" />
<module name="IllegalImport" />
<module name="ImportOrder">
<property name="groups" value="/^java\./,javax,jakarta,org,com" />
<property name="ordered" value="true" />
<property name="separated" value="true" />
</module>
<module name="RedundantImport" />
<module name="UnusedImports" />
@@ -60,7 +55,7 @@
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="ignore|ignored" />
<message key="catch.block.empty"
value="Empty catch block. You can use the name 'ignore' or 'ignored' for the exception variable if you really want an empty catch block, but you should strongly consider at the very least logging something." />
value="Empty catch block. You can use the name 'ignore' or 'ignored' for the exception variable if you really want an empty catch block, but you should strongly consider at the very least logging something." />
</module>
<module name="LeftCurly" />
<module name="NeedBraces" />
@@ -76,7 +71,7 @@
<module name="FallThrough" />
<module name="IllegalInstantiation">
<property name="classes"
value="java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short" />
value="java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short" />
</module>
<module name="IllegalType" />
<module name="ModifiedControlVariable">
@@ -113,12 +108,6 @@
<module name="NoLineWrap" />
<module name="NoWhitespaceBefore" />
<module name="ParenPad" />
<module name="RegexpSinglelineJava">
<property name="format" value="^\t* +\t*\S" />
<property name="message" value="Line has leading space characters; indentation should be performed with tabs only." />
<property name="ignoreComments" value="true" />
</module>
<module name="WhitespaceAround" />
</module>
</module>

View File

@@ -1,7 +0,0 @@
#Organize Import Order
#Wed Jan 29 15:15:04 CET 2025
0=java
1=javax
2=jakarta
3=org
4=com

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
FROM ibm-semeru-runtimes:open-21.0.8_9-jre@sha256:0d2e27e83ccf97e8aa10ddbe3771811449b1ab5915428c3640cea4edc42d5c30
FROM ibm-semeru-runtimes:open-jdk-25.0.3.0-jre@sha256:43ec947fee9c4c2ed880620ae9e78911ac5eef66391e5a2c43f956dcc9000491
EXPOSE 8082
RUN mkdir -p /commafeed/data

View File

@@ -1,4 +1,4 @@
FROM debian:13.1@sha256:833c135acfe9521d7a0035a296076f98c182c542a2b6b5a0fd7063d355d696be
FROM debian:13.6@sha256:fac46bff2e02f51425b6e33b0e1169f55dfb053d83511ca28aa50c09fd5ed7a4
ARG TARGETARCH
EXPOSE 8082
@@ -6,7 +6,7 @@ EXPOSE 8082
RUN mkdir -p /commafeed/data
VOLUME /commafeed/data
COPY artifacts/commafeed-*-${TARGETARCH}-runner /commafeed/application
COPY artifacts/commafeed-*-${TARGETARCH}-runner /commafeed/commafeed
WORKDIR /commafeed
CMD ["./application"]
CMD ["./commafeed"]

View File

@@ -4,11 +4,11 @@ Official docker images for https://github.com/Athou/commafeed/
## Quickstart
Start CommaFeed with a H2 embedded database. Then login as `admin/admin` on http://localhost:8082/
Start CommaFeed with a H2 embedded database. The app will be accessible on http://localhost:8082/
### docker
`docker run --name commafeed --detach --publish 8082:8082 --restart unless-stopped --volume /path/to/commafeed/db:/commafeed/data --memory 256M athou/commafeed:latest-h2`
`docker run --name commafeed --detach --publish 8082:8082 --restart unless-stopped --volume /path/to/commafeed/data:/commafeed/data --memory 256M athou/commafeed:latest-h2`
### docker-compose
@@ -18,7 +18,7 @@ services:
image: athou/commafeed:latest-h2
restart: unless-stopped
volumes:
- /path/to/commafeed/db:/commafeed/data
- ./data:/commafeed/data
deploy:
resources:
limits:
@@ -56,7 +56,7 @@ services:
POSTGRES_PASSWORD: commafeed
POSTGRES_DB: commafeed
volumes:
- /path/to/commafeed/db:/var/lib/postgresql/data
- ./data:/var/lib/postgresql
```
CommaFeed also supports:

View File

@@ -1,38 +1,46 @@
package com.commafeed;
import jakarta.enterprise.event.Observes;
import jakarta.inject.Singleton;
import com.commafeed.backend.feed.FeedRefreshEngine;
import com.commafeed.backend.service.db.DatabaseStartupService;
import com.commafeed.backend.feed.ImageProxyUrl;
import com.commafeed.backend.task.TaskScheduler;
import com.commafeed.security.password.PasswordConstraintValidator;
import io.quarkus.runtime.ShutdownEvent;
import io.quarkus.runtime.StartupEvent;
import lombok.RequiredArgsConstructor;
import jakarta.enterprise.event.Observes;
import jakarta.inject.Singleton;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Singleton
@RequiredArgsConstructor
public class CommaFeedApplication {
private final DatabaseStartupService databaseStartupService;
private final FeedRefreshEngine feedRefreshEngine;
private final TaskScheduler taskScheduler;
private final CommaFeedConfiguration config;
private final FeedRefreshEngine feedRefreshEngine;
private final TaskScheduler taskScheduler;
private final CommaFeedConfiguration config;
public void start(@Observes StartupEvent ev) {
PasswordConstraintValidator.setStrict(config.users().strictPasswordPolicy());
public void start(@Observes StartupEvent ev) {
log.info("starting up...");
databaseStartupService.populateInitialData();
PasswordConstraintValidator.setMinimumPasswordLength(
config.users().minimumPasswordLength());
feedRefreshEngine.start();
taskScheduler.start();
}
if (config.imageProxyEnabled()) {
ImageProxyUrl.generateKey();
}
public void stop(@Observes ShutdownEvent ev) {
feedRefreshEngine.stop();
taskScheduler.stop();
}
feedRefreshEngine.start();
taskScheduler.start();
}
public void stop(@Observes ShutdownEvent ev) {
log.info("shutting down...");
feedRefreshEngine.stop();
taskScheduler.stop();
}
}

View File

@@ -1,12 +1,5 @@
package com.commafeed;
import java.time.Duration;
import java.time.Instant;
import java.util.Optional;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Positive;
import com.commafeed.backend.feed.FeedRefreshIntervalCalculator;
import io.quarkus.runtime.annotations.ConfigDocSection;
@@ -16,346 +9,355 @@ import io.quarkus.runtime.configuration.MemorySize;
import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Positive;
import java.time.Duration;
import java.time.Instant;
import java.util.Optional;
/**
* CommaFeed configuration
*
* Default values are for production, they can be overridden in application.properties for other profiles
* <p>Default values are for production, they can be overridden in application.properties for other
* profiles
*/
@ConfigMapping(prefix = "commafeed")
@ConfigRoot(phase = ConfigPhase.RUN_TIME)
public interface CommaFeedConfiguration {
/**
* Whether to expose a robots.txt file that disallows web crawlers and search engine indexers.
*/
@WithDefault("true")
boolean hideFromWebCrawlers();
/**
* Whether to expose a robots.txt file that disallows web crawlers and search engine indexers.
*/
@WithDefault("true")
boolean hideFromWebCrawlers();
/**
* If enabled, images in feed entries will be proxied through the server instead of accessed directly by the browser.
*
* This is useful if commafeed is accessed through a restricting proxy that blocks some feeds that are followed.
*/
@WithDefault("false")
boolean imageProxyEnabled();
/**
* If enabled, images in feed entries will be proxied through the server instead of accessed
* directly by the browser.
*
* <p>This is useful if commafeed is accessed through a restricting proxy that blocks some feeds
* that are followed.
*/
@WithDefault("false")
boolean imageProxyEnabled();
/**
* Enable password recovery via email.
*
* Quarkus mailer will need to be configured.
*/
@WithDefault("false")
boolean passwordRecoveryEnabled();
/**
* Enable password recovery via email.
*
* <p>Quarkus mailer will need to be configured.
*/
@WithDefault("false")
boolean passwordRecoveryEnabled();
/**
* Message displayed in a notification at the bottom of the page.
*/
Optional<String> announcement();
/** Message displayed in a notification at the bottom of the page. */
Optional<String> announcement();
/**
* Google Auth key for fetching Youtube channel favicons.
*/
Optional<String> googleAuthKey();
/** Google Auth key for fetching Youtube channel favicons. */
Optional<String> googleAuthKey();
/**
* HTTP client configuration
*/
@ConfigDocSection
HttpClient httpClient();
/** HTTP client configuration */
@ConfigDocSection
HttpClient httpClient();
/**
* Feed refresh engine settings.
*/
@ConfigDocSection
FeedRefresh feedRefresh();
/** Feed refresh engine settings. */
@ConfigDocSection
FeedRefresh feedRefresh();
/**
* Database settings.
*/
@ConfigDocSection
Database database();
/** Push notification settings. */
@ConfigDocSection
PushNotifications pushNotifications();
/**
* Users settings.
*/
@ConfigDocSection
Users users();
/** Database settings. */
@ConfigDocSection
Database database();
/**
* Websocket settings.
*/
@ConfigDocSection
Websocket websocket();
/** Users settings. */
@ConfigDocSection
Users users();
interface HttpClient {
/**
* User-Agent string that will be used by the http client, leave empty for the default one.
*/
Optional<String> userAgent();
/** Websocket settings. */
@ConfigDocSection
Websocket websocket();
/**
* Time to wait for a connection to be established.
*/
@WithDefault("5s")
Duration connectTimeout();
/**
* Duration to wait for the feed refresh engine and the task scheduler to stop when the
* application is shutting down.
*/
@WithDefault("2s")
Duration shutdownTimeout();
/**
* Time to wait for SSL handshake to complete.
*/
@WithDefault("5s")
Duration sslHandshakeTimeout();
interface HttpClient {
/**
* User-Agent string that will be used by the http client, leave empty for the default one.
*/
Optional<String> userAgent();
/**
* Time to wait between two packets before timeout.
*/
@WithDefault("10s")
Duration socketTimeout();
/** Time to wait for a connection to be established. */
@WithDefault("5s")
Duration connectTimeout();
/**
* Time to wait for the full response to be received.
*/
@WithDefault("10s")
Duration responseTimeout();
/** Time to wait for SSL handshake to complete. */
@WithDefault("5s")
Duration sslHandshakeTimeout();
/**
* Time to live for a connection in the pool.
*/
@WithDefault("30s")
Duration connectionTimeToLive();
/** Time to wait between two packets before timeout. */
@WithDefault("10s")
Duration socketTimeout();
/**
* Time between eviction runs for idle connections.
*/
@WithDefault("1m")
Duration idleConnectionsEvictionInterval();
/** Time to wait for the full response to be received. */
@WithDefault("10s")
Duration responseTimeout();
/**
* If a feed is larger than this, it will be discarded to prevent memory issues while parsing the feed.
*/
@WithDefault("5M")
MemorySize maxResponseSize();
/** Time to live for a connection in the pool. */
@WithDefault("30s")
Duration connectionTimeToLive();
/**
* Prevent access to local addresses to mitigate server-side request forgery (SSRF) attacks, which could potentially expose internal
* resources.
*
* You may want to disable this if you subscribe to feeds that are only available on your local network and you trust all users of
* your CommaFeed instance.
*/
@WithDefault("true")
boolean blockLocalAddresses();
/** Time between eviction runs for idle connections. */
@WithDefault("1m")
Duration idleConnectionsEvictionInterval();
/**
* HTTP client cache configuration
*/
@ConfigDocSection
HttpClientCache cache();
}
/**
* If a feed is larger than this, it will be discarded to prevent memory issues while
* parsing the feed.
*/
@WithDefault("5M")
MemorySize maxResponseSize();
interface HttpClientCache {
/**
* Whether to enable the cache. This cache is used to avoid spamming feeds in short bursts (e.g. when subscribing to a feed for the
* first time or when clicking "fetch all my feeds now").
*/
@WithDefault("true")
boolean enabled();
/**
* Prevent access to local addresses to mitigate server-side request forgery (SSRF) attacks,
* which could potentially expose internal resources.
*
* <p>You may want to enable this if you host a public instance of CommaFeed with
* registrations open.
*/
@WithDefault("false")
boolean blockLocalAddresses();
/**
* Maximum amount of memory the cache can use.
*/
@WithDefault("10M")
MemorySize maximumMemorySize();
/** HTTP client cache configuration */
@ConfigDocSection
HttpClientCache cache();
}
/**
* Duration after which an entry is removed from the cache.
*/
@WithDefault("1m")
Duration expiration();
}
interface HttpClientCache {
/**
* Whether to enable the cache. This cache is used to avoid spamming feeds in short bursts
* (e.g. when subscribing to a feed for the first time or when clicking "fetch all my feeds
* now").
*/
@WithDefault("true")
boolean enabled();
interface FeedRefresh {
/**
* Default amount of time CommaFeed will wait before refreshing a feed.
*/
@WithDefault("5m")
Duration interval();
/** Maximum amount of memory the cache can use. */
@WithDefault("10M")
MemorySize maximumMemorySize();
/**
* Maximum amount of time CommaFeed will wait before refreshing a feed. This is used as an upper bound when:
*
* <ul>
* <li>an error occurs while refreshing a feed and we're backing off exponentially</li>
* <li>we receive a Cache-Control header from the feed</li>
* <li>we receive a Retry-After header from the feed</li>
* </ul>
*/
@WithDefault("4h")
Duration maxInterval();
/** Duration after which an entry is removed from the cache. */
@WithDefault("1m")
Duration expiration();
}
/**
* If enabled, CommaFeed will calculate the next refresh time based on the feed's average time between entries and the time since
* the last entry was published. The interval will be sometimes between the default refresh interval
* (`commafeed.feed-refresh.interval`) and the maximum refresh interval (`commafeed.feed-refresh.max-interval`).
*
* See {@link FeedRefreshIntervalCalculator} for details.
*/
@WithDefault("true")
boolean intervalEmpirical();
interface FeedRefresh {
/** Default amount of time CommaFeed will wait before refreshing a feed. */
@WithDefault("5m")
Duration interval();
/**
* Feed refresh engine error handling settings.
*/
@ConfigDocSection
FeedRefreshErrorHandling errors();
/**
* Maximum amount of time CommaFeed will wait before refreshing a feed. This is used as an
* upper bound when:
*
* <ul>
* <li>an error occurs while refreshing a feed and we're backing off exponentially
* <li>we receive a Cache-Control header from the feed
* <li>we receive a Retry-After header from the feed
* </ul>
*/
@WithDefault("4h")
Duration maxInterval();
/**
* Amount of http threads used to fetch feeds.
*/
@Min(1)
@WithDefault("3")
int httpThreads();
/**
* If enabled, CommaFeed will calculate the next refresh time based on the feed's average
* time between entries and the time since the last entry was published. The interval will
* be sometimes between the default refresh interval (`commafeed.feed-refresh.interval`) and
* the maximum refresh interval (`commafeed.feed-refresh.max-interval`).
*
* <p>See {@link FeedRefreshIntervalCalculator} for details.
*/
@WithDefault("true")
boolean intervalEmpirical();
/**
* Amount of threads used to insert new entries in the database.
*/
@Min(1)
@WithDefault("1")
int databaseThreads();
/** Feed refresh engine error handling settings. */
@ConfigDocSection
FeedRefreshErrorHandling errors();
/**
* Duration after which a user is considered inactive. Feeds for inactive users are not refreshed until they log in again.
*
* 0 to disable.
*/
@WithDefault("0")
Duration userInactivityPeriod();
/** Amount of http threads used to fetch feeds. */
@Min(1)
@WithDefault("3")
int httpThreads();
/**
* Duration after which the evaluation of a filtering expresion to mark an entry as read is considered to have timed out.
*/
@WithDefault("500ms")
Duration filteringExpressionEvaluationTimeout();
/** Amount of threads used to insert new entries in the database. */
@Min(1)
@WithDefault("1")
int databaseThreads();
/**
* Duration after which the "Fetch all my feeds now" action is available again after use to avoid spamming feeds.
*/
@WithDefault("0")
Duration forceRefreshCooldownDuration();
}
/**
* Duration after which a user is considered inactive. Feeds for inactive users are not
* refreshed until they log in again.
*
* <p>0 to disable.
*/
@WithDefault("0")
Duration userInactivityPeriod();
interface FeedRefreshErrorHandling {
/**
* Number of retries before backoff is applied.
*/
@Min(0)
@WithDefault("3")
int retriesBeforeBackoff();
/**
* Duration after which the evaluation of a filtering expresion to mark an entry as read is
* considered to have timed out.
*/
@WithDefault("500ms")
Duration filteringExpressionEvaluationTimeout();
/**
* Duration to wait before retrying after an error. Will be multiplied by the number of errors since the last successful fetch.
*/
@WithDefault("1h")
Duration backoffInterval();
}
/**
* Duration after which the "Fetch all my feeds now" action is available again after use to
* avoid spamming feeds.
*/
@WithDefault("0")
Duration forceRefreshCooldownDuration();
}
interface Database {
/**
* Timeout applied to all database queries.
*
* 0 to disable.
*/
@WithDefault("0")
Duration queryTimeout();
interface PushNotifications {
/** Whether to enable push notifications to notify users of new entries in their feeds. */
@WithDefault("true")
boolean enabled();
/**
* Database cleanup settings.
*/
@ConfigDocSection
Cleanup cleanup();
/** Amount of threads used to send external notifications about new entries. */
@Min(1)
@WithDefault("5")
int threads();
interface Cleanup {
/**
* Maximum age of feed entries in the database. Older entries will be deleted.
*
* 0 to disable.
*/
@WithDefault("365d")
Duration entriesMaxAge();
/**
* Maximum amount of notifications that can be queued before new notifications are
* discarded.
*/
@Min(1)
@WithDefault("100")
int queueCapacity();
}
/**
* Maximum age of feed entry statuses (read/unread) in the database. Older statuses will be deleted.
*
* 0 to disable.
*/
@WithDefault("0")
Duration statusesMaxAge();
interface FeedRefreshErrorHandling {
/** Number of retries before backoff is applied. */
@Min(0)
@WithDefault("3")
int retriesBeforeBackoff();
/**
* Maximum number of entries per feed to keep in the database.
*
* 0 to disable.
*/
@WithDefault("500")
int maxFeedCapacity();
/**
* Duration to wait before retrying after an error. Will be multiplied by the number of
* errors since the last successful fetch.
*/
@WithDefault("1h")
Duration backoffInterval();
}
/**
* Limit the number of feeds a user can subscribe to.
*
* 0 to disable.
*/
@WithDefault("0")
int maxFeedsPerUser();
interface Database {
/**
* Timeout applied to all database queries.
*
* <p>0 to disable.
*/
@WithDefault("0")
Duration queryTimeout();
/**
* Rows to delete per query while cleaning up old entries.
*/
@Positive
@WithDefault("100")
int batchSize();
/** Database cleanup settings. */
@ConfigDocSection
Cleanup cleanup();
default Instant statusesInstantThreshold() {
return statusesMaxAge().toMillis() > 0 ? Instant.now().minus(statusesMaxAge()) : null;
}
}
}
interface Cleanup {
/**
* Maximum age of feed entries in the database. Older entries will be deleted.
*
* <p>0 to disable.
*/
@WithDefault("365d")
Duration entriesMaxAge();
interface Users {
/**
* Whether to let users create accounts for themselves.
*/
@WithDefault("false")
boolean allowRegistrations();
/**
* Maximum age of feed entry statuses (read/unread) in the database. Older statuses will
* be deleted.
*
* <p>0 to disable.
*/
@WithDefault("0")
Duration statusesMaxAge();
/**
* Whether to enable strict password validation (1 uppercase char, 1 lowercase char, 1 digit, 1 special char).
*/
@WithDefault("true")
boolean strictPasswordPolicy();
/**
* Maximum number of entries per feed to keep in the database.
*
* <p>0 to disable.
*/
@WithDefault("500")
int maxFeedCapacity();
/**
* Whether to create a demo account the first time the app starts.
*/
@WithDefault("false")
boolean createDemoAccount();
}
/**
* Limit the number of feeds a user can subscribe to.
*
* <p>0 to disable.
*/
@WithDefault("0")
int maxFeedsPerUser();
interface Websocket {
/**
* Enable websocket connection so the server can notify web clients that there are new entries for feeds.
*/
@WithDefault("true")
boolean enabled();
/** Rows to delete per query while cleaning up old entries. */
@Positive
@WithDefault("100")
int batchSize();
/**
* Interval at which the client will send a ping message on the websocket to keep the connection alive.
*/
@WithDefault("15m")
Duration pingInterval();
/** Whether to keep starred entries when cleaning up old entries. */
@WithDefault("true")
boolean keepStarredEntries();
/**
* If the websocket connection is disabled or the connection is lost, the client will reload the feed tree at this interval.
*/
@WithDefault("30s")
Duration treeReloadInterval();
}
default Instant statusesInstantThreshold() {
return statusesMaxAge().toMillis() > 0
? Instant.now().minus(statusesMaxAge())
: null;
}
}
}
interface Users {
/** Whether to let users create accounts for themselves. */
@WithDefault("false")
boolean allowRegistrations();
/** Minimum password length for user accounts. */
@WithDefault("4")
int minimumPasswordLength();
/** Whether an email address is required when creating a user account. */
@WithDefault("false")
boolean emailAddressRequired();
/** Whether to create a demo account the first time the app starts. */
@WithDefault("false")
boolean createDemoAccount();
}
interface Websocket {
/**
* Enable websocket connection so the server can notify web clients that there are new
* entries for feeds.
*/
@WithDefault("true")
boolean enabled();
/**
* Interval at which the client will send a ping message on the websocket to keep the
* connection alive.
*/
@WithDefault("15m")
Duration pingInterval();
/**
* If the websocket connection is disabled or the connection is lost, the client will reload
* the feed tree at this interval.
*/
@WithDefault("30s")
Duration treeReloadInterval();
}
}

View File

@@ -4,6 +4,5 @@ import lombok.experimental.UtilityClass;
@UtilityClass
public class CommaFeedConstants {
public static final String USERNAME_ADMIN = "admin";
public static final String USERNAME_DEMO = "demo";
public static final String USERNAME_DEMO = "demo";
}

View File

@@ -1,25 +1,24 @@
package com.commafeed;
import java.time.InstantSource;
import com.codahale.metrics.MetricRegistry;
import jakarta.enterprise.inject.Produces;
import jakarta.inject.Singleton;
import com.codahale.metrics.MetricRegistry;
import java.time.InstantSource;
@Singleton
public class CommaFeedProducers {
@Produces
@Singleton
public InstantSource instantSource() {
return InstantSource.system();
}
@Produces
@Singleton
public MetricRegistry metricRegistry() {
return new MetricRegistry();
}
@Produces
@Singleton
public InstantSource instantSource() {
return InstantSource.system();
}
@Produces
@Singleton
public MetricRegistry metricRegistry() {
return new MetricRegistry();
}
}

View File

@@ -1,30 +1,29 @@
package com.commafeed;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import jakarta.inject.Singleton;
import lombok.Getter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
@Singleton
@Getter
public class CommaFeedVersion {
private final String version;
private final String gitCommit;
private final String version;
private final String gitCommit;
public CommaFeedVersion() throws IOException {
Properties properties = new Properties();
try (InputStream stream = getClass().getResourceAsStream("/git.properties")) {
if (stream != null) {
properties.load(stream);
}
}
this.version = properties.getProperty("git.build.version", "unknown");
this.gitCommit = properties.getProperty("git.commit.id.abbrev", "unknown");
}
public CommaFeedVersion() throws IOException {
Properties properties = new Properties();
try (InputStream stream = getClass().getResourceAsStream("/git.properties")) {
if (stream != null) {
properties.load(stream);
}
}
this.version = properties.getProperty("git.build.version", "unknown");
this.gitCommit = properties.getProperty("git.commit.id.abbrev", "unknown");
}
}

View File

@@ -1,50 +1,58 @@
package com.commafeed;
import jakarta.annotation.Priority;
import jakarta.validation.ValidationException;
import jakarta.ws.rs.ext.Provider;
import org.jboss.resteasy.reactive.RestResponse;
import org.jboss.resteasy.reactive.RestResponse.Status;
import org.jboss.resteasy.reactive.server.ServerExceptionMapper;
import com.commafeed.security.CookieService;
import io.quarkus.runtime.annotations.RegisterForReflection;
import io.quarkus.security.AuthenticationFailedException;
import io.quarkus.security.UnauthorizedException;
import jakarta.annotation.Priority;
import jakarta.validation.ValidationException;
import jakarta.ws.rs.core.NewCookie;
import jakarta.ws.rs.ext.Provider;
import lombok.RequiredArgsConstructor;
import org.jboss.resteasy.reactive.RestResponse;
import org.jboss.resteasy.reactive.RestResponse.ResponseBuilder;
import org.jboss.resteasy.reactive.RestResponse.Status;
import org.jboss.resteasy.reactive.server.ServerExceptionMapper;
@RequiredArgsConstructor
@Provider
@Priority(1)
public class ExceptionMappers {
private final CommaFeedConfiguration config;
private final CookieService cookieService;
private final CommaFeedConfiguration config;
@ServerExceptionMapper(UnauthorizedException.class)
public RestResponse<UnauthorizedResponse> unauthorized(UnauthorizedException e) {
return RestResponse.status(RestResponse.Status.UNAUTHORIZED,
new UnauthorizedResponse(e.getMessage(), config.users().allowRegistrations()));
}
@ServerExceptionMapper(UnauthorizedException.class)
public RestResponse<UnauthorizedResponse> unauthorized(UnauthorizedException e) {
return RestResponse.status(
Status.UNAUTHORIZED,
new UnauthorizedResponse(e.getMessage(), config.users().allowRegistrations()));
}
@ServerExceptionMapper(AuthenticationFailedException.class)
public RestResponse<AuthenticationFailed> authenticationFailed(AuthenticationFailedException e) {
return RestResponse.status(RestResponse.Status.UNAUTHORIZED, new AuthenticationFailed(e.getMessage()));
}
@ServerExceptionMapper(AuthenticationFailedException.class)
public RestResponse<AuthenticationFailed> authenticationFailed(
AuthenticationFailedException e) {
NewCookie logoutCookie = cookieService.buildLogoutCookie();
return ResponseBuilder.create(Status.UNAUTHORIZED, new AuthenticationFailed(e.getMessage()))
.cookie(logoutCookie)
.build();
}
@ServerExceptionMapper(ValidationException.class)
public RestResponse<ValidationFailed> validationFailed(ValidationException e) {
return RestResponse.status(Status.BAD_REQUEST, new ValidationFailed(e.getMessage()));
}
@ServerExceptionMapper(ValidationException.class)
public RestResponse<ValidationFailed> validationFailed(ValidationException e) {
return RestResponse.status(Status.BAD_REQUEST, new ValidationFailed(e.getMessage()));
}
@RegisterForReflection
public record UnauthorizedResponse(String message, boolean allowRegistrations) {
}
@RegisterForReflection
public record UnauthorizedResponse(String message, boolean allowRegistrations) {}
@RegisterForReflection
public record AuthenticationFailed(String message) {
}
@RegisterForReflection
public record AuthenticationFailed(String message) {}
@RegisterForReflection
public record ValidationFailed(String message) {
}
@RegisterForReflection
public record ValidationFailed(String message) {}
}

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